收藏 分享(赏)

任意波形发生器.doc

上传人:精品资料 文档编号:11017352 上传时间:2020-01-31 格式:DOC 页数:18 大小:1.29MB
下载 相关 举报
任意波形发生器.doc_第1页
第1页 / 共18页
任意波形发生器.doc_第2页
第2页 / 共18页
任意波形发生器.doc_第3页
第3页 / 共18页
任意波形发生器.doc_第4页
第4页 / 共18页
任意波形发生器.doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

1、湖北轻工职业技术学院电 子 设 计 自 动 化实 训 报 告题 目 基于 CPLD 的任意波形发生器 系 部 信息工程系 专 业 电子信息工程技术 班 级 09 电信 姓 名 朱丽丝 学 号 0903021141 指导教师 赵 欣 2011 年 06 月 25 日湖北轻工职业技术学院1目录引言 .2第一章 概述 .2第二章 设计说明 .32.1 设计要求 32.2 设计思路 3第三章 波形发生器的硬件结构 4第四章 系统设计 .54.1 正弦波发生器的设计 54.2 三角波发生器的设计 54.3 方波发生器的设计 64.4 波形选择器的设计 64.5 D/A 转换器 .7第五章 设计结果 .8

2、5.1 软件仿真结果 85.2 硬件测试结果 9第六章 总结 .11第七章 致谢 .12第八章 参考文献 .13第九章 附录 .147.1 相关芯片资料 147.2 相关程序; 15湖北轻工职业技术学院2引言任意波形发生器(AWG) 是信号源的一种,它具有信号源所有的特点和要领。我们传统都认为信号源主要给被测电路提供所需的被测信号(各种波形),然后用其他仪表测量感兴趣的参数。可见信号源在电子实验和测试处理中,并不测量任何参数,而是根据使用者的要求,仿真各种测试信号,提供给被测电路,已达到测试的需要。任意波形发生器是一种特殊的信号源,具有综合其他信号源波形生成能力,因而适合各种仿真实验的需要。为

3、近一步了解波形信号发生器的工作原理,我们设计了一种较简单任意波形发生器。要求电路至少可以产生正弦波、三角波、方波,并通过键盘切换三种波形的输出。电路设计中充分利用 EDA-V 硬件平台实现该波形发生器,并使用示波器测量输出结果。第一章 概述硬件描述语言 HDL 是 EDA 技术中的重要组成部分,VHDL 是当前最流行的硬件描述语言之一,此语言具有良好的可靠性、可移植性等特点。本设计主要是利用 VHDL 语言设计一个多功能信号发生器,根据输入信号的选择可以输出正弦波、三角波、方波 3 种信号,主要使用了 Altera 公司的 MAX+plusII 软件。本设计利用 VHDL 语言使用文本输入法,

4、新建工程,通过设计输入、编译、仿真完成各种信号的设计,然后生成元器件,再使用原理图输入法完成各部分的整合,从而形成一个完整的多波形信号发生器,而后经过锁定引进下载数模转换可以在示波器观察到波形。湖北轻工职业技术学院3第二章 设计说明2.1 设计要求要求电路至少可以产生正弦波、三角波、方波,并通过键盘切换三种波形的输出。电路设计中充分利用 EDA-V 硬件平台实现该波形发生器,并使用示波器测量输出结果。 至少产生的如下波形2.2 设计思路任意波形发生器是随着不断进步的计算机技术和微电子技术在测量仪器中的应用而形成和发展起来的一类新型信号源。基于硬件平台的任意波形发生器具有输出频率稳定、准确,波形

5、质量好和输出频率范围宽等一系列独特的优点,是任意波形发生器研究的一个重要方向。设计将三种波形合并,使它们按操作输出所需波形,波形选择与控制功能由时钟脉冲输入选择模块完成。当选择一种波形时,对应的波形模块输入时钟脉冲,并输出波形数据,其他波形模块的输入则始终 0,不能输出波形。但是,其它波形模块始终有 0 信号输入,也能产生数据,会对输出的波形产生干扰。因此,需要输出波形选择模块来选择有用的波形,隔离干扰数据。为了同时实现时钟脉冲选择与输出波形选择,同时也为了消除延迟,在输出波形选择模块与时钟脉冲选择脉冲中采用同一组控制开关。这样当输入一种控制数据时,输出的波形也就是所需的波形。湖北轻工职业技术

6、学院4第三章 波形发生器的硬件结构AWG 的工作过程是,首先接收上位机送来的波形数字信号存储到 SRAM,然后启动控制电路从 SRAM 取出数据送 DAC 进行数摸转换,转换后的模拟信号送低通滤波器形成波形。如果 DAC 工作在 150MSPS 的速度下,可以以 150MHz 的频率送数据到 DAC 进行转换,微控制器的晶振输入一般工作在 40MHz 以下,没有这么高的速度送出数据到 DAC,所以考虑采用 CPLD 构建硬件控制电路。数据首先传送到 SRAM,然后在 CPLD 硬件控制电路的控制下,以 150MHz 的频率从 SRAM 中取数送 DAC 转换。其体系结构如图 1 所示。如果要形

