單片機AD轉(zhuan)換(huan)方法 為(wei)什么要AD轉(zhuan)換(huan)?
時間:2018-07-19 來源(yuan):未知
單(dan)(dan)(dan)(dan)片機AD轉(zhuan)(zhuan)換(huan)(huan)方法 為什么要(yao)(yao)AD轉(zhuan)(zhuan)換(huan)(huan)?所(suo)有(you)單(dan)(dan)(dan)(dan)片機一(yi)(yi)般只(zhi)能(neng)(neng)處理(li)數(shu)字(zi)(zi)信號。可是當(dang)單(dan)(dan)(dan)(dan)片機需(xu)要(yao)(yao)獲取電路(lu)上的(de)某一(yi)(yi)點(dian)(dian)電壓(ya)值的(de)時候,就必須(xu)使用AD轉(zhuan)(zhuan)換(huan)(huan)。如果你(ni)直接(jie)把單(dan)(dan)(dan)(dan)芯(xin)片的(de)引(yin)腳連接(jie)到電路(lu)的(de)點(dian)(dian)上,單(dan)(dan)(dan)(dan)片機只(zhi)知道這個(ge)點(dian)(dian)的(de)電壓(ya)是低的(de)或高(gao)的(de),怎樣才能(neng)(neng)得到它(ta)的(de)電壓(ya)值呢(ni)?比如數(shu)字(zi)(zi)萬用表,它(ta)測量電壓(ya),先將(jiang)(jiang)(jiang)AD轉(zhuan)(zhuan)換(huan)(huan)電路(lu),將(jiang)(jiang)(jiang)電壓(ya)值轉(zhuan)(zhuan)換(huan)(huan)為一(yi)(yi)個(ge)值,然后(hou)將(jiang)(jiang)(jiang)此值發送(song)到單(dan)(dan)(dan)(dan)片機,單(dan)(dan)(dan)(dan)片機經(jing)過計(ji)算處理(li)后(hou),再將(jiang)(jiang)(jiang)電壓(ya)值顯示到屏幕上。但現(xian)在有(you)一(yi)(yi)些強大的(de)單(dan)(dan)(dan)(dan)片機,其內(nei)部AD轉(zhuan)(zhuan)換(huan)(huan)器已經(jing)集成,不需(xu)要(yao)(yao)你(ni)連接(jie)AD轉(zhuan)(zhuan)換(huan)(huan)芯(xin)片。
A是(shi)模(mo)擬(ni)信號的(de)意(yi)思(si),D是(shi)數(shu)(shu)字(zi)信號的(de)意(yi)思(si),AD轉換就是(shi)模(mo)數(shu)(shu)轉換,顧名思(si)義,就是(shi)把模(mo)擬(ni)信號轉換成數(shu)(shu)字(zi)信號,例如把電壓值轉化(hua)為數(shu)(shu)字(zi)信號。
1、分辨率
舉個(ge)簡單(dan)的(de)例子(zi),8位(wei)芯片(pian)只能(neng)轉(zhuan)換(huan)最小(xiao)到0.01V的(de)電(dian)壓(ya),而(er)12位(wei)的(de)芯片(pian)卻能(neng)轉(zhuan)換(huan)最小(xiao)到0.001V的(de)電(dian)壓(ya),如果一個(ge)電(dian)壓(ya)為(wei)3.359V,8位(wei)芯片(pian)轉(zhuan)出來(lai)后的(de)數值(zhi)是3.35V,12位(wei)芯片(pian)轉(zhuan)換(huan)出來(lai)后是3.359V,精度比8位(wei)就高一個(ge)檔次了。(注:這(zhe)里數值(zhi)不是正(zheng)確的(de)數值(zhi),舉例用(yong),切勿(wu)實際使用(yong))
2、8位(wei)16位(wei)的ad轉(zhuan)換芯片是什么意思
8位(wei),16位(wei)就代表了AD轉(zhuan)換(huan)芯片(pian)的(de)轉(zhuan)換(huan)分辨率(lv),數(shu)(shu)字越大(da),分辨率(lv)越高,同時也(ye)反映了它的(de)精度(du),數(shu)(shu)字越大(da),精度(du)相(xiang)對也(ye)越高。8位(wei)算(suan)是最低了,有些單片(pian)機里(li)集(ji)成的(de)AD轉(zhuan)換(huan)器一般是10位(wei)的(de)。12位(wei)和16位(wei)的(de)芯片(pian)價格就比較(jiao)貴(gui)了。
3、精度
精度(du)是(shi)AD芯片的(de)(de)一個重(zhong)要參(can)數(shu)(shu),表示采集到(dao)的(de)(de)數(shu)(shu)據和(he)真(zhen)實(shi)(shi)值之(zhi)間的(de)(de)相差的(de)(de)程(cheng)度(du)。例如單片機(ji)轉換(huan)出(chu)來的(de)(de)結果是(shi)0.3V,而實(shi)(shi)際可(ke)能是(shi)0.31V,這(zhe)樣就相差了0.01V。這(zhe)種誤差是(shi)不(bu)可(ke)避免無(wu)法消除的(de)(de)。這(zhe)和(he)在(zai)第3點中提到(dao)的(de)(de)位數(shu)(shu)有關,位數(shu)(shu)越高,這(zhe)樣的(de)(de)誤差越小(xiao)。
單片機ad轉換處(chu)理(li)方法
4、采樣
采樣(yang)是AD轉換(huan)的(de)(de)速(su)度(du)性(xing)(xing)能指標,通俗的(de)(de)說就是每秒里能采樣(yang)多(duo)少次(ci)(ci),采樣(yang)次(ci)(ci)數越高芯片性(xing)(xing)能越好。如果對采樣(yang)不理解,也可(ke)以用另一(yi)種方式理解,就是一(yi)個AD轉換(huan)芯把(ba)電壓(ya)值(zhi)轉換(huan)成數字(zi)值(zhi)這個過程所需要的(de)(de)時(shi)間,時(shi)間越短(duan)越好。
單(dan)片機內集成的A/D轉換,一般都有(you)相應的特(te)殊(shu)功能(neng)寄存器(qi)來設(she)置A/D的使能(neng)標志,參(can)考電(dian)壓(ya),轉換頻(pin)率,通道選(xuan)擇,A/D輸(shu)入口的屬性(模(mo)擬量(liang)輸(shu)入還是(shi)普(pu)通的I/O口),啟動,停止控(kong)制等。有(you)了這些(xie)寄存器(qi),使得(de)我們控(kong)制單(dan)片機的模(mo)擬量(liang)采集變(bian)得(de)非常方便(bian)。
A/D轉換(huan)(huan)的(de)(de)(de)(de)基(ji)本原理是:將參考(kao)電(dian)(dian)平按最(zui)大的(de)(de)(de)(de)轉換(huan)(huan)值量化,再利用輸(shu)(shu)入(ru)模擬電(dian)(dian)平與參考(kao)電(dian)(dian)平的(de)(de)(de)(de)比例來(lai)求得(de)輸(shu)(shu)入(ru)電(dian)(dian)平的(de)(de)(de)(de)測(ce)量值(V測(ce)=V參*(AD量化值/AD轉換(huan)(huan)的(de)(de)(de)(de)最(zui)大值))。有些MCU A/D轉換(huan)(huan)的(de)(de)(de)(de)參考(kao)電(dian)(dian)平可(ke)以選擇(ze)由一個外(wai)部引腳輸(shu)(shu)入(ru),這(zhe)樣使(shi)得(de)用戶可(ke)以對A/D轉換(huan)(huan)進(jin)行更好的(de)(de)(de)(de)控制。值得(de)注意(yi)的(de)(de)(de)(de)一點就(jiu)是A/D轉換(huan)(huan)的(de)(de)(de)(de)輸(shu)(shu)入(ru)電(dian)(dian)平必須比參考(kao)電(dian)(dian)平低(di)或相等,不然測(ce)試的(de)(de)(de)(de)結果就(jiu)會有很大的(de)(de)(de)(de)偏(pian)差。
下面以參(can)(can)考電(dian)(dian)平(ping)為(wei)5V,轉(zhuan)換(huan)的(de)(de)(de)(de)(de)精度(du)為(wei)8位為(wei)例來(lai)說明如(ru)何取得(de)實際的(de)(de)(de)(de)(de)測(ce)量(liang)值(zhi)(zhi)是(shi)多少。如(ru)果(guo)AD量(liang)化值(zhi)(zhi)為(wei)128,則V測(ce)= 5*128/256=2.5V。因(yin)為(wei)V測(ce)=V參(can)(can)*(AD量(liang)化值(zhi)(zhi)/AD轉(zhuan)換(huan)的(de)(de)(de)(de)(de)最(zui)大值(zhi)(zhi))=AD量(liang)化值(zhi)(zhi)*(V參(can)(can)/AD轉(zhuan)換(huan)的(de)(de)(de)(de)(de)最(zui)大值(zhi)(zhi)),而(er)針對(dui)具(ju)體的(de)(de)(de)(de)(de)硬件電(dian)(dian)路,“V參(can)(can)/AD轉(zhuan)化的(de)(de)(de)(de)(de)最(zui)大值(zhi)(zhi)”是(shi)一(yi)個固定的(de)(de)(de)(de)(de)系數。而(er)這個系數,就(jiu)(jiu)相當(dang)(dang)于測(ce)試的(de)(de)(de)(de)(de)精度(du)了(le)。對(dui)于10位的(de)(de)(de)(de)(de)A/D,5V的(de)(de)(de)(de)(de)參(can)(can)考電(dian)(dian)壓(ya)的(de)(de)(de)(de)(de)測(ce)試精度(du)約5毫伏(fu),而(er)用(yong)2.048伏(fu)的(de)(de)(de)(de)(de)參(can)(can)考電(dian)(dian)壓(ya),精度(du)就(jiu)(jiu)可以達到2毫伏(fu)。當(dang)(dang)然測(ce)試的(de)(de)(de)(de)(de)電(dian)(dian)壓(ya)范圍相應(ying)的(de)(de)(de)(de)(de)也減小了(le)。我曾(ceng)經就(jiu)(jiu)用(yong)這種(zhong)減小測(ce)量(liang)范圍來(lai)提高精度(du),使(shi)用(yong)PIC16F76做(zuo)A/D測(ce)量(liang),使(shi)得(de)正(zheng)負誤差(cha)不超(chao)過5毫伏(fu)的(de)(de)(de)(de)(de)高精度(du)測(ce)試電(dian)(dian)源。當(dang)(dang)誤差(cha)超(chao)過5毫伏(fu)時,電(dian)(dian)路發出報(bao)警聲,提示(shi)操作員,重新調解電(dian)(dian)壓(ya)到規定范圍內。
然(ran)而(er),即使使用同樣一款(kuan)MCU,不同的軟(ruan)硬件設計者(zhe),使得A/D轉(zhuan)換的效果相(xiang)差也甚遠。主要是(shi)很多新手在處(chu)理上(shang)有些不當,不是(shi)直接把(ba)一次轉(zhuan)換后的結果拿來處(chu)理并做相(xiang)應(ying)的顯示,就(jiu)是(shi)對參考電平不做處(chu)理。所以使得顯示效果老是(shi)變化不定(ding),給人一種不穩定(ding)的感覺。
針對(dui)參(can)考電(dian)(dian)平(ping)設在(zai)單片機內部的(de)(de)(de)(de)MCU,主(zhu)(zhu)要(yao)是(shi)要(yao)對(dui)A/D的(de)(de)(de)(de)量化(hua)值(zhi)(zhi)做數字(zi)濾波處理,比如多(duo)次間隔采樣,再(zai)求平(ping)均等。而(er)針對(dui)參(can)考電(dian)(dian)壓可以從外(wai)部輸入腳引入的(de)(de)(de)(de),最好單獨(du)設置(zhi)一組高穩定(ding)(ding)度的(de)(de)(de)(de)參(can)考電(dian)(dian)壓,如TL431等。這樣,即使(shi)MCU的(de)(de)(de)(de)主(zhu)(zhu)電(dian)(dian)源有(you)些波動也不(bu)會導致A/D轉換值(zhi)(zhi)的(de)(de)(de)(de)漂移(yi)。其(qi)實在(zai)沒有(you)高精度參(can)考電(dian)(dian)壓的(de)(de)(de)(de)情況(kuang)下,或(huo)者A/D量化(hua)值(zhi)(zhi)很不(bu)穩定(ding)(ding)的(de)(de)(de)(de)情況(kuang)下,
我們依然可以(yi)通過軟(ruan)件(jian)的(de)方(fang)法將與A/D轉換有關的(de)顯(xian)示(shi)或其他的(de)驅動做得非(fei)常穩(wen)定(ding)。這就要看(kan)程(cheng)序(xu)員的(de)設計經(jing)驗了。

