基于FPGA函数信号发生器的设计.doc_第1页
基于FPGA函数信号发生器的设计.doc_第2页
基于FPGA函数信号发生器的设计.doc_第3页
基于FPGA函数信号发生器的设计.doc_第4页
基于FPGA函数信号发生器的设计.doc_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

1、毕业设计说明书基于FPGA多功能波形发生器的设计基于FPGA的多功能波形发生器的设计摘 要数字信号发生器是数字信号处理中不可缺少的调试设备,在生产生活中的应用非常广泛。本文所设计的内容就是基于FPGA实现数字信号发生器的设计,FPGA具有密度高,功耗低,体积小,可靠性高等特点,设计时可以不必过多考虑具体硬件连接;本设计中应用VHDL硬件描述语言进行描述,使该数字信号发生器可以产生正弦波、方波、三角波、三个独立的波形,并能对所产生的三种波形的频率和幅度进行调节。关键词:直接数字频率合成;数字波形发生器;FPGA;DDS;VHDL目 录1. 绪论11.1 背景与意义11.2 国内外发展现状12.

2、设计简介12.1 DDS技术12.2 FPGA简介22.3 VHDL简介42.4 Quartus简介63. 系统硬件电路设计83.1 数字信号发生器的系统组成83.2 设计原理及要求83.3 输入部分93.3.1频率、幅值和波形转换部分93.3.2系统时钟电路113.3.3 电源电路的设计113.4 FPGA部分123.5 D/A转换部分133.5.1 DAC0832转换器简介143.6滤波电路154. 系统软件设计164.1软件系统流程图164.2主要函数语句分析164.3 数字信号发生器的软件设计184.4软件各模块194.4.1波形发生器194.4.2 主控制模块204.4.3 波形数据

3、产生模块204.4.4波形产生模块235. 设计总结25附 录26参考文献356. 致谢辞361绪论1.1 背景与意义在电子技术领域,常常需要波形、频率、幅度都可调的电信号,用于产生这种电信号的电子仪器称作信号发生器。信号发生器是一种常用的信号源,广泛运用于科学研究、生产实践和教学试验等领域。特别是在通信系统的科研实验中,常常需要用到不同频率和幅度的信号,如正弦波、三角波、方波和锯齿波等。作为一种为电子测量和计量提供电信号的设备,它和万用表、示波器、频率计等仪器一样,是最普通、最基本,也是运用最广泛的电子仪器之一,几乎所有电参量的测量都需要用到信号发生器。传统的波形发生器多采用模拟分立元件实现

4、,产生的波形种类要受到电路硬件的限制,体积大、灵活性和稳定性也相对较差。近年来,以数字技术为基础的数字信号发生器得到了飞速的发展,性能指标都达到了一个新的水平。现场可编程门阵列器件具有容量大、运算速度快、现场可编程等优点,使得许多复杂的电路有了新的实现途径,越来越被广泛地应用到实际系统中。而且随着当今电子系统的越来越复杂,毫无疑问,数字信号发生器正在成为模拟复杂信号的事实标准。凡是能产生测试信号的仪器,统称为信号源,也称为信号发生器,它用于产生被测电路所需特定参数的电测试信号。信号源是根据用户对其波形的命令来产生信号的电子仪器。信号源主要给被测电路提供所需要的已知信号(各种波形),然后用其它仪

5、表进行测量的参数。信号源有很多种分类方法,其中一种方法可分为混和信号源和逻辑信号源两种。其中混和信号源主要输出模拟波形;逻辑信号源输出数字码形。混和信号源又可分为函数信号发生器和任意波形/函数发生器,其中函数信号发生器输出标准波形,如正弦波、方波等,任意波/函数发生器输出用户自定义的任意波形;逻辑信号发生器又可分为脉冲信号发生器和码型发生器,其中脉冲信号发生器驱动较小个数的方波或脉冲波输出,码型发生器生成许多通道的数字码型。1.2 国内外发展现状采用可变时钟和计数器寻址波形存储器的任意波形发生器4在一段时期内曾得到广泛的应用,其取样时钟频率较高且可调节,然而这种波形发生器对硬件要求比较高,需要

6、高性能的锁相环和截止频率可调的低通滤波器,且频率分辨率低,频率切换速度较慢,已经逐步退出市场。目前市场上的数字信号发生器主要采用直接数字合成(Direct Digital synthesizer ,DDS)技术,这种波形发生器不仅可以产生可变频的载频信号、各种调制信号,同时还能和计算机配合产生用户自定义的有限带宽的任意信号,可以为多领域的测试提供宽带宽、高分辨率的测试信号。从目前发展状况来看,国外数字信号发生器的研制和生产技术已经较为成熟。以安捷伦(Agilent)和 泰克(Tektronix)为代表的国际电子测量仪器公司在此领域进行了卓有成效的研究和开发,其产品无论在技术上还是市场占有率方面

