摘 要: 设计了一种微型步进电机驱动控制器,通过上位机界面修改步进电机转速、旋转角度、细分系数。该设计以STM32F103T8U6作为主控制器,以A4988步进电机驱动设备,上位机串口界面作为人机接口界面,详细分析步进电机驱动设备的工作原理、各部分接口电路以及控制器设计方案。通过实物设计实现了步进电机转速、正反转任意角度和细分系数的控制,并通过精确计算步进脉冲个数实现了任意旋转角度的精确控制,该驱动控制器步进角度精度高达0.112 5度。
关键词: 微型步进电机;STM32F103T8U6;A4988;串口;正反转
0 引言
自从上世纪20年代英国人开发了步进电机,50年代后期晶体管的发明也逐渐应用在步进电机上,并使得步进电机的数字化控制更为方便。经过不断改良,今日步进电机已广泛运用在生产过程中要求自动化、省人力、效率高的机器中,尤其在重视速度、位置控制、需要精确操作指令动作的灵活控制场合步进电机用得最多。
本文旨在以STM32F103T8U6[1]作为A4988[2]控制器,并以A4988作为微型步进电机驱动器设计步进电机控制器模块,实现闭环精确控制微型步进电机的步进角度的功能,并从多方面深入分析A4988的工作原理以及微型步进电机速度控制和步进角度精确控制策略[3-4]。
1 A4988的特性和工作原理
1.1 A4988的特性
A4988是一款完全的微步电动机驱动器,带有内置转换器,易于操作。该产品可在全、半、1/4、1/8及1/16步进模式时操作双极步进电动机,输出驱动性能可达35 V及±2 A。A4988包括一个固定关断时间电流稳压器,该稳压器可在慢或混合衰减模式下工作。转换器是A4988易于实施的关键。只要在“步进”输入中输入一个脉冲,即可驱动电动机产生微步。无须进行相位顺序表、高频率控制行或复杂的界面编程。A4988界面非常适合复杂的微处理器不可用或过载的应用。在微步运行时,A4988内的斩波控制可自动选择电流衰减模式(慢或混合)。在混合衰减模式下,该器件初始设置为在部分固定停机时间内快速衰减,然后在余下的停机时间慢速衰减。混合衰减电流控制方案能减少可听到的电动机噪音,增加步进精确度并减少功耗。提供内部同步整流控制电路,以改善脉宽调制(PWM)操作时的功率消耗。内部电路保护包括:带滞后的过热关机、欠压锁定(UVLO)及交叉电流保护,不需要特别的通电排序。
1.2 A4988的工作原理
为了更加清晰地分析A4988的工作原理,首先深入分析A4988的内部结构。如图1所示为A4988的内部结构图和典型的外部电路连接图。
由图1所示,A4988有一个编译器(Translator),主要负责微控制器和驱动电路的信息交互。通过该编译器可产生DA信号,配合比较器辅助PWM锁存器修复衰减信号,并且该编译器能够产生逻辑电平控制逻辑控制器,逻辑控制器再配合电流调节器和N型MOS管驱动电压共同驱动两路全桥电路。电路中所标电容必须严格与技术文档中所给的相同,Rosc主要更改并修复衰减模式,接VDD自动修复衰减,接GND电流衰减设置为增减电流同时修复。SENSE1和SENSE2检测驱动输出电压,实则是实时检测输出电流,供电流调节器调节输出电流信号,形成闭环控制。因此SENSE1和SENSE2管脚连接的电阻非常关键,一般这个电阻的阻值在零点几欧姆左右。
1.3 A4988逻辑控制策略
A4988控制逻辑简单,主要分为睡眠、正反转、复位、使能、细分等模式控制。
(1)睡眠模式:Sleep管脚电平置0,进入睡眠模式,驱动器输出待机模式;Sleep管脚置1,驱动器处于正常工作状态;
(2)正反转模式:正转模式DIR管脚置0或1,反转模式置1或0;
(3)复位模式:复位模式下容易消耗能量,产生的冲击电流较大。直接RESET管脚置1,在不影响系统工作时RESET管脚置0复位。一旦驱动芯片复位,系统将回归到原始A4988 I/O端口控制状态;
(4)使能模式:使能模式控制系统是否开始工作,ENBALBE管脚置0开始工作,置1停止工作;
(5)细分模式[5]:通过MS1、MS2、MS3控制细分系数,A4988细分为1/16细分为最小,通过计算角度值可得最小细分角度为全步进角度的1/16。A4988驱动逻辑控制如表1所示。
2 控制器电路设计
根据A4988芯片的工作原理,控制器电路主要分为上位机串口模块、STM32最小系统板模块和A4988微型步进电机驱动模块。通过STM32F103T8微控制器接收上位机的控制指令,通过识别分析之后执行步进电机控制操作。内部步进电机驱动控制器总体设计框图如图2所示。
2.1 硬件电路设计
(1)串口通信模块[6]:主要负责上位机和下位机通信。上位机通过串口通信模块发送相应的功能指令给下位机,下位机执行上位机的指令并控制A4988驱动器模块驱动步进电机。如图3所示。
(2)STM32控制器模块:微型步进电机控制器的主控模块,接收上位机的指令,执行步进电机控制指令,主要控制步进电机细分操作、速度控制、旋转角度控制。如图4所示。
(3)A4988微型步进电机驱动器模块:如图5所示,主要控制并驱动微型步进电机,执行主控制器的各项驱动操作。
2.2 功能设计
该微型步进电机控制器的设计要求:
(1)实现步进电机细分控制
细分控制只需控制MS1、MS2、MS3三个引脚即可得到相应的细分结果。细分角度值等于步进角度乘以细分系数,细分系数通过上位机发送命令得到,初始细分值为1,即全步进方式运行。
(2)实现步进电机速度控制
通过测试,影响步进电机转速的主要因素有步进脉冲频率和细分系数。步进脉冲频率过高会造成步进电机失步,经过测试400 Hz时步进电机不会失步,且经过细分之后步进电机旋转不会出现强烈的震动和声音。当细分系数越来越小时,步进电机的旋转速度也会随之越来越小。此原因之一就是当细分系数不变时,每进一个脉冲走一步,脉冲频率越高,步进电机旋转速度越快;原因之二就是当步进电机输入脉冲频率不变时,每1/2细分步进电机的进角度就变为原来的1/2度,因此脉冲个数就增加了一倍,自然速度就降低为原来的1/2。
(3)实现步进电机任意角度旋转控制
步进电机任意角度旋转控制是相对于A4988驱动旋转最小角度(0.1125度)而言,且A4988是通过脉冲驱动步进电机,通过计算脉冲个数乘以细分角度即可得旋转角度值。A4988输入脉冲个数可通过微控制器外部中断I/O口计算PWM波个数得到。
3 软件设计
STM32F103T8U6是32 bit微控制器,能产生独立PWM波,PWM脉宽可调且频率可调,方便步进电机驱动调试速度;可提供外部中断为检测PWM输出脉冲个数进行计数,为实现旋转步进电机旋转角度控制提供精确数据,这样就形成了角度闭环控制;可提供串口通信,供上位机设备和微控制器进行信息交互;该微控制器I/O端口少价格便宜完全可替代16 bit单片机进行复杂的逻辑运算。STM32控制方式:(1)接收上位机控制指令并返回接收指令,表示接收成功,否则接收失败;(2)通过接收到的上位机控制指令,分别转化成控制步进电机指令,控制步进电机工作模式。
3.1 串口通信指令设计
串口通信上位机发送指令有:(1)启动模式;(2)睡眠模式;(3)复位模式;(4)速度设置模式;(5)细分模式。发送协议以“{”为起始码,以“}”为结束码,如{+0.1125℃}即正向旋转0.112 5度;当下位机执行完上位机指令时返回接收指令,否则不返回。具体发送方式如表2所示。
3.2 控制器控制策略
STM32软件负责该模块的主控制器,首先让启动模式处于非启动状态(DISABLE),外部中断也处于关闭状态。一旦启动模式被打开,即点亮LED;其次,进行速度设置、细分系数设置以及旋转角度设置。睡眠模式下LED缓慢闪烁。具体该驱动控制器软件设计流程图如图6所示。
4 结论
通过系统对软硬件进行调试,该控制器实现了对步进电机速度、细分系数、任意角度的设置,并达到了预期设定的目标。此控制器可以应用在相对比较精细的项目控制中,加快项目研发周期。该模块的主要缺陷就是输出驱动电流不够大,无法应用在扭力比较大的场合中,因此,通过上述对A4988模块的分析,可以再对A4988芯片进行改进,更换导通电阻小、驱动电流大的MOS管,实现电机驱动器的设计。
参考文献
[1] 意法开云棋牌官网在线客服.STM32F103英文数据手册[EB/OL].(2011-04-19)[2014-05-13].http://www.st.com/stonline/products/literature/ds/14611.pdf.
[2] MICRO A.A4988数据手册[EB/OL].(2014-05-07)[2014-06-10].www.allegromicro.com/~/media/Files/Datasheets/A4988-Datasheet.ashx.pdf.
[3] 孟英红,齐婉玉,段学锋.用L297,L298组成步进电机驱动电路[J].仪器仪表学报,2003,24(4):573-574.
[4] 王凯,韩力立.采用STM32控制L6470步进电机驱动器[J].电子世界,2012(18):51-52.
[5] 曹彪乾,陈远增,孙书鹰,等.基于STM32步进电机多细分控制设计[J].科学技术与工程,2013,13(23):6894-6897.
[6] 于波,胡毅,文江涛.基于CP2102的USB接口设计[J].研究与开发,2007,26(3):40-42.