基于vhdl语言的pwm

上传人:伴*** 文档编号:103958498 上传时间:2022-06-09 格式:DOC 页数:14 大小:306.50KB
收藏 版权申诉 举报 下载
基于vhdl语言的pwm_第1页
第1页 / 共14页
基于vhdl语言的pwm_第2页
第2页 / 共14页
基于vhdl语言的pwm_第3页
第3页 / 共14页
资源描述:

《基于vhdl语言的pwm》由会员分享,可在线阅读,更多相关《基于vhdl语言的pwm(14页珍藏版)》请在装配图网上搜索。

1、YIBIN UNIVERSITYEDA技术及应用期末设计报告题 目: PWM信号发生器的设计 专 业: 电子信息科学与技术 姓 名: 学 号: 2013 年 12月 20 日摘要:PWM,即脉冲宽度调制。脉冲宽度,即一个脉冲信号所占时间的长度。所以脉冲宽度的调制就是调制脉冲信号的时间长度。一个完整的脉冲信号是有高电平部分和低电平部分共两部分组成的。所以,脉冲宽度调制可以简单的理解为就是调制脉冲信号的高电平或者低电平时间的长度。而控制时间的长度,可以用计数器对时钟脉冲信号的计数来实现:通过计数器的数值设定以及对溢出信号的使用,就可以实现对脉冲信号中的高电平或者低电平的时间进行限定。在本次设计中,

2、一共有两个设计方案,分别用不同的器件进行设计,但其中最重要的,最关键的部分,都是有关计数器的设计,用信号赋值的方式决定输出的电平的高低,通过相关计数器的数值设定,调制脉冲输出的电平的时间长度。关键词:1) 脉冲宽度调制2) 时钟信号3) 计数器4) D触发器目录摘要-2关键词-2引言-4设计概述-4方案论证-5源程序设计-6方案选择-11程序分析-11设计程序仿真图-12仿真分析-13设计总结-14参考文献-14引言:PWM即脉冲宽度调制,就是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。PWM从处理器到被控系统信号都是数字式的,无需进行数模转换。让信号保持为数字形式可将噪声

3、影响降到最小,因此广泛应用在测量,通信和功率控制与交换的许多领域。脉冲宽度调制是一种模拟控制方式,其根据相应载荷的变化来调制晶体管基极或MOS管栅极的偏置,来实现晶体管或MOS管导通时间的改变,从而实现开关稳压电源输出的改变。这种方式能使电源的输出电压在工作条件变化时保持恒定,是利用微处理器的数字信号对模拟电路进行控制的一种非常有效的技术。PWM控制技术以其控制简单,灵活和动态响应好的优点而成为电力电子技术最广泛应用的控制方式,也是人们研究的热点。由于当今科学技术的发展已经没有了学科之间的界限,结合现代控制理论思想或实现无谐振波开关技术将会成为PWM控制技术发展的主要方向之一。设计概述:本次设

4、计中,采用方案二进行设计。用一个信号“CNT”来对时钟脉冲信号进行计数,并且将脉冲宽度调制信号设为PWMH和PWML两个信号。用信号:CNT,作为计数中间值。当计数数值信号CNT的计数数值小于其设定值的时候,每来一个时钟脉冲信号就将CNT加一,如果这个时候计数数值信号CNT的计数数值也小于或等于D信号输入值,就将PWMH信号置为高电平,PWML信号置为低电平。当计数数值信号CNT的技术数值等于D信号的输入值的时候,便将输出信号翻转,即PWMH为低电平,PWML为高电平。当计数数值信号CNT的计数数值等于CNT设定值的时候,便将CNT置零,程序便再次循环作用,不断输出脉冲宽度调制信号。由此达到脉

5、冲宽度调制的目的。完成程序设计的目的。方案论证: 本次设计一共设想了两个方案:1)方案一:用一个八位可自加载的加法计数器控制低电平的时间长度,用另一个八位可自加载的加法计数器控制高电平的时间长度,用一个D触发器来接收两个计数器的溢出信号和输出调制信号。其中一个计数器的溢出信号接到D触发器的CLK输入端,用来控制低电平的时间长短。另一个计数器的溢出信号接到D触发器的清零信号输入端,用来控制高电平的时间长短。通过将D触发器的输出信号取反后加到控制低电平时间长短的计数器的置位端,让计数器回到初始值,并重新开始计数。另一个控制高电平时间长短的计数器的置位端接入D触发器的输出信号,达到将计数器置入初始值

6、,重新开始计数的目的。这样,整个电路形成完整的回路,达到往返输出PWM信号的目的。2)方案二:在本方案中,将脉冲宽度调制信号设为了PWMH和PWML两个信号。在输入端,通过D信号的输入值,CNT信号的设定值以及IF函数,达到计数的目的。当计数数值信号CNT的计数数值小于其设定值的时候,每来一个时钟脉冲信号就将CNT加一,如果这个时候计数数值信号CNT的计数数值也小于或等于D信号输入值,就将PWMH信号置为高电平,PWML信号置为低电平。当计数数值信号CNT的技术数值等于D信号的输入值的时候,便将输出信号翻转,即PWMH为低电平,PWML为高电平。当计数数值信号CNT的计数数值等于CNT设定值的

