课程设计可调幅简易波形刺激发生器设计_第1页
课程设计可调幅简易波形刺激发生器设计_第2页
课程设计可调幅简易波形刺激发生器设计_第3页
课程设计可调幅简易波形刺激发生器设计_第4页
课程设计可调幅简易波形刺激发生器设计_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

1、1、前言可调幅度简易波形刺激发生器是信号发生器的一种,在生产实践和科研领域中有着广泛的应用。在研制、生产、测试和维修各种电子元件、部件以及整机设备时,都需要有信号源,由它产生不同幅度不同波形的电压、电流信号并加到被测器件或设备上,用其他仪器观察、测量被测仪器的输出响应,以分析确定它们的性能参数。信号发生器是电子测量领域中最基本、应用最广泛的一类电子仪器。它可以产生多种波形信号,如正弦波,三角波和方波等,因而广泛用于通信、雷达、导航、宇航等领域。在本设计中它能够产生多种波形,如正弦波,三角波和方波等,并能实现对各种波形幅度的改变。正因为其在生活中应用的重要性,人们它做了大量的研究,总结出了许多实

2、现方式。可以基于FPGA 、VHDL、单片机、DOS技能、数字电路等多种方法实现。本设计是采用VHDL来实现的可调幅度简易波形刺激发生器设计。它能产生正弦波,三角波和方波。且对各种波形的要求如下:(1)设计一个简易多功能信号发生器,产生稳定的波形:正弦波,三角波,方波;(2)信号发生器波形信号的选择由拨码开关控制选择。 (3)信号发生器输出信号幅度要求:幅度为1.25V、2.5V、5V。 幅度控制由拨码开关实现。输出频率不做要求。(4)波形通过DA转换后在示波器上显示。 2、FPGA原理及特点FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个新概念,内部包括可配置逻辑

3、模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。现场可编程门阵列(FPGA)是可编程器件。与传统逻辑电路和门阵列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的结构,FPGA利用小型查找表(16X1RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接到I/O模块。FPGA的逻辑是通过向内部静态存贮单元加载编程数据来实

4、现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的连接方式,并最终决定了FPGA所能实现的功能FPGA允许无限次的编程。FPGA的基本特点主要有: 1)采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。 2)FPGA可做其它全定制或半定制ASIC电路的中试样片。 3)FPGA内部有丰富的触发器和IO引脚。 4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。 5) FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。 可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。 FPGA

5、是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。 加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。 3、设计方案3.1实验要求及总体框图根据实验设计要求,可将设计分

6、为以下几个模块(如图3.1):(1) 波形产生模块。主要用来产生三种波形(正弦波、三角波、方波)。(2) 波形选择模块。该模块用于选择当前输出的为何种波形。(3) 幅度控制模块。用于控制输出信号的幅度,本设计中要求有三个档位,即1.25V,2.5V,5V。(4) DA转换。用于将前面的数字信号转换成模拟信号。(5) 输出模块。用实验室提供的示波器观察检测生成的波形。图3.1本设计采用模块化编程,在工程中编写各个模块的程序,然后生成symbol 文件,最后在顶层文件中连线编译下载即可。3.2、单元程序设计及仿真分析3.2.1方波的发生模块设计中利用计数的方法来产生方波,原理类似于分频器:对脉冲进

7、行计数,从0计到31即计数32个脉冲,输出高电平(1023);从32计到63即再计32个脉冲,输出为低电平,程序编写成功后生成的元件模块图如图3.2,其时序仿真波形图如图3.3所示:图3.2图3.3由波形图可以看出,每计数31个时钟脉冲,输出电平进行一次翻转,形成占空比为50%的方波信号。3.2.2正弦波的发生模块对于正弦波(如图3.4),由于是周期信号,可以通过对一个完整周期内以一定点数的采样来离散化。又由于D/A转换接口为10位输入,所以必须要考虑到采样个数和采样值的大小。如果仅以原始波形为基础进行采样,必然会出现小数和负数,这将使得二进制的转化和编程变的很困难。图3.4 图3.5 图3.

