李翔宇
(同济大学中德学院英飞凌实验室,上海 200092)
现代的信号发生器是一种多功能多波形的信号源。它可以产生正弦波、方波、三角波、锯齿波,甚至任意波形,另外,高端的信号发生器还可以产生平稳的白噪声波和特种波。目前,国内信号发生器的实现方法有多种,最常用的方法是使用含有专门的函数信号发生器IC,如L8038、BA205、XR2207/2209等,它们的功能较少,精度不高,频率上限只有300 kHz,无法产生更高频率的信号,调节方式也不够灵活。还有一种是利用单片集成芯片的函数发生器:如ICMAX038,它克服了频率低的缺点,可以达到更高的技术指标,因而被大多数工程师所喜爱。文章所介绍的,是一种可以达到更高频率,并且产生波形更加稳定的一种方案,即单片机+DDS的解决方案。
2.1.1 人机界面
128×64像素宽屏蓝色液晶显示,对比度可任意调节;开机QQ企鹅欢迎界面及公司信息界面,全中文操作菜单;4按键全功能控制,按键声音提示;电源手动开关和电源指示灯,即开即用;全数字化波形类型及参数设置,单路自动切换波形输出。
2.1.2 常用波形发生——正弦波、方波
正弦波、方波是控制系统设计和实验中常用的波形,这两种波形最重要的两项指标是波的频率和幅值,通过单片机产生的正弦波、方波的最大幅值为5 V,最大频率根据单片机的主频率确定。本多功能信号发生器要求波形信号幅值3.3 V~5 V,信号频率步进调节1 Hz,最高频率10 MHz,波形失真率3%以内。
2.1.3 工业检测用波形发生——白噪声波
白噪声是指功率谱密度在整个频域内均匀分布的噪声。所有频率具有相同能量的随机噪声称为白噪声。从人们耳朵的频率响应听起来它是非常明亮的“咝”声(每高一个八度,频率就升高1倍。因此,高频率区的能量也显著增强)。由于现实中产生的波形带宽不可能为无限宽,所以本设计只要求设计产生限带白噪声,带宽在300 MHz左右,波形失真度在3%以内。
2.2.1 系统整体结构设计
在确定了各个部分模块的功能后,系统的整体结构图也就形成了,见图1。
图1 多功能信号发生器整体系统框图
直接数字式频率合成器DDS(Direct Digital Synthesizer),实际上是一种分频器:通过编程频率控制字来分频系统时钟(SYSTEM CLOCK)以产生所需要的频率。DDS有两个突出的特点,一方面,DDS工作在数字域,一旦更新频率控制字,输出的频率就相应改变,其跳频速率高;另一方面,由于频率控制字的宽度宽(48 bit或者更高),频率分辨率高。
DDS基本原理:DDS的基本原理是利用采样定理,通过查表法产生波形。DDS的内部结构图主要分为3部分:相位累加器、相位幅度转换、数模转换器(DAC)。
3.1.1 相位累加器
一个正弦波,虽然它的幅度不是线性的,但是它的相位却是线性增加的。DDS正是利用了这一特点来产生正弦信号。根据DDS的频率控制字的位数N,把360°平均分成了2^n等份。假设系统时钟为Fc,输出频率为Fout,每来1个时钟脉冲,加法器将控制字M与累加寄存器输出的累加相位数据相加,把相加后的结果送到累加寄存器的数据输入端,使加法器在下一个时钟脉冲的作用下继续与频率控制字相加。相位累加器在时钟作用下,不断对频率控制字进行线性相位累加。可以得到如下等式:
化简后可得输出频率:
3.1.2 相位幅度查询
通过相位累加器,已经得到了合成Fout频率所对应的相位信息,然后相位幅度转换器把0°~360°的相位转换成相应相位的幅度值。比如当DDS选择为2Vp-p的输出时,45°对应的幅度值为0.707 V,这个数值以二进制的形式被送入DAC,这个相位到幅度的转换是通过查表完成的。
3.1.3 DAC输出
代表幅度的二进制数字信号被送入DAC中,并转换成为模拟信号输出。注意DAC的位数并不影响输出频率的分辨率,输出频率的分辨率是由频率控制字的位数决定的。
AD9851模块采用了美国模拟器件公司采用先进DDS直接数字频率合成技术生产的高集成度产品AD9851芯片。AD9851是由数据输入寄存器、频率/相位寄存器、具有6倍参考时钟倍乘器的DDS芯片、10位的模/数转换器、内部高速比较器这几个部分组成。其中,具有6倍参考时钟倍乘器的DDS芯片是由32位相位累加器、正弦函数功能查找表、D/A变换器以及低通滤波器集成到一起。这个高速DDS芯片时钟频率可达180 MHz,输出频率可达70 MHz,分辨率为0.04 Hz。
AD9851可以产生一个频谱纯净、频率和相位都可编程控制且稳定性很好的模拟正弦波,这个正弦波能够直接作为基准信号源,或通过其内部高速比较器转换成标准方波输出,作为灵敏时钟发生器来使用。
文章的DDS模块经调试后得出以下特性:
(1)模块能够输出0~10 MHz正弦波和方波
(2)采用70 MHz的低通滤波器,使波形的SN比更好。
(3)并口和串口数据输入可以通过一个跳帽选择。
(4)产生DA基准的(外接电阻)管脚引出,方便做输出波形的幅度调节应用。
(5)比较器的基准输入端电压由可变电阻产生,调节该电阻可以得到不同的占空比方波。
白噪声或白杂讯,是一种功率频谱密度为常数的随机信号或随机过程。理想的白噪声具有无限带宽,因而其能量是无限大的,这在现实世界是不可能存在的。一般,只要一个噪声过程所具有的频谱宽度远远大于它所作用系统的带宽,并且在该带宽中其频谱密度基本上可以作为常数来考虑,就可以把它作为白噪声来处理。
想要用模拟方式产生白噪声,就得用到平时最常用的双极晶体管和半导体二极管。在双极晶体管和半导体二极管等器件中,流动的电流不是平滑和连续的,而是各个携带着一个电子电荷的载流子的流动产生的电流脉冲之和。其原因在于这些器件中有势垒存在,而载流子通过势垒是随机发生的一系列独立事件。对于晶体管,当发射结处于正向偏置时,就有载流子越过发射结势垒由发射区注入基区。虽然单位时间内注入基区的载流子平均数是一定的,但是,某一个载流子越过势垒进入基区的事件确实随机的,它取决于载流子是否具有足够的能量以及指向结面方向的速度的大小。这就使得注入基区的少子数目在其平均数附近发生统计起伏,从而引起注入电流的起伏。这种由于载流子各自独立而随机地通过势垒所引起的噪声,称为散粒噪声。
散粒噪声的功率谱密度与频率无关,属于白噪声。值得强调的是该式只在中低频范围内有效,在接近1 GHz的高频区,散粒噪声也将随频率的上升而增加。尽管如此,在几款的频带范围内,其功率谱密度仍与频率无关。而且,实验还发现,PN结反向击穿会使散粒噪声激增。因此,PN结的散粒噪声具有以下两个特征,首先,在非常宽的频率范围内,从几个赫兹到微波频段,其功率谱密度与频率无关,即呈白噪声。其次,基极-发射极的PN结反响击穿时,噪声强度激增。因此,可以用作高性能固态噪声源。
4.2.1 白噪声发生电路设计
白噪声信号发生器电路原理图见图2所示。发生器是利用普通的双极性晶体管9014,它由双极性晶体管2N2222提供恒流源偏置。为了增加可得到的散粒噪声,9014的集电极处于开路而基极—发射极则为反向偏置。此时,BJT连接成其发射结处于反向击穿状态。
图2 白噪声发生器原理图
采用这样的配置,发射极-基极结的反向击穿电压可以很容易地用一般的频谱分析仪观察,其频谱带宽约为300 MHz,而功率输出大约是-70 dBm。
为了增大噪声功率,后级电路对散粒噪声进行了放大。首先是将直流信号滤除,并尽量使交流信号通过,NE5532是一个性能优良的低噪声电压放大器,工作电压为正负12 V,由它组成的跟随器。信号再经过一级电压增益为100的放大电路,然后输入一个四阶的Butterworth开关电容低通滤波器电路TLC04/MF4A,最后再经过一级跟随电路使输入输出隔离。
Atmega128是ATMEL公司的8位系列单片机的最高配置的一款单片机,它性能高,功耗低,采用先进的RISC结构,含有128 K字节的系统内可编程Flash,8路10位ADC,6路分辨率可编程的PWM,两个具有预分频器、比较功能和捕获功能的16位定时器/计数器,并且有6种睡眠模式,功耗极低,应用十分广泛。
为创造一个比较好的人机交互系统,键盘和显示是必不可少的,但如果按键太多,功能太复杂,不仅提高成本,而且使用者也不方便用,所以本设计只有4个按键,分别是上升键、下降键、回车键和返回键,而屏幕更是把需要调试的数据通过LCD显示在屏幕上。此外,为防止用户误操作及操作成功提示,本硬件电路还有蜂鸣器报警装置。
在确定好框图之后,把各个模块的电路图连在一起,最后,通过手工焊接及调试,文章制作出整个系统的实物,见图3。
图3 多功能信号发生器整体系统实物图
文章中采用AVR Studio是Atmel官方发行的免费软件,其强大的功能和正宗的血统,使其成为绝大部分AVR开发者必不可少的工具。
DDS软件模块主要有两个函数:ad9851_reset_serial () 和ad9851_wr_serial (unsigned char w0,double frequence),第一个函数是DDS复位程序,第二个函数是写DDS数据程序,复位程序比较容易,以下介绍写AD9851的程序流程,见图4。
图4 DDS软件模块程序流程图
键盘管理软件模块也分为两个部分:keycounter(uint keytime)按键变频加速部分和key()键盘管理主程序部分。按键变频加速部分主要用于按键不放的情况下数码的加速上升,原理是根据按键的频率来修改判断按键的延时。
显示模块包含的子函数较多,包括init_lcd(void)屏幕初始化程序、chn_disp(uchar const*chn) 汉字 /字符显示函数、chn_disp1(uchar const*chn)上半屏显示汉字或字符、img_disp(uchar const*img) 显示图形、img_disp1(uchar const*img)下半屏显示图形、lat_disp (uchar data1,uchar data2) 显示点阵、con_disp(uchar data1,uchar data2,uchar x0,uchar y0,uchar xl,uchar yl) 反 白 显 示 、clrram (void) 清 DDRAM、wr_lcd(uchar dat_comm,uchar content)写入数据、chk_busy(void)忙检测程序。5.8 主函数
由于每个模块的程序都很完整,所以主程序读起来也并不复杂,主程序如下:
其中,各级子程序通过按键程序调用,主程序只负责初始化及判断有无按键,这样给读程序带来了许多方便。
系统调试是一项漫长而艰苦的工作,但值得庆幸的是,这个过程也是最锻炼人的,每个优秀的工程师都是从一步步的调试错误中成长起来的。
操作系统的运行画面见图5、图6。
图5 主菜单界面
图6 正弦波发生器子菜单
图7 正弦波波形图及FFT频谱图(1 888 Hz)
图7是高档数字示波器的显示图截屏,上半部分为波形显示,下半部分为波形的FFT处理后的频谱图。
文章着重介绍了最新DDS技术和白噪声发生技术的应用,使AD9851这款经典DDS芯片得以揭开其真实的面纱,同时还为新兴的白噪声发生技术做了一些探索,让大家领略了特殊信号的多种用途和发生技术。由于大部分部件是手工焊接,所以不可避免地带来部分电磁干扰,如果采用全PCB工艺,效果会更好。