一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种CAN信号解析方法、设备及存储介质与流程

2023-02-04 14:10:28 来源:中国专利 TAG:

一种can信号解析方法、设备及存储介质
技术领域
1.本发明涉及整车can信号领域,特别涉及一种can信号解析方法、设备及存储介质。


背景技术:

2.can是控制器域网(controller area network,can)的简称,是由研发和生产汽车电子产品著称的德国bosch公司开发了的,并最终成为国际标准(iso11898)。近年来,其所具有的高可靠性和良好的错误检测能力受到重视,被广泛应用于汽车计算机控制系统和环境温度恶劣、电磁辐射强和振动大的工业环境。
3.整车能量流测试,需要采集多个关键物理量进行测试,如驱动电机扭矩、电池soc等,通常采用设置传感器的方式进行采集,通过采集can信号解析获取所需的物理量,但该种采集方式没有对can信号进行分类识别,造成查找到所需要的can信号的时长较长,耗损较高成本,同时还降低了识别率。


技术实现要素:

4.为了解决现有技术在对整车能量流测试过程中所需的物理量的获取成本较高且周期较长的问题,本发明提供了一种can信号解析方法、设备及存储介质,通过快速获取所需的can报文,提高识别率,降低测试成本。
5.本发明的技术内容如下:
6.一种can信号解析方法,包括以下步骤:
7.s1:获取can报文并提取所述can报文内的id及对应data段,将所述data段按id重新分组;
8.s2:计算每个所述id下的每个data段所包括的每位数据的bit反转率;
9.s3:所述id根据每个所述data段下的每位数据的bit反转率的和按大到小的顺序重新排序;
10.s4:按步骤s3所述的id顺序对步骤s2中的每个data段的bit反转率以分割原则进行数据分割,重新组成若干组数据并绘图显示;
11.s5:按照重新排序后的所述id顺序根据编码规则排布步骤s2的bit反转率;
12.s6:通过已知工况曲线与步骤s4的绘图显示曲线进行类比,识别形状相似的曲线,若识别相似,进入s7,反之,进入s8;
13.s7:调整步骤s4中重新组成若干组的数据长度,重新绘图显示曲线与已知工况曲线进行对比,二者符合即解析出所需的can报文;
14.s8:对步骤s1中的data段的数据进行镜像处理后,重新执行步骤s1~7。
15.进一步地,将所述data段按id重新分组时,包括:
16.s11:将data段从8位十六进制转换成64位二进制;
17.s12:将相同id下的多个data段分为一组。
18.进一步地,计算每个所述id下的每个data段所包括的每位数据的bit反转率时,包
括:
19.s21;依次提取64位的每一位二进制组成一列数据,为原始列数据,再依次每列数据往上错位一位构成一列新的数据,为新构成列数据;
20.s22:将原始列数据去尾,新构成列数据掐头,并将两列数据值一一对应,比较对应数据值是否相等;
21.s23:若对应数据值相等,则bit反转率不变,若对应数据值不相等,则bit反转率加1,最后求和得到64位的每一位二进制的bit反转率。
22.进一步地,按步骤s3所述的id顺序对步骤s2中的每个data段的bit反转率以分割原则进行数据分割,重新组成若干组数据并绘图显示时,包括:
23.在前面位数据的bit反转率大于后面位数据的bit反转率的2倍处进行数据分割;
24.和/或在前面位数据的bit反转率出现一种连接的0值时,在最后一个0值处进行数据分割。
25.进一步地,按步骤s3所述的id顺序对步骤s2中的每个data段的bit反转率以分割原则进行数据分割,重新组成若干组数据并绘图显示时,还包括:
26.将重新组成的若干组数据由二进制转换为十进制。
27.进一步地,按照重新排序后的所述id顺序根据编码规则排布步骤s2的bit反转率时,包括:
28.所述编码规则为8
×
8矩阵,按照重新排序后的所述id顺序,将每个所述id对应的每个data段中的每位数据的bit反转率按从左到右、从上到下的顺序排布为8
×
8矩阵。
29.进一步地,调整步骤s4中重新组成若干组的数据长度,重新绘图显示曲线与已知工况曲线进行对比时,包括:
30.检查是否有出现bit反转率为0的情况,若有,重新调整数据长度;
31.重新绘图显示曲线与已知工况曲线进行对比,计算出对应的精度值和偏移值;
32.通过can信号值
×
精度值 偏移量得到新值,重新绘图显示曲线与已知工况曲线进行对比。
33.进一步地,对所述步骤s1中的data段的数据进行镜像处理时,包括:
34.将所述data段8位十六进制左右镜像处理后,再转换为64位二进制,然后重新执行步骤s1~7。
35.本发明提供了一种can信号解析设备,包括,包括:
36.存储器,所述存储器中存储有至少一条指令;
37.处理器,用于加载并执行所述指令以实现上述任一项所述的can信号解析方法的操作。
38.本发明还提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行,实现上述任一项所述的can信号解析方法的操作。
39.本发明的有益效果包括:通过重新排序id顺序及通过编码规则确定信号解析的起始位和位长度,使再次解析信号获取相应所需物理量时,更方便、快捷识别相应信号数据,提供识别率,降低测试成本。
附图说明
40.图1为本发明实施例1提供的一种can信号解析方法的流程示意图。
41.图2为本发明实施例1提供的can报文组成结构示意图。
42.图3为本发明实施例1提供的某一位二进制的bit反转率的计算举例示意图。
43.图4为本发明实施例1提供的重新组成的数据长度的结构示意图。
44.图5为本发明实施例1提供的motorola格式结构示意图。
45.图6为本发明实施例1提供的intel格式结构示意图。
具体实施方式
46.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
47.实施例1
48.结合图1-6所示,本实施例提供了一种can信号解析方法,包括以下步骤:
49.s1:获取can报文并提取所述can报文内的id及对应data段,将所述data段按id重新分组;
50.s11:将data段从8位十六进制转换成64位二进制;
51.s12:将相同id下的多个data段分为一组;
52.通过matlab软件读取can采集模块采集到的can报文数据,can报文组成如图2所示,本实施例中主要提取can报文的id及data部分。
53.s2:计算每个所述id下的每个data段所包括的每位数据的bit反转率;
54.如图3所示,每个id下,都有包括至少一个data段数据,data段数据为64位二进制式,依次对64位的每一位进行提取并计算bit反转率,下述为某一位二进制的bit反转率的计算:
55.s21;依次提取64位的每一位二进制组成一列数据,为原始列数据,再依次每列数据往上错位一位构成一列新的数据,为新构成列数据;
56.s22:将原始列数据去尾,新构成列数据掐头,并将两列数据值一一对应,比较对应数据值是否相等;
57.s23:若对应数据值相等,则bit反转率不变,若对应数据值不相等,则bit反转率加1,最后求和得到64位的每一位二进制的bit反转率;
58.s3:所述id根据每个所述data段下的每位数据的bit反转率的和按大到小的顺序重新排序;
59.s4:按步骤s3所述的id顺序对步骤s2中的每个data段的bit反转率以分割原则进行数据分割,重新组成若干组数据并绘图显示;
60.在前面位数据的bit反转率大于后面位数据的bit反转率的2倍处进行数据分割;
61.和/或在前面位数据的bit反转率出现一种连接的0值时,在最后一个0值处进行数据分割;
62.将重新组成的若干组数据由二进制转换为十进制,然后绘图显示;
63.s5:按照重新排序后的所述id顺序根据编码规则排布步骤s2的bit反转率;
64.所述编码规则为8
×
8矩阵,按照重新排序后的所述id顺序,将每个所述id对应的每个data段中的每位数据的bit反转率按从左到右、从上到下的顺序排布为8
×
8矩阵;
65.s6:通过已知工况曲线与步骤s4的绘图显示曲线进行类比,识别形状相似的曲线,若识别相似,进入s7,反之,进入s8;
66.检查是否有出现bit反转率为0的情况,若有,重新调整数据长度;
67.重新绘图显示曲线与已知工况曲线进行对比,计算出对应的精度值和偏移值;
68.通过can信号值
×
精度值 偏移量得到新值,重新绘图显示曲线与已知工况曲线进行对比;
69.已知工况曲线需要通过测试台架或转鼓跑特定工况,如nedc循环工况,可以直接得到车速、转速、扭矩等曲线,或者进行快充充电测试,得到电池soc,充电电流,电池温度等曲线;通过需求获取已知工况曲线,将之与绘图显示曲线进行对比,识别出形状相似的曲线;
70.绘图显示曲线所显示的曲线不止为一条,包括多个物理量信号构成的曲线;
71.因为需求物理量有正负值,因此需要甄选数据类型是有符号型还是无符号型,然后根据初始值或中间某段的稳定值确定偏移量,根据最大和最小值差值确定精度值;
72.按上述步骤所得到的新的数据,是未曾考虑bit反转率为0的情况下得出的,因此,需要再根据变量的数值范围甄选是否增加bit反转率为0的情况,如图4所示,自动组合的的新数据的长度是没有考虑bit反转率为0的情况,在需要考虑bit反转率为0的情况时,需要调整新数据的长度。
73.s7:调整步骤s4中重新组成若干组的数据长度,重新绘图显示曲线与已知工况曲线进行对比,二者符合即解析出所需的can报文;
74.s8:对步骤s1中的data段的数据进行镜像处理后,重新执行步骤s1~7;
75.进一步地,对所述步骤s1中的data段的数据进行镜像处理时,包括:
76.将所述data段8位十六进制左右镜像处理后,再转换为64位二进制,然后重新执行步骤s1~7。
77.当识别不到形状相似的曲线时,则表示数据格式为非motorola格式,而是intel格式,即需要在步骤s1中先将data段的8位十六进制数据左右镜像后,再转换为64位二进制数据,然后执行步骤s1~7,获取所需的解析信号。
78.格式的不同,决定了can信号的起始bit和生成报文计算信号值时的大小端算法。如图5所示,为motorola格式,信号以高字节低位起始;如图6所示,为intel格式,信号以低字节低位起始。
79.本实施例通过采用obd对db9一分六can线分别连到车上的obd口和dewesoft九通道can采集模块,通过dewesoft软件尝试读取和存储。当读取不到can数据时,说明obd口已做过加密处理,需要对所需测试物理量对应的控制模块单独引线读取。
80.对控制模块单元引线,需要找到各控制模块的can高和can低,可以通过双绞线颜色和针脚位置进行初步判断,最终通过电压测试进行确认,can高的电压范围一般为3v
±
0.5v,can低的电压范围一般为2v
±
0.5v。通过一个db9母头,一端接控制模块的can高(db9母头的7针脚)和can低(db9母头的2针脚),另一端与dewesoft九通道can采集模块相连,进
行can数据的读取和存储。
81.本实施例通过重新排序id顺序及通过编码规则确定信号解析的起始位和位长度,使再次解析信号获取相应所需物理量时,更方便、快捷识别相应信号数据,提供识别率,降低测试成本。
82.实施例2
83.结合实施例1所示,本实施例提供了一种can信号解析设备,包括,包括:
84.存储器,所述存储器中存储有至少一条指令;
85.处理器,用于加载并执行所述指令以实现实施例1中任一项所述的can信号解析方法的操作。
86.实施例3
87.结合实施例1所示,本实施例还提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行,实现实施例1中任一项所述的can信号解析方法的操作。
88.现有技术没有对id进行针对性的排序,当查找所需的can信号时会导致耗时长的缺点,且没有对数据类型,即有符号型和无符号型,进行分类识别,降低识别效率。
89.本发明通过bit反转率的高低对id进行智能排序,然后绘制显示曲线,与已知工况强关联,可快速识别出所需的can信号。且基于8
×
8编码规则,对有正负的物理量,能够区分数据类型,分别进行分析,提高了对所需can信号的识别率。
90.以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献