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