摘 要:針對某型導彈測試設備電路板檢測儀激勵信號源具體要求,采用了基于直接數(shù)字頻率合成技術(DDS)的信號發(fā)生器設計方法,介紹了DDS的工作原理,詳細闡述了基于FPGA設計DDS信號發(fā)生器的主要環(huán)節(jié)和實現(xiàn)的方法。采用了硬件描述語言Verilog HDL,完成了信號發(fā)生器的電路設計和功能仿真,并通過DE2-70開發(fā)板結合嵌入式邏輯分析儀SignalTap Ⅱ進行了分析驗證。實驗結果表明,該信號發(fā)生器能較好地產(chǎn)生所需激勵信號,具有較高的實用價值。
關鍵詞: 直接數(shù)字頻率合成技術; 信號發(fā)生器; FPGA; Verilog DHL
中圖分類號:TP274 文獻標識碼:A
文章編號: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 引 言
某型導彈測試設備電路板檢測儀主要完成該測試設備的電路板的故障檢測。該檢測系統(tǒng)要求激勵信號產(chǎn)生電路體積小,配置靈活,且精度高、轉換速度快。基于FPGA的DDS信號發(fā)生器較傳統(tǒng)信號發(fā)生器能夠更好地滿足檢測儀要求。
直接數(shù)字頻率合成(Direct Digital Synthesize,DDS)是從相位概念出發(fā)直接合成所需波形的一種頻率合成技術[1-2]。它是繼直接頻率合成和間接頻率合成之后發(fā)展起來的第三代頻率合成技術,突破了前兩代頻率合成法的原理,從“相位”的概念出發(fā)進行頻率合成,這種方法不僅可以產(chǎn)生不同頻率的正弦波、方波、三角波,而且可以控制波形的初始相位,還可以用此方法產(chǎn)生任意波形,目前得到了廣泛的應用[3]。
1 DDS的工作原理和基本結構
一個直接數(shù)字頻率合成器由相位累加器、加法器、波形存儲ROM、D/A轉換器和低通濾波器構成[4-5]。DDS的原理框圖如圖1所示。
圖1 DDS原理框圖
圖1中K為頻率控制字,P為相位控制字,W為波形控制字,fc為參考時鐘頻率,N為相位累加器的字長,D為ROM數(shù)據(jù)位及D/A轉換器的字長。相位累加器在時鐘fc的控制下以步長K作累加,輸出的N位二進制碼與相位控制字P,波形控制字W相加后作為波形ROM的地址,對波形ROM進行尋址,波形ROM輸出D位的幅度碼經(jīng)D/A轉換器變成階梯波,再經(jīng)過低通濾波器平滑后就可以得到合成的信號波形。合成的信號波形形狀取決于波形ROM中存放的幅度碼,因此用DDS可以產(chǎn)生任意波形。
設頻率控制字是K,輸出頻率為fo,參考時鐘是fc,相位寄存器為N位,頻率分辨率是Δf,則有:
fo=K×fc/2N (1)
Δf=fc/2N (2)
通過頻率控制字的改變和寄存器位數(shù)的增加,可以得到令人滿意的頻率。
2 基于FPGA的DDS信號發(fā)生器的設計
該信號發(fā)生器是作為電路板檢測儀的激勵信號源,產(chǎn)生的信號分別為:頻率為16 000±0.8 Hz的正弦波,頻率為128 000±6.4 Hz,64 000±3.2 Hz,4 000±0.2 Hz的方波和周期為10 μs,占空比為1∶4的脈沖信號。下面以正弦波的產(chǎn)生為例說明DDS的實現(xiàn)過程。當fo=16 000 Hz,N=16時,根據(jù)式(1),則K=104。
2.1 相位累加器
相位累加器主要是根據(jù)頻率控制字生成ROM查找表的地址,采用硬件描述語言Verilog DHL實現(xià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 Ⅱ進行編譯,然后生成.bsf文件,以便在頂層設計時調用。其生成頂層模塊如圖2所示。
圖2 相位累加器模塊
2.2 ROM查找表
DDS中,波形存儲器的設計是比較關鍵重要的一環(huán)。用相位累加器輸出的數(shù)據(jù)作為波形存儲器的地址,進行波形的相位與幅值的轉換,即可在給定的時間上確定輸出波形的幅值。N位的尋址ROM相當于把0°~360°的周期信號離散成具有2N個樣值的序列,若波形ROM有D位數(shù)據(jù)位,則2N個樣值的值以D位二進制數(shù)值存放在波形ROM中,按照地址的不同可以輸出相應相位的正弦波和方波的值。在本設計中取N=11,則ROM查找表中存儲2 048個波形數(shù)據(jù),位寬為10位。
建立ROM查找表首先要生成.mif文件。具體方法是利用Quartus Ⅱ新建.mif文件,然后填寫這個文件。這里需借助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ù),復制數(shù)據(jù)并將數(shù)據(jù)粘貼于txt文檔中,保存。
(4) 然后再將txt文檔中的數(shù)據(jù)復制并粘貼于Quartus Ⅱ中已建好的.mif文件之中,保存。
調用的波形存儲器模塊如圖3所示。
圖3 波形存儲器模塊
2.3 頂層模塊的建立
根據(jù)DDS整體電路的工作原理框圖,其核心是由一個ROM存儲器、一個相位累加器、一個鎖相環(huán)和相應的輸入、輸出信號組成。其中ROM查找表是輸入地址是相位累加器的高11位,這在工程上是允許的。DDS的核心電路模塊圖如圖4所示。
圖4 DDS的核心電路模塊圖
方波和脈沖信號的產(chǎn)生只要將ROM查找表中的內容轉換為相應的波形即可,整個信號源的頂層模塊增加了多路選擇開關。
3 波形仿真及硬件驗證
完成DDS電路設計后,對電路進行了功能仿真,通過Matlab顯示了仿真波形,并通過Altera公司Cyclone Ⅱ系列芯片的DE2-70開發(fā)板結合嵌入式邏輯分析儀進行了硬件驗證。
3.1 波形仿真
DDS電路在設計過程中,進行了功能仿真,如圖5所示。由于仿真波形為數(shù)字碼,不能直觀地看出DDS輸出的波形,為便于調試設計電路,首先生成.tbl文件,再通過相應Matlab程序生成的正弦波、方波、脈沖信號的波形曲線,如圖6所示。
圖5 功能仿真圖
圖6 Matlab生成的波形
圖5和圖6顯示了頻率控制字為68h產(chǎn)生的正弦波、頻率控制字為346h的方波和頻率控制字為27Fh的脈沖信號的功能仿真波形。從功能仿真波形可以看出,DDS電路能夠很好地產(chǎn)生電路板檢測儀所需激勵信號。
3.2 硬件驗證
為了能夠更清晰地分析DDS電路,采用DE2-70開發(fā)板結合SignalTap Ⅱ型嵌入式邏輯分析儀對設計進行實時的硬件驗證。首先對DDS頂層電路圖做部分修改,主要是進行管腳設定。將修改后的頂層文件下載到DE2-70中,通過SignalTap Ⅱ型嵌入式邏輯分析儀實時觀測FPGA輸出波形,如圖7所示。SignalTap Ⅱ所能顯示的被測信號的時間長度為T,計算公式如下:
T=N×TS (3)
式中:N為SignalTap Ⅱ的緩存中存儲的采樣點數(shù),TS為SignalTap Ⅱ采樣時鐘的周期。由圖7和式(3)可得出表1所示結論。
圖7 邏輯分析儀輸出波形
表1 實驗結論分析
項目標準數(shù)據(jù)實驗數(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)生誤差的主要原因有兩方面,一是截斷誤差,ROM查找表的地址輸入是相位累加器的高11位;二是正弦波量化引入的誤差,將正弦信號量化為二進制數(shù)必然引起誤差。
4 結 語
通過對DDS電路的功能仿真和硬件驗證,可以看出DDS可以有效地產(chǎn)生所需波形信號。較傳統(tǒng)的信號發(fā)生器,可以減小體積、降低功耗、提高可靠性和靈活性并縮短了開發(fā)周期,具有較高的實用價值。
參考文獻
[1]王金明.數(shù)字系統(tǒng)設計與Verilog HDL[M].3版.北京:電子工業(yè)出版社,2009.
[2]華清遠見嵌入式培訓中心.FPGA應用開發(fā)入門與典型實例[M].北京:人民郵電出版社,2008.
[3]宋寅.基于FPGA的DDS信號發(fā)生器的設計與實現(xiàn)[J].合肥學院學報,2007(5):63-66.
[4]劉宇紅.基于FPGA的數(shù)字合成信號發(fā)生器[D].貴陽:貴州大學,2007.
[5]翟勝偉,李穎穎,都佰勝.DDS信號源的FPGA實現(xiàn)[J].電子設計工程,2009(4):45-46.
[6]周潤景,圖雅,張麗敏.基于Quartus Ⅱ的FPGA/CPLD的數(shù)字系統(tǒng)設計實例[M].北京:電子工業(yè)出版社,2007.
[7]羅怡,李朋朋,馬玖凱.基于DDS的信號源的設計[J].計算機技術與信息發(fā)展,2009(8):42-43.
[8]孫懷東.基于DDS技術的雙通道信號發(fā)生器設計研究[J].西安文理學院學報:自然科學版,2009(7):81-83.
[9]羅泉,劉芝,劉桂英.基于FPGA的DDS信號源設計[J].廣西師范學院學報:自然科學版,2009(6):41-43.
[10]宋晶晶.基于FPGA的信號源設計與實現(xiàn)[J].無線電工程,2003,33(4):27-29.