新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 談談如何提高單片機的模數(shù)轉(zhuǎn)換精度

談談如何提高單片機的模數(shù)轉(zhuǎn)換精度

作者: 時間:2009-07-09 來源:網(wǎng)絡 收藏

引 言
應用于工業(yè)控制等方面時,經(jīng)常要將電流、電壓、溫度、位移、轉(zhuǎn)速等模擬量成數(shù)字量,然后在內(nèi)作進一步運算和處理,完成相應的數(shù)據(jù)存儲、數(shù)據(jù)傳輸和數(shù)據(jù)輸出,達到分析和控制的目的。隨著大規(guī)模集成電路的不斷發(fā)展,很多都有內(nèi)置A/D模塊,因此,單片機的A/D可以用內(nèi)置A/D模塊也可以用外置A/D電路完成,現(xiàn)單片機A/D的工作原理及優(yōu)缺點,并分析A/D轉(zhuǎn)換的方法。

本文引用地址:http://2s4d.com/article/173679.htm

1 A/D轉(zhuǎn)換的工作原理及優(yōu)缺點
(1)單片機片內(nèi)A/D轉(zhuǎn)換
單片機片內(nèi)A/D轉(zhuǎn)換是利用單片機的內(nèi)置A/D模塊,通過選擇不同的模擬量通道進行A/D轉(zhuǎn)換??梢詫⒛M量直接輸入到單片機對應的輸入腳,外圍電路簡單。轉(zhuǎn)換后的數(shù)據(jù)直接保存在片內(nèi)寄存器中,數(shù)據(jù)提取方便。但大多數(shù)單片機的內(nèi)置A/D模塊只有8位和10位,無法進行高的A/D轉(zhuǎn)換,原理如圖1所示。

(2)單片機片外A/D轉(zhuǎn)換
單片機外置A/D轉(zhuǎn)換是單片機通過一定的邏輯電路控制外置A/D轉(zhuǎn)換電路進行A/D轉(zhuǎn)換,外圍電路相對復雜。單片機將轉(zhuǎn)換結(jié)果通過一定的時序讀取到單片機中,按要求通過選擇A/D轉(zhuǎn)換電路,可以實現(xiàn)高的A/D轉(zhuǎn)換(可以達到14位、16位、22位甚至更高),原理如圖2所示。


2 A/D轉(zhuǎn)換精度的方法
A/D轉(zhuǎn)換的精度,選用高精度的外部A/D當然可以達到要求,除此之外,有沒有其他方法呢?答案是肯定的。以下介紹幾種利用片內(nèi)A/D轉(zhuǎn)換模塊提高轉(zhuǎn)換精度的方法。
①以采集電壓為例,假設需要采集0.0~400.0 V直流電壓,單片機A/D模塊的基準電壓VREF+取5.0 V,VREF-取0 V,需要采集的電壓經(jīng)過衰減,變成0.0~5.0 V,連接電路如圖3所示。顯然,如果要達0.1 V的精度,則A/D轉(zhuǎn)換的分辨率必須小于1/4000,而片內(nèi)A/D模塊一般為10位,分辨率僅為1/1 024,達不到要求。由于模擬量(O~400V電壓)輸入大多不是穩(wěn)定值,會有波動,為了得到更高精度的數(shù)據(jù),可以將多次采集的數(shù)據(jù)累加后再取平均值(其實即使分辨率達到要求的A/D轉(zhuǎn)換也要經(jīng)過累加再取平均值,以得到更穩(wěn)定的數(shù)據(jù))。如果每間隔一定時間采集的10位數(shù)據(jù)為Di,取64個這樣的數(shù)據(jù)累加后再除以16,就可以得到12位的數(shù)據(jù)D,即這時D的分辨率是1/212=1/4 096。這樣,就得到了更高精度的數(shù)據(jù)。

但是,如果模擬量(0~400V電壓)輸入值非常穩(wěn)定,每間隔一定時間采集的10位數(shù)據(jù)Di都相同,以上方法就達不到要求了。
②如果在A/D轉(zhuǎn)換過程中要得到局部更高精度的數(shù)據(jù),例如檢測蓄電池充放電過程中的電壓,電壓范圍是0~18 V,一般精度達到0.02 V即可,但用戶更關心8~13 V的電壓,8~13 V內(nèi)精度要達到0.01 V。為了解決這個問題,設計了原理如圖4所示的電路。

單片機有內(nèi)置10位A/D模塊,Ui(0~20 V)電壓經(jīng)過R1、R2、P1衰減得到0~5 V的電壓,該電壓直接送到單片機的AN1輸入口,即VAN1=Ui/4。
U2A接成減法運算電路,即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)壓二極管,以保證當輸入電壓大于8 V時,單片機AN2可以得到O~5 V電壓。單片機先采集AN1的數(shù)據(jù),通過采集的數(shù)據(jù)判斷輸入電壓是否在8~13 V之間,如果不在8~13 V,則采集到的數(shù)據(jù)就是模擬量(U)對應的數(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之間,單片機再采集AN2的數(shù)據(jù),采集到的數(shù)據(jù)加上8 V就是模擬量(U)對應的數(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è)自動控制的不斷發(fā)展,單片機在工業(yè)自動控制的應用也越來越廣。本文介紹的提高A/D轉(zhuǎn)換精度的工作原理在實際應用中具有一定的使用價值,特別是通過簡單的模擬運算電路,可以局部提高A/D轉(zhuǎn)換精度。利用這個原理,如果將模擬量分段放大,也可以全范圍提高A/D轉(zhuǎn)換精度。這種方法在A/D轉(zhuǎn)換領域有較好的應用前景。



評論


相關推薦

技術專區(qū)

關閉