基于FPGA和DDS技術的正弦信號發(fā)生器設計
2 正弦信號發(fā)生器系統(tǒng)結構設計及實現(xiàn)
2.1 系統(tǒng)結構圖
正弦信號發(fā)生器系統(tǒng)結構圖如圖2所示。本文引用地址:http://2s4d.com/article/187877.htm
2.2 單元電路
2.2.1 單片機控制模塊實現(xiàn)方式
單片機實現(xiàn)部分主要處理數(shù)據輸入及數(shù)據顯示,此模塊以AT89S51為中心,控制鍵盤輸入和LED顯示,其中鍵盤輸入值作為頻率控制字送給FPGA處理。單片機的P1口直接與鍵盤連接,無鍵按下時為高電平,當有鍵按下時就變?yōu)榈碗娖???梢栽O計鍵1為“0”值鍵、鍵2為“1”值鍵,滿足頻率控制字以二進制進行輸入;鍵3為輸入確定鍵;鍵4和鍵5為頻率步進控制鍵,鍵4為加100 Hz鍵,鍵5為減100 Hz鍵,當鍵3按下時將輸入設置的頻率控制字以二進制數(shù)形式送至P2口,然后通過串行口輸出并驅動LED靜態(tài)顯示。PO.O和PO.1及PO.2控制數(shù)據輸出的先后順序。此模塊功能具體實現(xiàn)可通過匯編語言編程后下載到單片機調試并實現(xiàn),限于篇幅,具體程序不在此展現(xiàn),只展示設計思路。
2.2.2 FPGA處理模塊
(1)FPGA處理模塊控制原理
FPGA處理模塊是本系統(tǒng)的核心,系統(tǒng)結構圖中FPGA模塊里的DDS基本結構圖如圖3所示。
圖3中DDS工作原理為:相位累加器由32位加法器與32位累加寄存器級聯(lián)構成。在時鐘脈沖,fc的控制下,加法器將頻率控制字M與累加寄存器輸出的累加相位數(shù)據相加,把相加后的結果送到累加寄存器的數(shù)據輸入端,以使加法器在下一個時鐘脈沖的作用下繼續(xù)與頻率控制字相加。這樣,相位累加器在時鐘作用下,不斷對頻率控制字進行線性相位累加。由此可以看出,相位累加器在每一個時鐘輸入時,把頻率控制字累加一次,相位累加器輸出的數(shù)據就是合成信號的相位。
DDS采用改變尋址的步長來改變輸出信號的頻率,步長即為對數(shù)字波形查表的相位增量,由累加器對相位增量進行累加,累加器的值作為查表地址,這樣就可把存儲在波形存儲器內的波形抽樣值(二進制編碼)經查找表查出,完成相位到幅值轉換,波形存儲器的輸出送到D/A轉換器,D/A轉換器將數(shù)字量形式的波形幅值轉換成所要求合成頻率的模擬量形式信號。低通濾波器用于濾除不需要的取樣分量,以便輸出頻譜純凈的正弦波信號。
(2)FPGA處理模塊實現(xiàn)方式
根據設計要求:要達到正弦波輸出頻率范圍(1 kHz~10 MHz)及頻率步進值100 Hz,設相位累加器的位寬為2N,sin表的大小為2P,累加器的高P位用于尋址Sin表。根據DDS工作原理,主頻時鐘Clock的頻率為,fc=100 MHz,累加器按步進為1進行累加直至溢出一遍的頻率即為頻率步進值。
以M點為步長(M為頻率控制字),產生信號的頻率:
由于頻率步進值為100 Hz,由式(1)可計算得N=20。要使輸出頻率達到10 MHz,由式(2)可計算得M=104 857,為了使輸出的波形盡可能不失真,頻率控制字位寬取17位,高三位添000,由于設計加法器為32位,則低12位添000000000000。本系統(tǒng)中使用的D/A轉換器件的輸入位寬為10,所以只取相位累加器輸出的高10位可滿足設計要求。整個過程的實現(xiàn)過程中,本系統(tǒng)選用Altera公司的Cyclone系列芯片,采用VHDL語言描述,利用開發(fā)軟件QuartusⅡ進行綜合,以實現(xiàn)產生l kHz~10 MHz頻率范圍內的各種正弦信號。
評論