前言波形发生器是一种常用的信号源,广泛用于科学研究、生产实践和教学实践等领域。
如设计和测试、汽车制造、生物医药、传感器仿真、制造模型等。
传统的信号发生器采用模拟电子技术,由分立元件构成振荡电路和整形电路,产生各种波形。
它在电子信息、通信、工业等领域曾发挥了很大的作用。
但是采用这种技术的波形发生器电路结构复杂、体积庞大、稳定度和准确度较差,而且仅能产生正弦波、方波、三角波等几种简单波形,难以产生较为复杂的波形信号。
随着微处理器性能的提高,出现了由微处理器、D/A以及相关硬件、软件构成的波形发生器。
它扩展了波形发生器的功能,产生的波形也比以往复杂。
实质上它采用了软件控制,利用微处理器控制D/A,就可以得到各种简单波形。
但由于微处理器的速度限制,这种方式的波形发生器分辨率较低,频率切换速度较慢。
从2007年2月到2007年4月,在系统研究国内外波形发生器的基础上提出了基于Matlab和FPGA技术的波形发生器,在FPGA内开辟高速存储器ROM做查询表,通过Matlab获得波形数据存入ROM中,波形数据不断地,有序地从ROM 中送到高速D/A转换器对存储器的波形数据进行转换。
因此只要改变FPGA中查找表数据就可以产生任意波形,因此该研究方法可以产生任意波形。
随着我国四个现代化和经济发展,我国在科技和生产各领域都取得了飞速的发展和进步,同时这也对相应的测试仪器和测试手段提出了更高的要求,而波形发生器已成为测试仪器中至关重要的一类,因此在国内发展波形发生器具有重大意义和实际价值。
例如,它能模拟编码雷达信号、潜水艇特征信号、磁盘数据信号、机械振动瞬变过程、电视信号以及神经脉冲之类的波形,也能重演由数字示波器捕获的波形等。
在本次设计中,我通过Matlab获取了波形数据,在FPGA中开辟了ROM区域,在MaxplusⅡ开发平台上,实现了电路的VHDL硬件描述和仿真,电路功能在EDA平台上得到了验证,但由于我的能力和水平有限,论文中肯定会有不妥之处和错误,恳请老师和同学提出批评和改进意见,在此表示由衷的感谢。
1 波形发生器1.1 基于模拟电路的波形发生器设计方案正弦波振荡电路是用来产生一定频率和幅度的正弦波信号。
如图1.1所示为利用集成运放构成的RC 桥式正弦波振荡器的电路原理图。
图1.1 RC 桥式正弦波振荡器适当调整反馈电阻3R 值,使电路产生振荡,输出波形为稳定的不失真的正弦波。
(1)电路的正振荡频率和起振条件在图1.1中,令12R =R =R ,12C =C =C 则该电路的振荡频率由式(1.1)决定。
01f =2πRC(1.1)起振条件由式(1.2)决定:F 4R 2R (1.2) 在电路图1.1中, F 35d R =R +R //r ,d r 表示限幅二极管导通时的动态电阻。
(2)选择RC 参数的主要依据和条件①因为RC 桥式振荡器的振荡频率是由RC 网络决定的,所以选择RC 的值时应该把已知振荡频率0f 作为主要依据。
②为了使选频网络的特性不受集成运算放大器输入和输出的电阻的影响,选择R 时还应该考虑下列条件:io r Rr 式中,i r 是集成运算放大器同相端输入电阻;o r 是集成运算放大器的输出电阻。
(3)计算R 和C 的值由式(1.1)可计算出电容值,初选R 的值由式(1.3)算出C 的值再复算R 值。
Vo01C=2πf R(1.3) 实际应用中,要注意选用稳定性好的电阻和电容。
(4)选择电阻4R 和5R 电阻4R 和5R 可根据式(1.2)来确定,通常取5R =2.14R ,这样既能保证起振,又不致引起严重的波形失真。
为了减小运算放大器输入失调电流及其漂移的影响,应尽量满足45R=R //R 的条件。
注意,4R 和5R 的最佳数值还是要通过实验调整来确定。
(5)稳幅电路的作用及参数选择 由于元件误差,温度等外界因数的影响,振荡器往往达不到理论设计的效果。
因此,一般在振荡器的负反馈支路中加入自动稳幅电路,根据振荡幅度的变化自动改变负反馈的强弱,达到稳幅效果。
图1.1中的二极管1D 和2D 在振荡过程中总有一个二极管处于正向导通状态,正向导通电阻d r 与3R 并联。
当振幅大时,d r 减小,负反馈增强,限制振幅继续增长;反之振幅减小时d r 加大,负反馈减弱,防止振幅继续减小,从而达到稳幅的目的。
稳幅二极管的选择应注意以下两点:①为了提高电路的温度稳定性,应尽量选用硅管。
②为了保证上下振幅对称,两个稳幅二极管特性参数必须匹配。
(6)电阻3R 、5R 值的确定二极管的正向电阻与并联电阻值差不多时,稳幅特性和改善波形失真都有较好的效果。
通常5R 选几千欧,5R 选定后3R 的阻值便可以初步确定,3R 的调节范围应保证达到F R 所需的值。
因为:F 35d R =R +R //r (1.4) 取5R =d r所以:3F 5d F 5R =R -R //r =R 0.5R -⨯ (1.5) 但是,3R 与5R 的最佳数值仍要通过实验调整来确定。
(7)集成运算放大器的选择集成运算放大器作为振荡电路的放大器,起放大作用,它是整个振荡电路的基础。
选择集成运算放大器时,除希望输入电阻较高和输出电阻较低,最主要的是要选择其增益带宽积满足下列关系:od BW 0A f >3f (1.6)1.2 基于MCU 的波形发生器设计方案波形的生成及对频率和相位的控制均由单片机编程实现。
波形生成程序生成正弦波信号在一个周期内的波形数据,这些数据循环输出至D/A 转换器,通过在输出数据指令之间插入NOP 指令实现对频率的控制,原理框图如图1.2所示。
图1.2 以MCU 为核心的设计方案原理框图此方法产生的信号频率范围、步进值取决于所采用的每个周期的输出点数及单片机执行指令的时间(与单片机的结构及选用的晶体振荡器等有关)。
此方案的优点是硬件电路简单,所用器件少,可相对容易地产生各种波形,在低频区基本上能实现所要求的功能;缺点是控制较复杂,精度不易满足,生成波形的频率范围小,特别是难以生成高频波形。
例如,对输出信号频率max f =20kHz 而言,因为移相分辨率为o 1,则一个周期至少要采样360个点,即MCU 发送波形幅度数据的速度,cp max f 360f ≥即cp f 7.2MHz ≥则前后发送2个波形幅度数据的时间间隔max T 0.1388μs ≤,但是MCU 的指令执行周期一般有几个μs ,从而MCU 发送信号一个周期的波形数据一般要几十个μs 。
故以MCU 为核心的实现方案难以产生高频波形。
1.3 基于MCU 与FPGA 相结合的波形发生器设计方案该方案采用DDS (Direct Digital Synthesis ,直接数字频率合成)技术产生数字式移相正弦波信号。
信号生成主要由FPGA 部分实现,FPGA 部分主要包括相位累加器和波形查找表(波形查找表由FPGA 外部的存储器实现)。
DDS 技术将输出波形的一个完整周期的幅度值都顺序地存放在波形存储器中,通过控制相位增量产生频率、相位可控的波形。
一个数字频率合成器由相位累加器、加法器、波形存储ROM 、D/A 转换器和低通滤波器(LPF )构成。
如图1.3所示。
其中K 为频率控制字、P 为相位控制字、W 为波形控制字、C f 参考时钟频率,N 为相位累加器的字长,D 为ROM 数据位及D/A 转换器的字长。
相位累加器在时钟C f 的控制下以步长K 作累加,输出的N 位二进制码与相位控制字P 、波形控制字W 相加后作为波形ROM 的地址,对波形ROM 进行寻址,波形ROM 输出D 位的幅度S(n)经D/A 转换器变成阶梯波S(t),再经过低通滤波器平滑后就可以得到合成的信号波形,合成的信号波形形状取决于波形ROM 存放的幅度码,因此用DDS 可以生成任意波形。
DDS 电路的基本组成:图1.3 基于DDS 技术设计方案原理框图(1)频率预置与调节电路K 被称为频率控制字,也叫相位增量。
DDS 方程: N 0C f =f K 2,0f 为输出频率,C f 为频率时钟。
当K=1时,DDS 输出最低频率(也即频率分辨率)为N C f 2,而DDS 的最大输出频率由Nyquist 采样定理决定,即C f 2,也就是说K 的最大值为N 2-1。
因此,只要N 足够大DDS 可以得到很细的频率间隔。
要改变DDS 的输出频率,只要改变频率控制字K 即可。
(2)累加器相位累加器由N 位加法器与N 位寄存器级联构成。
累加器框图如图1.4所示。
图1.4 累加器框图每来一个时钟脉冲C f ,加法器将频率控制字K 与寄存器输出的累加相位数据相加,再把相加后的结果送至寄存器的数据输入端。
寄存器将加法器在上一个时钟作用后所产生的相位数据反馈到加法器的输入端;以加法器在下一个时钟作用下继续与频率控制字进行相加。
这样,相位累加器在时钟的作用下进行相位累加。
当相位累加器加满量时就会产生一次溢出,完成一个周期的动作。
(3)控制相位的加法器通过改变相位控制字P 可以控制输出信号的相位参数。
令相位加法器的字长为N ,当相位控制字由0跃变到P (P 0)时,波形存储器的输入为相位累加器的输出与相位控制字P 之和,因而其输出的幅度编码相位会增加N P/2,从而使最后输出的信号产生相移。
(4)控制波形的加法器通过改变波形控制字W 可以控制输出信号的波形。
由于波形存储器中的不同波形是分块存储的,所以当波形控制字改变时,波形存储器的输入为改变相位后的地址与波形控制字W (波形地址)之和,从而使最后输出的信号产生相移。
(5)波形存储器有相位累加器输出的数据作为波形存储器的详细地址,进行波形的相位—幅值转换,即可在给定的时间上确定输出的波形的抽样幅值。
N 位寻址ROM 相当于把o 0~o 360的正弦信号离散成具有N 2个样值的幅度以D 位二进制数值固化ROM 中,按照地址的不同可以输出相应相位的正弦信号的幅值。
相位—幅度变换原理图如下图1.5所示:图1.5 相位—幅度变换原理图(6)D/A 转换器D/A 转换器的作用是把合成的正弦波数字量转换成模拟量。
正弦幅度量化序列S(n)经D/A 转换后变成了包络为正弦波的阶梯波S(t)。
需要注意的是,频率合成器对D/A 转换器的分辨率有一定的要求,D/A 转换器的分辨率越高,合成的正弦波S(t)台阶数就越多,输出的波形的精度也就越高。
(7)低通滤波器对D/A 输出的阶梯波S(t)进行频谱分析,可知S(t)中除主频0f 外,还存在分布在C f ,2C f ......两边0f 处的非谐波分量,幅值包络为辛格函数。
因此,为了取出主频0f ,必须在D/A 转换器的输出端接入截止频率为C f /2的低通滤波器。