<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 設計應用 > 基于片上ADC/DAC實(shí)現精度可調ADC的方法

基于片上ADC/DAC實(shí)現精度可調ADC的方法

作者: 時(shí)間:2017-06-03 來(lái)源:網(wǎng)絡(luò ) 收藏

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

本文引用地址:http://dyxdggzs.com/article/201706/347202.htm

  1 高ADC設計原理

  輸入電壓經(jīng)過(guò)電阻分壓產(chǎn)生電壓U入,送入由運放和電阻組成的減法的同相端,分壓的原因是輸入電壓最大值大于運放的最大輸入電壓。MCU的DAC輸出經(jīng)過(guò)同相比例放大之后產(chǎn)生與U入相近的電壓U近,送入減法電路的反相端。同相比例的作用是擴大DAC的輸出電壓范圍,使U入和U近的最大值近似相等。經(jīng)過(guò)減法運算電路之后的電壓差值U差經(jīng)過(guò)箝位電路送入MCU的ADC,通過(guò)讀ADC寄存器的值可得U差的值。箝位電路是防止ADC的輸入電壓超過(guò)量程,而導致燒毀MCU。

  在測量時(shí),由軟件控制改變DAC寄存器的值,從而改變DAC輸出電壓值,使U差的電壓值在量程范圍(0~3 V)之內。此時(shí)通過(guò)讀DAC和ADC的寄存器的值,可得DAC輸出電壓與送入ADC的電壓U差的值。根據DAC的輸出電壓和同相比例運算電路公式可得U近電壓值,根據減法電路公式、U差和U近的值可得輸入電壓值。

  系統硬件框圖如圖1所示。

  2 系統硬件設計

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

  圖2所示的電路雖然只是實(shí)現17位ADC,但通過(guò)修改幾個(gè)特定的電阻阻值就可實(shí)現調節測量輸入電壓范圍和ADC測量分辨率。通過(guò)修改同相比例運算電路中R109與R116比例值,可實(shí)現調節輸入電壓的測量范圍;通過(guò)修改減法電路中的R103與R100比例值,可實(shí)現調節ADC的分辨率。下面結合實(shí)現17位ADC硬件設計電路圖,具體說(shuō)明如何實(shí)現17位高精度ADC、調節測量輸入電壓范圍和實(shí)現10~20位精度可調的ADC。

  2.1 17位ADC的實(shí)琨過(guò)程

  對于一個(gè)n位的ADC,其分辨率為可測量最大輸入電壓值與2n的比值。因此,此電路圖可實(shí)現的ADC的位數可以通過(guò)輸入電壓的最大值和分辨率計算得出。

  1)計算輸入電壓測量范圍的方法 由圖2可知,ADC的輸入電壓計算公式如下:

  式中,VIN是輸入電壓,VDAOUT是當ADC的輸入電壓處于量程范圍之內時(shí)DAC電壓,VDAO是ADC輸入電壓。

  由式(2)可知,當DAC的輸出電壓和ADC的輸入電壓剛好達到最大值3 V時(shí),輸入電壓為59.1 V,此電壓值為系統可測量的最大輸入電壓值。由此可見(jiàn)輸入電壓的測量范圍是0~59.1 V。

  2)ADC分辨率的計算方法 當DAC的輸出為零時(shí),即VDAOUT=0時(shí),由式(2)可知輸入電壓VIN與VADO的電壓的關(guān)系為:

  VIN=VADO/10。MCU的ADC位數是1O位、最大輸入電壓是3 V。因此,ADC分辨率為0.292 mV。

  3)實(shí)現17位ADC根據輸入電壓最大值與ADC分辨率的比值計算出此電路圖實(shí)現的ADC的位數。由59.1/(0.292x10-3)=202 397=217.6,可以看出此電路實(shí)現了17位的ADC。

  2.2 調節測量輸入電壓范圍的方法

  因為VADO和VDAOUT的最大值都是3 V,由式(2)可知,可測量的最大輸入電壓值是由R100、R103、R116、R109決定的。改變R100與R103的比值會(huì )影響ADC的測量精度,因此,調節測量輸入電壓范圍主要是通過(guò)調節R116與R109的比值。由式(2)容易看出,當R116增加時(shí),測量電壓輸入范圍增加,R109增加時(shí)測量電壓輸入范圍減小。

  2.3 實(shí)現10~20位精度可調ADC的方法

  由17位ADC的實(shí)現過(guò)程可知,此電路實(shí)現ADC的位數是由測量輸入電壓最大值和ADC的分辨率決定的。所以在改變ADC的位數時(shí),要通過(guò)改變測量輸入電壓范圍或者ADC分辨率。但是,系統測量輸入電壓范圍是固定的。因此,可通過(guò)改變ADC分辨率實(shí)現ADC的位數改變。

  1)調節ADC分辨率的方法當DAC的輸出電壓為零時(shí),將式(2)化簡(jiǎn)為式(3):

  由式(3)可知,當MCU的ADC變化一個(gè)電壓刻度值時(shí),VIN變化6R100/R103。ADC位數是10位、最大輸入電壓是3 V。因此,ADO分辨率為3 V/1 024=2.92 mV,ADC的分辨率為2.92x10-3x6R100/R103。由此可見(jiàn),R100增加時(shí),分辨率下降;R103增加時(shí),分辨率提高。

