摘要:多波形信号发生器也称函数信号发生器是一种常见的电子应用仪器,一般使用硬件电路搭建。但是这种纯硬件的设备存在电路复杂,调控范围小,且波形质量差等缺点。随后发展起基于单片机控制的信号发生器。单片机控制信号发生器有在单片内置函数发生表,读取数据的,也有采用DDS芯片控制的。
关键词:信号发生器;DDS;单片机
中图分类号:TP346文献标识码:A文章编号:1009-3044(2011)29-7262-02
常用的波形信号如正弦波、锯齿波、三角波、方波是现代电子实验室不可缺少的信号源,如何可以得到纯净的、稳定的信号是衡量波形发生器的重要指标。
现代实验环境和科研领域如工业控制、生物医学、地壳震动建模等需要用到大量的低频信号源,而传统的硬件波形发生器在低频段难以完成任务,且精度不佳,为此基于单片机的信号发生器就应用而生。
1 几种常见的基于单片机的信号发生器方案
1) 利用函数信号发生器集成模拟芯片(如ICL8038,MAX038等),配合相应数目转化电路和运算电路产生信号。这种芯片可以同时产生正弦波、锯齿波、三角波、方波,但是会有高次谐波寄生且难以消除。
2) 采用非稳态多谐振荡器,使用各种积分电路构成所需要的波形信号。虽然信号稳定性较好但是频率改变需要进行硬件上的切换,使用上比较麻烦。
3) 使用单片机搭配数模转换器生成波形,次方案是基于软件的波形生成方式,几乎没有高次谐波,波形质量高。其特点是在低频段稳定性、精度高,同时体积小,功耗少。
4) 使用单片机配合DDS芯片构成信号发生单元。DDS(Direct Digital Synthesis)直接数字合成是新近发展起来的一种技术,采用单片集成的DDS芯片使用高精度参考时钟,经过相位累加器数字处理和D/A处理得到波形。由于采用了数字合频技术,因此分辨率高,频率切换迅速,相位输出连续。
2 集中常用发生器的设计
2.1 单片机和MAX038配合使用
图1为MAX的引脚图(文中使用到的引脚描述见图1中左表)。
1) 波形选择
通过A0/A1引脚控制,输出方式如表1所示。
2) 频率选择
通过第5、8、10引脚的电容、电压、电流来控制。
第5引脚、第10引脚可以确定基频大小,而第8引脚电压可细调频率。
电容选则可使用连续可调电容器也可以采用分立电容做分段使用,几种电容值与频率的关系如表2所示。
频率精度受电路中的其他电容以及原件引线产生的耦合电容影响,为了减少此作用,尽可能的减短器件引脚并且在PCB上引脚的位置设计尽可能大的接地平面。
电流选择可以在第1脚,第10脚之间加入电位器,电流范围10~400毫安。
电压控制在51系列单片机需要增加外围DAC电路,一些国产的单片机有内置的DAC,可根据实际情况选用。
从上面的设计就可以看的出此方案最简单,即便是加入频率显示和键盘也不用过多的做程序编写,键盘扫描程序和七段码程序有专用的模块可借用。
2.2 单片机配合数模转化器利用软件生成波形信号
常见的波形产生原理:
方波:方波的产生最简单,在时间之初产生一个初始值信号,此信号延续一段时间之后停止输出,在过一段时间继续重复上述过程就可以了。需要注意的是每次信号出现的时间要相等,而且停止时间也要相等,合理的分配输出与停止时间就可以实现频率的调节。而调节输出与停止的时间就是调节占空比。使用软件比较容易的实现这个功能,唯一的缺点就是单片机的频率要求足够的稳定,在软件的设计时可以简单的利用循环来设定时间。
锯齿波:锯齿波的产生要求先给出起始值和幅度,中间使用加法实现波形的生成。因为单片机的基础频率是定值,完成一步加法运算的指令周期也是常数,因此频率就由从起始值到幅值的加步多少来决定。波形的完整性与稳定性取决于单片机晶体振荡的稳定性,特别是在晶振的频率远远超出波形频率时,因为需要多步计算,每次小的一点误差将会引起很大的结果偏差。
三角波:三角波可以看成互为镜像的两个锯齿波,前一段的实现过程和锯齿波相同,区别在于当达到最大幅值时,再以相同的步骤和幅度进行减法运算,最终达到三角波的产生,和前面类似都受到晶振频率精度的影响。
正弦波:正弦波的产生要复杂些,在单片机内部没有直接的正弦函数指令,其输出是根据正弦函数表输出其值来实现的,现在通用的是8位精度256个数据。
波形的显示:
单片机P口输出为离散的数字量,通常是电压值,波形在呈现在人们面前一般应为连续的图形,因此在P口输出后要接入D/A转换器,D/A转换器的精度也会影响到波形的图案完整性,特别是锯齿波和三角波直线段的斜率。选择不当可能无法精确表现出完美的波形。
同时单片机得功率不大,输出电压也最大只有5V,电流为毫安级别无法直接驱动CRT或LCD显示器,需要使用放大器辅助。
信号的幅值调节由加载到D/A单元的参考电压确定,合理的调节参考电压就能实现幅值的调节。参考电压可以由单片机控制也可以使用独立的调节单元。
3 基于DDS的函数信号发生器
DDS直接数字频率合成器主要构成为:频率控制寄存器、高速相位累加器正弦计算器。DDS芯片的输出波形为正弦波,但是为数字量,需要D/A转换成模拟量,其他的波形利用积分电路得到。
实现原理如图2所示。
相位累加器由加法器和累加寄存器级联构成。每1个时钟脉冲,加法器将控制字与累加寄存器输出的累加相位数据相加,把相加后的结果送到累加寄存器的数据输入端,使加法器在下一个时钟脉冲的作用下继续与频率控制字相加。
波形存储器通过正弦幅值查询表得到正弦波数字分量,再经过D/A转换器,将数字量形式的波形模拟量。以常见的高通AD9833配合8051单片机为例进行分析,AD9833引脚如图3所示。
各引脚含义如表3。
AD9833主时钟频率25MHz,精度0.1Hz;主时钟1MHz,精度0.004Hz,内置正弦波、三角波、方波输出,无需外接元件,频率、相位均可使用软件进行编程。工作电压2.5V,28位高精度相位累加器,输出正弦波频率为:Fout=M(fmclk/228)。
频率的切换、波形的选择、相位的设置由单片机写入DDS控制寄存器中的控制字设定,幅值可由电位器控制放大器放大倍率实现。
硬件电路包含控制字写入模块、键盘输入控制模块、显示模块和单片机模块
控制字写入电路主要是将AD9833所需的初始化信息控制字输入控制寄存器中,使用串行传输方式进行数据传递。在数据传输时使能引脚FSYNC为低电平,经16个SCLK频率周期(控制字数据以16位方式加载)数据被送往移位寄存器,在时序设计时参考AD9833芯片资料手册,注意各引脚电平时序。
要引起注意的是在控制字写入结束后到波形的改变有7~8个主时钟延迟,同时为了避免DAC产生假输出,RESET必须设定为高电平。
键盘输入控制模块是人机交互的主要方式,实现频率设定、波形选择、传输命令等。如果功能简单可使用独立式键盘,设计和使用方便,但在功能复杂的仪器中由于占用I/O接口较多可以使用矩阵式键盘。和单片机的通信可以直接连接也可以使用专用的键盘控制芯片连接,这在动功能仪器上比较方便。
显示电路是用来输出波形图像和频率、幅值等参数的主要手段。频率显示可使用LED显示器,但是波形显示需要用到LCD显示,现在又许多专用的LCD模块使用,应用较为方便。
单片机系统在这里一般指最小应用,如才用AT89C51可以不适用外部数据和程序存储器,仅需要时钟电路和复位电路。时钟电路可使用外部震荡和内部震荡两种,复位操作仅需要在RST引脚加载超过两个时钟周期的高电平。
参考文献:
[1] 求是科技. 单片机典型模块设计实例导航[M]. 北京:人民邮电出版社,2004.
[2] 孙育才,孙华芳,王荣兴. 单片机原理及应用[M]. 北京:电子工业出版社,2003.
[3] 孙群,宋卿. 基于DDS技术的便携式波形信号发生器[J]. 工矿自动化,2005(4).
[4] 刘国良,廖力清,施进平. AD9833型高精度可编程波形发生器及其应用[J]. 国外电子器件,2006(6).
[5] 何江海. 基于DDS的正弦信号发生器的设计[J]. 财富与科学,2010(2).