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