基于域控制器的CAN报文存储方法、装置、设备及存储介质制造方法及图纸

技术编号:38741295 阅读:8 留言:0更新日期:2023-09-08 23:25
本发明专利技术提供一种基于域控制器的CAN报文存储方法、装置、设备及存储介质,该方法包括:基于域控制器实时获取来自车辆内CAN总线的目标报文;根据目标报文的时间顺序对目标报文执行第一缓存,缓存于一级缓冲队列;一级缓冲队列中预设帧数的目标报文进行组包,确定数据包,对各数据包执行第二缓存,将数据包缓存于二级缓冲队列;对二级缓冲队列中预设个数的数据包进行组合,生成报文文件,并将报文文件实时存储于存储器。本发明专利技术通过域控制器获取CAN总线的目标报文,使目标报文经过两次缓存后存储于存储器,不仅保证了报文存储的完整性,还提高了报文存储的可靠性。了报文存储的可靠性。了报文存储的可靠性。

【技术实现步骤摘要】
基于域控制器的CAN报文存储方法、装置、设备及存储介质


[0001]本专利技术涉及报文存储
,具体涉及一种基于域控制器的CAN报文存储方法、装置、设备及存储介质。

技术介绍

[0002]目前,车辆内所搭载的电子控制器主要是通过CAN(Controller Area Network,控制器局域网络)总线进行通信连接。CAN总线在车辆实际运行当中,存在着大量报文,这些报文包括了车辆的各类控制信息和车辆的状态信息,根据这些报文能够对车辆进行性能分析和故障排查。但是,随着汽车智能化的发展,车辆内控制器的数量不断增加,域控制器的集成化程度越来越高,CAN报文的数量越来越庞大,如何让有效存储CAN报文,以利于在车辆出现故障时,方便相关技术人员读取所存储的报文,以根据存储的报文分析故障原因。在相关技术中,通常利用汽车内T

BOX(Telematics BOX,车载联网智能终端)对CAN总线上的报文进行采集和存储。
[0003]中国专利CN218567887U公开了一种电动汽车CAN报文采集系统,通过车辆内T

BOX对外部的CAN总线的CAN报文数据进行采集和存储,并提取和传输故障前后的CAN报文数据至运营平台,以基于运营平台展示CAN报文。但是,该方案只能存储与T

BOX相连接的CAN总线的报文数据,不能覆盖车辆的所有CAN总线,存储的报文数据不完整,并且当CAN总线上存在的报文数量过大时,T

BO X在采集到的报文可能存在漏帧的情况,报文存储的可靠性低。
[0004]因此,如何提高CAN总线上报文存储的完整性和可靠性,是目前亟待解决的问题。

技术实现思路

