本发明涉及车辆通信数据处理领域,具体而言,涉及一种车辆通信数据帧处理方法、装置、计算机程序产品。
背景技术:
1、控制器局域网总线(controller area network,can)是一种属于现场总线的范畴并有效支持分布式控制系统的串行通信网络,广泛应用于汽车行业内,can网络可以运用can协议和can fd(controller area network with flexible data rate)协议在车辆内部通过双绞线在各个电子控制单元(electronic control unit,ecu)之间进行信号传递。车辆对标工作需要解析dbc(database can)文件来获取国内外先进车辆的关键整车参数。
2、现有技术中,需要花费大量时间和精力对基于can协议的can总线通信报文内的数据帧进行筛选和提取,并且对于数据帧分割准确性低,以及难以准确解析基于can fd协议的dbc文件。
3、由上分析可知,针对上述现有技术提供的车辆通信总线报文内数据帧分割方法其准确性低的问题,目前尚未提出有效的解决方案。
技术实现思路
1、本发明实施例提供了一种车辆通信数据帧处理方法、装置、计算机程序产品,以至少解决现有技术提供的车辆通信总线报文内数据帧分割方法其准确性低的技术问题。
2、根据本发明实施例的一个方面,提供了一种车辆通信数据帧处理方法,包括:
3、采集车辆通信总线的通信报文;基于目标标识符对通信报文中的数据帧进行预处理,得到目标数据帧列表;对目标数据帧列表中的数据帧进行分割与提取,得到目标数据段,其中,目标数据段用于进行通信信号解析。
4、可选地,基于目标标识符对通信报文中的数据帧进行预处理,得到目标数据帧列表包括:基于目标标识符对通信报文中的数据帧进行提取,得到第一数据帧列表;按照时间戳对第一数据帧列表中的数据帧进行排序,得到第二数据帧列表;对第二数据帧列表中数据帧长度进行一致性检查,得到一致性检查结果;根据一致性检查结果确定目标数据帧列表。
5、可选地,一致性检查结果包括第一检查结果和第二检查结果,第一检查结果用于确定相同标识符数据帧的帧长度是否一致,第二检查结果用于确定第三数据帧列表中任意一个数据帧的帧长度与任意一个数据帧的数据段长度是否一致,第三数据帧列表由第一检查结果确定,数据段长度为任意一个数据帧的实际数据长度,对第二数据帧列表中数据帧长度进行一致性检查,得到一致性检查结果包括:检查相同标识符数据帧的帧长度是否一致,得到第一检查结果;响应于第一检查结果确定相同标识符数据帧的帧长度不一致,从第二数据帧列表中删除相同标识符数据帧,得到第三数据帧列表;检查第三数据帧列表中任意一个数据帧的帧长度与任意一个数据帧的数据段长度是否一致,得到第二检查结果。
6、可选地,根据一致性检查结果确定目标数据帧列表包括:响应于第二检查结果确定任意一个数据帧的帧长度与任意一个数据帧的数据段长度一致,将任意一个数据帧添加至目标数据帧列表;响应于第二检查结果确定任意一个数据帧的帧长度与任意一个数据帧的数据段长度不一致,从第三数据帧列表删除任意一个数据帧,得到目标数据帧列表。
7、可选地,对目标数据帧列表中的数据帧进行分割与提取,得到目标数据段包括:遍历目标数据帧列表,并统计目标数据帧列表中数据帧的任意一个比特位的变化次数,得到变化次数列表;根据变化次数列表确定数据帧的目标编码格式;根据变化次数列表和目标编码格式,对目标数据帧列表中数据帧进行分割,得到分割结果,其中,分割结果包含多个数据段、任意一个数据段的起始位和终止位;根据目标数据帧列表中数据帧长度确定数据帧对应的目标通信协议;利用目标提取算法、目标通信协议和数据帧长度,从分割结果中提取得到目标数据段。
8、可选地,统计目标数据帧列表中数据帧的任意一个比特位的变化次数,得到变化次数列表包括:针对目标数据帧列表中任意一个数据帧,对任意一个数据帧的布尔矩阵中相邻两行的数据进行异或运算,得到对应的异或矩阵;对异或矩阵中的数据按照列进行加法运算,得到变化次数列表。
9、可选地,根据变化次数列表确定通信报文的目标编码格式包括:对变化次数列表中相邻两个字节的起始比特位的变化次数进行比较,得到第一比较结果;响应于第一比较结果确定第一变化次数大于第二变化次数,对第一编码格式统计值进行累加,以及响应于第一比较结果确定第一变化次数小于第二变化次数,对第二编码格式统计值进行累加,其中,第一变化次数为相邻两个字节中前一个字节的起始比特位的变化次数,第二变化次数为相邻两个字节中后一个字节的起始比特位的变化次数;响应于任意一个数据帧中多个相邻两个字节比较完成,对第一编码格式统计值与第二编码格式统计值进行比较,得到第二比较结果;根据第二比较结果确定目标编码格式。
10、可选地,根据第二比较结果确定目标编码格式包括:响应于第二比较结果确定第一编码格式统计值大于第二编码格式统计值,确定目标编码格式为第一编码格式;响应于第二比较结果确定第一编码格式统计值小于第二编码格式统计值,确定目标编码格式为第二编码格式。
11、可选地,根据变化次数列表和目标编码格式,对目标数据帧列表中数据帧进行分割,得到分割结果包括:对变化次数列表中的任意一个数据与目标数据帧列表的数据帧总数进行除法运算,得到任意一个比特位的翻转率;响应于目标编码格式为第二编码格式,根据预设分割规则和翻转率对数据帧进行分割,得到分割结果;响应于目标编码格式为第一编码格式,按照预设转换规则将数据帧由第一编码格式转换为第二编码格式,并根据预设分割规则和翻转率对数据帧进行分割,得到分割结果。
12、可选地,根据目标数据帧列表中数据帧长度确定数据帧对应的目标通信协议包括:响应于数据帧长度处于第一数值区间,确定目标通信协议为第一通信协议;响应于数据帧长度处于第二数值区间,确定目标通信协议为第二通信协议,其中,第二数值区间的区间下限大于第一数值区间的区间上限。
13、可选地,上述车辆通信数据帧处理方法还包括:基于目标数据段进行图像绘制,得到目标图像,其中,目标图像至少包括时间序列图、频谱图、相关性图,时间序列图用于表征数据帧随时间的变化趋势,频谱图用于表征数据帧的频域特性,相关性图用于表征多个相关数据帧之间的相关关系。
14、根据本发明实施例的另一方面,还提供了一种车辆通信数据帧处理装置,包括:
15、采集模块,用于采集车辆通信总线的通信报文;预处理模块,用于基于目标标识符对通信报文中的数据帧进行预处理,得到目标数据帧列表;提取模块,用于对目标数据帧列表中的数据帧进行分割与提取,得到目标数据段,其中,目标数据段用于进行通信信号解析。
16、可选地,上述预处理模块还用于:基于目标标识符对通信报文中的数据帧进行提取,得到第一数据帧列表;按照时间戳对第一数据帧列表中的数据帧进行排序,得到第二数据帧列表;对第二数据帧列表中数据帧长度进行一致性检查,得到一致性检查结果;根据一致性检查结果确定目标数据帧列表。
17、可选地,一致性检查结果包括第一检查结果和第二检查结果,第一检查结果用于确定相同标识符数据帧的帧长度是否一致,第二检查结果用于确定第三数据帧列表中任意一个数据帧的帧长度与任意一个数据帧的数据段长度是否一致,第三数据帧列表由第一检查结果确定,数据段长度为任意一个数据帧的实际数据长度,上述预处理模块还用于:检查相同标识符数据帧的帧长度是否一致,得到第一检查结果;响应于第一检查结果确定相同标识符数据帧的帧长度不一致,从第二数据帧列表中删除相同标识符数据帧,得到第三数据帧列表;检查第三数据帧列表中任意一个数据帧的帧长度与任意一个数据帧的数据段长度是否一致,得到第二检查结果。
18、可选地,上述预处理模块还用于:响应于第二检查结果确定任意一个数据帧的帧长度与任意一个数据帧的数据段长度一致,将任意一个数据帧添加至目标数据帧列表;响应于第二检查结果确定任意一个数据帧的帧长度与任意一个数据帧的数据段长度不一致,从第三数据帧列表删除任意一个数据帧,得到目标数据帧列表。
19、可选地,上述提取模块还用于:遍历目标数据帧列表,并统计目标数据帧列表中数据帧的任意一个比特位的变化次数,得到变化次数列表;根据变化次数列表确定数据帧的目标编码格式;根据变化次数列表和目标编码格式,对目标数据帧列表中数据帧进行分割,得到分割结果,其中,分割结果包含多个数据段、任意一个数据段的起始位和终止位;根据目标数据帧列表中数据帧长度确定数据帧对应的目标通信协议;利用目标提取算法、目标通信协议和数据帧长度,从分割结果中提取得到目标数据段。
20、可选地,上述提取模块还用于:针对目标数据帧列表中任意一个数据帧,对任意一个数据帧的布尔矩阵中相邻两行的数据进行异或运算,得到对应的异或矩阵;对异或矩阵中的数据按照列进行加法运算,得到变化次数列表。
21、可选地,上述提取模块还用于:对变化次数列表中相邻两个字节的起始比特位的变化次数进行比较,得到第一比较结果;响应于第一比较结果确定第一变化次数大于第二变化次数,对第一编码格式统计值进行累加,以及响应于第一比较结果确定第一变化次数小于第二变化次数,对第二编码格式统计值进行累加,其中,第一变化次数为相邻两个字节中前一个字节的起始比特位的变化次数,第二变化次数为相邻两个字节中后一个字节的起始比特位的变化次数;响应于任意一个数据帧中多个相邻两个字节比较完成,对第一编码格式统计值与第二编码格式统计值进行比较,得到第二比较结果;根据第二比较结果确定目标编码格式。
22、可选地,上述提取模块还用于:响应于第二比较结果确定第一编码格式统计值大于第二编码格式统计值,确定目标编码格式为第一编码格式;响应于第二比较结果确定第一编码格式统计值小于第二编码格式统计值,确定目标编码格式为第二编码格式。
23、可选地,上述提取模块还用于:对变化次数列表中的任意一个数据与目标数据帧列表的数据帧总数进行除法运算,得到任意一个比特位的翻转率;响应于目标编码格式为第二编码格式,根据预设分割规则和翻转率对数据帧进行分割,得到分割结果;响应于目标编码格式为第一编码格式,按照预设转换规则将数据帧由第一编码格式转换为第二编码格式,并根据预设分割规则和翻转率对数据帧进行分割,得到分割结果。
24、可选地,上述提取模块还用于:响应于数据帧长度处于第一数值区间,确定目标通信协议为第一通信协议;响应于数据帧长度处于第二数值区间,确定目标通信协议为第二通信协议,其中,第二数值区间的区间下限大于第一数值区间的区间上限。
25、可选地,上述车辆通信数据帧处理装置还包括:图像绘制模块,用于基于目标数据段进行图像绘制,得到目标图像,其中,目标图像至少包括时间序列图、频谱图、相关性图,时间序列图用于表征数据帧随时间的变化趋势,频谱图用于表征数据帧的频域特性,相关性图用于表征多个相关数据帧之间的相关关系。
26、根据本发明实施例的又一方面,还提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时实现前述中任意一项的车辆通信数据帧处理方法。
27、根据本发明实施例的又一方面,还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的可执行程序,其中,在可执行程序运行时控制计算机可读存储介质所在设备执行前述中任意一项车辆通信数据帧处理方法。
28、根据本发明实施例的又一方面,还提供了一种车辆,包括车载存储器和车载处理器,车载存储器中存储有计算机程序,车载处理器被设置为运行计算机程序以执行前述任意一项的车辆通信数据帧处理方法。
29、在本发明实施例中,首先采集车辆通信总线的通信报文,再基于目标标识符对通信报文中的数据帧进行预处理,得到目标数据帧列表,最后对目标数据帧列表中的数据帧进行分割与提取,得到目标数据段,其中,目标数据段用于进行通信信号解析。通过预处理对通信报文的数据帧进行筛选排序,接着按照不同编码格式对数据帧进行分割,以及根据数据帧长度确定数据帧对应的目标通信协议,最后利用目标提取算法根据目标通信协议和数据帧长度,从分割结果中提取目标数据段,达到了准确分割、提取车辆通信报文数据帧的目的,便于后续相关工作人员准确解析目标数据段中的通信信号,以进一步进行整车参数识别和dbc文件编写,从而实现了提高车辆通信报文数据帧的分割与提取准确度的技术效果,进而解决了现有技术提供的车辆通信总线报文内数据帧分割方法其准确性低的技术问题。