文档库 最新最全的文档下载
当前位置:文档库 › 基于FPGA的DDS信号发生器的简单实现[1]

基于FPGA的DDS信号发生器的简单实现[1]

基于FPGA的DDS信号发生器的简单实现[1]
基于FPGA的DDS信号发生器的简单实现[1]

沿海企业与科技

COASTALENTERPRISESANDSCIENCE&TECHNOLOGY

2007年第12期(总第91期)

NO.12,2007(CumulativelyNO.91)

基于FPGA的DDS信号发生器的简单实现

谢立锋

[摘

要]

文章介绍利用现场可编程逻辑门阵列FPGA实现直接数字频率合成(DDS)的原理,以及以DDS为核心的

信号发生器。探讨DDS技术在FPGA中的实现方法,提出采用ALTERA公司的FLEX系列FPGA芯片FLEX10K进行直接数字频率合成的VHDL源程序。

[关键词]直接数字频率合成(DDS);现场可编程逻辑器件(FPGA);硬件描述语言(VHDL)[作者简介]

谢立锋,宁波大学信息学院电气工程及自动化专业,浙江

宁波,315211

[中图分类号]TP33

[文献标识码]A

[文章编号]1007-7723(2007)12-0053-0003

前言

随着数字技术在仪表和通信系统中的广泛应用,一种从参考频率源生成多种频率的数字控制方法应运而生,这种技术就是DDS(即直接数字合成)。DDS技术是一种从相位概念出发直接合成所需波形的一种新的全数字频率合成技术。目前,各大芯片制造厂商都相继推出采用先进CMOS工艺生产的高性能、多功能DDS芯片,为电路设计者提供了多种选择。然而在某些场合,专用DDS芯片在控制方式、置频速率等方面与系统的实际要求存在很大差距,这时可以采用高性能FPGA来设计符合具体需要的DDS电路。

一、频率合成的方法比较

1.

直接模拟合成法。

直接模拟合成法利用倍频(乘法)、分频(除法)、混频(加法与减法)及滤波,从单一或几个参数频率中产生多个所需的频率。该方法频率转换时间快(小于100ns),但是体积大、功耗大。

2.锁相环合成法。

锁相环合成法通过锁相环完成频率的加、减、乘、除运算。该方法结构简化、便于集成,且频谱纯度高,目前使用比较广泛,但存在高分辨率和快转换速度之间的矛盾,一般只能

用于大步进频率合成技术中。

3.DDS(直接数字合成)。DDS(直接数字合成)是近年来迅速发展起来的一种新的频率合成方法。这种方法简单可靠、控制方便,且具有很高的频率分辨率和转换速度,非常适合快速跳频通信的要求。

二、方案比较

方案一:采用传统的硬件电路组合实现,可靠性差、系统庞大、灵活性小、线路复杂、调试安装都不方便,且扩展功能困难,不宜在短时间内完成。

方案二:采用89C51单片机为核心实现,单片机处理速度使DDS的频率范围非常有限,加上单片机本身端口较少,对于一个外部频率选择键盘输入、ROM地址查表输出以及LED数码管显示的系统来说,端口资源变得非常紧张。

方案三:采用FPGA/CPLD作为控制器,利用其丰富的I/O资源,并行处理数据。

具有高密度、高速度、多功能、低功耗、设计灵活方便、可无限次反复编程等特点,由FPGA/CPLD完成信号的产生、频率控制、LED显示等。该方案的系统方框图如图

1所示,其优点在于系统结构紧凑,可以实现复杂

的测量与控制。

53

三、DDS工作原理

DDS系统的核心是相位累加器,它由一个累

加器和一个N位相位寄存器组成。每来一个时钟脉冲fr,相位寄存器以步长M增加。相位寄存器的

输出与相位控制字相加,其结果作为正

(余)弦查找表地址。当相位累加器累加满量程,就会产生一次溢出,完成一个周期性的动作,这个周期就合成信号的一个周期,累加器的溢出频率也就是DDS的合成信号频率。在原理框图中,正(余)弦查找表由ROM构成,内部存有一个完整周期正(余)弦波的数字幅度信息,每个查找表的地址对应正(余)弦波幅度信号,同时输出到数模转换器(DAC)输入端,DAC输出的模拟信号经过低通滤波器(LPF),可以得到一个频谱纯净的正(余)弦波。

