用梯度均值法提高LPC2138的模/數(shù)轉(zhuǎn)換器的分辨率
在數(shù)據(jù)采集系統(tǒng)中,模/數(shù)轉(zhuǎn)換器是其中至關(guān)重要的環(huán)節(jié)。模/數(shù)轉(zhuǎn)換器的精度以及系統(tǒng)的成本直接影響到系統(tǒng)的實(shí)用性,因此,如何提高模/數(shù)轉(zhuǎn)換器的精度和降低系統(tǒng)的成本,是衡量系統(tǒng)是否具有實(shí)際應(yīng)用價(jià)值的標(biāo)準(zhǔn)。
現(xiàn)在很多微控制器內(nèi)部集成了A/D芯片,但常常達(dá)不到應(yīng)用的要求,于是不得不浪費(fèi)內(nèi)部的A/D資源,花費(fèi)資金去外擴(kuò)一枚精度更高的A/D芯片。本設(shè)計(jì)實(shí)現(xiàn)了一種提高了已有的ADC分辨率的方法,適用于已有ADC分辨率達(dá)不到要求和精度要求不是特別嚴(yán)格的情況。
1 梯度均值A(chǔ)/D方案
定義1 設(shè)x為實(shí)數(shù),[x]表示不大于x的最大整數(shù),則稱f(x)=[x]為x的取整函數(shù)。
定義2 設(shè)x為實(shí)數(shù),x>表示對(duì)小數(shù)部分四舍五入的取整運(yùn)算,則稱g(x)=x>為x的量化函數(shù)。
顯然,令V通過量化單位為q的A/D系統(tǒng),恰好等價(jià)于對(duì)x=V/q的量化運(yùn)算(記為D=V/g>),穩(wěn)定的D輸出才有意義。為此系統(tǒng)總的噪聲水平應(yīng)小于q/2,否則D只能穩(wěn)定讀出與此相適應(yīng)的前N位有效數(shù)字,其后各位將被舍棄。由于噪聲干擾是隨機(jī)的,為了降低有效q值,提高系統(tǒng)容量,通常采取多次測(cè)量的均值濾波法進(jìn)行處理。在此基礎(chǔ)上提出的梯度均值A(chǔ)/D方案,利用了數(shù)論中的整數(shù)特性,其結(jié)構(gòu)如圖1所示。
不妨稱其中的A/D轉(zhuǎn)換部分為基本量化系統(tǒng),階梯形輸入信號(hào)為Vis,其幅度值
以等梯度遞增,總幅度為1個(gè)量化單位q,其中m為正整數(shù)。該系統(tǒng)的輸入信號(hào)V和階梯波信號(hào)Vis依次疊加后送入基本量化系統(tǒng),其量化輸出信號(hào)Di輸出到數(shù)據(jù)處理單元進(jìn)行存儲(chǔ)、處理。以基本量化系統(tǒng)的2m次Di的穩(wěn)定量化輸出的均值為系統(tǒng)輸出,那么,有梯度均值A(chǔ)/D方案基本定理:設(shè)基本量化系統(tǒng)的量化單位為q,傳遞函數(shù)為
則圖1所示A/D系統(tǒng)的等效量化單位為q/2m,傳遞函數(shù)為
即系統(tǒng)容量擴(kuò)大為基本量化系統(tǒng)容量的2m倍。
梯度均值法與統(tǒng)計(jì)均值法的性能比較:
?、俳y(tǒng)計(jì)均值法每次采樣必須讀出被噪聲干擾的第O.1LSB位,然而它是不穩(wěn)定的;而梯度均值法每次采樣只需讀出1LSB位,該位是穩(wěn)定的。因此,單次采樣所用的時(shí)間,后者比前者要短。
?、诶媒y(tǒng)計(jì)均值法,欲得到穩(wěn)定的0.1LSB位輸出,則噪聲水平要降為1/lO(根據(jù)σ(.x)∝1/n),需采樣100次;而梯度均值法只需采樣10次,就可達(dá)到同樣的效果。
?、鄄捎媒y(tǒng)計(jì)均值法,響應(yīng)長(zhǎng),效率低。對(duì)于實(shí)時(shí)性要求高、需要快速響應(yīng)的場(chǎng)合,采用梯度均值法效果更好。
2 系統(tǒng)設(shè)計(jì)
使用周立功公司的EasyARM2131開發(fā)板,并設(shè)計(jì)簡(jiǎn)單的外圍電路。EasyARM2131開發(fā)板采用NXP公司基于ARM7TDMl一S核、單電源供電、LQFP64封裝的LPC2138芯片,具有JTAG仿真調(diào)試、ISP編程等功能,提供RS232接口電路、I2C存儲(chǔ)器電路、鍵盤、LED、蜂鳴器等常用功能部件,極大地方便了用戶進(jìn)行32位ARM嵌入式系統(tǒng)的開發(fā)實(shí)驗(yàn)。LPC2138內(nèi)A/D的分辨率為10位,可以將其擴(kuò)展為12位,甚至更高。
系統(tǒng)的原理示意圖如圖2所示,外圍電路的核心是階梯波發(fā)生器和同相加法器。
2.1 階梯波發(fā)生器
LPC2138內(nèi)部的D/A轉(zhuǎn)換器是單極性的,只能生成單極性階梯波,而梯度均值法要求使用雙極性階梯波。為此采用了差動(dòng)運(yùn)放電路,不僅將單極性階梯波轉(zhuǎn)換為雙極性,而且進(jìn)行降壓,使階梯波總電壓幅度為A/D轉(zhuǎn)換器的一個(gè)量化單位。具體電路如圖3右半部分所示。
根據(jù)運(yùn)算放大器“虛短”、“虛斷”原則和疊加原理,求得
其中RF為電位器,可以調(diào)節(jié)阻值并改變軟件設(shè)置,提高A/D系統(tǒng)的精度。按照設(shè)計(jì)要求,阻值分別選擇R1=R2=10 kΩ,R3=Rf=2.5kΩ,使Rf/R1=1/4。
幅度極性變換電路要用到(1/2)Vref,所以要由基準(zhǔn)電壓源分壓得到。為了防止電壓被拉低,增加一個(gè)電壓跟隨電路,如圖3左半部分所示。其中,參數(shù)選擇R8=R9=10 kΩ,運(yùn)放使用OP07。
2.2 同相加法電路
同相加法電路如圖4所示。參數(shù)選擇R4=R5=1ckΩ,R6=R7=10 kΩ,所以V1=Vin+V0,其中Vin為輸入電壓,V0為階梯波電壓,V1輸入到ARM內(nèi)部處理。
外圍電路原理總圖如圖5所示。
3 系統(tǒng)軟件設(shè)計(jì)
軟件部分采用C語言編寫,使用ADSl.2開發(fā)環(huán)境,并移植了μC/OS—II操作系統(tǒng)。細(xì)節(jié)見參考文獻(xiàn)。
程序主要由以下幾部分組成:主程序,負(fù)責(zé)初始化操作系統(tǒng)和創(chuàng)建任務(wù);任務(wù)1,負(fù)責(zé)初始化目標(biāo)板;任務(wù)2,負(fù)責(zé)目標(biāo)板與上位機(jī)的串口通信;中斷服務(wù)程序,負(fù)責(zé)采樣和計(jì)算電壓。各部分流程如圖6~圖9所示。
4 結(jié) 論
經(jīng)過測(cè)試,該A/D系統(tǒng)測(cè)得電壓比直接測(cè)量的電壓更準(zhǔn)確;A/D系統(tǒng)分辨率越高,測(cè)量的電壓越準(zhǔn)確。由于器件和工藝等原因,本系統(tǒng)有一定的誤差,但基本達(dá)到設(shè)計(jì)要求,證明采用梯度均值法的A/D系統(tǒng)是完全可以實(shí)現(xiàn)的。而且如果采用更好的工藝和精密的元器件,還能提高本A/D系統(tǒng)的準(zhǔn)確度。
評(píng)論