打印
[资料分享]

基于DDS的高精度任意波形发生器设计

[复制链接]
1095|23
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Roses|  楼主 | 2019-6-8 11:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
基于DDS的高精度任意波形发生器设计

摘要:系统利用直接数字频率合成技术(DDS)完成任意波形发生器设计,以FPGA作为核心控制器件,用Flash和RAM作为波形数据存储模块,在上位机软件的控制下,利用高精度D/A转换器,实现正弦波、方波、三角波、锯齿波、高斯白噪声等任意波形输出。系统可广泛用于通讯、遥控遥测、震动激励和仪器仪表等领域。

随着数字信号处理技术的飞速发展,高精度大动态范围D/A转换器的出现和广泛应用,基于取样技术和计算技术,通过数字方法生成频率和相位相对固定且可调的合成技术,即直接数字频率合成(DDS)技术日益成熟,它采用全数字化结构,具有频率分辨率高、相对带宽宽、频率转换速度快、相位噪声低、信号纯度高等优点。因此,本系统采用DDS技术来完成任意波形发生器设计。


1 DDS工作原理

直接数字频率合成(DDS)技术是一种以采样定理为基础的全数字化波形产生方法。DDS频率合成器主要由相位累加器、波形数据存储器、D/A转换器和低通滤波器组成,其原理框图如图1所示。在一个系统时钟周期内,相位累加器将前一次的累加值与频率控制字相加,得到新的累加值,将新的累加值作为地址,从波形数据存储器中读取信号的幅度值,送入D/A转换器将数字信号转换为模拟信号,最后再经低通滤波器生成需要波形。其中波形数据存储器中存储了周期信号单个周期的幅度值,相位累加器每溢出1次,可从波形数据存储器中读取1个周期的信号幅度值。因此,若假设频率控制字为K,相位累加器为N位,则经过个系统时钟周期,可产生1个周期的输出信号,再设系统时钟频率为fsclk,则输出信号频率。


2 系统总体框图

系统总体框图如图2所示。其中,上位机软件由LabWindows软件编写,用于控制信号的产生,下位机以FPGA作为核心控制器件,主要用于接收上位机发送的控制命令和信号参数,并控制下位机系统产生对应波形。下位机系统主要分为FPGA控制单元、波形存储单元、波形产生单元。波形存储单元主要包括Flash和SRAM,Flash用于存储各种波形数据,波形产生时,FPGA先将要产生的波形数据从Flash读入SRAM,再利用相位累加器的累加值从SRAM中读取波形数据。波形产生单元主要完成波形数据的产生,首先将SRAM读出的波形幅度数据送入D/A转换器,产生信号的阶梯序列波,再通过低通滤波器和功率放大电路产生输出信号。


3 系统硬件设计

3.1 Flash连接电路图

Flash采用S29AL032D,其容量为32 MB,它用于存储各种波形的幅度信息,其存储形式如图4所示。

由图4可知,地址区间0x000000~0x01FFFF存储正弦波幅度值,地址区间0x020000~0x03FFFF存储三角波数据,地址区间0x040000~0x05FFFF存储锯齿波数据,地址区间0x060000~0x07FFFF存储白噪声数据,地址区间0x080000~0x0FFFFF为4个用户自定义区,存储4种用户需产生的周期波形数据。

3.2 RAM连接电路图

RAM采用IS61LV25616AL-10T,其容量为256×103×16 bit,主要用于存储上位机发送的控制命令及波形产生时信号的幅度值,其存储形式如图6所示。

地址区间Ox00000~0x1FFFF存储上位机发送给下位机的控制命令和数据参数,地址区间Ox20000~Ox2FFFF存储系统要产生信号的波形幅度值。

3.3 信号产生电路连接图

图7为任意信号产生的电路连接图,产生信号频率范围为50 Hz~200 kHz。其中,AD768为16位高精度D/A转换器,其最大更新速率可达40Msps,满足设计要求。


4 系统软件设计

4.1 上位机软件设计

上位机部分由Labwindows软件编写,主要负责对下位机系统的控制,包括对信号频率、幅度、相位(占空比)的设置,信号波形的选择,用户自定义波形数据的输入等,其控制面板如图8所示。

4.2 FPGA软件设计

FPGA为系统的核心控制单元,负责与上位机软件通信及控制下位机系统产生任意波形。

4.2.1 与上位机通信模块设计

上位机与下位机的通信是通过RS232来实现的,FPGA主要用于接收RS232发送过来的数据并将其存入外部RAM中,通信模块如图9所示。

RS232_Controller模块用于接收上位机发送过来的数据,RS232的速率为115.200 kB/s,8位数据位,1位停止位,无校验位。data_bu-ffer将RS232_Controller接收的数据缓存,并按接收先后顺序组合成16位数据后送入RamWrite。RamWrite再将这些16位数据从地址0x00000开始存入外部RAM中。

4.2.2 接收数据处理模块

本模块主要用于分析和处理接收到的上位机数据,从中提取出信号的数据信息、各项参数及控制命令,如图10所示。

当RS232发送数据完成时,接收数据处理模块立即从地址0x00000开始读取RAM中的数据。当第1个数据和第2个数据分别为16'hAAF0和16' hBB55时,则第3个数据的高8位为命令控制字,否则接收数据处理模块停止读取RAM中的数据。8位命令控制字各位所代表含义如下

用A代表命令控制字,A[n]代表命令控制字的第n位数据,则:

