基于FPGA的DDS信号发生器设计_第1页
基于FPGA的DDS信号发生器设计_第2页
基于FPGA的DDS信号发生器设计_第3页
基于FPGA的DDS信号发生器设计_第4页
基于FPGA的DDS信号发生器设计_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

1、毕 业 设 计 论 文题 目: 基于fpga的dds信号发生器设计 学 院: 电气与信息工程学院 专 业: 电子信息工程 姓 名: 学 号: 指导老师: 完成时间: 摘要基于fpga的波形发生器己成为现代测试领域应用最为广泛的通用仪器之一。随着科技的发展,对波形发生器各方面的要求越来越高。近年来,直接数字频率合成器(dds)由于其具有频率分辨率高、频率变换速度快、相位可连续变化等特点,在数字通信系统中已被广泛采用而成为现代频率合成技术中的佼佼者。由于现场可编程门阵列(fpga)具有高集成度、高速度、可实现大容量存储器功能的特性,能有效地实现dds技术,极大的提高波形发生器的性能,降低生产成本。

2、在现代电子器件、通信技术、医学成像、无线 pcs/ pcn系统、雷达、卫星通信中,具有很广泛的应用。本文首先介绍了dds波形发生器的研究背景和dds的理论。然后详尽地叙述了在以matlab平台上dspbuilder工具箱,编程实现一个dds信号源,在产生正弦波、方波、三角波、锯齿波的基础上,还产生不同通信中用到的调制信号(ask,fsk,psk等),最后通过matlab仿真并转化为硬件描述语言,再通过quartus ii下载到试验箱上,借助quartus ii对结果进行观察与分析。通过分析结果表明,本设计达到了预定的要求,证明了采用软硬结合的方式,结合dds技术,对fpga的编程实现产生多种波

3、形(如正弦波,方波、三角波、ask,fsk,psk)的方法是可行的。关键词: dds,fpga,dsp builder,波形发生器abstractfpga.based waveform generator field of application of modern testing has become the most widely used generic instruments. with the development of technology, various aspects of the waveform generator is increasingly demanding.

4、in recent years, direct digital frequency synthesizer (dds) because of its high frequency resolution, frequency conversion speed, continuously variable phase, etc., because grammable gate array (fpga) with high integration, high.speed, large capacity memory can be realized functional charac

5、teristics, can effectively achieve the dds technology, greatly improves the performance waveform generator, reduce production costs. in the modern electronic devices, communications technology, medical imaging, wireless pcs / pcn systems, radar, satellite communications, with a very wide range of ap

6、plications.this paper first introduces the research background waveform generator dds and dds theory. then described in detail in order to dspbuilder toolbox matlab platform, programming a dds signal source, produces sine, square, triangle wave, sawtooth foundation, but also produce different modula

7、ted signals used in communication (ask, fsk, psk, etc.), and finally through matlab simulation and transformed into hardware description language, and then downloaded to the chamber through the quartus ii, the quartus ii through observation and analysis of the results. by analyzing the results show

8、that the design meets the prescribed requirements, proved using a combination of hardware and software, combined with dds technology, the programming of the fpga generates a variety of waveforms (such as sin,squ, ask, fsk, psk) method is feasible.keywords: dds, fpga, dsp builder, waveform generator目

9、录摘要iabstractii目录i第1章 绪 论11.1 课题背景11.2 国内外波形发生器发展现状21.2.1 波形发生器的发展现状21.2.2 国内外波形发生器产品比较21.2.3 研究波形发生器的目的及意义31.3 论文的主要工作与章节安排3第2章 dds波形发生器的理论介绍42.1 dds的基本原理与特点42.2 dds信号的优点与缺点62.2.1 dds的优点62.2.2 dds的缺点6第3章 开发平台介绍73.1硬件平台fpga介绍73.1.1 fpga简介73.1.2 fpga工作原理73.2 软件开发平台matlab简介83.3 dsp builder简介93.4 软件平台qu

10、artus ii介绍10第4章 系统实现114.1 设计要求114.2 系统方案论证与比较114.2.1 产生dds信号波形方案的选择114.2.2 单片机处理器比较选择124.3 系统理论分析及设计124.3.1 总体设计124.3.2 主要技术参数的分析与确定124.4 单片机软件和硬件设计134.4.1 硬件电路图设计144.4.2 单片机编程154.5 fpga软件和硬件设计174.5.1 fpga硬件设计174.5.2 fpga软件设计194.5.2 matlab软件设计22第5章 系统仿真235.1 单片机软件调试235.2matlab dsp builder 仿真235.2.1

