基于DDS的程控信号源的设计
2016-10-24昌吉学院计算机工程系冉兴萍
昌吉学院计算机工程系 冉兴萍 高 阳
基于DDS的程控信号源的设计
昌吉学院计算机工程系冉兴萍高阳
设计了以52单片机为主控制器,控制AD9850实现频率范围在100Hz~20MHz的正弦波和方波信号发生器。该系统利用键盘作为输入设备,LCD12864作为显示设备;具有频率可调、精度可达,稳定性好的特点可以广泛用于教学科研及各种电子测量场所。
52单片机;DDS;AD9850
0 引言
信号源是一种用途广泛的电子测量仪器,在现代科研、生产实践、教学试验以及各种电子测控场合需要高精度、频率可变的信号源。目前产生信号的方法有三种,第一种采用传统的直接频率合成技术直接产生所需要的波形。其实质是利用混频、滤波、分频及倍频等技术来实现[1]。但由于采用这些中间技术使得直接频率合成器需要用到的石英晶体较多,电路环路多,从而使得结构复杂,带内互调分量多容易产生杂散信号,合成的信号频谱纯度不高。第二种是采用锁相环路法,其特点是可产生频率较高的信号、宽带在一定范围内可调。但是锁相环是一个惰性环节,其锁定时间影响频率转换时间,而且其输出频率间隔与转换速率之间相互制约[2]。另外,由模拟方法合成的正弦波与方波的性能参数都很难控制,而且要实现100Hz~20MHz大范围的频率变化相当困难,不易实现。第三种是采用直接数字式频率合成(Direct Digital Frequency Synthesis,简称DDS)。由于DDS具有相对带宽很宽,频率转换时间短,频率分辨率高,全数字化结构便于集成等优点[3]。其突破了模拟合成法的原理,可以实现不同频率、相位的任意波形,并且各种参数均可通过编程实现。因此这种方法是设计信号源的首选方法,本文就是利用这种方法实现程控信号源的设计的。
1 系统总体设计
系统组成框图如图1所示,本系统的设计是基于直接数字频率合成技术,采用52系列单片机控制DDS芯片AD9850,通过键盘模块作为输入设备改变AD9850的频率控制字以产生频率可调的信号;同时利用LCD液晶模块作为输出设备显示输入信号的频率从而验证输出结果的正确性。
图1 系统组成框图
2 DDS理论分析与参数计算
2.1DDS的基本原理
直接数字频率合成(DDS)是一种数字技术利用相位概念直接合成波形[4]。DDS的原理框图如2所示,主要由相位累加器、加法器、波形储存器ROM、数模转换器(D/A)和低通滤波器(LPF)组成[5]。
图2 DDS的原理框图
其中相位累加器的字长为N,波形存储器ROM数据位及D/A转换器的字长为D。相位累加器在fc的控制下以步长K作累加,输出的N位二进制码与相位控制字P、波形控制字W相加后作为波形ROM的地址[6],从相应的ROM单元中输出D位的幅度码S(n)经D/A转换器变成阶梯波S(t),最后通过低通滤波器滤波后就得到合成的信号波形。文中所描述的是正弦波的合成。
2.2频率控制字计算
DDS输出合成信号频率fo与其输入的参考时钟频率fc成正比,设波形存储器ROM的地址为N位,频率控制字为K,则:
输出信号的频率分辨率为:
由奈奎斯特采样定理可知,DDS输出的最大频率为:
频率控制字可由以上公式推出:
当外部参考时钟频率为100MHz,输出频率需要为1MHz时,这样就可以利用以上公式计算出DDS的需要设定的控制频率字K=1× 232/100。
3 系统硬件设计
由于单片机具有性价比高、可靠性高、灵活性好并且具有易于人机对话和良好的数据处理能力[7]。综合考虑决定利用单片机AT89S52作为系统的主控核心。显示模块采用汉字图形液晶显示模块SMG12864ZK,与数码管相比的一个最大特点是显示内容丰富。考虑到系统用单片机I/O口线较多为了节省以便留为他用。按键模块采用矩阵式键盘,使用DDS芯片,输出的信号含有大量的杂散波,为使产生的信号平滑,需要对输出的信号进行滤波。设计的低通滤波器是采用5阶BUTTERWORTH模型。
3.1单片机与AD9850的接口
DDS芯片AD9850有串行和并行两种通信方式,为了充分发挥AD9850的高速特点,本系统利用并行接口实现单片机与AD9850的连接。具体接口电路如图3所示,单片机的P2.0~P2.7引脚连接AD9850的数据线引脚D0~D7,P1.0引脚连接频率更新引脚Fq_ud,P1.3引脚连接控制字输入时钟引脚Wclk。
图3 单片机与AD9850的接口
3.2键盘接口
利用AT89S52的P1口实现4*4矩阵键盘接口电路。包括数字键0~9,频率单位键、频率功能键等。具体电路如图4所示:
图4 键盘接口电路
3.3显示模块接口
显示模块接口利用单片机的P0口来实现,由于P0口作为输出口使用所以必须接上拉电阻;数据通信采用并行通信方式。
图5 显示模块接口电路
4 系统软件设计
本系统软件由主程序模块、信号产生模块、键盘模块及LCD显示模块构成。其中主程序模块是整个系统软件的核心。系统上电复位后,首先单片机调用初始化程序完成AD9850和LCD的初始化。然后单片机开始扫描键盘看有无键按下,若无键按下则继续循环扫描若有键按下则看按下的是数字键还是功能键。若先按下频率功能键和单位功能键则不执行表示有错误;若按下数字键则执行数字计算子程序然后按下单位键再按下频率键开始调用AD9850计算控制字和发送控制字子程序同时LCD调用显示函数显示所输入的频率值.最后返回初始状态循环扫描键盘,重复上述过程。软件流程图如图6所示。
图6 软件流程图
5 实现结果
该信号源能产生100Hz~20MHz的正弦波、方波,频率可通过键盘任意输入而且可在LCD上显示频率值从而验证产生波形的正确性。测试数据如表1所示:
表1 测试数据表
通过上表计算可得频率误差为:±1Hz,由此可见利用DDS技术设计实现的程控信号源可以产生所需要的信号波形,并且具有精确的频率。
[1]产新忠,郁略,杨静等.基于9850的可编程信号发生器的设计[J].计算机测量与控制,2006,14(9):1272-1274.
[2]任艳玲.基于AD9850的多功能信号源设计[J].电子科技,2015,28(6):179-182.
[3]林万荣.基于AD9850的DDS信号发生器系统设计与实现[J].中国有线电视,2015(11):1286-1290.
[4]赵杰英,王浩全.基于AD9850多功能信号源的设计与实现[J].山西电子技术,2014(1):45-47.
[5]王佳荣,崔炜,冯驰.基于DDS的高频率高精度信号发生器[J].吉林大学学报(信息科学版),2016(4):501-506.
[6]南楠,赵立新.基于FPGA的DDS信号源研究与设计[J].沈阳工程学院学报,2016,12(1):74-80.
[7]宋雁鹏.基于单片机和DDS的高频信号源的设计[J].电子世界,2015(13):131-133.