DDS的输出频率f0、

参考时钟频率fr、相位累加器长度N以及频率控制字K之间的关系为:

f0=K×fr/2N

DDS的频率分频率为

:Δf0=fr/2N

由于DDS的最大输出频率受奈斯特抽样定理

限制,所以fmax=fr/2。

四、系统设计

1.累计器模块

由于累加器的位数与输出波形的最低频率,波形的采样点数有关,并且跟晶振一起决定最高频率的大小以及最高频率时的采样点数。故在条件允许的情况下位数越多越好,晶振也是越快越好。

2.数据存储模块

数据存储模块主要存的是正弦波的采样点,因为三角波、锯齿波可以由累加器产生的数据变换一下直接产生,而方波、矩形波可以由锯齿波跟一数值比较得到。正弦波是中心对称波形,而半周期又是轴对称图形,故只要存储1/4周期波形即可。如果条件允许,为程序简单也可存储整一个周期波形。由于FPGA的运算处理能力不是很出色,为程序简单稳定,本设计中采用了存储整一个周

期波形的方法。

3.LED显示模块

LED显示模块主要是完成频率控制字的显

示,由于本次实验采用八位的由键盘输入的频率控制字,累计寻址,读取8位地址长度256点的一个周期波形的数字幅度信息,所以频率控制字控制着频率的大小,而恰好此时的频率控制字就是系统输出波形的频率,所以,LED显示的也是波形的频率。此模块主要的功能是将外部键盘的8位二进制数转换成三位BCD码。

BIN码与BCD码转换的思想是采取与4比较大于加3左移乘2的倍乘调整思想。倍乘调整逻辑电路如图2所示,由比较器、多路选择器、4位二进制加法器构成。BCD码X与[4]10相比较,如大于[4]10则与[0011]2相加,否则与[0000]2相加。由

于BCD码最大值为

[1001]2,与[0011]2相加不会向高位进位,因此倍乘调整逻辑之间没有组间的进位传播,相互独立。

该模块最初是采用ROM查表法实现,由于只有8位,256点,相对还不是十分复杂,而且十分稳定,可靠性高。但对于大于8位的地址长度,写

ROM表将是十分复杂的工作,而且系统的ROM资

源也有限。

查找资料发现采用倍乘调整思想的方法,此方法具体有二:一是基于原理图硬件搭建,如图2,详情见邬杨波《一种BIN码与BCD码转换电路的设计与实现》文;另一种就是采用自己编程的语言实现倍乘调整思想的方法。本设计采用了后者。如图

3:

54

4.各模块合成的DDS系统

各模块合成的DDS系统见图4:

五、系统测试结果系统测试结果见表1:

六、结论

DDS信号发生器的核心部分是直接数字频率合成(DDS)。直接数字频率合成是一个开环系统,无任何反馈环节,其频率转换时间主要由频率控制字状态改变所需的时间及各电路的延时时间所决定,转换时间很短。DDS输出频率的分辨率和频点数随机位累加器的位数的增长而呈指数增长。分辨率高达μHz。DDS在改变频率时只需改变频率控制字(即累加器累加步长),而不需改变原有的累加值,故改变频率时相位是连续的。DDS的相位噪声主要取决于参考源的相位噪声,控制容易、稳定可靠。用DDS可以很好地实现变频、跳频系

统。

通过设计,可以加强运用FPGA设计数字系统的能力,熟练Maxplux2软件的使用,提高VHDL语言的编程能力。

[参考文献]

[1]潘松,黄继业.EDA技术实用教程(第一版)[M].北京:科学出版社,2002.

[2]童诗白.模拟电子技术(第三版)[M].北京:高等教育出版社,2001.

[3]邬杨波,胡建平,李宏.一种BIN码与BCD码转换电路的设计与实现信息技术[Z].2005,08.

表1

55

相关文档