基于CAN总线的LCU逻辑控制单元内部安全通信协议方案设计

(整期优先)网络出版时间:2021-05-20
/ 2

基于 CAN总线的 LCU逻辑控制单元内部安全通信协议方案设计

刘伟鹏 1 张朋 2 张樱爔 3

中车大连机车车辆有限公司 辽宁大连 116000

摘 要 本文主要介绍了一种基于LCU逻辑控制单元内部CAN通信的安全通信协议设计方案,阐述了在通信协议上如何对重复、删除、插入、乱序、错码、延迟1】等通讯威胁进行防护。

关键词 LCU; CAN通信;安全通信协议

1 概述

本文主要介绍了热备双冗余逻辑控制单元背板CAN总线通讯协议。

1.1 CAN报文

应用层主要完成对发送或接收报文来完成CAN通讯。CAN报文传输主要由以下7个不同的帧类型所表示和控制:

心跳发送帧:用来发送板卡心跳。

启停帧:用于主板卡(MCU)控制各板卡启停,各板卡收到相应指令并执行后,使用相同帧向MCU回复。

控制帧:用于主板卡(MCU)控制各输入输出板卡(IO)主备状态,IO板收到相应指令并执行后,使用相同帧向MCU回复。

状态帧:用于主板卡(MCU)读取各板卡状态,各板卡收到请求指令,向MCU回复状态信息。

数据请求帧:用于主板卡(MCU)读取各板卡DI数据,IO板收到请求指令,进行数据采集操作,然后向MCU回复DI数据。

数据下发帧:用于主板卡(MCU)向各板卡发送DO数据,IO板收到输出指令,进行DO数据输出操作,然后向MCU回复相同帧。

整机停止帧:所有板卡都可发送整机停止帧,也均响应整机停止帧。

2 帧数据组成及通讯格式设计

2.1 帧数据组成

在本安全通讯协议中,采用序列号防护重复、删除、插入以及乱序等通讯威胁;采用CRC校验防护错码或数据损伤等威胁;采用超时防护延迟威胁。

主控板(MCU)主备系之间只有心跳发送帧,没有回复帧;MCU与输入输出板(IO)之间有五种帧类型:启停帧、控制帧、状态帧、数据请求帧以及数据下发帧;

所有设备都可发送整机停止帧,也均响应整机停止帧。

2.2 数据通讯格式

LCU设备均具有两条CAN总线,默认信任CAN0线路,CAN1作为备用线路,当一路CAN发生故障时切换信任线路到另一路。同时断开故障线路CAN数据收发。

LCU系统中MCU和IO板卡均有冗余设计。默认MCU A为主用设备,当MCU A发生故障时,切换主设备至MCU B。默认每组IO A为信任设备,当某个IO A设备发生故障时,切换信任设备至其相对应的IO B板卡,关闭对应IO A的CAN数据收发。

内部CAN通信采用点对点主从拉取式协议,即主设备每发一帧从设备回一帧。通信时,主用MCU板卡请求数据,其他板卡进行回复。系统上电初始化之后,MCU板卡依次请求各板卡状态信息,主用MCU确定其无故障后下发开始工作控制帧,各板卡开始正常工作。

周期性工作过程中,主用MCU在每个周期内依次向备用MCU发送心跳及DI信息、请求各IO板状态和数据,以及下发DO输出信息、向MVB板、CAN板请求状态及发送信息。各板卡收到请求帧后将数据信息及状态信息上报给主用MCU。

MCU拿到IO板卡的输入信息后,交给逻辑处理模块进行逻辑运算,将运算结果分别发给IO板卡,另外,MCU根据故障情况发出板卡的主备切换信息。

3 安全通信协议方案设计

3.1 序列号防护

每帧数据都包含有首字节的帧序号。同周期内所有帧的序号均相同,帧序号从0开始自增至255后继续从0开始循环,每周期自增加一,回复帧序号与请求帧序号相同。除整机停止帧外,其他所有通讯为点对点通讯,通讯帧ID中含有板卡地址,可防护通讯插入威胁。