11、dsp builder设计流程235.2.2 matlab仿真结果26第6章 系统测试286.1 硬件焊接与测试286.2 测试波形频率296.3 波形测试种类30总结31参考文献32致谢33附录a34第1章 绪 论本章首先介绍dds信号发生器的课题背景,国内外发展现状,和论文的章节安排。1.1 课题背景频率检测是电子测量领域的最基本也是最重要的测量之一,频率信号抗干扰强,易于传输,可以获得较高的测量精度,所以频率方法的研究越来越受到重视1。在频率合成领域中,直接数字合成(direct digital synthesizer,简称:dds)是近年来新的技术, 它从相位的角度出发直接合成所需波形

12、。 它是由美国人j.tierncy首先提出来的,是一种以数字信号处理理论为基础,从相位概念出发直接合成所需波形的一种新的全数字技术的频率合成方法。其主要优点有:频率改变速度快、频率分辨率高、输出相位连续、可编程、全数字化便于集成等,目前使用最广泛的一种dds频率合成方式是利用高速存储器将正弦波的m个样品存在其中,然后以查找的方式按均匀的速率把这些样品输入到高速数模转换器,变成所设定频率的正弦波信号3。近30年来,随着超大规模集成、现场可编程门阵列(field programmable gate array,简称:fpga)、复杂可编程器件(complex programmable logic

13、device,简称:cpld)等技术的出现以及对dds理论上的进一步探讨,使得dds技术得到了飞速的发展。它已广泛应用于通讯、雷达、遥控测试、电子对抗、以及现代化的仪器仪表工业等许多领域。dds的数字部分,即相位累加器和查表,被称为数控振荡器(nco)。波形发生器即通常所说的信号发生器是一种常用的信号源,和示波器、电压表、频率计等仪器一样是最普遍、最基本也是应用最广泛的的电子仪器之一,几乎所有电参量的测量都要用到波形发生器。不论是在生产还是在科研与教学上,波形发生器都是电子工程师信号仿真试验的最佳工具。随着现代电子技术的飞速发展,现代电子测量工作对波形发生器的性能提出了更高的要求,不仅要求能产

14、生正弦波、方波等标准波形,还能根据需要产生任意波形,且操作方便,输出波形质量好,输出频率范围宽,输出频率稳定度、准确度及分辨率高,频率转换速度快且频率转换时输出波形相位连续等。而传统波形发生器采用专用芯片,成本高,控制方式不灵活,已经越来越不能满足现代电子测量的需要,正逐步退出历史舞台。可见,为适应现代电子技术的不断发展和市场要求,研究制作高性能的任意波形发生器十分有必要,而且意义重大。1.2 国内外波形发生器发展现状1.2.1 波形发生器的发展现状在70年代前,信号发生器主要有两类:正弦波和脉冲波。这个时期的波形发生器多采用模拟电子技术,而且模拟器件构成的电路存在着尺寸大、价格贵、功耗大等缺

15、点,并且要产生较为复杂的信号波形,则电路结构非常复杂。在70年代后,微处理器的出现,可以利用处理器、a/d和d/a,硬件和软件使波形发生器的功能扩大,产生更加复杂的波形。这时期的波形发生器多以软件为主,实质是采用微处理器对dac的程序控制,就可以得到各种简单的波形。90年代末,出现几种真正高性能、高价格的波形发生器、但是hp公司推出了型号为hp770s的信号模拟装置系统,它由hp8770a任意波形数字化和hp1776a波形发生软件组成。hp8770a实际上也只能产生8种波形,而且价格昂贵。到了二十一世纪,随着集成电路技术的高速发展,出现了多种工作频率可过ghz的dds芯片,同时也推动了波形发生

16、器的发展,2003年,agilent的产品33220a能够产生17种波形,最高频率可达到20m,2005年的产品n6030a能够产生高达500mhz的频率,采样的频率可达1.25ghz。最近几年来,随着集成电路技术和器件水平的提高,国外一些公司先后推出各种各样的dds专用芯片,如qualcomm公司的q2230、q2334,ad公司的ad9955、ad9850、ad9851、ad9852等。1.2.2 国内外波形发生器产品比较频率合成器被誉为电子系统的“心脏”,频率源的发展直接关系到电子系统性能的发展。信号发生器是一种常用的信号源,广泛应用于通信、雷达、测控、电子对抗以及现代化仪器仪表等领域,

