APP下载

基于CAN协议的多电机控制

2014-12-23

科技视界 2014年14期
关键词:报文通讯总线

李 芃

(四川大学锦城学院,四川 成都 610000)

0 引言

电机协同控制系统在实际生产过程中的应用相当广泛,如配料、工业切割、机械手臂、传动等生产过程必须多台电机协同控制。尤其是在大工件切割加工过程中,由于电机比较多、分布比较广,采用传统的控制器与电机驱动器一对一的脉冲控制模式,不仅控制线路复杂,抗干扰能力差,且在控制过程中脉冲容易丢失或引进干扰脉冲、可靠性低。

现场总线打破了传统控制系统一对一的结构形式,采用智能现场设备,把传统的脉冲传送改为智能型总线数据传送并具有数据完整性校验和重发机制等纠错功能。近年来利用现场总线实现电机群控制有了较多的研究,本设计利用CAN 总线通信方式灵活,通信速率高,可靠性、实时性和抗干扰能力强[1],且低成本的优点,探索基于CAN 总线的电机群控制系统,通过编制控制协议改善电机群的协同控制性能。

1 系统设计

本系统设计分为硬件设计、CAN 通信网络应用层协议设计、软件设计三个部分。

1.1 硬件设计

基于CAN 总线的电机群控制系统的由运动控制器、步进电机或伺服电机(4 台)及相应带CAN 总线的电机驱动器等组成。通过CAN 总线连接成一个完整的通讯网络,实时传输各运行参数、控制命令。系统的控制对象主要是4 台电机,即M1:X 轴向运动电机、M2:Y 轴方向运行电机、M3:刀头上下移动电机(Z 轴电机),M4:刀头旋转电机(U 轴)。电机群控制系统结构图如图1 所示:

图1 基于CANopen 协议的电机群控制系统框图

1.1.1 运动控制模块

本系统的主控制CPU 及各个模快控制CPU 均选用的基于ARM Cortex-M3 内核的STM32F103RBT6 嵌入式处理器。该处理器带有64KB 的Flash 和20KB 的SRAM 资源,主频为72MHz,信号处理最高可达1.25DMips/MHz,运算速度快,非常符合电机群控制系统数据计算量大的需求。因该芯片内部带有2 .0A 和2 .0B 的CAN 控制器,不再需要另加CAN 控制器,给CAN 通讯外围电路设计带来了便捷。主控制器负责位置、速度数据的运算,将数据指令通过CAN 总线发送各分布式控制模块。各节点运动控制模块接到命令后,进行相应的操作,驱动各自所带电机运动。

1.1.2 电机驱动模块

下位节点接收主控制器发送的数据,并对数据进行分析处理,将其转成脉冲信号送入步进电机驱动器。由于数据计算量大,且要求运算速度快,故下位机同样采用STM32 芯片作为CPU。步进电机的驱动选用LV8731V 芯片。LV8731V 是2ch H 桥驱动,内置1ch PWM 电流控制步进电机驱动,能设定2 相/1-2 相/W1-2 相/4W1-2 相励磁模式,只要输入STEP 信号、励磁STEP 就可以进行,非常适合带动步进电机,并且内置输出短路保护电路,无需控制电源。切割机电机系统采用激光切割,只需要一般的步进电机带动激光探头即可。所以这样的组合不需要额外的驱动设备,结构简单,性价比高,非常适合切割机电机系统。

LV8731V 的OUTA1,OUTA2,OUTB1,OUTB2 管脚,直接连接步进电机。LV8731V 的DC12 管脚与stm32 PA7 管脚(TIM1)相连,通过设置TIM1 来调节输出的PWM 波控制速度。励磁模式设定为8 细分4W1-2 相励磁模式,通过stm32 PA6,PA7 管脚来控制。设定DM 接地,使端子为STM 模式,能控制CLK—IN 输入的1ch 步进电机。

1.2 CAN 通信网络应用层协议设计

CAN 总线是一种有效支持分布式控制或实时控制的串行通信局域网络[2]。从OSI 网络模型的角度来看[1],CAN 现场总线仅仅定义了第1 层即物理层、第2 层即数据链路层(见ISO11898 标准);没有规定应用层,需要一个高层协议来定义CAN 报文中的11/29 位标识符、8 字节数据的使用。目前占领市场主流的应用层协议是:DeviceNet 协议和CANopen 协议[5]。但是DeviceNet 和CANopen 协议难度大、规范复杂,开发周期长、成本高。针对本控制系统的控制对象为4 台电机的情况,根据CAN 总线的要求,必须研究一套简单而有效的高层通信协议。

1.2.1 CAN 报文的分配

CAN 一个数据帧[3]包括了帧起始、仲裁场(标识符+RTR)、控制场、数据场(0-8bytes)、CRC、应答场、帧结束。用户协议需要自行设计的为仲裁场、控制场和数据场。在本电机群控制系统中,每一个节点有且只有一个其专属的地址,地址码和系统中各电机模块对应,总线上按照地址来传送数据。电机控制系统中主控节点为1,X 轴、Y 轴、Z 轴、U轴电机节点依次为2、3、4、5。由于系统规模比较小,节点数少于16个,地址码设定为4 位,同一系统中地址码不能重复。目的地址的标识符定为ID3-ID0,源地址标识符定ID7-ID4[5]。ID9-ID8 定义为功能码,用于表示报文所要实现的功能。两位标识符定义了4 个功能码,分别是:0X00 表示对单个或多个节点写入数据;0X01 表示断开与电机控制系统从节点的通讯连接;0X10 表示和电机控制系统从节点建立通讯连接;0X11 表示检测网络上的ID 从节点是否存在[2]。ID10 位定义为ACK 响应位[4],该位用来区分帧的类型。当响应标志位为0 时,表示发送的是命令帧,节点需要应答。控制场有6 个位组成,标准格式里的帧包括数据长度代码、IDE 位、保留位r0[5]。数据场由数据帧里的发送数据组成。它可以为0~8 个字节,每个字节包含了8 位。第一个字节为命令,接下来字节都为具体要发送的数据。发送的优先级由节点的ID 决定,ID 越小[4],优先级越高。

