EDA课设步进电机.docx
《EDA课设步进电机.docx》由会员分享,可在线阅读,更多相关《EDA课设步进电机.docx(16页珍藏版)》请在冰豆网上搜索。
EDA课设步进电机
《EDA技术及应用》
课程设计报告
题目:
简单步进电机控制系统设计
院(系):
机电与自动化学院
专业班级:
自动化1104
学生姓名:
张凯
学号:
20111184144
指导教师:
段丽娜
2016年6月15日至2014年6月20日
华中科技大学武昌分校制
《EDA技术及应用》课程设计任务书
一、设计题目
简单步进电机控制系统设计
二、设计主要内容
(1)控制要求
本课程设计要求对三相四线制的步进电机进行控制,要求编写程序完成步进电机的转速及专向的控制,能够实现正转的三档转速控制及反转的三档速度控制。
①根据控制要求,编写VHDL程序实现简单控制功能;
②在电机运转过程中,能够实现简单的速度控制,速度控制分三档:
慢,快;转速在程序中设定,由按键控制;此外还要求由一个按键实现转向控制;
③主控芯片由于功耗要求,其输出电流较小,驱动能力不够,因此必须设计驱动电路驱动步进电机的旋转。
(2)设计要求
①设计FPGA的基础工作电路
②设计直流电机,驱动电路芯片及FPGA芯片的硬件电路连接
③设计输入控制部分硬件电路
④程序下载并进行硬件调试
(3)撰写说明书
①含系统硬件设计电路
②含软件设计(程序及必要的说明)
③含软件仿真及生成的顶层电路
④调试及调试结果,以及在调试过程中出现的问题及解决办法
三、原始资料
(1)三相四线制步进电机的驱动原理为当不同绕组一次轮流接通驱动电路时,会产生磁场从而带动步进电机旋转一个步次,当改变绕组接通次序则会改变其转向,当改变绕组接通频率则可改变其运行速度。
(2)本系统的主要控制目标是转速和转向,通过输入按键接通与否可以判定其控制目标。
因此控制转向需一个按键,而控制速度则需两个按键。
(3)EP3C10E144C8芯片只能输出3.3V电压,其驱动能力有限,因此必须有外接电路为直流电机提供足够的驱动电流。
四、要求的设计成果
在QuartusII软件中新建原理图文件,编译,仿真,锁定管脚并下载到目标芯片。
(1)根据设计要求,设计系统的原理框图,说明系统中各主要组成部分的功能;
(2)在QuartusII软件中,编写各个模块VHDL源程序;并上机调试通过;
(3)根据软件编好用于系统仿真的测试文件;
(4)编好用于硬件验证的管脚锁定文件;
(5)记录系统各个模块仿真结果;
(6)记录调试过程中出现的问题及解决办法。
注意:
基本要求学生必须完成,学有余力的学生可以在基本要求完成的前提下,选择其它方案完成设计。
一般来说,生成的硬件电路越简单考查评价就越高。
五、进程安排
序号
课程设计内容
学时分配
备注
1
集中学生学习课程设计的关键理论知识、分配设计任务、明确设计要求、查找资料等。
0.5天
2
根据任务的要求进行方案构思,初选方案,绘制系统原理框图并与指导教师讨论,方案定稿。
0.5天
3
完成各模块的VHDL程序设计、编译和时序仿真
2天
4
编程、下载,结合硬件平台,进行调试。
完成顶层文件图绘制,对编制好的文件交给老师检查,并按照老师要求修改。
1天
5
撰写课程设计说明书
0.5天
6
答辩及验收课程设计
0.5天
合计
5天
六、主要参考资料
[1]侯伯享.VHDL硬件描述语言与数字逻辑电路设计.西安:
西安电子科技大学出版,2010
[2]潘松.EDA技术实用教程.成都:
电子科技大学出版社,2010
[3]李玉山.电子系统集成设计技术.北京:
电子工业出版社,2010.6.
[4]李国丽.EDA与数字系统设计.北京:
机械工业出版社,2009
[5]周彩宝.VHDL语言及其应用.上海:
华东计算机技术研究所:
2009
[6]谭会生.EDA技术中和应用实例与分析.西安:
西安电子科技大学出版社,2008
指导教师(签名):
20年月日
目录
1课程设计要求及目的……………………………………………………………………1
1.1课程设计任务…………………………………………………………………………1
1.2课程设计要求…………………………………………………………………………1
1.3课程设计目的…………………………………………………………………………1
2课程设计主要内容………………………………………………………………………1
2.1系统硬件原理图……………………………………………………………………1
2.2系统硬件接线图…………………………………………………………………8
2.3三相四线制异步电机…………………………………………………………………8
2.4驱动电路………………………………………………………………………………9
2.5软件设计………………………………………………………………………………9
2.5.1源程序…………………………………………………………………………9
2.5.2功能仿真图…………………………………………………………………………10
2.5.3电路仿真图…………………………………………………………………………10
3调试结果及分析…………………………………………………………………………23
4课程设计总结……………………………………………………………………………24
5参考文献…………………………………………………………………………………25
1课程设计要求及目的
1.1课程设计任务
用EDA技术对三相四线制步进电机进行控制。
1.2课程设计要求
①本课程设计要求对三相四线制的步进电机进行控制,要求编写程序完成步进电机的转速及专向的控制,能够实现正转的三档转速控制及反转的三档速度控制;
②在电机运转过程中,能够实现简单的速度控制,速度控制分三档:
慢,快;转速在程序中设定,由按键控制;此外还要求由一个按键实现转向控制;
③主控芯片由于功耗要求,其输出电流较小,驱动能力不够,因此必须设计驱动电路驱动步进电机的旋转。
1.3课程设计目的
了解三相四线制步进电机工作原理;熟练使用VHDL语言编程。
2课程设计主要内容
2.1系统硬件原理图
系统原理图如图2-1所示:
图2-1系统原理图
2.2系统硬件接线图
系统硬件接线图如图2.2所示:
Stepmotor
GND
Vcc
图2-2系统硬件接线图
2.3三相四线制步进电机
三相四线制步进电机的驱动原理为当不同绕组一次轮流接通驱动电路时,会产生磁场从而带动步进电机旋转一个步次,当改变绕组接通次序则会改变其转向,当改变绕组接通频率则可改变其运行速度。
在这里,我采用单四拍控制。
通过一个按键来控制电机的正反转,两个按键来控制电机的调速。
三相四线制步进电机的单四拍正反转数字控制模型如表一、表二所示:
表一单四拍正转数字控制模型
步序
D相
C相
B相
A相
字模
PB3
PB2
PB1
PB0
1
0
0
0
1
01H
2
0
0
1
0
02H
3
0
1
0
0
04H
4
1
0
0
0
08H
表二单四拍反转数字控制模型
步序
D相
C相
B相
A相
字模
PB3
PB2
PB1
PB0
1
1
0
0
0
08H
2
0
1
0
0
04H
3
0
0
1
0
02H
4
0
0
0
1
01H
2.4驱动电路
EP3C10E144C8芯片只能输出3.3V电压,其驱动能力有限,因此必须有外接电路为步进电机提供足够的驱动电流。
驱动芯片选择ULN2003。
ULN2003是高耐压、大电流达林顿陈列,由七个硅NPN达林顿管组成。
该电路的特点如下:
ULN2003的每一对达林顿都串联一个2.7K的基极电阻,在5V的工作电压下它能与TTL和CMOS电路直接相连,可以直接处理原先需要标准逻辑缓冲器。
具有电流增益高、工作电压高、温度范围宽、带负载能力强等特点,适应于各类要求高速大功率驱动的系统。
ULN引脚如图2-3:
:
图2-3ULN引脚图
2.5软件设计
2.5.1源程序
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entitystepis
port(clk,rst:
instd_logic;--状态机工作时钟和复位信号
a:
instd_logic;--转向开关
KEY:
instd_logic_vector(1DOWNTO0);--调速开关
y:
outstd_logic_vector(3downto0));
endstep;
architecturebhvofstepis
typestatesis(s0,s1,s2,s3);--数据类型定义,定义状态符号
signalc_st,next_st:
states;--将现态和次态定义为新的数据类型states
signalclkns:
std_logic;
signalq:
integerrange0to65535;
begin
reg:
process(clk)--主控时序进程
variablen:
integerrange0to65535;
begin
ifrst='1'thenc_st<=s0;--检测异步复位信号,复位信号后回到初态s0
elsifclk'eventandclk='1'then
if(qif(key="00")thenn:
=5;--低速
elsif(key="01")thenn:
=30;--中速
elsen:
=60;--高速
endif;
endif;
endif;
endprocess;
com:
process(a,c_st)--主控组合进程
begin
if(a='1')then
case(c_st)is--正转
whens0=>y<="0001";next_st<=s1;--进入状态s0后输出0001
whens1=>y<="0010";next_st<=s2;
whens2=>y<="0100";next_st<=s3;
whens3=>y<="1000";next_st<=s0;
whenothers=>next_st<=s0;
endcase;
elsif(a='0')then
case(c_st)is--反转
whens0=>y<="1000";next_st<=s1;--进入状态s0后输出1000
whens1=>y<="0100";next_st<=s2;
whens2=>y<="0010";next_st<=s3;
whens3=>y<="0001";next_st<=s0;
whenothers=>next_st<=s0;
endcase;
endif;
endprocess;
endbhv;
2.3.2功能仿真图
功能仿真如图2-4所示:
图2-4功能仿真图
2.3.3仿真电路图
软件仿真电路如图2.5所示:
图2-5仿真电路图
3调试结果及分析
我们在quartus编译好程序后,先进行了功能仿真,加入输入信号,观察其输出波形按照想像中的变化,结果进行了时序仿真,输出波形,有少许毛刺,对程序进行了一些优化后,下载到试验箱中区去,开始电机需要碰一下才可以转动,原来是线没有插紧,检查之后,对于电机有时在左右摆动,开始以为是用双四拍不行,接着改为单四拍,发现问题依旧存在,我们仔细研究后,认为是引脚号分配错误,当我们重新测试电机与EDA芯片的连接后,重新修改了引脚分配,这次电机按照我们预想的那样运行:
一个键控制电机的方向,另外两个键对电机的转速进行控制,从而实现了三相四线制步进电机的正方转以及低、中、高三种速度的调节。
4课程设计总结
这次EDA课程设计是用quartus开发软件及VHDL语言编程实现的。
由于这次课程设计采用实验室的试验箱,所以我们并没像以前那样焊板子,再硬件方面并没有得到很好的锻炼,其实我更希望学校能够将所需元件给我们,让我们自行设计硬件电路,这样我们就会做出自己的软件部分,而不是被实验箱的硬件部分所局限。
在编程方面,由于使用VHDL语言编程,使得程序可读性大大增强。
我们通过研究教材上的一些经典程序,以及上网查找资料,了解了ULN2003芯片的工作原理,然后再进行编程,在这之前我们从未接触过,毫无疑问增强了同学的自学能力。
=。
在调试方面,要熟悉quartus软件的使用方法,首先要选对接口,其次要选对设备,再就是要勾选硬件调试,才能下载成功。
每次停止时,要按复位按钮。
这次课程设计,让我积累了不少经验。
比如步进电机的工作原理,它的供电时序决定了转子的运转方向,步进电机的应用非常广泛,通过学习可以为以后的工作打基础。
在此过程中培养了我在实践中研究问题,分析问题和解决问题的能力以及培养了良好的设计素质,如团队精神、交流能力、独立思考、测试前沿信息的捕获能力等;提高了自己动手能力,培养理论联系实际的作风,增强创新意识,使我更加深刻的理解了设计原理。
5参考文献
[1]侯伯享.VHDL硬件描述语言与数字逻辑电路设计.西安:
西安电子科技大学出版,2010.
[2]潘松.EDA技术实用教程.成都:
电子科技大学出版社,2010.
[3]李玉山.电子系统集成设计技术.北京:
电子工业出版社,2010.6.
[4]李国丽.EDA与数字系统设计.北京:
机械工业出版社,2009.
[5]周彩宝.VHDL语言及其应用.上海:
华东计算机技术研究所:
2009.
[6]谭会生.EDA技术中和应用实例与分析.西安:
西安电子科技大学出版社,2008.
课程设计成绩评定表
成
绩
评
定
项目
比例
得分
平时成绩(百分制记分)
30%
业务考核成绩(百分制记分)
70%
总评成绩(百分制记分)
100%
评定等级
优良中及格不及格
指导教师(签名):
20年月日