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