MCU主备系之间的通讯,若主系接收备系心跳帧后发现序列号重复(与上次有效序列号相等),删除(大于上次有效序列号1以上)或者乱序(小于上次有效序列号),则主系在超过容忍次数后,进行整机宕机操作;若备系接收主系心跳帧后发现序列号重复(与上次有效序列号相等),删除(大于上次有效序列号1以上)或者乱序(小于上次有效序列号),则备系在超过容忍次数后,进行整机宕机操作。

MCU与IO板之间的通讯,若MCU板接收IO板回复帧后发现序列号重复(与上次有效序列号相等),删除(大于上次有效序列号1以上)或者乱序(小于上次有效序列号),则在超过容忍次数后,进行整机宕机操作;若IO板接收MCU板请求帧后发现序列号重复(与上次有效序列号相等),删除(大于上次有效序列号1以上)或者乱序(小于上次有效序列号),则在超过容忍次数后,进行整机宕机操作。经过分析,MCU主备系之间的心跳帧与MCU与IO板的状态帧、数据请求帧以及数据下发帧需要序列号进行防护相关的通讯威胁。

3.2 CRC校验防护

帧数据长度可为0-6字节,为0字节时当前帧仅包含帧序号和CRC校验。

每帧数据都包含有帧尾的单字节CRC校验。CRC所校验的数据为从每帧序号开始至数据帧结尾,数据为0则仅对帧序号进行校验,CRC校验模式采用先以多项式为0x8005的CRC16方法对数据进行校验,将生成的校验值以多项式为0x131的CRC8方法进行校验,最终校验值填入帧尾。经过分析,除整机停止帧外,其他所有帧都需要CRC校验来进行防护相关的通讯威胁。

3.3 超时防护

CAN安全通讯中采用超时防护数据帧延迟威胁。 MCU主备系之间的通讯,若主系在设定时间内未收到备系发送的心跳帧,则正常工作;若MCU备系在设定时间内未收到主系发送的心跳帧,则进行升主操作。

MCU与IO板之间的通讯,MCU板在发送数据帧后的规定时间内未收到IO板回复帧,则判断CAN通讯超时,即切换IO板卡;IO板卡在规定时间内未收到MCU发送的数据帧,则判断CAN通讯超时,进行宕机操作。经过分析,除整机停止帧外,其他所有帧都需要超时机制来进行防护相关的通讯威胁。

3.4 主备切换策略

IO板卡的冗余切换由主用MCU板卡进行控制:MCU在和IO板卡通信时若发现IO板产生故障,则MCU根据故障信息发出IO板卡的主备切换指令及停止指令;

MCU板卡之间的冗余切换通过心跳帧来控制:正常情况下MCU主板卡向MCU备板卡发送心跳信息,主设备标志及IO板DI信息,MCU备板卡向MCU主板卡发送心跳信息及备设备标志。当任意板卡接收到另一设备的心跳包信息中包含主设备标志,则将自身板卡降为备板卡避免产生双主设备的情况;MCU向IO板下发心跳数据用来辅助判断A、B主控板卡是否故障:MCU主板卡向IO板发送心跳信息,并标示当前设备为A或B。

5 结语

近年来,随着LCU逻辑控制单元在地铁列车上的应用越来越广泛,其安全性也越来越受到人们的重视,而对于通信层面的安全防护又是整个LCU系统的重中之重。本文分析了通信层面可能出现的通信威胁,进而针对这些威胁提出了有效的防护措施,从通信层面保证了通信安全,可为基于CAN总线的LCU逻辑控制单元通信协议设计提供借鉴。


参考文献

【1】杨剑,安全通信与安全通信标准EN50159【J】.铁路通信信号工程技术(RSCE),2014(2).