EDA论文--基于FPGA的波形发生器设计 光学测试课程设计 模版+附件(程序,图片等).doc_第1页
EDA论文--基于FPGA的波形发生器设计 光学测试课程设计 模版+附件(程序,图片等).doc_第2页
EDA论文--基于FPGA的波形发生器设计 光学测试课程设计 模版+附件(程序,图片等).doc_第3页
EDA论文--基于FPGA的波形发生器设计 光学测试课程设计 模版+附件(程序,图片等).doc_第4页
EDA论文--基于FPGA的波形发生器设计 光学测试课程设计 模版+附件(程序,图片等).doc_第5页
免费预览已结束,剩余20页可下载查看

下载本文档

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

文档简介

J I A N G S U U N I V E R S I T Y本科课程设计说明书 光学测试课程设计题目:基于FPGA的波形发生器设计学院名称: 专业班级: 学生姓名: 指导教师姓名: 年 月摘要各种各样的信号是通信领域的重要组成部分,其中正弦波、三角波和方波等是较为常见的信号。在科学研究及教学实验中常常需要这几种信号的发生装置。为了实验、研究方便,研制一种灵活适用、功能齐全、使用方便的信号源是十分必要的。本次关于产生三角波或其它任意波形的设计方案,不仅在理论和实践上都能满足实验的要求,而且具有很强的可行性。该信号源的特点是:体积小、价格低廉、性能稳定、实现方便、功能齐全。关键词:正弦波;三角波;FPGA; ABSTRACTVarious signal is an important part of telecommunication field, including sine wave, triangle wave and square-wave etc is more common signal. In scientific research and teaching experiment often need this several signal generator. In order to test, research is convenient, develop a flexible application, complete functions, use convenient source is very necessary.This about produce triangle wave and otner different kinds of waves of design scheme, not only in theory and in practice can satisfy experiment requirement, and has a strong feasibility. The signal features are: small volume, price cheap and stable performance and achieve convenient, complete function. Keywords: sine wave;Triangle wave;FPGA;目录摘要11.前言32.FPGA工作原理43.FPGA基本特点54.系统设计64.1设计要求64.2总体设计方案64.2.1方案比较64.2.2系统组成及工作原理75.单元电路设计95.1输入模块设计95.2波形发生模块的设计95.3关于D/A转换模块的设计105.4滤波电路模块的设计116.软件设计与仿真126.1软件设计思路126.2系统仿真127.系统测试147.1测试使用的仪器147.2测试方法147.3指标测试和测试结果148.设计总结15参考文献16附录171.前言波形发生器是信号源的一种,它是具有信号源所具有的特点,更因它高的性能优势而备受人们青睐。信号源主要给被测电路提供所需要的已知信号(各种波形),然后用其它仪表测量感兴趣的参数。可见信号源在各种实验应用和试验测试处理中,它不是测量仪器,而是根据使用者的要求,作为激励源,仿真各种测试信号,提供给被测电路,以满足测量或各种实际需要。目前我国已经开始研制波形发生器,并取得了可喜的成果。但总的来说,我国波形发生器还没有形成真正的产业。就目前国内的成熟产品来看,多为一些PC仪器插卡,独立的仪器和VXI系统的模块很少。并且我国目前在任意波形发生器的种类和性能都与国外同类产品存在较大的差异,因此加紧对这类产品的研制显得迫在眉睫。2.FPGA工作原理FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。 现场可编程门阵列(FPGA)是可编程器件。与传统逻辑电路和门阵列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的结构,FPGA利用小型查找表(161RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。FPGA的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联接方式,并最终决定了FPGA所能实现的功能,FPGA允许无限次的编程.3.FPGA基本特点1)采用FPGA设计ASIC电路(专用集成电路),用户不需要投片生产,就能得到合用的芯片。2)FPGA可做其它全定制或半定制ASIC电路的中试样片。3)FPGA内部有丰富的触发器和I/O引脚。4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。5) FPGA采用高速CMOS工艺,功耗低,可以与CMOS、TTL电平兼容。可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。4.系统设计4.1设计要求1)基本部分设计一波形发生器,可以产生频率和幅值都可调的正弦波。2)发挥部分在产生正弦波的基础上,可产生三角波或其它任意波形。4.2总体设计方案4.2.1方案比较方案一:采用模拟分立元件或单片机压控函数发生器来完成设计。可产生方波,正弦波,三角波,通过调整外部元件可以改变输出频率,但是采用模拟器件分散性大,产生的频率稳定性较差、精度低、抗干扰能力差、成本也比较高。方案二:由单片机来完成设计。目前,单片机的功能已比较强大,集成度日益增高且其设计和控制比较容易。但是由于在传统的单片机设计系统中必须使用许多分立元件组成单片机的外围电路,因此整个系统显得十分复杂,随着正弦波或三角波采用数据的增加,需要占用系统很多存储资源,造成其抗干扰性差,在运行过程中容易死机或进入死循环,可靠性降低,而功耗费用增高。方案三:利用FPGA来完成设计。FPGA编程灵活,可以实现三角波和正弦波的数字化处理,将一个周期内的采样点存储起来,生成频率和幅值都可调的正弦波或者三角波,再通过D/A转换和滤波电路便可得到模拟波形。利用该方法,编程简单,实现灵活。综上,选择方案三来完成设计。4.2.2系统组成及工作原理完整的系统由4个部分组成:波形发生控制电路,波形数据ROM,D/A转换和滤波电路。波形发生控制电路由FPGA来完成,正弦波在一个周期内的波形可以通过数字采样,即用N个幅值离散的等间隔采样点表示。如图4.1、4.2为三角波和正弦波采样的原理,设其周期为T,采样点数为N,采样间隔为t,T=N*t。那么就可以得到图示的数字信号。要改变其频率只需要改变其采样的时间间隔t,由于采样点数N不变,N=t*T,因此,t越小,T就越大,对应的频率就越大。再通过数模转换,便可以得到光滑的正弦波和三角波。图4.1 三角波采样原理图图4.2 正弦波采样原理图FPGA波形发生控制电路通过外来控制信号和高速时钟信号,向波形数据ROM发出地址信号,ROM的大小由采样点的个数决定。波形ROM中存有发生器的波形数据,如正弦波或三角波数据。当接受来自FPGA的地址信号后,将从数据线输出相应的波形数据。取出采样点的幅值,这样就可以产生数字化的波形。采样点越多,那么得到的波形就越光滑,但是相应的存储器的容量就需要得越大,因此,需要正确的选择采样点数。图4.3 系统工作原理图图4.3为其系统工作原理框图。D/A转换器负责将ROM输出的数据转换为模拟信号,经滤波电路后输出。输出波形的上限频率和D/A器件的转换速度有重要关系,采用的是DAC0832作为A/D转换器件。5.单元电路设计5.1输入模块设计输入模块采用普通的按键输入,即通过按键选择输出波形是正弦波还是三角波,同时也通过键盘输入来改变波形的幅值和频率。5.2波形发生模块的设计由于波形发生控制器和波形数据ROM都是利用硬件描述语言VHDL编程实现的,所以统称为波形发生模块。波形发生控制器的作用是利用FPGA选择产生正弦波或者三角波,然后再发出地址信号,取ROM中存好的正弦波或三角波的采样数据。波形发生模块包括幅度设置、正弦波/三角波切换和频率设置三个进程。幅度设置模块可以对输出波形的幅度进行设置。可以得到基波幅度的110倍幅度值。正弦波/三角波切换进程的作用是完成通过按键来选择输出三角波或者三角波。频率设置进程主要是对输出的频率进行设置,在前面已经介绍过正弦波发生的原理,基于此原理,在程序设计的时候,只要合适的改变采样点的时间间隔就可完成频率设置。ROM数据存储模块主要是用来存储正弦波或者三角波的数据。当接收来自FPGA的地址信号后,将从数据线输出相应的波形数据,这样便得到数字化的波形。由于所选的D/A转换器一次只能转化8位二进制码,而且模拟波的电压幅度由幅度比例系数决定Vo=(Vr/)*K,所以限定了波形的幅值比例系数为0-255。如果相邻之间的采样点所对应的幅值比例系数是线性变化的,则波形是一个三角波,而如果是非线性变化的,那得到的就是正弦波。对波形采样点数目越多,波形的精准度越高,但随着采样点数的增加,需要的ROM数量也会增加,会消耗系统更多资源,实验证明,只要在一个周期内的取样点数超过32个就可实现较准确的正弦波形。在本系统中,取采样点数为64个。每个采样点都对应了该点的幅值比例系数。每个ROM单元对应一个地址值,FPGA只要向ROM存储器输入相应的地址值就可以确定其幅值。5.3关于D/A转换模块的设计D/A转换器负责将ROM输出的数据转换成模拟信号,经滤波电路后输出。输出波形分频率上限与D/A器件的转换速度由重要关系。采用的是DAC0832作为A/D转换器件。DAC0832是8位D/A转换器,转换周期为1s,其引脚信号可以直接与FPGA目标芯片相接。图5.1 芯片的引脚图图5.1为其芯片的引脚图。各引脚的说明如下:ILE:数据锁存允许控制信号输入口线,高电平有效;WR1、WR2:写信号1、2,低电平有效;XFER:数据传输控制信号,低电平有效;VREF:基准电压,可正可负,-10V+10V;RFB:反馈电阻端;IOUT1/IOUT2:电流输出端;AGND/DGND:模拟地与数字地。在高速情况下,此二GND地的连接线必须尽可能短,且系统的单点接地点须接在此连续的某一点上。程序中的正弦波或者三角波的波形数据由64个点构成,此数据经DAC0832,并经过滤波器后,得到光滑的正弦波。D/A转换量是以电流形式输出的,所以必须将其变为电压信号才能送入滤波电路。5.4滤波电路模块的设计图5.2 RC滤波电路图滤波电路可考虑采用二阶巴特沃兹低通滤波器或者RC低通滤波器。巴特沃兹滤波器的幅度函数是单调下降的,由于n阶低通巴特沃斯滤波器的前(2n-1)阶导数在=0处为零,所以巴特沃斯滤波器也称为最大平坦幅度滤波器,该方案滤波性能较好,但构造和参数设置比较复杂。价格也比较昂贵。而RC低通滤波器可以消除在信号产生过程中有干扰性的高频信号,由于不须运算发大器,参数计算容易,对系统要求不高。因此在本设计中,利用RC低通滤波器就可以达到要求。6.软件设计与仿真6.1软件设计思路相关软件采用VHDL硬件描述语言编写。VHDL是用于逻辑设计的硬件描述语言,为IEEE标准。利用它,硬件的功能描述可完全在软件上实现。它支持自顶向下和基于库的设计方法,支持同步电路、异步电路、FPGA以及等随机电路的设计,范围很广,语言的语法比较严格,给阅读和使用都带来极大好处。软件设计分为三个进程。正弦波/三角波切换进程,频率幅值设置进程,以及波形数据ROM,ROM中存储的是产生波形的采样点数据。如正弦波,分为64个采样点,最高采样点值为255,对应的八位二进制数为11111111,第二个采样点为254,对应的八位二进制数为11111110。如果预置的八位二进制数为11111110,那么时钟跳变一次就产生一个脉冲来让FPGA取出波形数据ROM中的采样点数据,变化比较快,相应的t就比较小,得到的波形频率就高;如果预置的数是11110101,即245,那么就要过10个脉冲才会采样一次,因此t就比较大,得到的波形频率就小。程序参考附录。6.2系统仿真附图1 三角波仿真波形附图2 正弦波仿真波形7.系统测试7.1测试使用的仪器示波器:绿扬YB4365,100MHz,江苏扬中电子仪器厂;直流电压源:DF1731SC2A;FPGA实验仪:DP-FPGA,广州致远电子有限公司;频率计:SP-1500A等精度频率计,南京盛普电子实业有限公司。7.2测试方法 系统测试在清华TPG_FPGA实验箱上进行,引脚锁定后将程序下载到Xilinx公司的目标芯片Spartan系列的XC2S200-5PQ208上调试通过。可以在示波器上看到平滑的正弦波和三角波波形,切换和频率幅度的设置都可以达到预期的效果。7.3指标测试和测试结果1)频率和幅度测试频率设置/KHz所测频率/KHz幅度设置/V所测幅度有效值峰峰值30.0031.021.001.012.0250.0050.042.001.984.0270.0071.023.002.915.9890.0089.233.002.986.02表1 频率和幅度测试结果2)测试结果 由表中数据可看出,该方法可实现两种正弦波和三角波两种波形的切换,并且得到平滑的频率和幅值都可调的波形。但是在频率高的地方会有一定的误差。8.设计总结小结:本设计基本上达到了预期设计目标。本设计是通过大量阅读国内外相关文献,总结了波形发生器、AT89C51和DAC0832还有汇编语言的各自的特点的基础上而提出的。收获:1.本设计采用了FPGA来设计波形发生器,使波形发生器操作和使用都非常方便;2.本文比较了不同方案中使用仪器的功能和特性,最终选取了FPGA单片机,研究了系统各个模块的特点,分别列写了各个模块的流程图和汇编程序,使得具体工作有的放矢,很好的满足了要求;3. 经过本次课程设计,作者对开发单片机应用系统的全过程得到了进一步的了解和体会。意见和建议:1. 由于个人能力和时间上的限制,汇编程序及系统程序还略有不足和粗糙,在考虑问题的全面性上还有一定的欠缺;2. 每一个处理阶段的程序模块的优化和各个模块的衔接性有待增强。参考文献1 蒋廷彪,刘电霆,高富强,方华.单片机原理及应用(MCS-51).重庆:重庆大学出版社,20032 刘南平,吉红.模拟电子技术.北京:科学出版社,2005.9.153-1833 李朝青.单片机原理及接口技术M.北京:航空航天大学出版社,19944 赵亮,侯国锐.单片机C语言编程与实例.北京:人民邮电出版社,20035 陈光东,赵性初.单片机微型计算机原理与接口技术.第二版.武汉:华中科技大学出版社,19996 江思敏,姚鹏翼,胡荣等.Protel电路设计教程.北京:清华大学出版社,20027 谢自美.电子线路设计实验测试 .第二版.武汉:华中科技大学出版社,19998 康光华.电子技术基础模拟部分.第四版.高等教育出版社9 马忠梅,马岩,张凯,籍顺心.单片机的C语言程序设计.北京:航空航天大学出版社,199710 彭善琼,丁长松.一种新型信号发生器的设计与实现(吉首大学物理科学与信息工程学院,湖南省吉首市416000)电子工程师2007年2月11 李冬梅.PLD器件与EDA技术M. 北京:北京光播学院出版社,2000年第一版12 赵俊超.集成电路设计VHDL教程M.北京:北京希望电子出版社,2002年第一版13 赵曙光.郭万有.可编程逻辑器件原理,开发与应用M.西安:电子科技大学出版社.2000年第一版14 甘历.VHDL应用与开发实践M.北京:科技出版社.2003年 第一版附录程序清单文件名:sin-rec.vhd功能:产生正弦波或三角波信号说明:基于VHDL硬件描述语言在在Xilinx公司的Spartan系列的XC2S2005PQ-208芯片上实现library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity sin_rec is Port ( clk ,reset: in std_logic; sinm: in std_logic_vector(3 downto 0); -正弦波或三角波的幅度设置 dataf : in std_logic_vector(7 downto 0);-频率预置 conver: in std_logic_vector(1 downto 0);-正弦波与三角波的设置的切换 dd : out std_logic_vector(8 downto 0); -正弦波输出 ss:out std_logic_vector(8 downto 0); -三角波输出 dd :out integer range 765 downto 0 );end sin_rec;architecture Behavioral of sin_rec is signal q :integer range 63 downto 0 ; -正弦波数据点signal q2: integer range 64 downto 0; -三角波数据点signal n0,n,n2:integer range 1 to 12; -正弦波或三角波的幅度档位 signal dataf0,count8,dataf22,count9,d,s: integer range 255 downto 0 ;-频率设定系数signal fss,fss2 :std_logic;beginprocess(reset,clk) variable count: integer range 0 to 1600;-16000-10KHZ; variable bclk0: std_logic; begin if reset=1 then bclk0:=0;count:=0; elsif clkevent and clk=1 then if count=1 then -16000 bclk0:=not bclk0; count:=0; else count:=count+1; end if;end if; bclk=bclk0;end process;ctrsinm_recm:process(bclk) -正弦波与三角波切换控制进程begin if bclkevent and bclk=1 then if conver=10 then -调正弦波的频率和幅度 dataf0=conv_integer(dataf);n=n0; elsif conver=01 then -调三角波的频率和幅度 dataf22=conv_integer(dataf);n2 n0 n0 n0 n0n0n0n0n0n0n0n0=1;end case;end if;end process sinm_pro; pulse:process(bclk,reset,conver) -调频率进程 begin if reset=1 then fss=0; elsif rising_edge(clk) the

温馨提示

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

评论

0/150

提交评论