单片机控制步进电机驱动器工作原理
时间:2007-10-17 来源: 作者:刘迎春 牟金秀 点击:3992 字体大小:【大 中 小】
步进电机在控制系统中具有广泛的应用。它可以把脉冲信号转换成角位
移,并且可用作电磁制动轮、电磁差分器、或角位移发生器等。有时从一些旧设备上拆下的
步进电机(这种电机一般没有损坏)要改作它用,一般需自己设计驱动器。本文介绍的就是
为从一日本产旧式打印机上拆下的步进电机而设计的驱动器。
本文先介绍该步进电机的工作原理,然后介绍了其驱动器的软、硬件设计。
1. 步进电机的工作原理
该步进电机为一四相步进电机,采用单极性直流电源供电。只要对步进电机的各相绕组
按合适的时序通电,就能使步进电机步进转动。
图 1 是该四相反应式步进电机工作原理示意图
图 1 四相步进电机步进示意图
开始时,开关 SB 接通电源,SA、SC、SD 断开,B 相磁极和转子 0、3 号齿对齐,同时,
转子的 1、4 号齿就和 C、D 相绕组磁极产生错齿,2、5 号齿就和 D、A 相绕组磁极产生错
齿。
当开关 SC 接通电源,SB、SA、SD 断开时,由于 C 相绕组的磁力线和 1、4 号齿之间磁
力线的作用,使转子转动,1、4 号齿和 C 相绕组的磁极对齐。而 0、3 号齿和 A、B 相绕组
产生错齿,2、5 号齿就和 A、D 相绕组磁极产生错齿。依次类推,A、B、C、D 四相绕组轮
流供电,则转子会沿着 A、B、C、D 方向转动。
四相步进电机按照通电顺序的不同,可分为单四拍、双四拍、八拍三种工作方式。单四
拍与双四拍的步距角相等,但单四拍的转动力矩小。八拍工作方式的步距角是单四拍与双四
拍的一半,因此,八拍工作方式既可以保持较高的转动力矩又可以提高控制精度。
单四拍、双四拍与八拍工作方式的电源通电时序与波形分别如图 2.a、b、c 所示:
a. 单四拍
八拍
图 2.步进电机工作时序波形图
b. 双四拍
c
2.基于 AT89C2051 的步进电机驱动器系统电路原理
步进电机驱动器系统电路原理如图 3:
图 3 步进电机驱动器系统电路原理图
AT89C2051 将控制脉冲从 P1 口的 P1.4~P1.7 输出,经 74LS14 反相后进入 9014,经 9014
放大后控制光电开关,光电隔离后,由功率管 TIP122 将脉冲信号进行电压和电流放大,驱
动步进电机的各相绕组。使步进电机随着不同的脉冲信号分别作正转、反转、加速、减速和
停止等动作。图中 L1 为步进电机的一相绕组。AT89C2051 选用频率 22MHz 的晶振,选用
较高晶振的目的是为了在方式 2 下尽量减小 AT89C2051 对上位机脉冲信号周期的影响。
图 3 中的 RL1~RL4 为绕组内阻,50Ω电阻是一外接电阻,起限流作用,也是一个改善回
路时间常数的元件。D1~D4 为续流二极管,使电机绕组产生的反电动势通过续流二极管
(D1~D4)而衰减掉,从而保护了功率管 TIP122 不受损坏。
在 50Ω外接电阻上并联一个 200μF 电容,可以改善注入步进电机绕组的电流脉冲前沿,
提高了步进电机的高频性能。与续流二极管串联的 200Ω电阻可减小回路的放电时间常数,
使绕组中电流脉冲的后沿变陡,电流下降时间变小,也起到提高高频工作性能的作用。
3.软件设计
该驱动器根据拨码开关 KX、KY 的不同组合有三种工作方式供选择:
方式 1 为中断方式:P3.5(INT1)为步进脉冲输入端,P3.7 为正反转脉冲输入端。上位机(PC
机或单片机)与驱动器仅以 2 条线相连。
方式 2 为串行通讯方式:上位机(PC 机或单片机)将控制命令发送给驱动器,驱动器根据
控制命令自行完成有关控制过程。
方式 3 为拨码开关控制方式:通过 K1~K5 的不同组合,直接控制步进电机。
当上电或按下复位键 KR 后,AT89C2051 先检测拨码开关 KX、KY 的状态,根据 KX、KY 的
不同组合,进入不同的工作方式。以下给出方式 1 的程序流程框图与源程序。
在程序的编制中,要特别注意步进电机在换向时的处理。为使步进电机在换向时能平滑过渡,
不至于产生错步,应在每一步中设置标志位。其中 20H 单元的各位为步进电机正转标志位;
21H 单元各位为反转标志位。在正转时,不仅给正转标志位赋值,也同时给反转标志位赋值;
在反转时也如此。这样,当步进电机换向时,就可以上一次的位置作为起点反向运动,避免
了电机换向时产生错步。
图 4 方式 1 程序框图
;20H 单元置初值,电机正转位置指针
;21H 单元置初值,电机反转位置指针
;P1 口置初值,防止电机上电短路
;T1 计数器置初值,开中断
方式 1 源程序:
MOV
MOV
MOV
MOV
MOV
MOV
SETB
SETB
SETB
SJMP
20H,#00H
21H,#00H
P1,#0C0H
TMOD,#60H
TL1,#0FFH
TH1,#0FFH
ET1
EA
TR1
$
;***********计数器 1 中断程序************
JB
;电机正、反转指针
IT1P:
;*************电机正转*****************
P3.7,FAN
JB
JB
JB
JB
JB
JB
JB
JB
00H,LOOP0
01H,LOOP1
02H,LOOP2
03H,LOOP3
04H,LOOP4
05H,LOOP5
06H,LOOP6
07H,LOOP7
LOOP0:
MOV
P1,#0D0H
MOV
MOV
AJMP
20H,#02H
21H,#40H
QUIT
LOOP1:
MOV
P1,#090H
MOV
MOV
AJMP
20H,#04H
21H,#20H
QUIT
LOOP2:
MOV
P1,#0B0H
MOV
MOV
AJMP
20H,#08H
21H,#10H
QUIT
LOOP3:
MOV
P1,#030H
MOV
20H,#10H
MOV
AJMP
21H,#08H
QUIT
LOOP4:
MOV
P1,#070H
MOV
MOV
AJMP
20H,#20H
21H,#04H
QUIT
LOOP5:
MOV
P1,#060H
MOV
MOV
AJMP
20H,#40H
21H,#02H
QUIT
LOOP6:
MOV
P1,#0E0H
MOV
MOV
AJMP
20H,#80H
21H,#01H
QUIT
LOOP7:
MOV
P1,#0C0H
MOV
MOV
AJMP
20H,#01H
21H,#80H
QUIT
;***************电机反转*****************
FAN:
08H,LOOQ0
JB
JB
JB
JB
JB
JB
JB
JB
09H,LOOQ1
0AH,LOOQ2
0BH,LOOQ3
0CH,LOOQ4
0DH,LOOQ5
0EH,LOOQ6
0FH,LOOQ7
LOOQ0:
MOV
P1,#0A0H
MOV
MOV
AJMP
21H,#02H
20H,#40H
QUIT
LOOQ1:
MOV
P1,#0E0H
MOV
MOV
AJMP
21H,#04H
20H,#20H
QUIT
LOOQ2:
MOV
P1,#0C0H
MOV
21H,#08H
MOV
AJMP
20H,#10H
QUIT
LOOQ3:
MOV
P1,#0D0H
MOV
MOV
AJMP
21H,#10H
20H,#08H
QUIT
LOOQ4:
MOV
P1,#050H
MOV
MOV
AJMP
21H,#20H
20H,#04H
QUIT
LOOQ5:
MOV
P1,#070H
MOV
MOV
AJMP
21H,#40H
20H,#02H
QUIT
LOOQ6:
MOV
P1,#030H
MOV
MOV
AJMP
21H,#80H
20H,#01H
QUIT
LOOQ7:
MOV
P1,#0B0H
MOV
MOV
21H,#01H
20H,#80H
QUIT:
RETI
END
4.结论
该驱动器经实验验证能驱动 0.5N.m 的步进电机。将驱动部分的电阻、电容及续流二极
管的有关参数加以调整,可驱动 1.2N.m 的步进电机。该驱动器电路简单可靠,结构紧凑,
对于 I/O 口线与单片机资源紧张的系统来说特别适用。