引 言
單片機(jī)應(yīng)用于工業(yè)控制等方面時(shí),經(jīng)常要將電流,、電壓,、溫度、位移,、轉(zhuǎn)速等模擬量轉(zhuǎn)換成數(shù)字量,,然后在單片機(jī)內(nèi)作進(jìn)一步運(yùn)算和處理,,完成相應(yīng)的數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)傳輸和數(shù)據(jù)輸出,,達(dá)到分析和控制的目的,。隨著大規(guī)模集成電路的不斷發(fā)展,很多單片機(jī)都有內(nèi)置A/D模塊,,因此,,單片機(jī)的A/D轉(zhuǎn)換可以用內(nèi)置A/D模塊也可以用外置A/D電路完成,現(xiàn)談?wù)剢纹瑱C(jī)A/D轉(zhuǎn)換的工作原理及優(yōu)缺點(diǎn),,并分析提高A/D轉(zhuǎn)換精度的方法,。
1 A/D轉(zhuǎn)換的工作原理及優(yōu)缺點(diǎn)
(1)單片機(jī)片內(nèi)A/D轉(zhuǎn)換
單片機(jī)片內(nèi)A/D轉(zhuǎn)換是利用單片機(jī)的內(nèi)置A/D模塊,通過(guò)選擇不同的模擬量通道進(jìn)行A/D轉(zhuǎn)換,??梢詫⒛M量直接輸入到單片機(jī)對(duì)應(yīng)的輸入腳,外圍電路簡(jiǎn)單,。轉(zhuǎn)換后的數(shù)據(jù)直接保存在片內(nèi)寄存器中,,數(shù)據(jù)提取方便。但大多數(shù)單片機(jī)的內(nèi)置A/D模塊只有8位和10位,,無(wú)法進(jìn)行高精度的A/D轉(zhuǎn)換,,原理如圖1所示。
(2)單片機(jī)片外A/D轉(zhuǎn)換
單片機(jī)外置A/D轉(zhuǎn)換是單片機(jī)通過(guò)一定的邏輯電路控制外置A/D轉(zhuǎn)換電路進(jìn)行A/D轉(zhuǎn)換,,外圍電路相對(duì)復(fù)雜,。單片機(jī)將轉(zhuǎn)換結(jié)果通過(guò)一定的時(shí)序讀取到單片機(jī)中,按要求通過(guò)選擇A/D轉(zhuǎn)換電路,,可以實(shí)現(xiàn)高精度的A/D轉(zhuǎn)換(可以達(dá)到14位,、16位、22位甚至更高),,原理如圖2所示,。
2 提高A/D轉(zhuǎn)換精度的方法
要提高A/D轉(zhuǎn)換的精度,選用高精度的外部A/D轉(zhuǎn)換器當(dāng)然可以達(dá)到要求,,除此之外,,有沒有其他方法呢?答案是肯定的。以下介紹幾種利用片內(nèi)A/D轉(zhuǎn)換模塊提高轉(zhuǎn)換精度的方法,。
?、僖圆杉妷簽槔僭O(shè)需要采集0.0~400.0 V直流電壓,,單片機(jī)A/D模塊的基準(zhǔn)電壓VREF+取5.0 V,,VREF-取0 V,需要采集的電壓經(jīng)過(guò)衰減,變成0.0~5.0 V,,連接電路如圖3所示,。顯然,如果要達(dá)0.1 V的精度,,則A/D轉(zhuǎn)換的分辨率必須小于1/4000,,而片內(nèi)A/D模塊一般為10位,分辨率僅為1/1 024,,達(dá)不到要求,。由于模擬量(O~400V電壓)輸入大多不是穩(wěn)定值,會(huì)有波動(dòng),,為了得到更高精度的數(shù)據(jù),,可以將多次采集的數(shù)據(jù)累加后再取平均值(其實(shí)即使分辨率達(dá)到要求的A/D轉(zhuǎn)換也要經(jīng)過(guò)累加再取平均值,以得到更穩(wěn)定的數(shù)據(jù)),。如果每間隔一定時(shí)間采集的10位數(shù)據(jù)為Di,,取64個(gè)這樣的數(shù)據(jù)累加后再除以16,就可以得到12位的數(shù)據(jù)D,,即這時(shí)D的分辨率是1/212=1/4 096,。這樣,就得到了更高精度的數(shù)據(jù),。
但是,,如果模擬量(0~400V電壓)輸入值非常穩(wěn)定,每間隔一定時(shí)間采集的10位數(shù)據(jù)Di都相同,,以上方法就達(dá)不到要求了,。
②如果在A/D轉(zhuǎn)換過(guò)程中要得到局部更高精度的數(shù)據(jù),,例如檢測(cè)蓄電池充放電過(guò)程中的電壓,,電壓范圍是0~18 V,一般精度達(dá)到0.02 V即可,,但用戶更關(guān)心8~13 V的電壓,,8~13 V內(nèi)精度要達(dá)到0.01 V。為了解決這個(gè)問題,,設(shè)計(jì)了原理如圖4所示的電路,。
單片機(jī)有內(nèi)置10位A/D模塊,Ui(0~20 V)電壓經(jīng)過(guò)R1,、R2,、P1衰減得到0~5 V的電壓,該電壓直接送到單片機(jī)的AN1輸入口,,即VAN1=Ui/4,。
U2A接成減法運(yùn)算電路,即U2A 1端電壓VU2A1=VAN1-2 V="Ui"/4-2 V=(Ui-8 V)/4,。U2B接成4倍放大電路,,U2B 7端的電壓VU2B7=VU2A×4=Ui-8 V。AN2輸入并聯(lián)一只5 V穩(wěn)壓二極管,,以保證當(dāng)輸入電壓大于8 V時(shí),,單片機(jī)AN2可以得到O~5 V電壓。單片機(jī)先采集AN1的數(shù)據(jù),,通過(guò)采集的數(shù)據(jù)判斷輸入電壓是否在8~13 V之間,,如果不在8~13 V,則采集到的數(shù)據(jù)就是模擬量(U)對(duì)應(yīng)的數(shù)字量(D:000H~3FFH),,精度為20 V/2010=20 V/1 024≈0.02 V,,電壓數(shù)據(jù)U=D×0.02 V;如果采集的數(shù)據(jù)在8~13 V之間,,單片機(jī)再采集AN2的數(shù)據(jù),,采集到的數(shù)據(jù)加上8 V就是模擬量(U)對(duì)應(yīng)的數(shù)字量(D:000H~3FFH),精度為(13-8)V/210=5 V/1 024≈0.005 V,,電壓數(shù)據(jù)U=8 V+D×0.005 V,。這樣,在8~13 V之間的A/D轉(zhuǎn)換精度就大大提高了,。
結(jié) 語(yǔ)
隨著工業(yè)自動(dòng)控制的不斷發(fā)展,,單片機(jī)在工業(yè)自動(dòng)控制的應(yīng)用也越來(lái)越廣。本文介紹的提高A/D轉(zhuǎn)換精度的工作原理在實(shí)際應(yīng)用中具有一定的使用價(jià)值,,特別是通過(guò)簡(jiǎn)單的模擬運(yùn)算電路,,可以局部提高A/D轉(zhuǎn)換精度。利用這個(gè)原理,,如果將模擬量分段放大,,也可以全范圍提高A/D轉(zhuǎn)換精度。這種方法在A/D轉(zhuǎn)換領(lǐng)域有較好的應(yīng)用前景,。