洪俊峰, 卜文強, 張榕鑫, 程 恩, 袁 飛
(廈門大學(xué) 水聲通信與海洋信息技術(shù)教育部重點實驗室,福建 廈門 361005)
在電子和自動化技術(shù)的應(yīng)用中,單片機和DAC(數(shù)模轉(zhuǎn)換器)是經(jīng)常需要同時使用的,然而許多單片機內(nèi)部并沒有集成DAC,即使有些單片機內(nèi)部集成了DAC,但其精度往往不高,在高精度的應(yīng)用中還是需要外接DAC,這樣增加了成本。應(yīng)用DDS技術(shù)雖然可以達(dá)到精度和控制的要求,但電路需要增加DA轉(zhuǎn)換,對于高速的信號轉(zhuǎn)換硬件要求比較高,同時成本也比較大[1]。但是,幾乎所有的單片機都提供定時器或者PWM輸出功能。如果能應(yīng)用單片機的PWM輸出(或者通過定時器和軟件一起來實現(xiàn)PWM輸出),經(jīng)過簡單的變換電路就可以實現(xiàn)DAC[2]。
脈寬調(diào)制(PWM)是利用微處理器的數(shù)字輸出來對模擬電路進行控制的一種非常有效的技術(shù),PWM是一種對模擬信號電平進行數(shù)字編碼的方法。PWM信號仍然是數(shù)字的,所以抗干擾能力很強。理論上只要采樣頻率足夠高,任何模擬值都可以使用PWM進行編碼。在進行脈寬調(diào)制時,先離線計算出正弦信號表,將其存儲在ROM中,然后通過控制使輸出脈沖系列的各脈沖寬度按正弦表的規(guī)律變化。即在產(chǎn)生某一頻率信號時,讓采樣脈沖的周期保持不變,而占空比做相應(yīng)的變化。當(dāng)對應(yīng)正弦表取值較大時,脈沖的占空比也較大,反之,當(dāng)對應(yīng)正弦表取值較小時,脈沖的占空比也較小,這樣輸出波形即為一連串占空比不等且各脈沖寬度按正弦規(guī)律變化的脈沖波。輸出波形經(jīng)過適當(dāng)?shù)腞C濾波可以做到正弦波輸出。
根據(jù)采樣控制理論,沖量相等而形狀不同的窄脈沖加在具有慣性的環(huán)節(jié)上時,其效果基本相同。沖量即指窄脈沖的面積,效果相同是指環(huán)節(jié)的輸出響應(yīng)波形基本相同。PWM控制技術(shù)即是在該原理的基礎(chǔ)上發(fā)展起來的[3-4],這里以正弦波為例,其原理如圖1所示。
PWM是一種周期一定而高低電平的占空比可以調(diào)制的方波信號,圖1所示為一種在電路中經(jīng)常遇到 的 PWM 波[5-6]。該PWM 的高、低電平分別為VH和VL,理想情況下VL為0,但是實際中一般不為0,從而在應(yīng)用中產(chǎn)生誤差。實際電路中典型的PWM波形如圖2所示。
圖2 實際電路中典型的PWM波形
圖2的PWM波形可以用分段函數(shù)表示為:
其中,T為單片機中計數(shù)脈沖的基本周期;N為PWM波1個周期的計數(shù)脈沖個數(shù);n為PWM波1個周期中高電平的計數(shù)脈沖個數(shù);VH、VL分別為PWM波中高低電平的電壓值;k為諧波次數(shù),t為時間。
把(1)式展開成傅里葉級數(shù),得到(2)式:
其中,VDC為直流分量;VHC為1次諧波分量;VHO為大于1次的高次諧波分量。(2)式中的直流分量與n成線性關(guān)系,并隨著n從0到N,直流分量從VL到VL+VH之間變化,這正是電壓輸出的DAC所需要的。因此,如果能把(2)式中除直流分量的諧波過濾掉,則可以得到從PWM波到電壓輸出DAC的轉(zhuǎn)換,即PWM波可以通過一個低通濾波器進行解調(diào)。(2)式中VHC的幅度和相角與n有關(guān),頻率 為1/(NT),該頻率是設(shè)計低通濾波器的依據(jù)。如果能把1次諧波很好過濾掉,則高次諧波就應(yīng)該基本不存在了。
根據(jù)(2)式的結(jié)構(gòu),圖3所示為最簡單的實現(xiàn)方式。圖3中,PWM波直接從MCU的PWM引腳輸出,該電路沒有基準(zhǔn)電壓,只通過簡單的阻容濾波得到DAC的輸出電壓。R1和C1的具 體參數(shù)可根據(jù)(2)式中VHC的1次諧波頻率來選擇,實際應(yīng)用中一般選擇圖3中阻容濾波器的截止頻率為(2)式的基波頻率的1/4左右。
圖3 一種簡單的PWM到DAC電壓輸出的電路
主要設(shè)計方案如圖4所示。STM32開發(fā)板從存儲器中取得波形信息,根據(jù)正弦波取值表中存儲的取值產(chǎn)生不同占空比的PWM信號,最后經(jīng)過低通濾波器濾除高次諧波,產(chǎn)生需要的正弦波形[7-8]。
圖4 設(shè)計方案圖
分頻系數(shù)與外部時鐘決定了輸出信號的頻率范圍。外部時鐘的頻率直接影響輸出信號的最高頻率。分頻系數(shù)對系統(tǒng)時鐘進行分頻處理,可對輸出PWM信號的頻率進行控制。將1個周期的正弦函數(shù)進行M點離散,M取值大小影響輸出信號的最高精度,可根據(jù)實際情況選取M大小。然后計算出離散后的正弦數(shù)據(jù)所對應(yīng)的占空比的值,并按順序存儲到STM32的ROM 中。ROM中存儲的數(shù)據(jù)即為按正弦規(guī)律變化的占空比計算值。計數(shù)器每進行1次計數(shù)就取1次占空比的值,這樣就得到了ROM表中的占空比數(shù)據(jù)值。
考慮一個模擬正弦波的表達(dá)式,并以固定的時間間隔對其進行采樣,即
其中,θ為初始相位;N為采樣點數(shù)。
在采樣過程中,(3)式中的x值在每個采樣間隔遞增,從而得到模擬正弦波的采樣版本。通過將f(x)的值以不同的幅度和不同的采樣間隔輸出,就可以得到任意幅度、任意頻率的正弦波或余弦波。
可按照(4)式建立一個正弦波樣本表,樣本表將一個正弦波周期分為128個點,每點按7位量化(127對應(yīng)最高幅值Vcc/2):
如果在1個正弦波周期中采用128個樣點,那么對應(yīng)1kHz的正弦波PWM的頻率為128kHz。實際上,按照采樣頻率至少為信號頻率的2倍的取樣定理來計算,PWM的頻率的理論值為2kHz即可。
考慮盡量提高PWM的輸出精度,實際設(shè)計使用PWM的頻率為16kHz(采樣頻率為信號頻率的8倍),即1個正弦波周期(1kHz)中輸出16個正弦波樣本值。這意味著在128點的正弦波樣本表中,每隔8點取出1點作為PWM的輸出。
產(chǎn)生正弦波信號的頻率由2個因素直接確定:PWM信號頻率fPWM和采樣點數(shù)N0。PWM信號頻率又直接由定時器的分頻系數(shù)P和系統(tǒng)時鐘T0決定,公式為:
2.3.1 簡易RC低通濾波器
簡易RC低通濾波電路如圖5所示。
圖5 簡易RC低通濾波電路
對于圖5所示的低通濾波器,其截止頻率為f0=1/(2πRC)。應(yīng)根據(jù)電壓精度要求確定R、C參數(shù),工程上一般至少要保證f0小于PWM頻率的1/4,故R、C乘積應(yīng)該是越大越好;R不能太小,否則R上的電流大,對R的壽命及前級的壽命有影響;該電路后端一般接1個運放跟隨以增大驅(qū)動能力,R的取值需要滿足“遠(yuǎn)遠(yuǎn)小于”運放同相輸入端的直流輸入阻抗,所以R值又不能過大,通常應(yīng)該在0.1~10.0kΩ之間;同時C的取值也不能太大,這是由于大容量的電容體積也很大,在某些場合無法容忍,而且大容量的電容,其直流損耗也大,對電路參數(shù)有影響。因此,應(yīng)根據(jù)響應(yīng)時間要求,確定時間常數(shù),并且使RC時間常數(shù)遠(yuǎn)大于PWM周期;考慮到平滑度,RC充、放電時間常數(shù)應(yīng)盡量相等。為了得到低頻信號濾除高次諧波,選擇1/4開關(guān)頻率作為截止頻率,即1/(2πRC)≤f0/4。
2.3.2 用LMF100芯片搭成4階低通濾波電路
簡易RC低通濾波器的濾波效果較差,會造成正弦波波形在頻率較高時產(chǎn)生變形。LMF100是美國國家半導(dǎo)體公司生產(chǎn)的,由2個相互獨立的通用高性能開關(guān)電容濾波器組成的集成電路。它可以外接時鐘和2~4個電阻,組成各種各樣的帶通、低通、高通、帶阻和全通濾波器??蓪崿F(xiàn)1個截止頻率為100kHz的4階Butterworth低通濾波器電路如圖6所示。
圖6 4階Butterworth低通濾波電路
簡易RC濾波器與LMF100 4階Butterworth低通濾波器實驗結(jié)果對比如圖7所示,測試頻率的統(tǒng)計見表1所列。由圖7、表1可知,頻率增大,則采樣點數(shù)減少,造成正弦波精度降低。PWM的高、低電平在理想的情況下分別是1、0,但是實際中一般無法那么精確,這也是造成高頻率時精度不高的原因。
總體上LMF芯片搭成的濾波電路比RC電路好很多,特別是頻率較高的頻段,簡易RC電路的極限基本在30kHz。由圖7g可見LMF100在40kHz時波形還是很好,但會有一些輕微的抖動。
圖7 LMF100高階濾波器與簡易RC濾波器結(jié)果對比
表1 測試頻率的統(tǒng)計
將步長固定為8,即采樣點數(shù)64,改變分頻系數(shù),來改變正弦波頻率。20kHz時誤差基本為0,但頻率增大,誤差越來越大,最大達(dá)到6、7kHz。在20~30kHz區(qū)間內(nèi),分頻系數(shù)的變化對改變正弦波頻率變化作用不大,且有較大誤差。將分頻系數(shù)固定為128,改變步長(即改變采樣點數(shù)),來改變頻率值,理論值與實際值比較見表2所列。
表2 正弦波頻率理論值與實際值比較 kHz
本文提出了一種系統(tǒng)設(shè)計將STM32的高速型、穩(wěn)定性和PWM調(diào)制方式的控制靈活性結(jié)合起來,應(yīng)用數(shù)字采樣的方式產(chǎn)生模擬的正弦波形,具有其他方式不可比擬的優(yōu)勢。在對PWM波形組成進行理論分析的基礎(chǔ)上,設(shè)計了2種不同的濾波電路實現(xiàn)方式,并進行了對比分析。測試結(jié)果表明,本文設(shè)計產(chǎn)生的信號具有頻率穩(wěn)定性好、抗干擾能力強、結(jié)構(gòu)簡單和調(diào)整靈活等特點,易于實現(xiàn)智能控制。其應(yīng)用領(lǐng)域包括測量、通信、電機控制、調(diào)光、開關(guān)電源等,因此研究基于PWM技術(shù)的脈寬數(shù)控調(diào)制信號發(fā)生器具有十分重要的現(xiàn)實意義。
[1] 黃 飛,魯迎春,何曉雄.基于DDS的LFM 信號發(fā)生器的FPGA設(shè)計[J].合肥工業(yè)大學(xué)學(xué)報:自然科學(xué)版,2006,29(5):617-619.
[2] 田開坤.單片機驅(qū)動CPLD的PWM正弦信號發(fā)生器設(shè)計[J].電子制作,2011(4):23-24.
[3] 李 旭,謝運祥.PWM技術(shù)實現(xiàn)方法綜述[J].電源技術(shù)應(yīng)用,2005,8(2):51-52.
[4] Kaura V.A new method to linearize any triangle-comparison-based PWM by reshaping the modulation command[J].IEEE Transactions on Industry Applications,1997,33(5):1254-1259.
[5] 張宣妮,王明軍,魯 帆.基于FPGA的全數(shù)字脈寬調(diào)制器[J].計算機仿真,2009,26(11):347-348.
[6] 崔玉娟,呂運朋,李 超.CPLD實現(xiàn)直流伺服電機PWM發(fā)生器[J].電測與儀表,2010,47(3):73-74.
[7] 羅小巧,廖小芳.基于CPLD的PWM信號發(fā)生器設(shè)計 [J].電子測量技術(shù),2007,30(12):87-90.
[8] 許德成.基于FPGA器件的PWM方式正弦信號發(fā)生器設(shè)計[J].遼 東 學(xué) 院 學(xué) 報:自 然 科 學(xué) 版,2010,17(4):321-323.