掌桥专利:专业的专利平台
掌桥专利
首页

基于CAN的数字轨道车载导航控制器的安全通讯方法

文献发布时间:2024-04-18 19:59:31


基于CAN的数字轨道车载导航控制器的安全通讯方法

技术领域

本发明涉及一种基于CAN的数字轨道车载导航控制器的安全通讯方法。

背景技术

请参阅图1,数字轨道车载导航控制器1包括车载通讯模块11和车载控制模块12,数字轨道车载导航控制器1为了实现对车辆的精准定位及车辆控制,需要和车载磁传感器2及车辆控制器3进行实时通讯。车载设备间的通讯对于实时性和可靠性都有较高的要求,CAN总线通讯具备数据传输信号稳定,损耗小,不易受外界干扰等优点,所以车载导航控制器和其他车载设备之间采用CAN总线通讯。

车载导航控制器属于车辆的核心器件,业主及车辆厂通常都会要求车载导航控制器最低能够满足SIL2的要求,因此车载导航控制器和外部设备的通讯协议需要采用安全通讯协议,即通信协议应能防护通信数据重复、数据丢失、数据插入、数据乱序、数据损坏和数据延迟这六类通讯异常。由于CAN标准帧一帧有效数据字段长度只有8个字节,单个CAN通讯报文并不能满足安全通讯的要求,因此需要对CAN通讯协议进行扩展,研发基于CAN通讯的安全通讯方法。

发明内容

本发明的目的是克服现有技术的缺陷,提供一种基于CAN的数字轨道车载导航控制器的安全通讯方法,能够对车载CAN网络中的通讯消息内容进行校验,识别通讯中的异常信息,并根据错误类型及时对异常进行处理,提高车辆定位及导航控制的安全性。

实现上述目的的技术方案是:一种基于CAN的数字轨道车载导航控制器的安全通讯方法,包括以下步骤:

在CAN通讯协议里定义包序号、源地址及目标地址、数据段的校验码及数据发送时间戳,车载导航控制器的发送端对一个数据报文进行拆包,车载导航控制器的接收端进行拼包处理,数据格式见表1:

表1.数据格式表:

其中,包序号字节中的8个bit,1-6个bit用于循环标识包序号,包序号的取值范围为0-63循环;7-8bit用于表示分包序号,取值范围为0-3,一个完整的数据包最多由4个分包组成;

地址序号字节中的8个bit,低位1-4bit表示源地址,取值范围0-15,高位5-8bit标识目的地址,取值范围0-15;

时间戳在第一个包的3-6字节中,时间戳的取值为当前时间到当天0点0分0秒0毫秒的毫秒值,接收端在接收到时间戳时考虑发送端到接收端时间跨天的情况;并且发送端和接收端实时进行时钟同步;

通讯内容校验码采用CRC32,根据地址序号、时间戳及有效字段W

上述的基于CAN的数字轨道车载导航控制器的安全通讯方法,其中,车载导航控制器的发送端的数据发送流程包括以下步骤:

S11,生成全局包序号,循环获取发送包序号,包序号的取值范围为0-63循环;

S12,读取初始化加载的源地址和目的地址信息,根据定义的各设备编号生成第一包地址序号信息,1-4bit为源地址即发送端设备编号,5-8bit为目的地址即接收端地址编号;

S13,获取当前时间戳,取值为当前时间到当天0点0分0秒0毫秒的毫秒值,低位在前;

S14,将有效字段封装到各分包中,并设置各包第一个字节的bit7-8为相应的分包序号,最高支持4个分包;

S15,根据通讯内容中的地址序号、时间戳及有效字段W

上述的基于CAN的数字轨道车载导航控制器的安全通讯方法,其中,车载导航控制器的接收端的数据接收流程包括以下步骤:

S21,接收CAN通讯报文,根据报文ID判断当前报文归属消息类型;

S22,解析当前报文,判断当前消息是否已接收完整,未接收完整则当前包存入内存暂不处理形成缓存数据;若消息已接收完整,解析完整信息,根据分包序号合并信息,获取源地址、目的地址、时间戳、CRC32及有效报文内容;

S23,判断当前报文和上一报文包序号是否连续,若当前包序号为0,上一包序号为63也为连续;若当前包序号为上一包序号的前一包则数据乱序;若当前包序号和前一包序号相同则为数据重复;

若当前包序号和缓存数据中未完整的包序号不同,则认为缓存数据中的数据包数据丢失;

S24,判断当前包源地址或目的地址和配置中不匹配,则认为数据插入;

S25,本地获取时间戳,若当前本地时间戳和CAN通讯报文内容中的时间戳大于3个通讯周期则认为数据延迟;

S26,根据接收的信息计算CRC32,和CAN通讯报文内容中的CRC32进行比对,如果计算出的校验码不同则认为数据损坏,忽略该信息;

