《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 設計應用 > 基于片上ADC/DAC實現精度可調ADC的方法
基于片上ADC/DAC實現精度可調ADC的方法
胡 亮,韓 進,薛慶軍
摘要: 在數據采集系統中,由于成本限制和系統其他模塊功能要求,系統中MCU的ADC精度有時無法滿足系統測量精度要求。基于上述原因,提出一種利用MCU自帶的10位ADC和DAC,結合運放、電容、電阻等元件搭建的外圍硬件電路,實現將MCU自帶的ADC轉換為精度可調的ADC。軟件設計是通過校正方法減小由硬件導致的ADC測量誤差。實驗結果表明,該系統可實現10~20位精度可調的ADC,測量精度最高可提高1024倍,能夠滿足大多數情況下的測量精度要求。
Abstract:
Key words :

某系統的A/D模塊需實現檢測輸入電壓值,變化范圍為0~58 V。主芯片選用NXP公司的ARM7系列的LPC2368,片上自帶10位ADCDAC,ADC測量輸入電壓范圍是0~3 V,而DAC的范圍是0~3 V。傳統方法是直接將輸入電壓送入ADC法滿足精度要求,但輸入電壓的變化范圍大于ADC的輸入電壓范圍。基于此,這里給出一種利用MCU自帶ADC和DAC,并結合運放、電容、電阻等元件搭建外圍硬件電路,實現10~20位測量精度可調的ADC的方法。

1 高精度ADC設計原理
   
輸入電壓經過電阻分壓產生電壓U入,送入由運放和電阻組成的減法運算電路的同相端,分壓的原因是輸入電壓最大值大于運放的最大輸入電壓。MCU的DAC輸出經過同相比例運算電路放大之后產生與U入相近的電壓U近,送入減法電路的反相端。同相比例運算電路的作用是擴大DAC的輸出電壓范圍,使U入和U近的最大值近似相等。經過減法運算電路之后的電壓差值U差經過箝位電路送入MCU的ADC,通過讀ADC寄存器的值可得U差的值。箝位電路是防止ADC的輸入電壓超過量程,而導致燒毀MCU。
    在測量時,由軟件控制改變DAC寄存器的值,從而改變DAC輸出電壓值,使U差的電壓值在量程范圍(0~3 V)之內。此時通過讀DAC和ADC的寄存器的值,可得DAC輸出電壓與送入ADC的電壓U差的值。根據DAC的輸出電壓和同相比例運算電路公式可得U近電壓值,根據減法電路公式、U差和U近的值可得輸入電壓值。
    系統硬件框圖如圖1所示。



2 系統硬件設計
   
圖2為實現17位ADC原理圖。U101、R100、R101、R102、R103組成減法電路,U102、R108、R109、R116組成同相比例運算電路。VD100
組成箝位電路。VR是由基準電壓源產生的3 V的基準電壓。R117和R118組成分壓電路,在R118上的電壓為45 mV可抵消運放的零漂。ADO是MCU的ADC通道0的輸入端。


    圖2所示的電路雖然只是實現17位ADC,但通過修改幾個特定的電阻阻值就可實現調節測量輸入電壓范圍和ADC測量分辨率。通過修改同相比例運算電路中R109與R116比例值,可實現調節輸入電壓的測量范圍;通過修改減法電路中的R103與R100比例值,可實現調節ADC的分辨率。下面結合實現17位ADC硬件設計電路圖,具體說明如何實現17位高精度ADC、調節測量輸入電壓范圍和實現10~20位精度可調的ADC。
2.1 17位ADC的實琨過程
   
對于一個n位的ADC,其分辨率為可測量最大輸入電壓值與2n的比值。因此,此電路圖可實現的ADC的位數可以通過輸入電壓的最大值和分辨率計算得出。
    1)計算輸入電壓測量范圍的方法 由圖2可知,ADC的輸入電壓計算公式如下:

    式中,VIN是輸入電壓,VDAOUT是當ADC的輸入電壓處于量程范圍之內時DAC電壓,VDAO是ADC輸入電壓。
    由式(2)可知,當DAC的輸出電壓和ADC的輸入電壓剛好達到最大值3 V時,輸入電壓為59.1 V,此電壓值為系統可測量的最大輸入電壓值。由此可見輸入電壓的測量范圍是0~59.1 V。
    2)ADC分辨率的計算方法 當DAC的輸出為零時,即VDAOUT=0時,由式(2)可知輸入電壓VIN與VADO的電壓的關系為:
    VIN=VADO/10。MCU的ADC位數是1O位、最大輸入電壓是3 V。因此,ADC分辨率為0.292 mV。
    3)實現17位ADC根據輸入電壓最大值與ADC分辨率的比值計算出此電路圖實現的ADC的位數。由59.1/(0.292x10-3)=202 397=217.6,可以看出此電路實現了17位的ADC。