17、是一种为电子测量工作提供符合严格技术要求的电信号设备,和示波器、电压表、频率计等仪器一样是最普通、最基本也是应用最广泛的电子仪器之一,几乎所有电参量的测量都要用到波形发生器。早在1978年,由美国wavetek公司和日本东亚电波工业公司公布了最高取样频率为5mhz,可以形成256点(存储长度)波形数据,垂直分辨率为8bit,主要用于振动、医疗、材料等领域的第一代高性能信号源,经过将近30年的发展,伴随着电子元器件、电路、及生产设备的高速化、高集成化,波形发生器的性能有了飞速的提高。变得操作越来越简单而输出波形的能力越来越强。波形操作方法的好坏,是由波形发生器控制软件质量保证的,编辑功能增加的越

18、多,波形形成的操作性越好。目前我国已经开始研制信号发生器,并获得了可喜的成果,但总的来说,我国波形发生器还没有形成真正的产业,并且我国目前在波形发生器的的种类和性能都与国外同类产品存在较大的差距,因此加紧对这类产品的研制显得迫在眉睫。1.2.3 研究波形发生器的目的及意义波形发生器是信号源的一种,主要给被测电路提供所需要的己知信号(各种波形),然后用其它仪表测量感兴趣的参数。多功能波形发生器采用fpga器件作为核心控制部件,精度高稳定性好,得到波形平滑,特别是由于fpga的高速度,能实现较高频率的波形。目前我国己经开始研制波形发生器,并取得了可喜的成果。但总的来说,我国波形发生器还没有形成真正

19、的产业。就目前国内的成熟产品来看,多为一些pc仪器插卡,独立的仪器和vxi系统的模块很少,并且我国目前在波形发生器的种类和性能都与国外同类产品存在较大的差距,因此加紧对这类产品的研制显得迫在眉睫。1.3 论文的主要工作与章节安排本文主要通过分析dds的原理,进而得到dds信号发生器的设计方案,然后通过选材等一系列设计来完成dds信号发生器的研究。其中第二章主要介绍dds的基本原理以及优缺点。第三章则重点介绍了本次设计所采用的开发平台。第四章是本文重点介绍的对象,里面主要包含了设计的具体思路包括系统的实现以及系统工作流程情况。第五章是要是对设计进行仿真。第六章则是对设计进行调试验证。第2章 dd

20、s波形发生器的理论介绍本章主要介绍了dds的原理。其中第一部分以正弦波为例子,对dds原理在整个设中的重要意义进行讲解。后一部分则是分析dds的优点以及缺点。2.1 dds的基本原理与特点dds即直接数字频率合成技术,是由美国学者j.tiercy,m.rader和b.gold于1971年首次提出,是一种以数字信号处理理论为基础,从相位概念出发直接合成所需波形的一种新的全数字技术的频率合成方法。从1971年至今,dds已从一个工程新事物逐渐发展成为一个重要的设计工具。与大家熟悉的直接式和间接式(pll)频率合成技术不同,dds技术完全采用数字技术处理,属于第三代频率合成技术。dds的主要优点是它

21、的输出频率、相位和幅度能够在微控制器的控制下精确而快速的变换。dds的应用领域包括各类无线通信、有线通信、网络通信,各类需要频率信号的仪器、仪表、遥测、遥感设备、收音机和电视机等。本节以正弦信号的产生为例,阐述dds技术的基本原理。对于一个频谱纯净的单频正弦信号可以用下式来描述: (2.1)其相位为 (2.2)显然,该正弦信号相位和幅值均为连续变量。为了便于采用数字技术,应对连续的正弦信号进行离散化处理,即把相位和幅值均转化为数字量。用频率为fclk的基准时钟对正弦信号进行抽样 ,这样,在一个参考时钟周期t内,相位的变化量为 (2.3)由上式得到的为模拟量,为了将其转化为数字量,将2切割成2n

