步进电机控制系统设计与实现

2022-11-24 05:08李帅波王宇飞
自动化仪表 2022年11期
关键词:驱动器中断脉冲

赵 鹏,李帅波,钱 美,王宇飞

(新疆理工学院机电工程学院,新疆 阿克苏 843000)

0 引言

传统电机的速度或位置控制比较复杂,如采用有刷直流电机能以光电或磁编码器测量转速,再由控制器根据转速和转向结合比例积分微分(proportional integral differential,PID)控制算法,通过对PID系数的调节实现速度或位置的精确控制。但在软件设计中,测速、调速及算法融入都会占用控制器的定时/计数器或输入比较/输出捕获寄存器的资源,增加软件设计的复杂度。特别是在调试过程中,如果参数设置不当,可能会造成电机剧烈振动甚至堵转的情况,导致电机死区过大甚至烧毁。而且PID参数难以调节,很难达到最佳控制效果。步进电机是1种将电脉冲信号转换为角位移或线位移的运动装置。其步距角与驱动脉冲对应且不会长时间累加,并且驱动器的细分设置使控制精度更高,可以组成结构较为简单而又具有灵活设定精度的开环控制系统,从而利用开环实现速度和位置的精确控制[1-3]。

鉴于此,本文提出了精度可调的步进电机开环控制系统设计方案。该方案具有控制效果直观、性能稳定的优点。

1 系统结构分析

本文主控芯片采用IAP15单片机,其数据存储器(random access memory,RAM)为4 KB,程序存储器(read only menory,ROM)为58 KB,内部集成了可编程计数器阵列(programmable conter array,PCA)模块、模拟数字转换器(aralog-to-digital converter,ADC)及4个串口等,硬件资源丰富。人机接口部分由按键和有机发光二级管(organic light-emitting doide,OLED)构成,利用驱动器驱动两相四线步进电机。其中,驱动器最大支持128细分。通过驱动器的细分设置,可降低步进电机固有低频振荡、提升步进电机步距角的均匀度,从而达到精确控制的目的[4-5]。单片机和驱动器的电源由外围电路提供。系统整体结构如图1所示。

图1 系统整体结构框图

2 理论分析与计算

2.1 驱动电路原理分析

步进电机驱动器引脚功能如表1所示。

表1 步进电机驱动器引脚功能

单片机I/O输出电流能力较弱。本文采用的增强型51单片机IAP15,即使工作于强推挽输出模式,最大输出电流也不超过20 mA。本设计中选择的步进电机42HS02的额定电流为400 mA,因此单片机I/O无法驱动步进电机,需借助驱动器。而采用驱动器可以大大简化控制电路,通过细分设置提高控制精度、简化控制程序[6]。本文选择M420为驱动器。M420具有过压过流保护、响应快、噪声低、运行平稳等优点。

2.2 步进电机控制精度的设定及转速计算

步进电机采用两相步进电机,固有步距角为1.8°,则200个脉冲转1周。驱动器最大支持128细分。本设计将驱动器设置为8细分,则1 600个脉冲转1周。因此,单片机产生1个脉冲时,步进电机转0.225°[7]。具体的电机转速与脉冲频率、电机固有步距角及细分数的关系为:

(1)

式中:V为电机转速,rad/s;P为脉冲频率,Hz;θe为电机固有步距角,(°);m为细分数。

2.3 脉冲信号的产生及位置控制

IAP15单片机晶振频率设置为12 MHz,采用定时器T0不分频。对应的寄存器操作指令为:AUXR|=0X80。T0工作于方式0为自动重装载16位定时工作模式时,对应的定时器初始值设为65536-FOSC/2/输出频率。本文采用7档调速。调速方案利用按键结合软件查询的方式实现。在程序设计中,对于不同的数据类型(如字符型、整型、浮点型等)同时存在的情况,采用结构体定义;对于相同的数据类型的情况,则采用数组定义。由于定时器定时初值数据类型均为16位无符号整型,则根据定时器定时时间不同将其初值定义为长度为7的数组,对应的频率分别为250 Hz、500 Hz、1 kHz、1.5 kHz、2 kHz、3 kHz及4 kHz[8]。位置控制采用定时器T1实现。T1的控制方案采用在给定的步进电机驱动频率下,通过设定T1定时时间求取脉冲数量,从而得到步进电机的角位移量。位置控制式为:

