赵明,陈彧欣
(北京电子工程总体研究所,北京 100854)
发射车冗余热备份CAN总线网络实现方法研究*
赵明,陈彧欣
(北京电子工程总体研究所,北京 100854)
研究了一种以发控系统为核心的车载CAN总线网络冗余热备份实现方法,提出了具体的硬件、软件设计思路。通过该方法,可实现整车通信总线网络的冗余热切换,有效提升发射车的任务可靠性,保障发射车的作战效能。
CAN总线;冗余;热备份;发射控制;Vxworks;设计方法
发射车是地基导弹武器系统的重要组成部分,以发控系统作为控制核心,控制其他分系统完成导弹的初始基准建立、起竖调转、射前检测和发射控制[1]。
通常传统的设计方法是将发控系统与其他分系统以点对点方式进行信息交互;但在分系统较多的情况下,这种方式会导致电缆连接关系复杂,不利于扩展升级。而采用现场总线技术可以使各分系统间的信息连接和传递变得简单可靠[2]。
控制器局域网络(controller area network,CAN)总线作为一个成熟的控制局域网络,已被广泛应用到机器人、汽车、数控机床、自动化仪表等领域的现场通信中[3]。虽然CAN总线协议本身有很强的检错纠错能力,但在实际应用中硬件电路的连接不牢、传输介质的损坏、总线驱动器或控制器的损坏都会影响CAN通信的可靠性。
发射车的任务可靠性直接影响到导弹发射任务的实施和结果,而其通信总线网络运行的可靠性正是关键因素之一。通常有2种提高可靠性的方法:一种是避错(fault avoidance),就是通过对系统的完美规避和设计,使错误、故障不产生,即提高基本可靠性;另外一种是容错(fault tolerance),就是当系统出现故障时,系统也能正常工作,并且执行结果也不会因系统故障而发生差错,即提高任务可靠性[4-5]。
本文针对发射车的具体特点,采取主动容错方式提高可靠性,提出了一种冗余热备份CAN总线网络的实现方式。
1.1 总线冗余设计
为了增加整个总线的可靠性,采用了双冗余的总线型网络结构[6-7],包括A,B 2路总线相互独立的,互为备份,发射车内部各设备构成总线通信节点,每个总线设备同时接A,B总线,互为备份,每个单机接口电路有独立2组总线控制芯片和总线接口芯片[8-9],如图 1所示。
车载系统上电后默认选择一路总线工作,当该总线发生故障后,便迅速切换到另一路总线上来,保证CAN节点发送、读取数据帧的正确性和实时性,使CAN总线网络仍具备完成信息交互的能力。
由于CAN总线的控制器和驱动器可以选择不同芯片,为了提高整个CAN总线网络的兼容性,可对CAN总线节点的电气接口进行了统一设计:
(1) CAN控制器选择SJA1000,频率16 MHz;
(2) CAN驱动器选择TJA1040(其管脚STB接低电平)或者82C250;
(3) 控制器与驱动器之间采用高速光耦进行隔离,光耦两端分别由隔离直流电源进行供电。
1.2 总线架构设计
考虑到发控系统作为发射车的核心控制系统,其他分系统均受其控制,因此将发控设备作为CAN总线网络的主节点,其他分系统作为从节点[10-11]。通过合理的应用层协议设计,保证从节点不主动发送数据,只有当接收到主节点的命令帧后才能够回送应答帧。
整个CAN总线网络结构如图 2所示。
图1 接口电路Fig.1 Interface circuit
图2 CAN总线网络结构Fig.2 Networkstructure of CAN Bus
2.1 CAN总线应用层协议设计
为了相对简化软件复杂程度,提升冗余热备份功能的可靠性。通过应用层协议设计,定义了5类信息类型,可实现主从节点之间信息交互为“一问一答”式;从而能够保证CAN总线的通讯是由主节点发起的,从节点是不允许主动发送数据的。整个CAN总线的故障判定和冗余软切换由主节点来进行控制。
本文使用了CAN2.0B协议中的标准帧[12],由7个不同的位域组成,即帧起始、仲裁域、控制域、数据域、CRC(cyclic redundancy check)域、应答域和帧尾,如图 3所示。
利用仲裁域提供的用户自定义的11位,定义了发送方节点标识、接收方节点标识、总线标识、帧标识,如表 1所示。
信息类型的定义如表 2所示。
当传输的数据包长度不足8字节时,采用单帧格式(数据域通用格式见表3);当传输的数据包长度大于8字节时,采用多帧格式(数据帧通用格式如表4~6所示)。
2.2 冗余软切换策略
CAN总线故障主要分3种情况:
(1) 数据帧发送错误;
(2) 在规定时间内未接收到应答帧;
(3) 接收到的应答帧无效。
针对以上3种故障应采取不同的检测方式:
(1) 第1种故障情况,可通过底层驱动程序读取总线控制器SJA1000的状态寄存器看其发送标志位是否被置位,如已置位则表示数据帧发送成功,
图3 数据帧格式
Fig.3 Format of data frame
表1 标准帧格式
表2 信息类型
表3 单帧数据域格式
表4 多帧数据域格式(首帧)
表5 多帧数据域格式(中间帧)
表6 多帧数据帧格式(尾帧)
反之则表示发送错误;
(2) 第2种故障情况,主节点发送数据帧后,启动定时器,如在100 ms内没收到应答帧,则认为故障;
(3) 第3种故障情况,当接收到应答帧时,应检测应答帧ID,同时作应用层协议校验,如ID有误或校验和错误都说明接收的应答帧无效。
针对上述的3种故障,需进行总线切换,主节点通过另外一条总线重新发送数据帧。
2.3 通讯流程设计
(1) 主节点
发控系统作为主节点,处于实时性、可靠性、安全性的考虑,选择Vxworks作为操作系统。Vxworks作为嵌入式实时操作系统,主要具有如下特点[13]:
1) 多任务调度(采用基于优先级抢占方式,同时支持同优先级任务间的分时间片调度);
2) 任务间的同步(提供信号量机制);
3) 任务间的通信机制(提供消息队列机制);
4) 中断处理;
5) 定时器和内存管理机制。
主节点命令帧发送的任务架构和流程如图4,5所示。命令帧发送任务与功能任务之间通过消息队列联系,共享待发送的CAN总线数据(即命令帧数据)。功能任务执行时,将需要发送的命令帧数据写入命令帧存储消息队列中。命令帧发送任务周期性的监测命令帧存储消息队列状态,一旦消息队列中有了新的消息,立即读取后,将其发送出去。
有可能有几个功能任务在同时往消息队列写入消息,通过消息队列的存储容量和先进先出的特性,能够保证所有的数据不会覆盖丢失。一旦命令帧发送任务抢占CPU控制权后,会将所有的命令帧数据发送出去。
图4 命令帧发送相关任务架构Fig.4 Sending- task infrastructure of command frame
主节点接收应答帧的任务架构和流程如图6,7所示。同时建立A,B总线应答帧接收任务,监听A,B总线的状态。A,B总线应答帧接收任务与功能任务之间通过消息队列联系,共享接收到的CAN总线数据(即应答帧数据)。
对应每个应答帧,建立独立的存储消息队列,是为了确保在多个功能任务同时进行CAN总线通信时,不会导致相互冲突。
(2) 从节点
从节点只需同时监听A,B总线,一旦接收到命令帧,则按照通信协议的要求,按照前文所述的总线选择原则,回送应答帧即可。
图5 命令帧发送流程Fig.5 Sending flow of command frame
2.4 总线仲裁
由于软件设计采取了多条命令并发处理的机制,会发生CAN总线不同的节点可能会同时发送数据的情况,导致数据发送冲突。此时,依靠CAN总线自身的总线仲裁机制,来避免出现这样的问题。
CAN总线采取的是“非破坏性总线优先逐位仲裁”技术[14]:当多个节点开始传送它们各自的报文时,标识符的每一位都被写到总线上(高位在先,低位在后),而且能够被每一个节点读回。如果一个节点写进了隐性位“1”而读回显性位“0”,它会知道另一个较低标识符号码的(高优先权)节点正在访问总线,于是停止传送报文(丢失仲裁)并转入接收状态。
图6 应答帧接收相关任务架构Fig.6 Receiving- task infrastructure of response frame
图7 应答帧接收流程Fig.7 Receiving flow of response frame
通过这种仲裁技术,能够确保CAN总线的实时性需求,让优先级最高的节点先发送数据,低优先级的节点会在优先级高的节点结束发送后再发送数据,保证不会丢失任何数据。
为验证本文设计的CAN总线网络冗余热备份实现效果,按图 8所示的原理搭建试验平台。CAN总线上挂1个主节点、1个从节点和1个CAN总线监视器,CAN总线监视器能显示主节点和从节点发送的数据。其中CAN 0通道为A总线,CAN 1通道为B总线。
CAN总线监视器采用周立功CAN- USB分析盒,界面中时间标识栏(TimeIdentifier)1个单位表示0.1 ms[15]。
以一组CAN通信数据为试验范例,正常通信结果在CAN总线监视器上的显示如图 9的第0~7帧所示所示(回复间隔时间87.1 ms)。
命令帧:a0
应答帧(7帧组成的多帧):
01 07 d0 01 00 00 00 0b
82 01 01 01 01 00 00 04
83 0a 00 0a 00 94 11 b8
84 0b 05 00 06 00 07 00
85 08 00 09 00 0a 00 0b
86 00 0c 00 0d 00 8f 00
c7 cc e9
针对CAN总线的主要故障,分别作出以下3种模拟:
(1) 发送错误
主节点通过CAN 0通道模拟发送命令帧a0错误,CAN总线监视器显示未收到此命令。随后主节点切换到CAN 1通道发送命令帧a0,从节点通过CAN 1通道发送应答帧。整个通讯过程如图10的第8~15帧所示。
图10 发送错误Fig.10 Send error
(2) 应答超时
主节点通过CAN 1通道发送命令帧a0,从节点不应答(模拟应答超时)。112.1 ms(100 ms超时等待时间加上软件一定的时间开销)后主节点切换到CAN 0通道发送命令帧a0,从节点通过CAN 0通道发送应答帧。整个通讯过程如图11的第16~24帧所示。
(3) 应答错误
主节点通过CAN 0通道发送命令帧a0,从节点同样通过CAN 0通道应答帧,但模拟应答错误,其中最后一个数据为55(正确的为e9)。随后主节点切换到CAN 1通道发送命令帧a0,从节点通过CAN 1通道发送正确应答帧(最后一个数据为e9),主节点停止发送命令。整个通讯过程如图 12的第25~40帧所示。
图11 应答超时Fig.11 Time out of answer
图12 应答错误Fig.12 Answer error
本文针对发射车的实际特点,通过合理可行的软硬件设计,研究建立了一种以发控系统为核心的车载CAN总线网络冗余热备份实现方法,其具有可靠性高、稳定性好、实时性强等特点。通过该方法,可以实现整车通信总线网络的冗余热切换,提升发射车任务可靠性,保障发射车作战效能。该方法也可适用于其他类似的军用复杂系统中。
[1] 赵伟忠.现场总线技术在导弹发射控制系统设计中的应用研究[D].上海:上海交通大学,2007. ZHAO Wei- zhong.The Application and Research of the Field Bus Technology in Design of The Missile Launch Control System[D].Shanghai:Shanghai Jiaotong University,2007.
[2] 方晓柯.现场总线网络技术的研究[D].沈阳:东北大学,2006. FANG Xiao- ke.Research on Fieldbus Network Technology[D].Shenyang:Northeast University,2006.
[3] 邬宽明.CAN总线原理和应用系统设计[M].北京:北京航空航天大学出版社,1996. WU Kuan- ming.Principle and Application System Design of CAN Bus[M].Beijing:Beihang University Press,1996.
[4] 郭晓松,王振业,于传强,等.基于CAN总线的容错冗余技术研究[J].计算机测量与控制,2009,17(1):60-62. GUO Xiao- song,WANG Zhen- ye,YU Chuan- qiang,et al. Research of the Fault Tolerant Redundant Technology Based on CAN Bus[J].Computer Measurement and Control,2009,17(1):60-62.
[5] 刘承智,丁国良,陈家文,等.基于分组的CAN总线容错优先级分配策略[J].计算机测量与控制,2012,20(12):3321-3324. LIU Cheng- zhi,DING Guo- liang,CHEN Jia- wen,et al.Fault- Tolerant Priority Assignment Algorithm Based on Classification of CAN[J].Computer Measurement & Control,2012,20(12):3321-3324.
[6] 禹春来,许化龙,刘根旺,等.CAN总线冗余方法研究[J].测控技术,2003,22(10):28-41. YU Chun- lai,XU Hua- long,LIU Gen- wang,et al.Research of the Redundant Methods of CAN[J].Measurement & Control Technology,2003,22(10):28-41.
[7] 朱开锐,罗雄文.CAN总线与串行总线高速接口的设计[J].探测与控制学报,2009,31(S1):80-85. ZHU Kai- rui,LUO Xiong- wen.Design of High Speed CAN Bus and Serial Communication Interface[J].Journal of Detection & Control,2009,31(S1):80-85.
[8] 胡光永.CAN总线节点电路的设计与实现[J].微计算机信息,2006,22(2):1-3. HU Guang- yong.Design and Implementation of CAN Bus Node Circuit[J].Microcomputer Information,2006,22(2):1-3.
[9] 朱宝增,黎明也,严华,等.机载CAN总线节点的模块化设计与实现[J].电子设计工程,2014,22(16):151-158. ZHU Bao- zeng,LI Ming- ye,YAN Hua,et al.Modular Design and Implementation of Airborne CAN Bus Node[J].Electronic Design Engineering,2014,22(16):151-158.
[10] 史久根,张培仁.CAN总线在实时系统中应用的研究[J].中国科学技术大学学报,2005,35(2):195-201. SHI Jiu- gen,ZHANG Pei- ren.The Study of CAN Network’s Application in Real- Time System[J].Journal of University of Science and Technology of China,2005,35(2):195-201.
[11] 苏虎平,沈三民,刘文怡,等.基于冗余CAN总线的实时通信系统设计[J].自动化与仪表,2013,28(1):26-55. SU Hu- ping,SHEN San- min,LIU Wen- yi,et al.Real- Time Communication System Based on Redundancy CAN- Bus[J].Automation & Instrumentation,2013,28(1):26-55.
[12] 谢颜辉.基于CAN协议的现场总线仪表的设计[D].重庆:重庆大学,2002. XIE Yan- hui.Design of Fieldbus Instrument Based on CAN Protocol[D].Chongqing:Chongqing University,2002.
[13] 张梅.嵌入式操作系统VxWorks在导弹武器测试发射控制领域的可行性应用研究[J].航天控制,2004,22(4):91-96. ZHANG Mei.Study on Application of Embedded RTOS Vx Works in Test Launch and Control System for Missile Weapon[J].Aerospace Control,2004,22(4):91-96.
[14] 王桂荣,钱剑敏.CAN总线和基于CAN总线的高层协议[J].计算机测量与控制,2003,11(5):391-394. WANG Gui- rong,QIAN Jian- min.CAN Bus and the Higher Layer Protocol Based on CAN Protocol[J].Computer Measurement and Control,2003,11(5):391-394.
[15] CANNalyst- l单路CAN分析仪[EB/OL].[2016-06-15].http:∥www.zlgmcu.com/tools/canbus/CANalyst- l.asp. CANNalyst- l Single CAN Analyzer[EB/OL].[2016-06-15].http:∥www.zlgmcu.com/tools/canbus/CANalyst- l.asp.
Design Method of Launch Vehicle’s Dual- Redundancy CAN Bus
ZHAO Ming,CHEN Yu- xin
(Beijing Institute of Electronic System Engineering,Beijing 100854,China)
The design method of launch vehicle’s dual- redundancy CAN(controller area network) bus is summarized. The design of bus architecture, the electrical interface, the communication protocol and the software are introduced. Redundancy backup and auto- switching of launch vehicle’s information- interactive system come true. The mission reliability of launch vehicle is improved, and the operational efficiency of launch vehicle in the battlefield is ensured.
CAN(controller area network) bus; redundancy; hot backup;launch control; Vxworks; design method
2016-06-15;
2016-11-18 基金项目:有 作者简介:赵明(1980-),男,四川乐山人。高工,硕士,研究方向为测发控技术。
10.3969/j.issn.1009- 086x.2017.04.026
TJ768.2;TP393.1
A
1009- 086X(2017)- 04- 0162- 10
通信地址:100854 北京市142信箱30分箱 E- mail:buaazm2000@163.com