22、等份作为最小量化单位,从而得到的数字量m为: (2.4)将式(2.3)带入(2.4)得 (2.5)式(2.5)表明,在参考时钟频fclk确定的情况下,输出正弦信号的频率fout决定于m的大小,并且与m呈线性关系。通过改变m的大小,就可以改变输出正弦信号的频率,因此,m也称频率控制字。当参考时钟频率取2n时,正弦信号的频率就等于频率控制字m。当m取1时,可以得到输出信号的最小频率步进为 (2.6)由此可知,只要n取值足够大,就可以得到非常小的频率步进值。将相位转化为数字量以后,式(2.1)就可以描述为如下形式: (2.7)表示本周期相位值与前一个基准时钟周期的相位值的累加。从式(2.7)可以看出

23、,只要用频率控制字m进行简单的累加运算,就可以得到正弦函数的当前相位值。而正弦信号的幅值就是正弦信号的当前相位值的函数。由于正弦函数为非线性函数,很难实时计算,一般通过查表的方法来快速获得函数值。有了上述理论分析,我们就可以得到一种用数字的方法获得正弦信号的方法:先构建一个n为的相位累加器,在每一个时钟周期内,将相位累加器中的值与频率控制字相加,得到当前的相位值。将当前的相位值作为rom的地址,读出rom中的正弦波数据,再通过d/a转化成模拟信号。频率控制字越大,相位累加器的输出变化越快,rom的地址变化也越快,输出的正弦信号频率越高。需要注意的是,受rom容量的限制,rom地址位数一般小于相

24、位累加器的位数,因此,把相位累加器输出的高位作为rom的地址。只需要改变频率控制字,就可以改变输出信号的频率,因此,采用dds技术,对输出信号频率的控制十分简单。dds正弦信号发生器的基本原理框图如图2.1.1所示。图2.1.1 dds正弦信号发生器基本原理框图 2.2 dds信号的优点与缺点2.2.1 dds的优点(l)输出频率相对带宽较宽输出频率带宽为50%fs(理论值),实际输出带宽仍可达到40%fs。(2)频率转换时间短频率时间等于频率控制字的传输时间,也就是一个时钟周期的时间。时钟频率越高,转换时间越短。dds的转换时间可达纳微秒级数量级,比使用其他的频率合成方法都要短数个数量级。(

25、3)频率分辨率高若时钟fs的频率不变,dds的频率分辨率就是由相位累加器的位数n决定。只要增加相位累加器的位数n即可获得任意小的频率分辨率。目前,大多数dds的分辨率在1hz数量级,许多小于1mhz甚至更小。(4)相位变化连续改变dds输出频率,实际上改变的是每一个时钟周期的相位增量,相位函数的曲线是连续的,只是在改变频率的瞬间其频率发生了突变,因而保持了信号相位的连续。(5)输出波形的灵活性只要在dds内部加上相应控制如调频控制fm,调相控制pm和调幅控制am即可以方便灵活实现调频,调频和调幅等功能,产生fsk,psk,ask,msk等信号。另外,只要在dds的波形存储器存放不同波形数据,就

26、可以实现各种波形的输出,如三角波,锯齿波和矩形波甚至是任意波形。当dds的波形存储器分别存放正弦和余弦函数表时,即可得到正交的两路输出。2.2.2 dds的缺点(1)输出带宽范围有限由于dds内部dac和波形存储器(rom)的工作速度有限,使得dds输出的最高频率有限。目前市场上采用cmos,ttl,ecl,工艺制作的dds芯片,工作频率一般在几十mhz至400mhz左右。采用gaas工艺的dds芯片工作频率可达2ghz以上。(2)输出散杂大由于dds采用全数字结构,不可避免地引入了散杂。其来源主要由三个:相位累加器相位舍入误差造成的散杂.第3章 开发平台介绍本章主要对本次设计所选择的开发平台

27、进行简单介绍。fpga因为其不仅可以解决电子系统小型化、低功耗、高可靠性等问题,而且其开发周期短、开发软件投入少、芯片价格不断降低,所以成为首选。软件部分主要是对quartus ii进行简单的介绍。3.1 硬件平台fpga介绍本章将对这次设计所用的平台做一个介绍,主要开发软件有,quartus ii, matlab,keil等软件,涉及的领域有fpga编程,单片机编程,matlab编程等。3.1.1 fpga简介自1985年xilinx公司推出有史以来第一颗现场可程序化逻辑组件至今,已经历了超过二十几年的发展历史。在发展过程中,以fpga为代表的数字系统现场集成取得了惊人的发展:现场可程序化逻

