步进电机控制方法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第四节 步进电机的控制与驱动

步进电机的控制与驱动流程如图4-11所示。主要包括脉冲信号发生器、环形脉冲分配器和功率驱动电路三大部分。

步进脉冲

方向电平

图4-11 步进电机的控制驱动流程

二、步进电机的脉冲分配

环形分配器是步进电机驱动系统中的一个重要组成部分,环形分配器通常分为硬环分和软环分两种。硬环分由数字逻辑电路构成,一般放在驱动器的内部,硬环分的优点是分配脉冲速度快,不占用CPU的时间,缺点是不易实现变拍驱动,增加的硬件电路降低了驱动器的可靠性;软环分由控制系统用软件编程来实现,易于实现变拍驱动,节省了硬件电路,提高了系统的可靠性。

1.采用硬环分时的脉冲分配

采用硬环分时,步进电机的通电节拍由硬件电路来决定,编制软件时可以不考虑。控制器与硬环分电路的连接只需两根信号线:一根方向线,一根脉冲线(或者一根正转脉冲线,一根反转脉冲线)。假定控制器为AT89S52单片机,晶振频率为12MHz,如图4-18:P1.0输出方向信号,P1.1输出脉冲信号。

则控制电机走步的程序如下:

(1)电机正转100步

MOV 0FH,#100D ;准备走100步

CONT1: SETB P1.0 ;正转时P1.0=1

CLR P1.1 ;发步进脉冲的下降沿(设驱动器对于脉冲的下降沿有效)

NOP ;延时(延时的目的是让驱动电路的光耦充分导通)

NOP ;延时(根据驱动器的需要,调整延时)

SETB P1.1 ;发步进脉冲的上升沿

MOV 0EH,#4EH ;两脉冲之间延时20000μs(决定电机的转速)

MOV 0DH,#20H ;20000的HEX码为4E20

CALL DELAY ;调用延时子程序

DJNZ 0FH,CONT1 ;循环次数减1后,若不为0则继续,循环100次

RET

(2)电机反转100步

MOV 0FH,#100D ;准备走100步

CONT2: CLR P1.0 ;反转时P1.0=0

CLR P1.1 ;发步进脉冲的下降沿(设驱动器对于脉冲的下降沿有效)

NOP ;延时(延时的目的是让驱动电路的光耦充分导通)

NOP ;延时(根据驱动器的需要,调整延时)

SETB P1.1 ;发步进脉冲的上升沿

MOV 0EH,#4EH ;两脉冲之间延时20000μs (决定电机的转速)

MOV 0DH,#20H ;20000的HEX 码为4E20

CALL DELAY ;调用延时子程序 DJNZ 0FH,CONT2 ;循环次数减1后,若不为0则继续,循环100次

RET

2.采用软环分时的脉冲分配

如图4-19所示,该系统基于AT89S52单片机,利用扩展的可编程接口芯片8255A 的PB 口送出步进脉冲信号,经过驱动放大后,分别控制X 轴、Z 轴两个三相六拍反应式步进电机激磁绕组的通电顺序,以控制刀架在X、Z 两个方向的运动。

根据步进电机的工作原理,只要不断改变绕组的通电状态,步进电机即按规定的方向运转。软件分配脉冲采用查表法,按正向运转的通电顺序(如图4-20所示),列出各相绕组的脉冲分配表(如表4-11所示,表中“0”表示通电)。每个电机设置一个指针寄存器,初始化时使指针指向分配表的表首。步进电机需要正向运行一步时,指针下移一行,同时输出该行的状态,当指针超出分配表表尾时自动回到表首;步进电机反向运行时,指针上移一行,并输出该行的脉冲值,当指针超出表首时又自动回到表尾。

表4-11 步进电机绕组通电顺序表

图4-19 软环分时的绕组通电布置

正 转 反 转

图4-20 步机电机正、反转时的绕组通电顺序(三相六拍方式)

电机绕组通电顺序 地 址 指 针 代 码 选通信号 A B C MOTB+1 1 0BH 1 0 1 1 MOTB+2 2 09H 1 0 0 1 MOTB+3 3 0DH 1 1 0 1 MOTB+4 4 0CH 1 1 0 0 MOTB+5 5 0EH 1 1 1 0 MOTB+6 6 0AH 1 0 1 0

设R6、R7分别为X、Z向电机的指针寄存器,正常情况下R6与R7的取值应在1~6之间(六拍之一)。 则Z向电机脉冲分配的具体程序如下(采用MCS-51汇编语言)。

BDZ1P: INC R7 ;Z向电机正转一步(若DEC R7,则反转一步)

OTZ: CJNE R7,#07H,AA0

MOV R7,#01H ;指针超出分配表的表尾(R7=#07H)时,自动回到表首(R7=#01H)

JMP AA1

AA0: CJNE R7,#00H,AA1

MOV R7,#06H ;指针超出分配表的表首(R7=#00H)时,自动回到表尾(R7=#06H)AA1: MOV DPTR,#MOTB ;16位数据指针指向脉冲分配表的首地址

MOV A,R7 ;Z向指针送给A

MOVC A,@A+DPTR ;查表取出Z向电机绕组通电状态,存于A

MOV B,A ;再送寄存器B中暂存

MOV A,R6 ;取X向指针送给A

MOVC A,@A+DPTR ;查表取出X向电机绕组通电状态,送给A

SWAP A ;将A的高4位与低4位交换,之后,低4位全为0

ADD A,B ;A与B相加后,A的高4位为X通电状态,低4位为Z通电状态

ANL A,#11110111B

;将A的D3位置0,选择Z向电机输出,X电机保持原有通电状态 MOV DPTR,#2FFDH;8255A的PB 口地址

MOVX @DPTR,A ;同时输出X、Z向电机绕组通电状态至8255A的PB口

RET ;X向电机转子保持不动,Z向电机转子转过一拍

MOTB: DB 0FH ;不用 (地址:MOTB+0)

DB 0BH ;A相通电 (地址:MOTB+1)

DB 09H ;AB相通电 (地址:MOTB+2)

DB 0DH ;B相通电 (地址:MOTB+3)

DB 0CH ;BC相通电 (地址:MOTB+4)

DB 0EH ;C相通电 (地址:MOTB+5)

DB 0AH ;CA相通电 (地址:MOTB+6)

设Z向电机连续运转100步,则走步程序为:

MOV 0FH,#100D ;100步

CONT3: CALL BDZ1P ;Z向电机走一步(调用上述的脉冲分配子程序)

MOV 0EH,#4EH ;两脉冲之间延时20000μs(决定电机的转速)

MOV 0DH,#20H ;20000的HEX码为4E20

CALL DELAY ;相邻步之间的延时(决定电机的转速)

DJNZ 0FH,CONT3 ;循环次数减1后,若不为0则继续,循环100次

RET

X向电机的脉冲分配程序与走步程序同Z向相似,在此不再赘述。

从上面的分析可以看出,采用软件来分配步进电机的走步脉冲时,对于每台电机,控制系统硬件电路需要的输出口数目,取决于步进电机的相数,至于节拍的分配方式(大步或小步),则要根据使用要求来决定。由于采用了软环分,只需改变部分软件,即可实现变拍驱动。

相关文档
最新文档