吳 征,蘇淑靖
(中北大學(xué) 電子測試技術(shù)國家重點實驗室,山西 太原 030051)
PWM(Pulse Width Modulation)脈寬調(diào)制技術(shù)是一種對模擬信號電平進行數(shù)字編碼的方法,通過對一系列脈沖的寬度進行調(diào)制,等效出所需要的波形[1]。PWM技術(shù)對波形調(diào)制的靈活性和通用性好,并且對硬件要求低,應(yīng)用廣泛[2]。目前的PWM信號發(fā)生器大多存在周期調(diào)節(jié)不方便、路數(shù)有限等問題,而隨著大規(guī)模集成電路的發(fā)展,F(xiàn)PGA擁有了資源豐富、工作速度快、使用靈活、穩(wěn)定性高等特點。在此基礎(chǔ)上,本文提出了一種基于FPGA+PWM的多路信號發(fā)生器,結(jié)合二者的優(yōu)勢,產(chǎn)生波形、頻率、幅度可獨立調(diào)節(jié)的多路波形信號[3]。
根據(jù)面積等效原理:沖量相等而形狀不同的窄脈沖加在具有慣性的環(huán)節(jié)上,其效果基本相同(沖量是指窄脈沖的面積;效果基本相同指的是輸出響應(yīng)波形基本相同)?;谠摾碚撋傻腜WM控制技術(shù)即是利用一系列等幅不等寬的脈沖(不同占空比的矩形波),經(jīng)過一定的信號處理來生成所需的各種波形[4]。
矩形脈沖如圖1(a)所示,其函數(shù)為:
其中,A表示矩形脈沖的幅值,τ表示脈寬,T為周期。矩形脈沖頻譜如圖1(b)所示,其函數(shù)為:
由圖2(b)可知,矩形脈沖信號的主要能量集中在f為 0~的范圍內(nèi),如果把此范圍以外的信號消除,則主要信號能量(E表示脈沖信號能量強度),其在時間 T范圍內(nèi)的平均值為 m=Eτ/T,與 τ成線性關(guān)系,即經(jīng)過濾波后的信號可以不失真地反應(yīng)原信號的響應(yīng)波形[5]。
圖1 矩形脈沖及其頻譜
根據(jù)上述分析,利用電路產(chǎn)生周期為T、脈寬τ按波形規(guī)律變化的連續(xù)矩形脈沖信號,通過低通濾波器把f>(τ最大值為T)的信號濾除,最后經(jīng)過驅(qū)動放大就可以得到所需要的信號波形[6]。圖2所示為正弦半波的PWM調(diào)制過程。
圖2 正弦半波的PWM調(diào)制過程
本文設(shè)計的多路信號發(fā)生器使用計算機設(shè)置輸出信號的波型、頻率及幅值參數(shù),由FPGA實現(xiàn)PWM脈沖的生成,最后經(jīng)過濾波及放大電路得到所需波形。具體實現(xiàn)流程圖如圖3所示。
圖3 電路結(jié)構(gòu)
對于三角波的生成,需要脈寬參數(shù)按照先線性增大然后線性減小的規(guī)律來實現(xiàn),其他波形(如矩形波、鋸齒波等)可以用相同的原理實現(xiàn)。
在實現(xiàn)正弦波信號時,需要計算出正弦信號表,根據(jù)波形信號的頻率與幅度,通過查表的方式把RAM中的脈寬參數(shù)傳遞給PWM發(fā)生器,得到脈沖寬度按正弦變化的PWM脈沖波[7]。
在FPGA中利用計數(shù)器和比較器來產(chǎn)生PWM矩形脈沖波,如圖4所示,在一個進程中用一個寄存器保存PWM周期參數(shù)T,T_Counter在系統(tǒng)時鐘的驅(qū)動下進行自加,直到T_Counter=T時T_Counter復(fù)位為0,完成一次PWM周期;在另一個進程中通過比較T_Counter與脈寬參數(shù)PWM_Width,從而控制PWM脈沖波的脈寬;為了更新PWM_Width,在T_Counter計數(shù)到T-1時向波形控制單元報告單次脈沖結(jié)束,波形控制單元接收到結(jié)束標志后更新脈寬參數(shù),使PWM發(fā)生器在下一周期產(chǎn)生新的PWM脈沖波。
PWM輸出的矩形脈沖要通過濾波放大才能輸出所需的信號。本文設(shè)計的濾波放大電路為如圖2所示的二階低通濾波放大,其傳遞函數(shù)為:
通帶截止頻率為:
根據(jù)圖5所示電路的幅頻特性曲線和PWM波周期參數(shù)的設(shè)定值,選擇合適的R、C即可把f>的信號能量濾除,同時調(diào)整RF與R1獲得所需要的通帶增益。
單路信號的波形控制單元和PWM發(fā)生器僅需要很小的FPGA資源和一個I/O引腳就能實現(xiàn),并且外部濾波電路占用的PCB面積也比傳統(tǒng)DAC實現(xiàn)的信號發(fā)生器要小很多,所以只要把單路信號發(fā)生器進行簡單的復(fù)制就能實現(xiàn)多路信號的產(chǎn)生,且各個通道之間具有很好的獨立性,互不影響,這是FPGA相比其他控制芯片所具有的優(yōu)勢。
圖4 PWM發(fā)生器程序流程
圖5 二階低通濾波放大幅頻特性曲線
電路使用XC3S100E來實現(xiàn)FPGA控制單元的設(shè)計。XC3S100E有108個可分配的用戶引腳,使用28個作為通信端口,剩余80個引腳進行PWM脈沖信號調(diào)制輸出;電路使用fosc=120 MHz的外部晶振,經(jīng)內(nèi)部 DCM(時鐘控制管理模塊)倍頻后獲得240 MHz的系統(tǒng)時鐘。設(shè)置PWM脈沖發(fā)生計數(shù)器位數(shù)為N=14 bit。濾波電路通帶增益設(shè)置為 1(Rf=0,斷開 R1),所實現(xiàn)的信號發(fā)生器主要性能參數(shù)如下:
(1)PWM矩形脈沖波的頻率:
(3)輸出通道:CH=80。
(6)輸出幅度:0~3.3 V。
通過上位機設(shè)置各個通道的波形參數(shù),利用Tektronix TDS100B(40 MHz,500 MS/s)示波器測量各通道的輸出波形,得到如圖6所示波形信號輸出。
圖6 信號發(fā)生器的輸出波形
從圖6中可以看出,信號源輸出波形光滑,頻率穩(wěn)定度高,而且各通道工作獨立性高,波形、頻率、幅度均可獨立調(diào)節(jié),滿足設(shè)計要求。
基于FPGA+PWM的多路信號發(fā)生器的設(shè)計結(jié)合了FPGA與PWM技術(shù)的優(yōu)勢,可同時輸出80路信號,各路信號的波形、頻率、幅值均可獨立調(diào)節(jié)。實驗證明,該信號發(fā)生器具有良好的直流性能,其精度可達到0.2 mV,同時可產(chǎn)生良好的三角波、鋸齒波、正弦波、方波,還可通過上位機產(chǎn)生任意波形信號,輸出穩(wěn)定,頻率精度高。其成本低,設(shè)計靈活,可擴展性強,可應(yīng)用于工業(yè)控制、LED陣列控制以及測量、通信等各種不同的場合。
[1]吳鐵峰,張鶴鳴,胡輝勇.一種電流模式多輸入可控PWM比較器設(shè)計[J].電子器件,2010,33(1):81-84.
[2]梁磊,王樹強,許芹.多路 PWM 信號產(chǎn)生算法研究[J].電氣電子教學(xué)學(xué)報,2008,30(4):47-49.
[3]徐哲,魏民祥.一種實用的變占空比PWM信號Simulink實現(xiàn)方法[J].制造業(yè)自動化,2013,35(12):33-35.
[4]侯俊生,唐露新.基于PWM的強抗干擾A/D轉(zhuǎn)換電路[J].電子技術(shù)應(yīng)用,2012,38(7):37-43.
[5]張宣妮,王明軍,魯帆.基于FPGA的全數(shù)字脈寬調(diào)制器[J].計算機仿真,2009,26(11):347-348.
[6]崔玉娟,呂運朋,李超.CPLD實現(xiàn)直流伺服電機PWM發(fā)生器[J].電測與儀表,2010,47(3):73-74.
[7]田開坤.單片機驅(qū)動CPLD的PWM正弦信號發(fā)生器設(shè)計[J].電子制作,2011(4):23-24.