摘 要:模數轉換的分辨率與器件的數字位數有關,位數越多分辨率越高,分辨率越高器件的成本也越高。C8051F020的片內ADC是12位的,為了既降低系統成本又獲得較高的分辨率,介紹了過采樣和求均值方法的實現原理。該方法有效提高轉換的分辨率和信噪比,但增加CPU處理時間并降低了數據吞吐率。
關鍵詞:ADC;過采樣;C8051F020;分辨率
在SOC中,模數轉換器是模擬與數字信號之間的有源接口器件,作用是將模擬信號轉換為數字信號。ADC的關鍵特性是精度,精度越高,則ADC器件的成本也越高。為了既降低系統成本而又獲得較高的精度,可采用過采樣和求均值技術增加ADC精度的位數,從而提高ADC的精度。
1 工作原理
根據奈奎斯特定理所要求的采樣頻率為奈奎斯特頻率fn:
fn=2fm 式中fm是輸入信號的最高頻率
過采樣是使用遠大于奈奎斯特采樣頻率的頻率對輸入信號進行采樣,即采樣頻率fs>>fn。過采樣能提高測量分辨率,每增加一位分辨率,信號必須被以4倍的速率過采樣。過采樣頻率與分辨率及采樣頻率之間的關系如下:
fos=4wfs
式中:w是所希望增加的分辨率位數fs是初始采樣頻率要求fos是過采樣頻率。
2 理論分析
以C8051F020芯片使用12位的ADC采集溫度值為例,若每秒輸出一個溫度值(1Hz),為了將測量分辨率增加到16位,按過采樣原理計算過采樣頻率fos=44×1(Hz),即以fos=256Hz的采樣頻率對溫度傳感器進行過采樣,在所要求的采樣周期內收集到足夠的樣本,對這些樣本求均值便可得到16位的輸出數據。 將256個連續樣本加在一起然后將總和除以16或將總和右移4位,這樣得到的結果是16位的有用數據。每采樣256個樣本計算得到一個結果,對數據進行保存或處理,然后開始下一個數據的采集。
用C8051F020片內100ksps12位ADC對片內溫度傳感器進行16位過采樣和求均值,并將16位精度的測量值從硬件UART輸出。過采樣率為256,將256個連續的ADC樣本累加到變量accumulator中,在完成累加后再將accumulator右移4位并將結果存入變量result中,在得到計算結果后accumulator被清0,準備進行下一次計算。程序中對ADC樣本的累加是在完成ADC轉換的中斷服務程序ADC_isr中進行的。
使用過采樣和求均值技術將對溫度傳感器的測量精度從12位提高到16位,對溫度測量中的分辨率提高進行一下比較,片內溫度傳感器的滿度輸出略小于1伏,假設使用2.43V的參考電壓Vref,可以計算對于12位和16位測量的代碼寬度和溫度分辨率(可測量的最小溫度變化)。
溫度每變化一個攝氏度片內溫度傳感器的電壓將變化2.86mV,在使用2.43V的Vref、且PGA增益為2時12位測量的電壓分辨率是:
12位測量的溫度分辨率(每個ADC碼所代表的攝氏度數)是:
用過采樣和求均值技術使有效位數增加到16位時,新的分辨率計算如下:
16位測量的溫度分辨率(每個ADC碼所代表的攝氏度數)是:
在采用過采樣和求均值技術的情況下用同一個片內12位ADC可以測量的最小溫度變化是0.007攝氏度。
3 過采樣速率分析
如果一個ADC的最大采樣速率是100ksps,在不采用過采樣和求均值技術的情況下,可以得到100ksps的輸出字速率。
采用過采樣和求均值技術數據吞吐率將降低到初始值除以4w(w為增加的分辨位數)。
在上面所提供的例子中4w為256,輸出字速率將是100ksps/256=390個樣本/秒(390Hz)。
增加分辨率需要增加采樣速率和計算時間,在每個采樣周期(1/fs)內CPU的帶寬將降低。是以犧牲吞吐率和降低CPU帶寬為代價的。
4 過采樣與噪聲、分辨率的關系
量化誤差是由相鄰ADC碼的間距所決定,因此相鄰ADC碼之間的距離為:
式(1)中,N為ADC碼的位數;Vr為基準電壓。
則量化誤差ed,即
奈奎斯特定理指出,如果被測信號的頻帶寬度小于采樣頻率的1/2,那么可以重建此信號。現用白噪聲近似描繪實際信號中的噪聲,在信號頻帶中的噪聲能量譜密度為:
式(3)中,e(f)為帶內能量譜密度;ea為平均噪聲功率;fs為采樣頻率。
ADC量化噪聲的功率關系為:
由于量化噪聲會引發固定噪聲功率,因此針對增加的有效位數能夠計算過采樣比:
式(5)中P為過采樣比;fs為采樣頻率;fm為輸入信號最高頻率。
低通濾波器輸出端的帶內噪聲功率見下式:
由此可見,過采樣能減少噪聲功率卻又對信號功率不產生影響,在減小量化誤差的同時,能夠獲得與高分辨率ADC相同的信噪比,從而增加被測數據的有效位數。通過提高采樣頻率或過采樣比可提高ADC有效分辨率。
5 結語
經理論分析,實驗結果表明,當ADC噪聲近似為白噪聲時,可以使用過采樣技術減少ADC輸出噪聲,提高ADC的信噪比及分辨率。過采樣方法受A/D轉換器采樣速度,輸入信號頻率及輸入信號上噪聲等因素的影響。當A/D轉換器采樣速率過低或信號頻率過高時,不適宜采用過采樣來提高ADC的精度;當輸入噪聲功率小于量化噪聲功率時,過采樣也不能提高ADC的精度。模擬到數字的數據轉換過程產生了噪聲,過采樣和求均值方法能夠減少一些固定類型的噪聲,增加了數據轉換的SNR以及有效位數。
過采樣和求均值來提高ADC分辨率技術使用C8051F020片內ADC進行的溫度測量獲得了更高的測量分辨率,這樣不僅可以降低成本,簡化外圍電路,進一步提高系統的可靠性和精度,而且對于其他領域的參數測量,具有一定的實用和推廣價值。
[參考文獻]
[1]鮑可進.SOC單片機原理與應用[M].北京:清華大學出版社,2011.
[2]史建華.提高ADC分辨率的方法研究[J].山西:山西大同大學學報,2009.
[3]栗紅霞.一種提高ADC0809分辨率的新方案[J].山東:山東輕工業學院學報,2012.
[4]于光平,張昕.過采樣方法與提高ADC分辨率的研究[J].遼寧:沈陽工業大學學報,2006.