【經(jīng)驗(yàn)分享】提高數(shù)字處理器ADC精度的方法
ADC模塊是一個(gè)12位、具有流水線(xiàn)結(jié)構(gòu)的模數(shù)轉(zhuǎn)換器,用于控制回路中的數(shù)據(jù)采集。本文提出一種用于提高TMS320F2812ADC精度的方法,使得ADC精度得到有效提高。
本文引用地址:http://m.butianyuan.cn/article/201603/288611.htm1 ADC模塊誤差的定義及影響分析
1.1 誤差定義
常用的A/D轉(zhuǎn)換器主要存在:失調(diào)誤差、增益誤差和線(xiàn)性誤差。這里主要討論失調(diào)誤差和增益誤差。理想情況下,ADC模塊轉(zhuǎn)換方程為y=x×mi,式中x=輸入計(jì)數(shù)值 =輸入電壓×4095/3;y=輸出計(jì)數(shù)值。在實(shí)際中,A/D轉(zhuǎn)換模塊的各種誤差是不可避免的,這里定義具有增益誤差和失調(diào)誤差的ADC模塊的轉(zhuǎn)換方程為y=x×ma±b,式中ma為實(shí)際增益,b為失調(diào)誤差。通過(guò)對(duì)F2812的ADC信號(hào)采集進(jìn)行多次測(cè)量后,發(fā)現(xiàn)ADC增益誤差一般在5%以?xún)?nèi),即0.95。
圖1理想ADC轉(zhuǎn)換與實(shí)際ADC轉(zhuǎn)換
1.2 影響分析
在計(jì)算機(jī)測(cè)控系統(tǒng)中,對(duì)象數(shù)據(jù)的采集一般包含兩種基本物理量:模擬量和數(shù)字量。對(duì)于數(shù)字量計(jì)算機(jī)可以直接讀取,而對(duì)于模擬量只有通過(guò)轉(zhuǎn)換成數(shù)字量才能被計(jì)算機(jī)所接受,因此要實(shí)現(xiàn)對(duì)模擬量準(zhǔn)確的采集及處理,模數(shù)轉(zhuǎn)換的精度和準(zhǔn)確率必須滿(mǎn)足一定的要求。由于F2812的ADC具有一定增益誤差的偏移誤差,所以很容易造成系統(tǒng)的誤操作。下面分析兩種誤差對(duì)線(xiàn)性電壓輸入及A/D轉(zhuǎn)換結(jié)果的影響。
F2812用戶(hù)手冊(cè)提供的ADC模塊輸入模擬電壓為0~3 V,而實(shí)際使用中由于存在增益誤差和偏移誤差,其線(xiàn)性輸入被減小。
下面以y=x×1.05+80為例介紹各項(xiàng)值的計(jì)算。當(dāng)輸入為0時(shí),輸出為80,由于A(yíng)DC的最大輸出值為4095,則由式y(tǒng)=x×1.05+80求得輸入最大電壓值為2.8013。因此,交流輸入電壓范圍為1.4007±1.4007,此時(shí)有效位數(shù)N=ln4015/ln2=11.971,mV/計(jì)數(shù)位=2.8013/4015=06977,其余項(xiàng)計(jì)算同上。表1中的最后一行顯示了ADC操作的安全參數(shù),其有效位數(shù)減少為11.865位,mV/計(jì)數(shù)位從0.7326增加為0.7345,這將會(huì)使轉(zhuǎn)換結(jié)果減少0.2%。
在實(shí)際應(yīng)用中,所采集的信號(hào)經(jīng)常為雙極型信號(hào),因此信號(hào)在送至ADC之前需要添加轉(zhuǎn)換電路,將雙極型信號(hào)轉(zhuǎn)化為單極型信號(hào)。典型的轉(zhuǎn)換電路如圖2所示。對(duì)于A(yíng)DC模塊,考慮到增益誤差和失調(diào)誤差對(duì)輸入范圍的影響,轉(zhuǎn)換電路需要調(diào)整為如圖3所示的電路。在圖3中,輸入增益誤差的參考范圍已經(jīng)改變。
圖2理想情況下的電壓轉(zhuǎn)換電路
圖3校正后的電壓轉(zhuǎn)換電路
對(duì)于雙極性輸入,其0 V輸入的增益誤差對(duì)應(yīng)單極性輸入的1.4315V的增益誤差,因此,原有ADC的增益誤差和失調(diào)誤差被增大了。例如,如果ADC的增益誤差為5%,失調(diào)誤差為2%,則其雙極性的增益誤差計(jì)算如下:雙極性輸入x′= 0.0000 V,單極性的ADC輸入電壓x = 1.4315 V,其理想的轉(zhuǎn)換值為ye=1.4315×4095/3=1954,而由ya=1954×1.05+80計(jì)算得實(shí)際轉(zhuǎn)換值,則雙極性增益誤差為ya-ye=2132-1954=178(9.1%誤差)。通過(guò)計(jì)算可以看出,ADC的誤差大大增加,因此要使用ADC進(jìn)行數(shù)據(jù)采集,就必須對(duì)ADC進(jìn)行校正,提高其轉(zhuǎn)換精度。
2 ADC校正
2.1校正方法
通過(guò)以上分析可以看出,F(xiàn)2812的ADC轉(zhuǎn)換精度較差的主要原因是存在增益誤差和失調(diào)誤差,因此要提高轉(zhuǎn)換精度就必須對(duì)兩種誤差進(jìn)行補(bǔ)償。對(duì)于A(yíng)DC模塊采取了如下方法對(duì)其進(jìn)行校正。
選用ADC的任意兩個(gè)通道作為參考輸入通道,并分別提供給它們已知的直流參考電壓作為輸入(兩個(gè)電壓不能相同),通過(guò)讀取相應(yīng)的結(jié)果寄存器獲取轉(zhuǎn)換值,利用兩組輸入輸出值求得ADC模塊的校正增益和校正失調(diào),然后利用這兩個(gè)值對(duì)其他通道的轉(zhuǎn)換數(shù)據(jù)進(jìn)行補(bǔ)償,從而提高了ADC模塊轉(zhuǎn)換的準(zhǔn)確度。圖1示出了如何利用方程獲取ADC的校正增益和校正失調(diào)。具體計(jì)算過(guò)程如下:
?、?nbsp;獲取已知輸入?yún)⒖茧妷盒盘?hào)的轉(zhuǎn)換值yL和yh。
?、?nbsp;利用方程y=x×ma+b及已知的參考值(xL,yL)和(xH,yH)計(jì)算實(shí)際增益及失調(diào)誤差:
實(shí)際增益ma=(yH-yL)/(xH-xL);
失調(diào)誤差 b=“yL” -xL×ma。
?、?nbsp;定義輸入x=y×CalGain-CalOffset,則由方程y=x×ma+b得校正增益CalGain=1/ma=(xH-xL)/(yH -yL),校正失調(diào)CalOffset=b/ma=yL/ma-xL。
④ 將所求的校正增益及校正失調(diào)應(yīng)用于其他測(cè)量通道,對(duì)ADC轉(zhuǎn)換結(jié)果進(jìn)行校正。
上述即為實(shí)現(xiàn)ADC校正的全過(guò)程,通過(guò)使用這種方法,ADC的轉(zhuǎn)換精度有很大提高。由于這種方法是通過(guò)某個(gè)通道的誤差去修正其他通道的誤差,因此要采用這種方法,必須保證通道間具有較小的通道誤差。對(duì)F2812ADC轉(zhuǎn)換模塊,由于其通道間的增益及失調(diào)誤差均在0.2%以?xún)?nèi),所以可以采用這種方法對(duì)其進(jìn)行校正
評(píng)論