7、在国际上都享有盛誉,但其价格也相当昂贵,高端型号每台价格都在几万美金左右,低端的也要几万人民币。Tektronix公司的独立结构任意波形发生器AFG3000系列功能完善,人机界面友好,操作方便,可以以多种方式连接到PC机上,其最高采样率能达到2GS/s,输出正弦信号最高频率为240MHz,任意波频率最高能达到50MHz,并配备的强大的波形编辑软件Arbexpress,用户可以方便地创建和编辑自己的波形。Agilent公司的PXI模块任意波形发生器采样率已经能达到1.25GS/s,最高输出频率500MHz。我国研制任意波形发生器是从上世纪90年代开始的,近年来有一批本土厂商奋起直追,取得了可喜的

8、成果。例如南京盛普科技电子有限公司的SPF120型信号发生器的主波输出频率达到了120MHz,任意波最高频率为100KHz;北京普源精电科技有限公司(RIGOL)生产的DG1000/2000/3000系列任意波形发生器,在性能上已经大略相当于国外中低端产品。本课题的主要研究内容是参考直接数字频率合成原理(DDS)技术6,利用Quartus II 5.1软件作为平台,VHDL语言作为开发语言,基于FPGA配合相应外围电路实现一个数字信号发生器,其电路结构简单,容易扩展,具有极大的灵活性和方便性,实现了产生频率、幅度可调的正弦波、三角波、方波的信号发生器。2. 设计简介2.1 DDS技术 DDS与

9、大多数的数字信号处理技术一样,它的基础仍然是奈圭斯特采定理。奈圭斯特采样定理是任何模拟信号进行数字化处理的基础,它描述的是一个带限的模拟信号经抽样变成离散序列后可不可以由这些离散序列恢复出原始模拟信号的问题。奈圭斯特采样定理告诉我们,当抽样频率大于或者等于模拟信号最高频率的两倍时,可以由抽样得到的离散序列无失真地恢复出原始模拟信号。只不过在DDS技术中,这个过程被颠倒过来了。DDS不是对模拟信号进行抽样,而是一个假定抽样过程已经发生且抽样值已经量化完成,如何通过某种方法把已经量化的数值重建原始信号的问题。DDS电路一般由参考时钟、相位累加器、波形存通滤波器(LPF)组成。其结构如图2.1所示。

10、图2.1 DDS基本结构框图其中,f c为参考时钟频率,K为频率控制字,N为相位累加器位数,A为波形存储器地址位数,D为波形存储器的数据位字长和D/A转换器位数。DDS系统中的参考时钟通常由一个高稳定度的晶体振荡器来产生,用来作为整个系统各个组成部分的同步时钟。频率控制字(Frequency Control Word,FCW)实际上是二进制编码的相位增量值,它作为相位累加器的输入。相位累加器由加法器和寄存器级联而成,它将寄存器的输出反馈到加法器的输入端实现累加的功能。在每一个时钟脉冲f c,相位累加器把频率字K累加一次,累加器的输出相应增加一个步长的相位增量,由此可以看出,相位累加器的输出数据

11、实质上是以K为步长的线性递增序列(在相位累加器产生溢出以前),它反映了合成信号的相位信息。相位累加器的输出与波形存储器的地址线相连,相当于对波形存储器进行查表,这样就可以把存储在波形存储器中的信号抽样值(二进制编码值)查出。在系统时钟脉冲的作用下,相位累加器不停的累加,即不停的查表。波形存储器的输出数据送到D/A转换器,D/A转换器将数字量形式的波形幅度值转换成一定频率的模拟信号,从而将波形重新合成出来。若波形存储器中存放的是正弦波幅度量化数据,那么D/A转换器的输出是近似正弦波的阶梯波,还需要后级的低通平滑滤波器进一步抑制不必要的杂波就可以得到频谱比较纯净的正弦波信号。图2.2所示为DDS各

12、个部分的输出信号。由于受到字长的限制,相位累加器累加到一定值后,就会产生一次累加溢出,这样波形存储器的地址就会循环一次,输出波形循环一周。相位累加器的溢出频率即为合成信号的频率。可见,频率控制字K越大,相位累加器产生溢出的速度越快,输出频率也就越高。故改变频率字(即相位增量),就可以改变相位累加器的溢出时间,在参考频率不变的条件下就可以改变输出信号的频率。图2.2 DDS各部分输出波形2.2 FPGA简介数字集成电路从产生到现在,经过了早期的电子管、晶体管、小中规模集成电路,到大规模、超大规模集成电路(VLSIC)以及许多既有特定功能的专用集成电路的发展过程。但是,随着为电子技术的发展,设计与

