馮星為
(南京理工大學(xué)理學(xué)院,江蘇 南京 210094)
信號發(fā)生器是一種能提供不同頻率和波形信號的機器設(shè)備,廣泛應(yīng)用于科研、醫(yī)療、通信、遙控遙測及現(xiàn)代儀器工業(yè)領(lǐng)域[1]。隨著半導(dǎo)體產(chǎn)業(yè)的快速發(fā)展,電子設(shè)備的相關(guān)要求也在不斷提高,往往需要信號發(fā)生器提供準(zhǔn)確、穩(wěn)定的激勵信號。傳統(tǒng)的信號發(fā)生器雖然能夠輸出結(jié)構(gòu)較簡單、頻率較寬的信號,但是其輸出的波形頻率不夠穩(wěn)定、精度不夠高而且比較單一[2]。而直接數(shù)字頻率合成技術(shù)(DDS)作為一種新型頻率合成方法,具備分辨率高、穩(wěn)定性強、復(fù)雜度低等優(yōu)點[3],廣泛應(yīng)用于當(dāng)前信號發(fā)生器的設(shè)計中?,F(xiàn)場可編程門陣列(FPGA)具有快速可靠、可重構(gòu)、可編程等優(yōu)點,為實現(xiàn)DDS技術(shù)提供了更好的載體。本文主要介紹了一種基于FPGA芯片的DDS信號發(fā)生器的設(shè)計方案,并在Quartus Prime平臺實現(xiàn),最終連接示波器進(jìn)行實驗測試。測試結(jié)果表明,該系統(tǒng)能可靠地生成多種頻率且幅度可調(diào)的波形信號,并能快速地在各種信號之間進(jìn)行切換,具有很好的實用價值。
DDS是一種以奈奎斯特采樣定理為理論基礎(chǔ)的數(shù)字化直接頻率合成技術(shù)。整個DDS系統(tǒng)的結(jié)構(gòu)如圖1所示,主要包括時鐘源、相位累加器、波形ROM以及D/A數(shù)模轉(zhuǎn)換器。
圖1 DDS結(jié)構(gòu)原理圖
其中相位累加器是整個DDS系統(tǒng)的核心器件,由一個N位的加法器和一個N位的寄存器共同構(gòu)成,每當(dāng)時鐘脈沖信號到達(dá)上升沿時,加法器就將頻率控制字與寄存器輸出的相位數(shù)據(jù)相加,再把結(jié)果輸送至寄存器的輸入端,以使加法器在下一個時鐘脈沖信號的作用下繼續(xù)與頻率控制字相加[4]。于是相位累加器就這樣在時鐘信號的作用下,不斷地對頻率控制字進(jìn)行相位累加,產(chǎn)生ROM的相位采樣地址。波形ROM里存儲了每個采樣相位所對應(yīng)的數(shù)字幅值數(shù)據(jù),于是經(jīng)查表找出,把相位轉(zhuǎn)化為所需信號波形的數(shù)字幅度序列。D/A數(shù)模轉(zhuǎn)換器將波形ROM輸出的正弦幅值序列轉(zhuǎn)化為對應(yīng)的電平,從而將數(shù)字信號轉(zhuǎn)換成模擬信號。
DDS系統(tǒng)的總體設(shè)計框圖如圖2所示,整個系統(tǒng)采用模塊化設(shè)計理念,主要包括頂層模塊、DDS模塊、控制模塊和D/A模塊。
圖2 系統(tǒng)結(jié)構(gòu)設(shè)計圖
本設(shè)計中,F(xiàn)PGA芯片作為系統(tǒng)核心控制單元,是實現(xiàn)DDS算法的載體。基于Intel公司的Quartus Prime平臺,采用Cyclone IV系列的EP4CE10F17C芯片,通過FPGA芯片輸出所需波形數(shù)據(jù),然后經(jīng)過DAC芯片轉(zhuǎn)換成模擬波形,并通過按鍵來實現(xiàn)波形的切換、調(diào)頻、調(diào)幅、復(fù)位多項功能。
(1)DDS模塊設(shè)計。在本設(shè)計中,DDS模塊包含了相位累加器和ROM查找表,模塊中例化了四個存有波形數(shù)據(jù)的ROM,其中的mif文件通過MATLAB軟件編寫,然后調(diào)用Quartus Prime內(nèi)的IP核進(jìn)行讀取。為了合理控制ROM的內(nèi)存容量,這里采用相位截斷法,直接截取32位累加器輸出結(jié)果的高12位來作為ROM的查詢地址[5]。相位累加器在時鐘信號下產(chǎn)生采樣地址,通過查找表,讀出ROM中的數(shù)據(jù)輸送給D/A模塊,并且輸出數(shù)據(jù)可通過波形控制字、頻率控制字、幅度控制字進(jìn)行調(diào)節(jié)。該模塊的端口功能描述如表1所示,由PLL倍頻得到DDS模塊的時鐘,工作頻率為125MHz。
表1 DDS模塊端口功能描述
(2)控制模塊設(shè)計。在本設(shè)計中,控制模塊分為三個子模塊,在系統(tǒng)時鐘、復(fù)位、鍵盤信號的作用下,分別將波形控制字、頻率控制字、幅度控制字?jǐn)?shù)據(jù)輸送至DDS模塊。該模塊的端口功能描述見表2。當(dāng)鍵盤輸入信號Key0為1時,波形控制模塊開始選擇波形控制字Wave_c,DDS模塊根據(jù)不同的Wave_c值來調(diào)用不同的波形ROM。頻率控制模塊設(shè)置了16種不同的頻率控制字,通過鍵盤輸入信號Key1切換頻率控制字Fword,這里通過計算得到不同輸出頻率波形的Fword值為:
表2 控制模塊端口功能描述
其中Fout為波形輸出頻率,F(xiàn)clk為輸入時鐘頻率。幅度控制模塊設(shè)置了5種不同的幅度控制字,通過鍵盤輸入信號Key2可以改變幅度控制字Amplitude,通過與DDS模塊查表得到的數(shù)值相乘可以改變波形的幅度。
上述控制模塊均需要按鍵輸入,則必須要引入按鍵消抖模塊,該模塊檢測到按鍵輸入變化時,每隔20ms將輸入采樣給輸出,從而濾除抖動。
(3)D/A模塊.為了保證準(zhǔn)確的數(shù)據(jù)處理結(jié)果,數(shù)模轉(zhuǎn)換器必須具備良好的轉(zhuǎn)換精度和轉(zhuǎn)換速度。本設(shè)計中的D/A模塊采用美國ANALOG DEVICES公司的AD9767芯片,該芯片是一款高性能高速雙通道DAC芯片,轉(zhuǎn)換精度高達(dá)14位,轉(zhuǎn)換速率最高可到125MHz,輸出差分電流。
該模塊的設(shè)計采用直流耦合方式,輸出電流值由對應(yīng)的并行端口來控制。由于本系統(tǒng)所需的是電壓信號,因此采用兩級運算放大電路將AD9767芯片的輸出電流轉(zhuǎn)換為相應(yīng)的電壓,這里第一級完成轉(zhuǎn)換與放大工作,第二級將第一級得到的電壓放大到指定范圍內(nèi),并通過滑動變阻器調(diào)節(jié)具體信號的放大倍數(shù)。
對設(shè)計的系統(tǒng)進(jìn)行硬件平臺實現(xiàn),結(jié)果顯示通過,該系統(tǒng)的綜合結(jié)果資源利用量見表3。本文采用TDS3032B示波器對設(shè)計的信號發(fā)生器進(jìn)行實驗測試,并連接以太網(wǎng)把圖像數(shù)據(jù)存儲到電腦里。
表3 綜合結(jié)果資源利用
通過按鍵得到四種波形,如圖3所示。開發(fā)板上電后默認(rèn)輸出正弦波,每按一次鍵波形切換一次。按下復(fù)位鍵后,復(fù)位信號轉(zhuǎn)換為低電平,示波器上不顯示任何波形信號。只有當(dāng)復(fù)位信號為高電平時,才可通過按鍵改變波形。觀察示波器顯示波形可知,該DDS信號發(fā)生器能夠正確地輸出正弦波、三角波、鋸齒波和方波波形信號。
圖3 示波器顯示的不同波形
這里對默認(rèn)輸出的正弦波信號進(jìn)行調(diào)整,得到不同工作頻率和幅度的正弦波,測試后的結(jié)果如圖4所示。通過按鍵調(diào)整可以測得在頻率為1Hz~20MHz、幅度為0.2V~3.2V的范圍內(nèi),該系統(tǒng)能夠較好地輸出波形信號。
圖4 不同頻率與幅度的正弦波
本系統(tǒng)基于FPGA開發(fā)平臺,采用DDS技術(shù),配合數(shù)模轉(zhuǎn)換AD9767芯片,完成了多功能信號發(fā)生器的設(shè)計。測試結(jié)果驗證該設(shè)計方案準(zhǔn)確有效。利用FPGA的可重構(gòu)特征以及ROM的可編程特性,通過改變ROM中的存儲波形數(shù)據(jù),可以實現(xiàn)任意信號發(fā)生器[6-7]。系統(tǒng)通過設(shè)置不同的頻率控制字和幅度控制字,提供參數(shù)可調(diào)的模擬波形信號,具有一定的實用價值。