2.2 調節測量輸入電壓范圍的方法
   
因為VADO和VDAOUT的最大值都是3 V,由式(2)可知,可測量的最大輸入電壓值是由R100、R103、R116、R109決定的。改變R100與R103的比值會影響ADC的測量精度,因此,調節測量輸入電壓范圍主要是通過調節R116與R109的比值。由式(2)容易看出,當R116增加時,測量電壓輸入范圍增加,R109增加時測量電壓輸入范圍減小。
2.3 實現10~20位精度可調ADC的方法
   
由17位ADC的實現過程可知,此電路實現ADC的位數是由測量輸入電壓最大值和ADC的分辨率決定的。所以在改變ADC的位數時,要通過改變測量輸入電壓范圍或者ADC分辨率。但是,系統測量輸入電壓范圍是固定的。因此,可通過改變ADC分辨率實現ADC的位數改變。
    1)調節ADC分辨率的方法當DAC的輸出電壓為零時,將式(2)化簡為式(3):
   
    由式(3)可知,當MCU的ADC變化一個電壓刻度值時,VIN變化6R100/R103。ADC位數是10位、最大輸入電壓是3 V。因此,ADO分辨率為3 V/1 024=2.92 mV,ADC的分辨率為2.92x10-3x6R100/R103。由此可見,R100增加時,分辨率下降;R103增加時,分辨率提高。
    2)實現10~20位精度可調ADC通過可測量的輸入電壓最大值與要實現的ADC的位數可計算出ADC的分辨率,再通過式(3)可求出R100與R103的比例關系。按照R100與R103的比例關系修改其阻值,即可實現要得到的ADC的位數。例如將本系統修改為20位ADC,則ADC測量精度應該為59.1 V/220=0.056 mV。由式(3)可知0.056=6x0.292xR100/R103,所以修改R103與R100的比值為312.8,即可以實現20位的ADC。通過此方法可實現10~20位精度可調的ADC。
2.4 硬件設計說明
   
U100是由運放OPA177F組成的電壓跟隨器,具有輸入阻抗高,輸出阻抗低的特點,在本系統中的作用是實現匹配U101的輸入電阻和提高對輸入電壓分壓的精確度。R101和R100第二級減法運算電路的輸入匹配電阻,其阻值不宜小于10 kΩ,太小會影響ADC的測量精度。R104為限流電阻,防止電流超過VD100的最大額定電流。
    R117和R118組成分壓電路,在R118上的電壓為45 mv,可抵消運放的零漂。若不加此分壓電路且DAC輸出為零時,經過實際測量TP102點的電壓約為120 mV,這是由運放的零漂造成的,會影響ADC的測量精度。在每一個運放輸入端添加了0.1 μF的電容,去除高頻信號,提高輸入信號的穩定性。

3 系統軟件設計
   
軟件部分主要功能是對輸入電壓的測量。因為硬件設計中,運放和電阻本身的參數存在誤差,所以它們組成的放大電路的放大倍數存在誤差,從而造成ADC測量產生誤差。因此,傳統方法直接利用它們組成的放大電路的計算公式(式(2))計算出的輸入電壓值誤差比較大,電壓跳動明顯。因此,在系統第一次測量輸入電壓前,首先通過軟件設計建立輸入電壓校正表校正的方法實現減小誤差。
    校正表是在第一次測量之前建立的數據表,作用是通過此表觀察輸入電壓值與測量值之間滿足何種曲線關系。在測量輸入電壓時,通過得到的曲線關系選擇拉格朗日插值算法,并將測量的值代入選擇的拉格朗日插值公式,計算出較為精確的輸入電壓值。
3.1 軟件實現過程
   
軟件設計過程主要包括MCU的ADC進行初始化,建立輸入電壓校正表,計算表達式(5)的值,拉格朗日插值計算輸入電壓,顯示輸入電壓值。軟件設計流程如3所示。


    設X為MCU的DAC數字量十進制的值,Y為MCU的ADC數字量十進制的值。
   
    由式(4)可得式(5):
   
3.1.1 初始化ADC
   
主要是對MCU的ADC進行初始化,主要包括ADC寄存器配置、選擇I/O口的工作模式、選擇ADC的通道、啟動ADC。
3.1.2 校正
   