28、辑组件从最初的1200个可利用逻辑闸,发展到90年代的25万个可利用逻辑闸。其后不到数年,著名fpga厂商,包括altera公司、xilinx等公司,又陆续推出了内建数百万逻辑闸以上的fpga芯片,将现场可程序化组件的整合度提高到一个新的水平。如今,各厂商不再盲目追加逻辑闸的数量,转而努力消除过去fpga弱势之处,以强化过的运算效能、更为节省的功耗,向各种运算领域扑天盖地而来。纵观现场可程序化逻辑组件的发展历史,其之所以具有巨大的市场吸引力,在于fpga不仅可以解决电子系统小型化、低功耗、高可靠性等问题,而且其开发周期短、开发软件投入少、芯片价格不断降低,促使fpga在某些情况下得以取代asi

29、c的市场,特别是对小量、多样,短开发期的产品需求,使fpga成为首选。3.1.2 fpga工作原理fpga采用了逻辑单元阵列lca(logic cell array)这样一个新概念,内部包括可配置逻辑模块clb(configurable logic block)、输出输入模块iob(input output block)和内部连线(interconnect)三个部分。它的基本特点主要有:采用fpga设计asic电路,用户不需要投片生产,就能得到合用的芯片。 fpga可做其它全定制或半定制asic电路的中试样片。 fpga内部有丰富的触发器和i/o引脚。fpga是asic电路中设计周期最短、开发

30、费用最低、风险最小的器件之一。fpga采用高速chmos工艺,功耗很低,可以与cmos、ttl电平兼容。纵观现场可程序化逻辑组件的发展历史,其之所以具有巨大的市场吸引力,在于fpga不仅可以解决电子系统小型化、低功耗、高可靠性等问题,而且其开发周期短、开发软件投入少、芯片价格不断降低,促使fpga在某些情况下得以取代asic的市场,特别是对小量、多样,短开发期的产品需求,使fpga成为首选。fpga是由存放在片内ram中的程序来设置其工作状态的,因此,工作时需要对片内的ram进行编程。用户可以根据不同的配置模式,采用不同的编程方式。 加电时,fpga芯片将eprom中数据读入片内编程ram中,

31、配置完成后,fpga进入工作状态。掉电后,fpga恢复成白片,内部逻辑关系消失,因此,fpga能够反复使用。fpga的编程无须专用的fpga编程器,只须用通用的eprom、prom编程器即可。当需要修改fpga功能时,只需换一片eprom即可。这样,同一片fpga,不同的编程数据,可以产生不同的电路功能。因此,fpga的使用非常灵活。3.2 软件开发平台matlab简介matlab是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学

32、研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如c、fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。matlab和mathematica、maple、mathcad并称为四大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。matlab可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。matlab的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故

33、用matlab来解算问题要比用c,fortran等语言完成相同的事情简捷得多,并且matlab也吸收了像maple等软件的优点,使matlab成为一个强大的数学软件。在新的版本中也加入了对c,fortran,c+,java的支持。可以直接调用,用户也可以将自己编写的实用程序导入到matlab函数库中方便自己以后调用,此外许多的matlab爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。3.3 dsp builder简介altera可编程逻辑器件(pld)中的dsp系统设计需要高级算法和hdl开发工具。altera dsp builder将the mathworks matlab和s

34、imulink系统级设计工具的算法开发、仿真和验证功能与vhdl综合、仿真和altera开发工具整合在一起,实现了这些工具的集成。dsp builder在算法友好的开发环境中帮助设计人员生成dsp设计硬件表征,从而缩短了dsp设计周期。已有的matlab函数和simulink模块可以和altera dsp builder模块以及altera知识产权(ip)megacore功能相结合,将系统级设计实现和dsp算法开发相链接。dsp builder支持系统、算法和硬件设计共享一个公共开发平台。设计人员可以使用dsp builder模块迅速生成simulink系统建模硬件。dsp builder包括