13、制造集成电路的任务已不完全由半导体厂商来独立承担。系统设计师们更愿意自己设计专用集成电路(Application Special Integrated Circuit, ASIC)芯片,而且希望ASIC的设计周期尽可能短,最好是在 实验室里就能设计出合适的ASIC芯片,并且立即投入实际应用之中,因而出现了现场可编程逻辑器件(Field Programmable Logic Device, FPLD),其中应用最广泛的当属CPLD和FPGA1。CPLD是复杂可编程逻辑器件(Complex Programmable Logic Device)的简称,FPGA是现场可编程门阵列(Field Prog

14、rammable Gate Array)的简称。两者的功能基本相同,只是实现原理略有不同,但有时可以忽略这两者的区别。不同厂家对可编程逻辑器件的叫法也不尽相同。Altera公司把自己的可编程逻辑器件产品中的MAX系列(乘积项技术,EEPROM技术)、FLEX系列(查找表技术,SRAM工艺)都叫做CPLD;而把也是SRAM工艺、基于查找表技术、要外挂配置用的FLEX系列的EPROM叫做FPGA。早期的可编程逻辑器件都属于低密度PLD(Programmable Logic Device),结构简单,设计灵活,但规模小,难以实现复杂的逻辑功能。1985年Xilinx公司首先推出了现场可编程门阵列FP

15、GA,这是一种新型的高密度PLD,采用CMOS-SRAM工艺制作,其结构和阵列型PLD不同,内部由许多独立的可编程模块组成,逻辑模块之间可以灵活地相互连接,具有密度高、编程速度快,设计灵活和可再配置设计能力等许多优点。FPGA一般由6部分组成,分别为可编程输入/输出单元、基本可编程逻辑单元、嵌入式块RAM、丰富的布线资源、底层嵌入功能单元和内嵌专用硬核等。每个单元简介如下:(1)可编程输入/输出单元(I/O单元)。目前大多数FPGA的I/O单元被设计为可编程模式,即通过软件的灵活配置,可适应不同的电气标准与I/O物理特性;可以调整匹配阻抗特性,上下拉电阻;可以调整输出驱动电流的大小等;(2)基

16、本可编程逻辑单元。FPGA的基本可编程逻辑单元是由查找表(LUT)和寄存器(Register)组成的,查找表完成纯组合逻辑功能。FPGA内部寄存器可配置为带 同步/异步复位和置位、时钟使能的触发器,也可以配置成为锁存器。FPGA一般依赖寄存器完成同步时序逻辑设计。一般来说,比较经典的基本可编程单元的配置是一个寄存器加一个查找表,但不同厂商的寄存器和查找表的内部结构有一定的差异,而且寄存器和查找表的组合模式也不同。(3)嵌入式块RAM。目前大多数FPGA都有内嵌的块RAM。嵌入式块RAM可以配置为单端口RAM、双端口RAM、伪双端口RAM、CAM、FIFO等存储结构。(4)丰富的布线资源。布线资

17、源连通FPGA内部所有单元,连线的长度和工艺决定着信号在连线上的驱动能力和传输速度。布线资源的划分:A全局性的专用布线资源:以完成器件内部的全局时钟和全局复位/置位的布线;B长线资源:用以完成器件Bank间的一些高速信号和一些第二全局时钟信号的布线;C短线资源:用来完成基本逻辑单元间的逻辑互连与布线;D其他:在逻辑单元内部还有着各种布线资源和专用时钟、复位等控制信号线。(5)底层嵌入功能单元。由厂商及芯片型号决定。(6)内嵌专用硬核。与“底层嵌入单元”有区别,这里指的硬核主要是那些通用性相对较弱的芯片,不是所有FPGA芯片都包含硬核。FPGA的基本特点主要有:   

18、; (1)采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。     (2)FPGA可做其它全定制或半定制ASIC电路的中试样片。     (3)FPGA内部有丰富的触发器和IO引脚。     (4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。     (5)FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。    使用FPGA时,可以根据不同的配置模式,采用不同的编

19、程方式。加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。FPGA有多种配置模式:并行主模式为一片FPGA加一片EPROM的方式;主从模式可以支持一片PROM编程多片FPGA;串行模式可以采用串行PROM编程FPGA;外设模式可以将FPGA作为微处理器的

20、外设,由微处理器对其编程。2.3 VHDL简介VHDL 的全称是Very-High-Speed Integrated Circuit Hardware Description Language,诞生于1982 年。1987年底,VHDL被 IEEE 和美国国防部确认为标准硬件描述语言。VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称可视部分),既涉及实

21、体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。 VHDL 语言能够成为标准化的硬件描述语言并获得广泛应用 , 它自身必然具有很多其他硬件描述语言所不具备的优点。归纳起来 ,VHDL 语言主要具有以下优点:(1) VHDL 语言功能强大 , 设计方式多样。VHDL 语言具有强大的语言结构, 只需采用简单明确的VHDL语言程序就可以描述十分复杂的硬件电路。同时, 它还具有多层次的电路设计描述功能。此外 ,VHDL 语言能够同时支持同步电路、异步电路和随机电路的设计实现

22、, 这是其他硬件描述语言所不能比拟的。VHDL 语言设计方法灵活多样 , 既支持自顶向下的设计方式, 也支持自底向上的设计方法; 既支持模块化设计方法, 也支持层次化设计方法。(2) VHDL 语言具有强大的硬件描述能力。VHDL 语言具有多层次的电路设计描述功能,既可描述系统级电路 , 也可以描述门级电路;描述方式既可以采用行为描述、寄存器传输描述或者结构描述,也可以采用三者的混合描述方式。同时,VHDL 语言也支持惯性延迟和传输延迟,这样可以准确地建立硬件电路的模型。VHDL 语言的强大描述能力还体现在它具有丰富的数据类型。VHDL 语言既支持标准定义的数据类型,也支持用户定义的数据类型,

