基于MP430控制的正弦波信號源的設計與制作
本系統(tǒng)以MSP430為控制核心設計并制作一個正弦波和脈沖波信號源。本 實驗分為四大模塊,分別是鍵盤掃描模塊,正弦波產生模塊,脈沖波產生模塊和液晶顯示模塊。正弦產生部分采用DDS芯片AD9851產生頻率可控的正弦波,在實踐測試中得之從AD9851輸出的正弦波幅值會隨頻率變化,最后通過軟件編程明顯減少了幅值誤差。脈沖產生部分采用Verilog編程在FPGA內部產生占空比可調的脈沖波,解決了由將正弦波變成方波再送FPGA產生脈沖波的不穩(wěn)定性。本系統(tǒng)工作可靠穩(wěn)定,較好地完成了基本部分和發(fā)揮部分的要求。
本文引用地址:http://www.ex-cimer.com/article/201709/363792.htm一. 總體方案
本系統(tǒng)要求在給定±15V電源電壓條件下設計出一個能產生正波和脈沖波的信號源。信號頻率為20Hz~20kHz,頻率能程控步進調整(步長為5Hz),脈沖波的占空比在2%~98%之間能程控步進調整(步長2%),兩路信號均要求幅值在100mv到3V步進可調(步長為100mv),要求性能良好(頻率穩(wěn)度高,非線性失真小等),方案考慮如下:
正弦波產生
方案一:采用單片函數(shù)信號發(fā)生器(如8038),8038可同時產生正弦波。脈沖波,方法簡單易行,用D/A轉換器的輸出來改變調制電壓,可以實現(xiàn)數(shù)控調整頻率,但步長難以滿足要求,且頻率穩(wěn)定度不高。
方案二:采用鎖相式頻率合成器,利用鎖相環(huán),將壓控振蕩器(vco)的輸出頻率鎖定在所需頻率上,該方案性能良好,但難以達到輸出頻率覆蓋系數(shù)的要求,且電路復雜,不適于產生低頻信號。
方案三:采用直接數(shù)字頻率合成芯片AB9851,可以很方便地生成正弦波和脈沖波。DDS特別適合于生成頻率低、頻帶寬、頻率穩(wěn)定性和準確度較高及波形復雜的場合。
脈沖波產生
方案一:由D/A轉換器產生占空比相應的電壓,將之與正弦信號進行比較就可得到所需占空比方波。但這種方法精度較差,難以達到2%的步進要求。
方案二:先把正弦波變換為鋸齒波或三角波,然后進行比較。這樣一來雖然可以提高精度,但電路復雜,成本高,調試也困難。
方案三:采用計數(shù)定時方法,先將正弦波變換為方波送入FPGA,再用它的上升沿觸發(fā)一計時電路,該電路在計時期間輸出為高電平,計時終止后輸出為低電平, 從而實現(xiàn)脈沖波的占空比步進可調,占空比由單片機傳輸給FPGA。此方案構成的兩模塊有影響,形成信號源不穩(wěn)定。
方案四:在單片機MSP430的控制下,通過軟件編程直接在FPGA內部產生可控占空比脈沖波,實現(xiàn)比較容易,產生信號源十分穩(wěn)定。
根據(jù)以上分析,選用如下方案:
(1)正弦波采用DDS芯片AD9851用動態(tài)生成程序的方法來實現(xiàn)。
(2)方波的產生方波由編程在FPGA內部生成。
信號源系統(tǒng)的原理框圖如圖所示:
圖1 系統(tǒng)總體框圖
二. 系統(tǒng)設計
2.1 硬件設計
2.1.1 正弦波產生電路
DDS單片頻率合成器AD9851的ROM中已預先存入正弦函數(shù)表,其幅度按二進制分辨率量化,其相位一個周期360o按2∏/232的分辨率設立相位取樣點。然后存入ROM相應地址中。工作時,用單片機送入頻率碼。輸入采用并行方式,8位一個字節(jié),分5次輸入,其中32位是頻率碼,另8位中的5位是初始相伴控制碼,3位是掉電控制碼。改變讀取ROM的數(shù)目,即可改變輸出頻率。
輸出頻率的一般表達式為 fout=kfc/232
式中,k為頻率碼,是個32位的二進制數(shù)。fc為系統(tǒng)時鐘頻率,即25MHz。
頻率變化范圍為20Hz~20kHz,周期變化范圍為50ms~50us。時鐘周期Tc=0.04us.當輸出頻率最高,即fomax=20 kHz,則Tomin=50us,
步進寬度為: △T=Tomin×2%=50×2%=1us
圖2
2.1.2 正弦波幅值可調電路
采用16位串行DA器件DAC8831來實現(xiàn)正弦波的幅度步進。將DDS生成的正弦波接到DAC8831的基準輸入端,通過單片機調整DA輸入數(shù)字量,從而完成正弦波100mv的步進和幅值預置。
圖3
2.1.3 脈沖波形成電路
在單片機的控制下通過verilog編程在FPGA內部產生可控脈沖波。
圖4
2.1.4 脈沖波幅值步進調整電路:
本部分采用16串行DA器件DAC8831,接口簡單,且精度較高。電路圖與圖3-2相同。
2.2 軟件設計
2.2.1 基本思路
單片機控制AD9851產生頻率和相位都可控的正弦波,頻率量由鍵盤設定,步進量為5Hz,AD9851頻率分辨率為0.006985Hz,完全能夠滿足要求。正弦信號送入DAC8831的基準輸入端,單片機控制DA的數(shù)字量調節(jié)其幅值,設置按鍵調整幅值可實現(xiàn)100mv的步進。在單片機的控制下編程在FPGA內部產生占空比可調的脈沖波,單片機向FPGA送入占空比值和頻率值,F(xiàn)PGA通過計數(shù)值從而改變輸出脈沖波的占空比和頻率,設置按鍵調整占空比和幅值。正弦信號送入DAC8831的基準輸入端,單片機控制DA的數(shù)字量調節(jié)其幅值,設置按鍵調整幅值可實現(xiàn)100mv的步進。
2.2.2 軟件流程圖
圖5 軟件流程圖
三、測試結果與分析
3.1 正弦波測試結果
表一:
圖6
3.2 脈沖波測試結果
表二:
圖7
3.3 相對誤差統(tǒng)計
表三:
圖8
3.4 誤差分析
(1)DAC8831的量化誤差 DAC8831為16串行輸入的D/A轉化器,會引入一定的誤差。
(2)由于條件有限,采用手工焊接電路影響了整個電路的布局與走線,從而引入了一定的噪聲與干擾。
四、總結
在實現(xiàn)此項項目過程中,很快實現(xiàn)了對于產生可控的正弦波并在液晶上顯示的基本要求與發(fā)揮部分,DDS芯片AD9851產生頻率可控的正弦波,在實踐測試中得之從AD9851輸出的正弦波幅值會隨頻率變化,最后通過軟件編程明顯減少了幅值誤差。關鍵部分就在于產生占空比可控的脈沖波,起初的思路是由AD9851產生的正弦波經(jīng)過滯回比較器生成方波送到FPGA產生可控的脈沖波,但最后產生的脈沖波頻率與正弦波頻率不對應且影響正弦波的穩(wěn)定度,兩個模塊之間有影響,最后討論改變方案,在MSP430送入控制信號的前提下在FPGA內部產生可控的脈沖波,結果很理想,基本達到了實驗要求和發(fā)揮的部分。
評論