[0005]鉴于以上所述现有技术的缺点,本专利技术提供一种基于域控制器的CAN报文存储方法、装置、设备及存储介质,以解决上述技术问题中的至少之一。
[0006]在第一方面,本专利技术提供了一种基于域控制器的CAN报文存储方法,包括:基于域控制器实时获取来自车辆内CAN总线的目标报文;根据所述目标报文的时间顺序对所述目标报文执行第一缓存,缓存于一级缓冲队列;对所述一级缓冲队列中预设帧数的目标报文进行组包,确定数据包,对各所述数据包执行第二缓存,将所述数据包缓存于二级缓冲队列;对所述二级缓冲队列中预设个数的所述数据包进行组合,生成报文文件,并将所述报文文件实时存储于存储器。
[0007]于本专利技术的一实施例中,所述根据所述目标报文的时间顺序对所述目标报文执行第一缓存,缓存于一级缓冲队列,包括:根据各所述目标报文的时间戳,将各所述目标报文按从小到大的时间顺序进行排序,确定各所述目标报文的缓存顺序;检测所述一级缓冲队列中缓存的所述目标报文的帧数;若所述一级缓冲队列中缓存的所述目标报文的帧数大于或等于预设帧数,则暂停第一缓存;若所述一级缓冲队列中缓存的所述目标报文的帧数小于预设帧数,则基于各所述目标报文的缓存顺序将所述目标报文缓存于所述一级缓冲队列。
[0008]于本专利技术的一实施例中,所述对各所述数据包执行第二缓存,将所述数据包缓存于二级缓冲队列,包括:根据每一所述数据包中最后一帧目标报文的时间戳,将各所述数据包按从小到大的时间按顺序进行排序,确定各所述数据包的缓存顺序;检测所述二级缓冲队列是否存在空闲空间;若所述二级缓冲队列存在空闲空间,则基于各所述数据包的缓存顺序将所述数据包缓存于所述二级缓冲队列;若所述二级缓冲队列不存在空闲空间,则暂停第二缓冲,直至所述二级缓冲队列存在空闲空间为止。
[0009]于本专利技术的一实施例中,所述对所述二级缓冲队列中预设个数的所述数据包进行组合,生成报文文件,并将所述报文文件存储于存储器,包括:根据所述报文文件中最后一个数据包的时间戳,将各所述报文文件按从小到大的时间顺序进行排序,确定各所述报文文件的存储顺序;检测所述存储器的剩余空间;若所述存储器的剩余空间大小高于预设空间阈值,则基于各所述报文文件的存储顺序将各所述报文文件存储于所述存储器;若所述存储器的剩余空间大小低于预设空间阈值,则根据各所述报文文件的存储顺序,利用优先级高的所述报文文件覆盖所述存储器中最先存储的所述报文文件;其中,在将所述报文文件存储于所述存储器之前,压缩所述报文文件,使所述报文文件以压缩包的形式存储于所述存储器。
[0010]于本专利技术的一实施例中,在对所述二级缓冲队列中预设个数的所述数据包进行组合,生成报文文件,并将所述报文文件存储于存储器之后,还包括:建立上位机和所述域控制器之间的通信;通过所述上位机按各所述报文文件的存储顺序对所述存储器内的所述报文文件进行读取,以获得所述预设个数的所述数据包,所述存储器置于所述域控制器;对所述预设个数的所述数据包进行拆包,获得多帧所述目标报文;比较每帧所述目标报文的时间戳,以将多帧所述目标报文按时间顺序进行拼接,以获得一时段的所述目标报文,所述时段由多帧所述目标报文中的最小时间戳和最大时间戳确定。
[0011]于本专利技术的一实施例中,所述基于域控制器获取来自车辆内CAN总线的目标报文,包括:获取来自所述车辆内所述CAN总线的初始报文;针对每帧所述初始报文添加时间戳和报文属性信息,获得所述目标报文,所述报文属性信息包括报文计数、报文标识号、总线通道、总线类型、报文传输方向和报文长度。
[0012]于本专利技术的一实施例中,所述根据所述目标报文的时间顺序对所述目标报文执行第一缓存,还包括:若检测到存在时间相同的至少两个所述目标报文,根据所述报文属性信息预先关联的优先级对至少两个所述目标报文进行仲裁,以确定至少两个所述目标报文的时间顺序。
[0013]在第二方面,本专利技术还提供了一种基于域控制器的CAN报文存储装置,包括:获取模块,用于基于域控制器获取来自车辆内CAN总线的目标报文;第一缓冲模块,用于根据所述目标报文的时间顺序对所述目标报文执行第一缓存,缓存于一级缓冲队列;第二缓冲模块,用于对所述一级缓冲队列中预设帧数的目标报文进行组包,确定数据包,对各所述数据包执行第二缓存,将所述数据包缓存于二级缓冲队列;存储模块,用于对所述二级缓冲队列中预设个数的所述数据包进行组合,生成报文文件,并将所述报文文件存储于存储器。
[0014]在第三方面,本专利技术还提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述实施例中所述的基于域控制器的CAN报文存储方法。
[0015]在第四方面,本专利技术还提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序被计算机的处理器执行时,使计算机执行如上述实施例中所述的基于域控制器的CAN报文存储方法。
[0016]本专利技术的有益效果:本专利技术提出了一种基于域控制器的CAN报文存储方法、装置、设备及存储介质。本专利技术通过域控制器实时获取来自车辆内CAN总线的目标报文;根据目标报文的时间顺序对目标报文执行第一缓存,缓存于一级缓冲队列;一级缓冲队列中预设帧数的目标报文进行本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于域控制器的CAN报文存储方法,其特征在于,包括;基于域控制器实时获取来自车辆内CAN总线的目标报文;根据所述目标报文的时间顺序对所述目标报文执行第一缓存,缓存于一级缓冲队列;对所述一级缓冲队列中预设帧数的目标报文进行组包,确定数据包,对各所述数据包执行第二缓存,将所述数据包缓存于二级缓冲队列;对所述二级缓冲队列中预设个数的所述数据包进行组合,生成报文文件,并将所述报文文件实时存储于存储器。2.如权利要求1所述的基于域控制器的CAN报文存储方法,其特征在于,所述根据所述目标报文的时间顺序对所述目标报文执行第一缓存,缓存于一级缓冲队列,包括:根据各所述目标报文的时间戳,将各所述目标报文按从小到大的时间顺序进行排序,确定各所述目标报文的缓存顺序;检测所述一级缓冲队列中缓存的所述目标报文的帧数;若所述一级缓冲队列中缓存的所述目标报文的帧数大于或等于预设帧数,则暂停第一缓存;若所述一级缓冲队列中缓存的所述目标报文的帧数小于预设帧数,则基于各所述目标报文的缓存顺序将所述目标报文缓存于所述一级缓冲队列。3.如权利要求2所述的基于域控制器的CAN报文存储方法,其特征在于,所述对各所述数据包执行第二缓存,将所述数据包缓存于二级缓冲队列,包括:根据每一所述数据包中最后一帧目标报文的时间戳,将各所述数据包按从小到大的时间按顺序进行排序,确定各所述数据包的缓存顺序;检测所述二级缓冲队列是否存在空闲空间;若所述二级缓冲队列存在空闲空间,则基于各所述数据包的缓存顺序将所述数据包缓存于所述二级缓冲队列;若所述二级缓冲队列不存在空闲空间,则暂停第二缓冲,直至所述二级缓冲队列存在空闲空间为止。4.如权利要求3所述的基于域控制器的CAN报文存储方法,其特征在于,所述对所述二级缓冲队列中预设个数的所述数据包进行组合,生成报文文件,并将所述报文文件存储于存储器,包括:根据所述报文文件中最后一个数据包的时间戳,将各所述报文文件按从小到大的时间顺序进行排序,确定各所述报文文件的存储顺序;检测所述存储器的剩余空间;若所述存储器的剩余空间大小高于预设空间阈值,则基于各所述报文文件的存储顺序将各所述报文文件存储于所述存储器;若所述存储器的剩余空间大小低于预设空间阈值,则根据各所述报文文件的存储顺序,利用优先级高的所述报文文件覆盖所述存储器中最先存储的所述报文文件;其中,在将所述报文文件存储于所述存储器之前,压缩所述报文文件,使所述报文文件以压缩包的形式存储于...

【专利技术属性】
技术研发人员:江金洪袁正左健李杨
申请(专利权)人:深蓝汽车科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1