您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 基于VHDL的波形发生器的设计与仿真
基于VHDL的波形发生器的设计与仿真第1页,共9页基于VHDL的波形发生器的设计与仿真王会萍(安庆师范学院物理与电气工程学院安徽安庆246011)指导教师:张杰摘要:直接数字频率合成(DDS)是七十年代初提出的一种新的频率合成技术,能够满足现代电子系统设计的需求,因而得到了迅速的发展。而现场可编程门阵列器件(FPGA)的出现,改变了现代电子数字系统的设计方法,提供了一种全新的设计模式。本文将利用DDS和FPGA技术,提出多种波形信号发生器设计解决方案。文章首先根据各种波形产生的基本原理,建立其数学模型,给出了多波信号发生器的顶层原理图及系统结构图,然后利用ALTERA公司提供的Singacompler工具对其进行编译,产生QUARTUSII能够识别的VHDL源程序,最后对设计方案进行了波形仿真,仿真结果表明设计方案正确,达到了设计要求。利用DDS和FPGA进行多种波形信号发生器的设计,其具有设计简单,修改灵活,输出波形信号稳定等优点。关键词:波形发生器,DDS,现场可编程门阵列,单片机。1引言20世纪90年代,国际上电子和计算机技术较先进的国家,一直在积极探索新的电子电路设计方法。电子设计自动化(EDA)工具给电子设计带来了巨大的变革,特别是可编程逻辑器件和硬件描述语言的出现和发展,解决了用传统的方法设计较大系统工程时的诸多不便,成为电子电路设计人员最得力的助手。随着计算机和EDA技术的发展,基于FPGA的电子设计则是目前发展较为迅速的一个领域,而且广泛应用于计算机、通信等各个领域。因此,本文主要利用VHDL,设计制作一个多功能波形发生器。本文共分5大部分,第1部分介绍波形发生器的研究现状、研究波形发生器的目的和意义以及研究的主要内容,并且就研究现状指出了其中存在的问题。接着第2部分则是介绍了DDS技术的基本原理,并分析DDS技术的特点。直接频率合成(DDS)技术因有突出的特点,如输出波形灵活且相位连续(这是其最大优势)、频率稳定度高、输出频率分辨率高、频率转换速度快、输出相位噪声低、集成度高、功耗低、体积小等,使其在频率合成源技术中被广泛应用,但DDS合成频率比较低且输出频谱杂散较大,又限制了其应用。本段将介绍直接频率合成(DDS)的一些基础知识及常见问答。本文第3部分主要确定设计方案,硬件、软件等方面的确定,进而得出软件的流程图,并确定主要器件选型。波形发生器各个模块紧接着第4部分将会给出测试结果。下部分给出的是相应的仿真结果以及心得体会。2绪论2.1波形发生器的发展现状采用传统的模拟振荡电路构成的波形发生器产生的信号频率精度低,不仅成本高,外围电路复杂,易受外界干扰,而且调试困难,不便于调控,实现的性能指标也不理想。对此采用具有良好性能的专用集成芯片就能达到本题的目的要求。但采用该方法所需的外围电路模块多且较为复杂,不利于控制和问题的检查。而纯单片机的方法虽便于控制但又难以达到题目的要求。基于VHDL的波形发生器的设计与仿真第2页,共9页现如今是信息时代,人们对使用计算机获取信息、处理信息的依赖性也越来越高。因此,利用FPGA采用DDS的方式来设计的波形发生器前景十分可观。2.2研究波形发生器的目的和意义随着电子技术的飞速发展,VHDL作为标准化的硬件描述语言获得了广泛的应用。无论是采用传统的模拟振荡电路还是专用的集成芯片所作的波形发生器已不能满足需要。因此,对波形发生器的设计势在必行。本文主要利用VHDL语言,设计制作一个多功能波形发生器,能实现多种波形的输出及组合,并进行仿真。2.3本文研究的主要内容本文主要是研究利用FPGA采用直接数字式频率合成器(DirectDigitalFrequencySynthesis,简称DDS或DDFS)的方式而做成的波形发生器。在FPGA中定义Rom空间用来存储所需波形的量化数据,按照不同频率要求以频率控制字为步进对相位增量进行累加,以累加相位值作为地址码读取存放在存储器内部的波形数据,经D/A转换和幅度控制,再滤波即可得到所需的波形。另外,全数字化结构便于集成,输出相位连续,而且理论上可以实现任意波形,能够比较全面的满足题目的要求(如图1所示)。[1]图13DDS的基本原理与性能分析3.1DDS的基本原理DDS全称DirectDigitalSynthesizer(直接数字合成),是一种产生模拟波形的方法。是从相位出发,直接采用数字技术产生波形的一种频率合成技术。通常是通过数字形式的时间转换信号再执行数模转换产生波形的。因为DDS设备上的运行是基于数字的,所以能够在输出频率、波形频率分解和运行于宽频率频谱之间相互转换。当我们要得到某一目标频率fd时,一般情况下是需要有一个基准频率源fo,一个分频系数为m的分频器,它们之间有如下关系:m=fo÷fd(1)由于分频器的分频系数m只能是整数,因此实际分频系数m1,并不等于需要的分频器分频系数m,他们有如下关系:m1=int(m)≤m(2)因此,为了得到准确的目标频率fd,我们希望分频器的输入频率不是基准频率源fo,而是另外的一个频率f1=fd×m1.这样我们通过分频系数为m1的分频器就可以得到准确的目标频率fd。由于m1≤m,也就是f1≤fo。假设fo和f11的差值为d=fo-f1,因此只要在基准频率fo上减去d,然后送入分频系数为m1的分频器,就可以得到我们需要的目标频率了。通过上述分析可知,频率数字直接合成技术和常规数字分频技术的区别是:分频器输入的频率不是基准频率fo,而是经过修正的f1。正是这个f1,使我们有可能得到准确的目标频率fd因此如何参考频率源相位累加器波形存储器数模转换器频率控制字基于VHDL的波形发生器的设计与仿真第3页,共9页得到f1是实现数字直接分频技术的关键。在计算分频器的分频系数时,一般采用的公式如下:Fo÷fd=m+S(3)式中S是fo/fd的余数。根据上述公式,得出DDS的原理框图(如图2)如下图2DDS的原理框图上图就是DDS的原理框图。需要注意的是,在实际应用中,应该把减去的S个脉冲均匀的分布在单位时间上,否则最后得到的fd可能有较大的相位抖动如果对fo信号,在单位时间内,每C=int(fo÷S)个脉冲减去一个脉冲,就可以使输出频率fd的相位抖动最小。3.2DDS的特点DDS具有相对带宽很宽,频率转换时间极短(可小于20ns),频率分辨率可以做到很高。当DDS的频率分辨率在相位累加器的位数N足够大时,理论上是可以获得相应的分辨精度,这是传统方法难以实现的。但由于DDS中不需要行为反馈控制,不仅频率建立及频率切换快,而且与频率分辨率、频谱纯度相互独立,这一点明显的优于PPL。DDS的失真度除受D/A转换器本身的噪声影响外与离散点数N和D/A字长有着密切关系,设q为均匀量化间隔,则其近似数学关系为%1001)/sin(/6122NNqTHD(4)按上式计算,当取样点数为1024点时,失真度约为0.26%。在最高输出频率点数为32点,量化级数为256时,失真度约为5.676%,已经足够小了,可以满足系统的要求。4系统设计方案4.1硬件设计方案及选型显示模块若采用LED数码管方式。虽此方法所占端口资源少,且数码管易于控制,成本低,但显示不够直观,不能随意显示字符。反之,若采用LCD液晶屏方式,不仅可以显示中文,方便实现直观的菜单功能,还可以在此基础上制作比较人性化的界面,并显示丰富多彩的内容。同时,用键盘控制描点的方法可绘制出任意波形。较之两者,采用LCD液晶屏方式其中的YM12864C点阵液晶显示模块更适合该方案。[2]对于幅度的控制,可由DAC0832控制。系统产生的波形作为DAC0832的参考电压源输入,其输出波形幅度为V=(N/1024)×Vin,其中N为单片机输入的幅度控制字。利用芯片内部的电阻分压网络,可作为数控电位器使用。其电路连接如图3所示:fofdfo-Sf1÷m基于VHDL的波形发生器的设计与仿真第4页,共9页4.2软件设计方案及流程图波形的存储模块主要针对掉电所引起的数据丢失。可以替FPGA外接一块锂电池或者是采用非易失NVRAM或EEPROM对当前产生波形的数据进行实时存储。[3]两种方案既简单又方便。软件设计的流程图如图4所示:开始进入主菜单判断按键正弦波存储方波三角波组合波频率幅度返回主菜单频率幅度返回主菜单频率幅度返回主菜单波形组合谐波组合(参数固定)三角波参数自加方波参数自加返回主菜单正弦波参数自加KEY1KEY2KEY3KEY4KEY5KEY1KEY3K1KEY2KEY6KEY1KEY3KKEY2KEY6KEY1KEY3KKEY2KEY6图4软件流程图D/ATHS5651D/ADAC0832波形数据Vref幅度控制字波形输出波形图3DAC0832幅度控制原理基于VHDL的波形发生器的设计与仿真第5页,共9页4.3主要器件选型及性能介绍波形产生的方法是采用查找表方式产生的。在FPGA中定义ROM,用来存储正弦波、方波、三角波的波形数据。由于后级D/A输出采用10位的THS5651,所以ROM表采用1024*1024模式,内部DDS数值表通过在MatLab中使用其精确计算公式获得,并导入系统中。频率控制模块采用了Altera公司的FPGA器件EP1C3T144C8,适合中规模应用。幅度的控制采用DAC0832,利用内部的电阻分压网络,可作为数控电位器使用(如图5所示)。我们采用P1口复用的办法来解决键盘控制和液晶显示的问题。由于单片机的P0和P2口与FPGA相连接,用来进行二者之间的数据交换,因此我们可用的外部单片机数据口只有P1口和P3口,而P3口需要复用为特殊功能口,所以能够作为数据交换和控制的端口只有P1口。虽然我们采用的键盘键数较少(只有8个),但是我们用软件的方式的实现了按键的分时复用,这样以较少的按键实现了较多的功能选择和控制。同时我们利用中文液晶屏幕制作了非常直观的中文菜单,配合按键的功能进行即时显示,这样使按键的使用变得直观和更加人性化。[4]4.4系统设计根据题目的要求,制定的方案如下:以FPGA作为波形产生的核心,可通过查找表的方式产生正弦波、方波、三角波数据,然后通过10位高速D/A芯片THS5651产生连续波形。以AT89C55单片机为基本核心构成的控制单元,可完成对波形各个参量的改变、LCD显示、功能选择的控制实现。波形数据表中的波形数据经过D/A芯片THS5651完成数模转换,再由DAC0832内部的电阻分压网络实现波形幅度的控制,进而经过滤波以及稳幅电路后输出,得到具有一定带负载能力的所需波形(如图6,图7所示)。[5]RbfIout1Iout2D0……D7_+VrefVo图5DAC0832幅度控制连接图基于VHDL的波形发生器的设计与仿真第6页,共9页液晶显示插座P3PortAT89C51/52P0.7---P0.0---PIO7---PIO0P2.7---P2.0---PIO8---PIO15GWA7128GWAK50/30FPGA/CPLD工作电源独立显示板串行静态显示插座复用P3、P1口显示可配液晶882.5V3.3V5V电源PC通信适配电路RS232串行PIO25PIO24建议连接信号晶振CLOCK2CLOCK012MHz50MHzP2P0CSSCLK93C46DODIP13P12P11P32816单片机RAM/ROMP3.1P3.0键键键键键键键键P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0RST图7单片机与FPGA系统连接线路图单片机波形数据表波形存储液晶显示键盘控制波形产生频率控制幅度控制输出级任意波形输入图6系统结构简图基于VHDL的波形发生器的设计与仿真第7页,共9页5结论及仿真结果周期性波形包括频率和幅值可调的正弦波、方波、三角波及其线形组合波形。[6]用示波器来测试波形的频率和幅值,数据如表8-1,表8-2,表8-3所示。正弦波方波三角波设定频率值(Hz)实际频率值(Hz)误差(%)实际频率值(Hz)误差(%)实际频率值(Hz)误差(%)504845
本文标题:基于VHDL的波形发生器的设计与仿真
链接地址:https://www.777doc.com/doc-2572734 .html