孟繁明
(哈爾濱市城市建設投資集團有限公司)
信號發生器廣泛應用于電子信息技術的各個領域。傳統的函數發生器,DDS任意波形發生器等方案一直應用于信號發生器的設計。本文將另辟蹊徑,采用基于PWM技術的方法實現雙路信號發生器。
采用“單片機+CPLD”方案。單片機用于人機接口與控制,CPLD產生波形。CPLD的時鐘可以達到100M,甚至更高,在CPLD中實現波形控制輸出。
雙信號發生器以單片機和CPLD(EPM240)為核心。由CPLD、模擬低通濾波器和模擬運算及驅動電路實現信號發生。單片機與CPLD采樣SPI通信,計算出頻率,幅度,占空比的數據,通過模擬SIP時序把數據送給EPM 240,并結合液晶和按鍵界面,實現波形輸出控制。
CPLD中共設計了2個定時器:TimerA和TimerB,以及2個PWM輸出。TimerA輸出PWM1,并具有反向輸出引腳,用于輸出第一列方波(或矩形波)或正弦波。輸出正弦波時PWM1送到兩個低通濾波器,分別獲取一次諧波(包括直流分量)和直流分量,然后經過差分電路,把直流分量減去最后把正弦波信號輸出。TimerB的功能與TimerA一樣,產生PWM2。只不過相對于TimerA有相位控制。
用EPM240做定時計數器來輸出2路PWM,EPM240的工作頻率為100MHz,其定時器設為counterA,counterB。其計數的最大值為TOPA、TOPB。counterA和counterB是兩路信號的輸出,若輸出兩路信號的頻率為f1、f2。即設TOPA、TOPB的值為:

帶有占空比的PWM方波信號可以用分段函數表示方式:

其中:T是計數脈沖的基本周期,即每隔T時間記一次數;N是PWM波一個周期的計數脈沖個數;n是PWM波一個周期中高電平的計數脈沖序號;V是PWM波中高低電平的電壓值;k為整個周期序號;t為時間。為了對PWM信號的頻譜進行分析,以下提供了一個設計濾波器的基本理論基礎。傅里葉變換理論告訴我們,任何一個周期為T的連續信號,都可以表達為頻率是基頻的整數倍的正、余弦諧波分量之和。把上式所表示的函數展開成傅里葉級數,得到下式

從上式可以看出,式中第一個放括弧為直流分量,第二項為1次諧波分量,第3項為大于1次的高次諧波分量。式中直流分量與n成線性關系,并隨著n從0到N,直流分量在0到VH之間變化,這正是電壓輸出的D/A所需要的。因此,如果能把式中除直流分量的濾波器進行解調。式中第2項的幅度和相角與n有關,頻率為1/(NT),該頻率就是設計低頻濾波器的依據。
由方波傅里葉級數展開式,輸出正弦信號的頻率為基波的頻率,即正弦信號頻率與方波頻率計算方法相同。
由上述傅立葉級數展開式可知,改變占空比可以直接進行正弦波幅度控制。但是3.3V邏輯矩形波一次諧波幅度為2×3.3 V/π =2.1 V。為實現最大3.5 V 幅度要求,正弦輸出采用放大電路放大2倍,最大可達4.2 V。

從而獲得PWM2與PWM1時間延遲。即設定OCR初始的值,計數器到達OCR初始的值輸出邏輯發生變化:
OCR初始=(TOPC+1)×度/360
采用VHDL進行電路設計。PWM核心代碼如下:



正弦波輸出通過分別獲取PWM輸出一次諧波(包括直流分量)和直流分量,然后經過差分電路,把直流分量減去最后把正弦波信號輸出。同時差分放大2倍。保證輸出幅度。8階橢圓濾波器電路是設計成敗的關鍵
本設計基于CPLD實現頻率、相位可調的2路PWM波形,結合橢圓濾波器實現雙路輸出幅度、相位和頻率可調的正弦波、方波和矩形波。兩路頻率在一定范圍內連續可調,頻率準確度不低于0.1%。最大幅度在3.5V以內連續可調,分辨率不低于12Bit。兩路信號的相位差可以0°至359.9°內連續可調,分辨率不大于0.1°。本設計具有電路線路簡單。結構緊湊,價格低廉,性能優越等優點。
[1] 劉海成.AVR單片機原理及測控工程應用[M].北京:北京航空航天大學出版社,2008.
[2] 潘松.VHDL實用教程[M].成都電子科技大學出版社,2000.