8、6综合所述,要解决的问题就是消除小数和负数,使采样数值变成正整数,我们采用了以下的算法:首先,将原始波形幅度扩大为原来的512倍,如(图3.5)。然后将波形向上移动512,如图3.6。接着,利用抽样点来产生正弦波,外部接线每产生一个上升沿,记一次数,同时根据计数值选择要输出的正弦采样点数值。设定64个抽样点,每个抽样点的幅值为: 其中 n=0,1,2,63。根据抽样点所对应的函数值,DA转换后就可得到一个正弦波。在Quartus II软件编写VHDL代码,通过编译和时序仿真,可得到如下图(图3.7和图3.8)所示的元件模块图和时序仿真波形。图3.7图3.83.2.3三角波的发生模块三角波的波形

9、也呈现一定的规律,可以通过外部脉冲刺激,在原来数值的基础上进行加(减)一个固定值,本设计利用状态机来实现,状态机具有良好的可靠性,不易出错。本设计状态机有两个状态: 状态S0:主要用于三角波前半部分(上升部分)的幅值输出及判断,幅值采用累加输出,判断幅值是否达到峰值,是则跳转状态二,否则仍处于本状态。 状态S1:主要用于三角波后半部分(下降部分)的幅值输出及判断,幅值采用递减输出,判断幅值是否达到0,是则跳转状态一,否则仍处于本状态。这样通过状态的不断转换,就会输出一系列值,通过DA转换就能产生一个三角波,元件模块图及时序仿真波形图如图3.9和图3.10所示:图3.9图3.103.4波形选择单

10、元波形选择采用拨码开关控制,三路输入(除去开关输入),一路输出,通过对两个拨码开关的组合状态识别判断来控制输出为哪一路输入。下图(图3.11)为生成模块图:图3.11其时序仿真波形图如图3.12所示:图3.12由图可知,用A、B两个拨码开关进行选择。当A&B为“01”时,选择I1为输出波形;当A&B为“10”时,选择I2为输出波形;当A&B为“11”时,选择I3为输出波形;当A&B为其他组合时,输出为高阻抗ZZZZZZZZZZ。3.5幅度调节单元幅度调节单元是对所产生的波形的幅值进行调节的,幅度的调节有三个档,5.00V,2.50V和1.25V。显然,以上三个档位呈2倍关系,故可在原波形数据基

11、础上通过除2和除4操作来实现档位调节。本设计采用拨码开关Sw3和Sw4来对幅度进行选择的。当Sw3& Sw4为“00”时幅值为1.25V;当Sw3 & Sw4为“01”时幅值为2.5V;当Sw3& Sw4为“10”时幅值为5.00V。该功能的实现主要是通过if语句来判断拨码开关Sw3和Sw4的状态,并根据判断结果做出相应的操作。在Quartus II软件输入该单元的VHDL程序,生成元件模块图如图3.13所示,再通过编译和时序仿真,可得到如下(图3.14)的仿真波形。图3.13 图3.14从仿真波形可以看出,当C&D即Sw3& Sw4的值“10”时输出D_OUT等于输入D_IN;当C&D即Sw

12、3& Sw4的值“01”时输出D_OUT等于输入D_IN/2; 当C&D即Sw3& Sw4的值“00”时输出D_OUT等于输入D_IN/4,跟我们的设计目的相符。3.6 DA转换单元数模转换(DAC)采用TLC5616芯片。TLC5615是一个串行10位芯片,性能比早期电流型输出的要好。只需要通过根串行总线就可以完成位数据的串行输入,易于和工业标准的微处理器或微控制器(单片机)接口,适用于电池供电的测试仪表、移动电话,也适用于数字失调与增益调整以及工业控制场合。该芯片的封装及I/O口定义如下(图3.15和表3.1): 图3.15引脚名称序号I/O口说明DIN1I串行数据输入SCLK2I串行时钟

