移动机器人包含众多模块,例如电机控制模块,速度反馈模块,超声波测距模 块,遥控器和上位机通信模块。图像采集模块,语音识别模块,人机接口(车灯显示,
液晶显示模块)。如此众多的模块之问数据传递是非常庞大和复杂的,CAN总线是 一种拥有很多优点,在机器人领域应用广泛的总线技术””。
本文中婀一R型智能机器人控制系统采用分布式控制方式,上位机选用的是 高性能的嵌入式工业级主板,下位机运动控制卡选用基于DSPTMS320LF2407A+
CPLD EPM7128S为控制芯片,上位机和下位机DSP运动控制卡之间扩充了有效地 支持分布式控制和实时控制的CAN(ControllerAxcaNetwork)总线通讯方式,既能 快速地实现机器人控制的复杂算法,又具有较高的控制实时性,是一个高性能的 机器人控制系统。cAN(ControllerAreaNetwork)总线是应用最为广泛的一种现 场总线,也是目前为止唯一有国际标准的现场总线。相对于一般通信总线,它的 数据通信具有突出的可靠性、实时性和灵活性““。其特点是:
a)CAN总线为多主方式,网络上任意节点均可在任意时刻向其它节点发送数据。
b)CAN总线上的节点可以通过标识符分成不同的优先级,满足不同的实时要求。
c)CAN总线采用非破坏的总线仲裁技术,低优先级节点不影响高优先级节点的 发送。
d)CAN总线节点在40m内通信速率最高可达1Mbps。
e)CAN总线上的节点数在标准帧格式下可达到1lO个,扩展帧格式下几乎不受 限制。
f)报文采用短帧格式,传输时间短,出错率极低。
g)CAN总线通信介质可选用双绞线,其结构灵活,连接方便。
CAN总线的以上特点使之十分适用于机器人控制,鉴于此,本章在第一节对 CAN总线作为机器人控制系统的通信方式工具加以讨论研究,给出了一种基于 CAN总线的通信方案。具体连接方式为:主控上位机通过CAN总线接口卡连接到 总线上,各运动控制器也都通过总线收发器挂接到总线上,而且可以根据实际情 况增减数目。由于CAN总线只用两根线进行通信,大大降低了系统连线的复杂程 度,同时增强了系统的可靠性能。如图3-I所示
24
第3章智能机器人运动控制系统的通讯接口
图3-1基于CAN总线通信网络结构
3.1.1 CAN2.0协议的设定
CAN协议是建立在OSl7层开放互连参考模型基础之上的。但CAN协议只定 义了模型的最下面两层一数据链路层和物理层“”,仅保证了节点间无差错的数据 传输。CAN的应用层协议必须由CAN用户自行定义,或采用一些国际组织制订的 标准协议。应用最为广泛的是DeviceNet和CANopen,分别广泛应用于过程控制 和机电控制领域。但此类协议一般结构比较复杂,更适合复杂大型系统的应用。
CAN2.OA协议中仅定义了具有11位标识符的标准帧数据构”1,CAN2.OB协议 中除了定义标准帧之外还定了具有29位标识符的扩展帧数据结构。在设计时,
本系统定义在CAN总线上传输报文为标准帧格式,如表3—1所示。
表3-1标准帧格式
仲裁域 控制域 数据域 校验域
11位标识符 远程发送请求位(RTR)和4位数据长度码 8字节数据 2字节CRC
(DLC)
CAN自身虽然带有强大的通讯协议,但对于实际应用系统还必须在其基础上 开发相应的通讯协议。CAN通讯协议设定中关键的是标识符(ID)的设定,CAN节 点的标识符(ID)既包含了节点的地址,又包含了通讯的优先级,结合CAN节点灵 活的软件滤波设置可以实现不同优先级的仲裁(标识符越小,优先级越高),点对 点、多点对点、点对多点以及全局广播(点对全部点)等功能。标识符(或仲裁域)
成都理l:人学硕十学位论文
编码各个节点。图3-2位MT—R平台扩展CAN总线框图。
3.I.2标识符编码
圈3-2 CAN总线控制
CAN总线中用标识符的大小编码节点的优先权。标识符越小,优先权越高,一 个标识符如果全部是O的话,它就具有最高优先权。“非破坏性逐位仲裁”保证了 如果发送一个高优先权报文,它就会赢得仲裁并能够在一个保证的时间限度里到 达它的目的节点。系统协议采用4种报文帧,即带有数据的标准帧,向网络请求 数据的远程帧、能够报告每个节点错误的出错帧以及如果节点的接收器电路尚未 准备好就会延迟传送的过载帧。远程帧是报文帧的简短形式,用于向网络请求数 据。这时它不包含数据域,并且远程发送请求位(RTR)要置位,数据长度码(DLC)
被设定成期望接收到的数据字节的数量。当远程帧发送到网络上后,与远程帧标 识符匹配的节点就会将请求的数据用报文帧传送。系统协议设计中,为了保证各 个模块之间数据的传递和信息的获取,并保证数据及时安全的传递,需要合理安 排标识符和优先级,并考虑需要传递的数据和信息。表4-2是系统中各个模块报 文帧的数据结构利用11位标识符的高3位编码模块节点,同时优先权也就确定 了。标识符越小,优先权越高,显然电机控制和速度反馈具有最高的优先权。接着 图像传感器感知追踪物体或障碍物,超声波测距具有次一级的优先权,通信模块 具有最低的优先权。
第3章智能机器人运动控制系统的通讯接口
表3-2各个模块报文帧数据结构
仲裁域(D15一D5) 控制域(D4-DO) 命令编码 数据域 模块号
0000000000 0001 0002 方向命令 1(电机控制)
0010000000 0000 2001 速度 2(速度传感器)
0100000000 0001 4002 方向信息 3(图像传感器)
0110000000 0001 6002 距离 4(超声波测距)
1000000000 0100 8008 保留 保留
1010000000 0100 A008 各种信息 6(通信模块)
因为采用标准帧结构,所以可以设定总线传输速率为250kbs。拟定每次传送 的数据量为23个字节,每次传送的实际数据量是理论传送数据量的3倍,因此,
总线上总共传送的数据量为23×8×3=552B。每次传送时间大约为2.21ms,考虑 到数据间隙,可保证控制周期在10ms,满足机器人小车的运动控制要求。
3.1.3CAN发送和接收程序
本文提供一种以CAN发送采用查询方式的程序设计逻辑,既要查询运动控制 卡LF2407A的CANTCR位是否发送成功,又要查询是否收到应答信号,两者都符 合时才停止发送。以速度传感器模块为例,查询发送程序如下:
SENDRETURN=o∥查询是否收到麻答信号位吖
do{
CANTCR=0x0040; /*MBOX4请求发送+/
do{CANSEND=CANTCR&0x4000;/*查询发送标志位是否发送成’/
,while(CANSENI净---O);/*若不成功继续发送+,
CANSEND=0;
CANTCR---0x4000;/*清除发送标志吖
}while(SENDRETURN.一-O)∥若没有收到应答信号继续发送’,
为了提高系统的实时性,CAN接收采用中断方式。”。CAN接收中断可以设置 为高中断优先级和低中断优先级。进入接收中断子程序后,调用中断处理子程序。
成都理I:人学硕十学位论文
接收中断设置和接收子程序如下:
CANIMR=0x0F3FF;/*MBOXO中断使能,低中断优先级.,
CANIFR=0x0FFFF;,慵§全部中断标忠+/
flag--CANIFR&0x0100矿判断是否是MBOXO中断’,
if(flag---一Ox0100)
{调用MBOXO处理子程序}
else
{asm(”clrc INTM”)扩允许总中断+,
Retum;/*如果不是CAN接收中断,则直接返同吖
asm(“clrc INTM’';
扩开中断,冈为一进中断就自动关闭总中断・/