(2)

式中:Ф为角位移,(°);T为定时时间,s。

如果将角位移量转换为线位移量,则可以通过角位移与导程之间的线性关系求取线位移量[9]。如某丝杆滑台的导程为4 mm,则步进电机转一圈滑块移动的距离为4 mm。

3 软硬件设计

3.1 硬件电路设计

本文设计使用的IAP15单片机可通过烧写软件设置晶振频率和上电复位功能,节省了最小系统设计成本。采用I2C型OLED显示步进电机工作状态,杜绝了采用传统并行显示器作为显示终端时占用单片机硬件资源和显示字符有限而造成显示不直观的问题。利用单片机I/O模拟I2C协议实现对控制参数的实时显示功能,在减少系统功耗的同时也降低了印刷电路板(printed circuit board,PCB)设计中的布线难度。为了提高效率,按键采用中断和查询相结合的方式,有效利用了单片机外部中断资源。外部中断0设置电机的启停操作。外部中断1设置电机的正反转设置。外部中断2、外部中断3实现电机的速度调节。剩余2个按键以查询方式实现位置加减控制。为了节省硬件资源,速度与位置的模式切换采用位置加、减组合按键实现。步进电机脉冲式驱动器M420控制信号采用5 V供电,与单片机TTL电平兼容。步进电机与单片机无需电平转换,直接实现控制信号的实时交互,驱动电压为直流18~30 V,工作电流为0.2~2.2 A。设计中采用5 V直流稳压电源向单片机和驱动器控制器供电。为使驱动电源保留一定的裕量,采用输出电压为24 V、额定电流为3.2 A的开关电源供电方式。

硬件电路如图2所示。

图2 硬件电路图

3.2 软件设计

软件设计根据C语言程序移植性强的优点,采用模块化设计思路,利用主程序调用各个子程序来实现。将各个子程序设计为应用程序接口(application programming interface,API)函数,方便主程序的调用、移植和升级。I2C型OLED子程序中包含:I2C协议的解析;字符及汉字取模后的数组定义;数字、字符及汉字的显示函数定义等。键盘子程序由外部中断和扫描两部分组成。外部中断的效率较高,触发方式为下降沿触发,主要应用于频繁操作的环节。键盘扫描子程序具备消抖和松手检测功能,采用逻辑与判断的方式识别组合按键。其中,模式切换默认为转速控制模式。单片机对步进电机的速度控制采用不同频率的脉冲驱动实现,位置控制则结合定时器和脉冲频率共同实现。OLED要显示有具体物理单位的转速或位置信息,则需要单片机程序通过标度变换实现。其速度和位置的标度变换式分别如式(1)和式(2)所示。OLED显示的具体数据的速度单位为rad/s、位置单位为度或转换为相应的距离[10-12]。

主程序流程如图3所示。

图3 主程序流程图

4 系统调试及问题分析

4.1 脉冲信号的产生

针对输出7种不同频率的脉冲信号,因其数据类型相同,本文采用数组的形式,利用按键触发外部中断实时切换定时器定时初值,以达到转速调节的目的。SDS1152CML型示波器可对输出的250 Hz脉冲进行监控。250 Hz脉冲输出如图4所示。

图4 250 Hz脉冲输出图

由图4可知,脉冲输出要求满足控制要求,达到了预期的效果。

4.2 系统联调

在细分设定的情况下,转速控制的准确性与单片机定时器产生脉冲的精度有关,而位置控制的准确性与转速和定时器定时的误差有关。传统的51单片机定时器采用对系统时钟12分频的基准进行累加的方式。如12 MHz的系统时钟12分频后为1 MHz,则定时器的定时基准为1 μs。对于增强型IAP15系列单片机,可设置为系统时钟不分频,以提高定时器定时精度。单片机时钟频率可通过软件设置。对于时钟频率的设置,如果只是实现串口通信功能,可优先选择11.059 2 MHz或22.118 4 MHz作为时钟频率,以确保数据传输的准确性。

