APP下载

基于FPGA的多功能DDS信号发生器

2021-10-23冯星为

新型工业化 2021年8期
关键词:累加器幅度按键

冯星为

(南京理工大学理学院,江苏 南京 210094)

0 引言

信号发生器是一种能提供不同频率和波形信号的机器设备,广泛应用于科研、医疗、通信、遥控遥测及现代仪器工业领域[1]。随着半导体产业的快速发展,电子设备的相关要求也在不断提高,往往需要信号发生器提供准确、稳定的激励信号。传统的信号发生器虽然能够输出结构较简单、频率较宽的信号,但是其输出的波形频率不够稳定、精度不够高而且比较单一[2]。而直接数字频率合成技术(DDS)作为一种新型频率合成方法,具备分辨率高、稳定性强、复杂度低等优点[3],广泛应用于当前信号发生器的设计中。现场可编程门阵列(FPGA)具有快速可靠、可重构、可编程等优点,为实现DDS技术提供了更好的载体。本文主要介绍了一种基于FPGA芯片的DDS信号发生器的设计方案,并在Quartus Prime平台实现,最终连接示波器进行实验测试。测试结果表明,该系统能可靠地生成多种频率且幅度可调的波形信号,并能快速地在各种信号之间进行切换,具有很好的实用价值。

1 DDS的基本原理

DDS是一种以奈奎斯特采样定理为理论基础的数字化直接频率合成技术。整个DDS系统的结构如图1所示,主要包括时钟源、相位累加器、波形ROM以及D/A数模转换器。

图1 DDS结构原理图

其中相位累加器是整个DDS系统的核心器件,由一个N位的加法器和一个N位的寄存器共同构成,每当时钟脉冲信号到达上升沿时,加法器就将频率控制字与寄存器输出的相位数据相加,再把结果输送至寄存器的输入端,以使加法器在下一个时钟脉冲信号的作用下继续与频率控制字相加[4]。于是相位累加器就这样在时钟信号的作用下,不断地对频率控制字进行相位累加,产生ROM的相位采样地址。波形ROM里存储了每个采样相位所对应的数字幅值数据,于是经查表找出,把相位转化为所需信号波形的数字幅度序列。D/A数模转换器将波形ROM输出的正弦幅值序列转化为对应的电平,从而将数字信号转换成模拟信号。

2 信号发生器整体设计方案

2.1 系统总体设计

DDS系统的总体设计框图如图2所示,整个系统采用模块化设计理念,主要包括顶层模块、DDS模块、控制模块和D/A模块。

图2 系统结构设计图

本设计中,FPGA芯片作为系统核心控制单元,是实现DDS算法的载体。基于Intel公司的Quartus Prime平台,采用Cyclone IV系列的EP4CE10F17C芯片,通过FPGA芯片输出所需波形数据,然后经过DAC芯片转换成模拟波形,并通过按键来实现波形的切换、调频、调幅、复位多项功能。

2.2 模块部分设计

(1)DDS模块设计。在本设计中,DDS模块包含了相位累加器和ROM查找表,模块中例化了四个存有波形数据的ROM,其中的mif文件通过MATLAB软件编写,然后调用Quartus Prime内的IP核进行读取。为了合理控制ROM的内存容量,这里采用相位截断法,直接截取32位累加器输出结果的高12位来作为ROM的查询地址[5]。相位累加器在时钟信号下产生采样地址,通过查找表,读出ROM中的数据输送给D/A模块,并且输出数据可通过波形控制字、频率控制字、幅度控制字进行调节。该模块的端口功能描述如表1所示,由PLL倍频得到DDS模块的时钟,工作频率为125MHz。

表1 DDS模块端口功能描述

(2)控制模块设计。在本设计中,控制模块分为三个子模块,在系统时钟、复位、键盘信号的作用下,分别将波形控制字、频率控制字、幅度控制字数据输送至DDS模块。该模块的端口功能描述见表2。当键盘输入信号Key0为1时,波形控制模块开始选择波形控制字Wave_c,DDS模块根据不同的Wave_c值来调用不同的波形ROM。频率控制模块设置了16种不同的频率控制字,通过键盘输入信号Key1切换频率控制字Fword,这里通过计算得到不同输出频率波形的Fword值为:

表2 控制模块端口功能描述

其中Fout为波形输出频率,Fclk为输入时钟频率。幅度控制模块设置了5种不同的幅度控制字,通过键盘输入信号Key2可以改变幅度控制字Amplitude,通过与DDS模块查表得到的数值相乘可以改变波形的幅度。

上述控制模块均需要按键输入,则必须要引入按键消抖模块,该模块检测到按键输入变化时,每隔20ms将输入采样给输出,从而滤除抖动。

(3)D/A模块.为了保证准确的数据处理结果,数模转换器必须具备良好的转换精度和转换速度。本设计中的D/A模块采用美国ANALOG DEVICES公司的AD9767芯片,该芯片是一款高性能高速双通道DAC芯片,转换精度高达14位,转换速率最高可到125MHz,输出差分电流。

该模块的设计采用直流耦合方式,输出电流值由对应的并行端口来控制。由于本系统所需的是电压信号,因此采用两级运算放大电路将AD9767芯片的输出电流转换为相应的电压,这里第一级完成转换与放大工作,第二级将第一级得到的电压放大到指定范围内,并通过滑动变阻器调节具体信号的放大倍数。

3 系统测试

对设计的系统进行硬件平台实现,结果显示通过,该系统的综合结果资源利用量见表3。本文采用TDS3032B示波器对设计的信号发生器进行实验测试,并连接以太网把图像数据存储到电脑里。

表3 综合结果资源利用

3.1 波形切换的测试结果

通过按键得到四种波形,如图3所示。开发板上电后默认输出正弦波,每按一次键波形切换一次。按下复位键后,复位信号转换为低电平,示波器上不显示任何波形信号。只有当复位信号为高电平时,才可通过按键改变波形。观察示波器显示波形可知,该DDS信号发生器能够正确地输出正弦波、三角波、锯齿波和方波波形信号。

图3 示波器显示的不同波形

3.2 频率、幅度调整的测试结果

这里对默认输出的正弦波信号进行调整,得到不同工作频率和幅度的正弦波,测试后的结果如图4所示。通过按键调整可以测得在频率为1Hz~20MHz、幅度为0.2V~3.2V的范围内,该系统能够较好地输出波形信号。

图4 不同频率与幅度的正弦波

4 结语

本系统基于FPGA开发平台,采用DDS技术,配合数模转换AD9767芯片,完成了多功能信号发生器的设计。测试结果验证该设计方案准确有效。利用FPGA的可重构特征以及ROM的可编程特性,通过改变ROM中的存储波形数据,可以实现任意信号发生器[6-7]。系统通过设置不同的频率控制字和幅度控制字,提供参数可调的模拟波形信号,具有一定的实用价值。

猜你喜欢

累加器幅度按键
密码累加器研究进展及应用
单次止损幅度对组合盈亏的影响
基于有限状态机的按键检测程序设计
微波超宽带高速数控幅度调节器研制
Fpga的信号发生器设计原理
基于ANSYS的四连杆臂架系统全幅度应力分析
基于霍夫变换的工位点识别算法设计与实现
一种多方向导光按键结构设计
用于时间延迟积分型图像传感器的流水采样列级运放共享累加器*
2014年中期预增(降)幅度最大的50家上市公司