23、这样便会给硬件描述带来较大的自由度。(3) VHDL 语言具有很强的移植能力。VHDL 语言很强的移植能力主要体现在: 对于同一个硬件电路的 VHDL 语言描述 , 它可以从一个模拟器移植到另一个模拟器上、从一个综合器移植到另一个综合器上或者从一个工作平台移植到另一个工作平台上去执行。(4) VHDL 语言的设计描述与器件无关。采用 VHDL 语言描述硬件电路时, 设计人员并不需要首先考虑选择进行设计的器件。这样做的好处是可以使设计人员集中精力进行电路设计的优化, 而不需要考虑其他的问题。当硬件电路的设计描述完成以后 ,VHDL 语言允许采用多种不同的器件结构来实现。(5) VHDL 语言程序

24、易于共享和复用。VHDL 语言采用基于库 ( library) 的设计方法。在设计过程中 , 设计人员可以建立各种可再次利用的模块 , 一个大规模的硬件电路的设计不可能从门级电路开始一步地进行设计 , 而是一些模块的累加。这些模块可以预先设计或者使用以前设计中的存档模块, 将这些模块存放在库中 , 就可以在以后的设计中进行复用。由于 VHDL 语言是一种描述、模拟、综合、优化和布线的标准硬件描述语言 , 因此它可以使设计成果在设计人员之间方便地进行交流和共享, 从而减小硬件电路设计的工作量, 缩短开发周期。2.4 Quartus简介Quartus II 是Altera公司的综合性PLD开发软件

25、,支持原理图、VHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在

26、设计流程的各个阶段使用熟悉的第三方EDA工具。此外,Quartus II 通过和DSP Builder工具与 Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。 MaxplusII作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。目前Altera已经停止了对Maxplus II 的更新支持,Quartus II 与之相比不仅仅是支持器件类型的丰富和图形界面的改变。Altera在Quartus II 中包含了许多诸如Sig

27、nalTap II、Chip Editor和RTL Viewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承了Maxplus II 友好的图形界面及简便的使用方法。 Altera QuartusII作为一种可编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。 Altera的Quartus II可编程逻辑软件属于第四代PLD开发平台。该平台支持一个工作组环境下的设计要求,其中包括支持基于Internet的协作设计。Quartus平台与Cadence、Exemplar Logic、 Mentor Graphics、Synopsys和S

28、ynplicity等EDA供应商的开发工具相兼容。改进了软件的Logic Lock模块设计功能,增添 了Fast Fit编译选项,推进了网络编辑性能,而且提升了调试能力。图2.3 EDA工具设计流程图3. 系统硬件电路设计3.1 数字信号发生器的系统组成该数字信号发生器系统主要由输入部分、FPGA部分、D/A转换部分、频率、幅值调节和波形转换部分组成。如图3.1所示。分频器FPGA部分系 统 控 制 器时钟复位波形调幅调频正弦波三角波方波其他波型波 形 DA 转 换滤波输出图3.1 数字信号发生器系统组成3.2 设计原理及要求 在本设计中,利用FPGA,采用EDA(Electronic Des

29、ign Automation)中自顶向下(top-to-down)的设计方法,选用基于相位累加器的直接数字合成/ DDS技术来完成数字信号发生器各功能模块的设计。DDS这种结构主要由相位累加器、 相位调制器、 波形 ROM 查找表、 D/ A 构成。其中相位累加器、 相位调制器、 波形 ROM 查找表是 DDS 结构中的数字部分 ,由于具有数控频率合成的功能 ,又合称为 NCO2。它的工作原理是:将要产生的波形数据存入波形存储器 ,然后在参考时钟的作用下 ,对输入的频率数据进行累加 ,并且将累加器的输出一部分作为读取波形存储器的地址 ,将读出的波形数据经D/A转换为相应的模拟电压信号。本研究的

30、重点就是用VHDL来实现DDS的功能 ,能够达到高精度的输出 ,同时标准波形数据生成存放在 ROM 中 ,可以简化运算过程 ,提高运算速度 ,加快反应时间。本设计主要通过VHDL语言实现频率控制、波形控制、 波形数据的提取、 波形的产生工作。其中 ,波形数据运用VHDL语言编写 。控制部分主要采用产生高低电平的拨码开关控制。程序下载到 FPGA 上实现 ,经过D/ A 输出波形。并通过Altera公司QuartusII5.1软件进行波形的仿真,从而完成整个设计。本设计的任务是设计一个基于FPGA的数字信号发生器,根据任务书要求必须达到以下要求:1.利用EDA开发系统、Quartus II 5.

