[]
信號發(fā)生器又稱信號源或振蕩器,在生產實踐和科技領域中有著廣泛的應用。能夠產生多種波形,如三角波、鋸齒波、矩形波(含方波)、正弦波的電路被稱為函數信號發(fā)生器。函數信號發(fā)生器的實現方法通常是采用分立元件或單片專用集成芯片,但其頻率不高,穩(wěn)定性較差,且不易調試,開發(fā)和使用上都受到較大限制。隨著FPGA的不斷發(fā)展,DDS技術應用的愈加成熟,利用DDS原理在FPGA平臺上開發(fā)高性能的多種波形信號發(fā)生器與基于DDS芯片的信號發(fā)生器相比,操作更加靈活,而且還能根據要求在線更新配置,系統(tǒng)開發(fā)趨于軟件化、自定義化。[1]本文研究了基于FPGA的DDS信號發(fā)生器設計[2],實現了滿足預定指標的多波形輸出。
系統(tǒng)的整體設計圖如圖1所示,由時鐘模塊、按鍵模塊、DDS模塊、波形選擇模塊、DA輸出模塊構成。
本設計以FPGA作為控制器,通過DDS技術輸出需要的波形數據,然后通過高速AD輸出模塊輸出波形;并能經過按鍵模塊調節(jié)頻率的數值以及通過撥碼開關切換波形種類。
在系統(tǒng)硬件設計中,DDS信號源模塊包括了相位累加器、ROM波形存儲器、按鍵接口模塊設計和系統(tǒng)時鐘控制模塊設計。通過相關模塊的介紹,可以了解到DDS信號源模塊的內部組成及其工作方式。[3]
圖1 系統(tǒng)設計框圖
3.1.1 相位累加器模塊設計
在DDS信號源的設計中,相位累加器是整個設計的關鍵。相位累加器包括一個加法器和一個數據寄存器。[4]其中加法器的一個輸入端是頻率控制字K,通過多次累加運算產生尋址ROM所需要的地址數據;數據寄存器用來保持所產生的地址數據,同時還具有的一個功能是將頻率控制字發(fā)送到總線接口中,用于與主控模塊的信息交互。其模塊框圖如圖2所示,該模塊有系統(tǒng)時鐘,復位,頻率控制字,鍵盤按鍵輸入數,新采樣數據時鐘五個輸入,以及ROM地址線位數及結果兩個輸出。
經驗證,16位字長的相位累加器既可以保證輸出信號頻率具有較好的分辨率,又可以適應開發(fā)板存儲空間的要求,匹配相應的ROM,使設計達到最佳的效果。在本設計中,通過外部按鍵模塊更改相位累加器輸入的頻率控制字,從而改變累加運算的輸出結果,進而改變輸出信號的頻率。
3.1.2 ROM存儲器設計
本系統(tǒng)設計需要生成四種波形,所以需要四個.mif文件。本設計引用了四個256*8位的ROM,用于存儲波形數據,有時鐘和ROM地址線兩個輸入以及ROM數據線位值q。為了獲得我們所需要的.mif文件我們必須對.mif文件進行編譯,對于該文件的編譯有兩種辦法:對于存儲單元不是特別多的ROM我們可以進行手工編寫,但是存儲單元較多時用上種方法顯得有點冗雜,也容易出錯,故我們可以借助MATLAB來進行編寫。每個波形的ROM表中所存儲的信息不同,這是因為波形存儲器儲存的是一個完整波形離散的256個抽樣值,故不同波形由不同的ROM查詢表。
3.1.3 按鍵控制接口設計
在本設計中,需要有外置按鍵組來控制DDS輸出信號的參數特性,包括調節(jié)輸出信號的類型和頻率等。按鍵接口模塊的模塊有時鐘,復位,以及按鍵三個輸入,有數碼顯示、行按鍵、按鍵數及新采樣數據四個輸出,其中新采樣數據作為DDS模塊中stepclk的輸入。
在設計中加入了按鍵接口模塊,則必然要加入按鍵消抖功能,以保障按鍵功能的正常使用。在本設計中,加入的按鍵消抖模塊,通過檢測連續(xù)兩個時鐘沿的電平輸入情況,判斷按鍵是否處于穩(wěn)定輸出狀態(tài)。
波形選擇模塊由一個四選一選擇器構成.共有時鐘,方波ROM數據線位值,三角波ROM數據線位值,正弦波ROM數據線位值,鋸齒波ROM數據線位值及輸入wave_mode六個輸入,當輸入wave_mode的值為二進制00時,wave_out輸出為正弦波;當輸入wave_mode的值為二進制01時,wave_out輸出為方波;當輸入wave_mode的值為二進制10時,wave_out輸出為三角波;當輸入wave_mode的值為二進制11時,wave_out輸出為鋸齒波。
對硬件電路調試完成后,將該設計進行仿真[5],仿真時默認輸出信號為正弦波,依次按下按鍵后,依次出現方波,三角波,鋸齒波,仿真結果如圖2所示。
圖2 系統(tǒng)仿真結果
隨著現代科技的不斷發(fā)展,函數信號發(fā)生器在教學、通信、測量等領域的應用變得越來越廣泛,信號發(fā)生器成為現代科研領域不可或缺的重要工具。然而制作高性能信號發(fā)生器的關鍵技術在于頻率合成。隨著時代的發(fā)展,頻率合成技術經歷了由簡單到成熟的發(fā)展過程。目前,數字式直接頻率合成技術已經成為現代頻率合成技術中的佼佼者。在本設計中,借助現場可編程門陣列的獨特優(yōu)勢,我們在FPGA實驗板上進行了基于DDS技術的數字信號源的搭建,實現對DDS信號源的控制及實時參數顯示。[6]