文档库 最新最全的文档下载
当前位置:文档库 › 基于某FPGA地直流电机PWM控制实现

基于某FPGA地直流电机PWM控制实现

基于某FPGA地直流电机PWM控制实现
基于某FPGA地直流电机PWM控制实现

《基于FPGA的直流电机PWM控制实现》

课程设计总结报告

一、课题名称

《基于FPGA的直流电机PWM控制实现》

二、设计任务

1.设计驱动电路来驱动直流电机

2.显示调速等级

3.测速电路

基于L298N驱动直流电机设计

三、系统总体设计方案

(画出系统原理框图、方案的论证与比较等内容);

1.系统原理框图

2.PWM的实现与比较

一般的脉宽调制PWM信号是通过模拟比较器产生的,比较器的一端接给定的参考电压,另一端周期线性增加的锯齿波电压。当锯齿波电压小于参考电压时输出低电平,当锯齿波电压大于参考电压时输出高电平。改变参考电压就可以改变PWM波形中高电平的宽度。若用单片机产生的PWM信号波形,需要通过D/A转换器产生锯齿波电压和设置参考电压,通过外接模拟比较器输出PWM波形,因此外围电路比较复杂。

FPGA中的数字PWM控制欲一般的模拟PWM控制不同。用FPGA产生PWM波形,只需FPGA内部资源就可以实现。用数字比较器代替模拟比较器,其一端接设定值计数器输出,另一端接线性递增计数器输出。当线性计数器的计数值小于设定值时输出低电平,当计数值大于设定值时输出高电平。与模拟控制比较,省去了外接的D/A转换器和模拟比较器,FPGA外部连线很少,电路更加简单,便于控制。脉宽调制式细分驱动电路的关键是脉宽调制,转速的波动随着PWM脉宽系法术的增大而减小。

四、具体实现方案

(各模块或单元电路的设计、工作原理阐述等内容);

1. PWM脉宽调制信号发生模块PWM-SQU1

此模块是FPGA中的PWM脉宽调制信号产生电路。它的输出接一电机转向控制电路模块,此模块输出的两个端口接直流电机。通过控制SL端(键1),可以改变电机转向。PWM-SQU1的输入端之一来自模块COUNTER8B。这是一个8为计数器,输出的数据相当于锯齿波信号,此信号的频率就是PWM波的频率,它有来自锁相环的C0的频率决定。PWM-SQU1另一端来自键控的8位数据,其中低4为CIN[3..0]设定为恒定1111,高4位有计数器CNT4B产生,计数器的时钟来自键K8.于是可以通过手动按键控制电机的转速。

在键K8输入进计数器前加一个消抖模块。为了在实验板上看到键K8输入的控制数据,在计数器前加了7段译码模块DECL7S,其输出接5E+系统的数码管LEDC。

PWM-SQU1模块:

内部程序:

COUNTER8B模块:

内部程序:

COUNTER4B模块:

内部程序:

SLT二路选择器模块:

内部程序:

消抖模块:

DECL7S:

内部程序:

整体PWM波输出模块:

2.电机转速措施系统

电机转速的测定很重要,一方面可以直观了解电机的转动情况,更重要的是,可以据此构成电机的闭环控制,即可以设定电机的某一转速后,确保负载变动是人就能保持不变转速和核定输出功率。本想试验是通过红外光电测定转速的。没转一圈光电管发出一个负脉冲,有CNIN口进入。由于此方法册转速,会附带大量毛刺脉冲,所以在CNIN信号后必须接入消毛刺模块(即消抖模块),此模块输出信号进入一个2为十进制显示的频率计。TF-CTRL模

块是测频时序控制电路,CNT10D模块是双十位计数器,模块LOCK8是8位寄存器。两位十进制显示在数码管LEDA,LEDB.

设计能输出8Hz的脉冲采用了两个8位分频器CNT和一个6为分频器CNT6.

CNT模块:

内部程序:

TF-CTRL模块:

内部程序:

CNT10D模块:

内部程序:

LOCK8模块:

内部程序:

3.工作时钟发生器。

这主要有锁相环PLL20模块担任。其输入频率是20MHz。PLL20模块的设置:

整体程序:

五、系统仿真结果及分析

(系统仿真结果及结果分析);1.仿真结果

2.引脚锁定

六、结果展示

(各模块工作实际照片展示等);

1.PWM波形输出

通过按键来改变它的占空比,由LEDC可以观察到,按键由0—F这16个档次,数值越大,占空比也就越大。

2.测速效果

4.方向改变按键

改变按键1,就可以输出在M0或是M1上,方向相反

七、心得体会

本次EDA课程设计题目为直流电机调速器设计,实现用PWM对于电机的控制。此次课设需要用硬件描述语言(VHDL)编写程序,并在Quartus II软件平台上进行程序的编译和仿真,锁定引脚并下载到可编程逻辑器件(试验箱)中,进行硬件的测试。

此次EDA课程设计历时两周时间,两人一组合作进行系统的设计。程序的编写我们采用元件例化的形式,经过思考和相互间的分析讨论,将整个系统划分3个功能模块,彼此配合进行3个功能模块设计和程序的编写。其间,我们亦遇到许多问题,诸如整个系统核心模块计数过程的实现,时钟频率的设定等等。

经历两周时间的不懈努力和队友之间愈加默契的配合,我们终于完成预定的目的。虽然其中遇到很多困难,很多问题,但在我们两人相互支持和鼓励想下,都能够得以顺利的找到解决办法或者改进的方法,并在合作中相互提高,彼此进步,在困难在中体会到合作的乐趣。

EDA技术对于我们电子信息工程专业的学生来说是一本很重要的专业技术课程,EDA技术极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度,是一门实际应用很广泛的技术。现在对EDA的概念或范畴用得很宽。包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA的应用。目前EDA技术已在各大公司、企事业单位和科研教学部门广泛使用。例如在飞机制造过程中,从设计、性能测试及特性分析直到飞行模拟,都可能涉及到EDA技术。

所以,EDA课程的学习对于我们自身素质和能力的提高有十分重要的积极作用,应该很认真的学习。

相关文档