一种CAN总线多节点自动识别方法及装置与流程

文档序号:23765184发布日期:2021-01-29 20:03阅读:413来源:国知局
一种CAN总线多节点自动识别方法及装置与流程
一种can总线多节点自动识别方法及装置
技术领域
[0001]
本发明涉及工程机械通信技术安全领域,具体涉及一种can总线多节点自动识别方法及装置。


背景技术:

[0002]
目前市场上使用的can总线通信方法多数基于开放的无主网络,除了规定的按照j1939标准执行的can通信有源地址信息的定义外,其他多数是采用广播的形式进行信息发送,单纯只规定协议,不限制接收方与发送方,不限制元器件,只要在波特率满足要求状态下,按协议遵循id(身份标识号)发送接收就可以在总线上进行通信,只要协议对应,任意的元器件(如传感器、控制器、显示器等,下文称之为can节点)都可以接入网络进行信息交互,这种方式带来了方便、快捷的数据透明传输,但是也带来了一定的安全隐患:每一款元器件都可以被无限模仿和替代,一旦未经允许接入的元件接入网络,就会给整车网络带来安全隐患,将严重影响整车产品的一致性和可靠性。
[0003]
现有技术中,工程机械多数仍是以can总线通信系统为主,主要是受成本限制,更习惯倾向于开放的can总线通讯。
[0004]
专利cn201610785568.8公开了一种can总线安全监测方法,通过硬件上增加数据收发设备;将通信设备通过其最接近的所述数据收发设备,与can总线连接;设置其中一个数据收发设备为主节点,其他数据收发设备为从节点;主节点向从节点发送检测信息,从节点在接收到主节点信号以后向主节点发送反馈信息;主节点接收各个从节点发送的反馈信息从而完成一个安全通信过程。通过增加数据收发设备实现了数据及端口的实时通信,对于多节点硬件上增加不少的数据收发设备,对总线节点元器件有一定要求,给总线结构和拓扑也带来了一些压力。
[0005]
专利cn201710963166.7公开了一种基于can总线的多节点自动组网方法,提供一种通过id自动修改来组网的规范和方法及系统,针对多机并联、总线上有多节点的应用,通过自动组网算法,实现id分配、节点动态增减。通过将标准id进行拆分定义成有效位和随机数来重新定义,只是保证了通信组网时id分配,只是能通信,无法保证通信协议的执行,不具有安全验证功能,对节点未做识别。


技术实现要素:

