基于ARM926的伺服电机控制
2019-01-03张玲玲
张玲玲
(郴州职业技术学院,湖南郴州,423000)
0 引言
伺服电机(servo motor )是指在伺服系统中控制机械元件运转的发动机,是一种补助马达间接变速装置。伺服电机可使控制速度,位置精度非常准确,可以将电压信号转化为转矩和转速以驱动控制对象。分为直流和交流伺服电动机两大类,其主要特点是,当信号电压为零时无自转现象,转速随着转矩的增加而匀速下降。
本文介绍了基于ARM的伺服电机控制系统的设计,该控制系统采用ARM926为控制核心,采用脉冲控制方式控制伺服电机的转速,可以实现电机0-5000转/分钟的任意转速,控制电机转动方向,且控制精度高,响应速度快。
1 系统设计
该伺服电机控制系统以ARM926为核心,同时还有触摸屏,LCD显示、 RS485通信电路、伺服电机驱动电路、伺服电机、传动系统等结构组成。如图1所示,其中电机系统包括高速伺服电机,电机最高转速5000转/分钟,功率400W。触摸屏显示控制单元包括RS232、RS485、以太网、USB、编码器、触摸屏这些功能模块组成的,伺服电机的控制可以通过6.5寸触摸屏输入,发送命令给控制器,控制电机的运转。
2 电路及原理
2.1 主芯片介绍
本系统所用CPU是德国赫优讯(Hilscher)自动化系统有限公司生产的netX500,其内部包含了:ARM926EJ-S/200MHz中央处理器;集成了32KB的ROM、144KB的RAM;并有可扩展的外部总线供使用;2路集成了PHY的实时以太网;3路串行通信接口;1路USB V1.1(Host或Device);2路可配置现场总线接口;LCD接口(支持640×480);JTAG;共计8通道模数转换;3路PWM输出。主芯片系统框图如图2所示。
图1 系统框图
其中CPU的外接晶振为25MHz,内部PLL电路会产生200MHz频率给ARM926。CPU的供电为1.5VDC和3.3VDC。
2.2 显示功能部分
显示部分主要是采用6.5寸的LCD,使用4线制的电阻触摸屏,输入电源为12VDC。显示部分的应用软件采用QT4.7开发,可以根据具体要求订制界面,控制通信协议等。
图2 主芯片系统框图
2.3 电机控制电路
现有的伺服电机的控制方式有脉冲控制、模拟信号控制两种比较常用的控制方式,模拟信号控制方式对于速度变化不确定,而且在精度要求很高的场合缺乏灵活性。故本设计采用脉冲控制的方式,如图3所示。
图3 电机控制电路
电机的频率信号由MCU的PWM_IN引脚输出,U7(AM26LS31C)的第一脚输入,然后通过U7芯片的2脚与3脚输出PWM1、PWM2两路差分信号输入到伺服电机的控制器中控制电机转动速度。电机转动方向的控制信号由MCU输出的DIR信号到U7的第7脚输入,根据需要选用DIR1或者DIR2来控制电机的转动方向。电机信号的反馈脉冲,由电机控制器采集的来自电机的脉冲信号FBACKOUT输出到控制电路的U8,可以根据需要采用FRBACK1或者FRBACK2来监控电机的运行状态。
2.4 频率输出
本系统中伺服电机的控制方式为脉冲控制方式。PWM信号的产生有许多种方式,比较常用的有模拟电路、单片机I/O端口的输出及单片机PWM部件的输出。由于本设备控制精度要求比较高,MCU的性能比较强,我们就采用了内部定时器产生PWM信号,部分关键代码如下:
3 小结
本文介绍了通过使用ARM9芯片产生的脉冲信号来控制伺服电机,具有成本低,控制灵活等特点。可以应用于各种场合。