2)實(shí)現10~20位精度可調ADC通過(guò)可測量的輸入電壓最大值與要實(shí)現的ADC的位數可計算出ADC的分辨率,再通過(guò)式(3)可求出R100與R103的比例關(guān)系。按照R100與R103的比例關(guān)系修改其阻值,即可實(shí)現要得到的ADC的位數。例如將本系統修改為20位ADC,則ADC測量精度應該為59.1 V/220=0.056 mV。由式(3)可知0.056=6x0.292xR100/R103,所以修改R103與R100的比值為312.8,即可以實(shí)現20位的ADC。通過(guò)此方法可實(shí)現10~20位精度可調的ADC。

  2.4 硬件設計說(shuō)明

  U100是由運放OPA177F組成的電壓跟隨器,具有輸入阻抗高,輸出阻抗低的特點(diǎn),在本系統中的作用是實(shí)現匹配U101的輸入電阻和提高對輸入電壓分壓的精確度。R101和R100第二級減法運算電路的輸入匹配電阻,其阻值不宜小于10 kΩ,太小會(huì )影響ADC的測量精度。R104為限流電阻,防止電流超過(guò)VD100的最大額定電流。

  R117和R118組成分壓電路,在R118上的電壓為45 mv,可抵消運放的零漂。若不加此分壓電路且DAC輸出為零時(shí),經(jīng)過(guò)實(shí)際測量TP102點(diǎn)的電壓約為120 mV,這是由運放的零漂造成的,會(huì )影響ADC的測量精度。在每一個(gè)運放輸入端添加了0.1 μF的電容,去除高頻信號,提高輸入信號的穩定性。

  3 系統軟件設計

  軟件部分主要功能是對輸入電壓的測量。因為硬件設計中,運放和電阻本身的參數存在誤差,所以它們組成的放大電路的放大倍數存在誤差,從而造成ADC測量產(chǎn)生誤差。因此,傳統方法直接利用它們組成的放大電路的計算公式(式(2))計算出的輸入電壓值誤差比較大,電壓跳動(dòng)明顯。因此,在系統第一次測量輸入電壓前,首先通過(guò)軟件設計建立輸入電壓校正表校正的方法實(shí)現減小誤差。

  校正表是在第一次測量之前建立的數據表,作用是通過(guò)此表觀(guān)察輸入電壓值與測量值之間滿(mǎn)足何種曲線(xiàn)關(guān)系。在測量輸入電壓時(shí),通過(guò)得到的曲線(xiàn)關(guān)系選擇拉格朗日插值算法,并將測量的值代入選擇的拉格朗日插值公式,計算出較為精確的輸入電壓值。

  3.1 軟件實(shí)現過(guò)程

  軟件設計過(guò)程主要包括MCU的ADC進(jìn)行初始化,建立輸入電壓校正表,計算表達式(5)的值,拉格朗日插值計算輸入電壓,顯示輸入電壓值。軟件設計流程如3所示。

  設X為MCU的DAC數字量十進(jìn)制的值,Y為MCU的ADC數字量十進(jìn)制的值。

  由式(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。



關(guān)鍵詞: ADC/DAC 精度 運算電路

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>