1 kHz脉冲输出如图5所示。

图5 1 kHz脉冲输出图

本文对速度和位置的控制均使用单片机的定时功能。为了在计算定时初值时能减小舍入误差、提高系统的控制精度,时钟频率优先选择12 MHz或24 MHz,且定时时间为定时基准的整数倍。当时钟频率设置为12 MHz时,硬件电路、示波器及外接电源搭建后通过系统联调,示波器监控的系统运行状态和输出波形与步进电机运行效果一致,且系统运行稳定。

4.3 步进电机运行过程中的常见问题

单片机I/O与驱动电平一致,保证正常的数据交互,但启动步进电机并设定转速或位置后电机不运行。经分析,这主要是由于控制信号的时序混乱造成的。对此,可通过排查电机是否正常供电、驱动器使能端ENA是否为高电平使能有效,使ENA应超前方控制信号DIR 500 ms以上、DIR信号超前脉冲输入端PUL信号下降5 μs以上、PUL高低电平的脉宽大于2.5 μs,以保证控制时序的匹配。

驱动器电流过小、加速时间过短或电机扭矩过小都会造成电机堵转。这些问题可通过驱动器选择合适的电流档、延长加速时间或增加电机扭矩的方法予以解决。电机停转或堵转时均为静止态,难以区分。如果在电机通电运行时电机停转,但有较大的电流声或电机机壳温度骤升可以判断其为堵转,此时应立即断电。在脉冲和定时稳定的前提下,如果步进电机定位不准,则主要是由控制信号受到干扰或细分设置错误造成的。这可以通过排查驱动器屏蔽接地线是否可靠接地或设置正确的细分数加以解决。

4.4 步进电机静止状态下的功耗设置问题

驱动器中,SW4用于设置无脉冲时,需判断步进电机工作电流是否减半。如果设置为无脉冲时电流减半,当控制器再次有脉冲信号产生时,驱动器的驱动电流会自动恢复正常,从而保护电机。在使用时,如果电机静止时需要保持足够大的力矩以克服系统扰动,一般不开启电流减半模式,以防电机失位。其他情况下,开启电流减半模式。这也是当通电后电机处于静止态时,电流不减半模式下用外力难以使其转动的原因。

4.5 OLED的实时显示问题

OLED像素为128×64,其内部没有字库,但可通过取模软件生成字库。其显示变化过程的实质是通过单片机控制屏幕动态刷新的过程。设计初期无法实时显示转速的主要原因是定义和调用的参数类型不一致。因为调用的转速显示函数的实参为double型。对此,本文通过将计算转速的频率数组定义为double型予以解决。

5 结论

本文通过对系统结构分析、理论分析与计算、软硬件设计、系统调试及问题分析,以IAP15单片机结合外围电路实现对两相四线步进电机精确的速度和位置控制,通过系统联调证明了该步进电机控制系统的稳定性。通过对单片机定时器、中断等内部资源的有效、合理使用,结合步进电机专用驱动器实现两相四线步进电机的七档速度的调节及位置控制,利用示波器实时监控驱动频率并与单片机控制的OLED显示频率对比,保证测量值与输出值的一致性。本设计理论依据充分、调试过程明晰、系统运行稳定,能对步进电机控制系统的研究提供借鉴。

猜你喜欢
驱动器中断脉冲
气动网络多腔室弯曲软体驱动器结构优化
脉冲工况氧气缓冲罐裂纹修复实践
藏起驱动器号确保数据安全
“单片机中断概述”微课教学设计
一种考虑GPS信号中断的导航滤波算法
Linux中断线程化分析及中断延时测试
空间大载荷石蜡驱动器研制
小型化Ka波段65W脉冲功放模块
跟踪导练(二)(5)
超音频复合脉冲GMAW电源设计