分析如何提高單片機(jī)的模數(shù)轉(zhuǎn)換精度
引 言
單片機(jī)應(yīng)用于工業(yè)控制等方面時,經(jīng)常要將電流、電壓、溫度、位移、轉(zhuǎn)速等模擬量轉(zhuǎn)換成數(shù)字量,然后在單片機(jī)內(nèi)作進(jìn)一步運(yùn)算和處理,完成相應(yīng)的數(shù)據(jù)存儲、數(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)缺點,并分析提高A/D轉(zhuǎn)換精度的方法。
1 A/D轉(zhuǎn)換的工作原理及優(yōu)缺點
(1)單片機(jī)片內(nèi)A/D轉(zhuǎn)換
單片機(jī)片內(nèi)A/D轉(zhuǎn)換是利用單片機(jī)的內(nèi)置A/D模塊,通過選擇不同的模擬量通道進(jìn)行A/D轉(zhuǎn)換??梢詫⒛M量直接輸入到單片機(jī)對應(yīng)的輸入腳,外圍電路簡單。轉(zhuǎn)換后的數(shù)據(jù)直接保存在片內(nèi)寄存器中,數(shù)據(jù)提取方便。但大多數(shù)單片機(jī)的內(nèi)置A/D模塊只有8位和10位,無法進(jìn)行高精度的A/D轉(zhuǎn)換,原理如圖1所示。
(2)單片機(jī)片外A/D轉(zhuǎn)換
單片機(jī)外置A/D轉(zhuǎn)換是單片機(jī)通過一定的邏輯電路控制外置A/D轉(zhuǎn)換電路進(jìn)行A/D轉(zhuǎn)換,外圍電路相對復(fù)雜。單片機(jī)將轉(zhuǎn)換結(jié)果通過一定的時序讀取到單片機(jī)中,按要求通過選擇A/D轉(zhuǎn)換電路,可以實現(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)換精度的方法。
①以采集電壓為例,假設(shè)需要采集0.0~400.0 V直流電壓,單片機(jī)A/D模塊的基準(zhǔn)電壓VREF+取5.0 V,VREF-取0 V,需要采集的電壓經(jīng)過衰減,變成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)定值,會有波動,為了得到更高精度的數(shù)據(jù),可以將多次采集的數(shù)據(jù)累加后再取平均值(其實即使分辨率達(dá)到要求的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ù)。
評論