31、1软件实现数字信号发生器的设计;2.根据整体电路的工作原理,完成各个子模块的设计及实现;3.对数字信号发生器完成VHDL语言描述;4.该数字信号发生器能够产生正弦波、方波、三角波、锯齿波信号;5.产生的波形信号频率和幅度可通过按键进行调节;6.用按键调节实现各种波形的转换。3.3 输入部分输入部分包含以下功能按键:时钟、复位、波形、调幅、调频。1时钟:标准的50MHZ时钟输入。2复位:低电平复位。3波形:为波形输出选择开关,可以选择单波形的输出。4调幅:可以递增和递减正弦波、三角波、方波的幅度。5调频:可以递增和递减正弦波、三角波、方波的频率。3.3.1频率、幅值和波形转换部分由于采用DDS,

32、在ROM中存有波形一个周期的n个等间隔归一化采样数据,改变相位累加器步进,从而改变对ROM中数据的读取速度,即可合成不同频率波形,存储器中存入过量的采样值,使得采样点数较少时,依然能够得到较好波形输出,从而得到较高频率输出。否则,采样点数太少会使产生波形严重失真。输出波形频率计算: (式3.1)式中是晶振频率K 分频系数 N 相位累加器位数 S 相位累加器步长若取代入式(3.1)得到。因此,只要控制S 的值就可准确实现频率步进为10 Hz 的等步进调频。如采用32 MHz 的晶振,也能得到10 Hz 精确的等步进调节,但牺牲了波形质量。通过实验测试和比较,可用下式计算频率: (式3.2)因为6

33、5306不是一个2N 的数,这样波形会漏掉少量采样点。即使这样,得到波形依然平滑,可满足设计要求。若要使频率调节步进减小到1Hz,对晶振有特殊要求,它的振荡频率必须是2的N次幂。由式(3.1)举例说明累加器位数不同产生差异: (式3.3) (式3.4)式(3.4) 产生的波形优于式(3.3) ,最高频率也高出几倍。由于DAC0832的电流建立时间是1s ,因此输出波形的最高频率受下式限制: (式3.5)因此,要得到更高频率的波形需使用更高速的D/A转换器。频率和幅值调节和波形转换电路如图3.2所示。八个按键一端接1K排阻(上拉电阻)后接VCC,一端接FPGA控制信号引脚输入端,按键有八个,分别

34、为复位键SW1,控制波形转换键SW2,控制幅度步进键SW3,控制幅度步减键SW4,控制频率步进键SW5,控制频率步减键SW6,控制幅值步进键SW7,控制幅值步进键SW8。图3.2 输入按键电路3.3.2系统时钟电路系统即FPGA运行时所需的时钟,采用50MHZ的有源晶振产生,电路如图3.3所示。其中C5为高频旁路电容,以滤除不良的高档次谐波,对时钟波形进行整形,CLK1为输入时钟信号源。 图3.3 系统时钟电路3.3.3 电源电路的设计电源是电路正常工作的保证,直接影响着系统的稳定。如下图3.4所示,U2为5V直流电源输入端,为USB供电,D2为电源指示。输出部分有两个部分,分别为VEE+5V

35、和3.3V的VCC。其中VEE是给D/A供电,VCC给整个系统供电。图3.4 电源电路3.4 FPGA部分本设计使用的FPGA芯片为EPF10K50ETI144-2芯片,其典型逻辑门数(包括逻辑门和RAM)为50000门,最大可用系统门数为116000门,逻辑单元(Logic elements)为2880个,逻辑阵列模块(Logic array blocks)为360个,嵌入式阵列模块(Embedded array blocks)为10个,RAM总容量为20480字节,用户可用的I/O引脚最多为310个。芯片的工作电压为+5V。其内部结构如图3.5所示。图3.5 EPF10K50ETI144-

36、2芯片结构图通常情况下在硬件调试的过程中一般使用下载电缆进行下载,而当调试完成以后要用配置芯片对FPGA进行配置。配置芯片在每次系统上电以后自动将配置文件加载到FPGA中形成电路。3.5 D/A转换部分D/A转换器电路的设计:从波形RAM中读出的幅度量化数据还只是一个数字信号,要得到最后的输出信号必须经过数模转换器。因此在波形RAM之后要设计一个D/A转换电路。数模(D/A)转换电路的作用是把已经合成的波形幅值的数字量转换成模拟量,其速度和特性直接影响整个系统的性能。D/A转换器件的首要特性要求是高速,其次是转换位数,本设计中选用8位的D/A芯片DAC0832。波形幅度量化序列经D/A转换后成

37、为阶梯波。频率合成器对D/A转换器的分辨率有一定的要求,D/A转换器的分辨率越高,合成的波形台阶数就越多输出的波形的精度也就越高。D/A的输出用电压形式表示一般应为: (式3.6) 式中D为D/A的输入数据值,N为D/AC的位数,即通常所指的D/AC的分辨率,为输入D/A的参考电压。D/A转换电路的设计首先是要选择一款合适的D/A转换芯片。D/A转换芯片种类繁多。选择D/A转换芯片要根据很多因素来确定,最主要的就是要考虑字长和转换速度。本设计采用DAC0832 作为D/A 转换器件,其具有数字量的输入锁存功能,DAC0832芯片的输出通过放大器OP07,即可用示波器观察。100K的电位器在+5