校正是在測量輸入電壓前,首先利用基準電壓源輸入多個基準電壓值,并通過讀MCU的ADC寄存器值記錄對應的數字量的值,并將這兩項的值保存到校正表中。在測量輸入電壓時,將所得的數字量的值利用拉格朗日插值算法代入校正表可得精確的輸入電壓值。
    1)校正表內容校正的過程主要是通過建立校正表建立起實際輸入電壓值與測量輸入電壓值的聯系。校正表存放兩項數據。一項是1~59 V的整數電壓值,另一項是式(5)的和。因為系統測量的輸入電壓值是只保留到小數點后2位的近似值,而式(5)中包含測量的ADC和DAC的十進制數字量值更為精確。由式(4)可看出式(5)的值與測量的輸入電壓值存在比例關系,所以它們與實際輸入電壓的曲線關系相同。因此,另一項的內容存放的是式(5)的和。
    2)建立校正表的過程從1~59 V,用電壓源每隔1 V輸入一次電壓,通過讀MCU的ADC和DAC寄存器的值,記錄每次ADC和DAC的數字量十進制的值。將記錄的ADC和DAC的值代入式(5)計算其和并保存到校正表中。
3.1.3 計算式(5)的和值
   
通過程序改變MCU的DAC寄存器的值實現改變DAC的輸出電壓值,在改變DAC寄存器的值的同時通過觀察ADC的寄存器的值確定ADO的輸入電壓值是否在量程范圍之內。當ADO的輸入在量程范圍之內時,通過讀DAC寄存器和ADC的寄存器值可分別獲得MCU的DAC和ADC的數字量十進制值,將獲得的值代入式(5)可得其和。
3.1.4 計算輸入電壓
   
計算輸入電壓函數實現功能是利用拉格拉日插值公式計算出輸入電壓。通過坐標軸觀察校正表中數據,實際輸入電壓值與測量值滿足線性關系。在輸入電壓校正表中,查找與式(6)的值最接近的2個點,然后代入拉格拉日線性插值公式計算出輸入電壓。
   
3.2 實驗結果
   
利用傳統方法直接送入ADC測量輸入電壓的精度理想情況下最高為59.1/1024=57.7mV,由于硬件參數誤差和干擾等原因會使測量誤差大于20mV,無法滿足系統的測量精度和準確度要求。利用本文所提出的17位高精度A/D測量方法測量精度可減小為0.45mV,通過軟件校正的方法測量誤差可控制在10mV以內,滿足了設計要求。通過本文所述提高測量精度的方法,最高可實現20位ADC,測量精度可減小為0.056 mV。

4 結束語
   
