摘 要:針對(duì)某型導(dǎo)彈測(cè)試設(shè)備電路板檢測(cè)儀激勵(lì)信號(hào)源具體要求,采用了基于直接數(shù)字頻率合成技術(shù)(DDS)的信號(hào)發(fā)生器設(shè)計(jì)方法,介紹了DDS的工作原理,詳細(xì)闡述了基于FPGA設(shè)計(jì)DDS信號(hào)發(fā)生器的主要環(huán)節(jié)和實(shí)現(xiàn)的方法。采用了硬件描述語(yǔ)言Verilog HDL,完成了信號(hào)發(fā)生器的電路設(shè)計(jì)和功能仿真,并通過(guò)DE2-70開發(fā)板結(jié)合嵌入式邏輯分析儀SignalTap Ⅱ進(jìn)行了分析驗(yàn)證。實(shí)驗(yàn)結(jié)果表明,該信號(hào)發(fā)生器能較好地產(chǎn)生所需激勵(lì)信號(hào),具有較高的實(shí)用價(jià)值。
關(guān)鍵詞: 直接數(shù)字頻率合成技術(shù); 信號(hào)發(fā)生器; FPGA; Verilog DHL
中圖分類號(hào):TP274 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1004-373X(2010)13-0201-03
Design of Signal Generator for Circuit Board Tester Based on DDS
ZHAO Hui-long, GUO Li
(Department of Missile Engineering, Ordnance Engineering College, Shijiazhuang 050003, China)
Abstract: A method to design the signal generator based on DDS is proposed according to the specific requirements of the excitation signal source for circuit board tester in a certain type of missile test equipment. The working principle of DDS is presented. The keylink for design of DDS signal generator and the implementation method based on FPGA are elaborated. The circuit design and functional simulation of the signal generator were achieved with the hardware description language Verilog HDL. The verification analysis was performed through the DE2-70 board in combination with the embedded logic analyzer SignalTapII. The result shows that the signal generator can generate the required excitation signals preferably and has a high practical value.
Keywords: DDS; signal generator; FPGA; Verilog DHL
0 引 言
某型導(dǎo)彈測(cè)試設(shè)備電路板檢測(cè)儀主要完成該測(cè)試設(shè)備的電路板的故障檢測(cè)。該檢測(cè)系統(tǒng)要求激勵(lì)信號(hào)產(chǎn)生電路體積小,配置靈活,且精度高、轉(zhuǎn)換速度快。基于FPGA的DDS信號(hào)發(fā)生器較傳統(tǒng)信號(hào)發(fā)生器能夠更好地滿足檢測(cè)儀要求。
直接數(shù)字頻率合成(Direct Digital Synthesize,DDS)是從相位概念出發(fā)直接合成所需波形的一種頻率合成技術(shù)[1-2]。它是繼直接頻率合成和間接頻率合成之后發(fā)展起來(lái)的第三代頻率合成技術(shù),突破了前兩代頻率合成法的原理,從“相位”的概念出發(fā)進(jìn)行頻率合成,這種方法不僅可以產(chǎn)生不同頻率的正弦波、方波、三角波,而且可以控制波形的初始相位,還可以用此方法產(chǎn)生任意波形,目前得到了廣泛的應(yīng)用[3]。
1 DDS的工作原理和基本結(jié)構(gòu)
一個(gè)直接數(shù)字頻率合成器由相位累加器、加法器、波形存儲(chǔ)ROM、D/A轉(zhuǎn)換器和低通濾波器構(gòu)成[4-5]。DDS的原理框圖如圖1所示。
圖1 DDS原理框圖
圖1中K為頻率控制字,P為相位控制字,W為波形控制字,fc為參考時(shí)鐘頻率,N為相位累加器的字長(zhǎng),D為ROM數(shù)據(jù)位及D/A轉(zhuǎn)換器的字長(zhǎng)。相位累加器在時(shí)鐘fc的控制下以步長(zhǎng)K作累加,輸出的N位二進(jìn)制碼與相位控制字P,波形控制字W相加后作為波形ROM的地址,對(duì)波形ROM進(jìn)行尋址,波形ROM輸出D位的幅度碼經(jīng)D/A轉(zhuǎn)換器變成階梯波,再經(jīng)過(guò)低通濾波器平滑后就可以得到合成的信號(hào)波形。合成的信號(hào)波形形狀取決于波形ROM中存放的幅度碼,因此用DDS可以產(chǎn)生任意波形。
設(shè)頻率控制字是K,輸出頻率為fo,參考時(shí)鐘是fc,相位寄存器為N位,頻率分辨率是Δf,則有:
fo=K×fc/2N (1)
Δf=fc/2N (2)
通過(guò)頻率控制字的改變和寄存器位數(shù)的增加,可以得到令人滿意的頻率。
2 基于FPGA的DDS信號(hào)發(fā)生器的設(shè)計(jì)
該信號(hào)發(fā)生器是作為電路板檢測(cè)儀的激勵(lì)信號(hào)源,產(chǎn)生的信號(hào)分別為:頻率為16 000±0.8 Hz的正弦波,頻率為128 000±6.4 Hz,64 000±3.2 Hz,4 000±0.2 Hz的方波和周期為10 μs,占空比為1∶4的脈沖信號(hào)。下面以正弦波的產(chǎn)生為例說(shuō)明DDS的實(shí)現(xiàn)過(guò)程。當(dāng)fo=16 000 Hz,N=16時(shí),根據(jù)式(1),則K=104。
2.1 相位累加器
相位累加器主要是根據(jù)頻率控制字生成ROM查找表的地址,采用硬件描述語(yǔ)言Verilog DHL實(shí)現(xiàn),其源程序?yàn)?
module dds acc(aclr,clock,dat
,result);
input aclr,clock;
input [15:0] dat
;
output [15:0] result;
reg [15:0] result;
reg [15:0] A;
always @(posedge clock or posedge aclr)
begin
if (aclr)
result<=0;
else
begin
A<=dat
+A;
result<=A;
end
end
endmodule
文本輸入完畢后,用Quartus Ⅱ進(jìn)行編譯,然后生成.bsf文件,以便在頂層設(shè)計(jì)時(shí)調(diào)用。其生成頂層模塊如圖2所示。
圖2 相位累加器模塊
2.2 ROM查找表
DDS中,波形存儲(chǔ)器的設(shè)計(jì)是比較關(guān)鍵重要的一環(huán)。用相位累加器輸出的數(shù)據(jù)作為波形存儲(chǔ)器的地址,進(jìn)行波形的相位與幅值的轉(zhuǎn)換,即可在給定的時(shí)間上確定輸出波形的幅值。N位的尋址ROM相當(dāng)于把0°~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中編寫如下程序:
clear
i=0:1:2047;
y=(0.5+0.5*sin(2*pi*i/2047))*1 000;
save dd y;
round(y)
(3) 在Desktop中workspace中選中數(shù)據(jù),復(fù)制數(shù)據(jù)并將數(shù)據(jù)粘貼于txt文檔中,保存。
(4) 然后再將txt文檔中的數(shù)據(jù)復(fù)制并粘貼于Quartus Ⅱ中已建好的.mif文件之中,保存。
調(diào)用的波形存儲(chǔ)器模塊如圖3所示。
圖3 波形存儲(chǔ)器模塊
2.3 頂層模塊的建立
根據(jù)DDS整體電路的工作原理框圖,其核心是由一個(gè)ROM存儲(chǔ)器、一個(gè)相位累加器、一個(gè)鎖相環(huán)和相應(yīng)的輸入、輸出信號(hào)組成。其中ROM查找表是輸入地址是相位累加器的高11位,這在工程上是允許的。DDS的核心電路模塊圖如圖4所示。
圖4 DDS的核心電路模塊圖
方波和脈沖信號(hào)的產(chǎn)生只要將ROM查找表中的內(nèi)容轉(zhuǎn)換為相應(yīng)的波形即可,整個(gè)信號(hào)源的頂層模塊增加了多路選擇開關(guān)。
3 波形仿真及硬件驗(yàn)證
完成DDS電路設(shè)計(jì)后,對(duì)電路進(jìn)行了功能仿真,通過(guò)Matlab顯示了仿真波形,并通過(guò)Altera公司Cyclone Ⅱ系列芯片的DE2-70開發(fā)板結(jié)合嵌入式邏輯分析儀進(jìn)行了硬件驗(yàn)證。
3.1 波形仿真
DDS電路在設(shè)計(jì)過(guò)程中,進(jìn)行了功能仿真,如圖5所示。由于仿真波形為數(shù)字碼,不能直觀地看出DDS輸出的波形,為便于調(diào)試設(shè)計(jì)電路,首先生成.tbl文件,再通過(guò)相應(yīng)Matlab程序生成的正弦波、方波、脈沖信號(hào)的波形曲線,如圖6所示。
圖5 功能仿真圖
圖6 Matlab生成的波形
圖5和圖6顯示了頻率控制字為68h產(chǎn)生的正弦波、頻率控制字為346h的方波和頻率控制字為27Fh的脈沖信號(hào)的功能仿真波形。從功能仿真波形可以看出,DDS電路能夠很好地產(chǎn)生電路板檢測(cè)儀所需激勵(lì)信號(hào)。
3.2 硬件驗(yàn)證
為了能夠更清晰地分析DDS電路,采用DE2-70開發(fā)板結(jié)合SignalTap Ⅱ型嵌入式邏輯分析儀對(duì)設(shè)計(jì)進(jìn)行實(shí)時(shí)的硬件驗(yàn)證。首先對(duì)DDS頂層電路圖做部分修改,主要是進(jìn)行管腳設(shè)定。將修改后的頂層文件下載到DE2-70中,通過(guò)SignalTap Ⅱ型嵌入式邏輯分析儀實(shí)時(shí)觀測(cè)FPGA輸出波形,如圖7所示。SignalTap Ⅱ所能顯示的被測(cè)信號(hào)的時(shí)間長(zhǎng)度為T,計(jì)算公式如下:
T=N×TS (3)
式中:N為SignalTap Ⅱ的緩存中存儲(chǔ)的采樣點(diǎn)數(shù),TS為SignalTap Ⅱ采樣時(shí)鐘的周期。由圖7和式(3)可得出表1所示結(jié)論。
圖7 邏輯分析儀輸出波形
表1 實(shí)驗(yàn)結(jié)論分析
項(xiàng)目標(biāo)準(zhǔn)數(shù)據(jù)實(shí)驗(yàn)數(shù)據(jù)誤差 /%
正弦波16 000±0.8 Hz16 000.2 Hz0.001 25
方波128 000±6.4 Hz128 002.2 Hz0.001 72
64 000±3.2 Hz63 999.3 Hz0.001 09
4 000±0.2 Hz3 999.9 Hz0.002 50
脈沖10 μs10.000 102 μs0.001 02
產(chǎn)生誤差的主要原因有兩方面,一是截?cái)嗾`差,ROM查找表的地址輸入是相位累加器的高11位;二是正弦波量化引入的誤差,將正弦信號(hào)量化為二進(jìn)制數(shù)必然引起誤差。
4 結(jié) 語(yǔ)
通過(guò)對(duì)DDS電路的功能仿真和硬件驗(yàn)證,可以看出DDS可以有效地產(chǎn)生所需波形信號(hào)。較傳統(tǒng)的信號(hào)發(fā)生器,可以減小體積、降低功耗、提高可靠性和靈活性并縮短了開發(fā)周期,具有較高的實(shí)用價(jià)值。
參考文獻(xiàn)
[1]王金明.數(shù)字系統(tǒng)設(shè)計(jì)與Verilog HDL[M].3版.北京:電子工業(yè)出版社,2009.
[2]華清遠(yuǎn)見嵌入式培訓(xùn)中心.FPGA應(yīng)用開發(fā)入門與典型實(shí)例[M].北京:人民郵電出版社,2008.
[3]宋寅.基于FPGA的DDS信號(hào)發(fā)生器的設(shè)計(jì)與實(shí)現(xiàn)[J].合肥學(xué)院學(xué)報(bào),2007(5):63-66.
[4]劉宇紅.基于FPGA的數(shù)字合成信號(hào)發(fā)生器[D].貴陽(yáng):貴州大學(xué),2007.
[5]翟勝偉,李穎穎,都佰勝.DDS信號(hào)源的FPGA實(shí)現(xiàn)[J].電子設(shè)計(jì)工程,2009(4):45-46.
[6]周潤(rùn)景,圖雅,張麗敏.基于Quartus Ⅱ的FPGA/CPLD的數(shù)字系統(tǒng)設(shè)計(jì)實(shí)例[M].北京:電子工業(yè)出版社,2007.
[7]羅怡,李朋朋,馬玖凱.基于DDS的信號(hào)源的設(shè)計(jì)[J].計(jì)算機(jī)技術(shù)與信息發(fā)展,2009(8):42-43.
[8]孫懷東.基于DDS技術(shù)的雙通道信號(hào)發(fā)生器設(shè)計(jì)研究[J].西安文理學(xué)院學(xué)報(bào):自然科學(xué)版,2009(7):81-83.
[9]羅泉,劉芝,劉桂英.基于FPGA的DDS信號(hào)源設(shè)計(jì)[J].廣西師范學(xué)院學(xué)報(bào):自然科學(xué)版,2009(6):41-43.
[10]宋晶晶.基于FPGA的信號(hào)源設(shè)計(jì)與實(shí)現(xiàn)[J].無(wú)線電工程,2003,33(4):27-29.