基于DDS芯片AD9850的全数控函数信号发生器的设计与实现
摘要:采用直接频率信号合成器(DDS)与单片机相结合的方法,以AD9850为频率合成器,以AT89S52单片机为进程控制和任务调度的核心,设计了一个信号频率和幅度都能预置、频率稳定度优于10-6的函数信号发生器。
本文详细介绍了DDS基本原理,系统方案构成、硬件电路设计和软件设计。
通过严格的实测数据分析表明该设计是成功的。
关键词:DDS, 单片机,A/D转换,数字控制
Key words: DDS, MCU, A/D transmission, digital control
信号源作为一种基本电子设备在教学、科研、电子产品测量与调试、部队设备技术保障等领域,都有着广泛的使用。
随着科学技术的发展和测量技术的进步,对信号源的要求越来越高,普通的信号发生器已无法满足目前日益发展的电子技术领域教学、科研和企业生产调试的需要。
DDS技术是一种新兴的直接数字频率合成技术,具有频率分辨率极高、频率切换速度快、切换相位连续、输出信号相位噪声低、可编程、全数字化易于集成、体积小、重量轻等优点,在雷达及通信等领域有着广泛的应用前景。
1.系统设计方案
本文提出一种采用DDS作为信号发生核心器件的全数控函数信号发生器设计方案,根据输出信号波形类型可设置、输出信号幅度和频率可数控预置、输出频率宽等要求,选用美国A/D公司的AD9850芯片,通过单片机程序控制和处理AD9850的32位频率控制字,经放大后加至以数字电位器为核心的数字衰减网络,最终实现了信号幅度、信号频率、信号类型、信号输出等选项的全数字控制。
全数控函数信号发生器的结构如图1所示。
图1 全数控函数信号发生器结构框图
本系统主要由单片机、DDS直接频率信号合成器、数字衰减电路、真有效值转换模块、A/D转换模块、数字积分选择电路等部分组成。
2.DDS基本原理
直接数字频率合成器(Derect Digital Synthesizer)是从相位概念出发直接合成所需波形的一种频率合成技术。
一个直接数字频率合成器由相位累加器、加法器、波形存储ROM、D/A转换器和低通滤波器(LPF)组成。
DDS的组成结构如图2所示。
图2 DDS的组成结构
其中K 为频率控制字(也叫相位增量),P 为相位控制字,W 为波形控制字,fc 为参考时钟频率,N 为相位累加器的字长,D 为ROM 数据位及D/A 转换器的字长。
相位累加器在时钟fc 的控制下以步长K 作累加,输出的N 位二进制码与相位控制字P 、波形控制字W 相加后作为波形ROM 的地址,对波形ROM 进行寻址,波形ROM 输出D 位的幅度码S (n )经D/A 转换器变成阶梯波S (t ),再经过低通滤波器平滑后就可以得到合成的信号波形。
合成的信号波形取决于波形ROM 中存放的幅度码,因此用DDS 可以合成任意波形。
DDS 方程为:输出频率N fc k
fout 2=,其中c f 为时钟频率。
当K=1时,DDS 输出最低频率(即频率分辨率)为N fc 2
,而DDS 的最大输出频率由Nyquist 采样定理决定,即当K 取最大值(12-N )时,最大输出频率为2
fc ,因此,只要N 足够大,DDS 就可以得到很细的频率间隔。
要改变DDS 的输出频率,只要改变频率控制字K 即可。
以AD9850为例,输出频率的一般表达公式为:322fc k
fout =。
式中k 为32位的二进制值,可写成:00113030313122...22A A A A k ++++= ,其中A31,A30,…,A1,A0。
对应于32
位码值(0或1)。
可见,改变频率控制字K 即可改变输出频率fout 。
3.硬件电路设计
3.1 DDS 信号产生电路
考虑到DDS 具有频率分辨率较高、频率切换速度快、切换相位连续、输出信号相位噪声低、可编程、全数字化、易于集成、体积小、重量轻等优点,该方案选用美国A/D 公司的AD9850芯片,并采用单片机为核心控制器件对DDS 输送频率控制字,使DDS 输出相应频率和类型的信号,如图3所示。
图3 DDS 信号产生电路
单片机与AD9850 的接口既可采用并行方式,也可采用串行方式,但为了充分发挥芯片的高速性能和节约单片机资源,本设计选择并行方式将AT89S52的P0口经74HC373锁存器扩展后接至DDS 的并行输入控制端(D0~D7)。
AD9850外接120MHZ 的有源晶振,产生的正弦波信号经低通滤波器(LPF )去掉高频谐波后即可得到波形良好的模拟信号。
将D/A 转换
器的输出信号经低通滤波后接到AD9850内部的高速比较器上即可直接输出一个抖动很小的方波。
将方波信号进一步加至积分电路后即可得到三角波信号。
另外,还可以通过键盘编辑任意波形的输出信号。
3.2 键盘输入接口及LCD接口电路
数字输入设置电路采用2*8矩阵键盘,又由于LCD有显示内容多,电路结构简单,占用单片机资源少等优点,本系统采用RT1602C型LCD液晶显示屏显示信号的类型、频率的大小、和正弦波的峰-峰值,如图4所示。
图4 键盘输入接口及LCD接口电路
同样考虑到AT89S52单片机IO引脚资源有限,本系统的键盘输入及LCD输出均通过74HC245连接到AT89S52单片机的P0端口,从而实现的端口扩展和复用。
3.3 信号幅度数控预置电路。
为了实现对输出的正弦模拟信号幅度的数字控制和预置,本系统采用了AD811高速运放、数字电位器衰减、真有效值转换、以及A/D转换等电路,如图5所示。
图5 信号幅度数控预置电路
数字电位器X9C102是实现信号幅度数字可调的关键器件。
真有效值转换模块AD637主责实现信号的TRMS/DC转换,经TLC2453模数转换后向单片机输送能直接正比于正弦波信号幅度大小信息的数字量,以便单片机输出合适的幅值控制指令。
3.4 积分电容自动切换控制电路。
三角波也是常用信号之一,本系统采用RC积分电路将方波信号转换成三角波信号。
但考虑信号频率很宽,低频达到1HZ以下,高频达60MHZ以上,为了完成不同频段时的线性积分,需要不同大小的积分电容(10PF、100PF、1nF、10nF、100nF、1uF、10uF、100uF)。
又由于数控和自动切换的需要,本系统采用CD4051八选一电路,如图6所示。
图6 积分电容自动切换控制电路
CD4051八选一电路的控制信号来源于A T89S52单片机的P0~P3接口,74HC373P也是考虑复用P0端口而设置的。
AD9850输出的方波经积分电路转换为三角波,然后经AD811高速运放即可提高负载能力。
4.系统软件设计
4.1 主程序
主程序主要控制整个系统的运行,包括系统的初始化程序、显示子程序、运算子程序、键盘扫描子程序、频率控制子程序、幅度控制子程序等。
本系统的主程序流程如图6所示:
图6 主程序流程图
初始化后,系统设定为默认的工作状态,通过扫描键盘判断是否有按键按下来确定用户须执行的任务,然后判断23H.4、20H.1、20H.0各功能标志位确定应执行的功能。
当23H.4=1时计算频率值系统工作在频率计方式下;当20H.1=1时检测峰峰值系统检测输出信号的峰峰
值;当20H.0=1时更新LCD显示内容,执行完后返回键盘扫描程序以此循环。
以上的各功能标志位由键盘程序、峰峰值检测程序、定时程序等控制实现了本系统的各种功能。
4.2 键盘扫描子程序
键盘扫描子程序流程如图7所示。
图7键盘扫描子程序流程图
因按键较多,因此采用2*8行列式键盘节约I/O口,程序把8根列线全部拉低再判断2根行线是否有低电平,如果没有说明没有按键按下则退出键盘扫描程序,否则依次拉低列线依次判断行线是否有低电平实现判断键号,键号确定后转到键号相对应的功能程序去执行。
键盘主要方便用户设置频率、幅度、选择工作方式等功能。
4.3 信号频率数字预置子程序
信号频率的数字控制程序流程图如图8所示:
图8 信号频率数字预置程序流程
该部分程序完成键盘输入值转换成十六进制,然后产生相应的频率控制字送至DDS芯片,改变DDS的相位增量,最终输出相应频率的信号。
5.结论
通过严格的实验测试,本系统采用DDS实现了输出信号类型可选择设置、信号频率数字预置、信号幅度数字步进可调等功能,是一款输出信号频率覆盖宽(0.023Hz~40MHz)、信号源分辨率高、波形失真小、全数控型函数信号发生器。
具有一定的实用开发价值。
参考文献:
1、高吉祥,《全国大学生电子设计竞赛培训系列教程》,北京电子工业出版社,2007
2、周航慈,《单片机应用程序设计技术》,北京航空航天大学出版社,2003
3、刘文涛,《单片机应用开发实例》,清华大学出版社,2005。