《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 模擬設(shè)計(jì) > 設(shè)計(jì)應(yīng)用 > TMS320C28x模數(shù)轉(zhuǎn)換器的精度校正
TMS320C28x模數(shù)轉(zhuǎn)換器的精度校正
摘要: TMS320C28x系列DSP內(nèi)部集成ADC轉(zhuǎn)換模塊,,為提高ADC轉(zhuǎn)換精度,對(duì)TMS320F2812的ADC模塊轉(zhuǎn)換誤差及其影響進(jìn)行分析測(cè)試,,提出一種用于提高ADC模塊精度的校正算法,。實(shí)際應(yīng)用證明使用該方法補(bǔ)償效果良好,有效改善ADC的轉(zhuǎn)換精度,,并具有普遍性,。
Abstract:
Key words :

  引 言:

  TMS320F2812是德州儀器公司(TI)推出的主頻最高可達(dá)150 MHz的32位高性能數(shù)字信號(hào)處理器(DSP),內(nèi)部集成了ADC轉(zhuǎn)換模塊,。ADC模塊是一個(gè)12位,、具有流水線結(jié)構(gòu)的模數(shù)轉(zhuǎn)換器,內(nèi)置雙采樣保持器(S/H),,可多路選擇16通道輸入,,快速轉(zhuǎn)換時(shí)間運(yùn)行在25 MHz、ADC時(shí)鐘或12.5 Msps,,16個(gè)轉(zhuǎn)換結(jié)果寄存器可工作于連續(xù)自動(dòng)排序模式或啟動(dòng)/停止模式,。

  在現(xiàn)代電子系統(tǒng)中,作為模擬系統(tǒng)與數(shù)字系統(tǒng)接口的關(guān)鍵部件,,模數(shù)轉(zhuǎn)換器(ADC)已經(jīng)成為一個(gè)相當(dāng)重要的電路單元,,用于控制回路中的數(shù)據(jù)采集。在實(shí)際使用中,,發(fā)現(xiàn)該ADC的轉(zhuǎn)換結(jié)果誤差較大,,如果直接將此轉(zhuǎn)換結(jié)果用于控制回路,必然會(huì)降低控制精度,。為了克服這個(gè)缺點(diǎn),,提高其轉(zhuǎn)換精度,,筆者在進(jìn)行了大量實(shí)驗(yàn)后,提出一種用于提高TMS320F2812ADC精度的方法,,使得ADC精度得到有效提高,。

  1 ADC模塊誤差的定義及影響分析

  1.1 誤差定義

  常用的A/D轉(zhuǎn)換器主要存在:失調(diào)誤差、增益誤差和線性誤差,。這里主要討論失調(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%以內(nèi),,即0.95

理想ADC轉(zhuǎn)換與實(shí)際ADC轉(zhuǎn)換

圖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)確率必須滿足一定的要求,。由于F2812的ADC具有一定增益誤差的偏移誤差,,所以很容易造成系統(tǒng)的誤操作。下面分析兩種誤差對(duì)線性電壓輸入及A/D轉(zhuǎn)換結(jié)果的影響,。

  F2812用戶手冊(cè)提供的ADC模塊輸入模擬電壓為0~3 V,而實(shí)際使用中由于存在增益誤差和偏移誤差,,其線性輸入被減小,分析如表1所列,。

F2812模數(shù)轉(zhuǎn)換精度分析

  下面以y=x×1.05+80為例介紹各項(xiàng)值的計(jì)算,。當(dāng)輸入為0時(shí),,輸出為80,由于ADC的最大輸出值為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=06977,,其余項(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ì)于ADC模塊,,考慮到增益誤差和失調(diào)誤差對(duì)輸入范圍的影響,,轉(zhuǎn)換電路需要調(diào)整為如圖3所示的電路。在圖3中,,輸入增益誤差的參考范圍已經(jīng)改變,。

  對(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)換精度,。

理想情況下的電壓轉(zhuǎn)換電路

圖2理想情況下的電壓轉(zhuǎn)換電路

校正后的電壓轉(zhuǎn)換電路