[0006]
为解决现有技术中的不足,本发明提供一种can总线多节点自动识别方法及装置,解决了现有工程机械基于can总线通信无法对多节点进行安全验证自动识别的问题。
[0007]
为了实现上述目标,本发明采用如下技术方案:一种can总线多节点自动识别方法,包括步骤:
[0008]
在设定时长的第一周期内,当前can节点接收其他can节点的心跳包,解析获得各心跳包id和对应的报文内容,若存在与当前心跳包id相同的其他心跳包id,则置当前can节点校验计数数据为重复标记号,并将校验计数数据按照设定格式保存到心跳包报文中;
[0009]
否则,对其他不重复的心跳包id对应的报文内容根据设定的校验方法进行校验,若校验成功,将校验计数数据加1,若校验失败,校验计数数据不变;将最终得到的校验计数数据按照设定格式保存到心跳包报文中;
[0010]
在设定时长的第二周期内,当前can节点接收其他can节点的心跳包,解析得到各心跳包id和对应的报文数据,从报文数据中解析校验计数数据;根据解析结果自动识别can节点是否准入或心跳包id是否重复。
[0011]
进一步的,准入的can节点在接入can总线前预先设置准入can节点的心跳包报文内容以及校验方法;准入can节点的心跳包报文内容包括:m位随机数和n位有效位数据,其中n位有效位数据包括根据设定的校验方法对m位随机数校验得到的p位数据以及q位出厂信息码。
[0012]
进一步的,所述对其他不重复的心跳包id对应的报文内容根据设定的校验方法进行校验,包括:将心跳包报文内容中的m位数据按照设定的校验方法得到p位数据,如果这p位数据与解析出来的心跳包对应的p位数据相同,则校验成功,否则校验失败。
[0013]
进一步的,所述根据解析结果自动识别can节点是否准入或心跳包id是否重复,包括:
[0014]
若不能解析到校验计数数据,则心跳包id对应的can节点为不准入节点;若校验计数数据为重复标记号,则对应的can节点为心跳包id重复的节点,其他则为准入节点。
[0015]
进一步的,所述自动识别方法通过can节点上电自动触发或者无线设备向无线设备接收端can节点发送指令触发。
[0016]
一种can总线多节点自动识别装置,包括:
[0017]
校验计数数据获取模块,用于在设定时长的第一周期内,当前can节点接收其他can节点的心跳包,解析获得各心跳包id和对应的报文内容,若存在与当前心跳包id相同的其他心跳包id,则置当前can节点校验计数数据为重复标记号,并将校验计数数据按照设定格式保存到心跳包报文中;
[0018]
否则,对其他不重复的心跳包id对应的报文内容根据设定的校验方法进行校验,若校验成功,将校验计数数据加1,若校验失败,校验计数数据不变;将最终得到的校验计数数据按照设定格式保存到心跳包报文中;
[0019]
自动识别模块,用于在设定时长的第二周期内,当前can节点接收其他can节点的心跳包,解析得到各心跳包id和对应的报文数据,从报文数据中解析校验计数数据;根据解析结果自动识别can节点是否准入或心跳包id是否重复。
[0020]
进一步的,准入的can节点在接入can总线前预先设置准入can节点的心跳包报文内容以及校验方法;准入can节点的心跳包报文内容包括:m位随机数和n位有效位数据,其中n位有效位数据包含根据设定的校验方法对m位随机数校验得到的p位数据以及q位出厂信息码。
[0021]
进一步的,所述对其他不重复的心跳包id对应的报文内容根据设定的校验方法进行校验,包括:将心跳包报文内容中的m位数据按照设定的校验方法得到p位数据,如果这p位数据与解析出来的心跳包对应的p位数据相同,则校验成功,否则校验失败。
[0022]
进一步的,所述根据解析结果自动识别can节点是否准入或心跳包id是否重复,包括:
[0023]
若不能解析到校验计数数据,则心跳包id对应的can节点为不准入节点;若校验计数数据为重复标记号,则对应的can节点为心跳包id重复的节点,其他则为准入节点。
[0024]
进一步的,所述自动识别方法通过can节点上电自动触发或者无线设备向无线设备接收端can节点发送指令触发。
[0025]
本发明所达到的有益效果:本发明包括两种自动识别触发模式:分别在上电自校验识别和正常工作阶段无线设备来触发自动校验识别,通过节点数据的自动校验识别,实现对整个网络中节点的检测,不仅可以方便实现节点自动识别,还简化了整车总线的安全检测过程,在通信最前端采取策略保证通信安全,简单、直接、有效。
附图说明
[0026]
图1为多节点can总线网络示意图;
[0027]
图2为can节点心跳包数据帧定义图;
具体实施方式
[0028]
下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
[0029]
实施例1:
[0030]
如图1所示,can总线上连接有n个can节点以及无线设备接收端can节点和显示器can节点;
[0031]
can节点为传感器、控制器等设备;
[0032]
无线设备接收端can节点与无线设备的接收端连接,用于将无线设备数据发送给can总线,或者将can总线数据发送给无线设备的接收端。
[0033]
n个can节点中均执行以下识别方法;通过can节点上电自动触发或者无线设备(蓝牙或者gps/gprs模块)向无线设备接收端can节点发送指令触发本发明方法;
[0034]
一种can总线多节点自动识别方法,包括步骤:
[0035]
步骤1,在设定时长的第一周期内当前can节点接收其他n-1个can节点的心跳包,解析获得各心跳包id和对应的报文内容,若存在与当前心跳包id相同的其他心跳包id,则置当前校验计数数据为重复标记号,例如为-1,并将校验计数数据按照设定格式保存到心跳包报文中;
[0036]
否则,对其他不重复的心跳包id对应的报文内容根据设定的校验方法进行校验,若校验成功,将校验计数数据加1(初始值可以为0),若校验失败,校验计数数据不变;将最终得到的校验计数数据并按照设定格式保存到心跳包报文中;
[0037]
准入的can节点的心跳包报文内容包括:m位随机数和n位有效位数据,其中n位有效位数据包括根据设定的校验方法对m位随机数校验得到的p位数据以及q位出厂信息码;若是准入的can节点,在接入can总线前预先设置前述的准入can节点的心跳包报文内容以及校验方法;
[0038]
设定的校验方法,例如:奇偶校验方法;
[0039]
对报文内容根据设定的校验方法进行校验为:将心跳报文中的m位数据按照设定的校验方法得到p位数据,如果这p位数据与解析出来的心跳包对应的p位数据相同,则校验
成功,否则校验失败。
[0040]
而在未准入的can节点的心跳包报文中是不存在m位随机数以及按照设定的校验方法得到的n位数据,也不存在校验方法,因此未准入的can节点不能对其他节点进行校验,也就得不到校验计数数据,没有对报文内容更新校验计数数据,在下文解析报文时无法得到校验计数数据;
[0041]
节点1、节点2
……
节点n分别在总线上以广播形式发送心跳包,此时对于节点1来讲,收到节点2
……
节点n发出的共计n-1条心跳包;同样,对于节点2来讲,收到节点1、节点3
……
节点n发出的共计n-1条心跳包;依次类推,节点n收到从节点1
……
节点n-1发出的共计n-1条心跳包。
[0042]
校验计数数据按照设定的格式保存到心跳包报文中,例如将校验计数数据加上前缀保存到心跳包报文中,识别时读取前缀后的数字即为校验计数数据。
[0043]
步骤2,在设定时长的第二周期内,can节点接收其他n-1个can节点的心跳包,解析得到各心跳包id和对应的报文数据,从报文数据中按照上述设定的格式解析校验计数数据;根据解析结果自动识别can节点是否准入或心跳包id是否重复;具体为:
[0044]
若不能解析到校验计数数据,则心跳包id对应的can节点为不准入节点;若校验计数数据为重复标记号(例如前面设定的-1),则对应的can节点为心跳包id重复的节点,其他则为准入节点。
[0045]
can节点还可以将自动识别结果通过can总线发送到显示器can节点。
[0046]
本发明包括两种自动识别触发模式:分别在上电自校验识别和正常工作阶段无线设备来触发自动校验识别,通过节点数据的自动校验识别,实现对整个网络中节点的检测,不仅可以方便实现节点自动识别,还简化了整车总线的安全检测过程,在通信最前端采取策略保证通信安全,简单、直接、有效。
[0047]
实施例2:
[0048]
一种can总线多节点自动识别装置,包括:
[0049]
校验计数数据获取模块,用于在设定时长的第一周期内,当前can节点接收其他can节点的心跳包,解析获得各心跳包id和对应的报文内容,若存在与当前心跳包id相同的其他心跳包id,则置当前can节点校验计数数据为重复标记号,并将校验计数数据按照设定格式保存到心跳包报文中;
[0050]
否则,对其他不重复的心跳包id对应的报文内容根据设定的校验方法进行校验,若校验成功,将校验计数数据加1,若校验失败,校验计数数据不变;将最终得到的校验计数数据按照设定格式保存到心跳包报文中;
[0051]
自动识别模块,用于在设定时长的第二周期内,当前can节点接收其他can节点的心跳包,解析得到各心跳包id和对应的报文数据,从报文数据中解析校验计数数据;根据解析结果自动识别can节点是否准入或心跳包id是否重复。
[0052]
进一步的,准入的can节点在接入can总线前预先设置准入can节点的心跳包报文内容以及校验方法;准入can节点的心跳包报文内容包括:m位随机数和n位有效位数据,其中n位有效位数据包含根据设定的校验方法对m位随机数校验得到的p位数据以及q位出厂信息码。
[0053]
进一步的,所述对其他不重复的心跳包id对应的报文内容根据设定的校验方法进
行校验,包括:将心跳包报文内容中的m位数据按照设定的校验方法得到p位数据,如果这p位数据与解析出来的心跳包对应的p位数据相同,则校验成功,否则校验失败。
[0054]
进一步的,所述根据解析结果自动识别can节点是否准入或心跳包id是否重复,包括:
[0055]
若不能解析到校验计数数据,则心跳包id对应的can节点为不准入节点;若校验计数数据为重复标记号,则对应的can节点为心跳包id重复的节点,其他则为准入节点。
[0056]
进一步的,所述自动识别方法通过can节点上电自动触发或者无线设备向无线设备接收端can节点发送指令触发。
[0057]
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0058]
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0059]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0060]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0061]
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1