馮星為
(南京理工大學理學院,江蘇 南京 210094)
信號發生器是一種能提供不同頻率和波形信號的機器設備,廣泛應用于科研、醫療、通信、遙控遙測及現代儀器工業領域[1]。隨著半導體產業的快速發展,電子設備的相關要求也在不斷提高,往往需要信號發生器提供準確、穩定的激勵信號。傳統的信號發生器雖然能夠輸出結構較簡單、頻率較寬的信號,但是其輸出的波形頻率不夠穩定、精度不夠高而且比較單一[2]。而直接數字頻率合成技術(DDS)作為一種新型頻率合成方法,具備分辨率高、穩定性強、復雜度低等優點[3],廣泛應用于當前信號發生器的設計中。現場可編程門陣列(FPGA)具有快速可靠、可重構、可編程等優點,為實現DDS技術提供了更好的載體。本文主要介紹了一種基于FPGA芯片的DDS信號發生器的設計方案,并在Quartus Prime平臺實現,最終連接示波器進行實驗測試。測試結果表明,該系統能可靠地生成多種頻率且幅度可調的波形信號,并能快速地在各種信號之間進行切換,具有很好的實用價值。
DDS是一種以奈奎斯特采樣定理為理論基礎的數字化直接頻率合成技術。整個DDS系統的結構如圖1所示,主要包括時鐘源、相位累加器、波形ROM以及D/A數模轉換器。

圖1 DDS結構原理圖
其中相位累加器是整個DDS系統的核心器件,由一個N位的加法器和一個N位的寄存器共同構成,每當時鐘脈沖信號到達上升沿時,加法器就將頻率控制字與寄存器輸出的相位數據相加,再把結果輸送至寄存器的輸入端,以使加法器在下一個時鐘脈沖信號的作用下繼續與頻率控制字相加[4]。于是相位累加器就這樣在時鐘信號的作用下,不斷地對頻率控制字進行相位累加,產生ROM的相位采樣地址。波形ROM里存儲了每個采樣相位所對應的數字幅值數據,于是經查表找出,把相位轉化為所需信號波形的數字幅度序列。D/A數模轉換器將波形ROM輸出的正弦幅值序列轉化為對應的電平,從而將數字信號轉換成模擬信號。
DDS系統的總體設計框圖如圖2所示,整個系統采用模塊化設計理念,主要包括頂層模塊、DDS模塊、控制模塊和D/A模塊。

圖2 系統結構設計圖
本設計中,FPGA芯片作為系統核心控制單元,是實現DDS算法的載體。基于Intel公司的Quartus Prime平臺,采用Cyclone IV系列的EP4CE10F17C芯片,通過FPGA芯片輸出所需波形數據,然后經過DAC芯片轉換成模擬波形,并通過按鍵來實現波形的切換、調頻、調幅、復位多項功能。
(1)DDS模塊設計。在本設計中,DDS模塊包含了相位累加器和ROM查找表,模塊中例化了四個存有波形數據的ROM,其中的mif文件通過MATLAB軟件編寫,然后調用Quartus Prime內的IP核進行讀取。為了合理控制ROM的內存容量,這里采用相位截斷法,直接截取32位累加器輸出結果的高12位來作為ROM的查詢地址[5]。相位累加器在時鐘信號下產生采樣地址,通過查找表,讀出ROM中的數據輸送給D/A模塊,并且輸出數據可通過波形控制字、頻率控制字、幅度控制字進行調節。該模塊的端口功能描述如表1所示,由PLL倍頻得到DDS模塊的時鐘,工作頻率為125MHz。

表1 DDS模塊端口功能描述
(2)控制模塊設計。在本設計中,控制模塊分為三個子模塊,在系統時鐘、復位、鍵盤信號的作用下,分別將波形控制字、頻率控制字、幅度控制字數據輸送至DDS模塊。該模塊的端口功能描述見表2。當鍵盤輸入信號Key0為1時,波形控制模塊開始選擇波形控制字Wave_c,DDS模塊根據不同的Wave_c值來調用不同的波形ROM。頻率控制模塊設置了16種不同的頻率控制字,通過鍵盤輸入信號Key1切換頻率控制字Fword,這里通過計算得到不同輸出頻率波形的Fword值為:

表2 控制模塊端口功能描述

其中Fout為波形輸出頻率,Fclk為輸入時鐘頻率。幅度控制模塊設置了5種不同的幅度控制字,通過鍵盤輸入信號Key2可以改變幅度控制字Amplitude,通過與DDS模塊查表得到的數值相乘可以改變波形的幅度。
上述控制模塊均需要按鍵輸入,則必須要引入按鍵消抖模塊,該模塊檢測到按鍵輸入變化時,每隔20ms將輸入采樣給輸出,從而濾除抖動。
(3)D/A模塊.為了保證準確的數據處理結果,數模轉換器必須具備良好的轉換精度和轉換速度。本設計中的D/A模塊采用美國ANALOG DEVICES公司的AD9767芯片,該芯片是一款高性能高速雙通道DAC芯片,轉換精度高達14位,轉換速率最高可到125MHz,輸出差分電流。
該模塊的設計采用直流耦合方式,輸出電流值由對應的并行端口來控制。由于本系統所需的是電壓信號,因此采用兩級運算放大電路將AD9767芯片的輸出電流轉換為相應的電壓,這里第一級完成轉換與放大工作,第二級將第一級得到的電壓放大到指定范圍內,并通過滑動變阻器調節具體信號的放大倍數。
對設計的系統進行硬件平臺實現,結果顯示通過,該系統的綜合結果資源利用量見表3。本文采用TDS3032B示波器對設計的信號發生器進行實驗測試,并連接以太網把圖像數據存儲到電腦里。

表3 綜合結果資源利用
通過按鍵得到四種波形,如圖3所示。開發板上電后默認輸出正弦波,每按一次鍵波形切換一次。按下復位鍵后,復位信號轉換為低電平,示波器上不顯示任何波形信號。只有當復位信號為高電平時,才可通過按鍵改變波形。觀察示波器顯示波形可知,該DDS信號發生器能夠正確地輸出正弦波、三角波、鋸齒波和方波波形信號。

圖3 示波器顯示的不同波形
這里對默認輸出的正弦波信號進行調整,得到不同工作頻率和幅度的正弦波,測試后的結果如圖4所示。通過按鍵調整可以測得在頻率為1Hz~20MHz、幅度為0.2V~3.2V的范圍內,該系統能夠較好地輸出波形信號。

圖4 不同頻率與幅度的正弦波
本系統基于FPGA開發平臺,采用DDS技術,配合數模轉換AD9767芯片,完成了多功能信號發生器的設計。測試結果驗證該設計方案準確有效。利用FPGA的可重構特征以及ROM的可編程特性,通過改變ROM中的存儲波形數據,可以實現任意信號發生器[6-7]。系統通過設置不同的頻率控制字和幅度控制字,提供參數可調的模擬波形信號,具有一定的實用價值。