38、V和0V电压间为DAC0832提供参考电压。D/A转换电路的原理图如图3.6所示:图3.6 D/A转换电路的原理图3.5.1 DAC0832转换器简介DAC0832是双列直插式8位D/A转换器。能完成数字量输入到模拟量(电流)输出的转换。其主要参数如下:分辨率为8位,转换时间为1s,满量程误差为±1LSB,参考电压为(+10-10)V,供电电源为(+5+15)V,逻辑电平输入与TTL兼容。从图3.7中可见,在DAC0832中有两级锁存器,第一级锁存器称为输入寄存器,它的允许锁存信号为ILE,第二级锁存器称为DAC寄存器,它的锁存信号也称为通道控制信号XFER。图3.7 DAC0832

39、引脚图图3.7中,当ILE为高电平,片选信号CS 和写信号WR1为低电平时,输入寄存器控制信号为1,这种情况下,输入寄存器的输出随输入而变化。此后,当WR1由低电平变高时,控制信号成为低电平,此时,数据被锁存到输入寄存器中,这样输入寄存器的输出端不再随外部数据DB的变化而变化。对第二级锁存来说,传送控制信号XFER 和写信号WR2同时为低电平时,二级锁存控制信号为高电平,8位的DAC寄存器的输出随输入而变化,此后,当WR2由低电平变高时,控制信号变为低电平,于是将输入寄存器的信息锁存到DAC寄存器中。DAC0832各引脚编号及其作用: 1号CS引脚:片选信号输入线,低电平有效; 2号WR1引脚

40、:为输入寄存器的写选通信号; 3号AGND引脚:模拟地,模拟信号和基准电源的参考地; 4-7,13-16号D0-D7引脚:数据输入线,TLL电平; 8号V ref引脚:基准电压输入(-10V+10V); 9号RFB引脚:反馈信号输入线,芯片内部有反馈电阻; 10号DGND引脚:数字地; 11号IOUT1引脚:电流输出线,当输入全为1时,IOUT1最大; 12号IOUT2引脚:电流输出线,其值与IOUT1为一常数; 17号XFRE引脚:数据传送控制信号输入线,低电平有效; 18号WR2引脚:为DAC寄存器写选通输入线; 19号ILE引脚:数据锁存允许控制信号输入线,高电平有效; 20号V cc引

41、脚:电源输入线(+5V+15V)Vref。3.6滤波电路滤波是信号处理中的一个重要概念。滤波分经典滤波和现代滤波。经典滤波的概念,是根据傅里叶分析和变换提出的一个工程概念。根据高等数学理论,任何一个满足一定条件的信号,都可以被看成是由无限个正弦波叠加而成。换句话说,就是工程信号是不同频率的正弦波线性叠加而成的,组成信号的不同频率的正弦波叫做信号的频率成分或叫做谐波成分。只允许一定频率范围内的信号成分正常通过,而阻止另一部分频率成分通过的电路,叫做经典滤波器或滤波电路。由于在电路运行过程中间,外部信号会对波形产生一定的干扰,而且从D/A转化部分中转换出的波形是一种不平滑的阶梯波形,因此为了防止外

42、部信号的干扰和内部不平滑阶梯波的干扰,本次设计中增加了无源滤波中的LC滤波电路,目的在于消除外部信号的干扰,同时能够把从D/A转换部分转换出的阶梯波形通过滤波转变为平滑的正弦波、方波、三角波、锯齿波,其滤波电路如图3.8所示,SIGOUT输入信号来自DAC的输出,JP1的输出接示波器。图3.8 滤波电路4. 系统软件设计4.1软件系统流程图本设计主要是由FPGA为核心控制一些简单外围电路输出可控的方波、三角波、锯齿波、正弦波。输入部分为8个按键值,分别用于控制波型的选择、波型的调节;输出部分由一个8位的DA组成,由FPGA将数据波型数据送给DA转换输出模拟波型信号。具体流程如图4.1所示:初始

43、化按键输入,选择波型,调节波型。由FPGA生成数字波型数据将数字波型数据送入DA转换输出模拟波型信号图4.1 系统流程图通过按键可以选择输出波型,如方波、三角波、正弦波。波型频率幅度的改变可以通过按对应的频率加按键和频率减键,幅度加键幅度减键。由于频率和幅度改变在Quartus 软件平台下不能明显仿真步进变化,所以本设计没有介绍步进仿真。4.2主要函数语句分析在程序设计中,主要使用的函数语句有两种:If-else语句和case-when语句。这两种语句也是VHDL程序设计中常用的语句。二者都属于流程控制语句。流程控制语句通过条件控制开关决定是否执行一条或几条语句或重复执行一条或几条语句或跳过一

