ADC模块采样校正技术20122讲解_第1页
ADC模块采样校正技术20122讲解_第2页
ADC模块采样校正技术20122讲解_第3页
ADC模块采样校正技术20122讲解_第4页
ADC模块采样校正技术20122讲解_第5页
免费预览已结束,剩余11页可下载查看

下载本文档

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

文档简介

1、ADC模块采样校正技术1. F2812 的 ADC 模块TMS320F2812内部集成了 ADC转换模块,该模块具有如下的功能:1 . 12位ADC核,内置了双采样保持器( S/H);2 .顺序采样模式或者同步采样模式;3 .模拟输入:0V3V;4 .快速转换时间运行在 25MHz, ADC时钟,或12.5MSPS;5 . 16通道,多路选择输入;6 .自动序列化,在单一时间段内最大能提供 16个自动A/D转换,每个转换可编程对 16个 输入通道中的任何一个进行选择。7 .序列发生器可按 2个独立的8状态序列发生器或1个16状态序列发生器。2. ADC模块误差2.1 误差定义常用的A/D转换器

2、主要存在:失调误差、增益误差和线性误差。这里主要 讨论失调误差和增益误差。理想情况下,ADC模块转换方程为y=xxmi,式中x二 输入计数值=输入电压4095/3 ; y=输出计数值。在实际中,A/D转换模块的各 种误差是不可避免的,这里定义具有增益误差和失调误差的ADC模块的转换方程为y=xXma± b,式中ma为实际增益,b为失调误差。通过对F2812的ADC 信号采集进行多次测量后,发现 ADC增益误差一般在5%以内,即0.95图1理想ADC转换与实际ADC转换2.2 影响分析在计算机测控系统中,对象数据的采集一般包含两种基本物理量:模拟量和 数字量。对于数字量计算机可以直接读

3、取, 而对于模拟量只有通过转换成数字量 才能被计算机所接受,因此要实现对模拟量准确的采集及处理, 模数转换的精度 和准确率必须满足一定的要求。由于F2812的ADC具有一定增益误差的偏移误 差,所以很容易造成系统的误操作。下面分析两种误差对线性电压输入及A/D转换结果的影响。F2812用户手册提供的ADC模块输入模拟电压为03 V,而实际使用中由 于存在增益误差和偏移误差,其线性输入被减小。下面以y=xXl.05+80为例介绍各项值的计算。当输入为 0时,输出为80, 由于ADC的最大输出值为4095,则由式y=xXl.05+80求得输入最大电压值为 2.8013。因此,交流输入电压范围为1.

4、4007 :1.4007 ,此时有效位数 N=ln4015/ln2=11.971,mV/ 计数位=2.8013/4015=0 杆6977 ,其余项计算同上。 表1中的最后一行显示了 ADC操作的安全参数,其有效位数减少为11.865位, mV/计数位从0.7326增加为0.7345 ,这将会使转换结果减少0.2%。在实际应用中,所采集的信号经常为 双极型信号,因此信号在送至ADC之 前需要添加转换电路,将双极型信号转化为单极型信号。典型的转换电路如图2所示。对于ADC模块,考虑到增益误差和失调误差对输入范围的影响,转换电 路需要调整为如图3所示的电路。在图3中,输入增益误差的参考范围已经改 变

