原创 DDS信号发生器的设计与实现

2008-7-9 09:03 6112 9 22 分类: 测试测量

写在前面



      
    这几天看
blog上的文章,发现很多人在搞DDS信号发生器,不禁想起我几年前的一个作品——基于DDS技术的信号网络化信号发生器。该信号发生器可以连入以太网络,在客户端通过操作软件可以产生各种波形:三种标准波形和任意波形。下面我对这个东东的设计与实现做详细介绍。



网络化DDS信号发生器



      
    下图就是本文即将讲述的网络化
DDS信号发生器。标准6~9V供电电压,外部接口采用以太网络或者串口,单通道信号输出。具体技术指标如下表所示:
180d0f91-32c2-4263-8de2-dc6eb3c1820a.gif


网络化DDS信号发生器技术指标




序号



功能/指标描述



1



具有以太网接口和串行接口两种接口方式,总线接口自动识别。



2



+9V/1A桌面供电电源



3



嵌入式TCP/IP协议栈,包括TCPIPARPICMPUDP等协议,具有远程控制能力



4



标准波形产生:包括正弦波、方波、三角波



5



任意波形产生:通过以太网接口或者串行接口产生任意波形



6



Chirp信号等特殊波形产生



7



输出频率范围:0.01Hz-6MHz



8



输出电压峰峰值:±5V



9



偏置调节范围:±10V



10



内嵌动态网页,可以通过浏览器对设备进行操作



11



应用软件通过Socket对设备操作




 



      对于这个东西,我一直觉得很有特点的地方在于嵌入了Web,通过浏览器对其进行控制,当时实现这个功能乐了我好长时间。下面show一下我的测控界面,另外还做了一个基于Labview的测控软件。
点击看大图

点击看大图


网络化DDS信号发生器设计原理



     
    
网络化DDS的信号发生器实现框图如下:
85ede331-a000-4766-8743-5d4045104d4c.JPG


    其核心控制单元为52单片机,一方面用于和网络控制模块或者串行口进行数据通信,接收命令;另一方面解析执行命令,控制DDS模块以及模拟通道的电压幅度控制。



 



       网络控制模块是自行研制的,该模块就是一个基于MCU,内置TCP/IP协议栈的通信模块。该模块的实物如下所示:
4f50a47b-8190-470c-96d6-95785f0f70b9.JPG


    网络控制模块采用了winbond的单片机,该单片机具有较大的程序存储空间,MAC+PHY采用了常用的RTL8019,其具有10Mbps的通信速率,在工控领域也算满足要求了。该芯片是老款的以太网控制器,所以采用ISA的外围通信接口,简单易用。网络控制模块外扩了比较通用的接口,可以与其他处理器容易接口。所以该模块可以看成一个芯片进行使用。



 



       核心部分的DDS模块是自行设计的,没有采用当时市面上通用的DDS芯片。整个DDS的核心部分是在CPLD上实现的,采用了EPM7128DDS的实现框图如下所示:
点击看大图


        DDS内核有一个相位累加器,其根据频率控制字进行相位累加,输出一个寻址地址,该地址又和相位控制字相加,形成最终对RAM寻址的一个地址。这个RAM中存储了事先放置的波形表。所以通过控制频率控制字,就可以改变RAM的寻址步长,循环扫描波形表,抽样输出波形表中样点,就可以输出用户所需频率的波形了。所以,DDS的最核心就是加法器。



 



       抽样扫描波形表之后输出量化之后的数字信号,所以需要通过DAC进行D/A转换。此处DAC采用了TI公司的DAC902,该芯片具有165Msps的转换率,12bit的转换精度。DAC902是电流输出型,所以需要外加采样电阻,通过OPA467进行I-V转换,得到具有一定阶梯性质的输出波形。但由于后继的运放具有低通滤波的作用,所以对DAC的输出进行了一定程度的平滑。



 



       输出信号的幅度调节电路通过一个串行DAC完成。该DAC采用了TIDAC7513DAC7513的输出作为DAC902的转换参考电压,从而达到输出信号幅度控制的目的。我认为在一般应用中这种方案是可行的,但是在有很高精度以及大动态输出范围的应用中,这种方案是不可取的,DAC7513本身只有12的精度,作为DAC902的参考电压,需要足够的稳定和纯净,在输出小信号时,这一点很难保证。



 



       信号输出的最后一级是偏置电路,该级电路由一个加法电路完成,加法器的一端为一个配置DAC输出的配置电压,另一端为输出信号。通过加法器之后的信号直接输出,如果用户需要功率需求,那后继再加功率放大等等。最后几级的运放都采用了+/-12的供电方式,所以系统采用了一个5v+/-12vDC-DC变换器。该DC-DC选用了MaximMAX743,由于整套系统运行起来还是比较耗电的,整体功耗在500mA以上,所以MAX743的电感如果选择不好,那么带载能力极弱。



 



在本设计中,另一个比较有意思的地方是波形表的动态产生。正因为波形表能够根据用户需求动态产生,所以才可以采用RAM介质进行存储。基于这样的思想,本设计可以产生任意波形。最终实现在Labview平台上用鼠标随意画一个函数曲线,然后通过网络DDS信号发生模块就可以产生这样的波形。




测试波形



      
    设计实现之后,