44、条或几条语句 。 IF语句是一种条件语句,它根据语句中所设置的一种或多种条件,有选择地执行指定的顺序语句。IF语句的语句结构有以下三种: IF 条件句 Then - 第一种IF语句结构 顺序语句 END IF IF 条件句 Then - 第二种IF语句结构 顺序语句 ELSE 顺序语句 END IF IF 条件句 Then - 第三种IF语句结构 顺序语句 ELSIF 条件句 Then 顺序语句 . ELSE 顺序语句 END IFCASE语句根据满足的条件直接选择多项顺序语句中的一项执行,CASE语句的结构如下:CASE 表达式 ISWhen 选择值 => 顺序语句When 选择值 =

45、> 顺序语句.END CASE 当执行到CASE语句时,首先计算表达式的值,然后根据条件句中与之相同的选择值。执行对应的顺序语句,最后结束 CASE语句。表达式可以是一个整数类型或枚举类型的值,也可以是由这些数据类型的值构成的数组。4.3 数字信号发生器的软件设计 本次设计的软件部分主要运用Altera公司的Quartus软件平台,其开发流程基本分成2个步骤:1.设计输入Quartus软件的设计文件可以来自Quartus5.1设计输入工具或各种工业标准的EDA设计输入工具Quartus强大的集成功能允许信息在各种应用程序间自由交流,设计者可在一个工程内直接从某个设计文件转换到其他任何设计

46、文件,而不必理会设计文件是图形格式、文本格式,还是波形格式。Quartus具有如下的多种设计输入方法:原理图输入与符号编辑、硬件描述语言、波形设计输入、平面图编辑以及层次设计输入。如此众多的设计方法帮助设计者轻松地完成设计输入。2.项目处理Quartus处理一个设计时,软件编译器读取设计文件信息,产生用于器件编程、仿真、定时分析的输出文件。消息处理器可以自动定位编译过程中发现的错误,编译器还可以优化设计文件。项目处理包括以下基本步骤:(1)消息处理器自动定位错误;(2)逻辑综合与试配;(3)定时驱动编译;(4)设计规则检查;(5)多器件划分。本次设计的数字信号发生器在Quartus5.1下的R

47、TL图如图4.2所示。图4.2 系统RTL图4.4软件各模块4.4.1波形发生器设计的波形发生器就是为了得到正弦波、三角波、方波这三种波形,并可通过按钮选择输出波形。波形发生器可以由正弦波产生模块、三角波产生模块、方波产生模块和输出波形选择模块(ch3a1)。下图为波形发生器内部的顶层设计的规划图图4.3波形发生器内部的顶层设计的规划图如图可以看到,控制输入有三大块,一个是个按钮的数据选择命令的输入,一个是时时钟输入,它的频率将决定输出波形的频率,还有一个是复位键。在芯片里面要处理的就有波形产生器产生相应的数据后输出8位的数据到数据选择模块中,通过按钮发出选择数据的指令,3选1的数据选择器选择

48、相应的数据进行输出,把这些数据输入D/A模块中,通过D/A模块对数据转换,在它的输出端就可得到相应的波形。4.4.2 主控制模块主控制模块完成了频率调节、幅度调节和波形选择三个控制功能。图是用Quartus5.1生成的主程序结构框图,其中CLK为标准频率50M输入,RST为系统复位键,VADD,VDEC为调节输出幅度的二个按键,使用方法是当按下VADD时幅度会每隔一秒递增一次,直到最大幅度,当按下VDEC时幅度会每隔一秒递减一次,直到最小幅度,PADD,PDEC为调节输出频率的二个按键,使用方法是当按下PVADD时频率会每隔一秒递增一次,直到最大频率,当按下PDEC时频率会每隔一秒递减一次,直

49、到最小频率。SEL为波形选择键,当按下SEL键时系统每隔一秒在方波、三角波、正弦波,锯齿波四种波形循环切换。CNT为FPGA产生的8位数字波形数据信号。具体框图如图4.4所示。图4.4主程序结构框图4.4.3 波形数据产生模块(1)方波数据产生模块方波产生方法是由主控制模块提供方波频率和幅度,按照主控制模块的频率产生“0”和主控提供的幅度值。将这些数据直按送入DAC就能得到所需方波信号。产生框图如图4.5所示:CLK为主控模块提供的频率信号,RST为复位键,DIN为主控模块提供幅度信号,DOUT为产生的波型数据信号。图4.5 方波数据产生结构框图方波信号仿真:按仿真按钮可以直接进行仿真,提示信

50、息提示你仿真成功后。可以看到如下仿真波形,如图4.6方波信号仿真。在这个仿真波形图中,可以看到当clrn为高电平的时候,出现一个clk时钟脉冲的上升沿计数,从0跳到255,等下一个脉冲来临时有从255跳到0,依次重复,如图所示,波形将以方波的规律变化。(2)三角波数据产生模块三角波产生方法是由主控制模块提供波型频率和幅度,按照主控制模块的频率产生由0自加到主控模块提供的幅度值然后再自减到0。这些数据直按送入DAC就能得到所需三角波信号。产生框图如图4.7所示:CLK为主控模块提供的频率信号,RST为复位键,DIN为主控模块提供幅度信号,DOUT为产生的波型数据信号。图4.7 三角波数据产生结构

