RTCrpUDGiT
步进电机的步进原理
步进电机是一种用电脉冲信号进行控制,并将电脉冲信号转换成相应的角位移或线位移的控制电动机。
说通俗点,就是给一个电脉冲,步进电动机就转动一个角度或者前进一步,因此,步进电机也称脉冲电动机。
步进电机区别于其他控制电机的最大特点是,它是通过输入脉冲信号来进行控制的,即电机的总转动角度由输入脉冲数决定,而电机的转速由脉冲信号频率决定。
步进电机是数字控制电机,它将脉冲信号转变成角位移,因此非常适合于单片机控制。
步进电机的角位移或线位移量与电脉冲个数成正比,它的转速或线速度与电脉冲频率成正比。
在负载能力范围内这些关系不因电源电压、负载大小、环境条件的波动而变化。
通过改变脉冲频率的高低可以在很大范围内实现步进电机的调速,并能进行快速启动、制动和反转。
5PCzVD7HxA
L298N的原理
L298N是ST公司生产的一种高电压、大电流电机驱动芯片。
该芯片采用15脚封装。
主要特点是:
工作电压高,最高工作电压可达46V;输出电流大,瞬间峰值电流可达3A,持续工作电流为2A;内含两个H桥的高电压大电流全桥式驱动器,可以用来驱动直流电动机和步进电动机、继电器线圈等感性负载;采用标准逻辑电平信号控制;具有两个使能控制端,在不受输入信号影响的情况下允许或禁止器件工作有一个逻辑电源输入端,使内部逻辑电路部分在低电压下工作;可以外接检测电阻,将变化量反馈给控制电路。
使用L298N芯片驱动电机,该芯片可以驱动两个二相电机,也可以驱动一个四相电机,可以直接通过电源来调节输出电压;并可以直接用单片机的I/O口提供信号;而且电路简单,使用比较方便。
jLBHrnAILg
L297的原理
L297芯片是具有20个引脚的双列直插式塑胶封装的步进电动机控制器(包括集成的硬件环形分配器>。
它可产生四相驱动信号,能用半步(八拍>和全步(四拍>等方式驱动单片机控制两相双极或四相单极步进电机。
该芯片内部的PWM斩波器允许在关模式下控制步进电动机绕组电流,由于相序信号也是由内部产生的,因此它只需要时钟、方向和模式输入信号便能控制步进电动机,可减轻微处理器和程序设计的负担。
L297单片步进电动机控制器集成电路的核心是脉冲分配器,L297还设有两个PWM斩波器来控制线绕组电流,实现恒流斩波控制,以获得良好的转矩—-频率特性。
适用于双极性两相步进电动机或单极性四相步进电动机的控制。
L297只需从上位机接受方向(正/反转>,模式(半步/基本步距>,时钟(步进脉冲>3个输入信号。
它产生3种相序的信号,对应于3种不同的工作方式:
半步方式(四相八拍>;基本步距,单相激励方式(单相四拍>;基本步距,两相激励方式(两相两拍>。
其工作方式输出的波形如图4~6所示,初状态(HOME>是ABCD=0101。
L297是20脚双列直插式塑料封装,常以+5V供电。
该单片步进电机控制器集成电路的核心是脉冲分配器,L297还设有两个PWM斩波器来控制绕组电流,实现恒流斩波控制,以获得良好的转矩-频率特性,实用于双极两相步进电机或者单极四相步进电机的控制。
xHAQX74J0X
步进电机起动及加/减速控制
速度控制中加/减控制是最基本的控制。
电机由静止到达设定的最大的速度所需的时间是由调试决定的。
加速度太大,电机甚至不能克服惯性而失步,加速度太少,则完成指定的运动耗费时间太多,LDAYtRyKfE
加速度有两中方案:
线性加/减速度控制和等步距加/减速度控制。
前者规定从加速度开始,每一加速度周期指令电机速度递增相同的增量△f;后者则是要求每一加速度周期电机走过相同的步数。
等步距加/减速度控制的优点,在于加/减过程中电机走的步数可以非常精确的计算,这一点对于加/减的位置控制非常重要,但从电机要克服惯性力来看,线性加速方案好些。
调试也方便。
线性加/减控制曲线如下图:
Zzz6ZB2Ltk
线性加速控制曲线
f=(f2-f1>/n,其中n为加速过程的台阶数,减速控制也类似,只是△f为负值。
步进电动机的最高起动频率<突跳频率)一般为0.1KHz到3-4KHz,而最高运行频率则可以达到N*102KHz。
以超过最高起动频率的频率直接起动,将出现"失步"现象,甚至无法起动。
较为理想的起动曲线,应是按指数规律起动。
但实际应用对起动段的处理可采用直线拟合的方法,即"阶梯升速法"。
可按两种情况处理,①已知突跳频率则按突跳频率分段起动,分段数n=f/fq。
②未知突跳频率,则按段拟合至给定的起动频率,每段频率的递增量<后称阶梯频率)△f=f/8,即采用8段拟合。
在运行控制过程中,将起始的速度<频率)分为n分作为阶梯频率,采用"阶梯升速法"将速度连续升到所需要的速度,然后锁定,按预置的曲线运行。
如<图9)所示。
dvzfvkwMI1
用单片机实现步进电机的加/减速控制,实际上就是控制发脉冲的频率,升速时,使脉冲频率增高,减速时相反。
如果使用定时中断来控制电机的速度,加减速控制就是不断改变定时器的初值。
速度从V1→V2如果是线性增加,则按给定的斜率升/降速;如果是突变,则按"阶梯升速法"处理。
在此过程中要处理好两个问题:
rqyn14ZNXI
①速度转换时间应尽量短;为了缩短速度转换的时间,可以采用建立数据表的方法。
结合各曲线段的频率和各段间的阶梯频率便可以建立一个连续的数据表,并通过转换程序将其转换为定时初值表。
通过在不同的阶段调用相应的定时初值,控制电机的运行。
定时初值的计算是在定时中断外实现的,并不占用中断时间,保证电机的高速运行。
EmxvxOtOco
②保证控制速度的精确性;要从一个速度准确达到另外一个速度,就要建立一个校验机制,以防超过或未达到所需速度。
SixE2yXPq5
阶梯升速起动
步进电机的换向控制
一般来说,驱动器的输入共有3路,它们是:
步进脉冲信号CP、方向电平DIR、脱机信号FREE。
它们在驱动器内部分别通过限流电阻接入光藕的负输入端,且电路形式完全相同,在这三路输入信号的共同的控制下,驱动器将输入合适的电流来控制步进电机完成指定的操作。
另外,驱动器一般有一个接入端OPTO,该端口为三路信号的公共正端。
三路输入信号在驱动器内部接成共阳方式,所以OPTO端须接外部系统的VCC,并在需要的情况下加限流电阻R,保证驱动器内部光藕提供合适的驱动电流。
6ewMyirQFL
①步进脉冲信号CP
步进脉冲信号CP用于控制步进电机的位置与速度,也就是说:
驱动器每接受一个CP脉冲就驱动步进电机一个旋转的步距角,CP脉冲的频率改变则会使步进电机的转速改变,控制CP脉冲的个数,则可以使步进电机精确定位。
kavU42VRUs
②方向电平DIR
方向电平信号DIR用于控制步进电机的旋转方向,此端为高电平时,电机一个转向,此端为低电平时,电机转向另外一个方向,电机转相必须在电机停机后进行,并且换向信号一定要在前一个方向的最后一个CP脉冲结束后以及下一个方向的第一个脉冲前发出。
y6v3ALoS89
③脱机电平信号FREE
当驱动器上电后,步进电机处于锁定状态<未施加CP脉冲时)或者运行状态<施加CP脉冲时),但当用户想手动调整电机而又不想关闭驱动器电源,这时就可以用到此信号,当此信号起作用时<低电平有效),电机处于自由无力矩状态,当此信号为高电平时或悬空不接时,取消脱机状态。
此信号用户可选用,如果不需要此功能,此端不接即可。
M2ub6vSTnP
步进电机换向时,一定要在电机降速停止或降到突跳频率范围之内再换向,以免产生较大的冲击而损坏电机。
换向信号一定要在前一个方向的最后一个CP脉冲结束后以及下一个方向的第一个CP脉冲前发出。
如(图10>所示。
对于CP脉冲的设计主要要求其有一定的脉冲宽度<一般不小于5μs)、脉冲序列的均匀度及高低电平方式。
在某一高速下的正、反向切换实质包含了降速→换向→升速三个过程。
0YujCfmUCw
转向信号起作用的时刻
步进电机的位置控制
步进电机的位置控制是指要求电机从当前位置转过一个给定的步数。
电机不丢步数这一控制的实际。
就是要求精确地发出定量的步进脉冲,例如,机器人再现工作时的启动信号后,要走到示教时给出的初始作业位置,就是用到位置控制。
不过不带加/减速控制,位置控制很容易实现的。
将发给电机的脉冲,用计数器通道计数,到最后通过CPU停发脉冲就是了。
但是这种不带加/减速的位置控制,除非速度特别低,否则会在起停时造成器械冲击、失步。
图11示出了带加减速控制的速度曲线,此曲线、跟T轴间包含的面积正比于电机走过的步数S∑,显然,电机走过的总步数S∑由三部分构成:
加速阶段电机走的步数向阶梯段电机走过的步数和减速阶段电机走的步数。
eUts8ZQVRd
位置控制速度曲线
系统的设计思路
本设计的目的是实现单片机能同时实现3台或3台以上步进电机的起/停、转向、加/减速和位置控制。
在熟悉好各芯片的性能特点后,接下来就是分配好各芯片的控制任务。
sQsAEJkW5T
单片机主要完成脉冲的分配,使步进电机按照设定的方式运转,通过程序设定,从单片机的I/O口输出一系列有规律的脉冲信号;由于直接输出的脉冲信号驱动功率有限,很难直接驱动步进电机运转,所以必须经过驱动器进行脉冲放大,本设计采用的L297与L298N芯片能解决这个问题,它可以驱动两个二相电机,也可以驱动一个四相电机。
但是如果要实现多台步电机控制的设计,就不仅要重新分配好I/O资源,还要增加相应驱动芯片的数量。
再利用单片机程序分配好控制字的存储单元,以及相应的内存地址赋值,使单片机能控制步进电机的起停、换向顺序、速度和位置变化。
GMsIasNXkA
系统的设计框架
L297、L298N与电机的电路设计
系统的总电路设计此电路由一块STC89C51,3块L297、3块L298N、3台4相4拍步进电机器以及相关的电路组成。
利用单片机3个并行I/O口的部分引脚以同样的方式,连接另外两台电机的控制电路。
TIrRGchYzg
系统的总电路设计图
步进电机的转向控制任务
①判断旋转方向;
②按顺序送出控制字;
③判断字是否送完。
四相四拍控制程序的设计方法步进电动机所要走的步数在R4中,转向标志存放在程序状态寄存器PSW的用户标志位F当F0=0时,步进电动机正转,当F0=1时,步进电动机反转。
正反转控制字存放在单元见表1中。
7EqZcWLZNX
表1 反转控制字存放单元
节拍
通电顺序
控制字
正转
反转
二进制
十六进制
1
4
A
00000001
01
2
3
B
00000010
02
3
2
C
00000100
04
4
1
D
00001000
08
表2 正反转的内存地址赋值
控制字
内存字节地址
正转
01H
02H
04H
08H
00H
20H
21H
22H
23H
24H
反转
08H
04H
02H
01H
00H
25H
26H
27H
28H
00H
7.2步进电机的运行控制
在升、降频率过程中,考虑到步进电机的惯性,要求每改变一次频率,需持续运行一定的步数,称频率阶梯步长,采用直线方式,频率阶梯步长的值为常数,由初始启动频率到恒速运行频率的阶梯步长数,称为频率的阶梯数。
编写这段程序作如下标明:
lzq7IGf02E
①利用定时器T0延时,起初值存放在EPROM存储器的同一页面中。
上半页面为升频段,定时器初值由大变小;下半页面为降频段,定时器初值由大变小。
降频是升频的逆过程。
zvpgeqJ1hk
②步进电机的运行控制标志位定义见下表3:
表3 步进电机的运行控制标志位
位地址
标志内容
70H
运行方式:
0恒速,1变速
71H
变速方式:
0降频,1升速
72H
恒速转向:
0正转,1反转
73H
升速转向:
0正转,1反转
74H
降速转向:
0正转,1反转
75H
程序结束标志:
02表示程序结束
③运行控制初值分配见表4
表4 运行控制初值分配
字节地址
存储内容
1AH
频率阶梯步长计数器R2的值
1BH
频率阶梯步长计数器R3的值
1CH
恒速段步长低8位
1DH
恒速段步长高8位
1EH
恒速段T0初始值低8位
1FH
恒速段T0段高8位
转速流程框图及相应的程序
步进电机转速控制可由程序延时来完成,也可由定时器延时来完成,相应的程序如下:
PUSH A ;保护现场
MOV R4,#N ;设置步长计数器
CLR C ;转向标志为1,转移
ORL C,D5H
JC ROTE
MOV R0,#20H ;正转控制字首址
AJMP LOOP
ROTE:
MOV R0,27H ;反转控制字首址NrpoJac3v1
LOOP:
MOV A,@R0
MOV P1,A ;输出控制脉冲
ACALL DLY ;调用延时程序
INC R0 ;控制字存储地址增1
MOV A,#00H
. ORL A,@R0 ;是结束标志转移1nowfTG4KI
JZ TPLLOOP1:
DJNZ R4,LOOP ;步数不为0,转移fjnFLDa5Zo
POP A
RER
TPL:
MOV A,R0 ;恢复控制字首址
CLR C
SUBB A,#06H
MOV R0,A
AJMPLOOP1
DLY:
MOV R2,#M
DLY1:
MOV A,#M1
LOOP:
DEC A
JNZ LOOP
DJNZ R2,DLY1
RET
7.4 变频调速程序与相应的流程图
主程序:
ORC 0000H
SJMP START
ORG 000BH
LJMP INT0
ORG 0030H
START:
MOV DPTR,addr16 。
T0初值地址指针tfnNhnE6e5
MOV R3,1BH ;赋频率阶梯记数器值
MOV R2,1AH ;赋阶梯步长计数器值
CLR C
ORL C,73H
JC ROTE
MOV R0,#20H ;正转控制字首址
AJMP PH
ROTE:
MOV R0,#27H ;反转控制字首址HbmVN777sL
PH:
MOV TMOD,#01H ;T0方式1定时V7l4jRB8Hs
MOV TL0,#00H ;置T0初值
MOV TH0, #00H
SETB TR0 ;启动T0
SETB ET0 ;允许T0中断
LOOP:
MOV A,R3 ;等待中断83lcPA59W9
JNZ LOOP
CLR EA ;CUP关中断
SJMP $ ;结束
中断服务程序:
INT0:
PUSH A ;保护现场mZkklkzaaP
MOV A,@R0
MOV P1,A
INC R0
MOV A,#00H
ORL A,@R0
JZ TPL ;是结束标志,转
RR:
DEC R2 ;步长计数器减1AVktR43bpw
MOV A,#00H
ORL A,R2
JZ THL ;阶梯步长计数器为0,转
PRL:
CLR C
CLR C,71H
JNC ROTEL ;是降频,转移
MOV A,#00H
MOVC A,@A+DPTR
MOV TL0,A ;升频T0赋初值低8位
MOV A,#01H
MOVC A,@A+DPTR
MOV TH0,A ;升频T0赋初值高8位
AJMP QQ
ROTEL:
MOV A,#80H