摘 要:介紹采用DDS技術、FPGA芯片和D/A轉換器,設計一個頻率、相位可控的多種輸出波形信號發(fā)生器?;赒uartus Ⅱ軟件設計實現(xiàn),并下載至FPGA器件,使用SignalTap Ⅱ嵌入式邏輯分析儀進行實時測試。經(jīng)過軟件仿真和電路測試,輸出波形達到了技術要求,能夠滿足多種試驗的需要,且性能穩(wěn)定,使用靈活,節(jié)約試驗成本。
關鍵詞:FPGA;信號發(fā)生器;DDS(直接數(shù)字頻率合成器);SignalTap Ⅱ嵌入式邏輯分析儀
中圖分類號:TN402 文獻標識碼:B
文章編號:1004-373X(2008)09-080-03
Variable Signal Generator Based on DDS Technology
HUANG Xuemei,HU Jiansheng,WEI Gonghui,GUI Xiongming
(PLA University of Science Technology,Nanjing,210007,China)
Abstract:This paper introduces using DDS technology,F(xiàn)PGA chip and D/A converter to design a multi-output waveform signal generator in which the frequency and phase are controllable.Based on realization of software design of Quartus II,downloaded to FPGA,using Signal Tap II embedded logic analyzer to do real-time testing.Through software phantom and circuit testing,it can be seen that output waveform reached technological requirements,can meet needs of various experiments,but also with stable performance,flexible application and low cost.
Keywords:FPGA;signal generator;DDS;SignalTap II embedded logic analyzer
信號源作為現(xiàn)代電子產(chǎn)品設計和生產(chǎn)中的重要工具,必須滿足高精度、高速度、高分辨率等要求。正是基于這幾點,本文研究了基于DDS(Direct Digital Synthesis,直接數(shù)字頻率合成)技術的可調信號發(fā)生器。采用DDS方案有很多突出的優(yōu)點:頻率分辨率高;頻率切換速度快;切換時相位能保持連續(xù);超寬的頻率范圍;能實現(xiàn)各種調制波和任意波形的產(chǎn)生;易于實現(xiàn)全數(shù)字化的設計。
本文中利用FPGA,設計出基于DDS的信號發(fā)生器,能產(chǎn)生正弦、三角、方波、鋸齒等多種波形及其諧波。將FPGA的配置數(shù)據(jù)保存在AVR單片機片內可編程FLASH ROM中,可擦寫10 000次。并可以根據(jù)實際情況的需要在波形存儲器(可以在Quartus Ⅱ軟件中定制)中寫入不同的波形數(shù)據(jù),可以隨時添加,能滿足多種實驗及演示的需要,并且該設計成本很低,操作簡潔方便。
1 設計原理
直接數(shù)字頻率合成技術是根據(jù)相位間隔對正弦信號進行取樣,將所得的波形數(shù)據(jù)存儲在定制好的ROM表格中。頻率合成時,相位累加器在參考時鐘的作用下對時鐘脈沖進行計數(shù),同時將累加器輸出的累加相位與頻率控制字K預置的相位增量相加,以相加后的結果形成正弦查詢表的地址;取出表中與該相位對應的單元中的波形數(shù)據(jù)值,由D/A轉換器輸出模擬信號,再經(jīng)低通濾波器平滑,得到符合要求的模擬信號。
采用直接數(shù)字頻率合成(DDS)法實現(xiàn)任意波形發(fā)生器的原理如圖1所示。fc為輸入累加器的基準頻率,在每個時鐘周期,地址累加器對頻率控制字N(地址增量)進行累加,累加的結果作為波形表的下一個取樣地址,把從波形表中取出的數(shù)據(jù)送到數(shù)模轉換器(DAC)進行轉換,最后經(jīng)過濾波電路輸出。DDS的取樣時鐘固定,通過改變地址增量N來控制頻率,實質上是改變一個周期內的取樣點數(shù)達到控制頻率的目的。
圖1 DDS原理圖
相位累加器的最大計數(shù)長度與正弦查詢表中所存儲的相位分隔點數(shù)相同,由于相位累加器的相位增量不同,將導致一周期內的取樣點數(shù)不同,在取樣頻率(由參考時鐘頻率決定)不變的情況下,輸出信號的頻率也相應變化(實現(xiàn)變頻)。如果設定累加器的初始相位,則可以對輸出信號進行相位控制。由采樣原理可知,如果使用兩個相同的頻率合成器,并使其參考時鐘相同,同時設定相同的頻率控制字、不同的初始相位,那么在原理上就具備了實現(xiàn)輸出兩路具有一定相位差的同頻信號的可能性,有效地解決了在一般的通信信道中存在的相位不同步問題。
2 硬件設計
本設計選用ALTERA公司的FLEX10K系列芯片和ATmega32單片機來實現(xiàn)DDS波形信號發(fā)生器,采用VHDL描述,利用Quartus Ⅱ進行綜合并在SignalTap Ⅱ上進行實時仿真。
如圖2所示,用AVR單片機控制鍵盤和LED顯示,在系統(tǒng)加電時將配置數(shù)據(jù)用PS(被動串行模式)配置模式加載到FPGA。由FPGA實現(xiàn)波形的產(chǎn)生。經(jīng)DAC轉換輸出模擬波形信號,繼而經(jīng)低通濾波器進行濾波,消除量化毛刺等干擾。其中,F(xiàn)PGA的作用主要是:保存頻率控制字;構成相位累加器;根據(jù)ROM地址及ROM查找表,實現(xiàn)頻率和波形控制。限于篇幅原因,本文主要對FPGA部分的原理與實現(xiàn)進行說明。
圖2 系統(tǒng)硬件框圖
FPGA部分的基本結構圖如圖3所示。
圖3 DDS基本結構圖
2.1 相位累加器
相位累加器由N位全加器和N位累加器級聯(lián)而成,對頻率控制字的二進制碼進行累加運算,是典型的反饋電路。在每個系統(tǒng)時鐘沿Clk的控制下,N位加法器將頻率控制字X與累加寄存器輸出的相位數(shù)據(jù)相加,把相加后的結果再送至累加寄存器,累加寄存器中新的相位數(shù)據(jù)既反饋到加法器的輸入端,以使加法器在下一Clk時鐘周期中繼續(xù)與頻率控制字X相加,同時累加寄存器的高M位數(shù)值,將作為查找ROM表中取樣數(shù)據(jù)的地址值。
2.2 ROM查找表
首先通過建立Memory Initialization File (.mif)格式文件,將4種波形信號離散采樣點一起放在一個ROM表格中。然后,利用MegaWizard Plug-In Manager定制信號數(shù)據(jù)ROM,同時將生成的數(shù)據(jù)表格(rom.mif)加載到ROM元件中,開機時送到FPGA的RAM中去。然后,通過該元件的地址指針控制對數(shù)據(jù)表格的數(shù)據(jù)讀寫。最后,通過編寫程序控制輸出。
以正弦信號的查找表為例,用Verilog編程語言實現(xiàn)如下。
輸入:PHASEADD為位地址值
輸出:QWAVESIN為1/4正弦波數(shù)值
module romtab(
PHASEADD,[JY]//相位地址值
QWAVESIN);[JY]//1/4正弦波數(shù)值
input[5:0]PHASEADD;
output[6:0]QWAVESIN;
reg[6:0]sinrom;[JY]//sine wave rom
assign QWAVESIN=sinrom;
always@(PHASEADD) case(PHASEADD)
6′d0: sinrom=7′d0;[JY]//0.0
6′d1: sinrom=7′d3;[JY]//3.12
…
6′d62: sinrom=7′d127;[JY]//126.85
6′d63: sinrom=7′d127;[JY]//126.96 endcase
endmodule
[JP3]在ROM查找表當中存儲的是1/4個波形,但是DDS需要產(chǎn)生的是一個完整的正弦波波形,因此,需要一個模塊,他的功能是將1/4的正弦波波形轉換為完整的正弦波的波形。具體的思路如下:當相位值不大于π/2的時候,按照ROM查找表中的內容直接輸出,并且將輸出的數(shù)值加上128的偏移量;當相位處于π/2~π,相位取非,同時將ROM查找表中的內容加上128的偏移量;當相位值處于π~2π,將ROM查找表中的內容取負,然后加上128的偏移量。
2.3 核心單元的FPGA設計
端入端口:address[] ~ROM的地址信號;
輸出端口:q[] ~ROM的輸出數(shù)據(jù)。
具體參數(shù):
LPM _WIDTH:輸出數(shù)據(jù)的寬度(1 ~64任選)
LPM -WIDTHAD:輸入地址的寬度(1 ~12任選)
LPM~FILE:存儲器初始化文件名(.mif or.hex)
以下是在Quartus平臺上用VHDL語言編制的程序。經(jīng)綜合、仿真驗證是滿足要求的。
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_ LOGIC_UNSIGNED.ALL;
USE IEEE.STD_ LOGIC_ARITH.ALL;
LIBRARY LPM;~Altera LPM庫
USE LPM.LPM COMPONENTS.ALL;
ENTITY ddsc IS
GE NERIC(
freq width: INTEGER:=32;[JY]//頻率字位寬
phase width:INTEGER:=12;[JY]//相位字位寬
adder width :INTEGER:= 32;[JY]//加法器位寬
romad_width:INTEGER:=10;[JY]//ROM 表地址位寬
rom_d width :INTEGER:=10;[JY]//ROM表數(shù)據(jù)位寬
);
PORT(
Clk:IN STD_LOGIC;[JY]//系統(tǒng)時鐘
freqin:IN STD_LOGIC VECTOR (freq width=1
DOWNTO 0);[JY]//頻率字
ddsout:OUT SIT_LOGIC VECTOR (rom d width=1
DOWNTO 0 );[JY]//DDS輸出);
END ENTITY ddsc:
ARCHITECTURE behave OF ddsc IS
SIGNAL acc :STD_LOGIC VECTOR
(adder_width=1 DOWNTO 0);[JY]//累加器
SIGNAL romaddr :STD LOGIC_VECTOR
(romad_ width=1 DOWNTO 0);[JY]//ROM 地址
BEGIN
process (clk)[JY]//相位累加器
BEGIN
IF(clk'event and clk=′1′) THEN
acc<= acc+freqin ;
END IF;
END PROCESS:
romaddr<=acc(phase_width =1 downto
phase_width=romad_width);[JY]//ROM杳找表
i.rom,Ipm..rom[JY]//LPM-ROM例化
GENERIC MAP (
Lpm_width=>rom_d_width;
Lpm_widthad=>romad_width;
Lpm_addreaa_control=>\"UNREGISTERED\";
Lpm_outdata=>\"REGISTERED\".
Lpm_file=>″./sin_rom.mif″)[JY]//ROM文件調用
PORT MAP(
Outclock=>clk;
ddrcss=>romaddr;
q=>ddsout);
END ARCHITECTURE behave;
3 仿真和下載
采用Quartus Ⅱ的專用內嵌SignalTap Ⅱ邏輯分析儀來進行調試,下面是通過SignalTap Ⅱ分析出來的正弦波形信號:
引腳鎖定:目標芯片為FLEX10K10,通過菜單Assignments Editor項進入移交鎖定編輯器,主時鐘clk接Clock0(第126引腳),引腳為8,9,10,12控制四位頻率,引腳為18,19,20控制波形輸出的選通dlt,sin,sqr。引腳為41,42,65,67,68,69,70,72輸出8位邏輯到D/A轉換。將這些信息輸入引腳編輯器存儲后,必須再編輯一次才能將引腳鎖定信息編譯進下載文件中。可將編譯產(chǎn)生的SOF格式下載到FPGA進行配置,下載成功后即可進行硬件測試?;蛘邔⑴渲梦募D換成二進制數(shù)據(jù),保存在單
片機中。
圖4 正弦波
4 結 語
試驗測試表明,所設計的波形發(fā)生器,可以實現(xiàn)多種波形輸出,輸出信號的頻率和幅度均可調節(jié)。因FPGA的頻速度很高,輸出信號最大頻率取決于D/A轉換電路。因此最低可到1 Hz,最高可達1 MHz,可滿足多種試驗的需要。
采用FPGA設計實現(xiàn)DDS電路更為靈活,可根據(jù)需要進行接口和控制方式的現(xiàn)場修改和調試。同時,采用FPGA設計實現(xiàn)還具有相對較寬的帶寬、頻率轉換時間較短、相位連續(xù)變化、頻率分辨率高等優(yōu)點。
參 考 文 獻
[1]周俊峰.基于FPGA的直接數(shù)字頻率合成器的設計和實現(xiàn)\\[J\\].電子技術應用,2002,28(8):74-75,80.
[2]潘松,曾毓.SOPC技術實用教程\\[M\\].北京:清華大學出版社,2005.
[3]潘松,王國棟.VHDL使用教程\\[M\\].成都:電子科技大學出版社,2004.
[4]梁悅明.采用ARM單片機對FPGA進行配置\\[EB/OL\\].http://www.eepw.com.cn,2007.
作者簡介
黃雪梅 女,1982年出生,山東濟南人,碩士研究生。主要研究方向為非線性電路與系統(tǒng)。
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。