(信号与信息处理专业论文)高速率高精度数据采集系统的实现.pdf_第1页
(信号与信息处理专业论文)高速率高精度数据采集系统的实现.pdf_第2页
(信号与信息处理专业论文)高速率高精度数据采集系统的实现.pdf_第3页
(信号与信息处理专业论文)高速率高精度数据采集系统的实现.pdf_第4页
(信号与信息处理专业论文)高速率高精度数据采集系统的实现.pdf_第5页
已阅读5页,还剩55页未读 继续免费阅读

(信号与信息处理专业论文)高速率高精度数据采集系统的实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 摘要 随着科技的发展,对现代的数据采集在速度、分辨率、精度、抗干扰能 力等方面的要求越来越高,这使得采集系统的速率和精度的矛盾日益突出,但 是由于a d c 转换器结构设计上的原因,要达到高速率采样则要降低a d c 转 换的转换精度,反之,要得到较高的转换位数则要牺牲a d c 的采样率,二者 很难达到一个平衡。而随着通信技术的发展,越来越多的产品要求同时具有高 精度、高速度,以满足广大用户的要求。在这样的背景下,本文提出了一种基 于多a d c 实现高速率、高精度的设计方案,采样率2 0 m h z 以上,转换位数 1 6 b i t 。 本系统为高精度、高速率数据采集系统,对精度要求高,所以在绘制电 路板的整个过程都要注意减小误差,确保高精度。从元件的选取、布局以及最 后的布线和检验,都要采取相应的措施,提高系统的抗干扰能力。 本系统能够很好的解决采样率和转换位数之间的矛盾。通过使用数据采 样保持器s h ,很好的保证了两路信号的同步性,从而保证了系统的精度。随 着科技发展,未来对于采样系统的要求越来越高,因而该系统有着广阔的应用 前景。 此系统设计是要在深刻了解内部的设计原理,设计环境的前提下,找到相应 的编码、译码规则,推算出公式,而更关键的是要在此基础上设计出精度尽可能 高的算法,并编写出程序。 在本系统设计过程中充分利用了v e r i l o gh d l 语言在描述硬件功能方面的优 势,并用c 语言辅助编写了一段程序共同完成。系统设计阶段,考虑到软件模 拟仿真的需要,对程序进行编译和仿真,特别是在最终仿真结果的显示方面达到 了很好的效果。 关键词a d c ;d a c :高速率;高精度;v e r i l o gh d l 北京工业大学工学硕士学位论文 a b s t r a c t w i t ht h ed e v e l o p m e n to ft h es c i e n c e ,t h er e q u i r e m e n t so fm o d e md a t a c o n v e r s i o ns y s t e ma r eb e c o m i n gh i g h e ra n dh i g h e ri ns p e e d ,r e s o l u t i o n ,a c c u r a c y a s w e l la st h ec a p a c i t yo fa n t i - j a m m i n g , i tc a u s e st h ec o n t r a d i c t i o nb e t w e e ns p e e da n d r e s o l u t i o nb e c o m i n gm o r es e r i o u s d u et ot h ec o n s t r u c t i o no fa d cd e v i c e , i ti s n e c e s s a r yt od e c r e a s et h er e s o l u t i o ni no r d e rt oi m p r o v et h es p e e d , s od o e st h e o p p o s i t i o n b a s eo nt h i sk i n do fb a c k g r o u n d ,t h i se s s a yp u t sf o r w a r das c h e m et o d e s i g nah i g hs p e e d a n dh i g hr e s o l u t i o nd a t ac o n v e r s i o ns y s t e mrw h i c hs a m p l em t ei s 2 0 m h z ,a n dr e s o l u t i o nb i ti s16b i t i ti sae f f e c t i v ew a y t oa c h i e v eh i 【g hs p e e ds c a n a n ds u r v e yf o rt h er a d i o c o m m u n i c a t i o n sf r e q u e n c ys e tw h e nt h i ss y s t e mi su s e di n t h er a d i o - c o m m u n i c a t i o ns u r v e ya n dr a d i o - c o m m u n i c a t i o nm a n a g e m e n t t h es y s t e mw a sd e s i g n e di na p r o f o u n du n d e r s t a n d i n go ft h ed e s i g np r i n c i p l e so f i n t e r n a l ,t h ep r e m i s eo fe n v i r o n m e n t a ld e s i g nt of r e d t h ec o r r e s p o n d i n ge n c o d i n g , d e c o d i n gr u l e sp r o j e c t i o nf o r m u l a , b u tm o r ec r u c i a li st od e v i s eo nt h eb a s i so f t h e h i 曲e s tp o s s i b l ep r e c i s i o na l g o r i t h m s ,a n dt op r e p a r ep r o c e d u r e s d u r i i 培t h es y s t e md e s i g np r o c e s st ot a k ef u l la d v a n t a g eo ft h ev e r i l o gh d l l a n g u a g ei nd e s c r i b i n gt h ea d v a n t a g e so fh a r d w a r ef u n c t i o n s ,a n dcl a n g u a g es u p p o r t i nt h ep r e p a r a t i o no fac o m m o np r o c e d u r ec o m p l e t e d s y s t e m sd e s i g ns t a g e ,t a k i n g i n t oa c c o u n tt h en e e d so fs o f t w a r es i m u l a t i o n i tc h o o s e st h eq u a r t u si i3 1 ,a n d p a r t i c u l a r l yi nr e g a r dt ot h eu l t i m a t es i m u l a t i o nr e s u l t ss h o wv e r yg o o dr e s u l t s k e yw o r d sa d c ;d a c ;h i g hs p e e d ;h i g hr e s o l u t i o n ;v e r i l o gh d l 独创性声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研 究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他 人已经发表或撰写过的研究成果,也不包含为获得北京工业大学或其它教育机构 的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均 已在论文中作了明确的说明并表示了谢意。 签名:率址隰型皿 关于论文使用授权的说明 本人完全了解北京工业大学有关保留、使用学位论文的规定,e p :学校有权 保留送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部或部 分内容,可以采用影印,缩印或其它手段保存论文。 ( 保密的论文在解密后应遵守此规定) 签名; 枷荡 i一名:崤q 姒瞧以, 第1 章绪论 1 1 课题背景 第1 章绪论 本课题研究的主要任务是完成高速度,高精度数据采集系统设计。使得该系 统组成的模拟数字转换模块能够达到速度快、精度高的目标。 随着计算机的广泛应用和微电子学的高度发展,数字系统已被广泛地应 用于国民经济、国防建设与科学实验的各个领域。和模拟系统相比,数字系统 有精度高、稳定性好等一系列优点,但是数字系统只能处理离散的数字信号。 外部世界的各种被检测量,如温度、压力、位移、流量、角度、位置等,通过 相应的各种类型的传感器转换成便于进一步处理的处理量( 一般为电压、电流、 电阻或电脉冲等信号) 。只有一部分传感器可以将外部世界的被检测量直接转 换为数字信号或开关信号( 这是一种只有0 、1 两个状态的数字信号) 。大部分 传感器输出的仍是电压或电流等模拟信号,所以往往需要将这些模拟信号转换 为便于处理和存储的数字信号。 在当今市场中的a d c ( 数字模拟转换器) 由于采样率,量化精度等的限制, 转换位数通常为8 位,但这远远不能满足实际系统的需要。针对项目来讲,直接 使用8 位的模拟数字转换器在精确性上是不能达到要求的。因此,希望能够自行 设计一个高性能、高精度、高速度的模拟数字转换器,转换位数增加一倍,达到 1 6 位。 随着科技的发展和数据采集系统的广泛应用,使得现代的数据采集在速 度、分辨率、精度、抗干扰能力等方面的要求越来越高,越来越多的设计要求 具有高精度、高速率的数据采集系统,高性能的数字采集系统已经成为产生具 有竞争性产品的重要因素。但由于a d c 转化器结构设计上的原因,采集系统的 速率和精度的矛盾日益突出,要达到高速率采样则要降低a d c 转换的转换精 度,反之,要得到较高的转换位数则要牺牲a d c 的采样率,二者很难达到一个 平衡,目前的市场中,1 6 b i t 的a d c 转换芯片的最高采样率仅为2 5 m h zc 4 7 】。而 随着通信技术的发展,越来越多的产品要求同时具有高精度、高速率,以满足 广大用户的要求。 正是基于这样一个背景,为了研发出更符合社会需求的采集系统,为了 减少今后系统设计的开发成本,决定利用低成本的零散集成芯片,自行尝试开 发研制高精度、高速率的模拟数字转换模块。目标要求:采样率2 0 m h z 以上, 北京工业大学工学硕士学位论文 转换位数1 6 位。经过长时间的查阅和调研,发现市场上存在的现有模数转换 器a d c 芯片,没有一款芯片可以同时达到高速率( 2 0 m l l z ) 、高精度( 1 6 b i t ) 的要求,因此最终决定尝试采用多a d c 芯片搭建构成高精度、高速率的数据采 集系统“”。 本课题的研究任务是用软件无线电的原理来实现的。软件无线电主要由天 线、射频前端、宽带a d d a 转换器、通用和专用数字信号处理器以及各种软件 组成。软件无线电的天线一般要覆盖比较宽的频段,要求每个频段的特性均匀, 以满足各种业务的需求。射频前端在发射时主要完成上变频、滤波、功率放大等 任务,接收时实现滤波、放大、下变频等功能。对于a d 转换器要求有足够宽的 工作频带,较高的采样率,而且要有较高的a d 转换位数,以提高动态范围。数 字化后的处理任务全有d s p 承担。通用d s p 主要完成各种基带信号处理,例如信 号的调制解调,各种抗干扰、抗衰落、自适应均衡算法的实现等,还要完成经信 源编码后的前向纠错( f e c ) 、帧调整、比特填充和链路加密等算法8 1 。 软件无线电的结构基本上可以分成三种:射频低通采样数字化结构、射频带 通采样数字化结构和宽带中频带通采样数字化结构。“。 1 2 目的和意义 本课题基于微处理器进行设计,在通信领域中,实现更为精准的数据采集, 比原有的a d 转换( 模数转换) 系统更为人性化。它运用了子区式a d c 的工作原 理和流水线处理原理,原有的数模转换只是简单的实现由模拟信号变为数字信 号,但却使数据产生了较大的误差,而现在市场上还没有研制出一种极为精确的 数据采集系统,即使有这样的转换软件价格也是相当不菲的,所以此系统设计不 仅弥补了当前的不足,而且降低了科研成本使a d 转换( 模数转换) 更为精准, 更为高速。 实际设计中,系统的前级加入采样保持电路系统保证两路信号的一致性,否 则系统信号会因为电路延迟而产生误差。由于目前市场中的采样保持芯片的性能 不能达到系统高采样率的要求,所以前级的采样保持电路利用离散器件搭建。同 时因为前级加入了采样保持器,所以对模数转化芯片的片内转换时问提出了很高 的要求,要求模数转换芯片的转换时间要短,以满足采样保持的要求。作者分析 模数转换芯片的结构特点,发现只有f l a s h 型a d c 能够满足系统要求,并最终决 2 第1 章绪论 定使用1 0 位f l a s h 转换芯片a d 9 2 1 5 和8 位f l a s h 转换芯片a d 9 0 5 7 。数模转换 芯片为高速率数模转换器a d 9 7 4 0 ,系统后级利用了f p g a 在数字信号处理方面的 优势,考虑到系统扩展能力的需要,采用了a l t e r a 公司的c y c l o n e 高性能f p g 进行数据结果的处理和校验。 高速度、高精度数据采集系统设计是在q u a r t u si i3 1 的软件环境下应用 v e r i l o gh d l 进行程序的编写,由于此设计的最后检测不可能通过实际的下载和 模块的联合组成来验证,所以只有选择相应的编程语言和编程环境来弥补。 v e r i l o g 皿l 语言在描述硬件功能方面有相当的优势,而q u a r t u si i3 1 软件 平台对程序进行编译和仿真对存入计算机的这些数字信号进行处理,实现此功能 后,调整为可被简单识别的结果。 高速度、高精度的模拟数字转换器是信号处理的必要基础,也是模拟信号与 数字信号之间相互转化的桥梁。无论任何领域高速度、高精度的模拟数字转换器 都有广泛的应用空间。因此,研制出高性能的模拟数字转换器变得非常实际而且 非常重要。 1 3 本文的研究内容及结构 该高精度、高速率数据采集系统设计是一项创新性设计,以往的数据采集 器往往由简单的单一a d c 芯片实现功能,所以数据采集能力受到a b e 芯片功能 的限制。随着m ) c 高速率采样与转换精度矛盾的日益突出,单一a b e 芯片的有 限功能已经成为了高精度、高速率模数转换系统的主要障碍。在此背景下,作 者提出了采用多位a b e 芯片实现高速率、高精度a b e 数据转换功能的全新方案。 第1 章主要论述的是课题的背景及其目的和意义。第2 章对系统设计的背景、 创新性、难点和方案的选择进行了详细的论述。第3 章对软件设计的编程思路、 误差控制和实时性分析等进行了详细的论述。第4 章论述了硬件设计中的各部 分电路及其功能。第5 章主要论述了印制电路板p c b 的布局、布线、抑制电磁 干扰的方法。 3 北京工业大学工学硕士学位论文 第2 章系统整体设计 2 1 系统创新性设计 采用多位a d c 芯片实现高速率、高精度a d c 数据转换功能的设计方案是 一个全新方案,具有创新性。以往的数据采集系统往往由简单的单一a d c 芯片 实现功能,这样系统的数据采集能力受到a d c 芯片功能的限制。随着高速率采 样与a d c 转换精度矛盾的日益突出,单一的a d c 芯片功能已经成为了高精度、 高速率模数转换系统的主要障碍。在此背景下,作者提出了采用多位a d c 芯片, 实现高速率、高精度a d c 数据转换功能。这种方案在低频领域已取得了一定的 成就,但在高频领域尚属于一个全新的领域,国内尚无成品,国内外可供参考 的资料有限,更多的需要作者的独立设计,设计研究具有一定的难度,也具有 一定的探索性。作者秉着严谨求实的精神在设计中不断的探索,从方案的确定, 局部方案的设计,芯片的选取,最终p c b 板的绘制等方面进行了多方考证,最 终设计出了满足系统要求的高精度、高速率数据采集系统,取得了一定的成就。 2 2 系统设计难点 为了保证结果的准确,要求在设计过程中保持各个部分的高精度。在电 压方面,外部基准电压要选用高精度、低温漂电压。同时从基准电压到a d c 和d a c 的参考电压输入端的信号线要尽量短,从而减小基准电压的输出阻抗。 引入的运算放大器会使整个系统的转化速率降低,整个系统的时问常数等于 a d c 或d a c 与外部驱动运放的时间常数的均方值,所以,要选择带宽大、时间 常数小的运算放大器。 另外,系统中的转换时间也是需要特别注意的。由于此系统的采样率为 2 0 m h z ,为了保证传输的准确性,要特别留意整个系统的转换时间,以免由于 延时过长影响转换结果。 2 3 系统方案选择 在整个系统方案论证过程中,讨论了两种方案: 方案一:采用并行处理技术,利用多个低速a d c 芯片,采用前端并行逐 次采样,后端串行多路复用,从而到达提高整个系统的采样速率。具体的结构 4 第2 章系统整体设计 图如图2 - 1 : 图2 - i 并行结构模数转换电路 f i g u r e2 一ia d cp a r a l l e ls t r u c t u r e 所谓并行处理技术,是指采用并行a d c 输入,串行d a c 输出。其中的m 个通道由相同的模数转换器构成,有相同的采样率和位数。a d c 的采样率为系 统总采样率的m 分之一,位数为系统要求达到的位数值。在采集数据的过程中, 首先启动通道一,对输入信号进行采样、转换,然后启动通道二,完成对信号 的采样、转换,以此类推,当m 个通道完成m 次采样后,整个系统的采样速率 是单通道的m 倍,从而实现了用低速率、高精度的数据转换器实现高速率、高 精度的数据转换要求。这一方案在理论方面比较成熟。但问题是目前市场上已 有的1 6 b i t a d c 数据转换器的最高速率只达到2 5 h z ,要达到设计要求的 2 0 m h z ,至少需要8 片的a d c ,实际设计和制版的难度比较大瑚。 方案二:利用子区式a d c 的原理进行设计,子区式a d c 的大体原理是( 以 1 6 位为例) 。首先,用第一片闪烁式a d c 数字转化出前1 0 个m s b 位,这1 0 位2 进制输出送到一个l o b i t 的d a c ,d a c 的输出从保持的模拟输入中减去,差值信 号被放大后送给第二片8 b i t 闪烁式a d c 。两片闪烁式a d c 的输出结合在一起, 构成一个1 8 b i t 输出码字。但由于采样速率过快,对时钟的精度要求非常高, 加上转换过程中的误差,很难达到1 8 位的分辨率。在系统实现时,应尽量使 各部分保持高精度,使最终的分辨率达到1 6 位。显然如果放大器的差值信号 不能准确地匹配第二片闪烁式a d c 的量程,会产生非线性失真及失码等问题。 下面进一步列出子区式a d c 的误差源: 第一片闪烁式a d c 的增益、偏置与线性误差。 d a c 的增益、偏置以及线性误差。 d a c 的建立时间。 求和( 叠加) 放大器的增益、偏置与建立时间误差。 5 北京工业大学工学硕士学位论文 第二片闪烁式a d c 的增益、偏置与线性误差。 入糍- p 喜,g 广 f p g a 图2 - 2 用子区式a d c 的原理进行设计 f i g u r e2 - 2u s et h ep r i n c i p l eo f p i p e l i n e a d ct od e s i g n 通过软件的仿真,发现用一个8 位的a d c 和一个8 位的d a c 很难满足系统 要求的高精度。因此,选择了一个1 0 位的a d c ,一个1 0 位的d a c 和一个8 位 的a d c 来构建系统。设计出了满足系统要求的高精度、高速率数据采集系统。 2 4 本章小结 在实际设计中主要考虑了以上两种方案:一种是采用并行处理技术,利用多 个低速a d c 芯片,采用前端并行逐次采样,后端串行多路复用,从而到达提高整 个系统的采样速率,目前市场上已有的1 6 b i t a d c 数据转换器的最高采样速率只 达到2 5 m h z ,如果按照第一种方案要达到设计要求的2 0 m h z ,至少需要8 片的 a d c ,实际设计和制版的难度比较大。第二种是利用子区式a d c 的原理进行设计, 子区式a d c 的大体原理是( 以1 6 位为例) ,第一片a d c 转换器数字化高位,实现 粗量化。将高位值送给d a c 转换器进行数模转化,原输入信号与d a c 的输出信号 相减,差值送给第二片a d c 转换器,实现细量化,两片输出合在一起,送入f p g a , 够成了1 6 位a d c 。与第一种方案比较,第二种方案更具有可实施性,在低频领 域取得了一定的成就,所以最终确定利用第二种方案设计实现高速率、高精度数 据采集系统。 6 第3 章软件设计 第3 章软件设计 3 1 概述及目标 3 1 1 编程任务概述 本项目是高精度、高速度数据采集系统设计。此章的主要任务是模拟数字转 换模块中的软件部分的编写及调试。要求该模拟数字转换系统能够达到速度快、 精度高的目标。 , 由于原有的模拟数字转换器大多是8 位的,根据前面介绍的编码规则,8 位 的模拟数字转换器在编码后最多只能编出2 的8 次方即2 5 6 个码,因此必然导致 量化误差较大。这使得实际信号在通过8 位码数转换器转换为8 位二进制编码后, 编码误差必然较大,也意味着有很多有效信息被忽略了,或者说是丢失了。但这 正是不希望看到的结果,所以必然要想办法尽量提高它的编码位数,使误差降低。 此系统设计并不是简单的编码,译码过程。在这一过程中,要在深刻了解设 计原理,设计环境的前提下,找到它是如何编码,如何译码的。只有这样在收到 一组模数转换器转换出来的8 位二进制编码时,才能看懂它携带的信息是什么, 进而得到编码对应的信息。但现在软件设计中的难点是根据编码规则还原的信息 的值与实际的信息大小是有误差的,而且要想知道误差有多大,是正误差还是负 误差非常的困难。这也是此次软件设计过程中的难点。 3 1 2 设计目标 目标一:用软件实现模拟数字转换器的位数扩充,由原来的8 位模拟数字转 换变为1 6 位模数转换。 目标二:在转换器位数扩充的同时减小转换过程的误差,把误差范围控制在 2 9 6 的范围内,即实际值误差为控制在小数点后第三位准确,1 6 位输出时保证前 十四位编码不出现误差,后两位可以相应有些误差。 目标三:在软件实现模拟数字转换时,尽量提高软件运行的速度,实现模数 转换的高速度。 7 北京工业大学工学硕士学位论文 3 2 编程思路及过程 3 2 1 子区式功能 首先用两片8 位的模拟数字转换器来实现1 6 位的模拟数转换器。简单的理 解,软件的任务是将模拟数字转换硬件输出的两组8 位二进制编码转换为1 6 位 编码,而且要尽量少的减少系统误差。因此,在开始编写软件时必须先了解硬件 是如何进行编码的,只有这样才可以制定设计思路,进行软件编写。 第二章中介绍了予区式模拟数字转换器的硬件工作原理,下面主要介绍的是 如何把硬件原理与实际编程相结合。 子区式a d c 的工作方式是对实际的电压信号进行采样后,进入一个8 位的模 拟数字转换器a d 9 0 5 7 。a d 9 0 5 7 会自动根据它硬件内部自身的量化电平和单极性 编码规则对实际电压值进行编码,产生一组8 位数据。之后通过一个8 位的数字 模拟转换器d a c ,将此数据重新转换为模拟电压值。然后将这个还原的模拟值与 之前抽样后的模拟信号一同进入减法器,将相减后得到的差值在经过一个8 位的 模拟数字转换器a d 9 0 5 7 ,得到另一组8 位数据。这是子区式a d c 的工作方式, 和编码过程“町。 通过对子区式a d c 的进一步分析可以理解到它的真正优点是可以减少模数 转换中的误差。正如上面介绍的工作方式,信号经过第一个8 位模拟数字转换器 后产生的8 位数据携带了实际信号的主要信息量。但由于模拟数字转换器的位数 限制,使得在对信息进行编码时必然会丢掉一部分有效信息。例如,实际电压 信号为2 5 0 1 伏,而由于编码位数的限制,信号经过模拟数字转换器编出的码为 1 0 0 0 0 0 0 0 。根据编码规则可以知道这个码对应的实际电压值是2 5 0 2 伏,而其中 的0 0 0 1 伏是误差。 正是为了在模拟数字转换过程中尽量减少误差,才设计用硬件将这8 位数据 经过数模转换器重新转换为模拟信号,与原有信号相减,相减后的差值是以一个 模拟数字转换器产生的误差。把这个误差量再通过一个模拟数字转换器,编出一 组8 位二进制编码。即,将上面例子中的0 0 0 1 伏进行编码。把这两组8 位二进 制编码按照编码规则还原成实际值,并将结果根据新的1 6 位编码规则编成1 6 位 8 第3 章软件设计 码。 3 2 2 还原信号 在得到两组8 位二进制编码后,将这两组码还原成它们对应的实际电压值。 这一过程涉及到了量化编码的相关知识,也是编码还原要用到的主要理论基础。 在第二章中已经重点解释了量化、编码的理论,下面把理论与此次的实际相结合 完成信号的还原。 此次用到的模数转换芯片是a d 9 0 5 7 ,它是8 位的模数转换器。所以,由公式 ( 2 1 ) ,可以计算出量化电平为0 0 0 4 v 。因此根据单极性码编码规则,当编码增 加1 时,对应的实际电压值增加0 0 0 4 v 。通过计算与实际硬件给出的几个实际 编码( 见表3 - 1 ) 比对可以看出对编码规则理解的正确性嘲。 表3 - ia d 9 0 5 7 硬件编码表 t a b l e3 1h a r d w a r ee n c o d el i s to f a d 9 0 5 7 a n a l o gi n p u tv o l t a g el e v e lg 砌o u t p u t 3 0 vp o 虫蕊f i 】1 ls c 8 l el l l l1 l l i 2 。5 0 2 vm i 叔a k + i 2 王s b1 0 0 00 0 0 0 2 。4 9 8 v枨d s c a l e l 2 “、bo l l ll l l l 2 。0 v n e g a t i v ef u l ls c d e 0 0 0 00 0 0 0 在此编码表中可以清楚地看出编码规则和量化电平的对应关系。例如中间的 两个码1 0 0 0 0 0 0 0 和0 1 1 1 1 1 1 1 ,它们是相邻的两个码,而从左侧的模拟电压值可 以看出,它们之间相差的是0 0 0 4 伏的电压。这正是8 位二进制编码所对应的量 化电平。 根据这一思想,用v e r i l o gh d l 语言进行了高位电压程序的编写,主要是依 据了量化编码的原理,把得到的高位二进制编码还原为实际的电压值。具体的编 写过程和思路如下: i 在程序中把高8 位二进制码设定为输入信号。由于此程序是验证程序的 准确性和正确性,所以把本应由硬件输入的二进制编码改为自行输入。 2 还原程序的编写 在程序中进行的是位判决,对8 位进行依次判别高低,如果为高则在实际寄 存器中加入与之相对应的电压值。例如:高8 位码为0 0 0 0 0 0 1 0 ,在第二位上为 9 北京工业大学工学硕士学位论文 高,程序在判别为高后加入相对应的2 q 电压。因为0 0 0 0 0 0 1 0 对应十进制是2 , 所以实际值是两个量化电平的电压值,即0 0 0 8 伏。但还应加上基础电压2 0 伏, 所以整体电压为2 0 0 8 伏。主要程序如下“刚: s u m = 0 ;q i = 3 9 2 ;高8 位还原 s u m = s u m + h i 曲q l ; s u m = s u m + 2 0 0 0 0 0 ; f o “c = 7 ;c = 0 ;c = c - 1 ) f o r ( n = c ;n 0 ;n = n - i ) d = d + 2 : i f ( h i g h ) s u m 2 2 s u m 2 + d + q l ; e l s e s u m 2 = s u m 2 ; s h o w l = s u m 1 0 0 0 0 ; 在此程序中可见信号在编码后还原是通过对每位进行比对进行还原的,而且 由于v e r i l o gh d l 语言中没有幂函数,因此只能用循环程序来构造幂指数函数的 计算方法“。 3 显示 但由于此时在系统上显示的是0 0 0 8 伏,而并不能观测到,所以又设计了一 个输出端口,来显示实际还原的电压值。可是q u a r t e r su3 0 软件不像c 语言一 样可以把变量显示为实型,它只能将变量设定为整型变量。因此在输出时,将结 果扩大了相应的倍数“”。图3 - 1 为实际运行的界面及结果。 图3 - 1 高8 位编码还原仿真图 f i g u r e3 - 1f i g u r eo f h i g h8e n c o d e sr e v e r t 1 0 第3 章软件设计 图3 1 中,h i g h 表示高8 位数字信号,o u t 表示输出的1 6 位编码,但由于 没有显示的直观结果,因此效果不好。图3 - 2 为加入显示程序后的结: 图3 - 2 高8 位编码显示仿真图 f i g u r e3 - 2f i g u r eo f h i g h8e n c o d e sd i s p l a y 由于q u a r t e r si i3 0 软件为波形仿真,所以结果都为波形或二进制形式表 示,但s h o w l 能够显示十进制的也是经过了调整后的结果。这样可以直观的体现 出高位对应的实际电压值是2 0 0 8 伏。 3 2 3 编写1 6 位输出码 在还原为实际电压值之后要进行1 6 位编码。1 6 位编码采用与8 位模拟数字 转换器相同的编码规则,即单极性编码。在进行编码前,首先要通过公式计算出 量化电平。由公式( 2 - i ) 得出1 6 位模拟数字转换器的量化电平为0 0 0 0 0 1 5 伏。 虽然此次不是由硬件直接进行编码,而是通过软件来进行硬件的工作,但是中问 的编码规则和方式都是完全一致的。从量化电平的大小可以明显看出,由于量化 电平很小,每个码之间相差都非常近。因此,用此量化电平进行编码,量化误差 会大幅度降低。例如:2 0 0 8 伏的实际电压,用8 位的模拟转换器进行编码,编 出的码为0 0 0 0 0 0 1 0 ,而用1 6 位编码器进行编码,编出的码为0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 1 。 3 2 4 低位误差调整 在子区式工作原理中产生了两组高8 位二进制编码,第一组编码的作用和意 义上文已经进行了详尽的介绍。下面部分将详细说明低8 位码在减小误差方面起 到的重要作用。 由于高8 位编码携带的是主要的电压信息,而低8 位编码所携带的信息只是 实际值与高8 位信息之间的差值。因此,低8 位编码代表的实际电压值不会很大, l l 北京工业大学工学硕士学位论文 但却在误差调整方面起到了至关重要的作用。 在子区式工作原理中,高低8 位模拟数字转换器都使用的相同的芯片 a d 9 0 5 7 ,这也意味着当高低8 位对应的是同一组8 位二进制编码时,只能给它还 原为硬件中规定的电压值。但低8 位译码的方法显然与之不同,这也是此次课题 在减小误差方面遇到的最大困难。 通过对高8 位a d 9 0 5 7 工作原理的理解,可以知道高8 位的误差范围是 0 0 0 2 伏,即q 2 。举例说明:例如实际电压值为2 5 0 0 伏,根据编码规则, 它将被编写成0 1 1 1 1 1 1 1 或1 0 0 0 0 0 0 0 两个码中的一个。因为根据硬件a d 9 0 5 7 提 供的编码对照表中显示,0 1 1 1 1 1 1 1 对应的实际电压值为2 4 9 8 伏,而1 0 0 0 0 0 0 0 对应的实际电压值为2 5 0 2 伏,所以2 5 0 0 伏的实际电压被高8 位编写为 0 1 1 1 1 1 1 1 或1 0 0 0 0 0 0 0 都是可能的,而它们与实际电压值的误差为一0 0 0 2 伏或 + 0 0 0 2 伏,即0 0 0 2 伏( q 2 ) 。 因为低8 位编码的内容是误差量,所以按照子区式工作原理,进入低8 位模 拟数字转换器的实际信号值的范围应改为0 0 0 2 伏( q 2 ) 。但由于高8 位模 拟数字转换器和低8 位模拟数字转换器使用的是相同的硬件芯片a d 9 0 5 7 ,而且 a d 9 0 5 7 的电压工作范围是在2 3 伏,因此在硬件设计方面给低8 位模拟数字转 换器上加入了2 5 伏的基础电压( 即把输入信号电压值提高2 5 伏) 。从而使得 低8 位输入数据范围由一0 0 0 2 伏+ 0 0 0 2 伏提高为2 4 9 8 伏2 5 0 2 伏。 从输入电压范围和编码规则不难发现,低8 位模拟数字转换器编出的码只能 是0 1 1 1 1 1 1 1 或1 0 0 0 0 0 0 0 ,因为2 4 9 8 伏输入电压值对应的编码是0 1 1 1 1 1 1 1 , 2 5 0 2 伏输入电压值对应编码的是1 0 0 0 0 0 0 0 。在实际情况中,低8 位模拟数据转 换器输入数据是在经过提高后的2 4 9 8 伏2 5 0 2 伏中的任意值。但根据上文介 绍的编码方法,当实际电压值在2 4 9 8 伏2 5 0 0 伏之问时,硬件对应编出来的 码都是0 1 1 1 1 1 1 1 ;当实际电压值在2 5 0 0 伏2 5 0 2 伏之间时,硬件对应编出来 的码都是1 0 0 0 0 0 0 0 。 但是使得调整误差成为一个困难。例如:实际电压值是2 4 9 9 伏时,通过数 模转换器高8 位编码得到0 1 1 1 1 1 1 1 ,这个码对应的电压值是2 4 9 8 伏。经过还 原程序还原为2 4 9 8 伏。这个结果与实际值的差值为0 0 0 1 伏,在提高2 5 伏后 输入低位模拟数字转换器的输入电压为2 5 0 1 伏,进行编码后的结果为 1 0 0 0 0 0 0 0 。而如果实际电压值是2 5 0 0 伏时,通过数模转换器高8 位编码得到 1 2 第3 章软件设计 0 1 1 1 1 1 1 1 ,这个码对应的电压值是2 4 9 8 伏。经过还原程序还原为2 4 9 8 伏。这 个结果与实际值的差值为0 0 0 2 伏,在提高2 5 伏后输入低位模拟数字转换器的 输入电压为2 5 0 2 伏,进行编码后的结果仍为1 0 0 0 0 0 0 0 。因此不难得出结论, 用子区式结构进行模拟数字转化方法可以实现系统误差减小,但不可能完全准确 地使误差消失。 通过以上分析,经过长时间的思考和设计,最终设计出了一种方法可以使得 整个系统误差减小一半。虽然不能实现零误差,但能够尽可能的减小误差效果也 是不错的。具体方法如下; 设计的主要思路是利用微调法把误差范围缩小一半,变为- 0 0 0 1 伏+ 0 0 0 1 伏,即q 2 之间。因为低8 位误差编码只对应两个码0 1 1 1 1 1 1 1 和1 0 0 0 0 0 0 0 , 所以分别对两个码进行编程。当低8 位输出为0 1 1 1 1 1 1 1 时,系统误差必为负值, 即高8 位编码对应的电压值比实际值多了。例如:实际值为2 5 0 1 伏,高8 位编 码为1 0 0 0 0 0 0 0 ,对应的电压值为2 5 0 2 伏,这时的误差为- 0 0 0 1 伏,低8 位编 码必为0 1 1 1 1 1 1 1 。因此在低8 位编码为0 1 1 1 1 1 1 1 时,程序给还原的电压值上减 去0 0 0 1 伏,即_ q 4 。相同道理,当低8 位编码为1 0 0 0 0 0 0 0 时,表明高8 位编 码对应的电压值比实际值高了,程序在高8 位还原的电压值基础上加上0 0 0 1 伏, 即+ q 4 。 此部分的编程如下: 件幸 幸 低8 位还原程序 , t = 9 8 ; i i l o w 7 ) i g 差还原,判断加减 s u m = s u m + t ; e l s e s u m = s u m - t ; s h o w 2 = t + l o o o : 在程序中变量大小已经扩大了相应倍数,这是由于v e r i l o gh d l 语言中没有 表示实型的变量造成的阻伽。在程序中可以看到,对还原的电压值上加上或减 去的是9 8 ( 即0 0 0 0 9 8 伏) 而不是0 0 0 1 伏是因为0 0 0 1 是一个近似结果,因 为有效位不高造成的不十分精确,而在程序中改为更为精确0 0 0 0 9 8 伏能够更好 北京工业大学工学硕+ 学位论文 地实现此系统的高精度的特点。其中的s h o w 2 是加上或减去的实际电压值,是仿 真时的一个输出端,使得系统调整误差的大小更加直观嘲。 程序经过编译后的结果进行仿真,其仿真波形如图3 - 3 所示: 。图3 - 3 第一种调整结果图 f i g u r e3 - 3r e s u l to ft i n tc o o r d i n a t e 图3 3 中h i g h 为输入的高8 位二进制码,l o w 为输入的低8 位二进制码,o u t 为输出的1 6 位编码结果,s h o w l 为高8 位编码还原的电压值,s h o w 2 为经过低位误 差调整后的电压值,s h o w 3 为调整的误差电压值。 从结果可以更直观的看出通过此段程序确实把系统的误差减小了一部分,精 度也提高了。 3 3 误差控制 此前的误差调整方法已经将误差降低了一倍,可是这与设计高速度、高精度 模拟数字转换的目标还是有一定的距离。通过此前的一系列算法和编码已经使得 误差减小了一倍,使误差范围控制在一0 0 0 1 伏+ 0 0 0 1 伏之内,但是根据计算 可以得出在1 6 位输出结果中最后四位都有误差,而设计初衷是在输出1 6 位编码 时最多在最后两位有误差。由此可见,只能通过另外一种途径研究来实现进一步 减小误差的工作。 3 3 1 设计思路 由于在第一种减小误差的方法没有完全达到设计要求,使得必须从另一个角 度来解决提高精度的问题。但研究出第二种调整思路的基础还是硬件的采样、量 1 4 第3 章软件设计 化、编码规则和输入信号的特点。 硬件进行模拟数字转换的第一步是采样,第一章中基础知识里已经介绍了采 样规则。在采样过程中一定会涉及到一个概念:采样频率。采样频率是在一个信 号周期中采样点的个数,通常以兆赫兹为单位。采样频率越高,采样的点数越密 集。此次用到的模拟数字转换器a d 9 0 5 7 的采样频率主要为2 0 姗z 4 0 删z 之间可 调。 信号方面,由于此次模拟数字转换器的输入信号为交流电压信号,电压范围 是2 3 伏,信号频率为5 0 0 k h z 1 删z 可调。因此根据采样点数计算公式( 3 一1 ) : 采样点数n = 鬻,( 3 - 1 ) 可以计算出一个信号周期内的采样点数。例如:信号频率为1 m h z ,采样频 率为4 0 姗t z ,采样点数为4 0 ,即一个信号周期内采样4 0 个点。 通过这个公式可以在采样频率或信号频率变化时,计算出不同的采样点数。 由于输入信号为正弦信号,因此波形可知,周期也可以通过信号频率计算出来。 这样在一个正弦波信号中各个不同点的采样位置可以通过正弦信号公式计算出 来,得到每一个点对应的实际值( 即实际电压值) 。此正弦信号的峰峰值为1 , 即电压量程范围1 伏;周期为信号频率的倒数,也是可以调整的变量;整个信号 是在2 3 伏之间变化,2 5 伏是其中间值。根据这些信息很容易计算出各个不 同点对应的值,这个值也是实际的电压值。 在了解了上面这些理论和方法后,原本硬件进行采样,量化的实际电压值可 以通过计算得到。这样做带来的好处是在实际值被编码之前已经知道了实际电压 值,进而通过编码规则可以知道硬件应该编写出的8 位二进制编码。 第一种调整方法中正是因为不知道实际的电压值是多少,只能通过学习硬件 的编码规则将已经编出的高8 位、低8 位两组二进制编码进行还原。在硬件编码 过程中存在了大量的固有误差和随机误差,而且在用软件进行还原过程中都会产 生误差。这些误差是很难被找到并准确还原的,因此造成了较大的误差。此次能 够通过公式计算出实际的电压值,可以使得系统误差大幅度减小。 北京工业大学工学硕士学位论文 3 3 2 编程思想及结果 3 3 2 1 用c 语言进行的编程 在设计思路确定后,将进行程序的编写阶段。编程的第一步是通过确定的不 同信号频率和采样频率,来计算采样点数,并进一步通过公式计算出相应的实际 输入电压值。但由于v e r i l o gh d l 语言中没有库函数,无法进行一些复杂度比较 大的运算,如s i n 函数,指数函数,幂函数等,而这些结果如果通过手算则过于 麻烦,而且如果信号频率或采样频率发生变化需要从新计算一组新数据。在经过 一段时间的研究,决定用c 语言来辅助主程序计算这些数据。c 语言是一个十分 完整系统的语言,在c 语言中有很多的调用语言、库函数、输入输出语句,并且 能够执行很多复杂的计算1 。 下面是利用c 语言实现计算实际电压值和与之相对应编码的主要语句: p m t f ( ”电压频率= ? k h z ,抽样频率= ? k i z 、n ”) ; s c a n f ( ”d ,d ”,& a ,& b ) ; c = b a ; d = 3 1 4 1 5 9 2 6 + 2 c ; f o r ( n = im 龟

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论