當(dāng)前位置:首頁(yè) > 嵌入式培訓(xùn) > 單片機(jī)學(xué)習(xí) > 單片機(jī)教程 > 單片機(jī)AD轉(zhuǎn)換方法 為什么要AD轉(zhuǎn)換?
單片機(jī)AD轉(zhuǎn)換方法 為什么要AD轉(zhuǎn)換?所有單片機(jī)一般只能處理數(shù)字信號(hào)。可是當(dāng)單片機(jī)需要獲取電路上的某一點(diǎn)電壓值的時(shí)候,就必須使用AD轉(zhuǎn)換。如果你直接把單芯片的引腳連接到電路的點(diǎn)上,單片機(jī)只知道這個(gè)點(diǎn)的電壓是低的或高的,怎樣才能得到它的電壓值呢?比如數(shù)字萬(wàn)用表,它測(cè)量電壓,先將AD轉(zhuǎn)換電路,將電壓值轉(zhuǎn)換為一個(gè)值,然后將此值發(fā)送到單片機(jī),單片機(jī)經(jīng)過(guò)計(jì)算處理后,再將電壓值顯示到屏幕上。但現(xiàn)在有一些強(qiáng)大的單片機(jī),其內(nèi)部AD轉(zhuǎn)換器已經(jīng)集成,不需要你連接AD轉(zhuǎn)換芯片。
A是模擬信號(hào)的意思,D是數(shù)字信號(hào)的意思,AD轉(zhuǎn)換就是模數(shù)轉(zhuǎn)換,顧名思義,就是把模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào),例如把電壓值轉(zhuǎn)化為數(shù)字信號(hào)。
1、分辨率
舉個(gè)簡(jiǎn)單的例子,8位芯片只能轉(zhuǎn)換最小到0.01V的電壓,而12位的芯片卻能轉(zhuǎn)換最小到0.001V的電壓,如果一個(gè)電壓為3.359V,8位芯片轉(zhuǎn)出來(lái)后的數(shù)值是3.35V,12位芯片轉(zhuǎn)換出來(lái)后是3.359V,精度比8位就高一個(gè)檔次了。(注:這里數(shù)值不是正確的數(shù)值,舉例用,切勿實(shí)際使用)
2、8位16位的ad轉(zhuǎn)換芯片是什么意思
8位,16位就代表了AD轉(zhuǎn)換芯片的轉(zhuǎn)換分辨率,數(shù)字越大,分辨率越高,同時(shí)也反映了它的精度,數(shù)字越大,精度相對(duì)也越高。8位算是最低了,有些單片機(jī)里集成的AD轉(zhuǎn)換器一般是10位的。12位和16位的芯片價(jià)格就比較貴了。
3、精度
精度是AD芯片的一個(gè)重要參數(shù),表示采集到的數(shù)據(jù)和真實(shí)值之間的相差的程度。例如單片機(jī)轉(zhuǎn)換出來(lái)的結(jié)果是0.3V,而實(shí)際可能是0.31V,這樣就相差了0.01V。這種誤差是不可避免無(wú)法消除的。這和在第3點(diǎn)中提到的位數(shù)有關(guān),位數(shù)越高,這樣的誤差越小。
單片機(jī)ad轉(zhuǎn)換處理方法
4、采樣
采樣是AD轉(zhuǎn)換的速度性能指標(biāo),通俗的說(shuō)就是每秒里能采樣多少次,采樣次數(shù)越高芯片性能越好。如果對(duì)采樣不理解,也可以用另一種方式理解,就是一個(gè)AD轉(zhuǎn)換芯把電壓值轉(zhuǎn)換成數(shù)字值這個(gè)過(guò)程所需要的時(shí)間,時(shí)間越短越好。
單片機(jī)內(nèi)集成的A/D轉(zhuǎn)換,一般都有相應(yīng)的特殊功能寄存器來(lái)設(shè)置A/D的使能標(biāo)志,參考電壓,轉(zhuǎn)換頻率,通道選擇,A/D輸入口的屬性(模擬量輸入還是普通的I/O口),啟動(dòng),停止控制等。有了這些寄存器,使得我們控制單片機(jī)的模擬量采集變得非常方便。
A/D轉(zhuǎn)換的基本原理是:將參考電平按最大的轉(zhuǎn)換值量化,再利用輸入模擬電平與參考電平的比例來(lái)求得輸入電平的測(cè)量值(V測(cè)=V參*(AD量化值/AD轉(zhuǎn)換的最大值))。有些MCU A/D轉(zhuǎn)換的參考電平可以選擇由一個(gè)外部引腳輸入,這樣使得用戶可以對(duì)A/D轉(zhuǎn)換進(jìn)行更好的控制。值得注意的一點(diǎn)就是A/D轉(zhuǎn)換的輸入電平必須比參考電平低或相等,不然測(cè)試的結(jié)果就會(huì)有很大的偏差。
下面以參考電平為5V,轉(zhuǎn)換的精度為8位為例來(lái)說(shuō)明如何取得實(shí)際的測(cè)量值是多少。如果AD量化值為128,則V測(cè)= 5*128/256=2.5V。因?yàn)閂測(cè)=V參*(AD量化值/AD轉(zhuǎn)換的最大值)=AD量化值*(V參/AD轉(zhuǎn)換的最大值),而針對(duì)具體的硬件電路,“V參/AD轉(zhuǎn)化的最大值”是一個(gè)固定的系數(shù)。而這個(gè)系數(shù),就相當(dāng)于測(cè)試的精度了。對(duì)于10位的A/D,5V的參考電壓的測(cè)試精度約5毫伏,而用2.048伏的參考電壓,精度就可以達(dá)到2毫伏。當(dāng)然測(cè)試的電壓范圍相應(yīng)的也減小了。我曾經(jīng)就用這種減小測(cè)量范圍來(lái)提高精度,使用PIC16F76做A/D測(cè)量,使得正負(fù)誤差不超過(guò)5毫伏的高精度測(cè)試電源。當(dāng)誤差超過(guò)5毫伏時(shí),電路發(fā)出報(bào)警聲,提示操作員,重新調(diào)解電壓到規(guī)定范圍內(nèi)。
然而,即使使用同樣一款MCU,不同的軟硬件設(shè)計(jì)者,使得A/D轉(zhuǎn)換的效果相差也甚遠(yuǎn)。主要是很多新手在處理上有些不當(dāng),不是直接把一次轉(zhuǎn)換后的結(jié)果拿來(lái)處理并做相應(yīng)的顯示,就是對(duì)參考電平不做處理。所以使得顯示效果老是變化不定,給人一種不穩(wěn)定的感覺(jué)。
針對(duì)參考電平設(shè)在單片機(jī)內(nèi)部的MCU,主要是要對(duì)A/D的量化值做數(shù)字濾波處理,比如多次間隔采樣,再求平均等。而針對(duì)參考電壓可以從外部輸入腳引入的,最好單獨(dú)設(shè)置一組高穩(wěn)定度的參考電壓,如TL431等。這樣,即使MCU的主電源有些波動(dòng)也不會(huì)導(dǎo)致A/D轉(zhuǎn)換值的漂移。其實(shí)在沒(méi)有高精度參考電壓的情況下,或者A/D量化值很不穩(wěn)定的情況下,
我們依然可以通過(guò)軟件的方法將與A/D轉(zhuǎn)換有關(guān)的顯示或其他的驅(qū)動(dòng)做得非常穩(wěn)定。這就要看程序員的設(shè)計(jì)經(jīng)驗(yàn)了。