基于QUARTUS的步进电机控制器仿真设计.docx
《基于QUARTUS的步进电机控制器仿真设计.docx》由会员分享,可在线阅读,更多相关《基于QUARTUS的步进电机控制器仿真设计.docx(9页珍藏版)》请在冰豆网上搜索。
基于QUARTUS的步进电机控制器仿真设计
成绩评定表
学生姓名
班级学号
专业
课程设计题目
评
语
组长签字:
成绩
日期
201年月日
课程设计任务书
学院
专业
学生姓名
班级学号
课程设计题目
步进电机控制器
实践教学要求与任务:
训练学生综合运用学过的基础知识,独立进行查找资料、选择方案、代码设计、撰写报告,进一步加深对EDA技术的理解。
能正确划分设计层次;收集资料;独立思考,刻苦专研,严禁抄袭;按时完成设计任务,认真、正确地书写课程设计报告。
步进电机的控制主要通过5个按键来实现,分别表示正转、反转、加速、减速和停止。
工作计划与进度安排:
课程设计时间为10天(2周)
1、调研、查资料1天。
2、总体方案设计2天。
3、代码设计与调试5天。
4、撰写报告1天。
5、验收1天。
指导教师:
201年月日
专业负责人:
201年月日
学院教学副院长:
201年月日
目录
1.设计目的1
2.设计要求和任务1
1.2.1设计要求1
1.2.2设计任务1
3.总体设计思路及原理描述1
3.1系统硬件原理图1
3.2步进电机驱动原理2
4.程序设计3
5.编译/仿真4
5.1编译过程4
5.1.1建立顶层设计文件夹TRAFFIC_CTROL4
5.1.2TRAFFIC_CTROL.VHD模块设计4
5.1.3TRAFFIC_CTROL.SCf波形文件设计4
5.2仿真结果5
6.心得体会5
7.参考文献7
1.设计目的
训练学生综合运用学过的基础知识,独立进行查找资料、选择方案、代码设计、撰写报告,进一步加深对EDA技术的理解。
2.设计要求和任务
1.2.1设计要求
(1)根据设计题目要求编写相应程序代码
(2)对编写的VHDL程序代码进行编译和仿真
(3)总结设计内容,完成课程设计
1.2.2设计任务
设计一个步进电机控制器,步进电机的控制主要通过5个按键来实现,分别表示正转、反转、加速、减速和停止
3.总体设计思路及原理描述
3.1系统硬件原理图
系统原理图如图3-1所示:
图3.1系统原理图
3.2步进电机驱动原理
三相四线制步进电机的驱动原理为当不同绕组一次轮流接通驱动电路时,会产生磁场从而带动步进电机旋转一个步次,当改变绕组接通次序则会改变其转向,当改变绕组接通频率则可改变其运行速度。
在这里,我采用单四拍控制。
通过一个按键来控制电机的正反转,两个按键来控制电机的调速。
三相四线制步进电机的单四拍正反转数字控制模型如表3.1、表3.2所示:
表3.1 单四拍正转数字控制模型
表3.2 单四拍反转数字控制模型
4.程序设计
该步进电机的源程序TRAFFIC_CTROL.VHD
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;
5.编译/仿真
5.1编译过程
5.1.1建立顶层设计文件夹TRAFFIC_CTROL
在硬盘适当位置建立TRAFFIC_CTROL文件夹。
注意:
该文件夹的路径中不能包含汉字。
路径中的所有目录和子目录的名称都必须符合VHDL语言的语法规则。
5.1.2TRAFFIC_CTROL.VHD模块设计
新建一个.VHD格式文件,输入TRAFFIC_CTROL.VHD源程序后保存在顶层设计文件夹中,并进行语法查错、编译。
5.1.3TRAFFIC_CTROL.SCf波形文件设计
新建一个.SCF格式文件,输入时钟及紧急状态波形后保存文件,此后即可仿真。
5.2仿真结果
仿真如图5.1所示:
图5.1仿真结果图
6.心得体会
EDA课程设计就要结束了,这次课程设计历时近一个星期,通过这一个星期的学习,发现了自己的很多不足,发现了很多知识上的漏洞。
同时也看到了自己的实践经验还是比较缺乏,理论联系实际的能力还急需提高。
这次课程设计让我学到了很多,不仅是巩固了先前学的EDA技术的理论知识,而且也培养了我的动手能力,更令我的创造性思维得到拓展。
在课程设计中一个人的力量是远远不够的,真正的完成任务需要共同的智慧与劳动,团结协作是我们成功的一项非常重要的保证。
在这个过程中,我也曾经因为实践经验的缺乏失落过,也曾经仿真成功而热情高涨。
还有一点是我们做任何事情都无法缺少的,那就是细心认真。
此次设计我们就深深地体会到了,由于编程的时候没有做到足够的细心,导致一串代码弄混了。
但是密密麻麻的英文字母混在一起,我始终没有发现。
最终在调试的时候,就出现了问题。
只知道出现了问题,就是不知道到问题的根源在哪里,好长时间都没有找出问题的所在。
这也让我真正的明白了,科学的严谨性,它不允许出半点差错,否则后果会是比较麻烦的。
做其他事情也一样,都需要我们付出足够的认真去对待,才能顺利的完成。
生活就是这样,汗水预示着结果也见证着收获。
劳动是人类生存生活永恒不变的话题。
虽然我这次做的课程设计不是非常的复杂,但在设计和仿真的过程中,我们也遇到了不少的困难,回首整个过程,却受益匪浅。
对我而言,知识上的收获重要,精神上的丰收更加可喜。
让我知道了学无止境的道理。
我们每一个人永远不能满足于现有的成就,人生就像在爬山,一座山峰的后面还有更高的山峰在等着你。
挫折是一份财富,经历是一份拥有。
这次课程设计必将成为我人生旅途上一个非常美好的回忆!
7.参考文献
[1]阎石,数字电子技术基础.[M]北京:
高等教育出版社,1998
[2]谭会生,EDA技术及应用.[M]西安:
电子科技大学出版社,2001
[3]廖裕评,CPLD数字电路设计——使用MAX+plusⅡ入门篇,清华大学出版,2001
[4]冯涛,可编程逻辑器件开发技术:
MAX+plusⅡ入门与提高.[M]北京:
人民邮电出版社,2002
[5]杨崇志,特殊新型电子元件手册.[M]辽宁:
科学技术出版社,1999
[6]彭介华,电子技术课程设计指导.[M]北京:
高等教育出版社,2000
[7]MarkZwolinski,DigitalSystemDesignwithVHDL.[M]北京:
电子工业出版社,2002
[8]AlanB,MarcovitzIntroductiontologicDesign.[M]北京:
电子工业出版社,2002