基于FPGA和DDS技术的信号发生器设计
2014-03-16李平周原
李平,周原
(黄淮学院 信息工程学院,河南 驻马店 264001)
直接数字频率合成技术DDS(Direct Digital Synthesizer)是一种从相位出发直接合成所需波形的频率合成技术,是基于奈奎斯特抽样定理理论和现代器件生产技术发展的一种频率合成技术[1]。与第二代基于锁相环频率合成技术相比,DDS具有频率切换时间短、频率分辨率高、相位可连续变化和输出波形灵活等优点,因此,广泛应用于教学科研、通信、雷达、自动控制和电子测量等领域[2]。随着高速可编程逻辑器件FPGA的发展,电子工程师可根据实际需求,在单一FPGA上开发出性能优良的具有任意波形的DDS系统,极大限度地简化设计过程并提高效率。
1 DDS技术工作原理
1.1 基本理论
DDS主要通过查波形表实现。由奈奎斯特抽样定理理论可知,当抽样频率大于被抽样信号的最高频率2倍时,通过抽样得到的数字信号可通过一个低通滤波器还原成原来的信号。实际上,它是由设置的二进制控制字对参考时钟做除法运算。控制字一般为24~48位字长,因此可以认为DDS是数字信号处理理论的延伸,是数字信号处理的硬件实现[3-5]。
设一路频率为的余弦信号:
现以采样率fc对该路信号采样,得到离散序列为:
式中:Tc=1/fc为采样周期。
式(2)中对应的相位序列为:
该相位序列的显著特点就是线性,即相邻样值之间的相位增量是一常数,且仅与信号频率f有关,即相位增量为:
由于频率f与参考源频率fc满足:
式中:K和M为正整数。
相位增量为:
由式(6)可知,若将2π的相位均匀分为M等分,则频率f=(K/M)·fc的余弦信号以频率fc采样后,其量化序列的样本之间的量化相位增量为一变值K。
根据以上原理,用变量K构造一个量化序列:
完成 φ(n)到另一序列 s(n)的映射,即由 φ(n)构造序列:
式(8)是连续时间信号s(t)经采样频率fc采用后的离散时间序列。根据采样定理,当时,s(n)经低通滤波器滤波后,可以唯一的恢复s(t)。可见,通过上述系列变换,变量K将唯一确定一个单频模拟余弦信号s(t):
该信号频率为:
式(10)是 DDS方程,在实际的 DDS中,一般取 M=2N,N为正整数,于是DDS的方程可写成:
通过分析,DDS可由下列两次变换实现。
1)变量K产生量化的相位序列
该过程一般由一个以fc作为时钟的N位相位累加器实现,如图1所示。
图1 相位累加器Fig.1 The phase accumulator
2)离散量化相位序列产生正弦信号离散幅度序列
该过程是由(8)式的映射关系所构成的波形ROM寻址完成的,如图2所示。把量化的数字波形经数模转换,再通过低通滤波器LPF得到频率为fo的余弦信号。变量K称为相位增量(也叫频率控制字)。当K=1时,DDS输出最低频率(即频率分辨率)为fc/2N。因此,只要N足够大,DDS可以得到很细的频率间隔。要改变DDS输出频率,只要改变频率控制字K即可。DDS的最大输出频率由Nyquist采样定理决定,即fc/2,也就是K的最大值为2N-1。
DDS可以很容易实现正弦信号和余弦信号两路输出,只需用相位累加器的输出同时驱动正弦信号波形的ROM和余弦信号的ROM并各自经数模转换器和低通滤波器输出即可。
图2 波形ROM寻址Fig.2 Waveform ROM addressing
1.2 DDS的基本结构
DDS包括数字和模拟两部分,其中主要是由相位累加器、ROM波形查询表,数模转换器和低通滤波器LPF构成。DDS的基本结构如图3所示。
图3中,K为频率控制字,fc为时钟频率,N为相位累加器字长,D为ROM数据库位及D/A转换器字长。相位累加器在时钟的fc/2控制下以步长K为累加,输出N位二进制码作为波形ROM的地址,对波形ROM寻址,波形ROM输出的幅值码经数模转换器转换成模拟信号后再经LPF输出[6]。
图3 DDS基本结构Fig.3 Basic structure of DDS
2 核心器件选型
本设计所用到的核心器件主要是可编程逻辑器件(FPGA)和D/A转换器。FPGA采用Altera公司的CycloneII系列EP2C35F672C8。该芯片内部资源丰富,包含有33 216个逻辑单元,105个M4K RAM模块,以及35个 18 BIT×18 BIT嵌入式乘法器4个高性能PLL以及多达475个用户自定义I/O,因此,能较好满足该系统设计要求。
D/A转换器则采用德州仪器公司THS5651。THS5651采用先进的高速混合信号CMOS工艺,是一个10位分辨率的数字到模拟转换器(DAC),专为优化数字数据传输有线和无线通信系统。该THS5651提供优越的AC和DC性能,同时支持更新率高达100MSPS的。
3 DDS的FPGA实现
3.1 累加器的设计
相位累加器主要完成累加,实现输出波形频率可调功能。利用可编程逻辑器件系统开发工具Quartus II9.0进行设计。在Quartus II9.0软件中,新建一个工程管理文件,根据累加器与移位寄存器的工作原理,写出其对应的源代码并进行编译与仿真。部分源代码如下:
module adder8(clk,key,s1,s2,nrst,da,ph);
input clk; //模块时钟输入
input[7:0]key; //键值输入
input s1; //步进
input s2; //相位
inputnrst; //复位
output[7:0]da; //步进输出
output[7:0]ph; //相位输出
reg[7:0]ax;
reg[7:0]da;
reg[7:0]ph;
always@(posedge clk or negedge nrst)
begin
if(!nrst)
begin
da <=8'b0;
ph <=8'b0;
end
else
begin
ax <=key;
if(!s1) da <=ax;
if(!s2) ph <=ax;
end
end
endmodule
3.2 存储器设计
为了提高系统的分辨率和降低FPGA资源的利用率,采用基于1/4波形的存储器设计技术[7]。利用正弦波对称性特点,只要存储[0~π/2]幅值,可以通过地址和幅值数据变换,来得到整个周期内的正弦波,其设计原理如图4所示。用相位累加器输出高2位作为波形区间标志位。当最高位与次高位都为’0’时,表示输出正弦波正处在[0~π/2]区间内,这时,地址与输出数据都不需要变换;当最高位为’0’,次高位为’l’时,输出正弦波正处在[π/2~π]区间内,这时,地址变换器对地址进行求补操作,而输出数据不变;当最高位为’l’,次高位为’0’时,输出正弦波正处在[π~3π/2]区间内,这时,地址不变,而输出变换器对输出数据进行求补操作;当最高位与次高位都为’l’时,输出正弦波正处在[3π/2~2π]区间内,这时,地址和输出数据都进行求补操作。
图4 1/4波形存储器设计原理图Fig.4 The principle diagram of 1/4 waveform storage design
3.3 D/A转换单元设计
D/A转换单元是继波形数据产生单元之后,将数字量形式的波形幅值转换成
所要求的合成频率的模拟量形式信号[8]。DAC输出信号实际上是阶梯模拟信号,数模转换输出通过高速运放THS3001放大,然后利用低通滤波器对波形进行平滑处理。单元电路如图5所示。
图5 D/A转换电路Fig.5 D/A conversion circuit
3.4 滤波处理单元
滤波器是一种能通过有用频率信号而同时抑制 (或衰减)无用频率信号的电子装置。由于运算放大器具有近似理想的特性,且可以省去电感,得到接近理论预测的频率响应特性。构成有源滤波电路后还具有一定的电压放大和缓冲作用,并能减小体积。综合考虑,系统采用运算放大器SL560构成二阶低通滤波器。
4 系统功能仿真和验证分析
4.1 频率控制字生成模块仿真与分析
频率控制字的生成直接影响着波形数据的寻址,该模块负责快速记录并实时显示输入的频率数字,准确计算得到相应的频率控制字。系统键盘为高速动态扫描(频率为200 Hz),采用状态机设计,设置了按键去抖动功能。在FPGA开发平台对该模块进行功能验证,整体无误操作产生,几乎没有时滞效应,按键的防抖动效果也良好,达到了预期的目的。
4.2 相位累加器模块仿真与分析
相位累加器用于实现相位累加,并存储其累加结果。当前,相位累加器的值和时钟周期到来后的相位累加器的值相差k(k为频率控制字)。该模块的仿真波形如图6所示。
4.3 系统主要功能指标测试
用存储示波器测量放大器模拟输出端的正弦波信号、方波信号、三角波信号,测试频率为100 kHz时候输出结果如图7所示。
表1给出了DDS信号发生器实测频率与给定频率对照表。
检测输入频率为0~1 MHz时,波形形状均良好,未出现明显失真。计算理论误差为0.095%,在实测中发现,波形数字的误差相对很小,不足0.2%。符合设计要求。
5 结束语
图6 相位累加器仿真结果Fig.6 Simulation results of phase accumulato
图7 各种输出波形Fig.7 A variety of outputwaveform
表1 实测频率与给定频率对照表Tab.1 Themeasured frequency table with a given frequency
直接数字频率合成(DDS)技术属第三代频率合成技术,与第二代基于锁相环频率合成技术相比,利用DDS技术合成的输出波形具有良好的性能指标。本文 介绍了以直接数字频率合成技术为基础的波形信号发生器工作原理和设计过程,并在实验平台上设计实现了满足各功能指标的信号发生器。本文在DDS技术工作原理的基础上,从测试结果可看出,该系统工作稳定、可靠,并具有较好的参考与实用价值。
[1]张涛,陈亮.现代DDS的研究进展与概述[J].电子科技,2008,21(3):73-78.ZHANG Tao,CHEN Liang.Overview ofmodern DDSand Its research process[J].Electronic Science and Technology,2008,21(3):73-78.
[2]杨秀增.基于FPGA和DDS的信号源设计[J].电子设计工程,2009,17(11):7-9.YANG Xiu-zeng.Design of a signal generator based on FPGA and DDS[J].Electronic Design Engineering,2009,17(11):7-9.
[3]韩喜春,刘柏森.基于FPGA的可重构多通道DDS信号发生器[J].电测与仪表,2007,44(7):50-52.HANXi-chun,LIUBai-sen.The design of reconfigurablemultichannel DDS signal generator based on FPGA[J].Electrical Measurement&Instrumentation,2007,44(7):50-52.
[4]李精华.基于FPGA的DDS波形发生器设计[J].柳州师专学报,2011,26(3):114-116.LIJing-hua.On design of DDSwaveform generator based on FPGA[J].Journal of Liuzhou Teachers College,2011,26(3):114-116.
[5]杨东霞,巨永锋.基于FPGA和DDS的数字调制信号发生器设计与实现[J].电子设计工程,2013,21(6):90-93.YANG Dong-xia,JU Yong-feng.Design and implementation of digital modulation signal generator based on FPGA and DDS[J].Electronic Design Engineering,2013,21(6):90-93.
[6]汤家华,王道德.基于FPGA设计的采用DDS技术的任意波形发生器[J].电子测量技术,2007,30(4):129-131.TANG Jia-hua,WaNG Dao-de.Arbitrary waveform generator based on FPGA by using DDS[J].Electronic Measurement Technology,2007,30(4):129-131.
[7]杨晓慧,杨旭.FPGA系统设计与实例[M].北京:人民邮电出版社,2010.
[8]高士友,胡学深.基于FPGA的DDS信号发生器设计[J].现代电子技术,2009,303(16):35-37.GAO Shi-you,HU Xue-shen.Design of DDS signal generator gased on FPGA[J].Modern Electronics Technique,2009,303(16):35-37.