35、比特和周期精度的simulink模块,涵盖了算法和存储功能等基本操作。可以使用dsp builder模型中的megacore功能实现复杂功能的集成。altera还提供dsp builder高级模块集,这一simulink库实现了时序驱动的simulink综合。altera megacore是高级参数化ip功能,例如有限冲击响应(fir)滤波器和快速傅立叶变换(fft)等,经过配置能够迅速方便的达到系统性能要求。megacore功能支持altera的ip评估特性,使您在购买许可之前,便可以验证功能及其时序。altera ip megastore网站上为dsp builder和ip评估流程提供ds

36、p ip完整介绍dsp builder signalcompiler模块读取由dsp builder和megacore模块构建的simulink建模文件(.mdl),生成vhdl文件和工具命令语言(tcl)脚本,进行综合、硬件实施和仿真。图示为dsp builder设计流程。dsp builder是一个系统级(或算法级)设计工具,它构架在多个软件工具之上,并把系统级和rtl级两个设计领域的设计工具连接起来,最大程度地发挥了两种工具的优势。dsp builder依赖于math works公司的数学分析工具matlab/simulink,以simulink的blockset出现,可以在simuli

37、nk中进行图形化设计和仿真,同时又通过signal compiler可以把matlab/simulink的设计文件(.mdl)转成相应的硬件描述语言vhdl设计文件(.vhd),以及用于控制综合与编译的tcl脚本。而对后者的处理可以由fpga/cpld开发工具quartus ii来完成。3.4 软件平台quartus ii介绍 图3.2 quartus ii软件界面如图3.2所示为quartus ii软件的基本界面,quartus ii软件是altera的综合开发工具,它集成了altera的fpga/cpld开发流程中所涉及的所有工具和第三方软件接口。quartus ii几乎支持altera现

38、行的所有fpga,在该集成开发环境中可以实现电路的设计、综合、适配到最后形成下载文件以及在线配置fpga,还能对电路进行功能仿真,对适配后形成的最终电路进行时序仿真。也就是说只要有了quartus ii这个集成开发环境,就基本上可以完成altera公司fpga开发过程中的所有工作。另外,为了方便设计,quartus ii还提供了免费lpm模块供用户调用,如计数器、存储器、加法器、乘法器等。除了这些免费的lpm模块外,altera公司还开发了有偿ip核提供给有需要的用户使用。这些lpm模块和ip核都大大简化了设计过程,缩短了开发周期。quartus ii支持多种输入方式,常用的有:(1)原理图输

39、入:这种方法最直观,适合顶层电路的设计;(2)硬件描述语言输入:包括ahdl、vhdl及verilog hdl输入。采用硬件描述语言的优点易于使用自顶向下的设计方法、易于模块规划和复用、移植性强、通用性好。(3)网表输入:对于在其他软件系统上设计的电路,可以采用这种设计方法,而不必重新输入,quartus ii支持的网表文件包括edif、vhdl及verilog等格式。这种方法的优点是可以充分利用现有的设计资源。第4章 系统实现本章主要介绍了dds信号发生器的实现过程,开头部分讲述了包括dds信号发生器的原理图,材料选择的比较以及重点模块的介绍。后面一部分主要讲述单片机控制软件的设计,包括人机

40、接口的定义、主程序框图。4.1 设计要求设计要求如下:1、具有产生正弦波、方波、三角波、锯齿波四种周期性波形;2、输出信号频率范围0hz5mhz,重复频率可调,频率步进间隔小于等于1hz;3、输出信号幅值范围0-5v(峰.峰值),信号幅值和直流偏移量可数控调节;4、具有稳幅输出功能,当负载变化时,输出电压幅度变化不大于3%(负载电阻变化范围:50正无穷);5、具有显示输出波形类型、重复频率等功能。4.2 系统方案论证与比较4.2.1 产生dds信号波形方案的选择目前主流的dds信号发生器方案有两种:方案一、采用专用dds集成芯片实现的信号发生器;方案二、采用单片机+fpga实现的dds信号发生

41、器。比较这两种方案,专用dds芯片内部的波形数据存放在rom型存储器中,波形数据无法修改故而只能产生固定波形的信号,但系统比较容易实现。而采用单片机+fpga实现的dds信号发生器则是将波形数据存储器改为fpga上的ram行存储器,波形信号能实时改变,在利用单片机系统进行控制和处理后,能实现dds任意波形发生器,功能更加完善,更新更加方便。故本设计选用方案二。4.2.2 单片机处理器比较选择方案一:采用at89c51单片机处理电路,其拥有并行i/o口32个,对于实际应用来说远远不够,且不具备自带ad、da,使得电路结构复杂。方案二:stc12c5a60s2单片机内部资源非常丰富,是目前功能最全

