楊衛(wèi)平 王靜 易冬柏
(珠海零邊界集成電路有限公司 廣東省珠海市 519070)
模數(shù)轉(zhuǎn)換器ADC也稱為A/D轉(zhuǎn)換器,用于將自然界中感知的模擬信號(hào)轉(zhuǎn)換成計(jì)算機(jī)可處理的數(shù)字信號(hào),廣泛應(yīng)用在各種儀器儀表和日常電器設(shè)備中。實(shí)際電路因制造工藝偏差,器件失配、環(huán)境干擾等因素,ADC轉(zhuǎn)換存在誤差[1],失調(diào)誤差和增益誤差是ADC中最常見的兩種誤差:失調(diào)誤差是指ADC實(shí)際特性曲線和過原點(diǎn)的無限精度特性之間的水平差值;增益誤差是指ADC實(shí)際特性曲線和無限精度特性曲線之間的差值,可以認(rèn)為是無限精度曲線斜率向上增加1或向下減少1的變化量。
本文根據(jù)誤差的偏向?qū)DC分為負(fù)偏差型和正偏差型,將轉(zhuǎn)換結(jié)果相比理想值偏低稱為負(fù)偏差型,將轉(zhuǎn)換結(jié)果相比理想值偏高稱為正偏差型。ADC的精度是其最重要的指標(biāo)之一,決定了機(jī)器系統(tǒng)能否準(zhǔn)確的獲取到自然界信息,ADC轉(zhuǎn)換誤差直接影響其精度,因此誤差校正十分重要。
通過ADC采集0電壓和最高參考電壓兩點(diǎn)值來計(jì)算得到失調(diào)誤差和增益誤差,通過補(bǔ)償達(dá)到校正ADC失調(diào)誤差的目的。其中計(jì)算 ADC輸出結(jié)果和0的差值,即得到失調(diào)誤差值,用這個(gè)值去補(bǔ)償ADC的轉(zhuǎn)化結(jié)果作為最終輸出,達(dá)到失調(diào)校正的目的;計(jì)算輸入輸出特性曲線的斜率值去補(bǔ)償增益誤差導(dǎo)致的影響[2]。這種方法比較簡(jiǎn)單,但這種方法不能適用所有類型的ADC校正。比如當(dāng)ADC在0電壓附近的轉(zhuǎn)換結(jié)果偏低(負(fù)偏差型),就會(huì)出現(xiàn)0電壓附近的一段輸入電壓區(qū)域?qū)?yīng)的轉(zhuǎn)換結(jié)果都為0,通過采集0電壓輸入將得不到失調(diào)誤差信息;若ADC在最高參考電壓附近的一段電壓區(qū)間提前滿幅輸出了(正偏差型),通過采集最高參考電壓將得不到準(zhǔn)確的斜率信息。
對(duì)于一個(gè)輸入電壓信號(hào)Vin, N比特ADC的理想輸出(目標(biāo)輸出值)ADC_OUT計(jì)算公式如公式1所示。ADC采集輸入電壓Vin得到轉(zhuǎn)換實(shí)測(cè)值,通過計(jì)算該電壓轉(zhuǎn)換值與理想ADC輸出值之間的差來得到失調(diào)誤差,達(dá)到校正ADC失調(diào)誤差的目的。
但是對(duì)于參考源變化的應(yīng)用場(chǎng)合,參考源的不確定將導(dǎo)致理想輸出值不確定,從而得不到準(zhǔn)確的失調(diào)誤差信息。比如使用的外部參考源是電池供電,隨著充放電過程,參考源會(huì)變化;或者使用內(nèi)部參考源,因供電電壓或溫度等環(huán)境的影響,內(nèi)部參考源也會(huì)有變化。此時(shí)需要額外的電路測(cè)量準(zhǔn)確的參考電壓值VREF,或者需要復(fù)雜的可調(diào)節(jié)的參考電壓源電路來產(chǎn)生特定的校正電壓,因此該方法不夠簡(jiǎn)潔實(shí)用。
本文旨在提供一種簡(jiǎn)單高效的ADC失調(diào)誤差和增益誤差自動(dòng)校正方法。如附圖1所示,首先讓ADC進(jìn)入校正模式,在這個(gè)模式下通過參考比例產(chǎn)生電路11產(chǎn)生兩路與參考電壓VREF成特定比例的電壓V1和V2,V1=k1*VREF,V2=k2*VREF??刂仆ǖ肋x擇電路12依次將V1和V2輸入到數(shù)據(jù)轉(zhuǎn)換單元13中,將 V1和V2電壓值轉(zhuǎn)換成原始數(shù)字輸出ADC_OUT1和ADC_OUT2,這兩個(gè)結(jié)果包含失調(diào)誤差Err_oあset和增益誤差Err_Gain,原始數(shù)字輸出和這兩個(gè)誤差參數(shù)的關(guān)系如下:
其中,電壓V1和V2對(duì)應(yīng)的理想ADC(無偏差)輸出值如下:
圖1:本文提出ADC誤差校正方法對(duì)應(yīng)電路結(jié)構(gòu)圖
圖2:一種參考比例產(chǎn)生電路的實(shí)現(xiàn)示例圖
圖3:ADC誤差校正前后效果對(duì)比圖
取k2>k1, V2>V1,便可得到ADC_OUT2> ADC_OUT1,ADC_OUT_ID2> ADC_OUT_ID1.根據(jù)式(2)、(3)、(4)、(5)可以得到失調(diào)誤差值和增益誤差值如下:
通過上式(6)、(7)得到失調(diào)誤差和增益誤差參數(shù)Err_Gain和Err_Oあset ,保存在參數(shù)存儲(chǔ)及校正輸出單元14中,后續(xù)ADC去采集任意信號(hào)Vx,只要通過參數(shù)存儲(chǔ)及校正輸出單元14將這兩個(gè)參數(shù)補(bǔ)償回來就可以得到校正后的轉(zhuǎn)換輸出值Data_outx,校正輸出值計(jì)算公式如下:
可以在每次上電使用ADC時(shí)進(jìn)行一次校正參數(shù)獲取,然后保存在存儲(chǔ)單元中,后續(xù)信號(hào)采集只需要將校正參數(shù)計(jì)算補(bǔ)償回來就可以得到準(zhǔn)確的校正輸出值。
本校正方法的優(yōu)勢(shì)如下:
(1)可以很方便地設(shè)置合理的系數(shù)k1和k2, 使得V1的取值要略大于電路最低電平,V2取值要略小于系統(tǒng)參考電壓,從而不會(huì)出現(xiàn)上述傳統(tǒng)方法一種描述的問題,本方法能滿足所有類型ADC的校正需求。
(2)采用比例設(shè)計(jì),即使不知道當(dāng)前參考源VREF的準(zhǔn)確值也能完成校正過程得到準(zhǔn)確的校正輸出。
針對(duì)V1、V2的產(chǎn)生與選取,給出一種簡(jiǎn)單實(shí)用的實(shí)現(xiàn)電路,如圖2所示。電阻R1,R2,…Rn 為n個(gè)阻值相等的電阻,對(duì)參考電壓VREF進(jìn)行分壓得到V1=k1*VREF,V2=k2*VREF.開關(guān)SW1在校正過程中閉合,校正完成斷開,節(jié)省功耗。
ADC誤差校正的操作流程為:
(1)生成至少兩路輸入電壓信號(hào);
(2)計(jì)算失調(diào)誤差和增益誤差;
(3)正常輸入,對(duì)轉(zhuǎn)換輸出進(jìn)行校正;
(4)完成校正的輸出值,應(yīng)該與理想輸出值進(jìn)行比較,差值一般在1LSB以內(nèi)。
特別強(qiáng)調(diào)的是,每次上電后,第(4)步這樣的驗(yàn)算過程至少完成幾次,確保計(jì)算誤差值的正確性。
對(duì)12bit ADC電路進(jìn)行仿真,參考電壓為5V, 輸入電壓:k1=1/4, k2=3/4,故輸入電壓分別為1.25V和3.75V,ADC實(shí)際轉(zhuǎn)換結(jié)果分別為973和2980,理想值根據(jù)計(jì)算應(yīng)分別為1024和3071, 帶入(6)、(7)兩式計(jì)算可得增益誤差系數(shù)Err_Gain=0.98(即2%的增益誤差),Err_Oあset=30(代表有-30LSB 失調(diào)誤差)。把30和0.98這兩個(gè)參數(shù)存儲(chǔ)在寄存器中,后續(xù)轉(zhuǎn)換結(jié)果全部補(bǔ)回去即可得到校正后的ADC輸出結(jié)果,從0到VREF遍歷輸入,全范圍內(nèi)校正結(jié)果如圖3所示,可見校正值與理想值完全吻合,達(dá)到校正目的。
本文通過公式推理,提出一種ADC誤差校正方法,并給出具體實(shí)現(xiàn)電路和操作流程。本文方法可以在參考源具體值未知的情況下滿足所有正偏差型和負(fù)偏差型ADC的增益誤差和失調(diào)誤差校正,最后通過實(shí)例仿真驗(yàn)證了該方法的有效和準(zhǔn)確性。