分析如何提高單片機的模數轉換精度
引 言
單片機應用于工業(yè)控制等方面時(shí),經(jīng)常要將電流、電壓、溫度、位移、轉速等模擬量轉換成數字量,然后在單片機內作進(jìn)一步運算和處理,完成相應的數據存儲、數據傳輸和數據輸出,達到分析和控制的目的。隨著(zhù)大規模集成電路的不斷發(fā)展,很多單片機都有內置A/D模塊,因此,單片機的A/D轉換可以用內置A/D模塊也可以用外置A/D電路完成,現談?wù)剢纹瑱CA/D轉換的工作原理及優(yōu)缺點(diǎn),并分析提高A/D轉換精度的方法。
1 A/D轉換的工作原理及優(yōu)缺點(diǎn)
(1)單片機片內A/D轉換
單片機片內A/D轉換是利用單片機的內置A/D模塊,通過(guò)選擇不同的模擬量通道進(jìn)行A/D轉換??梢詫⒛M量直接輸入到單片機對應的輸入腳,外圍電路簡(jiǎn)單。轉換后的數據直接保存在片內寄存器中,數據提取方便。但大多數單片機的內置A/D模塊只有8位和10位,無(wú)法進(jìn)行高精度的A/D轉換,原理如圖1所示。
(2)單片機片外A/D轉換
單片機外置A/D轉換是單片機通過(guò)一定的邏輯電路控制外置A/D轉換電路進(jìn)行A/D轉換,外圍電路相對復雜。單片機將轉換結果通過(guò)一定的時(shí)序讀取到單片機中,按要求通過(guò)選擇A/D轉換電路,可以實(shí)現高精度的A/D轉換(可以達到14位、16位、22位甚至更高),原理如圖2所示。
2 提高A/D轉換精度的方法
要提高A/D轉換的精度,選用高精度的外部A/D轉換器當然可以達到要求,除此之外,有沒(méi)有其他方法呢?答案是肯定的。以下介紹幾種利用片內A/D轉換模塊提高轉換精度的方法。
?、僖圆杉妷簽槔?,假設需要采集0.0~400.0 V直流電壓,單片機A/D模塊的基準電壓VREF+取5.0 V,VREF-取0 V,需要采集的電壓經(jīng)過(guò)衰減,變成0.0~5.0 V,連接電路如圖3所示。顯然,如果要達0.1 V的精度,則A/D轉換的分辨率必須小于1/4000,而片內A/D模塊一般為10位,分辨率僅為1/1 024,達不到要求。由于模擬量(O~400V電壓)輸入大多不是穩定值,會(huì )有波動(dòng),為了得到更高精度的數據,可以將多次采集的數據累加后再取平均值(其實(shí)即使分辨率達到要求的A/D轉換也要經(jīng)過(guò)累加再取平均值,以得到更穩定的數據)。如果每間隔一定時(shí)間采集的10位數據為Di,取64個(gè)這樣的數據累加后再除以16,就可以得到12位的數據D,即
這時(shí)D的分辨率是1/212=1/4 096。這樣,就得到了更高精度的數據。
評論