7、成正弦周期信号,每周期 4 个点就可以合成一个波形,此时可以输出约 38MHz 的高频信号。CPLD(复杂可编程逻辑器件)是在传统的 PAL、GAL 基础上发展而来的,具有多种工作方式和高集成、高速、高可靠性等明显的特点,在超高速领域和实时测控方面有非常广泛的应用。与 FPGA 相比,CPLD 比较适合计算机总线控制、地址译码、复杂状态机、定时/计数器、存储控制器等 I/O 密集型应用,且无须外部配置 ROM、时延可预测等。目前的 CPLD 普遍基于 E2PROM 和 Flash 电可擦技术,可实现循环擦写。Altera 公司的 MAX7000 CPLD 配置有 JTAG 口,支持 ISP 编

8、程。用 VHDL 或 Verilog HDL 设计的程序,借助 EDA 工具经过行为仿真、功能仿真和时序仿真后,通过综合工具产生网表,下载到目标器件,从而生成硬件电路。波形发生器的结构框图:湖北轻工职业技术学院5第四章 系统设计本设计要求电路可以产生正弦波、三角波、方波三种波形,在具体的设计过程中,首先将此三种波形设计出来,并在示波器测量输出波形的正确性。然后设计一个选择器,用来选择输出波形。最后将选择器和三种波形联系起来,以实现通过键盘切换三种波形的输出。4.1 正弦波发生器的设计4.1.1 产生原理正弦波可用两种方法,即计算法和查表法产生。计算法要用浮点运算,复杂且耗时太长,一般不采用。查

9、表法是事先将正弦波的数据计算出来,列表放在程序中,运行时直接调取数据。用公式 y=127.5+127.5sin(360n/m)可计算出正弦波的输出值,公式中的 m 为输出点数,n=1,2,m。m 值取小一些可以提高波形频率,但波形畸变会增大,增加输出点虽然可以改善波形,但输出频率会降低,实践表明,m 取 64 时,可以得到很好的正弦波。4.1.2 原理图4.2 三角波发生器的设计4.2.1 产生原理湖北轻工职业技术学院6三角波的产生较为简单,因为它的上升沿遵循数据加 8 的规律。下降沿则按数据减 8 的规律产生。所以在波形的上升沿只要判断上一次的数据是否为最大值 FFH,如果不是最大值,将原数

10、据加 8 输出;而在波形的下降沿只要判断上一次数据是否为 0,如果不是 0,则将原数据减 8 即可,当数据为 FFH 或 0 时,应当及时调整升降标志,以便下一次能输出正确的数据。4.2.2 原理图4.3 方波发生器的设计4.3.1 产生原理方波只有两个值,可以采用两个极端值 0 和 FFH,这样只要将缓冲区中的数取出求反后输出即可。设计者可据此直接写出方波程序。4.3.2 原理图4.4 波形选择器的设计本设计出于提高人机交互的考虑,设计了 3 位独立键盘,分别控制波形输出类型,其原理图如下:湖北轻工职业技术学院7sel:波形选择位,Q0:正弦波, Q1:三角波,Q2:方波, qout:波形输

11、出4.5 D/A 转换器在整体系统中,波形的幅度值被量化成数字值存储在 ROM 中,通过一组数据线输出代表二进制编码的电平信号,为了将数字信号装换成模拟信号,需要用到数-模转换器,简称 DAC(Digital-Analog Converter)。为了数据处理的准确性,DAC 转换器必须有足够的转换精度。同时为了能够在较高频率下工作,它必须有足够快的转换速度。因此,转换精度和转换速度是衡量 DAC 转换器性能优劣的主要指标。本设计中采用完整 8 位 DAC 转换器 AD558,它的输入为 8 位二进制数。DB0-DB7 对应 ROM 的 8 位输出,CS、CE 端直接接地,外接的参考电压 Vre

12、f 必须要有足够的稳定度,才能确保应有的转换精度。湖北轻工职业技术学院8第五章 设计结果5.1 软件仿真结果5.1.1 正弦波仿真结果5.1.2 三角波仿真结果5.1.3 方波仿真结果5.1.4 波形分析湖北轻工职业技术学院9在对系统进行波形仿真时可以在示波器上观察到三角波、正弦波和方波的波形。其中三角波以及正弦波的输出有一定误差,方波波形较为理想。这一方面与电路设置的参数有关,另一方面也与使用的仿真软件有关。对于上述问题的解决办法是:改变仿真电路的参数或着换用版本较高的仿真软件。当然一般产生这种情况的原因多由于电路的参数设计不合理所制。但从仿真波形上可以看出输出波形的频率大致与程序中的设置吻

