新闻中心

EEPW首页 > 模拟技术 > 设计应用 > 基于FPGA和DDS技术的正弦信号发生器设计

基于FPGA和DDS技术的正弦信号发生器设计

作者:时间:2010-07-13来源:网络收藏


2 系统结构设计及实现
2.1 系统结构图

系统结构图如图2所示。

本文引用地址:http://www.eepw.com.cn/article/187877.htm


2.2 单元电路
2.2.1 单片机控制模块实现方式

单片机实现部分主要处理数据输入及数据显示,此模块以AT89S51为中心,控制键盘输入和LED显示,其中键盘输入值作为频率控制字送给处理。单片机的P1口直接与键盘连接,无键按下时为高电平,当有键按下时就变为低电平。可以设计键1为“0”值键、键2为“1”值键,满足频率控制字以二进制进行输入;键3为输入确定键;键4和键5为频率步进控制键,键4为加100 Hz键,键5为减100 Hz键,当键3按下时将输入设置的频率控制字以二进制数形式送至P2口,然后通过串行口输出并驱动LED静态显示。PO.O和PO.1及PO.2控制数据输出的先后顺序。此模块功能具体实现可通过汇编语言编程后下载到单片机调试并实现,限于篇幅,具体程序不在此展现,只展示设计思路。
2.2.2 处理模块
(1)处理模块控制原理
FPGA处理模块是本系统的核心,系统结构图中FPGA模块里的基本结构图如图3所示。


图3中工作原理为:相位累加器由32位加法器与32位累加寄存器级联构成。在时钟脉冲,fc的控制下,加法器将频率控制字M与累加寄存器输出的累加相位数据相加,把相加后的结果送到累加寄存器的数据输入端,以使加法器在下一个时钟脉冲的作用下继续与频率控制字相加。这样,相位累加器在时钟作用下,不断对频率控制字进行线性相位累加。由此可以看出,相位累加器在每一个时钟输入时,把频率控制字累加一次,相位累加器输出的数据就是合成信号的相位。
采用改变寻址的步长来改变输出信号的频率,步长即为对数字波形查表的相位增量,由累加器对相位增量进行累加,累加器的值作为查表地址,这样就可把存储在波形存储器内的波形抽样值(二进制编码)经查找表查出,完成相位到幅值转换,波形存储器的输出送到D/A转换器,D/A转换器将数字量形式的波形幅值转换成所要求合成频率的模拟量形式信号。低通滤波器用于滤除不需要的取样分量,以便输出频谱纯净的正弦波信号。
(2)FPGA处理模块实现方式
根据设计要求:要达到正弦波输出频率范围(1 kHz~10 MHz)及频率步进值100 Hz,设相位累加器的位宽为2N,sin表的大小为2P,累加器的高P位用于寻址Sin表。根据DDS工作原理,主频时钟Clock的频率为,fc=100 MHz,累加器按步进为1进行累加直至溢出一遍的频率即为频率步进值。

以M点为步长(M为频率控制字),产生信号的频率:

由于频率步进值为100 Hz,由式(1)可计算得N=20。要使输出频率达到10 MHz,由式(2)可计算得M=104 857,为了使输出的波形尽可能不失真,频率控制字位宽取17位,高三位添000,由于设计加法器为32位,则低12位添000000000000。本系统中使用的D/A转换器件的输入位宽为10,所以只取相位累加器输出的高10位可满足设计要求。整个过程的实现过程中,本系统选用Altera公司的Cyclone系列芯片,采用VHDL语言描述,利用开发软件QuartusⅡ进行综合,以实现产生l kHz~10 MHz频率范围内的各种正弦信号。



评论


相关推荐

技术专区

关闭