AD轉(zhuǎn)換
D轉(zhuǎn)換就是模數(shù)轉(zhuǎn)換。顧名思義,就是把模擬信號轉(zhuǎn)換成數(shù)字信號。主要包括積分型、逐次逼近型、并行比較型/串并行型、Σ-Δ調(diào)制型、電容陣列逐次比較型及壓頻變換型。
A/D轉(zhuǎn)換器是用來通過一定的電路將模擬量轉(zhuǎn)變?yōu)閿?shù)字量。模擬量可以是電壓、電流等電信號,也可以是壓力、溫度、濕度、位移、聲音等非電信號。但在A/D轉(zhuǎn)換前,輸入到A/D轉(zhuǎn)換器的輸入信號必須經(jīng)各種傳感器把各種物理量轉(zhuǎn)換成電壓信號。
AD轉(zhuǎn)換分類
1)積分型(如TLC7135)
積分型AD工作原理是將輸入電壓轉(zhuǎn)換成時間(脈沖寬度信號)或頻率(脈沖頻率),然后由定時器/計數(shù)器獲得數(shù)字值。其優(yōu)點是用簡單電路就能獲得高分辨率, 但缺點是由于轉(zhuǎn)換精度依賴于積分時間,因此轉(zhuǎn)換速率極低。初期的單片AD轉(zhuǎn)換器大多采用積分型,現(xiàn)在逐次比較型已逐步成為主流。
2)逐次比較型(如TLC0831)
逐次比較型AD由一個比較器和DA轉(zhuǎn)換器通過逐次比較邏輯構(gòu)成,從MSB開始,順序地對每一位將輸入電壓與內(nèi)置DA轉(zhuǎn)換器輸出進行比較,經(jīng)n次比較而輸出 數(shù)字值。其電路規(guī)模屬于中等。其優(yōu)點是速度較高、功耗低,在低分辯率(《12位)時價格便宜,但高精度(》12位)時價格很高。
3)并行比較型/串并行比較型(如TLC5510)
并行比較型AD采用多個比較器,僅作一次比較而實行轉(zhuǎn)換,又稱FLash(快速)型。由于轉(zhuǎn)換速率極高,n位的轉(zhuǎn)換需要2n-1個比較器,因此電路規(guī)模也極大,價格也高,只適用于視頻AD轉(zhuǎn)換器等速度特別高的領(lǐng)域。
串并行比較型AD結(jié)構(gòu)上介于并行型和逐次比較型之間,最典型的是由2個n/2位的并行型AD轉(zhuǎn)換器配合DA轉(zhuǎn)換器組成,用兩次比較實行轉(zhuǎn)換,所以稱為 Half flash(半快速)型。還有分成三步或多步實現(xiàn)AD轉(zhuǎn)換的叫做分級(Multistep/Subrangling)型AD,而從轉(zhuǎn)換時序角度 又可稱為流水線(Pipelined)型AD,現(xiàn)代的分級型AD中還加入了對多次轉(zhuǎn)換結(jié)果作數(shù)字運算而修正特性等功能。這類AD速度比逐次比較型高,電路 規(guī)模比并行型小。
4)(Sigma/FONT》delta)調(diào)制型(如AD7705)
Δ型AD由積分器、比較器、1位DA轉(zhuǎn)換器和數(shù)字濾波器等組成。原理上近似于積分型,將輸入電壓轉(zhuǎn)換成時間(脈沖寬度)信號,用數(shù)字濾波器處理后得到數(shù)字值。電路的數(shù)字部分基本上容易單片化,因此容易做到高分辨率。主要用于音頻和測量。
5)電容陣列逐次比較型
電容陣列逐次比較型AD在內(nèi)置DA轉(zhuǎn)換器中采用電容矩陣方式,也可稱為電荷再分配型。一般的電阻陣列DA轉(zhuǎn)換器中多數(shù)電阻的值必須一致,在單芯片上生成高 精度的電阻并不容易。如果用電容陣列取代電阻陣列,可以用低廉成本制成高精度單片AD轉(zhuǎn)換器。最近的逐次比較型AD轉(zhuǎn)換器大多為電容陣列式的。
6)壓頻變換型(如AD650)
壓頻變換型(Voltage-Frequency Converter)是通過間接轉(zhuǎn)換方式實現(xiàn)模數(shù)轉(zhuǎn)換的。其原理是首先將輸入的模擬信號轉(zhuǎn)換成頻率,然后用計數(shù)器將頻率轉(zhuǎn)換成數(shù)字量。從理論上講這種AD的分辨率幾乎可以無限增加,只要采樣的時間能夠滿足輸出頻率分辨率要求的累積脈沖個數(shù)的寬度。其優(yōu)點是分辯率高、功耗低、價格低,但是需要外部計數(shù)電路共同完成AD轉(zhuǎn)換。
AD轉(zhuǎn)換器功能模塊圖
逐次逼近式ADC的轉(zhuǎn)換原理
?。ㄒ?位的寄存器為例)A/D轉(zhuǎn)換器片內(nèi)有D/A轉(zhuǎn)換和電壓比較器
首先向片內(nèi)D/A轉(zhuǎn)換器輸入1000 0000,若電壓比較器:VIN 》 VN (VN為片內(nèi)D/A轉(zhuǎn)換的輸出,VIN為A/D轉(zhuǎn)換器的輸入電壓),N位寄存器的首位置1 (若VIN 《 VN,則寄存器首位寫0);再向D/A轉(zhuǎn)換輸入1100 0000(首位寫0時,輸入0111 1111),若VIN 》 VN則寄存器第二位置1(若VIN 《 VN,則寫0);再向D/A轉(zhuǎn)換輸入1110 0000(或0011 1111),若VIN 》 VN則寄存器第三位置1(若小于,則寫0);依次下去直到寄存器第8位賦值結(jié)束,控制邏輯監(jiān)測到比較放大器進行8次后,EOC輸入信號,讓A/D轉(zhuǎn)換器將結(jié)果通過鎖存緩存器輸出至D0~D9。
AD0804工作原理
轉(zhuǎn)換狀態(tài):
首先確保片選信號CS處于低電平(只有CS低電平轉(zhuǎn)換器才會工作),在AD0804轉(zhuǎn)換期間,INTR處于高電平,當(dāng)WR賦予一個低脈沖信號(該低脈沖時間要≧100ns,對51系列單片機而言,每條命令執(zhí)行時間即≧100ns)時,轉(zhuǎn)換器開始轉(zhuǎn)換,經(jīng)過一段時間(該時間長短與轉(zhuǎn)換器有關(guān))的工作后,轉(zhuǎn)換結(jié)束。(注意:不工作時,WR引腳是處于高電平的,只有給予其一個低脈沖后,才開始轉(zhuǎn)換)
數(shù)據(jù)讀取狀態(tài):
同樣 確保片選信號CS處于低電平,轉(zhuǎn)換器轉(zhuǎn)換結(jié)束后,INTR將由轉(zhuǎn)換器自動清零(若不用中斷處理AD轉(zhuǎn)換器,IN腳可以不接),用單片機給TR引RD予低電平(注意:賦RD控制轉(zhuǎn)換器內(nèi)部的鎖存器,若不給腳RD電平,將無法輸出轉(zhuǎn)換結(jié)果)后,我們可以將轉(zhuǎn)換結(jié)果從AD轉(zhuǎn)換器的11-18引腳腳讀走。(低WR低賦予脈沖信號時,要等待一段時間才能開始讀取,待讀取結(jié)束后,RD1) 腳要置.
PIC單片機AD通道轉(zhuǎn)換函數(shù)
由于PIC單片機有八路AD轉(zhuǎn)換通道,如果每路都寫一個轉(zhuǎn)換函數(shù),哪樣非常麻煩并且不便于寫程序,緣此我寫了一段如下轉(zhuǎn)換可實現(xiàn)八路通用的函數(shù):
uchar get_ad(uchar n) //帶通道選擇的AD采樣函數(shù)
{
uchar advalu;
ADCON0=n;
ADCON1=0x80; //1000 0000右對齊
delay(2); //延時等待
ADGO=1; //啟動AD轉(zhuǎn)換
while(ADGO); //等待AD轉(zhuǎn)換結(jié)束
advalu=ADRESH; //讀AD轉(zhuǎn)換的值
advalu*=256; //將讀回的AD值左移八位
advalu+=ADRESL; //加上低八位
return (advalu); //返回AD值
}
調(diào)用如下,分別從0到7通道
ad0=get_ad(0xc1);
ad1=get_ad(0xc9);
ad2=get_ad(0xd1);
ad3=get_ad(0xd9);
ad4=get_ad(0xe1);
ad5=get_ad(0xe9);
ad6=get_ad(0xf1);
ad7=get_ad(0xf9);
評論
查看更多