摘要:ARM已经被广泛应用于工业控制和生产生活方面,本文设计一种基于ARM为核心的步进电机控制系统,该系统相对于传统单片机控制系统,具有处理速度快,外围接口资源丰富,控制方便,精度高等特点。
关键词:ARM;L298N;电机控制;步进电机
在现代的工业控制系统中步进电机是一个重要的执行器件,其被广泛地应用于自动化工业控制系统和机电一体化的产品。在现代的大部分电子产品和工业产品中都是以步进电机为动力核心,如工业机器人、打印机、数控机床、绘图仪等。随着对产品的要求越来越高,对其控制也要求越来越高,以前的步进电机控制系统的控制能力无法满足现在的要求,因此,提出一种更高效、实用性更强的控制系统变得更加重要。
传统的工业控制大多数是采用8位单片机为控制内核,其价格便宜、设计简单,容易满足一般控制要求,但是该单片机存储空间小,外设资源较少,往往需要与PC机联合控制才能实现,这样带来的问题是实时性较差,人机交互较为复杂,操作麻烦等问题。采用功能较为强大的32位ARM为控制核心,把电源、电机控制板、步进电机和人机界面集成一体将形成一个更为强大的嵌入式一体化控制系统。其优势是控制性能强,实时控制强、人机界面友好、总体成本低、外设资源丰富、控制精度高,可以根据控制情况适时地调整控制参数以实现更优化控制。本文提出的是基于ARM7内核的LPC2131为控制核心的步进电机控制系统,实现对步进电机的驱动和速度准确控制,并具有很好的人机界面。
1 LPC2131概述
根据系统的实际需要和成本,该系统选择了NXP公司生产的基于LPC2131,它的CPU是ARM7TDMI,是一种高性能、低功耗、价格便宜的RISC处理器,具有丰富的片上外设资源,可在3.3 V的电压下工作,非常适合于嵌入式产品的开发。其主要特点如下:
(1)32位144引脚的ARM7TDMI内核;
(2)L/O电压是3.3 V,CPU工作电压是1.8 V;
(3)有16K字节的SRAM,8K的片内Flash;
(4)通过片内PLL可实现60 MHz的主频;
(5)对片内FLASH支持三种编程方式:ISP,IAP,JTAG在线仿真调试;
(6)具有两个低功耗模式:空闲和掉电模式;
(7)2路32位定时器,6路PWM,实时时钟和看门狗;
(8)具有2路工业标准的异步串口(UART)、高速I2C和2个SPI接口;
(9)8路数据转换器(ADC),转换时间可低至2.44 m;
(10)通过配置可有112个GPIO。
综上所述,LPC2131非常适合于该步进电机的控制系统的设计,并且具有很好的功能扩展性。
2 步进电机的工作原理
步进电机是一种将电脉冲转换为对应的角度或者位移的执行器件。如果电机没有超载,电脉冲信号的频率和脉冲数决定步进电机的转速和电机的位移长度,负载的变化对其没有影响。也就是说只要给电机一个脉冲,那么电机就转一个对应的角度;按照步进电机的正转时序给脉冲,那么电机就正转,如果给的是反转时序,那么电机就反转。步进电机的种类很多,按其结构可分为永磁式、激励式和反应式三种,按其相数分可分为单相、两相和多相三种。
2.1 步进电机的主要特征
(1)步进电机需要驱动电路才能转动,驱动电路产生驱动电脉冲信号,如果没有脉冲信号,步进电机静止不动,如果按照电机的驱动时序驱动电机,则电机按照一定的方向转动。电机转动的速度与脉冲的频率正比关系,不受负载影响。
(2)步进电机可以方便地实现瞬间启动、急速停止、正转、反转,并且速度响应特性好。
(3)步进电机没有累计误差,因为步进电机只有周期性的误差,完成一周以后误差清零。
(4)步进电机可以通过改变电脉冲信号的顺序实现改变其转动方向。
(5)当步进电机停止时可以实现自锁。
(6)步进电机的驱动信号一般要专门的控制电路产生,不能直接使用普通的交流或直流电源驱动。步进电机必须由双环形脉冲信号、功率驱动电路等组成驱动控制系统方可使用。
2.2 步进电机的测速办法
将驱动信号的电脉冲信号转换为角位移或者线位移,这样的测速优势是:
(1)过载性好:由于步进电机的转速不受负载的影响,即当负载加大时电机的速度保持不变。
(2)容易控制:由于步进电机是一步一步的运转,可以按角度来对其控制。
(3)整体结构简单:由于测速是将转速转换为电压,并传递到输入端实现闭环控制,整体结构减少了传统的机械部分和位置控制结构部分。
3 控制系统设计
3.1 总体结构设计
本系统是以LPC2131为控制器,用L298N电机驱动芯片设计的驱动电路,由于电机是12 V供电,那么还需要12 V的电压,人机界面采用的是键盘显示板,这样可以实现良好的人机界面,方便现场调试与参数设定。
3.2 硬件设计
该系统的整体硬件设计框图如图1所示,该硬件设计系统主要包括三个部分,第一部分是LPC2131最小系统,由于LPC2131的工作电压必须是3.3 V,就得把输入进来的电压进行稳压,输出所需要的电源电压。一般采用的是电源稳压芯片实现。这部分还有控制器的复位电路,复位电路一般有阻容式复位和芯片复位两种,根据该控制器的芯片手册中对复位要求,故选择了芯片复位电路。
第二部分是设计该系统的重点——步进电机驱动电路,采用的是L298N电机驱动芯片设计的驱动电路。该芯片是SGS公司的美国国家半导体公司生产的。L298N是一个高电压,高电流全桥驱动电路,其支持TTL逻辑标准电平,是驱动步进电机的良好方案。其工作的最大电压可以达到46V,电流可达到4A,具有过电流保护,低功耗芯片。其有15个引脚,内含两个H桥电路,能够驱动两个直流电机和一个四相的步进电机。它接受PWM脉冲波,输出为跟输入PWM波占空比一样的脉冲波驱动电机,这样如果需要改变步进电机的转速,可以通过调整PWM的占空比和频率实现。该驱动电路可以控制电机的转动方向,只需要用GPIO控制L298N的方向引脚,设置其为低电平或者高电平这样方可改变其方向。这部分还需要12 V的直流电源,可通过电压稳压芯片实现。
第三部分是键盘显示部分,这部分主要是用来显示电机的速度和给定,左边显示了速度的给定,右边显示电机当前的速度,其中按键用来设定电机调速的调整参数。其设计原理是利用ARM的SPI进行串行通信实现每次传送两个字节,其中第一个字节是段码,该段码是八段数码管的段码值,它是8个数码管公用的段码;第二个字节是位码,该位码的8位分别对应8个数码管的公共端。用两个74HC164移位寄存器实现数据的移位传输,并且把8个按键连接到8个数码管的公共端,这样实现动态扫描显示数码管。
3.3 软件设计
软件设计主要是包含三个部分,分别是系统初始化模块、电机调速控制模块和键盘显示模块。设计流程如图2所示,其中第一部分系统初始化模块。主要实现LPC2131的启动设置,包括初始化中断向量表、初始化堆栈、系统变量初始化、中断系统初始化、I/O初始化、外围设备初始化、存储器初始化和地址重映射初始化等操作,这部分主要是用ARM汇编实现的,为C语言的运行提供一个良好的环境。
第二部分是电机调速模块。这部分是该系统设计的重点,其中需要PWM初始化,定时器捕获初始化、I/O初始化和PID算法实现。对于PWM模块的初始化需要两路PWM以实现四相电机时序来控制电机的转动,其中PWM的占空比实现电机电压的速度控制。I/O实现电机的方向控制,通过设置低电平和高电平设置不同的电机转向。定时器捕获模块实现闭环调速系统,用定时器捕获电机转动时电机叶子切割红外线产生的脉冲数进而算出电机的转速,不过计算电机转速时得注意电机的减速比。PID算法以实现电机的智能控制,通过设置给定转速和捕获回来的转速,计算出下次需要给出的PWM占空比,以实现电机速度的准确控制。
第三部分是键盘显示模块。该模块主要是实现通过键盘实时的调整PID参数,那么左边显示的是给定的电机转速,右边显示的是当前的电机转速。在该模块中需要定时器模块、SPI模块,其中定时器模块实现对数码管的动态扫描和获取按键的键值;SPI模块实现把数码管的段码和位码串行发送出去。其中按键的功能主要实现加法、减法、修改和确定,这样就可以实时的根据当前的转速修改PID参数,以实现电机转速的实时控制。
4 结束语
为了提出一种更高效、实用性更强、更优化的控制系统,本文的控制系统是基于ARM LPC2131来设计的步进电动机控制系统,其通过ARM的高速和丰富的外设资源对步进电机实现转速的精确控制和实时监测控制,具有对步进电机实时控制、数据处理速度快、精度高、良好的人机界面、操作简单和易于维修等特点。