5、。图2理想情况下的电压转换电路<±1.36V)A吵 JO单极性愉人(刈 (0.0617- 2MJI 八)图3校正后的电压转换电路对于双极性输入,其0 V输入的增益误差对应单极性输入的1.4315V的增 益误差,因此,原有ADC的增益误差和失调误差被增大了。例如,如果 ADC 的增益误差为5%,失调误差为2%,则其双极性的增益误差计算如下:双极性 输入x' = 0.0000 V单极性的ADC输入电压x = 1.4315 V ,其理想的转换值为 ye=1.4315 >095/3=1954 ,而由ya=1954 X1.05+80计算得实际转换值,则双极 性增益误差为ya

6、-ye=2132-1954=178(9.1% 误差)。通过计算可以看出,ADC的误差大大增加,因此要使用 ADC进行数据采集,就必须对 ADC进行校正,提 高其转换精度。通过以上分析可以看出,F2812的ADC转换精度较差的主要原因是存在增 益误差和失调误差,因此要提高转换精度就必须对两种误差进行补偿。3. ADCJ正措施3.1 .硬件角度(1)硬件滤波,滤除干扰信号;(2)电路板布线时需要注意不要让ADCINxx引脚运行在靠近数字信 号通路的地方,这样能使耦合到ADCS入端的数字信号开关噪声大大 降低;(3)采用适当的隔离技术,将 AD微块电源引脚和数字电源隔离;(4)如果采样电路部分是经过

7、多路开关切换的,可以在多路开关输出上接下拉电阻到地;(5)采样通道上的电容效应也可能会导致A取样误差,因为采样通 道上的等效电容可能还在保持有上一个采样数据的数值的时候,就对当前数据进行采样,会造成当前数据不准确。如果条件允许,可以在 每次转化完成后现将输入切换到参考地,然后在对信号进行下一次采 样。2.软件角度(1)多次采样取平均值算法,最为简单;(2)数字滤波算法,例如采用中值滤波法,具体方法为:连续采样20个数据,对这些数据进行排序之后,去掉最小的5个和最大的5个,然后取中间10个采样数据的平均值。(3)软件校正算法。F2812的ADC转换精度较差的主要原因是存在增益误差(Gain Er

8、ror )和偏置误差(Offset Error ),要提高转换精度就必须对两种误差进行补偿,下面将具体介绍这种实用的补偿方法。理想的12位ADC应该是没有增益误差和偏置误差的,因此其转换的计算公式为:Y=x*mi其中,x=input count=inputvoltage*4095/3.0V丫=output countMi=ideal gain=1但是,实际上F2812的AD是存在增益误差和偏置误差的,其转换的计算公式如式2所示:Y=x*ma+mb其中,ma=actual gainB=actualoffset(与输入为0时相关)Output(y)4095实际的和理想的转换计算曲线如图2所示:ac

9、tual Gam maactual offset bideal Gain = mi755 lnputw(3.0V)在校正的时候,首先选用 ADC的任意两个通道(例如 A1,A2)作为参考输入通道,并分别 输入已知的直流参考电压, 通过读取相应的结果寄存器获取转换值, 利用两组输出值便可求 得ADC模块得校正增益和校正偏置,然后利用这两个值对其他通道转换数据进行补偿。首先,计算两个通道得参考电压转换后得理想结果。在讲述算法之前,我们先来看看各个参Outputfyl4095yLActual offsfft b4095 (10 明0IdeaE Gain = miIdeal Input (x)数之间的

10、关系,如下图所示:Actual Gain - ma由图可以得到各参数之间的关系如下:y = x * ma + bma = (yH - yL)/(xH - xL)b = yL - xL*maCalGain = (xH - xL)/(yH - yL) CalOffset = yL * CalGain - xL x = y * CalGain - CalOffset给A1通道加2.5V,给A2通道加0.5V。A1input=VHigh=2.5V ,贝U 2.5*4095/3.0=3413(理想值)A2input=VLow=0.5V ,贝U 0.5*4095/3.0=683(理想值)校正C语言的算法如

11、下:# defineHIGH_IDEAL_COUNT 3413/ 理想高值# defineLOW_IDEAL_COUNT 683/ 理想低值# define SAMPLES20/ 采样次数 /定义所需的各个变量Uint16Avg_HighActualCount;Uint16Avg_LowActualCount;Uint16Sum_HighActualCount;Uint16Sum_LowActualCount;Uint16 CalGain;Uint16CalOffset;Uint16HighActualCountSAMPLES;Uint16LowActualCountSAMPLES;/变量初始

12、化 Voidinitvar (void) (Avg_HighActualCount=0;Avg_LowActualCount=0;Sum_HighActualCount=0;Sum_LowActualCount=0;CalGain=0;CalOffset=0;Uint16 I;For(i=0;i<SAMPLES;I+) (HighActualCountI=0;LowActualCount=0; /计算增益和偏置的函数Voidcalerror (void) (Static Unit16 i;/采样计数Uint16k;HighActualCount=AdcRegs.AdcResult1>

13、;>4;/读采样数据LowActualCount=AdcRegs.AdcResult2>>4;If(i>=SAMPLES)采样满规定次数 ( i=0;for(k=0;k<SAMPLES;k+) (Sum_HighActualCount+= HighActualCount; Sum_LowActualCount+=LowActualCount; 多次采样取平均值Ave_HighActualCount= Sum_HighActualCount/SAMPLES;/ Ave_LowActualCount= Sum_LowActualCount/SAMPLES;CalGai

14、n = (HIGH_IDEAL_COUNT - LOW_IDEAL_COUNT)/ 计算增益系数/ (Avg_HighActualCount - Avg_LowActualCount);CalOffset =Avg_LowActualCount*CalGain - LOW_IDEAL_COUNT; /计算偏置 I+;/在ADC_ISR中,对各个通道进行校正:InterruptAdc_Isr (void)oooooooooonewResult n= AdcRegs.ADCRESULTn*CalGain - CalOffset;oooooooooo4.实际的ADC基准电路图设计为理想转损并攻为实际

15、转换的度假设实际增益为ma,实际偏移量为b,则模拟量输入与数字量输出 Y之间的 关系为:Y 二 maX b在这个式子里,很明显,ma和b是个未知量。假如我们知道了 ma和b,那 么通过采样结果显示的数据 Y,我们就能够知道实际输入的电压 X。也就是说关 键是如何来求出ma和b我们在初中的时候就学过,对于二元一次方程,如果下 面两条方程组成了二元一次方程组的话,其中 (X1,Y1)和(X2,Y2)已知的话,ma 和b就可以得到了Y1 二 maX1 bY2 = ma X2 b我们可以通过两路精准电源,提供给ADC的任意两个输入通道,例如ADCINA7和ADCINB7,精准电源的输 电压是很容易确定

16、的,也就是X1和X2 , 我们可以通过读取ADCINA7和ADCINB7的转换结果来获得Y1和Y2 ,这样, 我们根据式5,就可以得到转换过程中的实际增益 ma和实际的偏移量b 了,如 式6所示:mama丫2 Y1X2 X1Y1X2 Y2X1X2 X1这样,只要知道数字量转换结果 Y,我们就可以得到实际的输入量 X 了。Y - bX 二 ma此方法需要我们在设计硬件 AD采样电路时设计两路精准电源,具原理就是 将这两路精准电源提供给AD的任意两个通道,通过采集已知的信号来求出2812 的AD采样过程中本身存在的增益系数和偏移量, 再利用这两个系数去校正其他 AD采样通道。试验表明,经过校正后的

17、 AD采样精度基本可以到达千分之一, 这对于在实际应用中足够了。硬件校准时芯片的选择和基本思路如下: 先选择一电压基准,一般实际考虑成本我们选择的时候TLTL431 ,如下图所示:VoutRb -'-T-*T阴极K参考TL431S阳极一 、,R . R2 , e一 一 ,Vout =Vin父如果Vout=3V ,Vin=5V,那么可以根据R1和R2的比值计算2R2出电阻值(电阻一般取 K级的)。电压基准已经出来,如果我们要用两路已知的基准信号其校正其他14路AD采样,我们一般是将这个3V信号经过运放生 成两路子电压,进行采样。假设我们需要进入AD采样的两路电压分别是0.5V和2.5V那

18、么我们先要在一路基准的情况下, 生成两路,这是我们可以选择运放, TL084,LM324这些是首选,一路子信号生成电路如下:已知输入是3V信号,输出分别是0.5V和2.5V,根据最基本的模拟电路知识,就能求出相对应的各个电阻的值。我们在这里用ADINA7和ADINB7两采样端口进行校准。AD校正算法:t1=0; /每次采样校准之后将t1清零,确保每次转换的正确性 RefHighActualCount=0;/将实际采样2.5v寄存器清零。RefLowActualCount=0;/将实际采样0.5v寄存器清零。RefHighActualCount=AdcRegs.RESULT4>>4;

19、/2.5v实际采样值放寄存器 4中。RefLowActualCount=AdcRegs.RESULT3>>4;/0.5v实际采样值放寄存器 3中。If(SampleCount>SAMPLES)SampleCount=SAMPLES;Avg_RefHighActualCount=(Avg_RefHighActualCount*SampleCount+Ref HighActualCount)/(SampleCount+1);/2.5V采样软件滤波。Avg_RefLowActualCount=(Avg_RefLowActualCount*SampleCount+RefL owAct

20、ualCount)/(SampleCount+1); /0.5V采样软件滤波。T2=2730.0;/t2=RefHighActualCount-RefLowActualCount=3413-683=2730.0/实际2.5与0.5v采样值放寄存器后的差值。t1= Avg_RefHighActualCount - Avg_RefLowActualCount; CalGain=t2/t1;/增益误差系数。CalOffset=RefLowActualCount/CalGain-REF_LOW_IDEAL_COUNT;/失调误差系数。/滤波次数。SampleCount+;通过计算出的CalGain和C

21、alOffset ,我们就能得到校正后其他通道的输入电压 了。在AD软件校正方面,我们还可以加入滤波算法,这种方法一般在采样直流 信号中,考虑到成本时用到,一般是把采样值取N个点存储在数组a中,在作处理时比较常用的有两种方法:取 N个点的均值,或者将N个采样点的值按 从小到大进行排列之后,取中间的N/2个值进行求和取平均值。为了使得AD能 够获得比较好的精度,在我们PCB布线时就需要注意,下面这段话引自于TI的手册,以供大家参考:”对 ADCINxx引脚最主要的限制是不要运行在靠近数 字通路的地方,这会使耦合到ADC输入端的数字信号线上的开关噪声减到最小。 此外,可以采用适当的隔离技术,将 A

22、DC模块电源引脚和数字电源隔离。”5.实际的ADC采样电路图我们在项目实际研发过程中采用的AD采样的硬件电路如下图所示:图1为电流信号检测与调理电路,电压信号的检测与调理电路与此相类似。从电流传感器输出的信号CT1首先经过了由R1、C1组成的低通滤波电路,滤除高频干扰信号,然后通过U1构成的电压跟随器, 实现了电路前后两级的隔离。由于2812的I/O 口输入电平必须低于3.3V ,因此在芯片引脚的输入前端加了一个稳压管Z1 ,使AD 输入的电压幅值不超过3V。6. 2327. 23238. 2329. 232310. 23211. 3212 . sgfdg13 .实例一:2.1.1 AD 采样

23、F2812的ADC模块是一个12位的模/数转换器。对于 16路白AD输入 单元,本实验平台为其中的8路AD输入通道确定了功能,配置了相关的单元电路,包括:两路温度信号采集、交流信号采集、温度给定、鼓风机 调速给定、力应变片电桥输出信号采集、压电传感器输出信号采集以及流 量计输出信号采集。如图2.1所示:温度给定和鼓风机调速给定是对电位器上直流电压的 采样(图a),比较简单不作过多介绍;力应变片电桥输出信号采集、压电 传感器输出信号采集(图c)以及流量计输出信号采集(图b)是接口部分,分别与传感器动态试验部分(第四章)和流量仪表部分(第三章)连 接。这里着重介绍温度信号采集和交流信号采集。2.1

24、,1.1温度信号采集两路温度信号分别通过F2812的AD0、AD1通道来采集。由于两个通道完全一样,这里只介绍一路温度信号( ADO)的采集。(1)硬件原理温度传感器采用的是NS公司生产的LM355 ,它具有很高的工作精度和较宽的线性工作范围,它的输出电压与摄氏温度线性成比例,且无需外 部校准或微调,可以提供土 1/4C的常用的室温精度。LM35的输出电压与摄氏温度的线形关系可用下面公式(2.1 )表示,0c时输出为 0 V,每升高1C,输出电压增加10 mV。V°ut(T)=10MT(2.1)式中,输出电压 VOUT单位为mV温度T单位为°C。其电源供应模式有单电源与正负

25、双电源两种。正负双电源的供电模式 可提供负温度的测量,单电源模式在25c下电流约为 50 mA,非常省电。本系统采用的是单电源模式,可测温度范围0 150C。温度传感器电路将测量到的温度信号转换成电压信号输出到信号放大电路,与温度值对应的电压信号经放大后输出至A/D转换电路。电压信号转换成数字量后DSP根据显示需要对数字量进行处理,再送数码管进行显示。关于数码管显示部分的设计在后面“2.2输出单元”中介绍。由于温度传感器 LM35输出的电压范围为 01.5V ,虽然该电压范围在A/D转换器的输入允许电压范围内,但该电压信号较弱,如果不进行放大 直接进行A/D转换则会导致转换成的数字量太小、精度低。系统中选用 低漂移放大器 OPA2335对LM35输出的电压信号进行幅度放大,电

温馨提示

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

最新文档

评论

0/150

提交评论