13、合。波形的幅度与程序设置的最大值有关,而频率受机器周期的控制。当仿真时,由于存在一定的系统误差,波形效果不是很好。5.2 硬件测试结果定义好管脚,下载程序到硬件上,编译调试,控制 sel 的值,在示波器上看到产生的波形图如下:当 SEL=001 时,产生正弦波:当 SEL=010 时,产生三角波:湖北轻工职业技术学院10当 SEL=100 时,产生方波:在示波器上观察到的三种波形如上所示,读出的频率 f=3.1KHZ,幅度A=0.6V。而理论上,系统外接频率是 200KHZ,经计数器 64 分频后,得到的波形频率是 3.125KHZ,与读出的频率 3.1KHZ 相近。幅值由于没有校准,读出的0

14、.6V 是错误的,校准后正确的值为 1.25V。湖北轻工职业技术学院11第六章 总结本周为 EDA 课程实训周,在这一周的实训中,我学到了很多平时学不到的东西。首先,通过这次实训,使我得到了一次全面的运用所学的知识分析和解决问题。在这个过程中,刚开始我们是迷茫的,不知从何做起,通脱老师的指导,同学间的互相学习帮助,逐渐有了清晰的概念,也对自己的课题有了全面系统 的了解。逐渐由被动转为主动,能够自己去实现一些局部功能,到完成整个课题的设计。也使我们再课堂学习到的模糊的概念也转化为清晰的认识。例如:刚开始的时候,我想着弄方波和三角波就改表就行,可老师说不许这样,于是我们都束手无策了。但当我们静下心

15、来时,就觉得试着写程序看看,后来发现我们是能写成功的。才明白,原来很多时候是我们自己太不自信了,以为自己写不出来,但当自己真正去尝试的时候才发现一切并没有自己想象中的那么难,才对自己有了一个更加清楚的认识。其次,我明白了谨慎小心对于实验来讲是必不可少的。由于我们在对示波器进行校准时,只对其频率进行了校准,而没有对幅度进行校准,所以在最后进行读数的时候,其频率读的是对的,而幅度值去错的很离谱,就是因为校准的问题,让结果错了很远。最后,我明白了团结合作的重要性。如果这次没有我的队员的帮助,我想我不会这么顺利的完成这次的实训设计。课程设计虽然结束了,但是我们还有很多的事情要做,对仍然不熟悉或不了解的

16、知识点我们要尽快的去学习了解,对课程设计中出现的问题我们还要去认真的分析研究。还有我们还需要去增强自己的动手能力,去不断的锻炼,只有这样该课程设计才能发挥最大的作用以上便是我在此次实训中总结与体会。湖北轻工职业技术学院12第七章 致谢在这次的实训过程中,我要感谢很多人和单位,他们都对我提供了很大的帮助。首先,我要感谢我们学校为我们提供了此次实训的设备资源和场所。由于,这次的实训需要运用的知识有:数字电子技术、数字电路 EDA 技术、C 语言等。而我们的赵欣老师就交了我们其中的 2 种知识,而且在这次实训中,在我们遇到一些问题时,老师都有指导我们怎样解决。并且在平时的 EDA 实验中,都对我们耐

17、心的指导,让我们积累了一定的经验,才能使我们在这次实训过程中能顺利的完成任务。而且,赵欣老师在平时的授课过程中,讲课很有重点、不枯燥,这才使我们为这次实训打下了坚实的理论基础。所以,在这里我们要特别感谢我们赵欣老师,谢谢!其次,我还要感谢百度文库为我提供了一个大的资源共享场所,让我能在其中找到我所想要的一些资料,使我能很好的做好有关实训的一些基础工作。然后,我还要感谢教我们C 语言的肖丽娜老师。肖丽娜老师讲课很有方法,让我们在轻松愉快的气氛中学到 C 语言的重要知识。而且,她特别有责任心,不会因为要赶课而放弃教课的质量,仍然十分有耐心的教导我们,知道我们掌握了其知识。正因为肖丽娜老师这样的精神

18、,让我们能够更好的学习 EDA的 VHDL 编程语言,才能在这次的是实训中,编写好各种波形的程序,进而使这次实训顺利的完成。最后,我还要感谢所有在这次实训过程中帮助过我们的同学,特别是我的合作伙伴朱丽丝同学。是她的耐心和信心感染了了我,让我们能在不断地失败中总结经验,最终取得成功。还有,也是她让我明白了团结合作的重要性与必要性。在这里,我要再次感谢以上我提到的所有人和单位!谢谢你们!湖北轻工职业技术学院13第八章 参考文献(1)作者:顾斌 赵明忠 姜志鹏 马才根.数字电路 EDA 设计.西安:西安电子科技出版社 2012.06.24 访问(2)作者:shang_chris. 基于 CPLD 的