42、、速度最快的51内核soc单片机之一,包括告诉8051微处理器内核,扩充终端处理系统,1280字节内部ram,和60kb的闪速存储器,多达39个i/o引脚,两个内部振荡器和片内调试电路,能很好的完成本系统所需的单线程,键盘功能分支程序控制。 在本设计中选用方案二。4.3 系统理论分析及设计4.3.1 总体设计本设计采用单片机+fpga实现的dds信号发生器,整个dds信号发生器由单片机子系统、fpga子系统、模拟子系统三部分组成,系统原理框图如下图4.1所示:单片机fpgaep1c3t144c8lcd1602按键da转换放大图4.1 dds信号发生器系统框图4.3.2 主要技术参数的分析与确定

43、dds信号发生器的技术指标取决于dds系统的时钟频率、相位累加器的位数、波形数据表的长度等参数,下面对这些参数进行讨论,以选择适合的模拟电路元件以实现高质量的dds信号。1、输出带宽当频率控制字m=1时,输出信号的最低频率为 (4.1)式中,为参考时钟频率,n为相位累加器的位数。当n取很大值时,最低输出频率可以认为达到dds最低频率的零频。dds的最高输出频率由参考时钟周期和一个周期波形采样点数决定,若采样点数为x,则最高输出频率为 (4.2)2、频率分辨率频率分辨率由下式决定: (4.3)在此式中,当n取值足够大时,dds信号可以达到很高的信号分辨率。3、 dds信号的质量由于dds信号发生

44、器采用全数字设计,不可避免在采样时会带来d/a产生的幅度量化噪声和相位累加运算截断产生的相位噪声。改善dds信号质量的主要方法有:增加波形存储器和d/a的字宽;增加每个周期数据的样本数,提高外部参考时钟频率和通过低通滤波器来改善输出信号质量。综合上述讨论和对器件成本以及硬件系统复杂度的考虑,dds子系统的参数确定如下:1 参考时钟频率:100mhz;2 频率控制字的位宽:32位;3 相位累加器的位宽:32位;4 波形存储器的地址位宽:10位;5 波形存储器的数据位宽:8位。4.4 单片机软件和硬件设计dds信号发生器采用fpga等硬件来完成高速波形的产生任务,其工作不需要单片机过多的干预。单片

45、机子系统只需完成键盘输入、液晶显示、向fpga传送数据、输出信号的幅值和直流偏移量的数字控制等功能。从软件的总体结构来看,单片机控制软件是一种单线程、键盘功能的分支程序。4.4.1 硬件电路图设计硬件电路图采用altium design 10设计的原理图和pcb图,主控芯片是stc12c5a60s2,采用贴片封装,液晶显示:图4.2 stc12c5a60s2单片机最小系统此次采用的单片机是stc12c5a60s2单片机,属于增强型51单片机,具有rom空间大,资源充足,最重要的是提高了运算速度。其最小系统原理图如图4.2。图4.3 液晶显示模块液晶采用普通lcd1602液晶,显示效果清晰,简洁

46、明了,原理图如图4.3。图4.4 电源电路供电电源采用5v电压,使用as1117.3.3把5v降压为3.3v电压提供给fpga芯片,再使用as1117.1.5把3.3v减压为1.5v提供给fpga核心模块,电源前后级均有滤波电容,并有电源指示灯。其原理图如4.4。4.4.2 单片机编程根据dds信号发生器的功能设计了如图4.5所示的lcd显示页面。液晶第一行为频率大小显示,液晶第二行2为波形类型,在给定频率输入页面中,8个小方框所显示的位置用于显示输入给定的频率值。给定的频率范围为0000000140000000hz。为了操作方便,允许输入给定频率的位数在18位之间。对于dds信号发生器来说,

47、键盘主要用于选择信号波形、输入频率值、控制输出信号的幅值和直流偏移量。由于按键数量比较少,键盘采用独立式键盘。lcd显示和键盘各按键的定义如图4.5所示。 按键4选中位减1按键5波形切换按键3选中位加1按键2光标向左移位按键1光标向左移位 图4.5 lcd显示定义及按键功能定义dds信号发生器的控制程序可分为显示函数和键盘服务函数两部分。在确定主程序和键盘中断服务程序的功能时有两种方案:一种方案是主程序只完成初始化,将键盘读入和处理全部由键盘中断服务程序中完成;另一种方案是主程序完成初始化和键值处理功能,而键盘中断服务程序只完成键值读入。由于键值处理程序设计数值运算、lcd模块的显示,将这些耗

