![基于DDS的信号发生器设计毕业论文_第1页](http://file4.renrendoc.com/view2/M00/01/35/wKhkFmYw5imAXjPsAAKKIBwHLEI947.jpg)
![基于DDS的信号发生器设计毕业论文_第2页](http://file4.renrendoc.com/view2/M00/01/35/wKhkFmYw5imAXjPsAAKKIBwHLEI9472.jpg)
![基于DDS的信号发生器设计毕业论文_第3页](http://file4.renrendoc.com/view2/M00/01/35/wKhkFmYw5imAXjPsAAKKIBwHLEI9473.jpg)
![基于DDS的信号发生器设计毕业论文_第4页](http://file4.renrendoc.com/view2/M00/01/35/wKhkFmYw5imAXjPsAAKKIBwHLEI9474.jpg)
![基于DDS的信号发生器设计毕业论文_第5页](http://file4.renrendoc.com/view2/M00/01/35/wKhkFmYw5imAXjPsAAKKIBwHLEI9475.jpg)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
湖南工业大学本科毕业设计(论文)PAGEPAGEV基于DDS的信号发生器设计毕业论文目录第1章绪言 .11.1课题背景 .11.2课题研究的目的和意义 11.3国内外的研究状况 21.3.1波形发生器的发展状况 21.3.2国内外波形发生器产品比较 31.3.3本课题在国内外的研究现状 4第2章信号发生器的方案设计 42.1系统实现方案分析与比较 42.1.1频率合成器方案 42.1.2移相方案 62.1.3存储器方案 72.2模块结构划分 82.2.1DDS的基本原理 92.2.2FPGA实现的直接数字频率合成器 102.2.3移相原理 10第3章电路设计 143.1FPGA设计DDS电路的具体实现 143.1.1相位累加器部分 143.1.2相位/幅度转换电路 143.1.3波形表生成 153.1.4D/A转换电路 153.1.5系统控制电路 153.2单片机与FPGA的接口设计 153.3现场可编程逻辑器件(FPGA)的选择 173.4其他电路设计 183.4.1晶体振荡电路 183.4.2地址计数脉冲产生电路 183.4.3幅度控制电路 193.4.4单片机外扩展存储器电路 193.4.5滤波、缓冲输出电路 203.4.6键盘和显示控制电路 213.4.7D/A转换电路的设计 223.4.8DAC0832芯片原理 24结束语 28参考文献...........................29致谢.............................30附录1 31附录2 32附录3 34湖南工业大学本科毕业设计(论文)PAGE35第1章绪言1.1课题背景在一些电子设备的电路板故障检测仪中,往往需要频率、幅度都能由计算机自动调节的信号源。采用诸如MAX038信号发生器芯片外加电阻及切换开关等器件虽然也能调节频率和幅度,但这种调节是离散的,且电路复杂,使用不方便。而采用直接数字合成芯片DDS及外加D/A转换芯片构成的可控信号源,可产生正弦波、调频波、调幅波及方波等,并且其信号的频率和幅度可由微机来精确控制,调节非常方便。另外随着21世纪的到来,人类正在跨入信息时代。现代通信系统的发展方向是功能更强,体积更小,速度更快,功耗更低。而大规模可编程器件CPLD/FPGA在集成度、功能和速度上的优势正好满足通信系统的这些要求。所以今天无论是民用的移动电话、程控交换机、集群电台、广播发射机和调制解调器,还是军用的雷达设备、图形处理仪器、遥控遥测设备、加密通信机中,都已广泛地使用大规模可编程器件[2]。由于数字技术在处理和传输信息方面的各种优点,数字技术和数字集成电路的使用已经成为构成现代电子系统的重要标志。电子系统的集成化,不仅可使系统的体积小、重量轻且功耗低,更重要的是可使系统的可靠性大大提高。因此自集成电路问世以来,集成规模便以10倍/6年的速度增长。从20世纪90年代初以来,电子系统日趋数字化、复杂化和大规模集成化。为满足个人电脑、无绳电话和高速数据传输设备的发展需求,电子厂商们越加迫切地追求电子产品的高功能、优品质、低成本、微功耗和微小封装尺寸。为达到此目标,必须采用少量的IC器件使面积尽可能小。1.2课题研究的目的和意义正弦信号发生器作为电子技术领域中最基本的电子仪器,广泛应用于航空航天测控、通信系统、电子对抗、电子测量、科研等各个领域中。随着电子信息技术的发展,对其性能的要求也越来越高,如要求频率稳定性高、转换速度快,具有调幅、调频、调相等功能,另外还经常需要两路正弦信号不仅具有相同的频率,同时要有确定的相位差[4]。随着数字信号处理和集成电路技术的发展,直接数字频率合成(DDS)的应用也越来越广泛。DDS具有相位和频率分辨率高、稳定度好、频率转换时间短、输出相位连续、可以实现多种数字与模拟调制的优点,而可编程门阵列(FPGA)具有集成度高、通用性好、设计灵活、编程方便、可以实现芯片的动态重构等特点,因此可以快速地完成复杂的数字系统。由于模拟调相方法有生产性差、调试不方便、调制度控制不精确等缺点,因此采用数字方法实现各种模拟调制也越来越普遍[5]。现在许多DDS芯片都直接提供了实现多种数字调制的功能,实现起来比较简单,而要实现模拟线性调制具有一定的难度。因此本设计介绍了一种由单片机控制,并采用FPGA实现DDS功能,产生频率和相位可调的正弦波信号的方法。单片机是实现各种控制策略和算法的载体。波形发生器也可运用单片机技术,通过巧妙的软件设计和简易的硬件电路,产生数字式的正弦波相位、频率和幅值可调的信号。信号的频率、相位可通过键盘输入并显示。与现有各类型波形发生器比较而言,产生的数字信号干扰小,输出稳定,可靠性高,特别是操作简单方便,成本低。1.3国内外的研究状况1.3.1波形发生器的发展状况波形发生器亦称函数发生器,作为实验用信号源,是现今各种电子电路实验设计应用中必不可少的仪器设备之一。目前,市场上常见的波形发生器多为纯硬件的搭接而成,且波形种类有限,多为锯齿、正弦、方波、三角等波形。信号发生器作为一种常见的应用电子仪器设备,传统的可以完全由硬件电路搭接而成,如采用555振荡电路发生正弦波、三角波和方波的电路便是可取的路径之一,不用依靠单片机。但是这种电路存在波形质量差,控制难,可调范围小,电路复杂和体积大等缺点。在科学研究和生产实践中,如工业过程控制,生物医学,地震模拟机械振动等领域常常要用到低频信号源。而由硬件电路构成的低频信号其性能难以令人满意,而且由于低频信号源所需的RC很大;大电阻,大电容在制作上有困难,参数的精度亦难以保证;体积大,漏电,损耗显著更是其致命的弱点。一旦工作需求功能有增加,则电路复杂程度会大大增加。波形发生器是能够产生大量的标准信号和用户定义信号,并保证高精度、高稳定性、可重复性和易操作性的电子仪器。函数波形发生器具有连续的相位变换、和频率稳定性等优点,不仅可以模拟各种复杂信号,还可对频率、幅值、相移、波形进行动态、及时的控制,并能够与其它仪器进行通讯,组成自动测试系统,因此被广泛用于自动控制系统、震动激励、通讯和仪器仪表领域。在70年代前,信号发生器主要有两类:正弦波和脉冲波,而函数发生器介于两类之间,能够提供正弦波、余弦波、方波、三角波、上弦波等几种常用标准波形,产生其它波形时,需要采用较复杂的电路和机电结合的方法。这个时期的波形发生器多采用模拟电子技术,而且模拟器件构成的电路存在着尺寸大、价格贵、功耗大等缺点,并且要产生较为复杂的信号波形,则电路结构非常复杂。同时,主要表现为两个突出问题,一是通过电位器的调节来实现输出频率的调节,因此很难将频率调到某一固定值;二是脉冲的占空比不可调节。在70年代后,微处理器的出现,可以利用处理器、A/D/和D/A,硬件和软件使波形发生器的功能扩大,产生更加复杂的波形。这时期的波形发生器多以软件为主,实质是采用微处理器对DAC的程序控制,就可以得到各种简单的波形。90年代末,出现几种真正高性能、高价格的函数发生器、但是HP公司推出了型号为HP770S的信号模拟装置系统,它由HP8770A任意波形数字化和HP1776A波形发生软件组成。HP8770A实际上也只能产生8中波形,而且价格昂贵。不久以后,Analogic公司推出了型号为Data-2020的多波形合成器,Lecroy公司生产的型号为9100的任意波形发生器等。而近几年来,国际上波形发生器技术发展主要体现在以下几个方面:(1)过去由于频率很低应用的范围比较狭小,输出波形频率的提高,使得波形发生器能应用于越来越广的领域。波形发生器软件的开发正使波形数据的输入变得更加方便和容易。波形发生器通常允许用一系列的点、直线和固定的函数段把波形数据存入存储器。同时可以利用一种强有力的数学方程输入方式,复杂的波形可以由几个比较简单的公式复合成v=f(t)形式的波形方程的数学表达式产生。从而促进了函数波形发生器向任意波形发生器的发展,各种计算机语言的飞速发展也对任意波形发生器软件技术起到了推动作用。目前可以利用可视化编程语言(如VisualBasic,VisualC等等)编写任意波形发生器的软面板,这样允许从计算机显示屏上输入任意波形,来实现波形的输入。(2)与VXI资源结合。目前,波形发生器由独立的台式仪器和适用于个人计算机的插卡以及新近开发的VXI模块。由于VXI总线的逐渐成熟和对测量仪器的高要求,在很多领域需要使用VXI系统测量产生复杂的波形,VXI的系统资源提供了明显的优越性,但由于开发VXI模块的周期长,而且需要专门的VXI机箱的配套使用,使得波形发生器VXI模块仅限于航空、军事及国防等大型领域。在民用方面,VXI模块远远不如台式仪器更为方便。(3)随着信息技术蓬勃发展,台式仪器在走了一段下坡路之后,又重新繁荣起来。不过现在新的台式仪器的形态,和几年前的己有很大的不同。这些新一代台式仪器具有多种特性,可以执行多种功能。而且外形尺寸与价格,都比过去的类似产品减少了一半。1.3.2国内外波形发生器产品比较早在1978年,由美国Wavetek公司和日本东亚电波工业公司公布了最高取样频率为5MHz,可以形成256点(存储长度)波形数据,垂直分辨率为8bit,主要用于振动、医疗、材料等领域的第一代高性能信号源,经过将近30年的发展,伴随着电子元器件、电路、及生产设备的高速化、高集成化,波形发生器的性能有了飞速的提高。变得操作越来越简单而输出波形的能力越来越强。波形操作方法的好坏,是由波形发生器控制软件质量保证的,编辑功能增加的越多,波形形成的操作性越好。表1.1给出了几种波形发生器的性能指标,从中可以看出当今世界上重要电子仪器生产商在波形发生器上的研制水平。表1.1一些波形发生器的性能指标公司TektronixTektronix横河电机Wavetek型号AG320AWG710AG5100295最高采用频率16MS/s4GMS/s1GMS/s50MS/s通道数2224垂直分辨率12bit8bit8bit12bit存储容量64K8M8M64K输出电压10V2.5V2V15V1.3.3本课题在国内外的研究现状二十一世纪,随着集成电路技术的高速发展,出现了多种工作频率可过GHz的DDS芯片,同时也推动了函数波形发生器的发展,2003年,Agilent的产品33220A能够产生17种波形,最高频率可达到20M,2005年的产品N6030A能够产生高达500MHz的频率,采样的频率可达1.25GHz。由上面的产品可以看出,函数波形发生器发展很快。对目前而言,国外(美)研究和使用的信号发生器大多要求频率在10HZ-50MHZ,产生正弦、三角、锯齿、方波、调幅、直流等波形,而国内则对频率在5*10HZ-40MHZ,能产生正选-三角等基本波形已经调幅、调频、TTL等的信号发生器需求大。第二章信号发生器的方案设计2.1系统实现方案分析与比较在这个系统中,较为困难的部分是由FPGA实现频率合成器的功能及移相功能的实现。因为要求产生两路两路信号,频率和相位可调,且都要以数字的形式进行控制和处理,所以在设计中将分别对部分电路提出几种实现方案并进行分析和论证。2.1.1频率合成器方案频率合成是指对一个标准信号频率经过一系列算术运算,产生具有相同精度和稳定度的大量离散频率的技术[13]。频率合成有多种实现方法,其中直接数字频率合成技术与传统频率合成技术相比具有难以比拟的优点,如频率切换速度快、分辨率高、频率和相位易于控制等。因此得到越来越广泛的应用,成为当今现代电子系统及设备中频率源设计的首选。实现DDS的三种技术方案:(1)采用高性能DDS单片电路的解决方案:随着微电子技术的飞速发展,目前市场上性能优良的DDS产品不断推出,主要有Qualcomm、AD、Sciteg和Stanforc等公司单片电路(monolithic)。Qualcomm公司推出了DDS系列Q2220、Q2230、Q2334、Q2240、Q2368,其中Q2368的时钟频率为130MHZ,分辨率为0.03HZ,杂散控制为-76dBc,变频时间为0.1us;美国AD公司也相继推出了他们的DDS系列:AD9850、AD9851、可以实现线性调频的AD9852、两路正交输出的AD9854以及以DDS为核心的QPSK调制器AD9853、数字上变频器AD9856和AD9857。AD公司的DDS系列产品以其较高的性能价格比,目前取得了极为广泛的应用。下面仅对比较常用的AD9850芯片作一个简单介绍。AD9850是AD公司采用先进的DDS技术,1996年推出的高集成度DDS频率合成器,它内部包括可编程DDS系统、高性能DAC及高速比较器,能实现全数字编程控制的频率合成器和时钟发生器。接上精密时钟源,AD9850可产生一个频谱纯净、频率和相位都可编程控制的模拟正弦波输出。此正弦波可直接用作频率信号源或转换成方波用作时钟输出。AD9850接口控制简单,可以用8位并行口或串行口直接输入频率、相位等控制数据。32位频率控制字,在125MHZ时钟下,输出频率分辨率达0.029HZ。先进的CMOS工艺使AD9850不仅性能指标一流,而且功耗少,在3.3V供电时,功耗仅为155mW。扩展工业级温度范围为-40~+85摄氏度,其封装是28引脚的SSOP表面封装。AD9850采用32位相位累加器,截断成14位,输入正弦查询表,查询表输出截断成10位,输入到DAC。DAC输出两个互补的模拟电流,接到滤波器上。调节DAC满量程输出电流,需外接一个电阻Rset,其调节关系是Iset=32(1.248V/Rset),满量程电流为10~20mA[14]。(2)采用低频正弦波DDS单片电路的解决方案:MicroLinear公司的电源管理事业部推出低频正弦波DDS单片电路ML2035以其价格低廉、使用简单得到广泛应用。ML2035特性:(1)输出频率为0~25KHZ,在时钟输入为12.352MHZ时频率分辨率可达到1.5HZ(-0.75~+0.75HZ),输出正弦波信号的峰-峰值为Vcc;(2)高度集成化,无需或仅需极少的外接元件支持,自带3~12MHZ晶体振荡电路;(3)兼容的3线SPI串行输入口,带双缓冲,能方便地配合单片机使用;(4)增益误差和总谐波失真很低。ML2035为DIP-8封装,各引脚功能如下:(1)Vss:-5V电源;(2)SCK:串行时钟输入,在上升沿将串行数据锁入16位移位寄存器;(3)SID:串行数据输入,该串行数据为频率控制字,决定6脚输出的频率;(4)LATI:串行数据锁存,在下降沿将频率控制字锁入16位数据锁存器;(5)VCC:+5V电源;(6)VOUT:模拟信号输出;(7)GND:公共地,输入、输出均以此点作为参考点;(8)CLKIN:时钟输入,可外接时钟或石英晶体。ML2035生成的频率较低(0~25KHZ),一般应用于一些需产生的频率为工频和音频的场合。如用2片ML2035产生多频互控信号,并与AMS3104(多频接收芯片)或ML2031/2032(音频检波器)配合,制作通信系统中的收发电路等。可编程正弦波发生器芯片ML2035设计巧妙,具有可编程、使用方便、价格低廉等优点,应用范围广泛,适合需要低成本、高可靠性的正弦信号的场合。(3)自行设计的基于FPGA芯片的解决方案:DDS技术的实现依赖于高速、高性能的数字器件。可编程逻辑器件以其速度高、规模大、可编程,以及有强大EDA软件支持等特性,十分适合实现DDS技术。Altera是著名的PLD生产厂商,多年来一直占据着行业领先的地位。Altera的PLD具有高性能、高集成度和高性价比的优点,此外它还提供了功能全面的开发工具和丰富的IP核、宏功能库等,因此Altera的产品获得了广泛的应用。Altera的产品有多个系列,按照推出的先后顺序依次为Classic系列、MAX(MultipleArrayMatrix)系列、FLEX(FlexibleLogicElementMatrix)系列、APEX(AdvancedLogicElementMatrix)系列、ACEX系列、Stratix系列以及Cyclone等[15]。虽然有的专用DDS芯片的功能也比较多,但控制方式却是固定的,因此不一定是我们所需要的。而利用FPGA则可以根据需要方便地实现各种比较复杂的调频、调相和调幅功能,具有良好的实用性。就合成信号质量而言,专用DDS芯片由于采用特定的集成工艺,内部数字信号抖动很小,可以输出高质量的模拟信号;利用FPGA也能输出较高质量的信号,虽然达不到专用DDS芯片的水平,但信号精度误差在允许范围之内。2.1.2移相方案要实现两路信号具有确定的相位差,采用数字移相技术,这是目前移相技术的潮流。数字移相技术的核心是先将模拟信号数字化,移相后再还原成模拟信号。数字移相主要有两种形式:一种是先将正弦波信号数字化,并形成一张数据表存入ROM芯片中,此后可通过两片D/A转换芯片在单片机的控制下连续地循环输出该数据表,就可获得两路正弦波信号,当两片D/A转换芯片所获得的数据序列不同时,则转换所得到的两路正弦波信号就存在着相位差。相位差的值与数据表中数据的总个数及数据地址的偏移量有关。这种处理方式的实质是将数据地址的偏移量映射为信号间的相位值。另一种是先将参考信号整形为方波信号,并以此信号为基准,延时产生另一个同频的方波信号,再通过波形变换电路将方波信号还原成正弦波信号。以延时的长短来决定两信号间的相位值。这种处理方式的实质是将延时的时间映射为信号间的相位值。综合各方面考虑本设计采用前一种方式,具体调整方法如下:可预置计数器的初值不同,从ROM中读出周期信号函数采样信号时的起始地址就不同,对应的信号相位也就不同。故只要在初始时刻,通过对计数器预置不同的初值即可形成两路信号间不同的相位差,从而达到调节信号间相位的目的。2.1.3存储器方案(1)波形表存储器因为本设计是采用FPGA实现DDS的功能,所以使用FPGA作为数据转换的桥梁,将波形数据存储到其内部的RAM中,并由DDS系统产生波形输出。需存储在RAM中的波形数据是由单片机采集外部数据,对ROM中存储的标准波形进行各种相应的运算而得到。波形表存储器ROM有三种方法实现。方法一:外接ROM用单片机来完成。可采用并行两片32K的EEPROM存储器AT28C256,共16位位宽,可以实现12位波形表存储,150ns读取速度完全满足20KHZ的工作频率。实现方案:将归一化的正弦波存储在32KEEPROM中,波形存储64个点。然后由单片机根据键盘输入的不同要求,对各点数据乘相应系数并叠加,再将所得到的新数据存储在RAM中,此时便得到了所需要的波形数据表。方法二:由逻辑方式在FPGA中实现。方法三:利用Altera公司的含于EAB器件中的兆功能模块LPM_ROM,通过VHDL语言编程来实现。第一种方法容量最大,但速度最慢,且编程比较麻烦;第二种方法速度最快,但容量非常小;第三种方法兼顾了两者的优点,克服了其缺点。在选用FPGA芯片时,本设计选用的是Altera公司的FLEX10K系列芯片EPF10K10LC84_4,有LPM_ROM模块,因此ROM选用第三种方法。(2)外存储器由于本设计选用的单片机为MSC-51系列的8051,它相对于高速的FPGA来说速度太慢,因此对单片机扩展外部数据存储器和波形存储器。半导体存储器可分为三类:只读存储器(ROM、PROM、EPROM),随机存储器(SRAM、DRAM),不挥发性读写存储器(EEPROM、NOVRAM)。本设计要实现编辑功能,故必须选择随机存储器或不挥发性读写存储器。方案一:采用SRAM(6264:8KRAM)和EEPROM(2817:2KROM),通过总线隔离的办法实现,既能通过CPU改变存储器数据,又能通过相位累加实现读取波形存储器数据的功能。方案二:采用特殊存储器双口RAM。双口RAM有左右两套相同的I/O口,即两套数据总线,分别有两套地址、控制总线,并有一套竞争仲裁电路。它可通过左右两边的任一组I/O进行异步的存储器读写操作,避免了系统总线隔离[17]。对比上述两种方案,方案一的硬件电路虽较复杂,但设计简单,成本低,容量大,故采用此方案。2.1.4存储器寻址方案方案一:采用移位寄存器74164对BCD乘法器14527进行设置。BCD乘法器14527接成加法级联方式,输入频率由晶振提供,级联输出频率为:(2.1)式中K1、K2、K3、K4、K5为BCD乘法器置数。根据置数不同,可以输出不同的频率的计数脉冲,再经计数器计数对存储器寻址,频率控制寻址频率,从而控制输出波形的频率。此方案硬件接线复杂,频带不易拓宽。方案二:运用FPGA构成的相位累加器对EEPROM进行寻址。由单片机控制步长即可控制寻址频率,而相移也可方便地由单片机控制相位累加器的初始值来设定。比较两种方案,方案二设计简单,易于单片机控制,故选方案二。2.2模块结构划分本次设计所研究的就是对所需要的某种波形输出对应的数字信号,在通过D/A转换器和单片机部分的转换输出一组连续变化的0~5V的电压脉冲值。在通过显示部分显示其频率,和波形。在设计时分块来做,按照波形设定,D/A转换,51单片机连接,键盘控制和显示五个模块的设计。最后通过联调仿真,做出电路板成品。从而简化人机交互的问题,具体设计模块如图模块介绍:1.波形设定:对任意波形的手动设定2.D/A转换:主要选用DAC0832来把数字信号转换为模拟信号,在送入单片机进行处理。3.单片机部分:最小系统4.键盘:用按键来控制输出波形的种类和数值的输入5.显示部分:采用LCD显示波形的频率系统要求是便携式低功耗的,所以在硬件电路建立前首先粗略计算一下整个系统所需的功耗。考虑单片机部分(有最小系统,D/A转换,键盘接口,扩展部分显示等部分)的功耗大小,机器体积小,价格便宜,耗电少,频率适中,便于携带。2.2.1DDS的基本原理直接数字频率合成器(DDFS)的基本原理:DDS是利用采样定理,根据相位间隔对正弦信号进行取样、量化、编码,然后储存在EPROM中构成一个正弦查询表,通过查表法产生波形[10]。它是由参考时钟、相位累加器、正弦查询表和D/A转换器组成,如图2.2所示。图2.2直接数字频率合成器原理框图相位累加器由N位加法器与N位累加寄存器级联构成,其原理框图如图2.3所示。每来一个时钟脉冲Fc,N位加法器将频率控制数据K与累加寄存器输出的累加相位数据相加,把相加后的结果Y送至累加寄存器的输入端。累加寄存器一方面将在上一时钟周期作用后所产生的新的相位数据反馈到加法器的输入端,以使加法器在下一时钟的作用下继续与频率控制数据K相加;另一方面以相加后的结果形成正弦查询表的地址,取出表中与该相位对应的单元中的幅度量化正弦函数值,作为取样地址值送入幅度/相位转换电路(即图2.1中的波形存储器)。这样就可把存储在波形存储器内的波形抽样值(二进制编码)经查找表查出,完成相位到幅值转换。波形存储器的输出送到D/A转换器,D/A转换器将数字量形式的波形幅值转换成所要求合成频率的模拟量形式信号。图2.3相位累加器原理框图由此可以看出,相位累加器在每一个时钟脉冲输入时,把频率控制字累加一次,相位累加器输出的数据就是合成信号的相位。当相位累加器加满量时就会产生一次溢出,溢出频率就是DDS输出的信号频率。相位累加器的最大计数长度与正弦查询表中所存储的相位分隔点数相同,在取样频率(由参考时钟频率决定)不变的情况下,由于相位累加器的相位增量不同,将导致一周期内的取样点数不同,输出信号的频率也相应变化。如果设定累加器的初始相位,则可以对输出信号进行相位控制。由采样原理可知,如果使用两个相同的频率合成器,并使其参考时钟相同,同时设定相同的频率控制字、不同的初始相位,那么在原理上就可以实现输出两路具有一定相位差的同频信号。2.2.2FPGA实现的直接数字频率合成器本设计基于DDS的基本原理,利用Altera公司的FPGA芯片FLEX10系列器件设法将波形采样点的值依次通过数模转换器(MDAC)转换成模拟量输出,可达到预期的目的,具有较高的性价比。其基本环节由计数器(Counter)、只读存储器(EPROM)、数模转换器(MDAC)和滤波器等组成(同DDS原理)[11]。具体方案如下:累加器由加法器和D触发器级联组成。在时钟脉冲fc的控制下,对输入频率控制字K进行累加,累加满量时产生溢出。相位累加器的输出对应于该合成周期信号的相位,并且这个相位是周期性的,在0~2范围内起变化。相位累加器位数为N,最大输出为2-1,对应于2的相位,累加一次就输出一个相应的相位码,通过查表得到正弦信号的幅度,然后经D/A转换及低通滤波器滤除不需要的取样分量,以便输出频谱纯净的正弦波信号。整个DDS电路的电路结构如图2.4所示。图2.4FPGA实现的DDS原理框图2.2.3移相原理所谓移相是指两路同频的信号,以其中的一路为参考,另一路相对于该参考作超前或滞后的移动,即称为相位的移动。两路信号的相位不同,便存在相位差,简称相差。若我们将一个信号周期看作是360°,则相差的范围就在0°~360°之间。例如在图2.5中,以A信号为参考,B信号相对于A信号作滞后移相φ°,则称A超前Bφ°,或称B滞后Aφ°。图2.5移相示意图若输出信号A和B的相位差可调,须保证两路信号同步,故应满足以下条件:(1)输入到两个频率合成器芯片的参考时钟之间的相位偏移要足够小。这个相移会导致输出信号之间产生与之成比例的相移。因此在布线时必须精心设计,使从FPGA输出参考时钟的引脚到两个频率合成器芯片的参考时钟输入引脚的引线距离相等,以保证系统时钟同步。另外,参考时钟上升/下降沿的抖动应尽可能小,并且时间应尽可能短,因为不同频率合成器芯片输入电路的触发电压不同,因此参考时钟的上升/下降沿时间太长会增加输出信号的相位误差。(2)频率控制字送到频率合成器的数据缓冲区后,还必须通过一个更新时钟才能将数据缓冲区中的数据送到相位累加器,成为有效数据后进行输出。频率合成器有两种更新时钟产生方式,一种由FPGA内部自动产生,另一种由外部提供。要使两路输出信号同步,必须使用外部I/O更新时钟,同时必须使参考时钟信号(REFCLK)与外部I/O更新时钟(UPDATECLK)上升沿之间满足图2.6所示的时序关系。图2.6参考时钟与更新时钟之间的时序关系图更新时钟的上升沿必须在参考时钟的下降沿0.3ns之后与下一个下降沿1.5ns之前之间(图2.6中深色区间为有效区域)产生,这样可以使两个频率合成器工作在相同的系统时钟(参考时钟乘以一定倍数)下,且它们的系统时钟脉冲数相差不能超过1个脉冲。(3)在第一次传送数据之前必须先使频率合成器复位,以保证其输出的相位是可知的。因为DDS芯片的相位输出是连续的,所示复位信号可使两个频率合成器的相位累加器复位到COS(0)状态。新的数据送到相位累加器时,它们之间的相位关系可以得到保持,也可以通过相位控制字来调节两片频率合成器之间的相位差。第三章电路设计3.1基于FPGA设计DDS电路的设计FPGA设计的DDS系统主要由相位累加器及相位/幅度转换电路组成。根据设计的具体要求,还设计了一个系统控制电路,这一电路可灵活设计,以突出FPGA的优点所在。另外采用VHDL硬件描述语言实现整个DDS电路,不仅利于设计文档的管理,而且方便设计的修改和扩充,还可以在不同FPGA器件之间实现移植。
3.1.1FPGA器件的选择FPGA是现场可编程门阵列(FieldProgrammableGateArray)的英语缩写,它是在阵列的各个节点放上由门、触发器等做成的逻辑单元,并在各个单元之间预先制作了许多连线。在FPGA中常用的编程工艺有反熔丝和SRAM两类。综合考虑设计、仿真和调试的全过程,在此主要考虑选用Altera公司的FLEX10K系列的FPGA芯片。FLEX10K是Altera公司1995年推出的产品系列,它集合了可编程器件的灵活性,采用0.5μmCMOSSRAM工艺制造,器件规模从10000门到250000门,系统时钟可以达到204MHZ,兼容66MHZ,64bitPIC,采用独特的嵌入式阵列和逻辑阵列的逻辑实现结构,同一系列相同封装的芯片在管脚上满足兼容。同时,可为用户提供多达3K8位的片内RAM,其双口RAM为独立的读写操作提供了独立的读、写端口,且每个I/O口都有寄存器;PLL时钟管理和时钟增强电路提高了系统的性能,并且可以提供时钟倍频;专用进位链路,可实现快速加法器和计数器功能;专用级联链路,支持系统集成;支持多时钟系统的低时滞要求;具有JTAG边界扫描测试内速电路;Altera的I/O多重电压3.3V或3.0V工作模式和FineLineBGA封装极大的提高了FLEX10K系列的灵活性和适应性。并由Altera公司的MAXplusⅡ开发系列提供软件支持。本设计中采用Altera公司的FLEX10K系列芯片EPF10K10LC84-4,作为实现DDS的FPGA芯片。EPF10K10LC84-4的主要参数如表3.1:表3.1EPF10K10LC84-4的主要参数逻辑门数I/O门数电源V速度等级/ns逻辑单元RAM/bit参数10000845.0-45766144其5V外部电源和TTL、CMOS电平兼,丰富的寄存器资源和I/O口,40MHZ的工作频率满足基准时钟10MHZ的要求,其优良的特性完全可以实现DDS芯片的功能。3.1.2相位累加器电路设计在用FPGA设计DDS电路的时候,相位累加器是决定DDS电路性能的一个关键部分。小的累加器可以利用FLEX器件的进位链得到快速、高效的电路结构。然而由于进位链必须位于临近的LAB(逻辑阵列块)和LE(逻辑单元)内,因此长的进位链势必会减少其它逻辑使用的布线资源,同时过长的进位链也会制约整个系统速度的提高。另一种提高速度的办法是采用流水线技术,即把在一个时钟内要完成的逻辑操作分成几步较小的操作,并插入几个时钟周期来提高系统的数据吞吐率。但是流水线技术比较适合开环结构的电路,要用在累加器这样的闭环反馈的电路中必须谨慎考虑,以保证设计的准确无误。综合考虑后,相位累加器采用流水线技术来实现,这样能保证较高的资源利用率,又能提高系统的性能和速度。设计中整个系统只加入了一级流水线来提高速度。为了进一步提高速度,在设计相位累加器模块和加法器模块时并没有采用FPGA单元库中16~32位加法器,尽管它们可以很容易地实现高达32位的相位累加器,但当工作频率较高时,它们较大的延时不能满足速度要求,故不可取。因此,具体实现时分别采用了4个和8个4位累加器,以流水线的方式实现16位累加器和32位加法器。采用流水线技术可以大大提高系统的工作速度。3.1.3相位/幅度转换电路相位/幅度转换电路是DDS电路中的另一个关键部分。该电路通常采用ROM结构,相位累加器的输出是一种数字式锯齿波,通过取它的若干位作为ROM的地址输入,而后通过查表和运算,ROM就能输出所需波形的量化数据。
在FPGA(针对Altera公司的器件)中,ROM一般由EAB实现,且ROM表的尺寸随地址位数或数据位数的增加成指数递增关系,因此在满足信号性能的前提下,如何有效利用FPGA的有限资源,成为相位/幅度转换电路中最关键的一点。在设计时可充分利用信号周期内的对称性和算术关系来减少EAB的开销。相位/幅度转换电路中的主要问题在于ROM的大小。由于本设计只需要输出正弦波,故考虑了以下的优化方式:正弦波信号对于x=π直线成奇对称,基于此可以将ROM表减至原来的1/2,再利用左半周期内,波形对于点(π/2,0)成偶对称,进一步将ROM表减至最初的1/4,因此通过一个正弦码表的前1/4周期就可以变换得到的正弦的整个周期码表,这样就节省了将近3/4的资源[19]。3.1.4波形表生成由于DDS中波形表存储器是采用FPGA芯片内部的LPM_ROM实现,故波形表可以VHDL编程的.mif文件形式存入LPM_ROM中,具体实现见附录2。3.1.5D/A转换电路设计DAC0832是CMOS工艺制造的8位D/A转换器,属于8位电流输出型D/A转换器,转换时间为1us,片内带输入数字锁存器。DAC0832与单片机接成数据直接写入方式,当单片机把一个数据写入DAC寄存器时,DAC0832的输出模拟电压信号随之对应变化。利用D/A转换器可以产生各种波形,如方波、三角波、正弦波、锯齿波等以及它们组合产生的复合波形和不规则波形。1.DAC0832主要性能:◆输入的数字量为8位;◆采用CMOS工艺,所有引脚的逻辑电平与TTL兼容;◆数据输入可以采用双缓冲、单缓冲和直通方式;◆转换时间:1us;◆精度:1LSB;◆分辨率:8位;◆单一电源:5—15V,功耗20mw;◆参考电压:-10—+10V;DAC0832内部结构资料:芯片内有两级输入寄存器,使DAC0832具备双缓冲、单缓冲和直通三种输入方式,以便适于各种电路的需要(如要求多路D/A异步输入、同步转换等)。D/A转换结果采用电流形式输出。要是需要相应的模拟信号,可通过一个高输入阻抗的线性运算放大器实现这个供功能。运放的反馈电阻可通过RFB端引用片内固有电阻,还可以外接。该片逻辑输入满足TTL电压电平范围,可直接与TTL电路或微机电路相接,下面是芯片电路原理图3-20图3-9DAC0832电路原理图如图3-9所示,待转换的8位数字量由芯片的8位数据输入线D0~D7输入,经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寄存器。DAC0832的数据输出方式在微机应用系统中,通常使用的是电压信号,而DAC0832输出的是电流信号,这就需要由运算放大器组成的电路实现转换。其中有输出电压各自极性固定的单位性输出和在随动系统中输出电压有正负极性的双极性输出两种输出方式。3.DAC0832同CPU的连接微处理器与DAC0832之间可以不加锁存器,而是利用DAC0832内部锁存器,将CPU通过数据总线直接向DAC0832输出的停留时间很短的数据保存,直至转换结束。
DAC0832同CPU的接口如图3-10所示.DAC0832作为微处理器的一个端口,用地址92H的选通作为和的控制信号,微处理器的写信号直接来控制和。图3-10DAC0832和CPU连接电路本系统D/A转换电路图3-11图3-11D/A转换电路图3.1.6DAC0832芯片原理管脚功能介绍(如图3-12所示)图3-12DAC0832管脚图(1)DI7~DI0:8位的数据输入端,DI7为最高位。(2)IOUT1:模拟电流输出端1,当DAC寄存器中数据全为1时,输出电流最大,当DAC寄存器中数据全为0时,输出电流为0。(3)IOUT2:模拟电流输出端2,IOUT2与IOUT1的和为一个常数,即IOUT1+IOUT2=常数。(4)RFB:反馈电阻引出端,DAC0832内部已经有反馈电阻,所以RFB端可以直接接到外部运算放大器的输出端,这样相当于将一个反馈电阻接在运算放大器的输出端和输入端之间。(5)VREF:参考电压输入端,此端可接一个正电压,也可接一个负电压,它决定0至255的数字量转化出来的模拟量电压值的幅度,VREF范围为(+10~-10)V。VREF端与D/A内部T形电阻网络相连。(6)Vcc:芯片供电电压,范围为(+5~15)V。(7)AGND:模拟量地,即模拟电路接地端。(8)DGND:数字量地。当WR2和XFER同时有效时,8位DAC寄存器端为高电平“1”,此时DAC寄存器的输出端Q跟随输入端D也就是输入寄存器Q端的电平变化;反之,当端为低电平“0”时,第一级8位输入寄存器Q端的状态则锁存到第二级8位DAC寄存器中,以便第三级8位DAC转换器进行D/A转换。一般情况下为了简化接口电路,可以把和直接接地,使第二级8位DAC寄存器的输入端到输出端直通,只有第一级8位输入寄存器置成可选通、可锁存的单缓冲输入方式。特殊情况下可采用双缓冲输入方式,即把两个寄存器都分别接成受控方式制作低频信号发生器有许多方案:主要有单缓冲方式,双缓冲方式和直通方式。单缓冲方式具有适用于只有一路模拟信号输出或几路模拟信号非同步输出的情形的优点,但是电路线路连接比较简单。而双缓冲方式适用于在需要同时输出几路模拟信号的场合,每一路模拟量输出需一片DAC0832芯片,构成多个DAC0832同步输出电路,程序简单化,但是电路线路连接比较复杂。根据以上分析,我们的课题选择了单缓冲方式使用方便,程序简单,易操作。DAC0832主要是用于波形的数据的传送,是本题目电路中的主要芯片一、D/A转换器的性能指标:1.分辨率:输出模拟电压应能区分0~2n-1共2n个输入数字量。表示方法:(1)用输入二进制数的位数表示;如8位。(2)用输出模拟电压的最小值与最大值的比值表示。指最小输出电压和最大输出电压之比。DAC0808的分辨率为1/256。2.精度:DAC实际输出电压与理想的输出电压的偏差。DAC0808的最大满刻度偏差为+1LSB。3.线性度:DAC实际传输特性曲线与理想的传输特性曲线的偏差。DAC0808的最大误差为+0.19%。4.温度灵敏度:在输入不变的情况下,输出模拟电压随温度变化产生的变化量。一般用满刻度输出条件下温度每升高1℃,输出电压变化的百分数作为温度系数。5.转换速度:用完成一次转换所需的时间——建立时间Tset来衡量。建立时间:输入信号从开始变化到输出电压进入与稳态值相差1/2LSB范围以内的时间。输入信号由全0变为全1所需时间最长。当外接运放时,转换时间还应加上运放的上升(下降)时间。(3—2)式中为转换时间,为建立时间,输出最大电压值,为运放输出转换速率。二、D/A转换器的分类D/A转换器的品种繁多、性能各异。按输入数字量的位数分:8位、10位、12位和16位等;按输入的数码分:二进制方式和BCD码方式;按传送数字量的方式分:并行方式和串行方式;按输出形式分:电流输出型和电压输出型,电压输出型又有单极性和双极性;按与单片机的接口分:带输入锁存的和不带输入锁存的。三、双极性输出实现图3-13D/A转换器双极性输出电路图3-13中,运算放大器A2的作用是把运算放大器A1的单向输出电压转换成双向输出电压。其原理是将A2的输入端Σ通过电阻R1与参考电压VREF相连,VREF经R1向A2提供一个偏流I1,其电流方向与I2相反,因此运算放大器A2的输入电流为I1、I2之代数和。则D/A转换器的总输出电压为:(11)(12)为DAC0832提供的参考电压,输入的波形数据。由上两式可得:(13)取,当时,;时,;时,。由上述分析可看出,取不同数据时(0~255),可得对称的双极性波形输出。再取,则式(11)可表示为:由上式可知,输出信号的幅度受的改变而改变3.1.7系统控制电路设计系统控制电路主要是根据是否需要相位调制及频率调制,系统时钟是否需要分频得到所需的基准时钟,频率码的输入方式是串行、并行还是微机接口方式,如何控制输出等具体要求而设计的,其功能实现见图2.4。3.2单片机与FPGA的接口设计在功能上,单片机与FPGA有很强的互补性。单片机具有性价比高、功能灵活、易于人机对话、良好的数据处理能力等特点;FPGA则具有高速、高可靠性以及开发便捷、规范等优点。用这两类器件相结合的电路结构在许多高性能仪器仪表和电子产品中仍将被广泛应用。MCS51单片机(8051)系统是整个硬件系统的核心,其引脚如图3.1所示,它既是协调整机工作的控制器,又是数据处理器,其内部资源分配和性能如下:8位CPU、寻址能力达2×64K;4KB的ROM和128字节RAM;4个8位I/O接口电路;一个串行全双工异步接口;5个中断源和两个中断优先级。图3.18051的引脚图单片机的功能主要是传送频率控制字K1和相位控制字K2给FPGA处理;生成波形表存储于EEPROM中;控制键盘的写入和LED的显示;控制DAC0832进行幅值转换。在每次加电前都要通过单片机初始化,将写好的程序加载在信号产生系统上,然后把从键盘上输入的数据送到中央处理芯片上,信号通过低通滤波器输出的同时,LED数码管显示信号的频率和相位差。单片机与FPGA的接口方式一般有两种,即总线方式与独立方式。因为单片机以总线方式与FPGA进行数据与控制信息通信有许多优点,如速度快;节省PLD芯片的I/O口线;编程简捷,控制可靠;另外在FPGA中通过逻辑切换,单片机易于与SRAM或ROM接口。故单片机与FPGA的接口方式选用总线方式。FPGA与单片机的总线接口如图3.2所示,其外部接口和VHDL设计见附录2。图3.2FPGA与单片机的总线接口MCS-51单片机的总线接口方式工作时序如图3.3所示,它以总线方式与FPGA进行数据与控制信息通信,其通信工作时序是纯硬件行为,只需一条单字节指令就能完成所需的读写时序,如:MOVX@DPTR,A;MOVXA,@DPTR根据时序图3.3来设计单片机与FPGA以总线方式通信的逻辑结构。其时序电平变化速度与单片机工作时钟频率有关。图3.3MCS-51单片机总线接口方式工作时序图中,ALE为地址锁存使能信号,利用其下降沿将低8位地址锁存于FPGA中的地址锁存器(LATCH_ADDRES)中;当ALE将低8位地址通过P0锁存的同时,高8位地址已稳定建立于P2口,单片机利用读指令允许信号PSEN的低电平从外部ROM中将指令从P0口读入,由时序图可见,其指令读入的时机是在PSEN的上升沿之前。然后由P2口和P0口分别输出高8位和低8位的数据地址,并由ALE的下降沿P0口的低8位地址锁存于地址锁存器。若需从FPGA中读出数据,单片机则通过指令“MOVXA,@DPTR”使RD信号为低电平,由P0口将图3.1中锁存器LATCH_IN1中的数据读入累加器A;若要将累加器A的数据写入FPGA,则需通过指令”MOVX@DPTR,A”和写允许信号WR。这时,DPTR的高8位和低8位数据作为高、低8位地址分别向P2和P0口输出,最后由WR的低电平结合译码,将累加器A的数据写入图中相关的锁存器。3.3外围电路设计在设计中除单片机和FPGA之外,还需要很多外围电路来提供时钟源和波形调整等,以下将简要介绍各外围电路的设计及参数选择。3.3.1晶体振荡电路设计中取64个点组成一个周期的波形,且频率最小步进定为20HZ,这样需要产生1280HZ的方波作为锁相环电路的输入。将32.768KHZ的晶振通过整形电路整形和分频,即可得到频率为1280HZ的方波f1,如图3.4所示。图3.4晶体振荡电路3.3.2地址计数脉冲产生电路由于一个周期我们取的是64个样点,最小步进20HZ,因此如果计数器的计数脉冲频率为1280HZ,D/A转换器就会输出20HZ的波形。这样若要得到频率为F0(F0为20的倍数)赫兹的波形,只要输入频率为64×F0(HZ)的计数脉冲即可。例如要得到20HZ的正弦波,计数脉冲频率应为1280HZ;要得到频率为20KHZ的正弦波,计数频率应为1.28MHZ。电路设计如图3.5所示,1280HZ的方波信号作为锁相环频率合成器4046的基准时钟,并配以可编程计数器8254实现基准时钟频率的2~62500倍频,这样就得到了地址计数器脉冲f2。图3.5地址计数脉冲产生电路3.3.3幅度控制电路波形的幅度控制利用带宽1MHZ的DAC0832控制,利用DAC0832内部的分压网络,将经DDS产生的波形作为DAC0832的基准电压,由单片机控制输入的数字量,从而实现步进0.1V的幅度调整,幅值范围0.3~5V。如图3.6所示。图3.6幅度控制电路3.3.4单片机外扩展存储器电路采用外部存储器6264(SRAM:8KRAM)和2817(EEPROM:2KROM),通过总线隔离的办法实现,电路如图3.7所示。图3.7外扩存储器电路3.3.5滤波、缓冲输出电路D/A输出后,通过滤波电路、输出缓冲电路,使信号平滑且具有负载能力。滤波采用二阶巴特沃兹低通滤波器,其幅度函数是单调下降的,且n阶巴特沃兹低通滤波器的前(2n-1)阶导数在ω=0处为零,所以它又称为最大平坦幅度滤波器[24]。由于本设计要求滤波的分量主要为由D/A产生的高频分量,和要保留的频率(小于20KHZ)相差很远,所以滤波器在通带内的平坦程度比其衰减陡度更为重要。另外,巴特沃兹低通滤波器也不像其它滤波器对元件值要求那么苛刻,因为在截止频率附近,频率响应钝化可能是这些滤波器在要求锐截止的地方不合要求。设计中主要是频率为≤20KHZ的正弦波。运放选用宽带运放LF351,电路设计如图3.8。正弦波的输出频率小于20.48KHZ,为保证20.48KHZ频带内输出幅度平坦,又要尽可能抑制谐波和高频噪声,综合考虑取:R1=1KΩ,R2=1KΩ,C1=100pF,C=100pF。图3.8滤波、缓冲电路3.3.6键盘和显示控制电路采用通用键盘接口芯片8279,通过74LS373和74LS377与单片机的P0口相连,控制4×4阵列键盘和4个数码管显示的键盘显示模块,用扫描方式由8279得到键盘码,由中断服务程序把数据送给单片机,以实现系统控制和显示功能。此方案不用单片机扫描,占用资源少,电路见附录1。用四个LED进行显示,这种方案的缺点是不能适时显示,但也能满足设计要求。本方案采用单片机控制,由4511驱动4个共阴极数码管LED进行动态显示相位和频率。结束语通过几周的毕业设计,我从中认识到了一个真正的自我。这几周的时间里,我利用图书馆的丰富资源,查阅与其有关的书籍;利用网络资源搜索一些相关的知识。在指导老师的大力支持下,在同学们的热情帮助下,通过自我的不懈努力,顺利的完成了毕业论文——基于DDS的信号发生器的设计。通过本次的设计,我学到了更为有趣的知识,自己的知识面也得到了进一步的扩展。通过本次的设计,我深深的感悟到了团队合作的重要性。我们每一个人不可以孤立的存在于社会中。学会团结合作,是我们每一个人的必修课。在本次的毕业论文设计过程中,同指导老师共同商量设计思路;和同学们共同讨论、解决问题……这都是团队合作精神的体现。设计中我完成了各个模块功能的设计。但是这只是成功路上的一小步,我们还可以在此基础上附加一些其他的功能如多波形模块设计等等。使之更加的精美、完善,实现多功能的控制,合理的利用有限的资源。由于本人的水平有限,在本次设计中难免有缺点和漏洞之处,恳求大家批评指导,提出您宝贵的意见和建议,以便本人在以后的学习和工作中加以改正。参考文献[1]郑凤涛,陈金佳.基于CPLD的数控正弦波的信号源的设计.黎明职业大学学报,2003,[2]徐志军,徐光辉.CPLD/FPGA的开发与应用.北京:电子工业出版社,2002[3]黄正谨,徐坚,章小丽等.CPLD系统设计技术入门与应用.北京:电子工业出版社,2002[4]韩素敏,郑征.基于VHDL的正弦波发生器设计.陕西工学院学报,2003[5]陈新原,龙世瑜.DDS芯片AD9850的EEP接口设计.微型机与应用,2005[6]毕红军,张永瑞.利用单片机与CPLD实现直接数字频率合成器(DDS).现代电子技术,2002[7]姜萍,王建新,吉训生.FPGA实现的直接数字频率合成器.电子工程师.2002[8]邵正途,高玉良.DDS/FPGA在信号产生系统中的应用.电子技术,2005[9]谭建军,杨庆.EWB与电子技术基础课程设计.北京:中央民族大学出版社,2002[10周正干,李和平,李然.超低频移相信号发生器的设计.仪表技术,2000[11]周峻峰,陈涛.基于FPGA的直接数字频率合成器的设计与实现.国外电子元器件,2003[12]宋跃,周明辉,谭爱群.基于VHDL的虚拟相位差测量方法研究及其实现.半导体技术,2002[13]陈辉,王迎旭.CPLD在频率测控系统中的应用.半导体技术,2001[14]AD公司.ATechnicalTutorialOnDigitalSignalSynthesis,1999[15]IEEETran.ADirect_DigitalsynthesizerwithImprovedspectralperformance.oncommunication,1991[16]傅玉朋,李明浩,吕进华.DDS技术的FPGA设计与实现.大连民族学院学报,2004[17]全国大学生电子设计竞赛组委会编.第五届全国大学生电子设计竞赛获奖作品选编(2001).北京:北京理工大学出版社,2003[18]文卓然.数字式移相信号发生器中的一个误区.电子世界,2004[19]H.T.NicholasIIIH.Samulei.AnanalysisoftheoutputspectrumofDirectDigitalFrequencySynthesizersinthepresenceofphaseaccumulatortruncation,IEEEProc.41stAFCS,1999[20]胡汉才.单片机原理及其接口技术.北京:清华大学出版社,2003[21]VankkaJ.Spurreductiontechniquesinsineout-putdirectdigitalsynthesis,IEEEProc.50thAFCS,2001[22]AlteraInc.DATABOOK.Alteracorporation,2001[23]邹轶才,黄正东.用AD7008构成可程控正弦波信号发生器.经验交流,2005[24]贾方亮,赵泳,郝立果,张锡鹃.高精度数字式移相信号发生器的研制.天津职业技术师范学院学报,2004[25]王皓,刘克刚,李小青.低频相位测量系统的研究与实现.电子技术,2004致谢首先我要衷心感谢我的导师罗飞老师,在整个毕业设计过程中,罗老师始终给我无微不至的关怀和帮助。从论文选题开始,导师为我提供了论文的相关资料,直到初稿以及定稿的过程中,他指导我进行了多次反复的斟酌,从论文研究的重点和细节的表述,都经过多次的修改。在设计的过程中我遇到了不少困难,他都是面对面的给我讲解,询问我毕业设计的进展情况、解决我在设计中遇到的困难。没有他的指导,我不能顺利地完成本论文,他严谨的治学态度,谆谆的教诲都将使我终身受益。感谢湖南工业大学电气与信息工程学院的领导和授课教师,在我大学期间,他们给我了很多无私的帮助。他们严谨的治学态度让我受益匪浅,乐于奉献的精神和热情的帮助给我留下了深刻和美好的回忆。在此设计及论文完成过程中我得到了毕业设计小组其他同学的无私帮助,在此对他们表示衷心的感谢。同时,我还要感谢湖南工业大学所有关心和帮助过我的朋友,有了你们的关心和帮助我的大学生活才变得如此完美,谢谢你们!学生签名:日期:年月日附录1附录2FPGA与MCS_51系列单片机(8051)总线方式接口的VHDL电路设计:8051与FPGA总线方式接口逻辑外部引脚libraryieee;--MCS-51单片机与FPGA的通信读写电路useieee.std_logic_1164.all;entitymcs51isport(--与MCS-51接口的各端口定义p0:inoutstd_logic_vector(7downto0);--双向地址/数据口p2:instd_logic_vector(7downto0);--高8位地址线rd,wr:instd_logic;--读、写允许ale:instd_logic;--地址锁存ready:instd_logic;--待读入数据准备就绪标志位ad_cs:outstd_logic;--A/D器件片选信号datain1:instd_logic_vector(7downto0);--单片机待读回信号latch1:instd_logic;--读回锁存信号datout1:outstd_logic_vector(7downto0);--锁存输出数据1datout2:outstd_logic_vector(7downto0));--锁存输出数据2endmcs51;architecturebehaveofmcs51issignallatch_addres:std_logic_vector(7downto0);signallatch_out1:std_logic_vector(7downto0);signallatch_out2:std_logic_vector(7downto0);signallatch_in1:std_logic_vector(7downto0);signalwr_enable1:std_logic;signalwr_enable2:std_logic;beginprocess(ale)--低8位地址锁存进程beginifale'eventandale='0'thenlatch_addres<=p0;--ale的下降沿将p0口的低8位地址锁入锁存器endif;endprocess;process(p2,latch_addres)--WR写信号译码过程1beginif(latch_addres="11110101")and(p2="01101111")thenwr_enable1<=wr;--写允许elsewr_enable1<='1';--写禁止endif;endprocess;process(wr_enable1)--数据写入寄存器1beginifwr_enable1'eventandwr_enable1='1'thenlatch_out1<=p0;endif;endprocess;process(p2,latch_addres)--WR写信号译码过程2beginif(latch_addres="11110011")and(p2="00011111")thenwr_enable2<=wr;--写允许elsewr_enable2<='1';--写禁止endif;endprocess;process(wr_enable2)--数据写入寄存器2beginifwr_enable2'eventandwr_enable2='1'thenlatch_out2<=p0;endif;endprocess;process(p2,latch_addres,ready,rd)--8031对PLD中数据读入进程beginif(latch_addres="01111110")and(p2="10011111")and(ready='1')and(rd='0')thenp0<=latch_in1;--寄存器中的数据读入P0口elsep0<="ZZZZZZZZ";--禁止读数,P0口呈高阻态endif;endprocess;process(latch1)--外部数据进入FPGA进程beginiflatch1'eventandlatch1='1'thenlatch_in1<=datain1;endif;endprocess;process(latch_addres)--A/D工作控制片选信号输出进程beginif(latch_addres="00011110")thenad_cs<='0';--允许A/D工作elsead_cs<='1';--禁止A/D工作endif;endprocess;datout1<=latch_out1;datout2<=latch_out2;endbehave;附录3CHUZHI模块提供初值,供下一个模块FENP分频时用。libraryieee;useieee.std_logic_1164.all;entitychuzhiisport(a:instd_logic_vector(3downto0);q:outintergerange0to312);endchuzhi;architecturechu_arcofchuzhiisbeginprocess(a)begincaseaiswhen"0001"=>q<=313;when"0010"=>q<=156;when"0011"=>q<=104;when"0100"=>q<=78;when"0101"=>q<=63;when"0110"=>q<=52;when"0111"=>q<=45;when"1000"=>q<=39;when"1001"=>q<=35;when"1010">=q<=31;whenothers=>null;endcase;endprocess;endchu_arc;FENP模块将CHUZHI模块送来的初值对时钟进行分频,得到不同的工作频率,从而调节波形频率。libraryieee;useieee.std_logic_1164.all;entityfenpisport(a:inintegerrange0to1024;clk:instd_logic;q:outstd_logic);endfenp;architecturefenp_arcoffenpisbeginprocess(clk)variableb,d:std_logic;variablec:integerrange0to1024;beginifclk'eventandclk='1'thenifb='0'thenc:=a-1;b:='1';elseifc=1thenb:='0';d:=notd;elsec:=c-1;endif;endif;endif;q<=d;endprocess;endfenp_arc;DDS电路的VHDL设计,主要累加器和相位/幅度转换两部分组成。DDS功能模块libraryieee;useieee.std_logic_1164.all;useieee.std_logic_arith.all;entityddsisgeneric(width:integer:=8);(m:instd_logic_vector(width:1downto0);sin,acc:outstd_logic_vector(7downto0);clk:instd_logic);enddds;architecturedds_arcofddsissignals,acc8:std_logic_vector(width:1downto0);signalmsbs:std_logic_vector(7downto0);beginadd1:lam_add_subgenericmap(lpm_width=>width,lpm_representation=>"signed",lpm_direction=>"add",lpm_pipeline=>0)portmap(dataa=>m,datab=>acc8,result=>s);reg1:lpm_ffgenericmap(lpm_width=>width)portmap(data=>s,q=>acc8,clock=>clk);select1:process(acc8),variablei:integer;beginforiin7downto0loopmsbs(i)<=acc8(i);endloop;endprocessselect1;acc<=msbs;room1:lpm_romgenericmap(lpm_width=>8,lpm_widthad=>8,lpm_file=>"sine.mif")portmap(adress=>msbs,inclock=>clk,outclock=>clk,q=>sin);enddds_arc;相位累加器的VHDL设计:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityleijiaisport(clk,en,reset:instd_logic;k1:instd_logic_vector(9downto0);out1:outstd_logic_vector(9downto0));endentityleijia;architectureleijia_ar
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 标准版小企业劳动合同合约
- 全球融资租赁合作合同
- 股份制企业入股合同
- 别墅整体装修合同范文
- 砖厂劳动合同模板及示例
- 区域经销商授权合同样本
- 危险品道路运输服务合同模板2025
- 数据保护服务解决方案提供合同
- 合伙合同的法律风险分析
- 《多发伤急救护理》课件
- 荆州2025年湖北荆州区事业单位人才引进55人笔试历年参考题库附带答案详解
- 中国储备粮管理集团有限公司兰州分公司招聘笔试真题2024
- 2024年云南中烟工业有限责任公司招聘笔试真题
- 武汉2025年湖北武汉理工大学管理人员招聘笔试历年参考题库附带答案详解
- 提高金刚砂地坪施工一次合格率
- 2022新教材苏教版科学5五年级下册全册教学设计
- 加利福尼亚批判性思维技能测试后测试卷班附有答案
- 2022年《国民经济行业分类》
- 下肢深静脉血栓课件(精品)
- 平江路历史街区保护规划与实践
- 中国政区空白图(带省会)
评论
0/150
提交评论