本文基于NXP的LPC2368,利用其內部集成的ADC和DAC,實現高精度且精度可調的ADC,這種方法容易實現,可以應用在眾多數據采集領域,如傳感器的數據采集、電壓信號的測量等,只要選用的MCU自帶ADC和DAC,就可以采用本文方法實現最高精度達20位的高精度且精度可調的ADC。

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
久久综合久久88| 欧美日韩亚洲国产一区| 99re热这里只有精品视频| 欧美影院一区| 午夜精品久久久久久久99热浪潮 | 亚洲精品男同| 亚洲福利视频网站| 亚洲国产成人在线播放| 亚洲国产精品ⅴa在线观看 | 亚洲三级电影全部在线观看高清| 亚洲国产欧美另类丝袜| 亚洲国产另类 国产精品国产免费| 久久精品国产亚洲一区二区三区 | 亚洲第一主播视频| 久久精品官网| 91久久中文| 日韩视频免费观看高清在线视频 | 欧美成人精品不卡视频在线观看| 久久综合网色—综合色88| 老司机午夜精品视频在线观看| 久久人91精品久久久久久不卡| 久久婷婷久久| 欧美成人激情视频| 欧美日韩福利在线观看| 欧美三级电影网| 国产精品另类一区| 国产一区二区三区视频在线观看| 韩国av一区二区三区在线观看| 影音先锋日韩资源| 亚洲欧洲在线看| 一区二区三区免费观看| 亚洲一区免费观看| 欧美一级精品大片| 亚洲激情第一区| 一区二区欧美在线观看| 亚洲欧美美女| 久久久亚洲高清| 欧美激情网友自拍| 欧美日韩一区二区在线观看视频| 国产精品日本精品| 韩国精品主播一区二区在线观看| 尤物视频一区二区| 亚洲精品一区二区三区不| 亚洲午夜小视频| 久久av老司机精品网站导航| 亚洲精品免费电影| 午夜国产精品视频| 久久一区二区三区国产精品| 欧美精品一区在线发布| 国产精品久久久99| 极品少妇一区二区三区精品视频| 亚洲国产精品一区二区www在线| av成人免费| 欧美在线不卡视频| 亚洲作爱视频| 久久久国产精彩视频美女艺术照福利 | 校园春色综合网| 亚洲人成人99网站| 午夜精品网站| 欧美91福利在线观看| 欧美亚日韩国产aⅴ精品中极品| 国产午夜精品视频| 亚洲免费av电影| 久久国产精品久久久| 一区二区三区欧美激情| 久久久久久999| 欧美日韩一区在线观看视频| 狠狠色狠狠色综合日日tαg| 一区二区三区四区五区精品视频| 久久激情视频| 午夜国产精品视频| 欧美精品九九| 国产中文一区二区| 一区二区毛片| 亚洲激情网站免费观看| 欧美一区二区视频在线观看| 欧美精品大片| 韩曰欧美视频免费观看| 亚洲视频观看| 亚洲精品视频免费在线观看| 欧美在线3区| 欧美视频在线观看| 亚洲黄网站黄| 久久精品99国产精品酒店日本| 亚洲一区二区视频在线观看| 欧美成人免费全部观看天天性色| 国产九色精品成人porny| 亚洲精品资源美女情侣酒店| 亚洲二区在线观看| 久久精品女人| 国产精品劲爆视频| 亚洲另类在线一区| 亚洲精品中文字幕在线观看| 久久久国产精品一区二区中文| 国产精品美女主播在线观看纯欲| 亚洲精品综合精品自拍| 91久久香蕉国产日韩欧美9色| 久久精品亚洲国产奇米99| 国产精品男gay被猛男狂揉视频| 亚洲伦理精品| 99精品热视频只有精品10| 免费成人黄色| 精品成人a区在线观看| 欧美亚洲视频| 欧美亚洲在线视频| 国产精品一区二区三区久久| 一区二区电影免费观看| 一区二区三区四区五区精品| 欧美精品播放| 亚洲日本成人网| 日韩一区二区精品葵司在线| 榴莲视频成人在线观看| 黄网动漫久久久| 久久精品91久久久久久再现| 久久婷婷国产麻豆91天堂| 国内精品**久久毛片app| 久久大综合网| 久久综合九色九九| 一区二区在线看| 亚洲高清不卡| 免费久久99精品国产| 在线看无码的免费网站| 91久久久久久| 欧美精品九九99久久| 亚洲免费观看视频| 亚洲五月婷婷| 国产精品久久久久9999高清 | 亚洲欧美另类久久久精品2019| 欧美三区在线| 亚洲视频网在线直播| 亚洲男女自偷自拍| 国产伦精品一区二区| 新狼窝色av性久久久久久| 久久精品国产99国产精品澳门 | 亚洲国产99| 欧美成年人网站| 亚洲区一区二| 制服丝袜激情欧洲亚洲| 国产精品xxxxx| 亚洲一区二区三区在线| 久久国产精品电影| 狠狠久久亚洲欧美| 亚洲美女在线一区| 国产精品成人va在线观看| 亚洲欧美日本在线| 久久久久久久综合| 亚洲国产你懂的| 亚洲在线日韩| 国产一区二区三区的电影 | 国产乱码精品一区二区三区五月婷| 欧美一级淫片aaaaaaa视频| 久久综合成人精品亚洲另类欧美| 在线日韩成人| 亚洲天堂男人| 国产免费观看久久| 最新国产精品拍自在线播放| 欧美欧美全黄| 亚洲欧美日韩另类| 嫩草伊人久久精品少妇av杨幂| 亚洲精品一区久久久久久| 亚洲欧美乱综合| 尹人成人综合网| 亚洲视频国产视频| 国产亚洲欧美一区二区| 亚洲人成人77777线观看| 国产精品sm| 久久精品夜色噜噜亚洲a∨| 欧美精品一区二区三区四区| 亚洲一区二区精品| 久久亚洲欧洲| 一卡二卡3卡四卡高清精品视频| 久久九九国产精品| 亚洲人成毛片在线播放女女| 亚洲欧美日韩另类| 在线观看亚洲一区| 亚洲欧美色婷婷| 在线精品国产欧美| 亚洲欧美视频一区二区三区| 伊人久久大香线蕉av超碰演员| 亚洲天堂av电影| 精品福利电影| 亚洲欧美亚洲| 亚洲人成网在线播放| 久久精品女人的天堂av| 9人人澡人人爽人人精品| 久久夜色精品国产亚洲aⅴ| 一本大道久久a久久综合婷婷| 久久亚洲国产精品日日av夜夜| 一区二区三欧美| 欧美a级大片| 亚洲欧美另类中文字幕| 欧美日韩国产首页在线观看| 欧美一区永久视频免费观看| 欧美日韩一区二区在线播放| 亚洲国产婷婷综合在线精品 | 99re6这里只有精品| 开元免费观看欧美电视剧网站| 亚洲免费视频在线观看| 欧美人成在线| 亚洲娇小video精品|