一种用于安全计算机的CAN总线通信方法与流程

文档序号:24052069发布日期:2021-02-23 23:02阅读:390来源:国知局
一种用于安全计算机的CAN总线通信方法与流程
一种用于安全计算机的can总线通信方法
技术领域
[0001]
本发明涉及一种can总线通信方法,尤其是涉及一种用于安全计算机的can总线通信方法。


背景技术:

[0002]
安全计算机作为轨道交通安全的核心设备,列控系统中众多安全相关子系统如计算机联锁系统cbi、列车自动防护系统atp、区域控制器zc及列车自动驾驶系统ato都需要运行在其之上。安全计算机平台采用故障导向安全的机制负责整个系统的运行安全,通常是采用二乘二取二的安全架构,由两系构成热备冗余结构,其中一系为主系,另一系为备系,每系由两块逻辑运算板mpu进行二取二数据比较,生成的安全数据由通信板mcu负责对外输出;其中mpu可以达到sil4安全等级,而mcu则是按照sil0安全等级设计。
[0003]
安全计算机内部mpu与mpu,mpu与mcu之间需要采用具有低功耗、高速率和高抗噪性的高速总线通信(如mlvds);而mcu与外设i/o板卡之间传输距离较远,对实时性和可靠性要求较高,通常采用can总线来实现通信。驱动安全数据的生成与采集安全数据的校验、接收需要在sil4的mpu上进行,而can总线的通信是由mcu与i/o板卡实现的。
[0004]
因此如何来保证安全数据与非安全通信数据在不同sil等级板卡上实现安全通信,成为需要解决的技术问题。


技术实现要素:

