基于PWM技術(shù)的A/D轉(zhuǎn)換電路的設(shè)計及應(yīng)用
1. 引言
對測控現(xiàn)場的被測模擬信號的處理一般常用A/D或V/F轉(zhuǎn)換技術(shù),兩種方法各有特點:A/D轉(zhuǎn)換技術(shù)一般用于被測信號速率較高,但干擾不是太嚴重的場合,而V/F轉(zhuǎn)換技術(shù)由于具有較強的抗干擾性且便于實現(xiàn)信號的遠傳和隔離,因此往往用于現(xià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é)合改進的逐次逼近的對分試探算法,只須采用普通元器件即可設(shè)計出具有高分辨率的A/D轉(zhuǎn)換器,以實現(xiàn)對模擬電壓的測量,通過實驗證明該設(shè)計能夠達到較高的精度和分辨率,電路簡單、可靠、成本低、傳輸信號線少,便于遠傳或隔離,抗干擾能力強,具有較好的應(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ù)字信號,量化的主要問題就是量化誤差。編碼是將量化后的信號編碼成二進制代碼輸出。這些過程有些是合并進行的。例如,采樣和保持就利用一個電路連接完成,量化和編碼也是在轉(zhuǎn)換過程同時實現(xiàn)的,且所用時間又是保持時間的一部分[1]。
PWM即脈沖寬度調(diào)制,PWM信號是一種周期(T)固定、占空比變化的數(shù)字信號。當(dāng)對其進行積分或低通濾波后,便可獲得與其脈沖寬度呈正比的模擬電壓,于是將該電壓作為試探值與被測模擬量進行比較便可獲得與被測模擬量相對應(yīng)的PWM值或數(shù)字量。本設(shè)計是利用定時器產(chǎn)生PWM脈沖輸出信號,利用比較器作為試探結(jié)果狀態(tài)標(biāo)志,采用改進的逐次逼近試探算法來實現(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)成的電壓跟隨器進行阻抗變換后,作為試探值送電壓比較器LM393的一端,在比較器的另一端接入被測模擬量,兩信號在比較器中進行比較,通過檢測比較器的輸出電平狀態(tài)即可反映出試探值的大小,由比較器的輸出狀態(tài)調(diào)整PWM信號的占空比,產(chǎn)生下一次PWM信號的輸出,于是通過不斷的試探并修正PWM信號的占空比即可使試探值接近或等于被測量,則此時的脈沖值即為被測量的A/D轉(zhuǎn)換值,可以達到16位的轉(zhuǎn)換精度。另外,由原理圖4可知,由于整個電路比較簡單且該轉(zhuǎn)換器與系統(tǒng)的連接只有兩條信號線:即PWM信號輸入線和用于將試探值與被測模擬量進行比較的比較器信號輸出線,因此在進行抗干擾隔離時將很容易實現(xiàn),而在采用普通A/D轉(zhuǎn)換器的電路中進行抗干擾隔離時則要麻煩的多。
3. 微控制器MCU的選型
為方便使用和操作,本設(shè)計不但設(shè)計簡單,而且功耗要低,因此經(jīng)多方面綜合、對比決定采用TI公司的具有SOC特點的MSP430系列MCU,這是一種超低功耗的16位混合信號控制器,其內(nèi)部集成了大量的外圍模塊和溫度傳感器,特別適用于電池供電的手持式設(shè)備或需要對環(huán)境溫度進行補償?shù)臏y試儀器。
MSP430單片機采用最新的低功耗技術(shù),工作在1.8~3.6V 電壓下,有正常工作模式( A M ) 和4 種低功耗工作模式;在最小功耗模式下其工作電流僅為0.1μA,而且可以方便地在各種工作模式之間切換。它的超低功耗性在實際應(yīng)用中, 尤其是在電池供電的便攜式設(shè)備中表現(xiàn)尤為突出。在系統(tǒng)初始化后便進入待機模式,當(dāng)有允許的中斷請求時,CPU 將在6μs的時間內(nèi)被喚醒, 進入活動模式,執(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)掉電保護和軟件升級。由此采用MSP430單片機作為該設(shè)計的處理器,不但可簡化系統(tǒng)電路設(shè)計、縮短開發(fā)周期,降低系統(tǒng)功耗,還可利用其內(nèi)部集成的溫度傳感器,方便的對被測模擬量進行溫度補償,從而使系統(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)換器的最大分辨率可達16位。由于單片機內(nèi)部的16位定時器采用晶振作為內(nèi)部計數(shù)器的工作時鐘,因此其定時精度一般都較高,且其計數(shù)值與PWM脈沖占空比成嚴格的線性關(guān)系,輸入脈沖精確,因此A/D轉(zhuǎn)換的線性度和精度較好,線性度誤差小于1%。轉(zhuǎn)換速率與分辨率和選取的PWM信號的周期有關(guān),分辨率越高,轉(zhuǎn)換時間越長,但同采用V/F方式相比較,轉(zhuǎ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)前增量,否則保留,隨后每次的輸出都將剩余對分值作為增量進行試探,一直持續(xù)的試探下去,直到試探完與分辨率相當(dāng)?shù)拇螖?shù),例如:實現(xiàn)具有16位分辨率的A/D轉(zhuǎn)換就要試探16次。由于該方法在采樣時無論當(dāng)前采樣值試探值多么接近被測值,其每次采樣的試探次數(shù)都相同,為減小試探次數(shù)提高采樣速率,在本設(shè)計中采用了一種改進的逐次逼近試探算法,可大大減少試探次數(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),因此采用這種改進的逐次逼近的試探算法,將會有效的提高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)境中使用,采用改進的逐次逼近試探算法實現(xiàn)對模擬電壓的測量或A/D變換,提高了采樣速率,轉(zhuǎn)換電路設(shè)計及算法實現(xiàn)簡單,測試分辨率和精度較高,具有較好的應(yīng)用價值。
本文創(chuàng)新點:利用PWM技術(shù)實現(xiàn)對模擬電壓的測量或A/D變換,既具有較高的分辨率,又具有較好的抗干擾性,且便于采用光電隔離。同時結(jié)合利用改進的逐次逼近試探算法大大減少了試探次數(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)可觀的。