1、步进电机定位控制系统方案学生学号课程设计题目步进电机定位控制系统设计学 院信息工程学院专业班级姓名指导老师20182018学年6月20日课程设计任务书学生姓名: 专业班级: 指导教师: 工作单位: 题目:步进电机定位控制系统设计初始条件:1. 具备电子电路的基础知识及查阅资料和手册的能力;2. 熟悉ISE 仿真软件的操作与运用;3. 掌握步进电机的工作原理。要求完成的主要任务:1. 设计一个基于FPGA 的4 相步进电机定位控制系统,包括步进电机方向设定电路模块、步进电机步进移动与定位控制模块和编码输出模块。2.撰写符合学校要求的课程设计说明书。时间安排:1、2018 年06月11日,布置课设
2、具体实施计划与课程设计报告格式的要求说明。2、2018 年06月12日 至2018年06月17日,设计说明书撰写。3、2018年06月18日,上交课程设计成果及报告,同时进行答辩。指导教师签名: 年 月 日系主任或责任教师)签名: 年 月 日目录摘要 IAbstract II1 设计目标及简介 11.1设计目标 11.2 步进电机简介 12 VHDL语言介绍 23 Quartus 介绍 34 系统组成 44.1 四相步进电机工作原理 44.2 系统组成 65 模块设计 75.1 FPGA模块图及信号说明 75.2 系统模块构成 75.3 各模块间整体共享的电路内部传递信号 75.4 电机方向设
3、定电路模块 75.5 步进电机步进移动与定位控制模块 85.6 编码输出模块 96 程序设计与仿真 107 仿真结果 148 实验总结 16参考文献 17摘要在分析了步进电机工作原理的基础上,提出了步进电机定位控制系统的模块划分和实现方法。以步进电机四相四拍工作方式为例,用Verilog编程在Altera公司的FPGA开发系统中实现了各功能模块和显示程序。在系统仿真的基础上,进行了功能模块的控制实验,实验结果和仿真一致,实现了对步进电机模组的预定控制。关键词:步进电机定位控制 Verilog硬件描述语言 FPGAAbstractOn the basis of analysing steppin
4、g motors operational principle,we put forward modules division and realizing method of positioning control system which using stepping motor.Giving an example such as stepping motors which work in Four-phase-four-step mode,we use Verilog programming realized every foundational module and display rou
5、tine in Alteras FPGA development system.On the basis of system simulation,we conduct a controlling experiment about foundational modules,the results are the same as simulations results.We carried out the expected control about stepping motor.Keyword:stepping motor positioning control VHDL FPGA1 设计目标
6、及简介1.1设计目标设计一个基于FPGA的4相步进电机定位控制系统。1.2 步进电机简介步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。使得在速度、位置等控制领域用步进电机来控制变的非常的简单。2 VHDL语言介绍VHDL的英文全名是Very-High-Speed Integrated Circuit Hardware Description Language,诞生于1982年。
7、1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言。VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体可以是一个元件,一个电路模块或一个系统)分成外部或称可视部分,及端口)和内部或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。VHDL 语言能够成为标准化的硬件描述语言并
8、获得广泛应用,它自身必然具有很多其他硬件描述语言所不具备的优点。归纳起来,VHDL 语言主要具有功能强大,设计方式多样;硬件描述能力强大;具有很强的移植能力;设计描述与器件无关程序易于共享和复用等优点。3 Quartus 介绍Quartus II 是Altera公司的综合性PLD/FPGA开发软件,支持原理图、VHDL、VerilogHDL以及AHDLAltera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。Quartus II可以在XP、Linux以及Unix上使用,除了可以使用
9、Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。Quartus II提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,包括:可利用原理图、结构框图、VerilogHDL、AHDL和VHDL完成电路描述,并将其保存为设计实体文件;芯片, 00:自动检测角度输入,决定激磁方式01:1-相激磁。10:2.相激磁。11:1-2.相激磁. angle:步进角的倍数设定输入键.baba:将内部计数器的count3 downto 0的数值编码输出5.2 系统模块构成系统主要由步进电机方向设定电路模块、步进电机步进移动与定位
10、控制模块和编码输出模块构成。前两个模块完成电机旋转方向设定,激磁方式设定和定位角度的换算等工作,后一个模块用于对换算后的角度量编码输出。5.3 各模块间整体共享的电路内部传递信号count:内部电路计数累加器,用来产生输出所需对应的状态;cntinc:设定累加器所需的累加/减计数值;sntini:设定累加器所需的计数初值;angledncount:设定步进角所需处理的次数;Angledncntdec:设定步进角所需累减计数值;5.4 电机方向设定电路模块该模块设定了步进电机的旋转方向以及电机在任一方向上所需的初值与累加/减值。dir为0时,步进电机工作于逆时针旋转模式,累加值为正数。manne
11、r 选择激磁方式00、01、10、11分别对应默认激磁方式、1-相激磁方式、2.相激磁方式和1-2.相激磁方式。如表5.1。manner cntini cntinc angledncntdec 00 angle=2n+1时1angle=2n 时0 2 2 01 0 2 2 10 -1 2 2 11 0 1 1 表5.1 dir为0时dir为1时,步进电机工作于顺时针旋转模式,累加值为负数。manner 选择激磁方式00、01、10、11分别对应默认激磁方式、1-相激磁方式、2.相激磁方式和1-2.相激磁方式。如表5.2。manner cntini cntinc angledncntdec 00
12、 angle=2n+1时1angle=2n 时0 -2 2 01 0 -2 2 10 -1 -2 2 11 0 -1 1 表5.2 dir为1时5.5 步进电机步进移动与定位控制模块该模块的主要功能是利用赋初值ini将数值传到该模块中并配合输入的clk作为同步控制信号,进行步进电机的步进移动与定位控制。步进电机定位功能通过一个减法器实现:在每个clk脉冲上升缘,设定步进角倍数angledncount 减去不同激磁方式下设定的累减记数值angledncntdec,判断差值小于设定的累减记数时,步进电机旋转到预定角度停止输出驱动端口信号,实现步进电机的定位功能。驱动端口信号利用累加器实现。5.6
13、编码输出模块该模块的功能是将count与angledncount产生的数值经过编码,并通过baba3downto0输出到步进电机。6 程序设计与仿真library IEEE。use IEEE.std_logic_1164.all。use IEEE.std_logic_arith.all。use IEEE.std_logic_unsigned.all。entity step_motor isport (reset:in STD_LOGIC。 -系统复位信号 dir: in STD_LOGIC。 -方向控制信号 clk: in STD_LOGIC。 -系统时钟信号 ini: in STD_LOGI
14、C。 -初始化使能信号 manner: in STD_LOGIC_VECTOR (1 downto 0。 -激磁方式的选择开关 angle: in INTEGER range 255 downto 0。 -步进角的倍数设定输入 baBA: out STD_LOGIC_VECTOR (3 downto 0。 -步进电机状态输出end step_motor。architecture stepmotor_arch of step_motor issignal count: INTEGER range 0 to 7。 -计数器signal cntInc: INTEGER range -2 to 2。
15、-设定累加器所需的累-, ini begin -if ini=1 then cc。 if dir=0 then case cc is when 1 = - 1-相激励 -count=0。 cntIni=0。 cntInc=2。 angleDnCntDec - 2-相激励 -count=7。 cntIni=-1。 cntInc=2。 angleDnCntDec - 1-2相激励 -count=0。 cntIni=0。 cntInc=1。 angleDnCntDec -manner=00 autodetect if (angle rem 2 =1 then - 2-相激励 -count=7。 cn
16、tIni=-1。 cntInc=2。 angleDnCntDec=2。-10。 else - 1-相激励 -count=0。 cntIni=0。 cntInc=2。 angleDnCntDec - 1-相激励 -count=0。 cntIni=0。 cntInc=-2。 angleDnCntDec - 2-相激励 -count=7。 cntIni=-1。 cntInc=-2。 angleDnCntDec - 1-2相激励 -count=0。 cntIni=0。 cntInc=-1。 angleDnCntDec -manner=00 autodetect if (angle rem 2 = 1
17、then - 2-相激励 cntIni=-1。 cntInc=-2。 angleDnCntDec=2。-10。 else - 1-相激励 cntIni=0。 cntInc=-2。 angleDnCntDec begin if reset=1 then count=0。 angleDnCount=0。 elsif clkevent and clk=1 then if ini=0 then count=0+cntIni。 angleDnCount=angle。 else count angleDnCntDec then angleDnCount = angleDnCount-angleDnCntD
18、ec。 else angleDnCount = 0。 end if。 end if。 end if。 end process。 baBA =7。end stepmotor_arch。7 仿真结果图7.1 编译结果图7.2 时序仿真部分结果图7.3 时序仿真结果8 实验总结本文所设计的步进电机控制系统实现简单,编程容易,所设计系统实现了对电机模组的预定控制,较好的完成了设计要求。采用Verilog和FPGA设计,能够缩短设计周期,并使设计易于调试、实现。在系统需升级时,仅需对FPGA模块再设计,成本较低。从仿真结果来看,利用FPGA芯片严谨的基于硬件的编程语言和精确的时间控制特点,准确地实现了精
19、确定位功能,并利用直接频率合成理论中的相位累加器的原理同时实现了对步进电机的运行速度的精确控制。实践证明,这种方法定位准确,控制速度精确,是一种行之有效的方案。参考文献1 通信原理樊昌信张甫翊徐炳祥吴成柯著国防工业出版社 2009.12 EDA技术使用教程VHDL版潘松黄继业编著科学出版社 2018.6本科生课程设计成绩评定表姓名性别专业、班级课程设计题目:步进电机定位控制系统设计课程设计答辩或质疑记录:1、步进电机的拍数是指什么?答:拍数指完成一个磁场周期性变化所需脉冲数或导电状态用n 表示,或指电机转过一个齿距角所需脉冲数。以四相电机为例,有四相四拍运行方式即AB-BC-CD-DA-AB,四相八拍运行方式即A-AB-B-BC-C-CD-D-DA-A。2、各个输入信号的作用是什么?答:reset:系统内部复位信号,1时有效;dir:步进电机正反转的方向控制开关,0:逆时针,1:顺时针;clk:由FPGA内部提供的4MHz的时钟信号;ini:赋初值的使能开关,0时有效;manner:激磁方式的选择开关(两位, 00:自动检测角度输入,决定激磁方式01:1-相激磁。10:2.相激磁。11:1-2.相激磁. angle:步进角的倍数设定输入键.成绩评定依据:最终评定成绩以优、良、中、及格、不及格评定)指导教师签字:年月日
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1