19、任意波形发生器. http:/ 2011.06.24 访问(3)作者: zhouqihong66. 简易波形发生器设计. http:/ 2011.06.24 访问(4)作者:20087304114. EDA 课程设计 6231. http:/ 2011.06.24 访问湖北轻工职业技术学院14第九章 附录7.1 相关芯片资料7.1.1 AD558D 概述AD558DACPORT是一款完整的电压输出 8 位数模转换器,它将输出放大器、完全微处理器接口以及精密基准电压源集成在单芯片上。无需外部元件或调整,就能以全精度将 8 位数据总线与模拟系统进行接口。这款 DACPORT 器件的性能和多功能特性

20、体现了近期开发的多项单芯片双极性技术成果。完整微处理器接口与控制逻辑利用集成注入逻辑(I2 L 实现,集成注入逻辑是一种极高密度的低功耗逻辑结构,与线性双极性制造工艺兼容。内部精密基准电压源是一种取得专利的低压带隙电路,采用+5 V 单电源时可实现全精度性能。薄膜硅铬电阻提供在整个工作温度范围内保证单调性工作所需的稳定性(所有等级器件),对这些薄膜电阻运用最新激光晶圆调整技术则可实现出厂绝对校准,误差在1 LSB 以内,因此不需要用户进行增益或失调电压调整。新电路设计可以使电压在 800 ns 内达到1/2 LSB 精度(满量程步进)。AD558 提供四种性能等级产品。AD558J 和 AD5

21、58K 的工作温度范围为 0C至+70C,AD558S 和 AD558T 则为-55C 至+125C。J 级和 K 级可采用 16 引脚塑料(N)或密封陶瓷(D) DIPS 封装,也可采用 20 引脚 JEDEC 标准 PLCC 封装。S级和 T 级均采用 16 引脚密封陶瓷 DIP 封装。7.1.2 AD558 特点 完整 8 位 DAC 电压输出:两种校准范围 内部精密带隙基准电压源 单电源供电:+5 V 至+15 V 完全微处理器接口 湖北轻工职业技术学院15 快速建立时间:1 s 内电压达到1/2 LSB 精度 低功耗:75 mW 无需用户调整 在工作温度范围内保证单调性 规定了 Tm

22、in 至 Tmax 的所有误差 小型 16 引脚 DIP 和 20 引脚 PLCC 封装 激光晶圆调整单芯片供混合使用 7.1.3 AD558 封装图7.2 相关程序 ;计数器 cnt 的程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt isport(clk:in std_logic;q:out std_logic_vector(5 downto 0);end;architecture one of cnt issignal q1:std_logic_vector(5 d

23、ownto 0);beginprocess(clk)beginif clkevent and clk=1 thenq1 8,lpm _widthad = 6,lpm _address_control = “registered“,lpm _outdata = “registered “,lpm_file = “E:/shixun/sin.mif“)prot map (outclock = outclock,address = address,inclock = inclock,q = sub_wire0);end syn;三角波程序:library ieee;-三角波 use ieee.std

24、_logic_1164.all;use ieee.std_logic_unsigned.all;entity sanjiao isport(clk:in std_logic;qin:in std_logic_vector (5 downto 0);q: std_logic_vector (7 downto 0);end sanjiao;architecture behave of sanjiao is湖北轻工职业技术学院17signal qin1: std_logic_vector (7 downto 0);beginprocess(clk)beginIF clkevent and clk=1

25、 thenif (qin=“000000“) thenqin1=“00000000“;elsIF (qin“100000“) thenqin1=qin1+8;elsif (qin=“100000“) thenqin1=“11111111“;elseqin1=qin1-8;end if;end if;end process;q=qin1;end behave;方波程序:library ieee;-方波 use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity Fangbo ISport ( clk:in std_logi

26、c;qin:in std_logic_vector(5 downto 0);q: out std_logic_vector(7 downto 0);end entity fangbo;architecture behave of fangbo isbeginprocess(clk)beginif clkevent and clk=1 thenif(qin“100000“) thenq=“11111111“;elseq=“00000000“;end if;end if;end process;end behave;选择器程序:library ieee;use ieee.std_logic_116

27、4.all;use ieee.std_logic_unsigned.all;entity xzq1 isport(sel:in std_logic_vector(2 downto 0);q0,q1,q2:in std_logic_vector(7 downto 0);qout:out std_logic_vector(7 downto 0);end xzq1;architecture one of xzq1 isbeginprocessbeginif(sel=“001“) then qout=q0;elsif(sel=“010“) then qout=q1;elsif(sel=“100“) then qout=q2;else qout=“00000000“;end if;end process;end on

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报