13、输入CS3I芯片选择,低有效DOUT4O用于菊花链的串行数据输出AGND5模拟地模拟地REFIN6I基准输入OUT7ODAC模拟电源输出VDD8正电源正电源 表3.1其工作时序图如图3.16:图3.16Note:A、为使时钟反馈为最小,当CS为高电平时加在SCLK端的输入时钟应当呈现低电平。C、第12个SCLK下降沿。注意:此图为非级联方式下DA转换时序,可将芯片的第四脚悬空不做处理。在非级联方式下,1脚DIN输入的数据格式如下所示,高10位为有效数据,低2位可以设置为0电平。10 DATA BITSXX本设计中需要的操作主要是编程产生TLC5615的控制信号(SCLK时钟和CS信号)及串行输

14、送TLC5615所需的转换数据,设计时采用状态机。状态转移图如图3.17:图3.17其中: S0:CS为高,SCLK为低 ,计数为0; S1:等待一个时钟周期; S2:CS为低,SCLK为低,并判断CNT计数器是否小于等于11,是则跳到S3,否则跳到时; S3:CS为低,SCLK为高,计数器CNT加1计数,并跳转到S2; S3:CS为高,SCLK为低,跳转到S0;另外,送数与更新数据的处理: 判断CS,若为高,则更新数据,即往移位寄存器中装载需要转换成模拟信号的数字信号数据;若CS为低,则通过移位,把数据串行送给TLC5615芯片的输入端(每个SCLK上升沿移一位送出数据)。另外,本模块还需一

15、个分频,实验板的时钟信号为50MHZ, 需将它分频以适应TLC5615要求的时钟信号。本设计中采用的方案是:一是当计数器计数到偶数分N/2-1时,将输出电平进行一次翻转,同时给计数器一个复位信号,如此循环。在Quartus II软件编写VHDL程序,经过编译和时序仿真,可得到如下(图3.18)的仿真波形及元件模块图(图3.19)。图3.18图3.19从波形图上可以看到,分频器得到了将系统时钟50分频后的时钟信号。4、原理图设计及仿真分析将各个模块用线连接起来,得到顶层文件电路图,如图4.1所示:图4.15、硬件实验结果及时序分析结果本课程设计是幅值可调的波形发生器,根据引脚所锁定图将系统中的各

16、个输入输出端口锁定到合适的引脚上。其管脚设置如图5.1所示图5.1其中clk为FPGA系统时钟;A、B、C、D代表四个拨码开关的值。 当引脚锁定完毕后,将程序下载到试验箱中,连好示波器,在输入端输入相应的值即可得到相应的输出波形。具体的硬件仿真波形如下:在clk端输入50MHz的时钟信号,当图4.1的原理图中的A&B输入“01”时得到的是正弦波波形,如图5.2所示。改变C&D的值可以该变输出波形的幅值。当为“00”时幅值为1.25V ;当C&D为“01”时幅值为2.5V;当C&D为“10”时幅值为5.00V。图b图a图c图5.2当图4.1的原理图中的A&B输入“10”时得到的是方波波形,如图5

17、.3所示。同理,改变C&D的值可以该变输出波形的幅值。图a图b图c图5.3当图4.1的原理图中的A&B输入“11”时得到的是三角方波波形,如图5.4所示。同理,改变C&D的值可以该变输出波形的幅值。图b图a图c图5.4结果分析: 从实验结果来看,设计成功完成了三种波形的设计。当选择拨码开关SW1、SW2的不同组合时,波形输出发生变化;当选择拨码开关SW3、SW4的不同组合时,实现了波形幅度的调节。由于设计过程中存在不可避免的误差,输出波形的形状及输出幅值均与标准有些微偏差,但都保持在约束范围内。综上所述,本次设计的信号发生器,达到了设计所定要求,完成了要求所需的各个功能。6、总结本次设计五人一

18、组,为时两个星期。期间,小组成员之间分工明确,合作默契,进行了多次讨论分析,使得本次课程设计得以顺利完成。对于EDA的编程,其编程语言本身不会很难,关键在于编程的内在逻辑。经过一个学期的理论学习,我们对EDA有了个初步的认识,而通过这次的课程设计,我们对EDA又有了更深一步的理解,锻炼了我们的动手能力和思维能力。在设计过程中遇到不少问题,如键盘控制。键盘在7段数码管显示时,由于按下键一短时间后应放开按键,这样势必会对输出显示造成成影响,所以程序逻辑上应该有锁存功能。但这种方法在本设计中行不通,因为显示程序中的按键程序内部是通过定义一个信号tmp来保存待显示的数值的,而本设计中要锁存的是一个动态