S27,车载导航控制器的接收端接收正常的信息,记录错误的信息并上报通讯故障信息。

本发明的基于CAN的数字轨道车载导航控制器的安全通讯方法,能够对车载CAN网络中的通讯消息内容进行校验,识别通讯中的异常信息,并根据错误类型及时对异常进行处理,提高车辆定位及导航控制的安全性。

附图说明

图1为数字轨道车载导航控制器的架构图;

图2为本发明的基于CAN的数字轨道车载导航控制器的安全通讯方法的数据发送流程图;

图3为本发明的基于CAN的数字轨道车载导航控制器的安全通讯方法的数据接收流程图。

具体实施方式

为了使本技术领域的技术人员能更好地理解本发明的技术方案,下面结合附图对其具体实施方式进行详细地说明:

请参阅图2和图3,本发明的实施例,一种基于CAN的数字轨道车载导航控制器的安全通讯方法,包括以下步骤:

为了满足安全通讯的要求,对数据重复、数据丢失、数据插入、数据乱序、数据损坏和数据延迟进行防护,需要在CAN通讯协议里定义包序号、源地址及目标地址、数据段的校验码及数据发送时间戳,但是原始的CAN通讯报文8个字节不足以容纳如此多的内容,因此在车载导航控制器的发送端对一个数据报文进行拆包,车载导航控制器的接收端进行拼包处理,数据格式见表1:

表1.数据格式表:

其中,包序号字节中的8个bit,1-6个bit用于循环标识包序号,包序号的取值范围为0-63循环;7-8bit用于表示分包序号,取值范围为0-3,一个完整的数据包最多由4个分包组成;

地址序号字节中的8个bit,低位1-4bit表示源地址,取值范围0-15,高位5-8bit标识目的地址,取值范围0-15;

时间戳在第一个包的3-6字节中,时间戳的取值为当前时间到当天0点0分0秒0毫秒的毫秒值,接收端在接收到时间戳时考虑发送端到接收端时间跨天的情况;并且发送端和接收端实时进行时钟同步;

通讯内容校验码采用CRC32,根据地址序号、时间戳及有效字段W

车载导航控制器的发送端的数据发送流程包括以下步骤:

S11,生成全局包序号,循环获取发送包序号,包序号的取值范围为0-63循环;

S12,读取初始化加载的源地址和目的地址信息,根据定义的各设备编号生成第一包地址序号信息,1-4bit为源地址即发送端设备编号,5-8bit为目的地址即接收端地址编号;

S13,获取当前时间戳,取值为当前时间到当天0点0分0秒0毫秒的毫秒值,低位在前;

S14,将有效字段封装到各分包中,并设置各包第一个字节的bit7-8为相应的分包序号,最高支持4个分包;

S15,根据通讯内容中的地址序号、时间戳及有效字段W

车载导航控制器的接收端的数据接收流程包括以下步骤:

S21,接收CAN通讯报文,根据报文ID判断当前报文归属消息类型;

S22,解析当前报文,判断当前消息是否已接收完整,未接收完整则当前包存入内存暂不处理形成缓存数据;若消息已接收完整,解析完整信息,根据分包序号合并信息,获取源地址、目的地址、时间戳、CRC32及有效报文内容;

S23,判断当前报文和上一报文包序号是否连续,若当前包序号为0,上一包序号为63也为连续;若当前包序号为上一包序号的前一包则数据乱序;若当前包序号和前一包序号相同则为数据重复;

若当前包序号和缓存数据中未完整的包序号不同,则认为缓存数据中的数据包数据丢失;

S24,判断当前包源地址或目的地址和配置中不匹配,则认为数据插入;

S25,本地获取时间戳,若当前本地时间戳和CAN通讯报文内容中的时间戳大于3个通讯周期则认为数据延迟;

S26,根据接收的信息计算CRC32,和CAN通讯报文内容中的CRC32进行比对,如果计算出的校验码不同则认为数据损坏,忽略该信息;

S27,车载导航控制器的接收端接收正常的信息,记录错误的信息并上报通讯故障信息。

综上所述,通用的CAN通讯协议无法对通讯内容进行安全防护,使用本发明的基于CAN的数字轨道车载导航控制器的安全通讯方法后,能够对车载CAN网络中的通讯消息内容进行校验,识别通讯中的异常信息,并根据错误类型及时对异常进行处理,提高车辆定位及导航控制的安全性;虽然增加了报文数量,但是车载CAN通讯波特率为500K,最小通讯周期为20ms,CAN通讯负载依然很低,可以忽略报文增加对CAN通讯负载的影响。

本技术领域中的普通技术人员应当认识到,以上的实施例仅是用来说明本发明,而并非用作为对本发明的限定,只要在本发明的实质精神范围内,对以上所述实施例的变化、变型都将落在本发明的权利要求书范围内。

技术分类

06120116525266