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