DDS信号发生器进行了测试。如下两幅是产生762.9Hz时的时域和频域波形。从图中可以看出还是比较干净的,背景噪声很小。但是随着时间的增长,背景噪声会加大,这主要原因在于热噪声加大了。CPLD等器件工作在50MHz的时钟频率下发烫。所以该用FPGA或者低功耗的MAXII(那个时候还没有)会好很多。
c23b725f-2843-4795-89c6-6e1dd7b93575.JPG
7dd7d1cc-c3cf-46c3-8c10-e793439b90a5.JPG


DDS设计体会



    从原理上理解,DDS是比较简单的,通过抽样扫描波形表就可以了。为了达到抽样扫描的目的,设计了相位累加器。为了控制波形的初始相位,增加了相位加法器。DDS的输出频率分辨率由扫描频率和波形表的长度相关,如果扫描频率越高或者波形表越长,那么频率分辨率越高,但是,上述条件很难实现。所以很多设计中为了提高分辨率,通常进行相位截断,相位累加器采用40位,这样波形表需要2^40B空间,频率分辨率能够达到fs/2^40,在实际寻址波形表时进行截断,例如只用15位去寻址,截断了25位,实际存储数据的空间只需要32KB,这在一定程度上提高了频率分辨率。但是,相位截断有一个比较严重的问题,那就是频谱杂散。频谱杂散会导致在不需要的频点产生高能量谱信号,在相位截断的情况下,频谱杂散可以避免,但是需要满足k mod 2^B == 0,式中,k为频率控制字,B为截断长度。当上式满足时,频谱杂散的问题就解决了,但是很显然,频率不能以截断前的频率精度进行递增。



       有什么关于DDS方面的问题,可以一起讨论,我的邮箱:tl_wzj@yahoo.com.cn







文章评论13条评论)

登录后参与讨论

用户388819 2011-10-9 15:25

信噪比是OK的,请问是否有商品化。可否将交流通过电邮方式进行。如可以,请发往qx.23661@163.com 谢谢!

用户411565 2011-10-9 09:42

50~60dB是没有问题的,不同频率,信噪比有所不同

用户388819 2011-10-8 21:57

不知信噪比可以做到多少

用户411565 2011-10-8 21:27

to qin.xue, 这个指标是可以达到的,不知道你对信号噪声有没有要求?我估计是做音频应用,频率比较低,容易满足。

用户388819 2011-10-8 19:01

我需要的是可以程控频率、幅值的DDS电路板板(含TDA2040功放),放入PC机内的。 频率范围0.1-200kHz正弦波; 电源:+/-5VDC; 通讯接口:USB或RS232 请问是否可以满足

用户411565 2011-10-8 18:07

to qin.xue,DDS做过很多优化,不知道您有什么需求吗?

用户388819 2011-10-8 15:45

tiloog:DDS幅值调节电路现在完善了吗,DDS部分有无商品化。

zengxiang11111_844991846 2009-9-28 11:07

tiloog说的对,好的产品更在乎性能!

用户209396 2009-8-20 22:05

tiloog 说的不错

用户227123 2009-7-13 10:05

倾力打造专业、全面、权威 的毕业设计,拥有实力强大的开发团队(来自计算机、通信、电子机械)诚信经营,专业加信誉筑就品质!另卖成品及资料,远程演示,先看货,满意后再谈,价格优惠,支持淘宝 ! 我是楼主,需要论文,可以直接与我联系!!! 客户服务QQ:1043223087 邮箱:1043223087@163.com
相关推荐阅读
用户411565 2012-12-18 12:58
我的存储之道博客
大家好,最近一直在做存储方面的工作,所以我在51CTO上专门开辟了一个空间讨论存储相关的问题,喜欢存储的朋友可以可以访问我的存储博客: 存储之道 (http://alanwu.blog.51cto...
用户411565 2012-04-06 21:39
SAS Cable可以有多长?
SAS接口是高端硬盘的主流接口,是存储系统的理想选择。我们知道高速信号的传输距离和传输线相关的,那么SAS作为外部通信接口,其Cable线具体可以有多长呢? 我在网上找到上图所示的眼图测...
用户411565 2012-04-06 21:38
对TRIM SCSI命令的一些分析
前一段时间做了一些对SSD方面进行优化的工作,SSD最大的问题在于长时间使用之后,IO性能会急剧下降。其主要问题在于为了防止“写放大”问题的产生,SSD的firmware采用了类似于log方式的算...
用户411565 2012-04-06 21:35
惊叹!我们的跨洋网络
  每次地质自然灾害的时候,总会伴随着网络的问题,这是由于我们的越洋光纤网络出了故障,受到自然力的破坏而导致断裂。越洋光纤,听起来的确是件非常不可思议的事情,工程量非常的巨大,但正是如此伟大的...
用户411565 2012-04-06 21:33
科学仪器网络模型
科学仪器概述     科学仪器发展趋势 科学是从测量开始的,科学仪器是信息技术的源头,是信息产业的重要组成部分,是现代科学与工业的基石。科学仪器产业的发展关系到国家科学研究实力、生...
用户411565 2012-04-06 21:16
谈谈RAID产品与技术
说起RAID,学计算机的同学马上会说RAID技术简单啊,就是将数据条带化,然后计算一些冗余数据,一并写入磁盘。通过RAID技术一方面提高系统的IO性能;另一方面提高系统的可靠性。单纯从RAID的原...
我要评论
13
9
关闭 站长推荐上一条 /2 下一条