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

一种CAN总线状态信号的处理方法及系统与流程

2022-08-10 15:28:14 来源:中国专利 TAG:

一种can总线状态信号的处理方法及系统
技术领域
1.本发明涉及汽车对标测试技术领域,特别涉及一种can总线状态信号的处理方法及系统。


背景技术:

2.随着汽车在国内普及程度越来越高,汽车针对不同使用场景设计的车型、风格越来越多,为了学习先进车型的相关特性及策略,需要对其进行测试评估。
3.传统的对先进车型的测试评估都是借助can(controller area network,控制器局域网络)来完成的,它作为汽车环境中的微控制通讯,在车载各ecu(electric control unit,电子控制单元)之间交换信息,形成汽车电子控制网络,can几乎成为汽车设计领域一种最常采用的技术手段。
4.目前,普通的can信号解析方法为通过can总线收发器接收报文数据,并实时观察,找出满足特定规律的信号位置,再通过针对性的工况进行相关验证。此方法要求参与解析的工程人员具有一定经验,同时,状态信号也需要通过工程人员对报文进行逐帧的寻找,耗时耗力。


技术实现要素:

5.基于此,本发明的目的是提供一种can总线状态信号的处理方法及系统,旨在解决现有技术中,传统的can信号需要人为解析,耗时耗力的问题。
6.本发明实施例的第一方面提供了一种can总线状态信号的处理方法,所述方法包括:
7.获取can数据,所述can数据至少包括id数据和与所述id数据对应的数据段数据,其中,所述id数据和所述数据段数据为可计算数据;
8.将所述数据段数据转化为十六进制数据,并将所述id数据和所述数据段数据呈列状排布,同时,对所述数据段数据的每一列进行标号,得到列号;
9.根据所述id数据,获取所述id数据中的重复id,并将所述重复id进行归类,分别建立重复id组;
10.将所述重复id组排序,并按顺序依次对每一个所述重复id组中的每一列所述数据段数据进行识别,获取当前列中的非重复数据的数量;
11.根据所述非重复数据的数量,判断是否处于解析信号状态量区间内;
12.若是,则输出对应的重复id组的id和列号。
13.优选地,所述can数据还包括时间和信号长度,其中,所述时间和信号长度与所述id数据对应。
14.优选地,所述重复id组中的id数据根据时间顺序进行排序。
15.优选地,所述将所述重复id组排序,并按顺序依次对每一个所述重复id组中的每一列所述数据段数据进行识别,获取当前列中的非重复数据的数量的步骤包括:
16.首先识别所述数据段数据中每一列的第一位的所述十六进制数据,并记录,输入至非重复数据组中;
17.再依次将所述数据段数据中每一列的除第一位的所述十六进制数据与所述非重复数据组中的十六进制数据进行比较,判断是否存在同一十六进制数据;
18.若否,则依次获取与所述非重复数据组中的十六进制数据不同的数据,并添加至所述非重复数据组中,同时,统计所述非重复数据组中的十六进制数据的数量,并输出。
19.优选地,所述解析信号状态量区间根据特定工况的多组状态切换操作决定。
20.优选地,由于所述id数据为可计算数据,所以所述重复id组排序按照id从小到大的顺序排列。
21.优选地,所述根据所述非重复数据的数量,判断处于解析信号状态量区间内时,则输出对应的重复id组的id和列号的步骤之后还包括:
22.控制特定工况的多组状态切换,判断所述输出对应的重复id组的id和列号是否与所述特定工况的多组状态切换操作一致;
23.若是,则发出提示信息,所述提示信息用于提示can总线状态信号的处理已完成。
24.优选地,所述根据所述非重复数据的数量,判断是否处于解析信号状态量区间内的步骤之后还包括:
25.定义解析信号状态量阈值,并获取所述解析信号状态量阈值;
26.当判断所述非重复数据的数量未处于解析信号状态量区间内时,判断所述非重复数据的数量中的最大值是否小于等于所述解析信号状态量阈值;
27.若是,则修改所述解析信号状态量区间,将所述解析信号状态量区间的右端点设置为所述非重复数据的数量中的最大值。
28.本发明实施例的第二方面提供了一种can总线状态信号的处理系统,所述系统包括:
29.获取模块,用于获取can数据,所述can数据至少包括id数据和与所述id数据对应的数据段数据,其中,所述id数据和所述数据段数据为可计算数据;
30.转化模块,用于将所述数据段数据转化为十六进制数据,并将所述id数据和所述数据段数据呈列状排布,同时,对所述数据段数据的每一列进行标号,得到列号;
31.分组模块,用于根据所述id数据,获取所述id数据中的重复id,并将所述重复id进行归类,分别建立重复id组;
32.识别模块,用于将所述重复id组排序,并按顺序依次对每一个所述重复id组中的每一列所述数据段数据进行识别,获取当前列中的非重复数据的数量;
33.第一判断模块,用于根据所述非重复数据的数量,判断是否处于解析信号状态量区间内;
34.输出模块,用于当根据所述非重复数据的数量,判断处于解析信号状态量区间内时,则输出对应的重复id组的id和列号。
35.优选地,所述识别模块包括:
36.输入单元,用于首先识别所述数据段数据中每一列的第一位的所述十六进制数据,并记录,输入至非重复数据组中;
37.十六进制数据判断单元,用于再依次将所述数据段数据中每一列的除第一位的所
述十六进制数据与所述非重复数据组中的十六进制数据进行比较,判断是否存在同一十六进制数据;
38.输出单元,用于当判断未存在同一十六进制数据时,则依次获取与所述非重复数据组中的十六进制数据不同的数据,并添加至所述非重复数据组中,同时,统计所述非重复数据组中的十六进制数据的数量,并输出。
39.与现有技术相比:通过获取can数据中的id数据和与id数据对应的数据段数据,并将id数据和数据段数据转化为便于识别的十六进制数据后进行列状排布,同时,对数据段数据的每一列进行标号,然后将id数据中同一id进行归类,分别建立重复id组,通过对每一个所述重复id组中的每一列所述数据段数据进行识别,获取当前列中的非重复数据的数量,并判断当前列中的非重复数据的数量是否处于解析信号状态量区间内,若是,则输出对应的重复id组的id和列号,而这正是状态切换操作的表现,解决了传统的can信号需要人为解析,耗时耗力的问题。
附图说明
40.图1是本发明第一实施例提供的一种can总线状态信号的处理方法的流程图;
41.图2是本发明第二实施例提供的一种can总线状态信号的处理方法的流程图;
42.图3是本发明第三实施例提供的一种can总线状态信号的处理系统的结构框图。
43.以下具体实施方式将结合上述附图进一步说明本发明。
具体实施方式
44.为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。附图中给出了本发明的若干实施例。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容更加透彻全面。
45.需要说明的是,当元件被称为“固设于”另一个元件,它可以直接在另一个元件上或者也可以存在居中的元件。当一个元件被认为是“连接”另一个元件,它可以是直接连接到另一个元件或者可能同时存在居中元件。本文所使用的术语“垂直的”、“水平的”、“左”、“右”以及类似的表述只是为了说明的目的。
46.除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
47.实施例一
48.请参阅图1,图1示出了本发明第一实施例提供的一种can总线状态信号的处理方法的流程图,所述方法具体包括步骤s01至步骤s06。
49.步骤s01,获取can数据,所述can数据至少包括id数据和与所述id数据对应的数据段数据,其中,所述id数据和所述数据段数据为可计算数据。
50.其中,can数据通过can采集设备实时记录,并至少将can数据中的id数据和与id数据对应的数据段数据转化为可计算的数据,可以理解的,当需要解析某个特定信号时,那么,需要进行特定工况的多组态状态的切换操作,找到需要解析的信号与特定工况下切换
操作之间的关系。
51.步骤s02,将所述数据段数据转化为十六进制数据,并将所述id数据和所述数据段数据呈列状排布,同时,对所述数据段数据的每一列进行标号,得到列号。
52.在本实施例当中,需要将获取到的can数据导出至matlab workspace中,并将可计算的数据段数据转化为十六进制数据,因为数据段数据根据录入软件的不同,保存的进制也不同,故在处理分析时,需要将数据段数据转化成较好识别的十六进制数据。
53.具体的,将id数据和该十六进数据段数据呈列状排布,为了便于区别,对数据的每一列进行了标号,即为列号,可以理解的,当在特定工况下,进行多组态状态的切换操作时,某一列的数据将会随之变化,而该列的列号将被记录,并输出,供相关人员进行分析。
54.步骤s03,根据所述id数据,获取所述id数据中的重复id,并将所述重复id进行归类,分别建立重复id组。
55.需要说明的是,获取到所有的id数据后,将id数据中的重复id提取出,并按照重复id进行归类,分别建立重复id组,例如,所有的id数据,即id号为1、1、1、1、2、2、3、4、4、4、5,那么,将分别建立5个重复id组,即为1重复id组、2重复id组、3重复id组、4重复id组以及5重复id组,可以理解的,1重复id组中包含4个id为1的数据,2重复id组中包含2个id为2的数据,3重复id组中包含1个id为3的数据,4重复id组中包含3个id为4的数据,5重复id组中包含1个id为5的数据,其中,重复id组中还包括各个id号对应的十六进制数据段数据。
56.步骤s04,将所述重复id组排序,并按顺序依次对每一个所述重复id组中的每一列所述数据段数据进行识别,获取当前列中的非重复数据的数量。
57.在本实施例当中,将重复id组按从小到大的顺序进行排序,并按照该顺序依次对重复id组中的十六进制数据段数据的每一列进行遍历,识别出每一列中非重复数据的数量,例如,十六进制数据段数据中一列为0、0、0、0、0、0、0、0、0、0,十个十六进制数据,其中,非重复数据的数量为0,因为该列中皆为重复的数据,即0数据;十六进制数据段数据中一列为0、0、0、0、1、1、1、1、1、0,十个十六进制数据,其中,非重复数据的数量为2,因为其中的0和1为不同的数据;十六进制数据段数据中一列为0、0、0、4、1、1、1、1、1、0,十个十六进制数据,其中,非重复数据的数量为3,因为其中的0、1以及4为三个不同的非重复数据。
58.步骤s05,根据所述非重复数据的数量,判断是否处于解析信号状态量区间内,若是,则执行步骤s06;
59.其中,解析信号状态量区间为预设值,当非重复数据的数量处于解析信号状态量区间内时,则表示此列十六进制数据段数据极有可能为特定工况的多组状态切换操作对应的can信号数据。
60.步骤s06,则输出对应的重复id组的id和列号。
61.综上,本发明通过获取can数据中的id数据和与id数据对应的数据段数据,并将id数据和数据段数据转化为便于识别的十六进制数据后进行列状排布,同时,对所述数据段数据的每一列进行标号,然后将id数据中同一id进行归类,分别建立重复id组,通过对每一个重复id组中的每一列数据段数据进行识别,获取当前列中的非重复数据的数量,并判断当前列中的非重复数据的数量是否处于解析信号状态量区间内,若是,则输出对应的重复id组的id和列号,而这正是状态切换操作的表现,解决了传统的can信号需要人为解析,耗时耗力的问题。
62.实施例二
63.请参阅图2,图2示出了本发明第二实施例提供的一种can总线状态信号的处理方法的流程图,所述方法具体包括步骤s11至步骤s20。
64.步骤s11,获取can数据,所述can数据至少包括id数据和与所述id数据对应的数据段数据,其中,所述id数据和所述数据段数据为可计算数据。
65.具体的,can数据还包括时间和信号长度,其中,时间和信号长度与id数据对应,即当进行特定工况的切换操作时,该操作的时刻也将被记录,每个时刻对应一个id、一个数据段数据以及一个信号长度。
66.步骤s12,将所述数据段数据转化为十六进制数据,并将所述id数据和所述数据段数据呈列状排布,同时,对所述数据段数据的每一列进行标号,得到列号。
67.步骤s13,根据所述id数据,获取所述id数据中的重复id,并将所述重复id进行归类,分别建立重复id组。
68.在本实施例当中,重复id组中包含有若干重复的id号,以及各个id号对应的时间、数据段数据以及信号长度,具体的,根据时间获取的先后顺序,将重复id组中的id数据以及其对应的相关数据进行排序。
69.步骤s14,将所述重复id组排序,并按顺序依次对每一个所述重复id组中的每一列所述数据段数据进行识别,获取当前列中的非重复数据的数量。
70.其中,对每一列数据段数据进行识别,并获取当前列中的非重复数据的数量的步骤具体为,首先识别所述数据段数据中每一列的第一位的所述十六进制数据,并记录,输入至非重复数据组中,再依次将所述数据段数据中每一列的除第一位的所述十六进制数据与所述非重复数据组中的十六进制数据进行比较,判断是否存在同一十六进制数据,若否,则依次获取与所述非重复数据组中的十六进制数据不同的数据,并添加至所述非重复数据组中,同时,统计所述非重复数据组中的十六进制数据的数量,并输出。
71.可以理解的,例如,当数据段数据中一列的十六进制数据为0、0、0、0、0,五个十六进制数据时,首先识别数据段数据中该列的第一位的十六进制数据为0,则将0这个十六进制数据放入非重复数据组中,再获取该列第二位的十六进制数据,为0,将该列第二位数据与非重复数据组中的十六进制数据进行比对,可以判断出该列第二位数据与第一位数据属于同一十六进制数据,即都为0,则输出当前列的非重复数据的数量还是为1,同理,将该列后续的几位十六进制数据分别于第一位十六进制数据进行比对,由于数据皆为0,则该列的非重复数据的数量为1;当数据段数据中一列的十六进制数据为0、1、1、1、0,五个十六进制数据时,首先识别数据段数据中该列的第一位的十六进制数据为0,则将0这个十六进制数据放入非重复数据组中,再获取该列第二位的十六进制数据,为1,将该列第二位数据与非重复数据组中的十六进制数据进行比对,可以判断出该列第二位数据与第一位数据不属于同一十六进制数据,一个是0,一个是1,则当前非重复数据组中的十六进制数据有2个,分别为0和1,继续获取下一位与非重复数据组中的十六进制数据判断时,由于1已经存在于非重复数据组中,故非重复数据的数量为2,以此类推,最终非重复数据组中还是只有0和1两个十六进制数据,那么,该列的非重复数据的数量为2。
72.步骤s15,根据所述非重复数据的数量,判断是否处于解析信号状态量区间内,若是,则执行步骤s16,若否,则执行步骤s19。
73.在本实施例当中,解析信号状态量区间根据特定工况的多组状态切换操作决定,当解析踏板的制动情况时,一般为踩刹车和松刹车两个状态的切换,可以理解为0和1的切换,0代表松刹车,1代表踩刹车,则区间暂选择为大于等于2,小于等于3,解析信号状态量区间的右端点设置为3的原因在于防止冗余的产生。
74.步骤s16,若是,则输出对应的重复id组的id和列号。
75.步骤s17,控制特定工况的多组状态切换,判断所述输出对应的重复id组的id和列号是否与所述特定工况的多组状态切换操作一致,若是,则执行步骤s18。
76.为了验证can数据中的id和数据段数据的位置是否被正确找到,需要再次控制特定工况的多组状态切换,通过切换,观察can数据是否在对应的id和数据段数据的列号进行变化。
77.步骤s18,则发出提示信息,所述提示信息用于提示can总线状态信号的处理已完成。
78.另外,将确定符合的id与位置,将对应的id、起始位置、状态对应数值的备注添加进入车辆dbc(data base can,控制器局域网络数据库文件)。
79.步骤s19,判断所述非重复数据的数量中的最大值是否小于等于所述解析信号状态量阈值,若是,则执行步骤s20。
80.需要说明的是,在判断之前需要定义解析信号状态量阈值,并获取所述解析信号状态量阈值,而该解析信号状态量阈值一般为特定工况在实际切换过程中可能出现的最大值,例如,解析信号状态量区间为2至3,解析信号状态量阈值为4,而识别出数据段数据的某列非重复数据的数量为4,与解析信号状态量阈值相等,说明解析信号状态量区间为2至3这个范围设置的有误,可以理解的,若解析信号状态量阈值过大,可能会识别出很多与切换操作不相关的id和列号,从而对测试结果产生误导。
81.步骤s20,则修改所述解析信号状态量区间,将所述解析信号状态量区间的右端点设置为所述非重复数据的数量中的最大值。
82.具体的,当解析信号状态量区间范围有误时,而数据段数据的某列非重复数据的数量小于等于解析信号状态量阈值,则将解析信号状态量区间的右端点设置为非重复数据的数量值,即解析信号状态量区间为2至3改为2至4,实现了纠错的功能。
83.实施例三
84.请参阅图3,图3是本发明第三实施例提供的一种can总线状态信号的处理系统的结构框图,所述系统300包括:
85.获取模块31,用于获取can数据,所述can数据至少包括id数据和与所述id数据对应的数据段数据,其中,所述id数据和所述数据段数据为可计算数据;
86.转化模块32,用于将所述数据段数据转化为十六进制数据,并将所述id数据和所述数据段数据呈列状排布,同时,对所述数据段数据的每一列进行标号,得到列号;
87.分组模块33,用于根据所述id数据,获取所述id数据中的重复id,并将所述重复id进行归类,分别建立重复id组;
88.识别模块34,用于将所述重复id组排序,并按顺序依次对每一个所述重复id组中的每一列所述数据段数据进行识别,获取当前列中的非重复数据的数量;
89.第一判断模块35,用于根据所述非重复数据的数量,判断是否处于解析信号状态
量区间内;
90.输出模块36,用于当根据所述非重复数据的数量,判断处于解析信号状态量区间内时,则输出对应的重复id组的id和列号。
91.进一步的,所述识别模块34还包括:
92.输入单元,用于首先识别所述数据段数据中每一列的第一位的所述十六进制数据,并记录,输入至非重复数据组中;
93.十六进制数据判断单元,用于再依次将所述数据段数据中每一列的除第一位的所述十六进制数据与所述非重复数据组中的十六进制数据进行比较,判断是否存在同一十六进制数据;
94.输出单元,用于当判断未存在同一十六进制数据时,则依次获取与所述非重复数据组中的十六进制数据不同的数据,并添加至所述非重复数据组中,同时,统计所述非重复数据组中的十六进制数据的数量,并输出。
95.进一步的,所述系统300还包括:
96.切换操作判断模块,用于控制特定工况的多组状态切换,判断所述输出对应的重复id组的id和列号是否与所述特定工况的多组状态切换操作一致;
97.提示模块,用于当判断所述输出对应的重复id组的id和列号与所述特定工况的多组状态切换操作一致时,则发出提示信息,所述提示信息用于提示can总线状态信号的处理已完成。
98.进一步的,所述系统300还包括:
99.定义模块,用于定义解析信号状态量阈值,并获取所述解析信号状态量阈值;
100.非重复数据判断模块,用于当判断所述非重复数据的数量未处于解析信号状态量区间内时,判断所述非重复数据的数量中的最大值是否小于等于所述解析信号状态量阈值;
101.修改模块,用于当判断所述非重复数据的数量中的最大值小于等于所述解析信号状态量阈值时,则修改所述解析信号状态量区间,将所述解析信号状态量区间的右端点设置为所述非重复数据的数量中的最大值。
102.综上,本发明上述实施例当中的can总线状态信号的处理系统,通过获取can数据中的id数据和与id数据对应的数据段数据,并将id数据和数据段数据转化为便于识别的十六进制数据后进行列状排布,同时,对数据段数据的每一列进行标号,然后将id数据中同一id进行归类,分别建立重复id组,通过对每一个所述重复id组中的每一列所述数据段数据进行识别,获取当前列中的非重复数据的数量,并判断当前列中的非重复数据的数量是否处于解析信号状态量区间内,若是,则输出对应的重复id组的id和列号,而这正是状态切换操作的表现,解决了传统的can信号需要人为解析,耗时耗力的问题。
103.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
104.以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并
不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献