直接數(shù)字頻率合成(Direct Digital Synthesize,DDS)是從相位概念出發(fā)直接合成所需波形的一種頻率合成技術(shù)。它是繼直接頻率合成和間接頻率合成之后發(fā)展起來的第三代頻率合成技術(shù),突破了前兩代頻率合成法的原理,從“相位”的概念出發(fā)進(jìn)行頻率合成,這種方法不僅可以產(chǎn)生不同頻率的正弦波、方波、三角波,而且可以控制波形的初始相位,還可以用此方法產(chǎn)生任意波形,目前得到了廣泛的應(yīng)用。
1 DDS的工作原理和基本結(jié)構(gòu)
一個(gè)直接數(shù)字頻率合成器由相位累加器、加法器、波形存儲(chǔ)ROM、D/A轉(zhuǎn)換器和低通濾波器構(gòu)成。DDS的原理框圖如圖1所示。
圖1中K為頻率控制字,P為相位控制字,W為波形控制字,fc為參考時(shí)鐘頻率,N為相位累加器的字長,D為ROM數(shù)據(jù)位及D/A轉(zhuǎn)換器的字長。相位累加器在時(shí)鐘,fc的控制下以步長K作累加,輸出的N位二進(jìn)制碼與相位控制字P,波形控制字W相加后作為波形ROM的地址,對波形ROM進(jìn)行尋址,波形ROM輸出D位的幅度碼經(jīng)D/A轉(zhuǎn)換器變成階梯波,再經(jīng)過低通濾波器平滑后就可以得到合成的信號(hào)波形。合成的信號(hào)波形形狀取決于波形ROM中存放的幅度碼,因此用DDS可以產(chǎn)生任意波形。
設(shè)頻率控制字是K,輸出頻率為f0,參考時(shí)鐘是fc,相位寄存器為N位,頻率分辨率是△f,則有:
通過頻率控制字的改變和寄存器位數(shù)的增加,可以得到令人滿意的頻率。
2 基于FPGA的DDS信號(hào)發(fā)生器的設(shè)計(jì)
該信號(hào)發(fā)生器是作為電路板檢測儀的激勵(lì)信號(hào)源,產(chǎn)生的信號(hào)分別為:頻率為16 000±0.8 Hz的正弦波,頻率為128 000±6.4 Hz,64 000±3.2 Hz,4 000±O.2 Hz的方波和周期為10μs,占空比為1:4的脈沖信號(hào)。下面以正弦波的產(chǎn)生為例說明DDS的實(shí)現(xiàn)過程。當(dāng)f0=16 000 Hz,N=16時(shí),根據(jù)式(1),則K=104。
2.1 相位累加器
相位累加器主要是根據(jù)頻率控制字生成ROM查找表的地址,采用硬件描述語言Verilog DHL實(shí)現(xiàn),其源程序?yàn)椋?/p>
文本輸入完畢后,用QuartusⅡ進(jìn)行編譯,然后生成.bsf文件,以便在頂層設(shè)計(jì)時(shí)調(diào)用。其生成頂層模塊如圖2所示。
2.2 ROM查找表
DDS中,波形存儲(chǔ)器的設(shè)計(jì)是比較關(guān)鍵重要的一環(huán)。用相位累加器輸出的數(shù)據(jù)作為波形存儲(chǔ)器的地址,進(jìn)行波形的相位與幅值的轉(zhuǎn)換,即可在給定的時(shí)間上確定輸出波形的幅值。N位的尋址ROM相當(dāng)于把O°~360°的周期信號(hào)離散成具有2N個(gè)樣值的序列,若波形ROM有D位數(shù)據(jù)位,則2N個(gè)樣值的值以D位二進(jìn)制數(shù)值存放在波形ROM中,按照地址的不同可以輸出相應(yīng)相位的正弦波和方波的值。在本設(shè)計(jì)中取N=11,則ROM查找表中存儲(chǔ)2 048個(gè)波形數(shù)據(jù),位寬為10位。
建立ROM查找表首先要生成.mif文件。具體方法是利用quartusⅡ新建.mif文件,然后填寫這個(gè)文件。這里需借助Matlab填寫.mif文件即可,具體方法如下:
(1)先由QuartusⅡ生成.mif文件。
(2)在Matlab中編寫如下程序:
(3)在Desktop中workspace中選中數(shù)據(jù),復(fù)制數(shù)據(jù)并將數(shù)據(jù)粘貼于txt文檔中,保存。
(4)然后再將txt文檔中的數(shù)據(jù)復(fù)制并粘貼于QuartusⅡ中已建好的.mif文件之中,保存。
調(diào)用的波形存儲(chǔ)器模塊如圖3所示。
2.3 頂層模塊的建立
根據(jù)DDS整體電路的工作原理框圖,其核心是由一個(gè)ROM存儲(chǔ)器、一個(gè)相位累加器、一個(gè)鎖相環(huán)和相應(yīng)的輸入、輸出信號(hào)組成。其中ROM查找表是輸入地址是相位累加器的高11位,這在工程上是允許的。DDS的核心電路模塊圖如圖4所示。
方波和脈沖信號(hào)的產(chǎn)生只要將ROM查找表中的內(nèi)容轉(zhuǎn)換為相應(yīng)的波形即可,整個(gè)信號(hào)源的頂層模塊增加了多路選擇開關(guān)。
3 波形仿真及硬件驗(yàn)證
完成DDS電路設(shè)計(jì)后,對電路進(jìn)行了功能仿真,通過Matlab顯示了仿真波形,并通過Altera公司CycloneⅡ系列芯片的DE2-70開發(fā)板結(jié)合嵌入式邏輯分析儀進(jìn)行了硬件驗(yàn)證。
3.1 波形仿真
DDS電路在設(shè)計(jì)過程中,進(jìn)行了功能仿真,如圖5所示。由于仿真波形為數(shù)字碼,不能直觀地看出DDS輸出的波形,為便于調(diào)試設(shè)計(jì)電路,首先生成.tbl文件,再通過相應(yīng)Matlab程序生成的正弦波、方波、脈沖信號(hào)的波形曲線,如圖6所示。
圖5和圖6顯示了頻率控制字為68h產(chǎn)生的正弦波、頻率控制字為346h的方波和頻率控制字為27Fh的脈沖信號(hào)的功能仿真波形。從功能仿真波形可以看出,DDS電路能夠很好地產(chǎn)生電路板檢測儀所需激勵(lì)信號(hào)。
3.2 硬件驗(yàn)證
為了能夠更清晰地分析DDS電路,采用DE2-70開發(fā)板結(jié)合SignalTapⅡ型嵌入式邏輯分析儀對設(shè)計(jì)進(jìn)行實(shí)時(shí)的硬件驗(yàn)證。首先對DDS頂層電路圖做部分修改,主要是進(jìn)行管腳設(shè)定。將修改后的頂層文件下載到DE2-70中,通過SignalTapⅡ型嵌入式邏輯分析儀實(shí)時(shí)觀測FPGA輸出波形,如圖7所示。SignalTapⅡ所能顯示的被測信號(hào)的時(shí)間長度為T,計(jì)算公式如下:
式中:N為SignalTapⅡ的緩存中存儲(chǔ)的采樣點(diǎn)數(shù),Ts為SignalTapⅡ采樣時(shí)鐘的周期。由圖7和式(3)可得出表1所示結(jié)論。
產(chǎn)生誤差的主要原因有兩方面,一是截?cái)嗾`差,ROM查找表的地址輸入是相位累加器的高11位;二是正弦波量化引入的誤差,將正弦信號(hào)量化為二進(jìn)制數(shù)必然引起誤差。
4 結(jié)語
通過對DDS電路的功能仿真和硬件驗(yàn)證,可以看出DDS可以有效地產(chǎn)生所需波形信號(hào)。較傳統(tǒng)的信號(hào)發(fā)生器,可以減小體積、降低功耗、提高可靠性和靈活性并縮短了開發(fā)周期,具有較高的實(shí)用價(jià)值。