一种车辆CAN总线数据分类方法及装置制造方法及图纸

技术编号:26177995 阅读:39 留言:0更新日期:2020-10-31 14:25
本发明专利技术公开了一种车辆CAN总线数据分类方法及装置。其中,该方法包括:本发明专利技术将样本CAN总线数据中相同帧ID的CAN总线数据划分为同一数据集;先粗略切割数据字段,以字节为单位,遍历同一数据集的CAN总线数据,统计每个字节存在不同数值的个数,以确定每个字节所属单值数据、多值数据或全值数据字段;再精确切割数据字段,对于确认出的每个字节所属全值数据字段,合并相邻字节的全值数据字段,在上一步的基础上,对合并后的全值数据字段进行子字段切割,进一步切割成状态值、计数器值和校验值字段,步骤是以比特为单位,遍历全值数据字段,根据每个比特的比特翻转率以及权重确定全值数据子字段的边界及分类。采用本发明专利技术能够推断并切割CAN总线数据字段,对CAN总线数据字段进行准确分类。

【技术实现步骤摘要】
一种车辆CAN总线数据分类方法及装置
本专利技术涉及车联网
,特别涉及一种车辆CAN总线数据分类方法及装置。
技术介绍
控制器局域网络(ControllerAreaNetwork,CAN)总线协议是目前应用于车联网车载网络最广泛的协议。用户操纵车辆,比如点火启动,开关车门等操作,本质上都是相应电控元件(ECU)向CAN总线中发送了对应的控制命令使然的。掌握CAN总线协议的细节,不仅有助于新手学习车辆控制逻辑,还有助于第三方对车辆进行安全检测。然而CAN总线协议标准是公开的,但是CAN总线协议的细节,不同的厂商有各自的实现方式,且对外保密。因此,CAN总线协议逆向技术就发展起来。目前主流的两种CAN总线协议逆向方案,一是通过拔插ECU,对比观察CAN总线中的数据流量变化,将缺失的流量与拔出的ECU相关联;二是对每个ECU设置网关,监控进出ECU的数据,直接将数据与ECU相对应。上述这两种CAN总线协议逆向方案,前者可能会误判,因为不同的ECU之间可能会有数据关联,拔出某个ECU,可能与之关联的另一ECU也会停止发送数据;而后者虽然相对准确,但需要对每个ECU都加装网关,监控流量,不仅费用高昂,而且效率低下。同时,这两种CAN总线协议逆向方案还有以下几点共同的缺点:(1)操作繁琐前者需要拔插ECU,后者需要给ECU加装网关,这就意味着这两种协议逆向的方案都需要将整车拆开,暴露出总线。并且前者对每个ECU进行逆向,都需要拔出ECU,统计一段时间数据,然后插回ECU,再统计一段时间数据,最后对比两段数据的差异。而后者对每个ECU进行逆向,都需要调整网关的加装位置,统计一段时间数据,然后根据网关的监控数据进行分析。两者的操作都非常麻烦。(2)逆向的粒度粗两者协议逆向方案都是将数据与ECU对应起来,没有把具体功能也对应进来。根据两者最后输出的结果,我们只能知道某些数据,是对应某个ECU的,但并不知道这些数据的具体功能含义。
技术实现思路
有鉴于此,本专利技术的专利技术目的是:推断并切割CAN总线数据字段,对CAN总线数据字段进行准确分类。为达到上述目的,本专利技术的技术方案具体是这样实现的:本专利技术提供了一种车辆CAN总线数据分类方法,该方法包括:将样本CAN总线数据中相同帧ID的CAN总线数据划分为同一数据集;以字节为单位,遍历同一数据集的CAN总线数据,统计每个字节存在不同数值的个数,以确定每个字节所属单值数据、多值数据或全值数据字段;以比特为单位,遍历同一数据集的CAN总线数据,获取以字节为单位的各个全值数据字段对应每个比特的比特翻转率,根据每个比特的比特翻转率及权重确定全值数据子字段的边界及分类。本专利技术还提供了一种车辆CAN总线数据分类装置,该装置包括:划分模块,将样本CAN总线数据中相同帧ID的CAN总线数据划分为同一数据集;第一切割模块,以字节为单位,遍历同一数据集的CAN总线数据,统计每个字节存在不同数值的个数,以确定每个字节所属单值数据、多值数据或全值数据字段;第二切割模块,以比特为单位,遍历同一数据集的CAN总线数据,获取以字节为单位的各个全值数据字段对应每个比特的比特翻转率,根据每个比特的比特翻转率及权重确定全值数据子字段的边界及分类。由上述的技术方案可见,本专利技术将样本CAN总线数据中相同帧ID的CAN总线数据划分为同一数据集;先粗略切割数据字段,以字节为单位,遍历同一数据集的CAN总线数据,统计每个字节存在不同数值的个数,以确定每个字节所属单值数据、多值数据或全值数据字段;再精确切割数据字段,对于确认出的每个字节所属全值数据字段,合并相邻字节的全值数据字段,在上一步的基础上,对合并后的全值数据字段进行子字段切割,进一步切割成状态值、计数器值和校验值字段,步骤是以比特为单位,遍历全值数据字段,根据每个比特的比特翻转率以及权重确定全值数据子字段的边界及分类。本专利技术实施例根据CAN总线数据特征,对数据字段由粗略到细致进行多次切割,从而能够准确切割CAN总线数据字段,对CAN总线数据字段进行准确分类。附图说明图1为本专利技术实施例提出的车辆CAN总线数据分类方法的流程示意图。图2为本专利技术另一实施例提出的车辆CAN总线数据分类方法的流程示意图。图3为本专利技术另一实施例提出的车辆CAN总线数据分类装置的结构示意图。具体实施方式为使本专利技术的目的、技术方案、及优点更加清楚明白,以下参照附图并举实施例,对本专利技术进一步详细说明。由于CAN总线协议的专有性,各车厂CAN总线协议的实现方式都各不相同,且对外保密。一条CAN总线数据可能是控制命令,也可能是反映车辆状态信息,或者只是周期性地反馈心跳数据(也可能是多种情况杂糅)。在一条CAN总线数据中,数据部分最多有8个字节(64个bit)。协议设计者可能使用了其中某些字节,甚至只使用其中某几个bit来设计功能。想要顺利地进行协议逆向,就必须准确地切割数据字段。如果在不知道数据边界的情况下就对CAN总线数据进行协议逆向,这样分析的难度无疑是非常大的。如果盲目地切割数据,来推断功能,效果是很差的。比如以1个字节为单位,将8字节数据切割成了8个数据字段,那么可能有的功能会被划分在了多个数据字段中;如果以2个字节为单位,又可能有些功能划分在一个数据字段中。而且很难用一个统一的长度对数据切割,因为协议设计师不太可能将每个功能都设计成同样长度(比如车门开和关,使用1个bit来表示就行了,但是反映车速信息,1个bit是不够用的,至少得用上多个字节)。因此,对盲目切割的数据字段进行功能推断,是没有意义的。因此,对CAN总线数据准确地切割数据字段,对于后续CAN总线协议逆向,使用准确的数据字段推断具体功能,具有非常重要的意义。本专利技术CAN总线协议逆向方案,根据CAN总线数据特征,对数据字段进行多次准确切割,从而对CAN总线数据字段进行准确分类。本专利技术根据CAN总线数据特征,将CAN总线数据划分为三类:单值数据字段、多值数据字段、全值数据字段。其中全值数据字段可以进一步细分为状态值字段、计数器值字段、校验值字段三类。单值数据字段,就是至始至终都为同一个数值的数据,这样的数据往往是用作填充,没有推断功能的必要。多值数据字段,就是只可能在某几个数值中变化的数据,这样的数据往往是用作控制,状态显示等表示某些状态离散的车辆信息。比如车门的开和关;比如雨刷的状态:静止、慢刷、快刷等。全值数据字段,就是能够遍历一个范围数值的数据,这样的数据往往是表示某些状态连续的车辆信息,比如车速、燃油量等;或者是计数器,比如用作心跳数据;又或者只是用作校验值。在CAN总线数据字段类别中,单值数据字段和多值数据字段很好判断。难点主要在于区分出全值数据字段中的状态值字段、计数器值字段和校验值字段这三类。而全值数据字段中,计数器值字段和校验值字段的特征相对明显,所以使用排除法的方式来区分出本文档来自技高网
...

