单片机实现多步进电机控制的设计
- 格式:pdf
- 大小:324.39 KB
- 文档页数:15
单片机实现多步进电机控制的设计
作者: 邹代好 导师: 周达林
摘要:本设计首先介绍了STC89C51单片机,L297和L298N驱动电路及
步进电机的基本原理与功能;其次,设计步进电机实现起停、转向、速度、位置
变化的控制方案;再次,在这些器件功能与特点的基础上,拟出设计思路,构建
系统的总体框架;最后利用PROTEL软件绘出电路图,同时写出设计系统的运
行流程和相关程序。整个系统通过写入单片机中的程序分配好控制字的存储单元
以及相应的内存地址赋值;启动系统后,从单片机的I/O口输出控制脉冲,经过
L297、L298N驱动电路对脉冲进行处理,输出能直接控制步进电机的脉冲信号。
在此基础上,重新分配I/O资源,同时增加驱动芯片L297、L298N的个数,在
负载能力范围允许内,就能实现多台步进电机独立起停、转向、速度、位置变化
的控制。
关键字:STC89C51单片机; L297; L298N; 步进电机
Design of the MCU to Realizes the Control of Many Stepping Motors
Abstract:The paper firstly introduces basic principles and functions of
STC89C51 MCU, L297 L298 N drive circuits and stepping motor, secondly
designs the control plan of stepping motor to realize starting and stopping,
turning around, speeding, and position changes, thirdly produces the thought
of design and builds the frame of system based on the principles and functions
of these components, lastly designs circuit diagram in PROTEL and lists the
operating process of design system and related programs. The whole system
distributes saved units and composes values accord to corresponding memory
addresses through the programs written in MCU. After starting the system, I/O
interface of MCU outputs control pulses, which are handled by L297 and
L298N drive circuits, then outputs pulse signals which can directly control
stepping motors. In this foundation, the MCU redistributes the I/O resources
and adds up the number of drive chips of L297 and L298N, in the meantime
the design can realize many stepping motors’ independent starting and
stopping, turning around, speeding, and position changes in the load's
capability.
Keywords:STC89C51MCU;L297;L298N; stepping motor
前言
步进电机是一种将电脉冲信号转换成相应角位移的控制电机。目前,数字技
术、计算机技术和永磁材料的迅速发展,推动了步进电机的发展。本设计针对目
前各个领域对自动化的需要,采用STC89C51单片机与L297,L298N驱动芯
片驱动多台步进电机同时独立工作,将它应用于各种复杂的控制领域,能使许多
半自动控制的系统完全成为真正的全自动,特别是用在机器人等领域,能极大的提高生产力和降低劳动强度。由于步进电机具有快速启动、精确步进和定位等特
点,因而在数控机床,绘图仪,打印机以及光学仪器中得到广泛的应用。
STC89C51单片机的特点
STC89C51系列单片机是宏晶科技推出的新一代超强抗干扰/高速/低功耗
的单片机,是MCS-51系列单片机的派生产品;它们在指令系统中、硬件系统
和片内资源与标准的8052单片机完全兼容,DIP-40封装系列与8051为
pin-to-pin兼容,指令代码是与8051完全兼容的单片机。STC89C51单片机具
有增强型12时钟/机器周期、6时钟机器/周期任意选择,工作电压为5.5V-3.4V
(5V单片机)/3.8V-2.0V(5V单片机);工作频率范围:0-40MHZ,相当于普
通8051的0-80MHZ。实际频率可达48MHZ。用户应用程序空间为
4K/8K/13K/16K/20K/32K/64K字节 ;片上集成1280字节/512字节RAM;有
32/36个通用I/O口,P1/P2/P3/P4是准双向口;集成ISP(在系统可编程)/IPA
(在应用可编程),无需专用的编程器/仿真器,可通过串行口(P3.0/P3.1)直
接下载用户程序,8K程序3秒就可以完成一片,具备EEPROM功能,工作温
度范围在0-750,共有3个16位定时器/计数器,其中定时器T0还可以当成2
个8位定时器使用;封装形式有DIP-40,PLCC-44,PQFP-44等。
步进电机的步进原理
步进电机是一种用电脉冲信号进行控制,并将电脉冲信号转换成相应的角位
移或线位移的控制电动机。说通俗点,就是给一个电脉冲,步进电动机就转动一
个角度或者前进一步,因此,步进电机也称脉冲电动机。步进电机区别于其他控
制电机的最大特点是,它是通过输入脉冲信号来进行控制的,即电机的总转动角
度由输入脉冲数决定,而电机的转速由脉冲信号频率决定。步进电机是数字控制
电机,它将脉冲信号转变成角位移,因此非常适合于单片机控制。步进电机的角
位移或线位移量与电脉冲个数成正比,它的转速或线速度与电脉冲频率成正比。
在负载能力范围内这些关系不因电源电压、负载大小、环境条件的波动而变化。
通过改变脉冲频率的高低可以在很大范围内实现步进电机的调速,并能进行快速
启动、制动和反转。
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*102 KHz。以超过最高起动频率的频率直接起动,将
出现"失步"现象,甚至无法起动。较为理想的起动曲线,应是按指数规律起动。
但实际应用对起动段的处理可采用直线拟合的方法,即"阶梯升速法"。可按两种
情况处理,①已知突跳频率则按突跳频率分段起动,分段数n=f/fq。②未知突跳
频率,则按段拟合至给定的起动频率,每段频率的递增量(后称阶梯频率)△f=f/8,
即采用8段拟合。在运行控制过程中,将起始的速度(频率)分为n分作为阶
梯频率,采用"阶梯升速法"将速度连续升到所需要的速度,然后锁定,按预置的
曲线运行。如(图9)所示。
用单片机实现步进电机的加/减速控制,实际上就是控制发脉冲的频率,
升速时,使脉冲频率增高,减速时相反。如果使用定时中断来控制电机的速度,
加减速控制就是不断改变定时器的初值。速度从V1→V2如果是线性增加,则按
给定的斜率升/降速;如果是突变,则按"阶梯升速法"处理。在此过程中要处理好
两个问题:
①速度转换时间应尽量短;为了缩短速度转换的时间,可以采用建立数据表
的方法。结合各曲线段的频率和各段间的阶梯频率便可以建立一个连续的数据
表,并通过转换程序将其转换为定时初值表。通过在不同的阶段调用相应的定时
初值,控制电机的运行。定时初值的计算是在定时中断外实现的,并不占用中断