一种CAN总线通信方法与流程

文档序号:15466076发布日期:2018-09-18 19:21阅读:3034来源:国知局

本发明涉及汽车通信领域,具体涉及一种用于CAN总线消息管理的方法。



背景技术:

CAN总线由于其易用、高效在汽车领域得到了广泛的应用。

然而有可能通过注入假的CAN消息,对车辆的功能部件进行攻击,例如通过对车辆内的电子控制单元ECU(Electronic Control Unit)进行重新编程,或者挂载到CAN总线上,影响车辆的行驶安全。



技术实现要素:

针对现有技术中存在的问题,本发明要解决的问题是提供一种用于CAN总线消息管理的方法,通过限制从节点的消息发送时段及相关检测,避免假的CAN消息对ECU的攻击,从而保证行车的安全。

本发明提供一种CAN总线通信方法,CAN总线上挂载有主节点以及至少一个从节点,所述方法包括以下步骤:主节点发送管理帧,所述管理帧指定每个从节点的发送时段;从节点接收管理帧;从节点从管理帧中获知自己的发送时段,其发送器只在自己的发送时段中发送消息;如果主节点接收到非发送时段中发送的消息,识别出CAN总线遭受攻击,非发送时段是指发送周期中所有从节点的发送时段之外的时段。

进一步地,所述方法还包括以下步骤:从节点从管理帧中获知其他从节点的发送时段;所述从节点的接收器只接收其他从节点的发送时段中发送的消息。

进一步地,所述方法还包括以下步骤:从节点从管理帧中获知与自己相关的从节点的发送时段;每个从节点的接收器只接收与自己相关的从节点的发送时段中发送的消息。

进一步地,所述方法还包括以下步骤:如果从节点在自己的当前发送时段中仲裁失败,所述从节点在自己的下一个发送时段发送第一消息;主节点接收到从节点发出的第一消息,识别出CAN总线遭受攻击。

进一步地,第一消息的标识符的所有的位为显性位。

进一步地,主节点以固定时间间隔或非固定时间间隔发送管理帧。

进一步地,所述方法还包括以下步骤:主节点获取更新的从节点列表;主节点根据从节点列表更新管理帧;在下一发送时段发送更新后的管理帧。

进一步地,所述方法还包括以下步骤:主节点发送同步帧。

进一步地,所述方法还包括以下步骤:从节点接收管理帧或同步帧后,同步时钟。

与现有技术相比,本发明提供的CAN总线通信方法,具有以下有益效果:通过每个从节点在指定的发送时段发送消息,识别出CAN总线遭受攻击,发出CAN总线遭受攻击警报,以便及时处理,从而保证行车安全。

附图说明

图1是本发明的一个实施例的CAN总线通信系统;

图2是从节点的发送时段示意图;

图3是在非发送时段出现假消息的示意图;

图4是在非发送时段与发送时段出现假消息的示意图。

具体实施方式

如图1所示,本发明的一个实施例的CAN总线通信系统为车辆中的高速CAN总线通信系统,CAN总线上挂载有主节点以及至少一个从节点。

本实施例中,CAN总线上主节点为车身控制模块(Body control module,简称BCM),从节点例如包括发动机管理系统(Engine manage system,EMS)、变速箱控制单元(Transmission Control Unit,TCU)、安全气囊控制单元(Airbag control unit,ACU)、防抱死制动系统(Antilock brake system,ABS)、胎压监测系统(Tire pressure monitor system,TPMS)以及组合仪表控制器(Instrument cluster module,ICM)。

高速CAN总线两端需要设置终端电阻,以防止在总线终端的反射,本实施例中,终端电阻分别设置于BCM与ICM中。

上述高速CAN总线通信系统采用的CAN总线通信方法包括以下步骤:主节点BCM发送管理帧,管理帧指定每个从节点EMS、TCU、ACU、ABS、TPMS、ICM的发送时段分别为P1、P2、P3、P4、P5、P6,如图2所示,S1是一个发送周期的开始时刻;从节点EMS、TCU、ACU、ABS、TPMS、ICM接收管理帧;从节点EMS、TCU、ACU、ABS、TPMS、ICM从管理帧中获知自己的发送时段,其发送器只在自己的发送时段中发送消息,例如EMS只在P1发送时段发送消息,ICM只在P6发送时段发送消息;如果主节点BCM接收到非发送时段中发送的消息,识别出CAN总线遭受攻击,非发送时段是指发送周期中所有从节点的发送时段(P1、P2、P3、P4、P5、P6)之外的时段。