当A[15]为1时表示存储用户自定义波形数据,为0时表示任意波形的产生。当为波形存储时,A[14:8]为0表示将波形数据存入用户自定义1区,为1表示存入2区,为3表示存入3区,为4表示存入4区。从读取的第4个数据开始即为用户自定义波形数据,共65 536个,再以16'h65 80和16'h0856作为结尾,其存储形式如图12所示。

当为任意波形产生时,A[14:11]为0表示产生正弦波;为2表示产生方波;为3表示产生三角波;为4表示产生锯齿波;为5表示产生高斯白噪声;为6表示产生用户自定义1区波形;为7表示产生用户自定义2区波形;为8表示产生用户自定义3区波形;为9表示产生用户自定义4区波形。从RAM中读取的4个16位数据分别代表要产生波形的频率(32位)、幅度、相位(方波时为占空比)控制字。其数据存储形式如图13所示。

4.3 Flash数据存取模块设计

此模块用于波形数据的存储和读取。在信号产生模式时,它根据Sig_Type[3:0]输入的数据判断需产生的波形,再从Flash中读取对应波形的数据信息并存入RAM中。当Sig_Type[3:0]为1时表示产生正弦波;为2时表示产生方波;为3时表示产生三角波;为4时表示产生锯齿波;为5时表示产生高斯白噪声;为6时表示产生用户自定义l区波形;为7时表示产生用户自定义2区波形;为8时表示产生用户自定义3区波形;为9时表示产生用户自定义4区波形。

4.4 波形产生控制模块

模块利用DDS技术控制AD768产生任意波形信号,如图15所示。

fre_ctrl,amp_ctrl,phase_ctrl分别为波形的频率控制字、幅度控制字和相位控制字。clk为此模块的控制时钟,它的6分频时钟为32位相位累加器时钟。在一个相位累加器时钟周期内,模块以累加器的高16位累加值、相位控制字及18'h20000之和作为RAM地址,从RAM中读取波形信号的数据,设此数据为data,则D/A输出的数据为,然后再在clk_da的上升沿将此数据送入AD768,依次循环,则AD768的输出将产生阶梯状的信号波形,再经过低通滤波器和功率放大器即可得要产生的波形,图16为系统产生的5V、200kHz正弦信号。


5 结束语

完成了任意波形发生器的设计,完成了系统硬件路的设计及软件编程,经测试,系统可产生50Hz~200kHz频带内的正弦波、方波、锯齿波、三角波、高斯白噪声等常用信号,该信号发生器具有频率分辨率高,频率转换速度快、信号纯度高、产生信号种类多等优点。可广泛应用于通信系统、自动控制系统、仪器仪表、电子对抗及遥控遥测等领域。



使用特权

评论回复

相关帖子

沙发
Roses|  楼主 | 2019-6-8 11:20 | 只看该作者
基于DDS的高精度任意波形发生器设计

文档1.pdf

358.92 KB

使用特权

评论回复
板凳
htmlme| | 2019-6-8 21:57 | 只看该作者
正弦波形一个周期离散样点的幅值数字量存于ROM(或RAM)中,按一定的地址间隔(相位增量)读出,由D/A转换成模拟正弦信号  

使用特权

评论回复
地板
pklong| | 2019-6-8 21:58 | 只看该作者
AD公司DDS芯片选型   

使用特权

评论回复
5
touser| | 2019-6-8 21:58 | 只看该作者
请问DDS专用芯片与基于FPGA的DDS的区别是什么?  

使用特权

评论回复
6
myiclife| | 2019-6-8 21:58 | 只看该作者
谢谢楼主分享资料了。   

使用特权

评论回复
7
uytyu| | 2019-6-8 21:59 | 只看该作者
简易DDS信号               

使用特权

评论回复
8
iyoum| | 2019-6-8 21:59 | 只看该作者
直接数字频率合成技术(DDS)这个比较好。        

使用特权

评论回复
9
jkl21| | 2019-6-8 22:00 | 只看该作者
DDS是直接数字式频率合成器是一项关键的数字化技术  

使用特权

评论回复
10
wwppd| | 2019-6-8 22:00 | 只看该作者
低相位噪声、高分辨率、快速频率转换      

使用特权

评论回复
11
maqianqu| | 2019-6-8 22:01 | 只看该作者
AD811构成电压同相放大电路  

使用特权

评论回复
12
dspmana| | 2019-6-8 22:01 | 只看该作者
最快能够到多少呢?     

使用特权

评论回复
13
jkl21| | 2019-6-8 22:01 | 只看该作者
DDS具有低成本、低功耗、高分辨率和快速转换时间等优点  

使用特权

评论回复
14
htmlme| | 2019-6-8 22:01 | 只看该作者
国外开源DDS很多。      

使用特权

评论回复
15
iyoum| | 2019-6-8 22:01 | 只看该作者
FPGA作为核心精度可靠。      

使用特权

评论回复
16
pklong| | 2019-6-8 22:01 | 只看该作者
FPGA的精度不是很高吧  

使用特权

评论回复
17
uytyu| | 2019-6-8 22:01 | 只看该作者
以FPGA为基础的DDS控制电路

使用特权

评论回复
18
touser| | 2019-6-8 22:01 | 只看该作者
希望能推荐一款相噪和杂散性能好的芯片  

使用特权

评论回复
19
myiclife| | 2019-6-8 22:01 | 只看该作者
利用高精度D/A转换器可行。   

使用特权

评论回复
20
dspmana| | 2019-6-8 22:02 | 只看该作者
设计的精度怎样  

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

709

主题

1023

帖子

7

粉丝