步进电机:
步进电机控制系统设计
一、 任务和目的
利用PC机和实验箱设计并实现给定步进电机的控制 进一步掌握微机硬件和软件综合设计方法。 二、 内容和要求 1.基本要求
控制步进电机转动,要求转速1步/秒 基于实验箱,设计并实现接口和驱动电路 用汇编语言编制程序 2.提高要求
(1)改善步进电机的控制性能,控制步进电机转/停;正转/反转;改变转速(至少3档);单步。
(2)改善人机接口 三、 实验报告要求 (1)实验目的和内容 (2)总体设计
(3)硬件设计:原理图(接线图)及简要说明 (4)程序框图和清单 (5)实验结果和体会
附:步进电机控制波形及参考驱动电路
AB BC CD DA A B
C 步进电机引脚: 1 2 3 4 5 地 A C B D D
一个周期(4拍)
步进电机控制系统设计
一、 四相步进电机工作原理
步进电机是机电一体化的关键部件之一,被广泛应用于需要精确定位、同步、行程控制等场合。
本设计所采用的是国产20BY-0型步进电机,它使用+5V直流电源,步距角为18度。电机线圈由四相组成,即A、B、C、D四相,驱动方式为二相激磁方式,电机示意图和各线圈通电顺序如图1和表4.1所示:
A 1 0 0 1
图 1 步进电机原理图
表1
B 1 1 0 0
C 0 1 1 0
D 0 0 1 1
相顺序 0 1 2 3
相顺序从0到1称为一步,电机轴将转过18度,0?1?2?3?4则称为通电一周,转轴将转过72度,若循环进行这种通电一周的操作,电机便连续的转动起来,而进行相反的通电顺序如4?3?2?1将使电机同速反转。通电一周的周期越短,即驱动频率越高,则电机转速越快,但步进电机的转速也不可能太快,因为它每走一步需要一定的时间,若信号频率过高,可能导致电机失步,甚至只在原步颤动。 二、 总体设计
(1) 8253定时控制步进速度
(2) 8255输出控制脉冲,再经75452驱动电机。
(3) 系统运行时,首先显示主菜单,选择子菜单(设置参数)或控制工作,或返回
DOS。
三、硬件设计
因采用了PC机和PC总线接口应用平台,硬件电路相对简单,除利用了PC机本身资源外(如中断资源),还利用了平台上的8253计数/定时器、8255并行接口单元,再加上外围驱动电路,便构成可步进电机控制电路,硬件原理图如图2:
图2 硬件原理图
图中75452元件是正与非驱动器,OC门输出,所以加上拉电阻;8253的作用是输出定时信号向CPU申请中断要求输出电机走步的控制信号。 四、 软件设计
本设计通过软件编程使8253输出定时信号申请中断,CPU发出命令由8255的下C口输出脉宽信号来控制步进电机的走步。电机的转动和停止则是通过8255的A0端子输出高低电平来继续或暂停8253的计数从而控制中断申请来实现的。8253的定时时间决定了电机转动的快慢。相对简单的硬件电路,使软件设计成为本设计课题的中心内容。
1、 设计思路
控制系统分五个功能模块,分别是转速设置、转向设置、固定步数转动、连续转动、退出系统,在前四个功能块中都设置了ESC键来取消或暂停执行当前操作。程序中同时提供五个操作界面,一个主菜单和四个子菜单界面,进行可视控制。
(1)转速设置
根据赋给计数器的计数初值,我们可以计算出步进电机各相脉宽信号的频率和电机转速,也可以反过来根据对电机转速要求,计算并调整计算初值。
这里采用的是8253的0号计数器和方波产生方式,输入时钟为f=46875hz,设计数初值为n,要求转速为0.25转/秒,对四相步进电机而言即为5步/秒,则有:
f / n = 5
n=f/5=46875/5=9375
反过来,当计数器初值确定时,决定了电机的转速,如计数初值为0时,有电机转速为1步每秒(本设计中最慢速度);当计数初值为125时,电机转速为375步每秒(本设计中最快速度)。具体设置初值及转速见表2。
表2
步速 1 3 5 15 25 75 125 375
(2)转向设置
在内存单元中设置一方向标志FLAG1,假设FLAG1为0时为顺时针转向,则当设置FLAG1不为0时即可使电机转逆时针转动。判断操作在中断子程序中进行。
(3)连续转动设置 在此功能模块中,通过让8255的A0口输出高电平到8253的GATE0使其0号计数器继续工作(平常时A0口为低电平使8253的0号计数器暂停计数),并开放中断进入循环等待中断状态,在等待状态中若有键盘的‘ESC’键按下,则认为暂停要求而关闭中断和暂停8253计数回到主菜单。需要继续原转向原速度运行,再选择此功能模块即可。
(4)固定步数转动设置
通过键盘输入0到999的十进制值来设定转动步数。判断已转步数即中断次数是这样实现的,设置一内存单元FLAG0,中断时在中断子程序中求反,而在循环等待中断的程序中判断其有无变化,无变化继续循环,有变化则使计数寄存器CX减1后继续循环,当CX=0时退出等待中断状态,并关中断和暂停8253计数。在这个等待程序中也判断键盘有无ESC键按下,若有则认为暂停要求而退出。
(6)中断子程序
在中断子程序中,将值为11001100B的内存单元循环左移或右移一位,通过8255的下C口输出低四位,控制步进电机的相序变化,从而使电机连续转动。左移或右移将使电机顺时针或逆时针转动,它由标志FLAG1来决定。
(7)菜单界面设置
利用DOS下的BIOS功能调用,设计出彩色的形象而又易于操作的界面,详细设计特点请参考附录程序清单。
2、 程序流程图
(1)主程序框图如图3
转速 0.05 0.15 0.25 0.75 1.25 3.75 6.25 18.75
按键 F1 F2 F3 F4 F5 F6 F7 F8
计数初值 46875 15625 9375 3125 1875 625 375 125
图3 主程序框图
(2)中断服务子程序框图如图4
图4 中断服务子程序框图
(3)速度设置自程序和方向设置单元程序的流程比较简单,这里不在介绍,详见设计思路和程序清单。