Σ-ΔA/D技術(shù)具有高分辨率、高線性度和低成本的特點(diǎn)。本文基于TI公司的MSP430F1121單片機(jī),介紹了采用內(nèi)置比較器和外圍電路構(gòu)成類似于∑-△的高精度A/D實(shí)現(xiàn)方案,適合用于對(duì)溫度、壓力和電壓等緩慢變化信號(hào)的采集應(yīng)用。
在各種A/D轉(zhuǎn)換器中,最常用是逐次逼近法(SAR)A/D,該類器件具有轉(zhuǎn)換時(shí)間固定且快速的特點(diǎn),但難以顯著提高分辨率;積分型A/D 有較強(qiáng)的抗干擾能力,但轉(zhuǎn)換時(shí)間較長(zhǎng);過采樣Σ-ΔA/D由于其高分辨率,高線性度及低成本的特點(diǎn),正得到越來越多的應(yīng)用。根據(jù)這些特點(diǎn),本文以TI公司的MSP430F1121單片機(jī)實(shí)現(xiàn)了一種類似于Σ-ΔA/D技術(shù)的高精度轉(zhuǎn)換器方案。
MSP430F1121是16位RISC結(jié)構(gòu)的FLASH型單片機(jī),該芯片有14個(gè)雙向I/O口并兼有中斷功能,一個(gè)16位定時(shí)器兼有計(jì)數(shù)和定時(shí)功能。I/O口輸出高電平時(shí)電壓接近VCC,低電平時(shí)接近Vss,因此,一個(gè)I/O口可以看作一位DAC,具有PWM功能。
該芯片具有一個(gè)內(nèi)置模擬電壓比較器,只須外接一只電阻和電容即可構(gòu)成一個(gè)類似于Σ-Δ技術(shù)的高精度單斜率A/D。一般而言,比較器在使用過程中會(huì)受到兩種因素的影響,一種是比較器輸入端的偏置電壓的積累;另一種是兩個(gè)輸入端電壓接近到一程度時(shí),輸出端會(huì)產(chǎn)生振蕩。
MSP430F1121單片機(jī)在比較器兩輸入端對(duì)應(yīng)的單片機(jī)端口與片外輸入信號(hào)的連接線路保持不變的情況下,可通過軟件將比較器兩輸入端與對(duì)應(yīng)的單片機(jī)端口的連接線路交換,并同時(shí)將比較器的輸出極性變換,這樣抵消了比較器的輸入端累積的偏置電壓。通過在內(nèi)部將輸出連接到低通濾波器后,即使在比較器輸入端兩比較電壓非常接近,經(jīng)過濾波后也不會(huì)出現(xiàn)輸出端的振蕩現(xiàn)象,從而消除了輸出端震蕩的問題。
利用內(nèi)置比較器實(shí)現(xiàn)高精度A/D
圖1是一個(gè)可直接使用的A/D轉(zhuǎn)換方案,該方案是一個(gè)高精度的積分型A/D轉(zhuǎn)換器。其基本原理是用單一的I/O端口,執(zhí)行1位的數(shù)模轉(zhuǎn)換,以比較器的輸出作反饋,來維持Vout與Vin相等。
圖1 利用MSP430F1121實(shí)現(xiàn)的實(shí)用A/D轉(zhuǎn)換器電路
如圖1所示,產(chǎn)生1位DAC的電路為一路通用I/O口、一個(gè)串聯(lián)的電阻和電容。在電容上產(chǎn)生Vout,要維持Vout=Vin,必須通過 I/O口對(duì)電容進(jìn)行充放電,而由比較器的輸出來決定是進(jìn)行充電還是放電(即I/O口輸出高低電平),這樣A/D形成了一個(gè)類似于帶負(fù)反饋的閉環(huán)系統(tǒng)。以圖 1的電路為例,當(dāng)比較器輸出為高電平時(shí),說明Vout>Vin,此時(shí)應(yīng)對(duì)電容放電,則I/O口輸出低電平;當(dāng)比較器輸出為低電平時(shí),說明Vout <Vin,應(yīng)對(duì)電容充電,則I/O口輸出高電平。
充、放電維持的時(shí)間確定的方法是每隔一個(gè)極短且固定的時(shí)間t后,查詢比較器的輸出狀態(tài),如果比較器的輸出狀態(tài)沒變,則維持I/O口的輸出;當(dāng)比較器的輸出狀態(tài)發(fā)生改變,則I/O口的輸出狀態(tài)也應(yīng)改變。因此,I/O的某一狀態(tài)(高/低電平)維持的時(shí)間可能是Xt(X為整數(shù)),從而在整個(gè)A/D轉(zhuǎn)換過程中,形成了一系列的X1、X2、…、Xi、…、 Xn。Xn為一隨機(jī)數(shù),其值由比較器的輸出狀態(tài)而定。在每個(gè)單位時(shí)間t后,如果I/O口的輸出為高電平,則事先設(shè)定的計(jì)數(shù)加1,當(dāng)A/D轉(zhuǎn)換完成后,記錄下I/O口輸出高電平的次數(shù)為m。
而A/D轉(zhuǎn)換完成的時(shí)間主要取決于對(duì)A/D轉(zhuǎn)換的精度要求。當(dāng)要求一個(gè)12位的A/D,則其時(shí)間為4096t,即對(duì)比較器輸出作 4096次查詢,每次查詢間隔時(shí)間為t(參考后面的程序及說明)。同樣16位的A/D的時(shí)間為65535t。在此,將對(duì)應(yīng)轉(zhuǎn)換精度要求的4096或 65535設(shè)為N,并結(jié)合上文所述,N=X1+X2+……Xn。
那么結(jié)合電容的充放電公式:
V(t)=V(1-exp(-t/RC))
可對(duì)積分型A/D作以下數(shù)學(xué)上的推斷,從而求出Vin。
N=X1+X2+……Xn
高電平的次數(shù)為m
假設(shè):Vin(t)=Vin
根據(jù)Vout=Vin和電容的充放電的公式可得:
Vout(t)=Vin+m(Vcc-Vin)(1-exp(-t/RC))-(N-m)Vin(1-exp(-t/RC)
m(Vcc-Vin)(1-exp(-t/RC))為充電過程
(N-m)Vin(1-exp(-t/RC)為放電過程
因此:Vin=Vcc×m/N (1)
上式成立的前提條件是Vin 在短時(shí)間內(nèi)不變,且對(duì)確定Vout的電容要預(yù)充電,在開始進(jìn)行A/D轉(zhuǎn)換前使Vout=Vin,即通過I/O口對(duì)電容預(yù)充電使比較器在發(fā)生第一次翻轉(zhuǎn)后,開始進(jìn)行積分A/D轉(zhuǎn)換。
如果對(duì)(1)式作一些處理,可使得A/D轉(zhuǎn)換的處理更加方便:如果電源電壓Vcc為3.0V,取N=3000,則分辨率為1mV,當(dāng)m= 1245時(shí), Vin=1.245V;如果N=30000,則分辨率為0.1mV,在m=12456時(shí),則Vin=1.2456V。這樣,只要通過對(duì)m的確定就可以得到 Vin的值,避免了直接用公式(1)帶來的計(jì)算上的麻煩。
圖2 用比較器做A/D轉(zhuǎn)換的子程序代碼
應(yīng)用實(shí)例
上面介紹的低成本A/D轉(zhuǎn)換器方案適用于緩慢變化電信號(hào)的采集,如溫度、壓力、光和電壓等。結(jié)合芯片的低功耗特點(diǎn),該方案適合于電池供電的便攜式儀器。
用圖1所示電路可以構(gòu)成一個(gè)簡(jiǎn)單的信號(hào)測(cè)量系統(tǒng),用HT1621作為液晶顯示驅(qū)動(dòng)器,P1.0~P1.3四個(gè)I/O口控制HT1621。測(cè)量結(jié)果直接可以看到,利用該電路可以構(gòu)成一個(gè)具有12位以上分辨率的毫伏表。
因此,可以將測(cè)量結(jié)果放入FLASH存儲(chǔ)器中,具有記憶和回放功能。MSP430F1121 還有一個(gè)16位定時(shí)器,可以與一個(gè)I/O端口構(gòu)成一個(gè)UART,用于發(fā)送測(cè)量結(jié)果,上傳給PC機(jī),可以構(gòu)成一個(gè)低采樣率的簡(jiǎn)易存儲(chǔ)示波器。
評(píng)論
查看更多