1. 引言
對(duì)測(cè)控現(xiàn)場(chǎng)的被測(cè)模擬信號(hào)的處理一般常用A/D或V/F轉(zhuǎn)換技術(shù),兩種方法各有特點(diǎn):A/D轉(zhuǎn)換技術(shù)一般用于被測(cè)信號(hào)速率較高,但干擾不是太嚴(yán)重的場(chǎng)合,而V/F轉(zhuǎn)換技術(shù)由于具有較強(qiáng)的抗干擾性且便于實(shí)現(xiàn)信號(hào)的遠(yuǎn)傳和隔離,因此往往用于現(xiàn)場(chǎng)的干擾較為嚴(yán)重、且信號(hào)傳輸距離較遠(yuǎn)的場(chǎng)合。但由于V/F變換的采樣速率較低,在對(duì)分辨率、采樣速率和抗干擾性要求都較高時(shí),則采用V/F轉(zhuǎn)換技術(shù)往往也難以滿足采樣要求。盡管A/D轉(zhuǎn)換的采樣速率較高,但由于其抗干擾性較差,從而使系統(tǒng)的可靠性、穩(wěn)定性和測(cè)試精度都會(huì)受到影響,有時(shí)甚至無法正常工作。
本文提出一種采用PWM技術(shù)的新型的高性能模數(shù)轉(zhuǎn)換器的設(shè)計(jì)方法,利用MCU內(nèi)部的定時(shí)器,結(jié)合改進(jìn)的逐次逼近的對(duì)分試探算法,只須采用普通元器件即可設(shè)計(jì)出具有高分辨率的A/D轉(zhuǎn)換器,以實(shí)現(xiàn)對(duì)模擬電壓的測(cè)量,通過實(shí)驗(yàn)證明該設(shè)計(jì)能夠達(dá)到較高的精度和分辨率,電路簡(jiǎn)單、可靠、成本低、傳輸信號(hào)線少,便于遠(yuǎn)傳或隔離,抗干擾能力強(qiáng),具有較好的應(yīng)用價(jià)值。
2. 基于PWM技術(shù)的A/D轉(zhuǎn)換工作原理及接口電路設(shè)計(jì)
一般模數(shù)轉(zhuǎn)換包括采樣、保持、量化和編碼四個(gè)過程。采樣就是將一個(gè)連續(xù)變化的信號(hào)x (t) 轉(zhuǎn)換成時(shí)間上離散的采樣信號(hào)x (n) 。通常采樣脈沖的寬度tw 是很短的,故采樣輸出是斷續(xù)的窄脈沖。要把一個(gè)采樣輸出信號(hào)數(shù)字化,需要將采樣輸出所得的瞬時(shí)模擬信號(hào)保持一段時(shí)間,這就是保持過程。量化是將連續(xù)幅度的抽樣信號(hào)轉(zhuǎn)換成離散時(shí)間、離散幅度的數(shù)字信號(hào),量化的主要問題就是量化誤差。編碼是將量化后的信號(hào)編碼成二進(jìn)制代碼輸出。這些過程有些是合并進(jìn)行的。例如,采樣和保持就利用一個(gè)電路連接完成,量化和編碼也是在轉(zhuǎn)換過程同時(shí)實(shí)現(xiàn)的,且所用時(shí)間又是保持時(shí)間的一部分[1]。
PWM即脈沖寬度調(diào)制,PWM信號(hào)是一種周期(T)固定、占空比變化的數(shù)字信號(hào)。當(dāng)對(duì)其進(jìn)行積分或低通濾波后,便可獲得與其脈沖寬度呈正比的模擬電壓,于是將該電壓作為試探值與被測(cè)模擬量進(jìn)行比較便可獲得與被測(cè)模擬量相對(duì)應(yīng)的PWM值或數(shù)字量。本設(shè)計(jì)是利用定時(shí)器產(chǎn)生PWM脈沖輸出信號(hào),利用比較器作為試探結(jié)果狀態(tài)標(biāo)志,采用改進(jìn)的逐次逼近試探算法來實(shí)現(xiàn)對(duì)被測(cè)模擬量的A/D變換。由于一般單片機(jī)內(nèi)部都有定時(shí)器,因此可直接利用片內(nèi)定時(shí)器來產(chǎn)生PWM信號(hào)即可[2],本設(shè)計(jì)采用的是MSP430單片機(jī),由于其內(nèi)部的定時(shí)器A具有比較/捕獲功能,且內(nèi)部具有多個(gè)捕獲/比較器:CCR0--CCRn,因此利用這種功能可更方便的產(chǎn)生PWM信號(hào),從而實(shí)現(xiàn)A/D轉(zhuǎn)換。PWM波形的產(chǎn)生是利用定時(shí)器A輸出模式中的“復(fù)位/置位”模式。例如可利用其中的捕獲/比較器CCR0來控制PWM的周期,而用CCR1通道控制PWM的占空比,從而可方便的獲得PWM信號(hào),如圖1所示“復(fù)位/置位”模式輸出示意圖。
由圖1可知,只要改變CCR1和CCR0的值就可以改變輸出波形的脈沖寬度和脈沖周期,例如,以CCR0信號(hào)作為脈沖周期控制,當(dāng)CCR1的值改變時(shí)即可改變PWM信號(hào)的脈沖寬度或占空比,輸出信號(hào)就是PWM信號(hào)。如圖2所示[3]。
若PWM信號(hào)的占空比隨時(shí)間變化,那么經(jīng)過低通濾波后的輸出信號(hào)將是幅度變化的模擬信號(hào),因此通過控制PWM信號(hào)的占空比,就可以產(chǎn)生不同的模擬信號(hào)。本設(shè)計(jì)中,采用MSP430單片機(jī)的定時(shí)器A的CCR0來控制周期,采用CCR1來控制占空比,從而產(chǎn)生所需要的PWM信號(hào)。
采用PWM技術(shù)的A/D轉(zhuǎn)換電路設(shè)計(jì)如圖3、4所示。A/D轉(zhuǎn)換通過MSP430單片機(jī)的內(nèi)部定時(shí)器A產(chǎn)生的PWM信號(hào),通過P23口輸出,經(jīng)過兩級(jí)RC低通濾波后得到與其對(duì)應(yīng)的模擬信號(hào),然后通過運(yùn)算放大器構(gòu)成的電壓跟隨器進(jìn)行阻抗變換后,作為試探值送電壓比較器LM393的一端,在比較器的另一端接入被測(cè)模擬量,兩信號(hào)在比較器中進(jìn)行比較,通過檢測(cè)比較器的輸出電平狀態(tài)即可反映出試探值的大小,由比較器的輸出狀態(tài)調(diào)整PWM信號(hào)的占空比,產(chǎn)生下一次PWM信號(hào)的輸出,于是通過不斷的試探并修正PWM信號(hào)的占空比即可使試探值接近或等于被測(cè)量,則此時(shí)的脈沖值即為被測(cè)量的A/D轉(zhuǎn)換值,可以達(dá)到16位的轉(zhuǎn)換精度。另外,由原理圖4可知,由于整個(gè)電路比較簡(jiǎn)單且該轉(zhuǎn)換器與系統(tǒng)的連接只有兩條信號(hào)線:即PWM信號(hào)輸入線和用于將試探值與被測(cè)模擬量進(jìn)行比較的比較器信號(hào)輸出線,因此在進(jìn)行抗干擾隔離時(shí)將很容易實(shí)現(xiàn),而在采用普通A/D轉(zhuǎn)換器的電路中進(jìn)行抗干擾隔離時(shí)則要麻煩的多。
3. 微控制器MCU的選型
為方便使用和操作,本設(shè)計(jì)不但設(shè)計(jì)簡(jiǎn)單,而且功耗要低,因此經(jīng)多方面綜合、對(duì)比決定采用TI公司的具有SOC特點(diǎn)的MSP430系列MCU,這是一種超低功耗的16位混合信號(hào)控制器,其內(nèi)部集成了大量的外圍模塊和溫度傳感器,特別適用于電池供電的手持式設(shè)備或需要對(duì)環(huán)境溫度進(jìn)行補(bǔ)償?shù)臏y(cè)試儀器。
MSP430單片機(jī)采用最新的低功耗技術(shù),工作在1.8~3.6V 電壓下,有正常工作模式( A M ) 和4 種低功耗工作模式;在最小功耗模式下其工作電流僅為0.1μA,而且可以方便地在各種工作模式之間切換。它的超低功耗性在實(shí)際應(yīng)用中, 尤其是在電池供電的便攜式設(shè)備中表現(xiàn)尤為突出。在系統(tǒng)初始化后便進(jìn)入待機(jī)模式,當(dāng)有允許的中斷請(qǐng)求時(shí),CPU 將在6μs的時(shí)間內(nèi)被喚醒, 進(jìn)入活動(dòng)模式,執(zhí)行中斷服務(wù)程序。執(zhí)行完畢,在RETI 指令之后,系統(tǒng)返回到中斷前的狀態(tài),繼續(xù)低功耗模式。
本設(shè)計(jì)所采用的是MSP430F1232微控制器,具有非常高的集成度,除內(nèi)部帶有具有PWM功能的定時(shí)器外,片內(nèi)還集成了10通道的1 0位A / D轉(zhuǎn)換、溫度傳感器、USART、看門狗定時(shí)器、片內(nèi)數(shù)控振蕩器DCO、大量的具有中斷功能的I/O 端口、大容量的片內(nèi)Flash 和RAM 以及信息Flash 存儲(chǔ)器[4]。其中的16位定時(shí)器A中帶有3個(gè)捕獲/比較通道,內(nèi)部的Flash 存儲(chǔ)器可以實(shí)現(xiàn)掉電保護(hù)和軟件升級(jí)。由此采用MSP430單片機(jī)作為該設(shè)計(jì)的處理器,不但可簡(jiǎn)化系統(tǒng)電路設(shè)計(jì)、縮短開發(fā)周期,降低系統(tǒng)功耗,還可利用其內(nèi)部集成的溫度傳感器,方便的對(duì)被測(cè)模擬量進(jìn)行溫度補(bǔ)償,從而使系統(tǒng)的測(cè)試精度得以提高。
4. A/D 轉(zhuǎn)換分辨率分析及主程序設(shè)計(jì)
由于采用PWM技術(shù)的A/D轉(zhuǎn)換器的分辨率取決于控制PWM脈沖占空比的定時(shí)器的計(jì)數(shù)值位數(shù)或字長(zhǎng),因此可通過改變定時(shí)器計(jì)數(shù)位數(shù)來改變A/D轉(zhuǎn)換的分辨率,而MSP430單片機(jī)的內(nèi)部定時(shí)器A中的計(jì)數(shù)器字長(zhǎng)為16位,因此其PWM信號(hào)占空比的調(diào)整范圍為0~216-1,于是當(dāng)系統(tǒng)定時(shí)器的計(jì)數(shù)器字長(zhǎng)為16位時(shí),采用PWM技術(shù)的A/D轉(zhuǎn)換器的最大分辨率可達(dá)16位。由于單片機(jī)內(nèi)部的16位定時(shí)器采用晶振作為內(nèi)部計(jì)數(shù)器的工作時(shí)鐘,因此其定時(shí)精度一般都較高,且其計(jì)數(shù)值與PWM脈沖占空比成嚴(yán)格的線性關(guān)系,輸入脈沖精確,因此A/D轉(zhuǎn)換的線性度和精度較好,線性度誤差小于1%。轉(zhuǎn)換速率與分辨率和選取的PWM信號(hào)的周期有關(guān),分辨率越高,轉(zhuǎn)換時(shí)間越長(zhǎng),但同采用V/F方式相比較,轉(zhuǎn)換速度要快的多。
為了能夠縮短試探時(shí)間提高在高分辨率下的采樣速度,采用改進(jìn)的逐次逼近的對(duì)分試探法使得試探值能夠迅速逼近被測(cè)模擬量。常規(guī)的對(duì)分試探法是每次試探開始時(shí),首先將最大計(jì)數(shù)值的一半(即字長(zhǎng)對(duì)分值)作為試探初值并將其轉(zhuǎn)換成PWM信號(hào)輸出,相當(dāng)于輸出1:1占空比的PWM脈沖信號(hào),然后測(cè)試比較器的狀態(tài),以確定當(dāng)前試探值的大小,若試探值小于被測(cè)模擬量,則保留當(dāng)前試探值,否則去掉,然后再將剩余值的一半(即:剩余對(duì)分值)作為新的增量與上次保留值相加后產(chǎn)生新的試探值并將其轉(zhuǎn)換成PWM脈沖信號(hào)輸出,再測(cè)試比較器的狀態(tài),若大于被測(cè)模擬量,則去掉當(dāng)前增量,否則保留,隨后每次的輸出都將剩余對(duì)分值作為增量進(jìn)行試探,一直持續(xù)的試探下去,直到試探完與分辨率相當(dāng)?shù)拇螖?shù),例如:實(shí)現(xiàn)具有16位分辨率的A/D轉(zhuǎn)換就要試探16次。由于該方法在采樣時(shí)無論當(dāng)前采樣值試探值多么接近被測(cè)值,其每次采樣的試探次數(shù)都相同,為減小試探次數(shù)提高采樣速率,在本設(shè)計(jì)中采用了一種改進(jìn)的逐次逼近試探算法,可大大減少試探次數(shù),其具體實(shí)現(xiàn)的方法是:當(dāng)?shù)谝淮卧囂酵瓴@得采樣值后,保留當(dāng)前采樣值,不再以剩余對(duì)分值作為新的增量,而是以最小值作為初次增量(即:將最低位置1,可將其看作權(quán)值),與上次保留值相加并轉(zhuǎn)換成PWM信號(hào)輸出,通過測(cè)試比較器輸出確定當(dāng)前增量值是否需要保留,若試探值小于被測(cè)模擬量,則保留當(dāng)前試探值,否則去掉。若需要增大試探值時(shí),則可將權(quán)值左移一位再與上次試探值相加,以形成新的試探值,這樣可以使逐次逼近試探值總處在跟蹤試探狀態(tài),從而大大減少了試探次數(shù)。由于在實(shí)際測(cè)試過程中被測(cè)模擬量一般很少有突變情況發(fā)生,大都處在緩變?cè)黾踊蚓徸儨p小狀態(tài),因此采用這種改進(jìn)的逐次逼近的試探算法,將會(huì)有效的提高A/D轉(zhuǎn)換器的采樣速率。
采用PWM技術(shù)的A/D轉(zhuǎn)換器的主程序,采用匯編語(yǔ)言編寫。其主程序流程圖如圖5所示:
5. 結(jié)束語(yǔ)
采用普通元器件利用MCU內(nèi)部定時(shí)器結(jié)合PWM技術(shù)設(shè)計(jì)高分辨率的A/D轉(zhuǎn)換器,改變A/D轉(zhuǎn)換的分辨率只須修改PWM定時(shí)器的有關(guān)參數(shù)即可,靈活方便,穩(wěn)定性好,線性度高,由于該轉(zhuǎn)換器與系統(tǒng)的連接僅為兩條信號(hào)線,因此,可以很方便的采用光電隔離技術(shù)提高系統(tǒng)的抗干擾能力,另外由于電路中的低通濾波環(huán)節(jié),使得電路本身也具有一定的抗干擾能力,這比較適合在具有較強(qiáng)的干擾環(huán)境中使用,采用改進(jìn)的逐次逼近試探算法實(shí)現(xiàn)對(duì)模擬電壓的測(cè)量或A/D變換,提高了采樣速率,轉(zhuǎn)換電路設(shè)計(jì)及算法實(shí)現(xiàn)簡(jiǎn)單,測(cè)試分辨率和精度較高,具有較好的應(yīng)用價(jià)值。
本文創(chuàng)新點(diǎn):利用PWM技術(shù)實(shí)現(xiàn)對(duì)模擬電壓的測(cè)量或A/D變換,既具有較高的分辨率,又具有較好的抗干擾性,且便于采用光電隔離。同時(shí)結(jié)合利用改進(jìn)的逐次逼近試探算法大大減少了試探次數(shù),轉(zhuǎn)換電路的設(shè)計(jì)及轉(zhuǎn)換算法實(shí)現(xiàn)簡(jiǎn)單,A/D轉(zhuǎn)換分辨率可以根據(jù)需要任意設(shè)置,具有較好的應(yīng)用價(jià)值。
目前市場(chǎng)上14—16位的A/D轉(zhuǎn)換器芯片的銷售價(jià)格大約在100元—300元之間,具有相應(yīng)分辨率的V/F轉(zhuǎn)換模塊的銷售價(jià)格約為100—150元,而采用PWM技術(shù)設(shè)計(jì)的A/D轉(zhuǎn)換器中所用到的主要芯片或元器件為:運(yùn)放:8元;高速比較器LM311或LM393:2元;MCU:15元(但采用A/D轉(zhuǎn)換器芯片時(shí)也必須要用MCU,當(dāng)采用用戶系統(tǒng)中的MCU時(shí)此費(fèi)用可?。?,即:總費(fèi)用包括MCU時(shí)才不超過30元,按照保守用量計(jì)算:若A/D芯片加V/F轉(zhuǎn)換模塊的年需求總量為十萬(wàn)片(塊)時(shí),其經(jīng)濟(jì)效益是相當(dāng)可觀的。
參考文獻(xiàn):
[1]王樹紅.幾種A/ D 轉(zhuǎn)換技術(shù)及性能特點(diǎn)的分析[J]. 山西電子技術(shù), 2004 年第5 期
[2]張運(yùn)波.PWM信號(hào)的軟件實(shí)現(xiàn)方法[J]. 微計(jì)算機(jī)信息, 2002,18-10:46-47。
[3]秦龍.MSP430單片機(jī)C語(yǔ)言應(yīng)用程序設(shè)計(jì)實(shí)例精講[M].電子工業(yè)出版社,2006.5
[4]魏小龍. MSP430系列單片機(jī)接口技術(shù)及系統(tǒng)設(shè)計(jì)實(shí)例[M].北京航空航天大學(xué)出版社, 2003.6