48、时的键值处理程序放入中断服务程序不符合程序设计的一般原则,因此,选用第二种方案。主程序首先完成对液晶、中断的初始化,stc12c5a60s2内部资源初始化,lcd模块初始化。初始化完成以后就不断检测有无按键键入,当有按键键入时,根据键值显示相应的波形和相关位的闪烁。单片机将4个字节频率字发送到fpga中;各种波形共用一个频率字,单片机送四个字节到fpga,fpga把四个字节组合为32位的频率字,送给dsp builder生成的模块,该模块需要频率字和幅度字。由于输入给定频率的位数允许在18位变化,程序设计通过按修改位键来给定频率的输入。 然后发送到fpga的频率控制字接收模块。由于键盘输入的给

49、定频率值为非压缩型bcd码,应先将其转化为二进制数,再根据公式(2.5)将给定频率值转化成为4字节的频率控制字。当相位累加器字宽n取32,参考时钟频率fclk取100mhz时,频率控制字可以由以下公式计算得到: (4.4)式子中fout为由二进制数表示的给定频率,乘上系数42.9496,就可以得到4字节的频率控制字。频率控制字由单片机产生,单片机根据频率值计算出频率字,直接发送给fpga。写频率字函数见附录a。4.5 fpga软件和硬件设计4.5.1 fpga硬件设计fpga硬件电路包括复位电路,时钟电路,电源电路,下载电路,配置电路,其中电源电路和单片机公用一个电源。图4.6 复位电路和时钟

50、电路电路晶振采用50mhz有源晶振,复位电路分为硬件复位和软件复位,本电路采用硬件复位。电路如图4.6。图4.7 as_jtagas配置是指电路程序烧入epcs中,当电路通电时,程序从epcs中读入到fpga中实现配置fpga的目的,在测试的时候电路是通过jtag下载到fpga中,配置片内ram实现编程。原理图如4.7。图4.8 epcs配置芯片该配置芯片相当于储存器,当fpga断电后起到存储电路配置的功能,当fpga上电后,fpga从epcs中把配置读入fpga中,epcs有多种大小,有epcs1、epcs4、epcs16等本次采用的是epcs4。其原理图如图4.8。图4.9 jtag下载端

51、口jtag下载端口是把电路下载到内部ram中,断电后配置就消失了,每当fpga上电时,都会从epcs中读取数据。内部ram只是暂时的连线。其原理图如4.9。图4.10 fpga 核心供电根据fpga的芯片使用手册,fpga采用两种供电电压,核心采用1.5v供电,外围端口采用3.3v供电,图4.10显示了fpga的所有电源接口。4.5.2 fpga软件设计(1) 波形数据存储器图4.11 matlab中rom其中rom中存放着波形数据,为离散的点。正弦波波形数据为:127*sin(0:2*pi/(210):2*pi);方波波形数据:127*square(0:2*pi/(210):2*pi);三角

52、波波形数据:127*sawtooth(0:2*pi/210:2*pi,0.5);锯齿波波形数据:127*sawtooth(0:2*pi/(210):2*pi);产生的波形都是数据深度为1024字节,宽度为8位。(2)地址锁存模块stc12c5a60s2单片机p1口分时送出低8位地址和8位数据信息。通过fpga内部设计一个8位锁存器即可获取低8位地址。地址锁存器的vhdl程序为:library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity mux4_1 is port(d0,d1,d2,d3,

53、d4:out std_logic_vector(7 downto 0 ); .输出32位数据 a:in std_logic_vector(2 downto 0); .数据选择端 y:in std_logic_vector(7 downto 0 ); .数据输入端 end entity mux4_1; architecture one of mux4_1 is begin process(a, y) begin case a is when000=d0d1d2d3d4null; end case; end process; end architecture one;(2) 波形选择设计 波形选择就是通过一个四位的计数器来选择波形,计数器的计数信号接到按键上,通过按键来切换波形,比如正弦波,三角波等:library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; en

温馨提示

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

评论

0/150

提交评论