【技术保护点】
1.一种车辆控制器局域网络CAN总线数据分类方法,其特征在于,该方法包括:/n将样本CAN总线数据中相同帧ID的CAN总线数据划分为同一数据集;/n以字节为单位,遍历同一数据集的CAN总线数据,统计每个字节存在不同数值的个数,以确定每个字节所属单值数据、多值数据或全值数据字段;/n以比特为单位,遍历同一数据集的CAN总线数据,获取以字节为单位的各个全值数据字段对应每个比特的比特翻转率,根据每个比特的比特翻转率及权重确定全值数据子字段的边界及分类。/n

【技术特征摘要】
1.一种车辆控制器局域网络CAN总线数据分类方法,其特征在于,该方法包括:
将样本CAN总线数据中相同帧ID的CAN总线数据划分为同一数据集;
以字节为单位,遍历同一数据集的CAN总线数据,统计每个字节存在不同数值的个数,以确定每个字节所属单值数据、多值数据或全值数据字段;
以比特为单位,遍历同一数据集的CAN总线数据,获取以字节为单位的各个全值数据字段对应每个比特的比特翻转率,根据每个比特的比特翻转率及权重确定全值数据子字段的边界及分类。


2.如权利要求1所述的方法,其特征在于,所述统计每个字节存在不同数值的个数,以确定每个字节所属单值数据、多值数据或全值数据字段,具体包括:
当字节存在不同数值的个数为1时,确定所述字节为单值数据字段;
当字节存在不同数值的个数不大于预定个数时,确定所述字节为多值数据字段;
当字节存在不同数值的个数大于预定个数时,确定所述字节为全值数据字段。


