CAN 总线在舰船导航系统中的应用分析∗
2019-11-13芈小龙王亚波杨宗元
芈小龙 王亚波 杨宗元
(1.海军装备部 北京 100076)(2.武汉第二船舶设计研究所 武汉 430205)
1 引言
信息技术和网络技术的迅速发展对舰船导航系统信息传输提供了多种通讯传输方式。目前,舰船上已有的导航系统大多采用RS422串口、以太网构建系统网络[1~5]。串口扩展性差,以太网在传输带宽及节点数上虽有较大的提升,但传输延时具有不可预见性。舰船导航系统信息主要是以高频率、短报文为主,CAN 总线在短报文传输中的实时性、可预测性等特点能够更好地满足系统要求,填补原有通讯方式的不足。
为更好地验证CAN 总线性能与舰船导航系统传输要求匹配性,结合舰船导航系统信息种类、信息传输频率等实际特征,对CAN 总线性能进行了测试与分析。
2 测试系统设计
2.1 测试系统框架设计
CAN 总线传输测试系统由4 台基于VxWorks操作系统的PC 主机组成[6~8]。其中,PC 机1 为接收节点,模拟舰船导航系统综合处理类设备;PC机2~4 为发送节点,模拟舰船导航系统传感器类设备。CAN总线传输测试系统框架示意图如图1所示。
图1 CAN总线传输测试系统示意图
2.2 测试方法设计
1)网络稳定性测试方法
PC机2~4按照优先级设定以不同频率发送数据,数据帧格式包含当前帧号,帧号从0 开始,依次递增;数据帧内容采用自增模式,便于接收到数据后查验数据是否丢包。
2)网络吞吐率测试方法
PC 机2~4 按照优先级设定不间断发送数据,设置发送数据量,在发送完毕之后记录所花费的时间,根据发送数据量和发送时间即可计算出各发送节点数据发送速率;数据接收节点采用每接收到一定量数据即记录累计时间的方法进行记录,在数据接收完毕后剔除第一次记录的累计时间和最后一次记录的累计时间,根据中间有效计时和每段计时范围内的数据接收量,即可计算出接收节点的数据接收速率。
3)数据延时测试方法
PC机2~4按照优先级设定以不同频率发送数据,通过卫星对各PC 机进行校时。利用各PC 机本地时钟,分别记录各发送节点产生第一帧数据的时间和接收节点接收到最后一帧数据的时间,计算PC机2~4→PC机1的数据传输总延时。
4)网络负载能力测试方法
PC机2~4按照优先级设定以不同的频率发送数据,逐次提高各发送节点的数据量和更新频率,记录发送的总数据包数和丢失的数据包数。
3 测试软件设计
测试软件主要包括初始化模块、工作模式设定模块、信息发送处理模块和信息接收处理模块,测试软件总体框架如图2所示。
图2 测试软件总体框架图
3.1 传感器模式
3.1.1 信息发送处理
信息发送处理流程如图3所示。
3.1.2 数据帧格式
数据帧格式见表2。
为方便测试,对原始数据帧进行封装,增加其它辅助信息便于数据校验[9~10]。数据帧封装格式如图4所示。
图3 信息发送处理流程框图
表2 数据帧格式
图4 数据帧封装格式
3.1.3 时序
传感器模式时序如图5所示。
3.1.4 数据发送
CAN网络数据发送流程如图6所示。
根据CAN 网络协议规定,每次发送的数据帧容量最多不超过8 字节,因此,需对数据帧进行拆包处理[11],拆包处理过程如图7所示。
图5 传感器模式时序图
图6 CAN网络数据发送流程图
图7 数据帧拆包处理示意图
在进行数据帧拆包处理时,当发送的数据长度是8字节的整数倍时,每帧数据长度为8字节;当发送的数据长度不是8 字节的整数倍时,最后一帧数据帧的长度为余数字节,发送数据帧结构如图8 所示。为接收方便,在数据帧发送之前首先发送起始帧,规定起始帧的帧号为0;起始帧表明发送数据的开始,帧中含有发送数据的长度。在接收端可根据该数据进行组合得到实际发送的数送的数据,其帧结构及含义如图9 所示。数据帧发送结束后紧接着发送一帧结束帧,表明数据接收完毕,结束帧帧号规定为0x0f,其帧结构如图10所示。
图8 CAN发送MSG帧封装结构
图9 开始帧结构
图10 结束帧结构
3.1.5 数据存储
采用二进制格式进行数据存储。
3.2 信息处理模式
3.2.1 信息接收处理
信息接收处理流程如图11所示。
3.2.2 时序
为保证信息处理模式下有效接收各传感器发送的数据,需设定信息处理模式工作时序,信息处理模式时序控制图如图12 所示。首先初始化系统运行参数,然后启动定时器对任务进行计时以实现任务的周期执行,当数据接收处理和储存执行完毕,任务挂起以等待定时器结束,从而转入下一周期的任务执行。
图11 信息接收处理流程图
图12 信息处理模式时序控制图
3.2.3 数据接收
根据传感器模式从对应的地址依次读取各传感器发送的数据。
图13 CAN总线接收时序图
在信息处理模式端,首先启动主任务初始化,在主任务进程中对CAN 总线数据读取任务进行初始化。据读取任务优先级低于主任务。CAN 总线接收时序图如图13所示。
两个任务交替周期执行并设置缓冲区进行任务间的通信。主任务每个周期均读取数据缓冲区,如果数据有效标志位有效,则说明组包成功,主任务对读取到的缓冲区数据进行进一步处理;如果数据有效标志位无效,则不做进一步处理。CAN网络数据组包流程图如14所示。
图14 CAN网络数据组包流程图
3.2.4 数据存储
采用二进制格式进行数据存储。
4 测试结果及分析
CAN总线组网性能测试结果见表3~6。
表3测试结果表明,在CAN总线允许带宽内进行数据传输,未出现任何丢包现象,CAN 总线网络运行稳定。
表3 4发1收网络稳定性组网测试结果表
表4 测试结果表明,CAN 总线网络最大发送速率为0.568Mbps;当总线网络中节点数量增加时,由于不同节点优先级不同,CAN 总线网络需进行仲裁,发送速率会降低。CAN总线网络接收上限速率为0.689Mbps左右。
表5 测试结果表明,周期性数据帧传输模式,CAN 总线网络数据传输延时典型值为0.608ms;偶发性数据帧传输模式下,CAN总线网络数据传输延时典型值为0.625ms。
表5 网络传输延时测试结果表
表6 测试结果表明,在接收到一定量数据时会出现丢包现象,优先级越低数据丢包率越大。造成此现象的主要原因是信息接收处理端缓冲区溢出导致数据丢失[12]。
5 结语
通过搭建CAN 总线数据传输测试系统,结合舰船导航系统信息实际特征,对CAN 总线网络性能进行了测试,测试结果表明,CAN 总线性能满足舰船导航系统运动姿态信息传输需求,可作为传输平台在舰船导航系统中应用。
表6 4发1收网络负载能力测试表