目录摘要 (1)1 绪论 (2)1.1 信号发生器简介 (2)1.2 课程设计目的 (2)2 课程设计环境 (2)2.1 Quartus II简介 (2)2.2 VHDL简介 (3)3 信号发生器原理 (4)3.1 脉冲发生器原理 (4)3.2 DDS原理 (4)3.3 D/A转换器原理 (5)3.4 波形产生原理 (5)4 信号发生器的模块 (6)4.1 频率控制块 (6)4.2 波形控制块 (7)4.3 LPM_ROM宏功能块 (7)4.4 三位选择器 (8)5 Quartus II 仿真 (8)5.1 波形仿真图 (9)5.2 SignalTap II File 仿真 (10)6 心得体会 (11)7 参考文献 (12)附录A 信号发生器原理图 (13)附录B SignalTap II File 仿真图 (13)附录C 模块程序 (14)摘要随着科学技术的飞速发展,电子测量技术被广泛应用在电子、机械、医疗、测控及航天等各个领域,而电子测量技术要用到各种形式的高质量信号源,因此任意波形发生器的研制就具有非常重要的现实意义。
本文便是基于DDS(Direet Digital Synthesis)技术进行任意波形发生器研制的。
要求可以产生正弦波、方波、三角波与锯齿波等常规波形,而且能够产生任意波形,从而满足研究的需要。
具体工作如下:(一)介绍信号发生器的产生原理,阐述频率合成技术的各种方式与技术对比情况,并选定直接数字频率合成技术进行研制。
(二)介绍系统的硬件设计构成与功能实现,并对系统部件进行逐一细述。
选用单片机作为控制模块,使用FPGA实现DDS功能作为技术核心,并对外围电路的设计与接口技术进行分析。
(三)讲述DDS的工作原理、工作特点与技术指标,并基于EDA技术进行设计,通过使用相位累加器与波形ROM等模块,实现DDS功能。
同时辅以使能模块与行列式键盘,实现各种波形的灵活输出。
(四)给出系统产生的测试数据,并对影响频谱纯度的杂散与噪声产生的原因进行分析。
关键词:电子测量;任意波形发生器;DDS;单片机;FPGA1 绪论1.1 信号发生器简介信号发生器又称信号源或振荡器,在生产实践和科技领域中有着广泛的应用。
它能够产生多种波形,如三角波、锯齿波、矩形波(含方波)、正弦波等,在电路实验和设备检测中具有十分广泛的用途。
例如在通信、广播、电视系统中,都需要射频(高频)发射,这里的射频波就是载波,把音频(低频)、视频信号或脉冲信号运载出去,就需要能够产生高频的振荡器。
在工业、农业、生物医学等领域内,如高频感应加热、熔炼、淬火、超声诊断、核磁共振成像等,都需要功率或大或小、频率或高或低的信号发生器。
本设计采用FPGA来设计制作多功能信号发生器。
该信号发生器可以产生正弦波、三角波、方波等波形。
1.2 课程设计目的1、了解高速DA芯片TLC5602的工作原理。
2、了解用DDS的工作原理。
3、了解对内部LPM-ROM模块的调用。
2 课程设计环境2.1 Quartus II简介Quartus II 是Altara公司的综合性PLD/FPGA开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。
Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。
具有运行速度快,界面统一,功能集中,易学易用等特点。
Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。
对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。
此外,Quartus II 通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。
MaxplusII 作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。
目前Altera已经停止了对Maxplus II 的更新支持,Quartus II 与之相比不仅仅是支持器件类型的丰富和图形界面的改变。
Altera在Quartus II 中包含了许多诸如SignalTap II、Chip Editor和RTL Viewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承了Maxplus II 友好的图形界面及简便的使用方法。
Altera Quartus II 作为一种可编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。
2.2 VHDL简介VHDL(Very High Speed Integrated Circuit Hardware Description Language,超高速集成电路硬件描述语言)是一种用来描述数字系统行为和结构的硬件描述语言,被广泛的运用于描述和仿真各种数字系统,小到几个门,大到许多复杂集成电路相连的系统。
VHDL诞生于1982年,是由美国国防部开发的一种快速设计电路的工具,目前已经成为IEEE(The Institute of Electrical and Electronics Engineers)的一种工业标准硬件描述语言。
相比传统的电路系统的设计方法,VHDL具有多层次描述系统硬件功能的能力,支持自顶向下(Top to Down)和基于库(Library Based)的设计的特点,因此设计者可以不必了解硬件结构。
从系统设计入手,在顶层进行系统方框图的划分和结构设计,在方框图一级用VHDL 对电路的行为进行描述,并进行仿真和纠错,然后由工业界开发的。
3 信号发生器原理由于本系统由多部分构成,在此根据各部分的基本原理,对各个部分进行逐个分析。
3.1 脉冲发生器原理脉冲发生器就是要产生一个脉冲波形,而可控脉冲发生器则是要产生一个周期和占空比可变的脉冲波形。
可控脉冲发生器的实现原理比较简单,可以简单的理解为一个计数器对输入的时钟信号进行分频的过程。
通过改变计数器的上限值来达到改变周期的目的,通过改变电平翻转的阈值来达到改变占空比的目的。
下面举个简单的例子来说明其工作原理。
假如有一个计数器T 对时钟分频,其计数的范围是从0~N ,另取一个 M (0≤M ≤N ),若输出为Q ,那么Q 只要满足条件时,通过改变N 值,即可改变输出的脉冲波的周期;改变M 值,即可改变脉冲波的占空比。
这样输出的脉冲波的周期和占空比分别为:3.2 DDS 原理本设计采用调用宏单元中得计数器实现实现对波形数据地址的寻找,用三选一数据选择器实现波形的选择。
在上述的频率的控制的程序,是基于DDS 原理的基础编程的。
需要计算出它的初值后,在送到分频器中。
在传统的DDS 中,频率控制字和系统时钟决定了输出时钟的频率。
由DDS 原理知道,它由累加器和相位寄存器两部分组成,由外部送入频率控制字。
DDS 系统的参考时钟源通常是一个具有高稳定性的晶体振荡器,整个系统的各个组成部分提供同步时钟。
频率字⎩⎨⎧≤≤<≤=N T M M T Q 001%1001)1(⨯+=+=N M T N CLOCK 占空比周期(FSW)实际上是相位增量值(二进制编码),作为相位累加器的累加值。
相位累加器在每一个参考时钟脉冲输入时,累加一次频率字,其输出相应增加一个步长的相位增量。
我们只是用来实现波形的一个简易信号发生器,所以直接用QuartusII中得宏功能实现。
3.3 D/A转换器原理DA转换器相对于AD转换器在时序上要求相对较低,使用比较简单,在此处不作详细叙述。
本实验要求使用开发平台上现有的并行D/A转换器TLC5602来产生四种频率可调的波形:正弦波、方波、三角波。
三角波产生的原理比较简单我们可以采用0-255-0的循环加减法计数器来实现。
方波产生的原理是让计数器在0和255时各保持输出半个周期。
正弦波的产生比较复杂,一般采用查表法来实现,正弦表值可以用MATLAB,C等程序语言生成。
在一个周期取样点越多则输出的波形失真度越小,但是点越多存储正弦波表值所需要的空间就越大,编写就越复杂。
在要求不是很严格的情况下取64个点就可以了。
正弦波波形数据ROM可以由多种方式实现,如逻辑方式在FPGA中实现,或利用LPM-ROM来实现。
相比之下,LPM-ROM实现起来更快,更方便。
LPM-ROM模块只有在含有EAB的器件上才能使用。
在这个实验中我们将这三种波形的数据均放入LPM-ROM内,我们只需要对每种波形的起始地址进行控制即可实现对四种波形的控制输出。
3.4波形的产生原理在QuartusII开发环境下搭建系统模型、仿真及下载,并采用嵌入式逻辑分析仪分析和验证了实验结果。
该系统可以完成多位频率控制字的累加,能够产生正弦波、方波和三角波,具有良好的实时性。
DDS可以根据ROM中存储数据的不同产生多种波形。
在QuartusII开发环境下搭建DDS系统模型需要订制波形存储器ROM,根据所需精度的不同,ROM中存储的采样点数也不同。
当所需波形数据非常简单时,可以在QuartusII中定制ROM时直接将数据写入新建的mif文件,然后保存即可,当所需波形数据较为复杂时,可以通过Matlab来自动生成所需波形的幅度数据,然后再通过调用mif文件来达到预期目标。
例如:正弦信号的产生,可由Matlab程序x=linspace(0,2*批,1024);y=127.5*sin(x)+127.5z=round(y)生成数据。
所以要根据实际的需要来综合考虑存储单元的个数。
将上述指令在Matlab 环境中运行之后就能够得到所需mif文件。
在mif文件生成之后需要将此文件添加进入DDS系统的ROM中,然后进行全局的编译,编译通过后就可以进行工程的下载。
具体的波形可以通过示波器来分析,或者使用Quartus II自带的嵌入式逻辑分析仪来分析。
在使用嵌入式逻辑分析仪分析和观察时,采样信号要根据DDS的时钟信号来确定,待测信号设定为DDS的输出信号,当工程下载到FPGA芯片后,待测信号通过USB-BLASTER反馈至嵌入式逻辑分析仪中,选择不同的数据类型,可以观察到以十进制数据表示的数字信号或者以实际波形表示的模拟信号。
4信号发生器的模块4.1频率控制块这种发生器的信号不是由振荡器直接产生,而是以高稳定度石英振荡器作为标准频率源,利用频率合成技术形成所需之任意频率的信号,具有与标准频率源相同的频率准确度和稳定度。