[0005]
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种用于安全计算机的can总线通信方法,该方法能够保证安全数据与非安全通信数据在不同sil等级板卡上实现,并实现安全计算机与i/o板卡的can总线安全通信。
[0006]
本发明的目的可以通过以下技术方案来实现:
[0007]
根据本发明的一个方面,提供了一种用于安全计算机的can总线通信方法,所述的安全计算机内部包括逻辑运算板mpu和通信板mcu,所述的通信方法为:
[0008]
通过安全数据由mpu负责生成与校验,而非安全数据直接由mcu生成,mcu基于can总线并采用canopen协议实现与i/o板卡的安全通信。
[0009]
作为优选的技术方案,所述的通信方法具体包括以下步骤:
[0010]
步骤1)mpu每隔固定时间configperiod负责为每个i/o节点的计算配置数据授权码;mpu通过mlvds总线将授权码发给mcu,并存在mcu本地;
[0011]
步骤2)mpu每个周期为每个i/o节点预先生成n包安全数据pdo,其中n=mpu处理周期/mcu处理周期,主系mpu在每个周期开始时刻向mlvds总线发送时钟同步帧mpu_ts,用于拉齐所有板卡处理周期;
[0012]
步骤3)mcu接收mpu_ts来同步本地时钟,在处理n个周期后等待下一包mpu_ts;mcu在每个通信周期开始时刻向can总线广播can_sync和can_ts;i/o节点收到can_sync后更新本地canopen时间,将本周期安全数据生成pdo,发送给mcu,收到can_ts后会根据该时间重
新设置本地canopen时间;mcu收到can_sync从消息队列中取出mpu生成的当前周期pdo,发送向i/o节点,其中can_sync为同步帧;
[0013]
步骤4)mcu每周期将收到的i/o节点pdo通过mlvds总线发送给mpu,mpu在每周期会收到来自单个节点n包pdo,mpu负责对这些pdo进行完整性和时效性校验;
[0014]
步骤5)mcu负责管理can总线上所有通信节点,负责生成canopen协议中非安全消息;在每个周期内完成发送和接收canopen协议非安全相关消息;
[0015]
步骤6)i/o节点每隔configperiod向mcu请求配置数据和配置数据授权码时,mcu通过can_tftp消息,将本地保存的最新配置数据和授权码发给i/o节点,i/o节点收到配置数据后,本地根据配置数据重新计算授权码并跟收到的授权码进行比较,如果一致则使用该配置,否则丢弃。
[0016]
作为优选的技术方案,所述的步骤1)中的授权码由节点号node_id、配置数据crc32和更新计数update_counter通过异或得到。
[0017]
作为优选的技术方案,所述的步骤2)中的pdo由8个字节的安全数据和4个字节校验域组成,其中校验域由安全数据crc32、node_id、canopen安全时间异或得到。
[0018]
作为优选的技术方案,所述的canopen安全时间为can_ts+i
×
can_period,can_ts为mpu当前周期canopen时间,i为时间偏移值,i的范围为[0,n-1],can_period为canopen通信周期。
[0019]
作为优选的技术方案,单系内的两块mpu在每个周期处理结束前会对所有pdo、can_ts进行一致性比较,比较通过后发送给mcu;备系mpu会同步主系mpu的关键性数据can_ts。
[0020]
作为优选的技术方案,所述的步骤3)中的mcu接收来自mpu的pdo和can_ts,并存在本地消息队列中。
[0021]
作为优选的技术方案,所述的步骤5)中的非安全消息包括同步帧can_sync,网管消息can_nmt,心跳消息can_hb、配置数据消息can_tftp。
[0022]
作为优选的技术方案,所述的步骤2)中的canopen通信周期较短。
[0023]
作为优选的技术方案,所述的步骤2)中的canopen通信周期为50ms。
[0024]
与现有技术相比,本发明具有以下优点:
[0025]
1、将配置数据授权码和pdo的组包和校验放在mpu上完成,保证在sil4的安全架构下处理can总线关键数据;
[0026]
2、mpu与mcu通过不同的处理主周期实现异步通信,既保证了mpu能够适应多种不同安全应用,也实现了mcu与i/o板卡的高效can总线通信;
[0027]
3、mcu负责管理can总线上所有通信节点,负责生成canopen协议中非安全消息,减少了mpu的处理数据量,降低了mpu的运算负载。
附图说明
[0028]
图1是授权码消息格式示意图。
[0029]
图2是pdo与can_ts消息格式示意图。
[0030]
图3是mpu与mcu,i/o板卡的通信时序图。
具体实施方式
[0031]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
[0032]
本发明一种用于安全计算机的can总线通信方法,该方法包括以下步骤:
[0033]
1)mpu每隔固定时间(configperiod)负责为每个i/o节点的计算配置数据授权码,授权码是由节点号node_id、配置数据crc32和更新计数update_counter通过异或,负责校验配置数据的完整性和时效性;mpu通过mlvds总线将授权码发给mcu,并存在mcu本地;
[0034]
2)为了保证实时性,mcu的canopen通信周期(can_period)往往较短(如50ms),且应与i/o节点保持一致can通信周期;而由于应用逻辑的不同,mpu处理周期会有多种可能性,为了保证mpu与mcu处理周期的兼容性,mpu每个周期为每个i/o节点预先生成n包安全数据pdo,其中n=mpu处理周期/mcu处理周期;pdo由8个字节的安全数据和4个字节校验域组成,校验域由安全数据crc32、node_id、canopen安全时间异或得到;其中每包消息的安全时间为can_ts+i*can_period,can_ts为mpu当前周期canopen时间,i为时间偏移值(范围为[0,n-1]);主系mpu在每个周期开始时刻向mlvds总线发送时钟同步帧mpu_ts,用于拉齐所有板卡处理周期;单系内的两块mpu在每个周期处理结束前会对所有pdo、can_ts进行一致性比较,比较通过后发送给mcu;备系mpu会同步主系mpu的关键性数据如can_ts等;
[0035]
3)mcu接收mpu_ts来同步本地时钟,在处理n个周期后等待下一包mpu_ts;mcu接收来自mpu的pdo和can_ts,并存在本地消息队列中;mcu在每个通信周期开始时刻向can总线广播can_sync和can_ts;i/o节点收到can_sync后更新本地canopen时间,将本周期安全数据生成pdo,发送给mcu,收到can_ts后会根据该时间重新设置本地canopen时间;mcu收到can_sync从消息队列中取出mpu生成的当前周期pdo,发送向i/o节点;
[0036]
4)mcu每周期将收到的i/o节点pdo通过mlvds总线发送给mpu,mpu在每周期会收到来自单个节点n包pdo,mpu负责对这些pdo进行完整性和时效性校验;
[0037]
5)mcu负责管理can总线上所有通信节点,负责生成canopen协议中非安全消息,包括同步帧(can_sync),网管消息(can_nmt),心跳消息(can_hb)、配置数据消息(can_tftp)等;在每个周期内完成发送和接收canopen协议非安全相关消息;
[0038]
6)i/o节点每隔configperiod向mcu请求配置数据和配置数据授权码时,mcu通过can_tftp消息,将本地保存的最新配置数据和授权码发给i/o节点,i/o节点收到配置数据后,本地根据配置数据重新计算授权码并跟收到的授权码进行比较,如果一致则使用该配置,否则丢弃,有效地保证了配置数据的时效性和完整性。
[0039]
具体实施例
[0040]
如图1-3所示,具体实施步骤如下。
[0041]
步骤1,设定mpu的主周期为150ms,mcu的处理周期为50ms。mpu在tick0时刻开始主周期处理,向总线发送时钟帧mpu_ts用于同步时序;
[0042]
步骤2,mcu收到mpu_ts后开始50ms的主周期处理,向can总线发送can_sync,can_ts用于与i/o节点同步时序;
[0043]
步骤3,mcu收到自身发送的can_sync后开始发送驱动数据can_pdo(上周期接收来
自mpu)给i/o节点,i/o节点收到can_sync后开始发送采集数据can_pdo给mcu;
[0044]
步骤4,mcu发送can_nmt对can总线进行管理;mcu与i/o节点错峰发送心跳消息汇报自身状态信息;
[0045]
步骤5,i/o节点发送can_tftp消息向mcu请求配置数据和authorcode,mcu根据请求消息向对应节点发送配置数据和authorcode(最近一次接收来自mpu);i/o节点收到配置数据后,通过对配置数据重新计算authorcode,并与接收到authorcode进行比较来判断配置数据的正确性;
[0046]
步骤6,mcu在规定的时间点(50ms结束前)通过mlvds总线向mpu发送采集数据pdo,由mpu负责校验并处理该pdo数据;
[0047]
步骤7,mcu继续第2和第3个50ms主周期处理,处理逻辑与第1个50ms主周期一致;
[0048]
步骤8,mpu在主周期处理结束前(tick0+150ms前)将本周期计算的authorcode和pdo+can_ts通过mlvds总线发给mcu,作为mcu下3个周期的发送数据。
[0049]
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1