3.如权利要求1所述的方法,其特征在于,所述根据每个比特的比特翻转率及权重确定全值数据子字段的边界及分类,具体包括:
将相邻字节的全值数据字段进行合并后,计算各合并后的全值数据字段对应每个比特的比特翻转率权重;
根据所述权重对各合并后的全值数据字段进行子字段切割,以确定每个全值数据子字段的边界;
根据切割后各个全值数据子字段对应每个比特的比特翻转率特征,对各个全值数据子字段进行分类。


4.如权利要求3所述的方法,其特征在于,根据所述权重对各合并后的全值数据字段进行子字段切割,以确定每个全值数据子字段的边界,具体包括:
当前一比特的比特翻转率权重小于后一比特的比特翻转率权重,则确定所述前一比特和后一比特属于不同的全值数据子字段;
当前一比特的比特翻转率权重不小于后一比特的比特翻转率权重,则确定所述前一比特和后一比特属于同一全值数据子字段。


5.如权利要求3所述的方法,其特征在于,根据切割后各个全值数据子字段对应每个比特的比特翻转率特征,对各个全值数据子字段进行分类,具体包括:
根据低有效位的比特翻转率是高有效位比特翻转率的两倍,确定所述全值数据子字段为计数器值字段;
或者,根据全值数据子字段每个比特的比特翻转率分布呈现以0.5为期望的正态分布,确定所述全值数据子字段为校验值字段;
或者,如果所述全值数据子字段既不属于计数器值字段,也不属于校验值字段,则确定所述全值数据子字段为状态值字段。


6.一种车辆控制器局域网络CAN总线数据...

【专利技术属性】
技术研发人员:李明春肖觊威笋大伟赵永胜
申请(专利权)人:北京软安科技有限公司
类型:发明
国别省市:北京;11

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

1