1.2.2 数据通讯的实现

数据通讯定义了网络中传输数据的内容和传输的方式。电机群控制系统的CAN 用户层协议通讯模式由主从方式和事件触发方式构成。两种模式搭配使用,增强了通讯协议的灵活性。主从通讯模式用于CAN 网络中的主站对于从站的访问。事件触发通讯模式用于从站主动向主站传送数据报文。

1.2.3 网络管理

网络管理的对象是于网络中节点和报文发送状态。对于CAN 网络管理,其主要任务是处理网络中的错误,协调各个节点的状态,监控报文的发送情况。可以分为节点控制和通讯控制两部分。节点管理[5]是指对总线上所有应用节点进行初始化,让每个节点在通讯前处于准备状态并排除总线上是否存在相同的节点。通讯管理是管理网络中通讯的报文,保证报文能够正常地接受发送。

1.2.4 电机设备协议的原则

电机设备协议是网络中电机设备的描述规则,在本系统中对CAN 应用层协议的电机描述设备以及要执行的命令参数定义见表1。

表1 命令类型表

部分主要代码如下:

void CAN1_Init(void),在此函数中设置过滤器,波特率以及管脚配置、中断配置;

void Init_RxMes(CanRxMsg *RxMessage),初始化接收帧;

void CAN_SendInit (u8 addr),初始化节点,addr 为目标地址,当addr 值取0X00 时,表示广播,各节点都收到信息;

void CANSetCo(u8 addr,s32 co),设置坐标,addr 为目标地址,co 为设置的坐标;

void CANSetSpeed(u8 addr,s32 speed),设置速度,addr为目标地址,speed 为设置的速度;

void USB_LP_CAN1_RX0_IRQHandler(void),下 位 机CAN1 接 收中断处理函数,更新线圈和寄存器。通过swtich 语句来实现不同信息的处理。

图2 系统软件流程图

1.3 软件设计

在电机群控制系统中,系统软包括主控制器发送接收模块、运动控制器发送接收模块、CAN 通讯模块。主控制器发送接收模块向各个电机的运动控制器发送运动信息(设定位置、速度等),等待来自各运动控制器的反馈信息;运动控制器发送接收模块接收到来自主控制器的命令后,对命令进行解析,执行相应的操作控制电机,并将电机的状态信息反馈给主控制器。CAN 通讯模块负责主控制器与各运动控制器之间数据通讯。系统软件流程图如图2 所示。本设计采用美国Keil Software 公司出品的Keil uVision4 软件开发系统,使用C 语言来开发。

2 测试结果

在试验中,用2 个电机进行模拟测试,主控制器(节点1)向X 轴(节点2)和Y 轴(节点3)两个电机的控制器发送指令,将LA1032 逻辑分析仪直接接入节点2 和节点3 的控制芯片的TIM1 上,同时测量节点2 和节点3 的脉冲波形,通过对比分析两电机的协同工作情况及CAN 通讯协议的通信效果。

按编制的CAN 通讯协议,节点1 先发送一个广播帧对各站点进行初始化,再向节点2、节点3 同时发送周期为140us,占空比为50%的脉冲;1ms 以后,向节点2、节点3 发送周期为14us,占空比为50%的脉冲,两种频率不同的脉冲交替发送,相隔时间为1ms。逻辑分析仪观察到节点2 和节点3 的波形图如图3。从图3 可以看出,两节点电机的执行命令的时间差在20us 左右。表明通信协议是可行的,两电机的同步控制误差比较小。

图3 逻辑分析仪显示的节点2 和节点3 的波形图

3 结束语

以STM32RBT6 ARM 芯片为主、从控制器,通过CAN 总线利用总线广播模式实现电机群协同控制,其CAN 总线通信协议比较简单,电机群的协同控制效果好,且成本低,可靠性高,响应速度快,该系统可实际应用于工件切割、数控钻孔。

[1]邬宽明.CAN 总线原理和应用的系统设计[M].北京:北京航空航天大学出版社,1996.

[2]麦毅强,倪文秀,王仁龙.基于DSP 的CAN 总线通信技术研究[J].微计算机信息,2010,8-2:111-113.

[3]彭刚.基于ARMCortex-M3 的STM32 系列嵌入式微控制器应用实践[M].北京:电子工业出版社,2011.

[4]刘涛,王宗义,孔庆磊,武光田.基于CAN 总线的多电机协调运动控制系统研究[J].机床与液压,2010:38-3.

[5]佟为明,李凤阁,林景波.基于CAN 总线的电力监控器的研究[J].电工技术杂志,2004,8:68-71.

猜你喜欢

报文通讯总线
《茶叶通讯》简介
《茶叶通讯》简介
基于J1939 协议多包报文的时序研究及应用
通讯报道
CTCS-2级报文数据管理需求分析和实现
浅析反驳类报文要点
基于PCI Express总线的xHC与FPGA的直接通信
机载飞控1553B总线转以太网总线设计
通讯简史
ATS与列车通信报文分析