基于FPGA的DDS信号发生器的设计
【摘要】本文介绍了基于FPGA和MCU技术的直接数字合成信号发生器的设计,详细分析了其主要模块的系统结构、软硬件设计和具体实现电路。
【关键词】信号发生器;DDS;FPGA
1.引言
随着数字集成电路和微电子技术的发展,直接数字合成技术(Direct Digital Synthesis)简称DDS将先进的数字处理技术与方法引入信号合成领域,优越的性能和突出的特点使其成为现代频率合成技术中的佼佼者。DDS器件采用了高速数字电路和高速D/A转换技术,具备了频率转换时间短、相对带宽宽、频率分辨率高、输出相位连续和相位可快速程控切换等优点,可以实现对信号的全数字式调制。本文给出了基于FPGA和MCU技术的直接数字合成信号发生器的设计,实现了满足预定指标的多频率波形输出。
2.DDS基本原理
DDS建立在采样定理基础上,首先对需要产生的波形进行采样,将采样值数字化后存人存储器作为查找表。然后通过查表读取数据,再经D/A转换器转换为模拟量,将保存的波形重新合成出来。DDS基本原理框图如图1所示。
图1 DDS基本原理框图
基本功能包括:接收频率控制字进行相位累加;使用带反馈的移位寄存器产生随机序列;把随机序列加到相位地址码或幅度值:对相位累加值进行相幅转换;把读出的幅度值进行D/A转换并调节其幅度;对波形进行滤波后放大输出波形。
3.DDS信号的产生
下面就FPGA实现DDS正弦波信号为例,对其键技术进行分析。
3.1 采样点的实现
对一个幅度为1的正弦波的一个周期进行1024点采样,用Matlab计算得到每一点对应的幅度值,然后量化成8位二进制数据存放在ROM中。用MATLAB语言编写的正弦函数数据采集程序如下:
CLEAR TIC;
T = 2*PI/1024;
t = [0:T:2*pi];
y=255*sinz(t);
round(y);
3.2 数据ROM制作
有了上面的采样点接下去就可以结合QUARTUS中ROM的制作来设计一个存储1024个采样点的存储器,下面是实现的部分Verilog程序。
module rom (
address,
clock,
q);
altsyncram altsyncram_component (
.clock0 (clock),
.address_a (address),
.q_a (sub_wire0)
// synopsys translate_off
,
.aclr0 (),
.aclr1 (),
.address_b (),
.addressstall_a (),
.addressstall_b (),
.byteena_a (),
.byteena_b (),
.clock1 (),
.clocken0 (),
.clocken1 (),
.data_a (),
.data_b (),
.q_b (),
.rden_b (),
.wren_a (),
.wren_b ()
// synopsys translate_on
);
defparam
3.3 PLL锁相环倍频的实现
在本次设计中选择Cyclone芯片它带有一个PLL可以将系统时钟频率被倍频到120M。
在FPGA中使用其LPM库,可以实现波形的任意分频和移相。根据要求设计锁相环倍频到120MHZ,其最高频率不能太高,这是由外部运算放大器THS4001所能转换的速率以及FPGA在综合的时候所能承受的最高频率所约束。在QUARTUS Ⅱ软件下PLL锁相环制作如图2所示。
图2 ATLPLL设置框图
3.4 相位累加器的设计
相位累加器由N位加法器与N位累加寄存器级联构成,其内部结构如图3所示:
图3 累加器内部结构示意图
下面是其简单的Verilog实现:
always @(posedge CLKP or posedge ACLR) //OLD CLKN
if(ACLR)
ADD_B<=0;
else if(CE)
ADD_B<=ADD_B+ADD_A;
当每一个CLKP的上升延就会触发always进程使ACLR为高电平时相位累加寄存器清零,在CE为高电平时实现相位的累加。
3.5 正弦波信号的产生
前面制作的ROM地址线为10位,即地址范围0-1023,相位累加器采用32位,加上倍频和分频技术可以实现最小步进为10HZ的正弦波,具体公式如下:
f=fc*K/2n
我们采用DDS模块在低频的时候是取ROM模块中的所有数据 ,即得到的正弦波由ROM中的所有数据组成,通过测量当输出到频率10MHz时,无明显失真。读数据的地址是通过DDS模块的高8位作为地址线来读取的,当频率达到1000K的时候,正弦波的输出的点数就没有1024点了,在接下更高的频率的时候,构成正弦波的点数会随之减少,理论上点数可以到1点,但此时已完全失真,经过实验测量,输出的正弦波在10MHz时能明显的看的出是正弦波,不会有大的失真,DDS数据和波形仿真如图4所示。
图4 DDS数据和波形仿真如图
4.MCU及硬件电路的设计
4.1 键盘的实现
在本系统中,数据和控制信号通过键盘输入,在单片机中进行计算处理,一方面用来对所需信号的频率、幅度及功能进行控制,另一方面将输出的信号频率、幅度等信息通过液晶显示屏显示出来。本系统采用4个按键,其功能分别为步进选择,清零,频率加,频率减。
4.2 液晶显示的实现
本系统采用8位、带LED背光、16X2个字符的GXM 1602NSL液晶模块,它的核心是HD44780o HD44780不仅作为控制器,而且还具有驱动40 X 16点阵液晶像素的能力。其内部的自定义字符发生器RAM (CGRAM)的部分未用位还可作一般数据存贮器应用。
4.3 高速DA转换THS5651的设计
设计由于要求输出的正弦波频率较高,所以必须采用高速DA转换,THS5651其具有120M的超高速转换速率,THS5651的满量程电流输出脚BIAS1输出电流是恒定不变的,通过改变接在外面的电位器就可以改变其参考电压,从而实现了电压幅度可调。DA设计的原理如图5所示。
图5 DA设计原理图
5.系统功能实现与误差分析
信号发生器功能实现无误,根据控制按钮设定输出频率,用示波器观察如图6所示。
图6 示波器观察和控制显示图
检测输入频率为0~10MHz时,波形形状均良好,未出现失真。计算理论误差为0.095%,在实测中发现,波形数字的误差相对很小,0.1%左右。由于滤波整形电路存在高频耦合通路,产生线间串扰,对滤波效果形成了不利影响,因此滤波器设计必须满足频带宽,截止特性好,抗干扰性强等特性。
6.结语
介绍了以直接数字频率合成技术(DDS)为基础的波形信号发生器工作原理和设计过程,并通过FPGA和MCU平台实现了各频率波形的输出。随着FPGA性价比的不断提高,基于FPGA平台开发信号发生器将逐步走向标准化、规模化和产品化。现代电子和通信技术的发展,对信号发生器提出了更高、更严格的要求。除了对信号频率范围、带宽和频率分辨率的严格限制外,对信号的波型及调制特性等也有着苛刻的规定。研究和开发具有更高性价比的信号发生器将是当前和今后一段时间内亟需解决的课题。这里旨在建立一种基于FPGA的简单数字信号发生器设计方法。若能充分利用FPGA[10]强大的数据运算处理能力以及编程灵活、运行速率快等优点,合理整合IP核资源和SoPC技术,简化设计结构,一定可以设计出功能多样、性能更加出色的信号发生器。
参考文献
[1]米明程.Xilinx数,f_系统现场集成技术[M].南京:东南大学出版社,2001.
[2]徐志军.大规模可编程逻科器件及共应用[M].成都:电于科技大学出版社,2000.
[3]王文华.基于DDS技术的任意波形发生器研究[D].浙江大学,2002.
[4]王道宪.CPLD/FPGA可编程逻辑器件应用与开发[M].北京:国防工业出版社,2004.
[5]潘松.电子设计自动化(EDA)技术及其应用(一)-(六)[J].电子与自动化,2000(01)-(06).
[6]张群逸.可编程逻辑器件的开发与设计[J].火控雷达技术,2002,31(09).
[7]苏红娟,傅桂荣.可编程逻辑器件布电路中的应用[M].低压电器,2002(06).
[8]徐志军,徐光辉.CPLD/FPGA的开发与应用[M].北京:电子工业出版社,2002.
[9]夏宇闻.复杂数字电路与系统的VERILOGHDL设计技术[M].北京:北京航空航天大学出版社,1998.
[10]张毅刚.单片机原理及应用[M].北京:高等教育出版社,2004.
下一篇:电子文件的归档管理初探