基于片上ADC/DAC實現(xiàn)精度可調(diào)ADC的方法
3.1 軟件實現(xiàn)過程
軟件設(shè)計過程主要包括MCU的ADC進行初始化,建立輸入電壓校正表,計算表達式(5)的值,拉格朗日插值計算輸入電壓,顯示輸入電壓值。軟件設(shè)計流程如3所示。
圖3 軟件設(shè)計流程圖
設(shè)X為MCU的DAC數(shù)字量十進制的值,Y為MCU的ADC數(shù)字量十進制的值。
則VDAOUT=XVR/1024,VADO=YVR/1024
設(shè)K1=R116/R106,K2=R103/R100,則式(2)可化簡為式(4):
由式(4)可得式(5):
3.1.1 初始化ADC
主要是對MCU的ADC進行初始化,主要包括ADC寄存器配置、選擇I/O口的工作模式、選擇ADC的通道、啟動ADC。
3.1.2 校正
校正是在測量輸入電壓前,首先利用基準電壓源輸入多個基準電壓值,并通過讀MCU的ADC寄存器值記錄對應(yīng)的數(shù)字量的值,并將這兩項的值保存到校正表中。在測量輸入電壓時,將所得的數(shù)字量的值利用拉格朗日插值算法代入校正表可得精確的輸入電壓值。
1)校正表內(nèi)容校正的過程主要是通過建立校正表建立起實際輸入電壓值與測量輸入電壓值的聯(lián)系。校正表存放兩項數(shù)據(jù)。一項是1~59 V的整數(shù)電壓值,另一項是式(5)的和。因為系統(tǒng)測量的輸入電壓值是只保留到小數(shù)點后2位的近似值,而式(5)中包含測量的ADC和DAC的十進制數(shù)字量值更為精確。由式(4)可看出式(5)的值與測量的輸入電壓值存在比例關(guān)系,所以它們與實際輸入電壓的曲線關(guān)系相同。因此,另一項的內(nèi)容存放的是式(5)的和。
2)建立校正表的過程從1~59 V,用電壓源每隔1 V輸入一次電壓,通過讀MCU的ADC和DAC寄存器的值,記錄每次ADC和DAC的數(shù)字量十進制的值。將記錄的ADC和DAC的值代入式(5)計算其和并保存到校正表中。
3.1.3 計算式(5)的和值
通過程序改變MCU的DAC寄存器的值實現(xiàn)改變DAC的輸出電壓值,在改變DAC寄存器的值的同時通過觀察ADC的寄存器的值確定ADO的輸入電壓值是否在量程范圍之內(nèi)。當ADO的輸入在量程范圍之內(nèi)時,通過讀DAC寄存器和ADC的寄存器值可分別獲得MCU的DAC和ADC的數(shù)字量十進制值,將獲得的值代入式(5)可得其和。
3.1.4 計算輸入電壓
計算輸入電壓函數(shù)實現(xiàn)功能是利用拉格拉日插值公式計算出輸入電壓。通過坐標軸觀察校正表中數(shù)據(jù),實際輸入電壓值與測量值滿足線性關(guān)系。在輸入電壓校正表中,查找與式(6)的值最接近的2個點,然后代入拉格拉日線性插值公式計算出輸入電壓。
3.2 實驗結(jié)果
利用傳統(tǒng)方法直接送入ADC測量輸入電壓的精度理想情況下最高為59.1/1024=57.7mV,由于硬件參數(shù)誤差和干擾等原因會使測量誤差大于20mV,無法滿足系統(tǒng)的測量精度和準確度要求。利用本文所提出的17位高精度A/D測量方法測量精度可減小為0.45mV,通過軟件校正的方法測量誤差可控制在10mV以內(nèi),滿足了設(shè)計要求。通過本文所述提高測量精度的方法,最高可實現(xiàn)20位ADC,測量精度可減小為0.056 mV。
4 結(jié)束語
本文基于NXP的LPC2368,利用其內(nèi)部集成的ADC和DAC,實現(xiàn)高精度且精度可調(diào)的ADC,這種方法容易實現(xiàn),可以應(yīng)用在眾多數(shù)據(jù)采集領(lǐng)域,如傳感器的數(shù)據(jù)采集、電壓信號的測量等,只要選用的MCU自帶ADC和DAC,就可以采用本文方法實現(xiàn)最高精度達20位的高精度且精度可調(diào)的ADC。
評論