7、时候,便将CNT置零,程序便再次循环作用,不断输出脉冲宽度调制信号。由此达到脉冲宽度调制的目的。源程序设计: 方案一设计源程序:1)八位可自加载假发计数器的源程序LCNT8.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY LCN ISPORT(CLK,LD:IN STD_LOGIC;D:IN INTEGER RANGE 0 TO 255;CAO:OUT STD_LOGIC);END ENTITY LCNT8;ARCHITECTURE ART OF LCNT8 ISSIGNAL COUNT:INTEGER RANGE 0 TO 255;BEG

8、INPROCESS(CLK) ISBEGINIF CLKEVENT AND CLK=1 THENIF LD=1 THEN COUNT=COUNT+1;END IF;END IF;END PROCESS;PROCESS(COUNT) ISBEGINIF COUNT=255 THEN YC=1;ELSE YCCLK,LD=LD1,D=A,YC=YC1);U2:LCNT8 PORT MAP(CLK=CLK,LD=LD2,D=B,YC=YC2);PROCESS(YC1,YC2) ISBEGINIF YC1=1 THEN SPWM1 THEN SPWM=1;END IF;END PROCESS;LD1=

9、SPWM;LD2= NOT SPWM;PWM=SPWM;END ARCHITECTURE ART;END;方案二源程序:LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; ENTITY PWM IS PORT( CLK:IN STD_LOGIC; D:IN STD_LOGIC_VECTOR(11DOWNTO 0); PWMH:OUT STD_LOGIC; PWML:OUT STD_LOGIC);END ENTITY PWM; ARCHI

10、TECTURE ART OF PWM IS SIGNAL PH:STD_LOGIC; SIGNAL PL:STD_LOGIC; SIGNAL CNT : STD_LOGIC_VECTOR(11 DOWNTO 0); BEGIN PROCESS(CLK) BEGIN IF CLKEVENT AND CLK=1 THEN IF CNT=000000001111 THEN CNT=000000000000; ELSE CNT=CNT+1; END IF;END IF;IF CNT=D THEN PH=1;PL=0; ELSE PH=0; PL=1; END IF; END PROCESS;PROCE

11、SS(CLK)ISBEGINIF CLKEVENT AND CLK=1 THENPWMH=PH; PWML=PL; END IF;END PROCESS;END;方案选择:由设计源程序可知,在第二个方案中,用一个IF语句就达到了方案一中的两个计数器的计数,去控制输出的目的,并且省略了D触发器。在硬件上节约了很多资源,并且在程序上也显得简单得多。所以采用方案二作为本次设计的最终方案。程序分析: 本次设计,选择的方案是第二个。由方案二的源程序可以看出:运用到了数值加法计数,所以打开USEIEEE.STD_LOGIC_UNSIGNED.ALL;USEIEEE.STD_LOGIC_ARITH.ALL两

12、个程序包。由于信号是以高低电平输入或输出,所以打开了USE IEEE.STD_LOGIC_1164.ALL程序包。在实体设计中,定义了时钟信号输入端口和D信号设定值输入端口,定义了两个脉冲宽度调试的输出信号。 在结构体中定义了两个输出信号:PWMH和PWML,还定义了一个计数信号:CNT,作为中间值。 由源程序可以知道,当计数数值信号CNT的计数数值小于其设定值的时候,每来一个时钟脉冲信号就将CNT加一,如果这个时候计数数值信号CNT的计数数值也小于或等于D信号输入值,就将PWMH信号置为高电平,PWML信号置为低电平。当计数数值信号CNT的技术数值等于D信号的输入值的时候,便将输出信号翻转,

13、即PWMH为低电平,PWML为高电平。当计数数值信号CNT的计数数值等于CNT设定值的时候,便将CNT置零,程序便再次循环作用,不断输出脉冲宽度调制信号。由此达到脉冲宽度调制的目的。完成程序设计的目的。设计程序仿真图:方案二源程序仿真图仿真分析: 由仿真图可以看出,D的输入值为10,在程序中得知CNT计数数值信号的设定值为15,所以,当前十个时钟信号来时,保持PWMH输出为高电平,PWML输出为低电平。当第十一个时钟到来时,输出信号翻转,将PWMH置为低电平,PWML置为高电平,保持五个时钟周期后,CNT的计数数值等于其设定数值,因此被置零,所以输出信号再次翻转,将PWMH输出置为高电平,PW

14、ML输出置为低电平,由此往返运行程序,便循环输出脉冲宽度调制信号。 综上所述,方案二的设计满足了设计要求。设计总结:脉冲宽度调制的程序设计本身是比较简单的,最重要的设计部分就是计数器的设计和如何运用计数器去控制脉冲宽度调制信号的切换与脉冲信号周期的长短。除此之外,这个设计本无什么难度。这次设计的源程序就实现了脉冲信号周期时间的控制以及电平信号的翻转这两个作用,所以其用途可以用来进行控制重复循环动作的切换,比如交通灯的亮灭与切换,切割机的切割动作的控制。本次设计的最大的收获是来自于动手能力的提高,以前都是在书上读程序,而这次是自己写,感觉很不一样,虽然程序简单,但也花了不少时间。另外就是对开发软件的熟悉程度跟以往相比提高很多。参考文献:1 谭会生,张昌凡.EDA技术及应用.西安电子科技大学出版社,20112 杨晖,张凤言.大规模可编程逻辑器件与数字系统设计.北京航空航天大学出版社,19983 杨恒,李爱国,王辉.FPGA/CPLD最新使用技术指南.清华大学出版社,2005

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!