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