基于FPGA的DDS波形发生器的设计

2010-06-08 07:08景,李
淮阴工学院学报 2010年3期
关键词:累加器正弦波原理图

李 景,李 慧

(淮阴工学院电子与电气工程学院,江苏淮安 223003)

0 引言

波形发生器是一种常用的信号源,广泛用于科学研究、生产实践和教学实践等领域。如设计和测试、汽车制造、生物医药、传感器仿真、制造模型等。目前,波形发生器大多由振荡器、放大器、衰减器、指示器和调制器组成。这种传统设计方法硬件连线复杂,可靠性较差。而硬件描述语言VHDL和可编程器件的广泛应用打破了硬件和软件的屏障。基于VHDL语言,以EDA技术作为开发手段来设计波形发生器得到广泛应用。本设计正是运用DDS技术的一种基于FPGA的DDS波形信号发生器的设计,并用硬件描述语言VHDL编程实现系统的软件部分设计,用Delphi语言来设计系统的PC机界面部分,在实验箱上采用DDS实现正弦波、三角波、锯齿波等波形的产生。

1 DDS设计原理

1.1 DDS 基本结构

DDS[1]基本原理是建立在采样定理的基础上,它首先对需要产生的信号波形进行采样和量化,然后存入存储器作为待产生信号波形的数据表。输出信号波形时,电路在一个高稳定时钟信号的控制下从数据表中依次读出信号波形的数据,产生数字化的信号,这个信号再通过DAC转换成所需的模拟信号波形。低通滤波器使输出信号的频谱纯净。它主要由标准参考频率源、相位累加器、波形存储器、数模转换器、低通平滑滤波器构成。

1.2 DDS 工作原理

DDS技术的核心是相位累加器,每到来一个时钟信号,相位累加器的输出就增加一个步长的相位增加量,相位增加量的大小由频率控制字来确定。频率控制字(FSW)实际上是相位增量值(二进制编码),作为相位累加器的累加值。频率控制字K在每一个时钟周期与相位累加器累加一次,得到的相位值被送到ROM中对其进行查表,ROM的输出送到D/A转换器,D/A转换器将数字量形式的波形幅值转换成所要求合成频率的模拟量形式信号。低通滤波器用于滤除不需要的取样分量,以便输出频谱纯净的各种信号。

当频率合成器正常工作时,在标准频率参考源的控制下(频率控制字决定了相应的相位增量),相位累加器则不断地对该相位增量进行线性累加,当相位累加器积满量时就会产生一次溢出,从而完成一个周期性的动作,这个动作周期即是DDS合成信号的一个频率周期。

如果相位累加器的位数为N,频率控制字内的相位增量为K,参考时钟频率为fC,则DDS系统输出信号的频率fO为:

输出信号的频率分辨率△fO为:

因此,当输入所需频率时,经转换成频率控制字去驱动FPGA工作,从而产生所需波形的频率。

2 系统软件设计

2.1 总体结构介绍

DDS波形信号发生器主要由四个部分组成。

(1)PC机控制部分;

(2)存取数据和直接数字频率合成部分;

(3)DAC进行D/A转换部分;

(4)LPF滤波器部分。

如图1所示,直接数字频率合成部分是整个系统的核心部分,产生的数字信号通过芯片内部集成的D/A转换器变成模拟波形,再通过低通滤波器平滑后产生所需要的各种信号。

图1 系统总体设计结构原理图

2.2 PC 机部分

2.2.1 界面设计部分

PC控制部分主要是使用高级语言Delphi编程实现,设计界面如图2所示。

图2 PC机控制界面

2.2.2 子程序设计

系统采用串行通信控件TCOMM。首先对串行口进行初始化,“确定”键按下后,对波形以及频率进行编码,组合为一个字节数据(高4位表示波形,低4位表示频率),通过串行口进行发送。程序设计如下:

2.3 FPGA部分软件设计

2.3.1 总体设计原理

系统FPGA部分的原理图如图3所示。

图3 系统FPGA部分原理图

2.3.2 相位累加模块设计

本部分主要完成相位的累加功能,设计程序如下:

2.3.3 寄存器模块设计

本部分主要完成地址以及数据的锁存,以6位地址锁存为例,设计程序如下:

2.3.4 波形选择模块设计

本部分采用典型的CASE语句[2]进行译码,程序设计如下:

2.3.5 串行通信模块接收部分设计

串行通信的实质就是通过串行口在波特率发生器的作用下逐位接收数据,然后转化为并行数据输出。核心部分设计程序如下:

2.3.6 系统仿真

以正弦波为例,我们对波形进行了系统仿真,输出为正弦波仿真波形如图4所示。从图中可以看出,输出数据的变化规律为稳定的正弦规律。

图4 正弦波仿真图

3 结束语

通过实际的现场调试,实现了基于FPGA的DDS波形发生器的功能,信号输出稳定,控制精度高,控制界面人性化,具有很强的实用价值。

[1]张玉兴.DDS高稳高纯频谱频率源技术[J].系统工程与电子技术,1997(12):24-28.

[2]陈科.基于DDS+PLL技术频率合成器的设计与实现[J].国外电子测量技术,2010(4):44-47.

[3]潘松.EDA技术实用教程[M].北京:科学出版社,2005.

[4]蒋小燕.EDA技术及VHDL[M].南京:东南大学出版社,2008.

[5]罗朝霞,高书莉.CPLD/FPGA设计及应用[M].北京:人民邮电出版社,2007.

[6]范逸之,陈立元.Delphi与 RS-232串行通信控制[M].北京:清华大学出版社,2002.

猜你喜欢
累加器正弦波原理图
密码累加器研究进展及应用
单相正弦波变频电源设计与实现
浅谈STM32核心板原理图设计
电路原理图自动布图系统的设计与实现
基于Protel DXP 2004层次原理图的设计
采用BC5016S的纯正弦波逆变器设计及制作
Fpga的信号发生器设计原理
基于霍夫变换的工位点识别算法设计与实现
用于时间延迟积分型图像传感器的流水采样列级运放共享累加器*
基于嵌入式技术的电网同步正弦波发生装置研究