摘要:详细讲解了模数转换器的原理及影响模数转换器转换精度的一些主要原因,并详细分析和介绍了嵌入微控制器片内的A/D转换器,以及用AT90S8535作为具体应用实例来分析如何提高转换器精度的方法。 关键字:A/D转换器;逐次比较;采样保持;电磁干扰 前言:在数据采集系统中,模数转换器是其中至关重要的环节,模数转换器的精度以及系统的成本直接影响到系统的实用性,因此,如何提高模数转换器的精度和降低系统的成本是衡量系统是否具有实际应用价值的标准。 一般来说,想提高模数转换器的精度,势必会引起成本的增加,这就要求我们按照具体的精度要求合理的设计模数转换器,来达到具体的要求和降低系统的成本。在精度要求不是很高的场合,我们经常利用嵌入微控制器片内的A/D转换器来实现模数转换,以此来降低系统的成本,但由此又产生了另外的问题,嵌入式模数转换器是否具有所要求的精度,若超出测量范围如何与测量电路进行接口,以及如何减小微控制器的电磁干扰提高嵌入式模数转换器的精度问题。这都要求我们采取不同的措施来提高嵌入式模数转换器的精度。 1. 精度与分辨率。ADC的精度和分辨率是两个不同的概念。精度是指转换器实际值与理论值之间的偏差;分辨率是指转换器所能分辨的模拟信号的最小变化值。ADC分辨率的高低取决于位数的多少。一般来讲,分辨率越高,精度也越高,但是影响转换器精度的因素很多,分辨率高的ADC,并不一定具有较高的精度。精度是偏移误差、增益误差、积分线性误差、微分线性误差、温度漂移等综合因素引起的总误差。因量化误差是模拟输入量在量化取整过程中引起的,因此,分辨率直接影响量化误差的大小,量化误差是一种原理性误差,只与分辨率有关,与信号的幅度,采样速率无关,它只能减小而无法完全消除,只能使其控制在一定的范围之内,一般在±1/2LSB范围内。 1.1 偏移误差 偏移误差是指实际模数转换曲线中数字0的代码中点与理想转换曲线中数字0的代码中点的最大差值电压。这一差值电压称作偏移电压,一般以满量程电压值的百分数表示。在一定温度下,多数转换器可以通过对外部电路的调整,使偏移误差减小到接近于零,但当温度变化时,偏移电压又将出现,这主要是由于输入失调电压及温漂造成的。一般来说,温度变化较大时,要补偿这一误差是很困难的。 1.2 增益误差 增益误差是转换器输出全“1”时,实际模拟输入电压与理想模拟输入电压之差。它使传输特性曲线绕坐标原点偏离理想特性曲线一定的角度,即增益误差表示模数转换特性曲线的实际斜率与理想斜率的偏差,它的数值一般用满量程的百分比来表示。 ADC的理想传输函数的关系式是 (1) 式中Un是没有量化时的标准模拟电压,由于存在增益误差,式(1)变为 (2) 式中的K为增益误差因子。当K=l时,没有增益误差。当K>1时,传输特性曲线的斜率变大,台阶变窄,在输入模拟信号达到满量程值之前,数字输出就己全“l”状态。当K<1时,传输特性曲线的斜率变小,台阶变宽,输入模拟信号己超满量程值时,数字输出还未达到全“1”状态输出。 在一定温度下,可通过外部电路的调整使K=l,从而消除增益误差。 1.3 线性误差 线性误差又称积分线性误差,是指在没有偏移误差和增益误差的情况下,实际传输曲线与理想传输曲线之差。线性误差一般不大于1/2LSB。因为线性误差是由ADC特性随输入信号幅值变化而引起的,因此线性误差是不能进行补偿的,而且线性误差的数值会随温度的升高而增加。 1.4 微分线性误差 微分线性误差是指实际代码宽度与理想代码宽度之间的最大偏差,以LSB为单位,微分线性误差也常用无失码分辨率表示。 由于时间和温度的变化,电源可能会有一定的变化,有时可能是造成影响ADC精度的主要原因,因此在要求比较高的场合,必须保证电源的稳定性,使其随温度和时间的变化量在所允许的范围之内,但在一般的场合,往往可以不考虑其对系统的影响。 2. 嵌入式模数转换器的结构及影响转换的原因和消除方法 所谓嵌入式模数转换器是指将模拟多路开关、采样保持、A/D转换、微控制器集成在一个芯片上,经常采用逐次比较型进行A/D转换,模拟输入信号一般为非负单极性,且输入信号的电压范围为0~AVREF,A/D转换器具有独立的模拟电源与参考电压。 在实际应用中,由于输入信号的输出电阻不同,如果输出电阻过大,会引起实际测量的电压分压过小,因而引起测量值较实际值偏小;或者由于输入信号为双极性模拟信号,不能直接与嵌入式微控制器相连,必须采取特殊措施,使双极性模拟信号转换为可以直接测量的非负单极性信号;还有如果输入信号幅值过大,以至于超过参考电压,也必须引入将压环节,使输入电压低于参考电压,等等,下面对以上影响逐一进行分析。 2.1 模拟输入信号阻抗对采样的影响 采样过程是采样电容充电,跟踪输入模拟信号电压的过程,由于采样电路存在模拟多路开关阻抗、采样开关阻抗和输入信号源阻抗,因此,其转换时间受模拟多路开关阻抗、采样开关阻抗与输入信号源阻抗的影响,模拟多路开关与输入信号源的阻抗越大则其转换时间越长。 逐次比较型A/D的输入端等效电路如下图所示: 其中,RIN为输入模拟信号内阻,VS为输入模拟电压信号,RSH为模拟多路开关与采样开关的等效电阻,VSH为采样电容的充电电压,由等效电路可以看出,输入模拟信号内阻越大,则采样电容充电时间越长,因此,对于采样频率要求越高的场合,要求模拟输入信号内阻必须越小,在应用时必须首先估算在规定的采样频率下,对模拟输入信号内阻的要求。由电路理论可以求得RIN所允许的最大值(假设采样时间为T): 如果信号源内阻达不到要求,则需使用一个输出阻抗很小的缓冲器,例如可以使用电压跟随器,使信号源的输出阻抗达到A/D转换器所要求的输入阻抗的范围之内。 2.2 模拟信号极性及幅值的变换 在数据采集系统中,采集的模拟信号并非都是非负单极性信号,经常是双极性信号,因此在使用嵌入式A/D转换器的时候,需要对模拟输入信号进行极性转换,我们可以采用运算放大器组成的线性网络来对其极性及幅值进行转换,但须注意的是在引入线性网络的同时,又引入了一定量的非线性误差,其线性网络原理图可用下图表示: 只要改变电阻R1、R2、R3的大小以及它们的比例关系便可调整模拟输入信号的大小使其符合测量要求。 3. 嵌入微控制器片内的A/D转换器的具体应用 下面介绍一种常用的芯片AT90S8535关于其A/D转换器使用时应该注意的情况。 AT90S8535是ATMEL公司生产的一款基于AVR RISC结构的,低功耗的8位单片机,其内部集成有模数转换器,模数转换器具有以下特点: l 10位分辨率; l ±2LSB精确度; l 0.5LSB集成线性度; l 65~260μs转换时间; l 8通道; l 自由运行模式和单次转换模式; l ADC转换结束中断; l 休眠模式噪声消除。 AT90S8535具有10位分辨率的逐次逼近型A/D转换器。ADC与一个8通道模拟多路器相连,这样就允许A口作为ADC的输入引脚。ADC包含一个采样保持放大器,ADC框图如下所示: ADC可以工作于两种模式——单次转换和自由运行。在单次转换模式下,用户必须启动每一次转换,而在自由运行模式下,ADC会连续采样并更新ADC数据寄存器。ADCSR的ADFR位用于选择A/D转换器的运行模式。 由于模拟通道的转换总是要延迟到转换的结束,因此,自由运行模式可以用来扫描多个通道,而不中断转换器。一般来说,ADC转换结束中断用于修改通道,但需考虑一下因素;结果一旦准备好,中断就被触发,在自由运行模式,中断一被触发,则下一次转换马上开始。如果中断触发过后,模拟通道改变,而下一次转换已经开始,则仍旧使用以前设置。 3.1 ADC噪声消除技术 AT90S8535的内外部数字电路会产生电磁干扰,从而影响模拟测量精度。如果要求测量精度较高,则应采取如下技术以减少噪声: 1) AT90S8535的模拟部分及其他的模拟器件在PCB板上要有独立的地线层。模拟地与数字地单点相连; 2) 使模拟信号通路尽量短。使模拟走线在模拟地上通过,并尽量保持远离高速数字通路的走线; 3) AVCC要通过一个RC网络连接到VCC; 4) 利用ADC的噪声消除功能减小来自CPU的噪声; 5) 如果A口的一些引脚作数字输出口,则在ADC转换过程中,这些口不要改变其状态。 3.2 ADC的噪声消除功能的实现: ADC可以在CPU空闲模式下进行转换,这一特征使得可以抑制来自CPU的噪声。为了实现这一特性,需采取一下措施: A) 必须选择单次转换模式,ADC的转换结束中断必须使能; ADEN=1;ADSC=0;ADFR=0;ADIE=1; B) 进入空闲模式。一旦CPU停止,则ADC将开始转换; C) 如果在ADC转换结束之前没有发生其它中断,则ADC中断将唤醒MCU并执行ADC转换结束中断。 结论 微控制器片内A/D转换器由于自身的结构、性能特点,在许多应用中会遇到与独立A/D转换器不同的问题,但大多数嵌入微控制器的A/D器都具有像AT90S8535相似的结构和特点,采取的消噪技术和方法也大致相同,我们需根据具体情况具体分析需采取嵌入A/D还是独立A/D,并根据具体需求采取必要的措施来提高A/D转换器的精度。
【参考文献】 【1】模数转换器应用技术 高光天 科学技术出版社 2001年 【2】AVR AT90S8535 data sheet 【3】AVR单片机应用技术 李勋 耿德根 北京航空航天大学出版社 2002年 |