圖3校正后的電壓轉(zhuǎn)換電路

  2 ADC校正

  2.1校正方法

  通過(guò)以上分析可以看出,,F(xiàn)2812的ADC轉(zhuǎn)換精度較差的主要原因是存在增益誤差和失調(diào)誤差,,因此要提高轉(zhuǎn)換精度就必須對(duì)兩種誤差進(jìn)行補(bǔ)償。對(duì)于ADC模塊采取了如下方法對(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ò)程如下:

 

  ① 獲取已知輸入?yún)⒖茧妷盒盘?hào)的轉(zhuǎn)換值yL和yh,。

  ② 利用方程y=x×ma+b及已知的參考值(xL,,yL)和(xH,,yH)計(jì)算實(shí)際增益及失調(diào)誤差:

  實(shí)際增益ma=(yH-yL)/(xH-xL);

  失調(diào)誤差 b="yL" -xL×ma,。

 ?、?定義輸入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%以內(nèi),,所以可以采用這種方法對(duì)其進(jìn)行校正,。

 

  2.2軟件實(shí)現(xiàn)

  與一般的ADC轉(zhuǎn)換程序相比,帶校正的ADC轉(zhuǎn)換程序需要另外增加兩個(gè)程序段:校正值的計(jì)算以及利用校正值對(duì)ADC進(jìn)行處理,。為了方便操作及轉(zhuǎn)換結(jié)果獲取,,實(shí)現(xiàn)中定義了結(jié)構(gòu)體變量ADCCALIBRATIONVARS,用來(lái)保存ADC轉(zhuǎn)換后的各種數(shù)據(jù),。另外,提高程序的通用性,,采樣的方式,、參考電壓值及高低電壓理想的轉(zhuǎn)換值均在ADC轉(zhuǎn)換頭文件ADCCalibration.h中定義。ADCCALIBRATIONVARS定義如下:

  typedefstruct{

  Uint*RefHighChAddr;//參考高電壓所連通道地址

  Uint*RefHighChAddr;//參考低電壓所連通道地址

  Uint*ChoAddr;//0通道地址

  UintAvg_RefHighActualCount;//參考高電壓實(shí)際轉(zhuǎn)換值

  UintAvg_RefHighActualCount;//參考低電壓實(shí)際轉(zhuǎn)換值

  UintRefHighIdealCount;//參考高電壓理想轉(zhuǎn)換值

  UintRefLowCount;//參考低電壓實(shí)際轉(zhuǎn)換值

  UintCalGain;//校正增益

  UintCalOffset;//校正失調(diào)

  //校正通道的轉(zhuǎn)換值

  UintCh0;

  UintCh16;

  }ADCCALIBRATIONVARS;

  整個(gè)A/D轉(zhuǎn)換任務(wù)由中斷函數(shù)intADC()和主函數(shù)ADCCalibration()構(gòu)成,。中斷函數(shù)主要用于轉(zhuǎn)換數(shù)據(jù)的讀取,,而校正參數(shù)計(jì)算及各通道轉(zhuǎn)換結(jié)果的修正在主函數(shù)完成。校正完后,,將結(jié)果保存到所定義的結(jié)構(gòu)體變量中,。此處,對(duì)ADC的校正采用單采樣單校正的處理方法,,當(dāng)然也可以采用多采樣單校正的處理方法,,但是為了提高精度,如果設(shè)計(jì)系統(tǒng)開(kāi)支允許,,建議最好使用單采樣單校正的方法,,以提高ADC精度。

  2.3實(shí)驗(yàn)結(jié)果

  筆者在自己所使用的F2812系統(tǒng)上進(jìn)行了實(shí)驗(yàn),,選用1 V和2 V作為參考電壓,,選用通道A6和A7作為參考通道,通過(guò)對(duì)0 V,、0.5 V,、1.5 V、2.5 V校正前后的數(shù)據(jù)進(jìn)行比較,,發(fā)現(xiàn)采用上述校正方法后,,ADC的轉(zhuǎn)換準(zhǔn)確度明顯得到改善,比較結(jié)果如表2所列,。

校正方法后

注:由參考電壓計(jì)算得:CalGain=0.965,;CalOffset=6.757。

  表2中所給出的數(shù)據(jù)只是筆者進(jìn)行大量實(shí)驗(yàn)后所得數(shù)據(jù)的一組,,實(shí)驗(yàn)證明通過(guò)校正后ADC的誤差能被控制在0.5%以內(nèi),,這對(duì)大多數(shù)測(cè)控系統(tǒng)來(lái)說(shuō)已滿足要求,對(duì)于轉(zhuǎn)換精度要求更高的系統(tǒng),,可以采用外擴(kuò)A/D轉(zhuǎn)換器,。 

  結(jié)語(yǔ)

  A/D轉(zhuǎn)換器是數(shù)據(jù)采集電路的核心部件,其良好的精度與準(zhǔn)確性是提高數(shù)據(jù)采集電路性能的關(guān)鍵,。TMS320F2812作為TI公司推出的一款集微控制器及數(shù)字信號(hào)處理器于一身的32位處理器,,以其運(yùn)行速度高和強(qiáng)大的處理功能得到廣泛應(yīng)用,而對(duì)其ADC模塊精度的提高,,將進(jìn)一步提高其在控制領(lǐng)域中的應(yīng)用,。本文提出的用于提高ADC模塊精度的校正算法,經(jīng)實(shí)際應(yīng)用證明實(shí)用可行。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。