19、产生信号的输入通道,若仍按照led显示时按键的程序编写方法,那么tmp内锁存的数据只是一个暂时的静态数据,导致按键松开后输出的数据只是一个恒定值,而不时动态变化的波形数据。所以最后赵老师建议我们换成拨码开关。从接触到这个设计课题到设计成功,途中遇到了住多么困难,通过组员之间的相互讨论及指导老师的指点,最终得以解决,在此对那些给过帮助的老师及同学表示感谢。本系统即实现了可以输出三种波形的幅值可调的波形发生器,最后的测试结果表明,该设计正确有效,可以作为制作实物的理论依据。7、参考文献1.潘松,黄继业 EDA技术实用教程(第三版)科技出版社 2006年9月第三版2.赵小明 EDA技术基础实验指导书

20、重庆大学生物工程学院 2012年5月8、附录附录1: 任务分工波形产生:余春蓉、尹玉妮、黄莹莹、李文满、蓝海强幅度控制:余春蓉、尹玉妮、蓝海强波形选择:黄莹莹、李文满、蓝海强DA转换:蓝海强报告:全体成员答辩ppt:蓝海强附录2:程序1. 分频器程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY FENPIN ISPORT(CLK :IN STD_LOGIC; CLK1:OUT STD_LOGIC );END;ARCHITECTURE FP OF FENPIN ISSIGNAL A:

21、INTEGER:=0;SIGNAL Z:STD_LOGIC;BEGINPROCESS(CLK) BEGIN IF (CLKEVENT AND CLK=1) THEN A=A + 1; IF A=24 THEN Z=(NOT Z); A= 0; END IF; CLK1=Z; END IF; END PROCESS; END FP;2方波发生模块程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY FB ISPORT (CLK:IN STD_LOGIC; FBO:OUT STD_LOGI

22、C_VECTOR(9 DOWNTO 0);END ENTITY;ARCHITECTURE BHV OF FB ISSIGNAL Q:INTEGER RANGE 63 DOWNTO 0;BEGINPROCESS(CLK)BEGINIF CLKEVENT AND CLK=1 THEN QFBOFBO=0000000000;END CASE;END PROCESS;END;2. 正玄波发生模块程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;e

23、ntity sin isport(clk:in std_logic;outp:out std_logic_vector(9 downto 0);end;architecture dac of sin issignal q: integer range 63 downto 0;signal dd4:integer;beginoutp=conv_std_logic_vector(dd4,10);process(clk)beginif (clkevent and clk=1) thenqdd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4

24、dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4null;end case;end if;end process;end dac;3. 三角波发生模块程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;use ieee.std_logic_arith.all;ENTITY SJB

25、 ISPORT( CLK:IN STD_LOGIC; SJOUT:OUT STD_LOGIC_VECTOR(9 DOWNTO 0);END;ARCHITECTURE BV OF SJB ISTYPE STATE IS (S0,S1);SIGNAL ST:STATE;SIGNAL C:STD_LOGIC_VECTOR(9 DOWNTO 0);BEGINPROCESS(CLK)BEGINIF CLKEVENT AND CLK=1 THEN CASE ST IS WHEN S0 =IF C=1023 THEN ST=S1;ELSE C=C+33;STIF C=0 THEN ST=S0;ELSE C=C-33;ST=S1;END IF; END CASE; SJOUT=C; END IF; END PROCESS; END BV;4. 波形选择单元程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY XZ ISPORT(A,B:IN STD_LOGIC; I1,I2,I3:IN STD_LOGIC_VECTOR(9 DOWNTO 0); O:OUT STD_LOGIC_VECTOR(9 DOWNTO 0

温馨提示

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

评论

0/150

提交评论