PWM控制器设计报告.docx
《PWM控制器设计报告.docx》由会员分享,可在线阅读,更多相关《PWM控制器设计报告.docx(13页珍藏版)》请在冰豆网上搜索。
![PWM控制器设计报告.docx](https://file1.bdocx.com/fileroot1/2023-1/31/cc4c68bd-06d4-49ae-9ce4-ae3afe36e4dc/cc4c68bd-06d4-49ae-9ce4-ae3afe36e4dc1.gif)
PWM控制器设计报告
目录
1.PWM控制器的设计要求……………………………………………1
3.单元电路的设计和元器件的选择……………………………………5
2.1时钟控制电路的设计……………………………………………6
2.2分频器电路的设计……………………………………………6
2.3边沿检测电路的设计…………………………………………6
2.4PWM生成器电路的设计…………………………………………7
2.5数码管显示电路的设计…………………………………………8
2.5.1数据变化检测器电路的设计……………………………8
2.5.2数据转化电路的设计……………………………………8
2.5.3译码器电路的设计………………………………………9
3.系统电路总图及原理……………………………………………10
4.经验体会………………………………………………………10
参考文献………………………………………………………………11
附录A:
系统电路原理图………………………………………………12
多功能PWM控制器的设计
一、PWM控制器的设计要求
PWM的全称是脉冲宽度调制,其实是具有一定频率、一定占空比的脉冲。
不同占空比的脉冲的有效电平也不同,这样就可以调节PWM可以输出不同的有效电平。
从而实现对电机转速的控制,以及对LED明暗程度的控制等。
多功能PWM控制器设计要求:
1、具有两种模式可供选择(这里采用电机作为控制对象)。
模式1:
可直接输入占空比。
模式2分为4种工作状态:
状态1:
自动控制,实现电机的正转,PWM的占空比由0递增到100,再由100递减到0,转速由慢到快,再由快到慢,步进值可调,步进值的最小精度为1%,重复此过程。
占空比小于0,则设为0,大于100,则设为100;
状态2:
自动控制,实现电机的反转,PWM的占空比由0递增到100,再由100递减到0,转速由慢到快,再由快到慢,步进值可调,
步进值的最小精度1%,重复此过程。
占空比小于0,则设为0,大于100,则设为100;
状态3:
手动控制,实现电机的正转,PWM的占空比,可以根据外部脉冲信号(上升沿)进行步进增加或者步进减小,步进值可调,步进值的最小精度1%。
占空比小于0,则设为0,大于100,则设为100;
状态4:
手动控制,实现电机的反转,PWM的占空比,可以根据外部脉冲信号(上升沿)进行步进增加或者步进减小,步进值可调,步进值的最小精度1%。
占空比小于0,则设为0,大于100,则设为100;
2、可显示占空比以及正反转的状态。
二、单元电路的设计和元器件的选择
2.1时钟控制电路的设计
用于控制外部时钟是否能进入到系统中,以及是否有输出。
控制信号为ENA。
当ENA为高电平时,CLK进入到系统中,系统开始正常工作,正常输出PWM的值。
当ENA为低电平时,CLK无法进入系统,系统停止工作,不输出脉冲。
时钟控制器的方框图:
仿真波形:
2.2分频器电路的设计
由于外部时钟可能具有很高的频率,使得LED显示的PWM值会重叠在一起,从而无法分辨。
故采用分频器降低外部的高频时钟信号。
输出频率=输入频率/[(256-D)*2*64]
分频器的方框图:
仿真波形:
2.3边沿检测电路的设计
QuartusII的FPGA芯片无法同时检测多个信号的上升沿,而在设计过程中,要用到多个信号的上升沿作为触发信号,故将出时钟以外的需要检测上升沿的信号的上升沿转化为很短的脉冲(最长为一个时钟周期),将检测上升沿转化为检测高电平。
从外部看,就可以对多个信号进行边沿检测。
边沿检测器的方框图:
仿真波形:
如图所示,当外部信号上升沿到来时将其转化为很短的脉冲,从而避免了系统同时对多个信号的边沿进行检测。
2.4PWM生成器电路的设计
此模块是多功能PWM控制器的核心部件,该模块实现了此次设计的
主要任务,产生PWM,并实现了对PWM进行控制的2
种模式。
PWM生成器的方框图:
设计思路:
内部节点信号:
D用于存储当前占空比,赋值条件为:
MIN模式选择信号。
高电平时DATA1作为占空比直接输入到系统,低电平时,DATA1作为步进值。
DATA2用于存储下一时刻的占空比。
Count_out1,count_out2为溢出信号。
ADDFLAG用于指示DATA2是否超出0—100的表示范围,从而改变DATA2的步进方向,由递增变为递减,或反过来
LRFLAG指示是左转还是右转,高电平正转,低电平反转
MOUT1暂存占空比及
MODE[1..0]状态选择信号
PWM生成器内部采用两个计数器count1(0-100)、count2(0-1000)。
Count1用来控制输出是高电平还是低电平,当count1D时输出低电平。
从而产生一定占空比的脉冲,频率为系统时钟的百分之一。
Count2用来实现自动控制,每当count2溢出时,DATA2将以DATA1为步进值,增加或者减少。
当处于手动模式时,UP或DOWN为高电平时,DATA2将以DATA1为步进值,增加或者减少。
由于PWM生成器不宜单独工作,故仿真时,在前面加上边沿检测器如下图:
仿真波形:
模式1:
MIN=1
由以上四张图可以看出,当MIN=1时,不论MODE的值为那种组合,LED的值都等于DATA,即实现了占空比的直接输入。
模式2:
MIN=0
状态1:
正转、PWM的占空比实现自动控制。
LED为占空比的值,由图可以看出LED的值减小到0时,下一时刻LED的值将开始递增。
随着LED的变化,MOUT[1]的占空比在不断变化。
状态2:
反转、PWM的占空比实现自动控制。
LED为占空比的值,由图可以看出LED的值增加到100时,下一时刻LED的值将开始递减。
随着LED的变化,MOUT[1]的占空比在不断变化。
状态3:
正转,在up的每一个上升沿到来时LED会步进增加一个DATA的值,在down的每一个上升沿到来时LED会步进减少一个DATA的值。
状态4:
反转,在up的每一个上升沿到来时LED会步进增加一个DATA的值,在down的每一个上升沿到来时LED会步进减少一个DATA的值。
2.5数码管显示电路的设计
2.5.1数据变化检测器电路的设计
该模块主要功能是:
当输入数据变化时,输出一个脉冲信号。
该模块的输入也是下一级的输入,并为下一级的电路提供锁存信号(同时也是复位),从而使得下一级的内部电路复位以及使得输出数据更新。
数据变化检测器的方框图:
仿真波形:
2.5.2数据转化电路的设计
为了减少IO口的使用数量,采用四位数码管动态显示占空比以及正反转状态,所以要将输入的十进制的占空比数据的各个位上的数据分离出来然后再逐一的显示在数码管上。
其中通过位选信号,将转化后的数据显示在对应位置上的数码管。
数据转化电路的方框图:
仿真波形:
“11”表示正转,“12”表示反转。
2.5.3译码器电路的设计
主要功能是是将输入的十进制转化为相应的二进制代码,并将其显示在数码管上。
译码器的方框图:
仿真波形:
三、系统电路总图及原理
系统的总电路图见附录。
工作原理:
在不同模式和状态下,会将输入的数据转化为相应的占空比,并经数据逐一的显示在数码管上。
工作模式及状态由输入的控制信号决定,各个模式的工作机制见设计要求。
仿真波形:
1、ENA=0
此时系统处于休息状态,LED显示之前的占空比数据。
内部的数据会被暂存,但不会有脉冲输出。
如图所示:
2、MIN=1
DATA的数据被作为占空比输入到系统内部,并输出该占空比的脉冲。
如图所示:
3、MIN=0
状态1:
状态2:
状态3:
状态4:
四、心得体会
在做多功能PWM控制器的过程中遇到了很多的问题。
其中有一些是在经过好几个通宵的努力下才想到了解决的办法。
例如,检测多个信号的上升沿,转化为将上升沿变成很短的脉冲,再去检测高电平,就可以达到所要的效果。
另一个比较头疼的问题是占空比的数据会大于100,可是明明设置了当DATA2的值大于100时就等于0的条件,后来增加了一个标志位,又经过进一步的反复仿真,问题终于解决了。
此外还感觉到了,课本上的很多知识,并没有真正的明白,还需要进一步的学习。
参考资料:
EDA技术与VHDL(第三版)潘松黄继业编