本实施例的CAN通信系统中,管理帧中指定的发送时段为系统正常的发送时段,发送周期中所有从节点的发送时段之外的时段为非发送时段,所有从节点只在自己的发送时段中发送消息,因此系统正常工作时CAN总线上不会有非发送时段发出的消息。

如果主节点BCM接收到非发送时段中发送的消息M1,该消息M1肯定不是从节点发送的消息,从而识别出CAN总线遭受攻击,发出CAN总线遭受攻击警报,以便及时处理,避免影响行车安全。

至于如何处理CAN总线攻击超出本发明的范围。

在另一个实施例中,CAN总线通信方法还包括以下步骤:从节点从管理帧中获知其他从节点的发送时段;从节点的接收器只接收其他从节点的发送时段中发送的消息。

例如从节点ICM,从管理帧中获知其他从节点EMS、TCU、ACU、ABS、TPMS、的发送时段分别为P1、P2、P3、P4、P5,从节点ICM的接收器只接收P1、P2、P3、P4、P5时段中发送的消息,不接收其他时段的消息。这样即使在其他时段-非发送时段–存在攻击者ATT发出的假消息,也不会对从节点ICM产生影响,从而保证行车安全。

在另一个实施例中,CAN总线通信方法还包括以下步骤:从节点从管理帧中获知与自己相关的从节点的发送时段;每个从节点的接收器只接收与自己相关的从节点的发送时段中发送的消息。

在实际应用中,并不是每一个从节点都需要接收其他所有从节点的消息,因此从节点可以只关注与自己相关的从节点,也就是只接收与自己相关的从节点的发送时段中发送的消息。这样即使在非发送时段存在攻击者ATT发送的假消息,和/或与自己无关的从节点的发送时段存在攻击CAN总线的假消息,都不会对从节点产生影响,从而保证行车安全。

例如对于TPMS,ACU与TPMS无关,也就是TPMS并不需要接收ACU发送的消息,在这种情况下,如果在非发送时段存在攻击者ATT发出的假消息M1,和/或ACU的发送时段存在攻击者ATT发出的假消息M2,如图4所示,假消息M2在P3时段中与ACU的消息的仲裁中获胜,能够在CAN总线上传输,但由于TPMS不接收ACU发送的消息,因此不会对TPMS产生影响。

在这种情况下,只有仲裁失败的从节点能够识别出CAN总线遭受攻击,在另一个实施例中,CAN总线通信方法还包括以下步骤:如果从节点在自己的当前发送时段中仲裁失败,所述从节点在自己的下一个发送时段发送第一消息;主节点接收到从节点发出的第一消息,识别出CAN总线遭受攻击。

如图4所示,从节点ACU在自己的当前发送时段中仲裁失败,此时从节点ACU能够识别出CAN总线遭受攻击,通过在下一个发送时段发送第一消息,通知主节点BCM,主节点BCM发出CAN总线遭受攻击警报。

第一消息的标识符的所有的位为显性位,以保证需要进行仲裁时能够获胜,除非攻击者也使用同样的标识,从而通知主节点BCM:CAN总线遭受攻击。

本实施例中,主节点以固定时间间隔发送管理帧,从节点接收管理帧后同步时钟。

在其他的实施例中,主节点也可以以非固定时间间隔发送管理帧,这样可以避免通过监听CAN总线数据找到相关的管理帧,例如采用一个所有节点共享的时间间隔的序列,只要能够预知主节点的发送时段即可。

在其他的实施例中,所述方法还包括以下步骤:主节点获取更新的从节点列表;主节点根据从节点列表更新管理帧;在下一发送时段发送更新后的管理帧。

在另一个实施例中,CAN总线通信方法还包括以下步骤:主节点发送同步帧。从节点接收同步帧后,同步时钟。使用单独的同步帧,减少管理帧的传输次数,尽量避免CAN总线被监听带来的风险,从而保证行车安全。

虽然本发明已以较佳实施例披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内所作的各种更动与修改,均应纳入本发明的保护范围内,因此本发明的保护范围应当以权利要求所限定的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1