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

发表时间:2021/5/21   来源:《科学与技术》2021年第29卷4期   作者:刘伟鹏 张朋 张樱爔
[导读] 本文主要介绍了一种基于LCU逻辑控制单元内部CAN
        刘伟鹏 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).
投稿 打印文章 转寄朋友 留言编辑 收藏文章
  期刊推荐
1/1
转寄给朋友
朋友的昵称:
朋友的邮件地址:
您的昵称:
您的邮件地址:
邮件主题:
推荐理由:

写信给编辑
标题:
内容:
您的昵称:
您的邮件地址: