基于FPGA的DDS信号发生器设计图文Word格式文档下载.docx
《基于FPGA的DDS信号发生器设计图文Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于FPGA的DDS信号发生器设计图文Word格式文档下载.docx(16页珍藏版)》请在冰豆网上搜索。
4系统功能及原理。
(系统组成框图、电路原理图)○
5各模块的功能,原理,器件选择○
6结果分析○
7设计小结○
8附录---参考文献○
2012年9月1日
摘要
波形发生器己成为现代测试领域应用最为广泛的通用仪器之一,代表了波
形发生器的发展方向。
随着科技的发展,对波形发生器各方面的要求越来越高。
近年来,直接数字频率合成器(DDS)由于其具有频率分辨率高、频率变换速度快、相位可连续变化等特点,在数字通信系统中已被广泛采用而成为现代频率合成技术中的佼佼者。
本次设计的是多功能信号发生器,它能够产生方波,三角波,锯齿波和正弦波四种基本波形。
结合DDS技术,通过对FPGA的编程实现产生多种波,本电路是通过键盘扫描判断,进入相应的功能程序,然后实现频率调节,波形转换,幅度控制的。
本次设计中我负责的是波形输出模块,通过调节要输出方波,三角波,锯齿波和正弦波四种基本波形。
关键字:
波形发生器,直接数字频率合成器,现场可编程门阵列
ABSTRACT
Waveformgeneratorhasbecomeoneofthemostpopularinstrumentsinamoderntestingfield,representingthedevelopmentdirectionofwaveformgenerator.Withthedevelopmentofscienceandtechnology,thewaveformgeneratorforvariousaspectsofincreasinglyhighdemand.Inrecentyears,directdigitalfrequencysynthesizer(DDSsinceithashighfrequencyresolution,frequencyconversionspeed,phasecanbechangedcontinuouslywaitforacharacteristic,inadigitalcommunicationsystemhasbeenwidelyusedandbecometheleaderinthemodernsynthesistechnology.
Thisdesignisamultifunctionalsignalgenerator,whichcanproducesquarewave,trianglewave,sawtoothwaveandsinewavefourbasicwaveforms.CombinedwiththetechnologyofDDS,throughtheFPGAprogrammingtogeneratemultiplewaves,thiscircuitisthroughthekeyboardscan,theentrycorrespondingtothefunctionoftheprocedure,andthenrealizingfrequencymodulation,awaveformconversion,amplitudecontrol.
Keywords:
Waveformgenerator,DDS,FPGA
1.方案选择与方案论证
数据输入:
方案一:
4x4矩阵键盘
优点:
由8个I\O口检测16个按键,可以大大节省I\O口资源。
缺点:
控制时序较复杂,增加编程和调试的难度。
方案二:
独立按键
控制时序较简单,较易于编程与调试。
比较浪费I\O口资源。
方案三:
拨码开关
控制时序简单,易于编程和调试。
通过比较各种因素,我选择方案一,
波形输出:
存储波形数据的ROM/RAM+DAC0832优点:
1.可以显示复杂波形
2.可以有效控制输出波形的频率,幅度及相位3.节省FPGA内部的逻辑资源4.可以简单的切换波形
5.使波形输出方式单一化,降低了编程难度缺点:
要消耗一定的ROM/RAM资源
方案二:
存储波形数据的ROM/RAM+分频器输出矩形波+DAC0832优点:
2.可以有效控制输出波形的频率,幅度及相位3.节省FPGA内部的逻辑资源4.可以较简单的切换波形
缺点:
矩形波的频率,幅度和相位的调节需要另设相位累加电路,消耗一定的逻辑资源
方案三:
case语句+分频器输出矩形波+DAC0832优点:
在数据传输的反应速度上,在所需速度很快时占优势缺点:
1.大量浪费FPGA内部的逻辑资源
2.波形数据较大时,会给代码的调试和维护带来不便。
方案四:
存储波形数据的ROM/RAM+分频器输出矩形波+计数器输出锯齿波和三角波+DAC0832优点:
2.可以有效控制输出波形的频率,幅度及相位
每种波形都需要另设相位累加电路来控制其频率,相位和幅度,消耗较多的逻辑资源
方案五:
case语句+分频器输出矩形波+计数器输出锯齿波和三角波+DAC0832。
在数据传输的反应速度上,在所需速度很快时占优势。
1.大量浪费FPGA内部的逻辑资源。
为了减小设计周期,减小编程难度,便于后期的调试工作,而且能方便的对幅度和频率进行调节,我选择方案一。
综上几种方案,我们组采用了数据输入的方案一,4x4矩阵键盘,由8个I\O口检测16个按键,可以大大节省I\O口资源。
波形输出的方案二,存储波形数据的ROM/RAM+分频器输出矩形波+DAC0832可以显示复杂波形,有效控制输出波形的频率,幅度及相位,容易达到我们需要的效果,可以较简单的切换波形,而且节省了FPGA内部的逻辑资源。
2.系统功能与原理
2.1DDS的基本原理
DDS技术是一种把一系列数字量形式的信号通过DAC转换成模拟量形式的信号的合成技术,它是将输出波形的一个完整的周期、幅度值都顺序地存放在波形存储器中,通过控制相位增量产生频率、相位可控制的波形。
DDS电路一般包括基准时钟、相位增量寄存器、相位累加器、波形存储器、D/A转换器和低通滤波器(LPF)等模块,如图1.1所示。
相位增量寄存器寄存频率控制数据,相位累加器完成相位累加的功能,波形
存储器存储波形数据的单周期幅值数据,D/A转换器将数字量形式的波形幅值数据转化为所要求合成频率的模拟量形式信号,低通滤波器滤除谐波分量。
整个系统在统一的时钟下工作,从而保证所合成信号的精确。
每来一个时钟脉冲,相位增量寄存器频率控制数据与累加寄存器的累加相位数据相加,把相加后的结果送至累加寄存器的数据输出端。
这样,相位累加器在参考时钟的作用下,进行线性相位累加,当相位累加器累加满量时就会产生一次溢出,完成一个周期性的动作,这个周期就是DDS合成信号的一个频率周期,累加器的溢出频率就是DDS输出的信号频率。
相位累加器输出的数据的高位地址作为波形存储器的地址,从而进行相位到幅值的转换,即可在给定的时间上确定输出的波形幅值。
波形输出
图1DDS原理图
波形存储器产生的所需波形的幅值的数字数据通过D/A转换器转换成模拟信号,经过低通滤波器滤除不需要的分量以便输出频谱纯净的所需信号。
信号发生器的输出频率fo可表示为:
f0=M.∆f=M.fs2
N
(1.1
式中fs为系统时钟,∆f为系统分辨率,N为相位累加器位数,M为相位累加器
的增量。
参数确定及误差分析.2.2参数确定
首先确定系统的分辨率∆f,最高频率
fmax
,及最高频率fmax下的最少采样
点数Nmin根据需要产生的最高频率fmax以及该频率下的最少采样点数Nmin,由公式
fs≥fmax.Nmin
(1.2
确定系统时钟fs的下限值。
同时又要满足分辨率计算公式
fs2
=∆f
(1.3
综合考虑决定fs的值。
选定了fs的值后,则由公式(1.3可得2=
fs
∆f,据此可确定相位累加器
位数N。
然后由最高输出频率
fo=∆f⋅M
S
(1.4
推出M=2,得出相位增量寄存器为S位。
确定波形存储器的地址位数W,本系统中决定寄存2个数据值,因此RAM地
Z
址为Z位。
一般选用FPGA/CPLD器件作为DDS的实现器件,对于D/A转换器的选择,首先要考虑到D/A转换器的转换速率。
要实现所需的频率,D/A的转换速度要大于
fmax.Nmin
,然后根据D/A转换器字长所带来的误差,决定D/A的位数。
由此选
择D/A转换器的型号。
3.硬件电路设计
3.1分频器、
信号发生器产生、控制和显示的总体结构图如图所示
图2总体结构图
外部输入一个50MHZ的时钟频率,经过频率控制单元控制其频率在要求的范围内,由4选1数据选择器实现对输出波形的选择,再通过D/A转换模块,将数字信号转换成模拟信号在示波器上显示出来。
3.2总体原理图
基于VHDL语言设计一个简易多功能信号发生器,通过选入输入信号,可以输出正弦波、三角波、方波和锯齿波四种波形信号。
信号发生器的控制模块可以用数据选择器实现,四种信号的信号选择可以用4选1数据选择器实现。
同时本设计使用原理图的方法,对正弦波、三角波、方波和锯齿波和4选1数据选择器元件进行调用。
简易多功能信号发生器的原理图如下:
图3总体原理图
3.3DDS的FPGA实现
相位累加器与相位寄存器的设计
相位累加器与相位寄存器主要完成累加,实现输出波形频率可调功能。
利用QuartusII可编程逻辑器件系统开发工具进行设计。
首先,打开QuartusII软件,新建一个工程管理文件,然后在此工程管理文件中新建一个VerilogHDL源程序文件,并用硬件描述语言VerilogHDL编写程序实现其功能。
在设计过程中,可在一个模块中描述。
4.D/A转换电路
图4D/A转换电路
数据转换器输出的数据是数字形式的电压值,为实现数字电压值与模拟电压值之间的转换,系统还专门设计D/A转换电路,其D/A转换电路原理图如图3所示。
4.软件设计
4.1VHDL程序设计
系统软件的主要任务是:
将送入的频率,相位差控制字,控制输出波形种类进处理得到三种不同的波形,频率和相位差。
首先是对DDS子程序进行设计,利用类属语句对输入频率字,相位字,累加器,正弦ROM表的地址位宽和数据进行说明,软件的主要任务是在累加器中按输入的频率字进行循环累加,将截断的数据与输入的相位字进行累加。
4.2总程序流程设计图
图5总程序流程图
4.3子程序流程图
图6子程序流程图
5.结果分析:
5.1波形仿真
图7正弦波仿真图
图8方波仿真图
图9三角波仿真图
5.2.输出波形:
正弦波三角波
矩形波
6.设计小结:
本次设计以直接数字频率合成技术(DDS为基础的波形信号发生器工作原理和设计过程,并在FPGA实验平台上设计实现了满足各功能指标的信号发生器。
系统硬件除需外加滤波整形电路外,其余部分均可在FPGA开发实验系统KH-310上集成开发,系统软件可在Quartus下编写代码,实现数据信息处理和控制操作等功能。
整体开发环境成熟,应用工具齐全,随着FPGA性价比的不断提高,基于FPGA平台开发信号发生器将逐步走向标准化、规模化和产品化。
在这次课程设计中,我的工作主要是相位累加器的底层模块的代码编写和调试和ROM定制,负责波形输出模块,能够完成顺利的完成对波形类型的输出,如:
三角波、方波、正弦波。
虽然在设计过程中遇到很多困难,不过在老师和同学的帮助得到了解决,通过这次设计也使我的动手能力得到加强,学会发现问题并通过查阅资料,与同学讨论请教老师,来解决问题。
总之,我在这次设计实践中受益匪浅,积累了经验。
参考文献:
【1】姜雪松、张海风,可编程逻辑器件和EDA设计技术,北京:
机械工业出版社,2004【2】潘松,黄继业主编,EDA技术实用教程【J】,科学出版社2002:
321—346.
【3】彭文标,黄悦华.基于DDS技术的信号源设计与实现[J].微计算机信息,2007(20):
271-272.
RP3
U2
LCDVCC
JP1
PN86
信号发生器原理图
附录2:
信号发生器PCB图
moduleROM_READ(CLK50M,F,MOD,V,ROM_DATA;
inputCLK50M;
//clocksource50Mhz--20nsinput[15:
0]F;
//1~1,000,000Hzinput[1:
0]MOD;
//tri,sin,01input[7:
0]V;
//voltage0~50outputreg[7:
0]ROM_DATA;
wireDIV_CLK;
wire[15:
0]DIVP;
wire[0:
7]tri_data;
wire[0:
7]sin_data;
7]toc_data;
7]mtx_data;
reg[6:
0]address;
assignDIVP=50000000/(256*F;
DivClkrom_clk(CLK50M,DIVP,DIV_CLK;
TAGtri_rom(address,CLK50M,tri_data;
SINsin_rom(address,CLK50M,sin_data;
TOCtoc_rom(address,CLK50M,toc_data;
MTXmtx_rom(address,CLK50M,mtx_data;
always@(posedgeDIV_CLKbeginif(address<
=7'
b1111110address<
=address+1;
else
address<
h00;
end
always@(posedgeDIV_CLKbegin//根据选取方案不同,删除对应语句case(MOD
2'
b00:
ROM_DATA<
=(tri_data*V/50;
//三角波2'
b01:
=(sin_data*V/50;
//正弦波2'
b10:
=(toc_data*V/50;
//锯齿波2'
b11:
=(mtx_data*V/50;
//矩形波endcaseendendmodule