51、框图按仿真按钮可以直接进行仿真,提示信息提示你仿真成功之后,可以看到如下的仿真波形, 仿真如图4.8所示。图4.8 三角波信号仿真在这个仿真图中,可以看到当clrn为高电平的时候,出现一个clk时钟脉冲的上升沿开始计数,从0增到1,然后每来一个脉冲就增一次,直到增到255,等下一个脉冲到临时将有从255减到254,然后每来一个脉冲就减一次,直到减到0,依次重复,如图所示,波形将出现三角波的规律变化。(3)正弦波数据产生模块正弦波产生方法是由主控制模块提供波型频率,按照主控制模块的频率依次从64个已写好的正弦数据中取值,然后这些数据直按送入DAC就能得到所需正弦波信号。因为64个数据已经固定,所

52、发正弦波不好调幅。产生框图如图:CLK为主控模块提供的频率信号,RST为复位键,DATA为产生的波型数据信号。具体框图如图4.9所示。图4.9 正弦波数据产生结构框图正弦波信号仿真:由上面的设置可以直接按波形仿真按钮,进入仿真介面.可在菜单中选择:PROCESSSimulator命令,也可以用工具栏的按钮.仿真介面与编译的差不多,只是STATUS下只有SIMULATOR状态进度,仿真完成了后它会提示你. 当提示信息提示仿真成功之后,可以看到如下的仿真波形,仿真如图4.10所示。图4.10 正弦波信号仿真在这个仿真图中,可以看到当clrn为高电平的时候,出现一个clk时钟脉冲的上升沿开始计数,图

53、中的数据将根据列表中所查到的数据按照一定的规律显示。如图所示,波形将出现正弦波的规律变化。4.4.4波形产生模块本设计用VHDL语言根据傅立叶函数采集点进行扫描,分别产生正弦波、三角波和矩形波。以下介绍各种常用周期信号的傅立叶函数展开式。 1.正弦波发生分为两个步骤,即正弦波幅值采样存储和正弦波波形的还原输出。幅值采样是将一个周期正弦波进行64等分,将64个采样点进行量化处理,量化值=255*sin360/64(V),将64点量化值存入存储器。正弦波形的产生是通过循环反复将存储器中的64点采样值通过DAC0832进行还原输出,得到幅值正比于64点采样值的正弦波。图4.11正弦波采样图2.矩形波

54、的实现较之正弦波发生简单,由于矩形波是两个电平值间的交替变换,因此波形采样值的预存只要有两个不同的数值就行了,为了使矩形波发生的频率灵活可调,采用60个采样值扫描输出来实现,每半个矩形波周期采用三十个采样值,循环反复将存储器中的60点采样值通过DAC0832进行还原输出,得到幅值正比于点采样值的矩形波。图4.12方波采样图3.由于三角波是线性的,比较简单就可以产生,如果最低电压设为15V,最高是255V,那么根据它的公式255/15=17,每个点的电压只要依次加17就可以得到,一个波形所以采用简单的加减算法就可实现 图4.13 三角波采样图5. 设计总结FPGA是当前数字系统设计领域比较火热的

55、一种工具,它可以大大缩短设计需要的时间,降低成本的同时也提高了系统的稳定性。使用VHDL语言描述硬件系统使得FPGA技术有了更广阔的应用领域。本设计使用了基于Altera公司的FPGA系列,采用Altera公司提供的系统开发工具Quartus II软件进行了系统的设计和仿真。数字信号发生器在实验室以及工业场所都被大量使用着,本系统即实现了可以输出四种波形的简易多功能波形发生器,仿真结果证明,该设计正确有效,可以作为制作实物的理论依据。但由于设计者能力有限,本系统仍然有着很多可改进的地方,比如可以升级为输出频率、幅值可调的波形,或者输出任意波形以更贴近实际情况。此次课题的设计已告一段落,在这次毕

56、业设计过程中需要用一些不曾学过的东西时,就要去有针对性地查找资料,然后加以吸收利用,以提高自己的应用能力,而且还能增长自己见识,补充最新的专业知识,学会了一些编程方面的常用算法。作为一名电子专业的毕业生,我将会继续在新技术的道路上不断钻研、开拓进取。相信通过此次设计的锻炼,我对专业知识和技能的掌握将更加牢靠,在今后的工作和学习中,必将使我受益匪浅,取得应有的优势。附 录数字信号发生器程序-主控文件LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY SUN ISPORT( CLK:IN S

57、TD_LOGIC;RST:IN STD_LOGIC;VADD:IN STD_LOGIC;VDEC:IN STD_LOGIC;PADD:IN STD_LOGIC;PDEC:IN STD_LOGIC;SEL :IN STD_LOGIC;CNT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END ENTITY;ARCHITECTURE ONE OF SUN ISSIGNAL DCLK:STD_LOGIC;SIGNAL DIV :STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL DCNT :STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNA

温馨提示

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

评论

0/150

提交评论