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