波形发生器设计报告
一、 设计任务
设计制作一个波形发生器,该波形发生器能产生正弦波、方波、三角波和由用户编辑的
特定形状波形。
二、 设计要求
1. 基本要求
具有产生正弦波、方波、三角波三种周期性的波形。
用键盘输入编辑生成上述三种波形(同周期)的线性组合波形,以及由基波及其谐波(
5次以下)线性组合的波形。
具有波形存储功能。
输出波形的频率为100Hz~20KHz(非正弦波频率按10次谐波计算):重复频率可调,频
率步进间隔≤100Hz。
输出波形幅度范围0~5V(峰-峰值),可按步进0.1V(峰-峰值)调整。
具有显示输出波形的类型、重复频率(周期)和幅度的功能。
2.发挥部分
输出波形频率范围扩展至100Hz~200KHz。
用键盘或其他输入装置产生任意波形。
增加稳幅输出功能,当负载变化时,输出电压幅度变化不大于±3%(负载电压变化范围
:100Ω~∞)。
具有掉电存储功能,可存储掉电前用户编辑的波形和设置。
可产生单次或多次(1000次以下)特定波形(如产生一个半周期三角波输出)。
其它(如增加频谱分析、失真度分析、频率扩展>200KHz、扫频输出等功能)。
三、方案设计和论证:
根据题目的要求,我们一共提出了三种设计方案,分别介绍如下:
1、 方案一
采用低温漂、低失真、高线性单片压控函数发生器ICL8038,产生频率受控可变的正弦波
,可实现数控频率调整。通过D/A和5G353进行输出信号幅度的控制。输出信号的频率、
幅度参数由4x4位键盘输入,结果输出采用6位LED显示,用户设置信息的存储由24C01完成。
2、 方案二
由2M晶振产生的信号,经8253分频后,产生100Hz的方波信号。由锁相环CD4046和8253进
行N分频,输出信号送入正弦波产生电路和三角波产生电路,其中正弦波采用查表方式产
生。计数器的输出作为地址信号,并将存储器2817的波形数据读出,送DAC0832进行D/A
转换,输出各种电压波形,并经过组合,可以得到各种波形。输出信号的幅度由0852进
行调节。系统显示界面采用16字x1行液晶,信号参数由4x4位键盘输入,用户设置信息的存储由24C01完成。
3、 方案三
以4M石英晶振作为参考源,通过F374,F283以及LS164组成的精密相位累加器,通过高速
D/A变换器和ROM产生正弦波形,这个数字正弦波经过一个模拟滤波器后,得到最终的模
拟信号波形。通过高速D/A产生数字正弦数字波形和三角数字波形,数字正弦波通过带通
滤波器后得到一个对应的模拟正弦波信号,最后该模拟正弦波与一门限进行比较得到方
波时钟信号。通过相位累加器来实现多种波形的同相位输出,并可以连续地改变频率。
输出信号幅度由TLC7524进行数字控制。用户设置信息的存储由24C01完成。
以下为三种基本方案的具体电路实现:
方案一
单片压控函数发生器ICL8038产生频率为100Hz~20KHz的正弦波,其频率由DAC0832和5G
353进行控制。由于ICL8038自身的限制,输出频率稳定度只有10-3(RC振荡器)。而且
由于压控的非线性,频率步进的步长控制比较困难。输出信号的幅度数控由DAC0832和5
G353完成。幅度数码由单片机通过P0口输入。要求幅度数据为8位/ 100mV。用户设置信息的存储由24C01完成。
微控制器由8051最小系统,键盘/显示接口芯片8279,16位键盘,6位LED数码显示器以及相应译码、驱动电路及“自动扫描/手动设置”选择开关等组成。
方案二
基本信号产生:晶振频率为2M,经8253进行分频后,产生100HZ的方波信号,则分频比为:
M=fALE/100=2X104
其中FALE=2M
一般石英晶体振荡器的频率稳定性优于10-5,故输出信号的频率稳定性指标得以保证。
频率合成:CD4046和8253组成的锁相环中,fo=100N 其中8253的定时器做4046的N分频,
则占空比电路的输入脉冲信号频率也是N。
利用可编程定时器/计数器8253的三个定时器,正好可以承担上述2x104分频和锁相环中
而个分频器的任务。其中定时器0分频比设为2x104,定时器2做锁相环N分频。利用8253
做分频器,应使其工作于方式3。
波形变换采用查表方式,把正弦波一个周期的波形按时间平均划分为100个点,各点的电
压数据放在存储器2817中,通过DA0832实时查询输出。
输出信号的幅度数控由DAC0832完成,幅度数码由单片机通过P1口输入,要求幅度数据为 8位/ 100mV。当输出幅度为3V时,DAC输入数值应为240。
微控制器系统由89C51最小系统,4x4位键盘输入,字符型液晶显示器以及相应的译码、
驱动电路构成。液晶显示采用菜单显示方式,显示直观,操作方便,人机界面非常友好
. 用户设置信息的存储由24C01完成
方案三
以4M石英晶振作为参考源,通过F273,F283以及LS164组成的精密相位累加器和数字信号处理,通过高速D/A变换器DAC0800和2817 E2ROM产生正弦波形,三角波形和任意波形。
正弦信号频率计算:在相位累加器中,每来一个时钟脉冲,它的内容就更新一次。在每
次更新时,相位增量寄存器的相位增量M就加到相位累加器中的相位累加值上。假设相位
增量寄存器的M为00...01,相位累加器的初值为00...00。这时在每个时钟周期,相位累
加器都要加上00...01。本设计累加器位宽n是24位,相位累加器就需要224个时钟周期才能恢复初值。
相位累加器的输出作为正弦查找表、三角波查找表和用户自定义波形查找表(均为
E2PROM2817)的查找地址。查找表中的每个地址代表一个周期的波形的一个相位点,每
个相位点对应一个量化振幅值。因此,这个查找表相当于一个相位/振幅变换器,它将
相位累加器的相位信息映射成数字振幅信息,这个数字振幅值就作为D/A变换器的输入。
设计n=24, M=1, 这个相应的输出信号频率等于时钟频率除以224。如果M=2,输出
频率就增加1倍。对于一个n-bit的相位累加器来说,就有2n个可能的相位点,相位增量
寄存器中控制字M就是在每个时钟周期被加到相位累加器上的值。假设时钟频率为fc,那
么输出信号的频率就为:
f0 = M*fc / 224
数字正弦波经过一个模拟滤波器后,得到最终的模拟信号波形。通过高速DAC产生数字正
弦数字波形和三角数字波形,数字正弦波通过带通滤波器后得到一个对应的模拟正弦波
信号,最后该模拟正弦波与一门限进行比较得到方波时钟信号。
输出信号的幅度数控由TLC7524数控衰减器完成,幅度数码由单片机通过总线寻址方式输
入,幅度为8位/100mV。当输出幅度为5V时,DAC输入值为400。
微控制器系统由89C52最小系统,4x4位键盘输入,字符型液晶显示器以及相应的译码、
驱动电路构成。液晶显示采用菜单显示方式,显示直观,操作方便,人机界面非常友好
。用户设置信息的存储由24C01完成
4、 方案比较
下面对三种方案的性能特点和实现的难易等作一些具体分析与比较。
1)方案一结构比较简单,但由于ICL8038自身的限制,采用了RC振荡器,故输出频率稳
定度只能达到10-3数量级。方案二采用石英晶体振荡器和数字锁相环技术,而一般石英
晶体振荡器的频率稳定性优于10-5,故输出信号的频率稳定性指标得以保证。方案三同
样采用石英晶体振荡器、精密的相位累加器,频率稳定性指标同样优于10-5。达到题目
的要求。
2)方案一由于压控振荡器F/V的线性范围有限,频率步进的步长控制比较困难,难以保
证1000倍的频率覆盖系数。方案二采用集成锁相环4046,配合8253很容易做到1000倍的
线性频率覆盖系数。方案三使用精密相位累加器和高速DAC,同样可以实现1000倍的线性
频率覆盖。
3)方案一的控制显示系统比较简单,六位LED的显示系统制作比较简单,但难以显示系
统输出信号的详细信息,使用时操作难度比较大,人机界面比较难懂。方案二和方案三
采用16字符x1行的液晶,菜单式操作方法,要求有比较高的硬件制作水平和软件编程技
术,但可以详细的显示波形,占空比,信号幅度等信息。人机界面友好,操作方便。而
且通过软件编程控制使系统输出信号的频率、波形预置变的非常简单。
4)方案一中,为获得1Hz的分辨率,必须采用高精度的DAC,不容易达到比较高的精度。
方案二中用单片机对8253可编程定时器进行控制,配合集成锁相环频率合成器4046可以
比较容易的提供1Hz分辨率。方案三采用精密相位累加器,具有相当好的频率分辨率,频
率的可控范围达0.25Hz
fc/2n=222/224=0.25Hz
5)方案一的ICL8038可以产生比较准确的波形。方案二通过实时查询输出正弦波,虽然
我们对每一个波形只采用了100个点,但在要求较高的场合,可以通过对每个波形取更多
个点的方法来提高波形精度。具有很好的升级扩展性能。方案三中E2PROM中存储了1024
个波形点,可以提供非常精确的波形。在200KHz的时候,仍然能够对每个波形提供8个点
,通过滤波器后,同样会具有良好的波形。
6)方案一和方案二的频率变换时间主要是它的反馈环处理时间和压控振荡器的响应时间
,通常大于1ms。而方案三的频率变换时间主要是数字处理延迟,通常为几十个ns。
7)方案一由于采用RC振荡器,不可避免具有比较大的相位噪声。方案二的相位噪声是它
的参考时钟—石英晶体振荡器—的噪声的两倍。而方案三由于数字正弦信号的相位与时
间成线形关系,整片电路输出的相位噪声比它的参考时钟源的相位噪声小。
从以上的方案比较可以看出,方案三结构比较复杂,但具有输出频率稳定性高、频率输
出线性度好、频率分辨率高、波形准确、频率变换时间小、相位噪声小、人机界面友好
,易于控制等优点,性能优良。是本次设计的理想设计方案。而相对来说,方案一结构
很简单,制作容易,但是输出信号有频率线性度差、频率稳定度低、频率分辨率低、频
率变换时间比较长,相位噪声大以及人机界面不友好等缺点。方案二电路也比较简单,
但在频率分辨率、频率变换时间、相位噪声等方面都比第三种方案差。总之,方案一和
方案二都具有各自的比较大的弱点,难以达到理想的设计要求。故不宜采用。
经过比较,我们决定采用方案三的电路设计进行制作。
四、电路设计与制作
系统总体结构如图3所示。下面就系统的各个功能模块的具体电路结构进行分析。
1、 相位累加器
这一部分电路是整个波形发生系统的核心,包括IC F374+F283+LS164。它由一个加法器
F283、三个8位相位寄存器F374(构成24位相位寄存器)和串行--并行地址转换LS164组
成。在相位累加器中,每来一个时钟脉冲,它的内容就更新一次。在每次更新时,相位
增量寄存器的相位增量M就加到相位累加器中的相位累加值上。假设相位增量寄存器的M
为00...01,相位累加器的初值为00...00。这时在每个时钟周期,相位累加器都要加上
00...01。本设计累加器位宽n是24位,相位累加器就需要224个时钟周期才能恢复初值。
2、 三种波形(正弦波、三角波和用户自定义波形)发生
相位累加器的输出作为正弦查找表、三角波查找表和用户自定义波形查找表(均为E2PR
OM2817)的查找地址。查找表中的每个地址代表一个周期的波形的一个相位点,每个相
位点对应一个量化振幅值。因此,这个查找表相当于一个相位/振幅变换器,它将相位
累加器的相位信息映射成数字振幅信息,这个数字振幅值就作为D/A变换器的输入。
设计n=24, M=1, 这个相应的输出信号频率等于时钟频率除以224。如果M=2,输出频率
就增加1倍。对于一个n-bit的相位累加器来说,就有2n个可能的相位点,相位增量寄存
器中控制字M就是在每个时钟周期被加到相位累加器上的值。假设时钟频率为fc,那么输
出信号的频率就为:
f0 = M*fc / 224
频率控制字计算:我们使用的是222Hz的晶振,有24位控制字,输入频率数值与输出频率
控制字的关系为
Kfo = 224/222*Kfi = 4Kfi
数字正弦波经过一个模拟滤波器后,得到最终的模拟信号波形。通过高速DAC产生数字正
弦数字波形和三角数字波形,数字正弦波通过带通滤波器后得到一个对应的模拟正弦波
信号,最后该模拟正弦波与一门限进行比较得到方波时钟信号。
3、 低通滤波电路
本设计采用NE5532制作二阶滤波器,因题目要求100Hz~200KHz的输出频率,故设计频率
截止上限在300KHz,保证足够的通频带并滤除杂波影响。
4、方波整型电路
为获得良好的波形效果,我们采用视频运放AD817作为比较器+74HC04整型以获得良好的
方波上升沿,并提供一组TTL电平信号输出,作为自己设计的附加功能,幅度为0~5V连续
可调。
5、数控衰减器
输出信号的幅度数控由TLC7524数控衰减器完成,幅度数码由单片机通过总线寻址方式输
入,幅度为8位/100mV。当输出幅度为5V时,DAC输入值为400。
幅度数值通过键盘输入,同步显示在液晶上,再由单片机通过P1口输入DAC0832,幅
度数据为8位/ 100mV。当输出幅度为5V时,DAC输入数值应为400。因为题目要求的最高
幅度为5V,所以当设置幅度时,一旦按下键盘5,液晶直接显示5.0V。
6、微控制器系统
该部分电路我们采用了单片机89C52,因为它价格便宜、容易购买而且自带8K Flash Ra
m,使用方便。键盘输入采用4x4位键盘,提供数字0~9共十个数字按键以及6个功能控制
键。液晶显示采用HD44780驱动,16字x1行字符型液晶屏显示。系统各功能的切换以及参
数设置均在液晶屏上有详细的显示,各功能切换使用菜单式。系统显示直观,操作方便
,人机界面非常友好。
7、用户设置信息存储
使用非易失E2PROM24C01保存用户的设置信息,具有掉电存储功能,可存储掉电前用户编
辑的波形和设置。
8、加法器
由AD817构成的加法电路,实现同周期的三种波形线性相加输出,输出为三种波形的组合
波形。
9、电源电路
根据本设计的供电需要,电源由3A的整流桥堆和3x7805提供三路+5V电压输出,7809和7
909构成±9V双电源输出。均提供电容滤波以消除纹波影响。
五、软件设计 (见下页图4)
六、系统调试
我们的硬件分为电源板、低通滤波板、单片机最小系统板、液晶显示板、DDS板和加法
器板共六个部分。制作时,我们采用各电路板依次制作,依次调试的方法。下面依次叙
述各电路板的制作过程。
电源板:根据题目的要求,波形发生器需要三路+5V电压和±9V电压。使用50W环型
3路7805提供稳定的+5V电压输出,7809和7909提供±9V电压。
DDS板:这一部分电路包括E2PROMF374、F283和LS164构成的相位累加器和正弦查找
表E2PROM、三角查找表E2PROM和用户自定义查找表E2PROM以及对应的高速D/A。
制作后,接通电源,在Hitich OSCILLCOPE V-1050F 100M示波器上观察正弦波和三角波
的输出波形,可以观察到波形有比较大的毛刺,并有较大的高频分量。通过键盘输入波
形的各种频率数值测试,均可在示波器上观察到比较好的波形。
低通滤波板:由AD817组成一个二阶滤波器。从DDS板输入正弦波,用V-1050F 100M
示波器观察输出波形,发现波形已经变的很平滑,毛刺和高频分量已经消失。达到了预
期效果。
单片机最小系统板:由89C52,锁存器74LS373,与非门74LS00构成,板上设置排线
跟其他电路板相连。把程序写入89C52,经过仿真测试,程序通过,各功能正常。
液晶显示板:由HD44780驱动电路和液晶屏构成。液晶屏采用字符型16x1字(每字8x5)
显示。经联结单片机最小系统板测试,显示功能正常。
加法器和数控衰减器板:这一部分电路由AD817加法器 、D/A TLC7524 、74LS245总线缓
冲、74LS138地址译码、74LS04反相器以及AD8032运放构成。完成正弦波、方波、三角波
和用户自定义波形的幅度控制以及正弦波、方波和三角波的线性组合输出。经联机测试
,幅度控制和波形组合输出正常。
2 调试方法和过程
采用分别调试各个单元模块,调通后再进行各单元电路联机统调的方法,提高调试效
率。
(1)软件部分调试
本机的软件主要功能是完成人机接口,因此编程的时候把界面的友好性放在首位,
采用主从菜单式的操作方法。由于对51系列单片机编程比较熟悉,在软件的仿真调试过
程中没有遇到太大的问题。各软件功能均正常实现。
(2)硬件部分调试
整个硬件调试过程基本顺利,由于采用了工艺精良的双面孔化PCB板,各单元电路工作稳
定,给调试工作带来很大的方便。
调试过程中出现的问题:
1) 在相位累加器调试过程中发现地址不正常现象。经查找资料,相位寄存器使用的是
F373,但由于F373是透明锁存器,直接导致地址出错。于是更换为LS374,问题解决。
2) 加法器调试时,示波器上发现方波信号出现过冲现象。查找资料发现AD8032是宽带
高速运放,尝试在反相输入端和输出端并上5.7pf的电容,问题解决。
3) 加法累加器调试时,发现正弦波毛刺比较大。用替换法检查,发现是因为地址寄存
器性能不稳,更换74LS164后,问题解决。
各单元调试通过以后,进行整机调试,调试结果显示,整个系统能够正常工作。
3 调试过程中使用的仪器设备
HITICH OSICLLCOPE V 1050F 100M 示波器
VICTOR VC-9806 数字万用表
中策 DF-1642信号发生器/频率计
南京伟福G-6D单片机仿真器
EMP-100编程器
七、系统指标测试
1、 测试仪器设备
HITICH OSICLLCOPE V 1050F 100M 示波器
VICTOR VC-9806 数字万用表
中策 DF-1642信号发生器/频率计
2、 测试方法及结果
1)正弦波100KHz测试
用键盘设置幅度为5V,通过示波器观察输出波形,计算得输出幅度值为5V。
正弦波1KHz测试
用键盘设置幅度为5V,通过示波器观察输出波形,计算得输出幅度值为5V。
2)方波1KHz测试
用键盘设置幅度为5V,通过示波器观察输出波形,计算得输出幅度值为5V。
3)三角波1KHz测试
用键盘设置幅度为5V,通过示波器观察输出波形,计算得输出幅度值为5V。
4)组合波形测试
用键盘设置功能为组合输出,设置三种波形幅度为正弦波1V、方波1V、三角波1.5V,用
示波器观察输出波形,波形正常。
4) 存储功能设置
关闭电源,等待一段时间,然后再打开电源,原来的设置均恢复。证明具有存储功能。
5) 频率步进间隔
用键盘设置频率步进,间隔为1Hz。
6) 输出电压测试
用键盘设置正弦波输出幅度值为5V,用示波器观察输出波形,计算得输出电压为5V。同
样设置三角波和方波输出幅度值为,计算得输出电压为5V。
7) 显示功能
输出信号的类型、频率、幅度以及功能选择均可在液晶显示屏上显示出来。显示功能正
常。
8) 频率范围扩展
用键盘设置正弦波频率为1Hz,在示波器上可观察到良好的波形。设置为250KHz,同样可
观察到良好的波形。再用键盘依次改变波形为三角波和方波,同样可观察到输出频率范
围为1Hz~250KHz。
3、 误差分析
系统输出信号频率误差跟晶振在同一个数量级,约为10-6。
系统输出信号幅度误差在1HZ和20KHz时正弦波有5%的误差。原因:滤波器通带问题。
波形在较低频率时有一定时针,原因:DDS板转换噪声。
八、系统改进措施
滤波器改用中心频率可调的带通滤波器。
各单元电路集中在同一块PCB板上制作。