任意波形信号发生器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
一、题目要求及分析 (1)
1.1题目要求 (1)
1.2题目分析 (1)
二、任意波形信号发生器方案设计 (3)
2.1系统设计框图与思路 (3)
2.2 系统设计原理图 (5)
2.3 相关芯片介绍 (6)
三、相关模块具体程序实现 (10)
四、仿真及实际结果与分析 (16)
4.1波形选择及仿真结果 (16)
4.2波形选择及实际结果 (18)
4.3结果分析与相关问题解决 (23)
五、总结与体会 (24)
参考文献 (25)
附录 (26)
一、题目要求及分析
1.1题目要求
任意波形信号发生器
利用FPGA器件产生控制信号及数据信号,经DAC0832和TL082转换产生以下波形:
1)正斜率斜波;
2)正弦波;
3)锯齿波;
4)任意波形。
用示波器观察输出波形。
硬件电路内容和要求:用DAC0832实现数模转换电路,用TLC082实现电流-电压转换电路,画出电路原理图。
软件设计内容和要求:VHDL编程实现任意波形的信号控制器。要求可以用开关切换不同的波形数据输出。
扩展:增加衰减控制信号,通过开关控制衰减倍数,并在数码管显示。
1.2题目分析
VHDL语言是随着集成电路系统化和高度集成化的发展而逐步发展起来的,是一种用于数字系统的设计和测试的硬件描述语言。相比传统的电路系统的设计方法,VHDL 具有多层次描述系统硬件功能的能力,支持自顶向下和基于库的设计的特点,因此设计者可以不必了解硬件结构。从系统设计入手,在顶层进行系统方框图的划分和结构设计,在方框图一级用VHDL对电路的行为进行描述,并进行仿真和纠错,然后在系统一级进行验证,最后再用逻辑综合优化工具生成具体的门级逻辑电路的网表,下载到具体的CPLD器件中去,从而实现可编程的专用集成电路(ASIC)的设计。
在本次课程设计中,函数发生器的设计采用自顶向下的系统设计的方法,通过MAX+plusⅡ开发环境进行编辑、综合、波形仿真,并下载到CPLD器件中,采用模块化
的设计,对功能的修改和增加,只要修改VHDL源程序,而不必更改硬件电路。实现数字系统硬件的软件化。
任意信号发生器体现在它能选择输出四个波形,即正斜率斜波、正弦波、锯齿波、任意波形;还可以改变波形的某些表征参量,从而控制输出的波形。其主要问题是波形的选择和准备与输出的模拟信号波形相对应的数字信号,前者可以通过外接开关从而选择输出什么样的波形,后者可以通过建立相应波形的数字信号模块得到,然后建立一个信号,用来保存所采点的数据,最后把该信号送给ADC0832的输入数据端口就可以了。这两个主要问题当然在做的过程中还需要考虑到数据的选择、位宽的大小、管脚的取舍等问题。
二、任意波形信号发生器方案设计
函数信号发生器的实现方法通常有以下几种:
(1)用分立元件组成的函数发生器:通常是单函数发生器且频率不高,其工作不很稳定,不易调试。
(2)可以由晶体管、运放IC等通用器件制作,更多的则是用专门的函数信号发生器IC 产生。早期的函数信号发生器IC,如L8038、BA205、XR2207/2209等,它们的功能较少,精度不高,频率上限只有300kHz,无法产生更高频率的信号,调节方式也不够灵活,频率和占空比不能独立调节,二者互相影响。
(3)利用单片FPGA集成芯片的函数发生器:它能产生多种波形,达到较高的频率,且易于调试。鉴于此,很多公司开发了系列FPGA芯片,它们克服了(2)中芯片的缺点,可以达到更高的技术指标,是上述芯片望尘莫及的。又由于其较高的性价比,他们成为制作任意波形信号发生器的首选。
(4)利用专用直接数字合成DDS芯片的函数发生器:能产生任意波形并达到很高的频率。但成本较高。
2.1系统设计框图与思路
1.系统的设计框图
利用电子设计自动化(EDA)技术设计的波形信号发生器,与传统的信号发生器相比,具有高稳定度、高精度、高分辨率的优点。该项目利用Alter 公司的可编程逻辑器件 EPF10K10,采用EDA 技术,实现可通过改变时钟频率来调制频率、幅值的多种常用信号。
根据设计要求,多波形信号发生器主要由5部分组成,即波形数据产生器、波形信号控制器、输出信号寄存器、数/模转换电路、低通滤波电路。在时钟信号的作用下,通过波形信号产生器产生各种波形数据,再由信号控制器通过选择信号要输出的波形及衰减档位,并用数码管显示衰减倍数,经数/模转换电路、低通滤波电路,最终输出所需波形信号。另外,输出波形幅度的调节还可通过改变A/D转换芯片电阻网络的基准电压实现。函数发生器有波形选择开关控制波形的输出,分别能输出正斜率斜波、
锯齿波、正弦波、方波,及任意组合波形,考虑程序的容量,每种波形在一个周期内均的取样点不能太多。
系统的设计框图如下图2.1所示:
时钟
信号
选择信号
衰减显示号出
图2.1 系统设计框图
2.函数发生器的设计思路
本次课程设计采用FPGA作为中心控制逻辑,由于其具有高速和逻辑单元数多的特点,因此可以由FPGA、DAC和I/V运放直接构成信号源发生器的最小系统。在该方案中通过FPGA控制DAC并直接向DAC发送数据,这样就提高了所需波形的频率并绕过了通用存储器读取速度慢的特点,再加上外部的开关按钮就能够简单控制波形切换及改变波形的某些表征参量,能够通过编程实现波形的任意性、幅度变化的灵活性等功能。
本次课程设计采用自顶向下的设计方法进行设计,包含顶层文件的设计和底层文件的设计。顶层的设计是把下层各模块连接起来,采用文本输入的方式,通过元件例化的方法,调用各元件,实现函数发生器的设计。在顶层的设计中,clk,reset,ob,si,dl,sq,tc为系统的控制信号输入端,Q,a,b,c,d,e,f,g为数字信号的输出端口:clk为系统时钟信号输入端,reset为系统复位信号,ob,si,dl,sq 是系统波形选择数码开关,通过改变开关的通断可以选择输出的波形;tc 为信号衰减档位选择,其有,2、4、8三个衰减档位;a,b,c,d,e,f,g为七段数码管显示控制输出,用于显示衰减倍数;FPGA产生数字信号,并且由Q端口送入ADC0832的输入数据端口,这样数字信号经D/A转换器转换成为模拟信号。但是DAC0832C 以电流形式输出转换结果,若要得到电压形式的输出结果需另加I/V转换电路,这时可采用运算放大器,这里我们采用TL082实现电流-电压转换,即可转换成模拟电压信号,输出的波形经过低通滤波电路可以滤除毛刺及干扰信号,这样就可以得到较清晰的波形,可以通过示波器观察所得波形。
底层设计建立基本的模块,实现相应的功能,便于元件例化,包含波形选择、正弦波、正斜率斜波、锯齿波、任意波形等模块: 波形选择模块外接开关,利用开关选