测控技术与仪器 毕业论文范文——基于CPLD的多波形信号发生器的设计_第1页
测控技术与仪器 毕业论文范文——基于CPLD的多波形信号发生器的设计_第2页
测控技术与仪器 毕业论文范文——基于CPLD的多波形信号发生器的设计_第3页
测控技术与仪器 毕业论文范文——基于CPLD的多波形信号发生器的设计_第4页
测控技术与仪器 毕业论文范文——基于CPLD的多波形信号发生器的设计_第5页
免费预览已结束,剩余28页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于CPLD的多波形信号发生器的设计摘要:本文简明的介绍了国内多波形信号发生器的发展状况及其特点,作者在学习了多种波形发生器的实现方法以后,在论文中系统的介绍了设计方案及实现方法,绘制了系统硬件电路图,编译了系统软件流程。本设计采用Max + Plus开发平台,VHDL编程实现,实现可编程逻辑器件CPLD设计多波形信号发生器的设计。整个系统除晶体振荡器和DA转换器外,全部集成在一片84针脚的EPM7064芯片上。它可输出频率、幅度可调的正弦波、三角波、方波。整个设计采用VHDL编程实现,其设计过程简单,极易修改,可移植性强。另外由于CPLD具有可编程重置特性,因而可以方便地更换波形数据,且简单易行。关键字:多波形信号发生器,CPLD,三角波,方波,正弦波 1 绪论1.1 引言 信号发生器作为各种信号的发生装置,在电子工程设计和实验中扮演着重要角色。在教学实验和教学研究中,信号发生器作为提供测试用电信号的仪器必不可少。目前通用的信号发生器一般只能输出常用的波形信号,不能满足某些特殊的需要,例如在电子测量教学中,通过用示波器测量晶体管的输出特性曲线实验,让学生理解晶体管测试仪的测量原理,就需要阶梯波信号。又如研究计数法测周期时,噪声信号引起的触发误差所需的某种噪声信号1。鉴于教学实验和教学研究的需要,本文设计了一种基于可编程逻辑器件CPLD的多波形信号发生器。采用MaxPlusll开发软件,VHDL编程实现,整个系统除晶体振荡器和D/A转换器以外,全部集成在一片美国Altera公司生产的EPM7064芯片上。它可以输出常用的正弦波、三角波、方波。该信号发生器输出波形的频率可数控选择,其范围为100 Hz125 kHz,幅度调节范围为O5 V。1.2 多波形信号发生器制作技术现状及发展趋势1.2.1 国内外发展概况 随着大规模集成电路和计算机技术的迅速发展,以及人工智能向测控技术的移植和应用,智能仪器仪表技术发展迅速。作为现阶段智能化电子仪器主体的智能仪器在工业发达国家已经非常成熟与普及,但国内此方面技术发展与改造的起步和发展比较缓慢。我国于1984年才正式成立“自动测试与智能仪器专业组”,1989年5月我国第一届测试技术与智能仪器国际学术讨论会在武汉召开,直到1993年在北京召开的仪器仪表与计算机应用学术会议上,智能仪器仪表作为重点议题之后,国内智能仪器仪表技术和改造才开始迅速发展2。 信号发生器作为电子测量系统中应用最为普遍的电子测量仪器之一,是工业控制、教学科研常用的基础仪器。国外已有数字化的智能函数发生器产品,例如HP公司的HP-3335A、HP-8642B、FLUKE公司6080A等产品,但其价格昂贵,并且多为射频信号发生器,只产生正弦波形3。国内也有少数半数字化的函数发生器产品,但其都是对传统函数发生器简单的数字化改造,输出信号的波形种类没有增加,性能也未有明显改善,并且不具有输出信号的实时显示功能和汉化的菜单式人机交换界面。因此研制开发操作简单、低成本、高性能的新一代信号发生器十分必要。1.2.2 信号发生器的分类及区别信号发生器一般区分为函数信号发生器及任意波形发生器,而函数波形发生器在设计上又区分出模拟及数字合成式。众所周知,数字合成式函数信号源无论就频率、幅度乃至信号的信噪比(S/N)均优于模拟,其锁相环(PLL)的设计让输出信号不仅是频率精准,而且相位抖动(phase Jitter)及频率漂移均能达到相当稳定的状态,但毕竟是数字式信号源,数字电路与模拟电路之间的干扰,始终难以有效克服,也造成在小信号的输出上不如模拟式的函数信号发生器。通用模拟式函数信号发生器的结构,是以三角波产生电路为基础经二极管所构成的正弦波整型电路产生正弦波,同时经由比较器的比较产生方波,换句话说,如果以恒流源对电容充电,即可产生正斜率的斜波4。任意波形发生器是信号源的一种,它具有信号源所有的特点。我们传统都认为信号源主要给被测电路提供所需要的已知信号(各种波形),然后用其它仪表测量感兴趣的参数。可见信号源在电子实验和测试处理中,并不测量任何参数而是根据使用者的要求,仿真各种测试信号,提供给被测电路,以达到测试的需要5。 信号源有很多种,包括正弦波信号源,函数发生器、脉冲发生器、扫描发生器、任意波形发生器、合成信号源等。一般来讲任意波形发生器,是一种特殊的信号源,综合具有其它信号源波形生成能力,因而适合各种仿真实验的需要。1.2.3 近年来信号发生信号发生器制作技术的发展及趋势(1)用分立元件组成的函数发生器传统的信号发生器多应用此类方法。但是这种电路存在波形质量差,控制难,可调范围小,电路复杂和体积大等缺点。本文以正弦式函数信号发生器为例来讲解一下应用分立元件组成的传统信号发生器的制作方法。正弦式函数信号发生器工作过程是:正弦振荡器输出正弦波,经缓冲级隔离后,分为两路信号,一路送放大器输出正弦波,另一路作为方波形成器的触发信号。方波形成器通常是施密特触发器,它输出两路信号,一路送放大器,经放大后输出方波;另一路作为积分器的输入信号。积分器将方波变换为三角波,经放大后输出。三种波形的输出由开关进行控制6。(2)利用专门的函数发生器集成芯片利用专门的函数发生器集成芯片能产生多种波形,达到较高的频率,外围电路简单且易于调试。早期的函数信号发生器芯片,如L8038、BA205、XR220622072209等,它们的功能较少,精度不高,频率上限只有300kHz,无法产生更高频率的信号,调节方式也不够灵活,频率和占空比不能独立调节,二者互相影响。鉴于此,美国马克西姆公司开发了新一代函数信号发生器芯片MAX038,它克服了上述芯片的缺点,可以达到更高的技术指标,是上述芯片望尘莫及的。MAX038频率高、精度好,因此它被称为高频精密函数信号发生器芯片。在锁相环、压控振荡器、频率合成器、脉宽调制器等电路的设计上,MAX038都是优选的器件。(3)基于单片机的数字化函数信号发生器基于单片机的数字化函数信号发生器具有线路相对简单,结构紧凑,价格低廉,频率稳定度高,抗干扰能力强,用途广泛等优点,并且能够对波形进行细微调整,改良波形,使其满足系统的要求。只要对电路稍加修改,调整程序,即可完成功能升级。单片机的型号可以根据需要来具体选择,具体电路也可以有多种形式7。(4)利用专用直接数字合成(DDS)芯片的函数发生器 利用DDS芯片能产生任意波形并达到很高的频率,但成本较高。直接数字式频率合成(DDS) 技术是继直接频率合成和间接频率合成之后,随着数字集成电路和微电子技术的发展而迅速发展起来的第三代频率合成技术。DDS技术具有相对带宽宽、频率转换时间短、频率分辨率高等优点,输出相位连续,频率、相位和幅度均可实现程控。由DDS技术产生的合成信号源采用的晶体振荡器保证频率准确度达到108量级,频率稳定度达到107,而传统的通用信号源采用RC、LC振荡器,频率准确度只有102量级、频率稳定度103104。直接数字频率合成技术重要的特色,它可以产生任意波形,其输出波形取决于波形存储器的数据。因此,产生任意波形的方法取决于向该存储器(RAM)提供数据的方法8。1.3 可编程逻辑器件概述 可编程逻辑器件是20世纪70年代发展起来的一种新型逻辑器件,它可由用户编程实现某种逻辑功能。随着电子技术的飞速发展,可编程逻辑器件的功能不断强大,规模越来越大,使用的人也越来越多。1.3.1 CPLD技术的发展与现状和基本原理随着半导体技术的不断进步,现代电子产品的复杂度也在日益加大,一个电子系统可能由数万个中小规模通用集成电路构成,这就带来了体积大、功耗大、可靠性差的问题。在早期解决这一问题的有效途径就是采用专用集成电路(ASIC)芯片进行设计。把一个具有专用目的,并有一定规模的电路或子系统集成化而设计在一个芯片上,这就是ASIC的设计任务。随着设计方案的不断完善,不仅需要简化设计过程,而且越来越需要降低系统的成本和体积,提高系统的可靠性,缩短研制周期,于是希望有一种有很多厂家都可提供的,具有一定的连线结构和已封装好的全功能的标准电路。这种器件可以由用户根据需要自行完成编程设计工作,并在设计阶段进行硬件仿真,使得微电子设计实现了早期集成和软硬件联合验证。这种器件就是可编程逻辑器件PLD9。随着半导体工艺不断完善,用户对器件集成度的要求不断提高,原来的PLD已经不能满足要求。近年来,由于器件的密度越来越大,就出现了复杂可编程逻辑器件(CPLD)。当前规模在上百万门的CPLD系列芯片已广泛应用,并已发展到上千万门。随着工艺水平的提高,在增加期间容量的同时,为提高芯片的利用率和工作频率,CPLD从内部结构上做了许多改进,出现了多种不同的形式,功能更加齐全,应用不断扩展。 CPLD由可编程逻辑的功能块围绕一个位于中心、时延固定的可编程互连矩阵构成。由固定长度的金属线实现逻辑单元之间的互连,而可编程逻辑单元又是类似PAL的与阵列,采用可编程的与阵列和固定的或阵列结构。再加上一个全局共享的可编程与阵列,把多个宏单元连接起来,并增加了I/O控制模块的数量和功能。可以把CPLD的基本结构看成由可编程逻辑宏单元、可编程I/O控制模块和可编程内部连线三部分组成。 CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件)是在传统的PAL、GAL基础上发展而来的,具有多种工作方式和高集成、高速、高可靠性等明显的特点,在超高速领域和实时测控方面有非常广泛的应用。与FPGA相比,CPLD比较适合计算机总线控制、地址译码、复杂状态机、定时/计数器、存储控制器等I/O密集型应用,且无须外部配置ROM、时延可预测等。目前的CPLD普遍基于E2PROM和Flash电可擦技术,可实现循环擦写。Altera 公司的MAX7000 CPLD配置有JTAG口,支持ISP编程。用VHDL或Verilog HDL(Hardware Description Language, 硬件描述语言)设计的程序,借助EDA工具经过行为仿真、功能仿真和时序仿真后,通过综合工具产生网表,下载到目标器件,从而生成硬件电路10。1.3.2 MAX+PLUS简介在EDA技术中,数字系统开发软件有许多种。MAX+PLUS是Altera公司的第三代CPLD开发工具软件它集成了可编程逻辑器件的设计环境,它可以在多种平台上运行。提供了灵活和高效的界面,设计者无需精通器件内部的复杂结构,只需用自己熟悉的设计输入工具进行设计输入,MAX+PLUS将这些设计转换成目标结构所要求的格式,从而使设计者能够轻松地掌握和使用MAX+PLUS软件。 MAX+PLUS软件可在多种平台下运行,还提供了与设计无关的设计环境,支持MAX、FLEX、及Classic系列器件,目前已升级到V1.0 版本。MAX+PLUS支持与Cadence、Exemplarlogic、Mentor Graphics、Synopsys、Synplicity、Viewlogic和其他公司所提供的EDA工具的接口。它提供丰富的库单元供使用者调用,还为复杂的系统设计提供了Megacore功能,以减轻设计人员工作量,特可以成倍的缩短设计周期。经过校验的HDL网络表文件,使FLEX 10K、FLEX 8000、FLEX6000、MAX9000和MAX7000器件系列实现最优化的设计11。1.4 本设计要研究的问题及实现目标1.设计一种基于可编程逻辑器件CPLD的多波形信号发生器,使用CPLD器件实现波形数据的产生,可使用外围电路进行数字量与模拟量的转化,最后可输出所要求的波形。2.该信号发生器输出的正弦波、三角波、方波信号要求频率,幅度皆可调,输出波形的频率可数控选择,其范围为100Hz125kHz。幅度调节范围为O5V。1.5 论文章节分配第一章 绪论:回顾信号发生器的发展历史,了解信号发生器的分类及制作方法。简要介绍CPLD技术及MAX+PLUS软件软件。第二章 多波形信号发生器的总体设计:介绍系统框图及CPLD内部系统结构框图。对各功能模块作总体介绍。 第三章 专用单元硬件实现:电路各部分之间的接口电路,以及实现多波形信号发生器的总体电路。第四章 软件设计部分:用VHDL序言编写程序,实现芯片内部各个模块功能,用以产生波形数据。第五章 全文总结。第 33 页 共 33 页2 多波形信号信号发生器总体设计2.1 方案设计根据设计要求,多波形信号发生器由3部分组成,即时钟信号发生器、波形数据产生器和数/模转换电路。由晶体振荡器产生稳定度很高的时钟信号,在时钟信号的作用下,波形数据产生器生成频率可变的波形数据数字信号,经数模转换电路最终输出所需波形信号。幅度的调节可通过CPLD内的控制寄存器实现调节。2.2 系统结构方案2.2.1 系统结构框图信号发生器电路一般包括如图所示的四个部分。图中信号发生部分是电路的核心,各种信号都在这里产生。控制电路则根据系统的需要,向信号发生部分发出各种控制信号,控制信号发生电路的工作,即控制信号产生的幅度及频率。信号输出部分则是根据系统对信号幅度和功率的要求实现对信号的驱动输出。电源部分向其他电路提供所需要的电能,驱动其他各部分的工作12。总体系统结构框图如图2.1所示:电源信号发生电路输出驱动电路控制电路图2.1 系统结构框图 本设计采用的是使用基于CPLD(复杂可编程逻辑器件)芯片的设计,可将流程中某些部分一起集成在CPLD芯片上,在本文中,就是利用CPLD芯片强大的功能,将电路的控制部分和波形产生部分合并在CPLD芯片上实现的。2.2.2 CPLD 内部流程 基于CPLD的多波形信号发生器的关键部分就在于所采用的CPLD芯片,整个信号发生器的大部分功能都是在CPLD芯片内部实现的。此芯片不仅要实现波形数据的产生,还要实现对输出波形进行幅度、频率的控制。具体原理流程图如图2.2所示 图2.2 CPLD内部原理图 控制寄存器的功能是用来将外部输入的数据转换成幅度控制字和频率控制字。在控制寄存器中,可以实现输入数据的串/并转换,所以不用担心控制字输入的方式,从而控制后面的各个功能模块。数控分频器的功能是在数控分频器的输入端输入不同数据时,输入的数据是由上一级控制寄存器输入的,能对输入时钟产生不同的分频比,输出不同频率的时钟,以改变输出信号的频率。使用VHDL语言编写正弦波、三角波、方波数据产生程序。各种波形的频率由上一级控制,可根据需要变换分频比,就能得到所需的信号频率。信号发生器的控制模块可以用数据选择器实现,编程实现数据选择器实现对三种信号的选择。最后将选择好的波形数据进行输出。2.3 系统工作原理整个系统主要包含晶体振荡器、CPLD芯片EPM7064和D/A转换电路。其总的系统结构框图如图2.3所示:晶体振荡器 数控控制器分频器 波形产生模块选择器D/A 转 换输出 图2.3 系统原理图 首先,由晶体振荡器发出时钟信号,送入CPLD芯片内。在时钟信号的作用下,波形数据产生器生成频率可变的波形数据数字信号。 其次,在CPLD芯片内,根据仪器面板8位数字量开关产生的预置数据D输出不同频率的时钟,以改变输出信号的频率。在时钟的作用下,sia,delta,sqyare模块分别产生正弦波、三角波、方波的波形。之后,SELECTOR(数据选择器)在面板上的波形选择开关CORTROL的控制下,选择输出不同的波形数据,送至D/A转换电路。D/A转换采用8位的DAC0832芯片。将数据选择器的输出与DA转换器的输入端连接。D/A转换器将波形数据产生器产生的波形数据转换为模拟量。最后,可接上普通示波器,可以观察到完整的波形输出。3 硬件设计3.1 基本电路介绍多波形信号发生器的硬件连接电路,主要是晶体振荡器、波形数据产生电路、D/A转换电路三个部分组成。 晶体振荡器产生8MHz时钟频率,为CPLD芯片提供时钟信号。 波形数据产生电路由CPLD芯片EPM7064产生。它接受晶体振荡器提供的时钟信号,运行内部程序,产生波形数据。 D/A转换电路由DAC0832构成,接收由芯片产生的波形数据,将数据转换成波形输出。 3.1.1 CPLD芯片MAX7000系列包括MAX7000E、MAX7000S和MAX7000A器件,是Altera公司基于乘积项(Product-Term)技术的可编程器件,其集成度为600-10000可用门,2-256个宏单元及6-212个用户I/O引脚,编程工艺采用PROM技术,其组合传输延迟快至4.5ns,采用16位计数器,频率达192.3MHz。此外,MAX7000系列器件输入寄存器的建立时间非常短,能提供多个系统时钟且有可编程的速度/功耗控制。各种速度等级的MAX7000系列器件都遵从PCI总线标准13。MAX7000系列的特点 1)MAX7000系列器件可与TTL兼容,可高密度地集成SSI、MSI和LSI等器件的逻辑。 2)MAX7000系列器件在速度、密度和I/O资源方面可与通用的掩膜式门阵列相媲美,因此可以用作门阵列的样片设计。3)MAX7000系列器件提供可编程的功耗/速度优化控制。在设计中,使影响速度的关键部分工作在高速、全功能状态,而其余部分工作在低速、小功耗状态。MAX7000也提供了一个为了减小输出缓冲器电压摆率的配置项,以降低没有速度要求的信号状态切换时的瞬态噪声。 4) MAX7000系列器件的输出驱动器均能配置在3.3V或5V电压下工作。MAX7000允许用于混合电压的系统中。5)MAX7000系列器件采用CMOS PROM单元实现逻辑功能。这种用户可编程结构可以容纳各种各样的、独立的组合逻辑和时序逻辑功能,并保证可编程、擦除100次以上。6)MAX7000系列器件有多种封装类型,包括PLCC、PGA、PQFP、RQFP和TQPF等14。根据设计要求,本文选用EPM7064芯片。EPM7064芯片有1250个可用门,64个宏单元,68个用户自定义I/O口,完全符合设计需要。EPM7064内部宏单元结构图如图3.1所示: 图3.1 EPM7064内部宏单元结构图EPM7064各功能数据15如表3.1所示:表3.13.1.2 D/ A转换芯片 DAC0832是8位分辨率D/A转换集成芯片,与处理器完全兼容,其价格低廉,有接口简单,转换控制容易等优点16。 图3.2 DAC 0832内部逻辑图DAC0832工作原理:如图所示,待转换的8位数字量由芯片的8位数据输入线D0D7输入,经DAC0832转换后,通过2个电流输出端IOUT1和IOUT2输出,IOUT1是逻辑电平为1的各位输出电流之和,IOUT2是逻辑电平为0的各位输出电流之和。另外,ILE、和是控制转换的控制信号。 DAC0832由8位输入寄存器、8位DAC寄存器和8位D/A转换电路组成。输入寄存器和DAC寄存器作为双缓冲,因为在CPU数据线直接接到DAC0832的输入端时,数据在输入端保持的时间仅仅是在CPU执行输出指令的瞬间内,输入寄存器可用于保存此瞬间出现的数据。有时,微机控制系统要求同时输出多个模拟量参数,此时对应于每一种参数需要一片DAC0832,每片DAC0832的转换时间相同,就可采用DAC寄存器对CPU分时输入到输入寄存器的各参数在同一时刻开始锁存,进而同时产生各模拟信号。控制信号ILE、用来控制输入寄存器。当ILE为高电平,为低电平,为负脉冲时,在LE产生正脉冲;其中LE为高电平时,输入寄存器的状态随数据输入线状态变化,LE的负跳变将输入数据线上的信息存入输入寄存器。 控制信号和用来控制8位A/D转换器。当为低电平,输入负脉冲时,则在LE产生正脉冲;其中LE为高电平时,DAC寄存器的输入与输出的状态一致,LE负跳变,输入寄存器内容存入DAC寄存器。DAC 0832的数据输出方式:有输出电压各自极性固定的单位性输出和在随动系统中输出电压有正负极性的双极性输出两种输出方式。3.2 硬件电路整体设计多波形信号发生器的硬件设计,主要即是CPLD芯片EPM7064的外围电路的设计、EPM7064与DAC0832的接口电路。3.2.1 晶体振荡器与EPM7064芯片连接电路 在本设计中,采用的是8MHz的有源晶体振荡器,为CPLD芯片提供时钟信号。由于本设计中采用的芯片是ALTER公司的EPM7064芯片,可以兼容3.3V和5V系统供电,所以不用担心高低电平转换的问题。 有源晶振不需要DSP的内部振荡器,信号质量好,比较稳定,而且连接方式相对简单。 图3.3 晶体振荡器与EPM7064芯片连接电路3.2.2 D/A转换电路 图3.4 D/A转换电路D0D7:数据输入线,TLL电平。 ILE:数据锁存允许控制信号输入线,高电平有效。 CS:片选信号输入线,低电平有效。 WR1:为输入寄存器的写选通信号。 XFER:数据传送控制信号输入线,低电平有效。 WR2:为DAC寄存器写选通输入线。 Iout1:电流输出线。当输入全为1时Iout1最大。 Iout2: 电流输出线。其值与Iout1之和为一常数。 Rfb:反馈信号输入线,芯片内部有反馈电阻。 Vcc:电源输入:+5V。 Vref:基准电压输入线:+5V。4 软件设计 本程序设计采用VHDL语言进行编写,VHDL语言设计的出现从根本上改变了以往数字电路的设计模式,使电路设计由硬件设计转变为软件设计。采用这样的设计可以简化硬件的开发和制造过程,通过修改VHDL源程序,可增加一些新功能,提高设计的灵活性,并提高了系统的可靠性。超高速硬件描述语言VHDL是美国国防部20世纪80年代初提出的VHSIC计划的产物,具有强大的语言结构、多层次的描述功能、良好的移植性和快速的ASIC转换能力,支持硬件的设计、综合、验证和测试。现在,VHDL已成为IEEE的工业标准硬件描述语言17。在本设计中,采用的是自底向上的设计方法,利用Max + Plus开发平台,先设计各模块功能。在各模块的设计中,需要用VHDL语言编写出控制寄存器、数控分频器、各波形信号数据产生器及数据选择器的实现程序,编译好各模块的功能之后,可生成相应的图形符号,供顶层电路进行调用。之后,由于Max + Plus支持图形编译法,在绘制顶层电路图时,将底层个模块文件调用出来,再根据CPLD内部原理图,进行连线,绘制出顶层电路图。总的来说,本设计使用了图形编译法和文本编译法相结合的方法。4.1 控制寄存器设计在本程序中包含两个进程,一是用来实现输入数据的串/并口转换,另一个是描述了一个用来输出幅度控制字和频率控制字的多路选择器。其程序如下:library ieee;use ieee.std_logic_1164.all;entity controler is port(clk:in std_logic;detain:in std_logic;ad:out std_logic_vector(7 downto 0);freq:out std_logic_vector(7 downto 0);end controler; architecture controller_arch of controller is signal out_tmp:std_logic_vector(8 downto 0); begin sp_proc:process(clk,datain) variable tmp:std_logic_vestor(8 downto 0); begin if(clkevent and clk=1) then tmp:=tmp(7 downto 0)&datain; end if; out_tmp=tmp; end process sp_proc; mux_proc:process(out_tmp(8) begin if(out_tmp(8)=1) then ad=out_tmp(7 downto 0); else fred=out_tmp(7 downto 0); end if;end process mux_proc; end control_arch;4.2 数控分频器设计数控分频器的功能是在输入端输入不同数据时,对输入时钟产生不同的分频比,输出不同频率的时钟,以改变输出信号的频率18。本设计中利用并行预置数的减法计数器实现,他的工作原理是:减法计数器在并行预置数的基础上,在时钟的作用下进行减计数,当计数值为零时产生溢出信号,加载预置数据,并且将溢出信号作为分频器的输出信号,实现N分频信号的输出。其分频系数N为:N= D+1 D为预置数的值。为了得到占空比为50%的矩形时钟信号,将输出再进行二分频。由此,该分频器的总分频系数为2N。本设计中一个波形周期由64个时钟信号组成,则输出信号频率为: 时钟频率为8MHz。数控分频器如程序: Library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity dfr isport(clk:in std_ logic;d:in integer range 0 to 255;fout:out std_ logic);end dfr;architecture one of dfr issignal full:std_ logic; 定义内部溢出标志信号beginprocess(clk)variable cnt9:integer range 0 to 312;内部变量,位宽同预置数据端beginif elkevent and clk=1 thenif cnt9=0 then cnt9:=d; 计数值为0时,产生溢出信号,同时,同步加载预置数据dfull=1;else cnt9:=cnt9-1;full=0;否则,进行减1计数end if;end if;end process;一一略去二分频进程end one;4.3 正弦波波形数据产生模块设计 用加法计数器和译码电路完成19。首先对幅度为1的正弦波的一个周期分为64个采样点,根据正弦波的函数关系计算得到每一点对应的幅度值,然后量化为8位二进制数据,最大值为255,最小值为0。以此得到正弦波波表。加法计数器生成译码电路的64个输入值,译码电路查表输出。Library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity sia isport(clk,clr:in std_logic;q:out std_logic_vector(7 downto0);end sia;architecture one of sia isbeginprocess(clk,clr)variable tmp:integer range 0 to 63;beginif clr=0 then qqqqqq=qqqq null;end case;end if;end process;end one;4.4 三角波波形数据产生模块设计该模块可设计一个可逆计数器实现20。设计时设置一变量作为工作状态标志,在此变量为全0时,当检测到时钟的上升沿时进行加同一个数操作,为全1时,进行减同一个数操作。由于D/A转换采用8位的DAC0832芯片,且设64个时钟为一个三角波周期,则输出Q每次加或减8。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity delta isport(clk,clr:in std_logic; q:out std_logic_vector(7 downto 0);end delta;architecture a of delta issignal a:std_logic;signal temp: std_logic_vector(7 downto 0);begin process(clk,clr)beginif clr=0 then temp=00000000;a=0;elsif clkevent and clk=1 thenif a=0 thenif temp=11111111 thena=1;temp=temp-1;elsetemp=temp+1;end if;elseif temp=00000000 thena=0;elsetemp=temp-1;end if;end if;end if;q=temp;end process;end a;4.5 方波波形数据产生模块设计通过交替送出全0和全1,并给以32个时钟延时实现,64个时钟为一个周期。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity signal5 isport(clk,clr:in std_logic;q:out std_logic_vector(7 downto 0);end signal5;architecture a of signal5 issignal a: std_logic;beginprocess(clk,clr)variable tem:std_logic_vector(7 downto 0);beginif clr=0 thena=0;else if clkevent and clk=1 thenif tmp=”11111111” thentmp:=”00000000”;elsetem:=tmp+1;end if;if tmp”00100000” thena=1;elsea=0;end if;end if;enf if;end process;process(clk,a)beginif clkevent and clk=1 thenif a=1 thenq=”11111111”;elseq=”00000000”;end if;end if;end process;end a;4.6 数据选择器设计用CASE语句设计完成。在CORTROL的控制下选择输出一种波形数据输出。选择器真值表如表4.1所示:表4.1 S1 S0y 0 0Sia 0 1delta 1 0Square 1 1At_will X XZlibrary ieee;use ieee.std_logic_1164.all;entity mux4 is port(sia,delta,square:in std_logic;s0:in std_logic;s1:in std_logic;y:out std_logic); end mux4;architecture rtl of mux4 issignal comb:std_logic_vector(1 downto 0);begin mux_process:process(sia,delta,square,s0,s1) begin combyyyyy=z; end case; end process mux_process;end rtl;4.7 波形数据产生器顶层电路设计 在Max+Plus中基本完成所有底层设计文件的编辑之后,就可以开始编辑顶层设计文件。上面的源程序生成了对应的符号文件,将上述6个模块生成符号,供顶层电路调用。这些模块分别是:控制寄存器模块controller、数控分频器模块dfr、正弦波信号产生模块sia、三角波号产生模块delta、方波信号产生模块square和数据选择器mux4。在本设计中,还添加了一个at_will模块,它是一个其它波形组合模块,就是可以将正弦波、三角波、方波任意组合输出。顶层电路的连接如图4.2所示: 图4.2 顶层电路图5 总结与展望5.1 全文小节本文对多波形信号发生器的设计进行了比较系统的研究。研究的主要内容为各种信号发生器的实现方法。研究工作主要分两个方面:硬件部分设计,包括系统的结构组成及各部分功能的实现;软件部分设计,其中包括VHDL语言程序设计和CPLD芯片内部顶层电路的设计。主要工作及研究内容如下:1) 硬件部分:设计了一套多波形信号发生器的硬件系统。整个系统包含晶振电路,CPLD芯片和D/A转换电路。2) 软件部分:设计了CPLD芯片内部各个波形数据的产生模块和控制模块,绘制出了顶层电路图,更清晰的表示了电路的工作原理。5.2 展望 随着专用集成电路ASIC设计技术和电子设计自动化EDA技术的发展,为数字系统设计带来了革命性的变化。目前数字系统的设计,根据系统的功能和行为要求,利用计算机辅助设计自上至下的逐层完成相应的描述、综合、优化、仿真与验证,直到生成器件。整个系统集成在一个芯片上,体积小、功耗低、可靠性高并且具有可现场编程能力,可不断的提升系统性能21。现在的波形信号发生器已经使用到DDS(直接数字频率和成)技术。直接数字频率合成在相对带宽、频率转换时间、相位连续性、正交输出、高分辨率以及集成化等一系列性能指标方面已远远超过了传统频率合成技术,并可以通过更换波形数据来灵活实现任意波形22。当然,因时间关系,本设计中还存在着许多缺点和不足,如在CPLD芯片与计算机相连接方面,控制字的输入方面等都没有考虑周详,没有将各个波形数据模块使用Max+Plus 软件进行仿真,在软件设计方面只作到了编写程序没有将整个CPLD芯片进行仿真。以上缺点和不足,希望各位老师批评指正。5.3 结束语多波形信号发生器的设计是理论联系实际、基础研究与应用研究并驾齐驱的一个技术学科,其各种实现方法的设计更有锦上添花、画龙点睛的作用。多波形信号发生器的进步,生动地体现了现代科技的发展。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论