吕孟恩,韩晓明,张鹏军
(中北大学 机电工程学院,太原030051)
目前武器系统通讯仍然多采用CAN 总线,随着对武器系统控制速率及精度要求的不断提高,CAN总线逐渐显现出不足,如:总线通信速率在系统中某些关键部位无法达到预期要求;传输模式过于简单等。FlexRay 总线具有高传输效率、故障可容错等特点,弥补了CAN 总线的不足,于是FlexRay 总线技术在火炮系统中得到应用。FlexRay 总线协议中数据段的长度为254 字节,而CAN 总线的数据段长度为13 字节,因此当火控系统中同时存在CAN 协议与FlexRay 协议时,若要实现两种总线的通信,首先要解决数据帧格式不统一的问题。
CAN 总线使用串行通讯方式,支持分布式实时控制,工作方法有多主工作方式、非破坏仲裁技术和接收滤波3 种。它的数据帧分为标准帧和扩展帧,均由7 个位场组成,如图1所示[1]。

图1 CAN 2.0B 标准数据帧格式Fig.1 CAN 2.0B standard data frame format
帧起始是数据帧的起始标志,是一个显性位;仲裁场包含了11 位的识别符和远程发送请求位(RTR),节点根据标识符的值判断是否接收该报文;控制场由一个4 位的数据长度代码和2 个显性保留位组成,DLC 长度可以作为判断数据是否全部接收的依据;数据场中存放的是将要发送的数据,数据长度最高为8 个字节,最低可以为0 字节,由高位到低位依次发送;CRC 场包含CRC 序列和CRC界定符;应答场由应答间隙和应答界定符组成,应答间隙中的ACK 信号可以作为判断接收器接收到的报文是否有效的依据,若接收到的报告为 “显性”,则报文接收成功,若接收到的报告为“隐性”,则报文接收失败[2]。……