一种数据处理方法及系统与流程

文档序号:17985125发布日期:2019-06-22 00:21阅读:175来源:国知局
一种数据处理方法及系统与流程

本发明涉及报文压缩领域,更具体地说,涉及一种数据处理方法及系统。



背景技术:

can(controllerareanetwork,控制器局域网络)是iso国际标准化的串行通讯协议。在目前的汽车行业,许多汽车信息的状态以及控制命令都由can总线上的can报文进行数据交互。

目前,can报文数据的存储方法主要是基于原始数据存储方式和粗粒度的压缩后进行存储的方式。原始数据的存储方式中对车载ecu的存储负载较大,且相应的通信传输效率低。而粗粒度的压缩方法是将所有报文帧的数据都进行压缩后存储,从而造成压缩效率低下。



技术实现要素:

有鉴于此,本申请提供了一种数据处理方法及系统,实现提高报文帧的压缩效率的目的。

为实现上述目的,先提出的方案如下:

本发明第一方面公开了一种数据处理方法,包括:

获取预设统计周期内的缓存数据中的can报文,并确定所述can报文包括的报文帧;

确定在预设统计周期内所述报文帧中各个字段分别对应的变化次数,其中,所述各个字段是依据预设的单位长度划分所述can报文的报文帧得到的;

根据所述各个字段分别对应的变化次数由高至低对所述can报文的报文帧进行结构重组;

将结构重组后的所述can报文的报文帧进行压缩并存储。

优选的,所述获取预设统计周期内的缓存数据中的can报文,包括:

通过采集节点对can网络中的can报文进行采集并缓存,得到缓存数据;

获取预设统计周期内的所述缓存数据中的can报文。

优选的,所述确定在预设统计周期内所述报文帧中各个字段分别对应的变化次数,包括:

以字节为单位长度划分所述can报文的报文帧得到各个字段;

确定在预设的统计周期内所述各个字段分别对应的变化次数。

优选的,所述确定在预设统计周期内所述报文帧中各个字段分别对应的变化次数,包括:

以位为单位长度划分所述can报文的报文帧得到各个字段;

确定在预设统计周期内所述各个字段分别对应的变化次数。

优选的,所述确定在预设统计周期内所述报文帧中各个字段分别对应的变化次数,包括:

在预设的统计周期内,比较第一时刻所述各个字段分别对应的变化次数与第二时刻所述各个字段分别对应的变化次数是否发生变化,其中,所述第一时刻是第二时刻的前一时刻;

若发生变化,则获取所述各个字段分别对应的变化次数为第一变化次数;

若不发生变化,则获取所述各个字段分别对应的变化次数为第二变化次数。

优选的,所述将结构重组后的所述can报文的报文帧进行压缩并存储,包括:

将所述结构重组后的所述can报文的报文帧进行异或运算压缩,得到压缩数据dnz;

将所述压缩数据dnz进行存储。

本发明第二方面公开了一种数据处理系统,其特征在于,包括:

获取单元,用于获取预设统计周期内的缓存数据中的can报文,并确定所述can报文包括的报文帧;

确定单元,用于确定在预设统计周期内所述报文帧中各个字段分别对应的变化次数,其中,所述各个字段是依据预设的单位长度划分所述can报文的报文帧得到的;

重组单元,用于根据所述各个字段分别对应的变化次数由高至低对所述can报文的报文帧进行结构重组;

压缩存储单元,用于将结构重组后的所述can报文的报文帧进行压缩并存储。

优选的,所述获取预设统计周期内的缓存数据中的can报文的获取单元,包括:

采集模块,用于通过采集节点对can网络中的can报文进行采集并缓存,得到缓存数据;

获取模块,用于获取预设统计周期内的所述缓存数据中的can报文。

优选的,所述将结构重组后的所述can报文的报文帧进行压缩并存储的压缩存储单元,包括:

压缩模块,用于将所述结构重组后的所述can报文的报文帧进行异或运算压缩,得到压缩数据dnz;

存储模块,用于将所述压缩数据dnz进行存储。

经由上述技术方案可知,本发明提供了一种数据处理方法及系统,通过获取预设统计周期内的缓存数据中的can报文,并确定can报文包括的报文帧,确定在预设统计周期内所述报文帧中各个字段分别对应的变化次数,根据各个字段分别对应的变化次数由高至低对所述can报文的报文帧进行结构重组,将结构重组后的所述can报文的报文帧进行压缩并存储。通过上述方法,将各个字段分别对应的变化次数由高至低对can报文的报文帧进行结构重组,基于重组后的报文帧进行压缩处理,得到长度最短的压缩存储数据,从而提高压缩报文帧的压缩效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例公开的一种数据处理方法的流程示意图;

图2为本发明实施例公开的获取预设统计周期内的缓存数据中的can报文的流程示意图;

图3为本发明实施例公开的确定在预设统计周期内can报文的报文帧中各个字段以字节为单位长度时分别对应的变化次数的流程示意图;

图4为本发明实施例公开的确定在预设统计周期内can报文的报文帧中各个字段以位为单位长度时分别对应的变化次数的流程示意图;

图5为本发明实施例公开的在预设的统计周期内can报文的报文帧中各个字段分别对应的变化次数的流程示意图;

图6为本发明实施例公开的以字节为单位的can报文的报文帧重组压缩示意图;

图7为本发明实施例公开的以位为单位的can报文的报文帧重组压缩示意图;

图8为本发明实施例公开的另一种数据处理方法的流程示意图;

图9为本发明实施例公开的一种数据处理系统的结构示意图;

图10为本发明实施例公开的一种数据处理系统的获取单元的结构示意图;

图11为本发明实施例公开的一种数据处理系统的压缩存储单元的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

由背景技术可知,现有技术中,can报文数据的存储方法主要是基于原始数据存储方式和粗粒度的压缩后进行存储的方式。原始数据的存储方式中对车载ecu的存储负载较大,且相应的通信传输效率低。而粗粒度的压缩方法是将所有报文帧的数据都进行压缩后存储,从而造成压缩效率低下。

因此,本发明公开了一种数据处理方法及系统,通过获取预设统计周期内的缓存数据中的can报文,并确定can报文包括的报文帧,确定在预设统计周期内所述报文帧中各个字段分别对应的变化次数,根据各个字段分别对应的变化次数由高至低对所述can报文的报文帧进行结构重组,基于重组后的报文帧进行压缩处理,得到长度最短的压缩存储数据,以实现提高压缩报文帧的压缩效率的目的。

如图1所示,为本发明实施例公开的一种数据处理方法的流程示意图,具体包括如下步骤:

步骤s101:获取预设统计周期内的缓存数据中的can报文,并确定所述can报文包括的报文帧。

在具体实现步骤s101的过程中,在预设统计周期内获取缓存数据中的can报文,所述can报文由采集节点对can网络中的can报文进行采集得到的。

需要说明的是,预设统计周期为周期间隔时间,可以是30秒,也可以是50秒等,具体统计周期的确定由技术人员根据实际情况进行设置。

需要说明的是,缓存数据是指在一个统计周期内收到的还未进行压缩处理的原始数据。所述缓存数据的数量可以为多个,具体缓存数据的确定由技术人员根据实际情况进行设置。

需要说明的是,一个can报文的报文帧中通常包含多个位置固定的信号数据。所述信号数据从产生时间上分为周期信号和非周期信号,所述周期信号的物理值无论是否发生变化,在定时周期到达时都会产生报文帧。所述非周期信号在其产生的相邻的两次报文帧,其物理值不一定会发生变化。

上述步骤s101涉及到的预设统计周期内的缓存数据中的can报文的获取过程,如图2,示出了本发明实施例公开的获取预设统计周期内的缓存数据中的can报文的流程示意图,具体包括如下步骤:

步骤s201:通过采集节点对can网络中的can报文进行采集并缓存,得到缓存数据。

在执行步骤s201的过程中,通过将采集节点连接到can网络中,对所述can网络中的can报文进行采集并缓存,得到缓存数据。

需要说明的是,所述采集节点负责与can网络相连,从can网络中提取实时运行的报文数据。

需要说明的是,所述采集节点的数量可以为多个,具体由技术人员根据实际情况进行设置。

步骤s202:获取预设统计周期内的所述缓存数据中的can报文。

通过执行步骤s201-步骤s202通过采集节点对can网络中的can报文进行采集并缓存,在得到缓存数据后获取预设统计周期内对所述缓存数据中的can报文。

步骤s102:确定在预设统计周期内所述报文帧中各个字段分别对应的变化次数。

在具体实现步骤s102的过程中,在预设统计周期内所述报文帧中各个字段基于预设的单位长度划分所述can报文的报文帧得到的。

需要说明的是,所述各个字段基于预设的单位长度划分所述can报文的数据帧得到的。所述数据帧包括:帧起始,仲裁场,控制场,数据场,crc场,应答场和帧结尾。

需要说明的是,所述预设的单位长度包括:字节单位长度和位单位长度。

需要说明的是,字节是计算机数据处理的最基本单位,并主要以字节为单位解释信息。字节(byte)简记为b,规定一个字节为8位,即1b=8bit。每个字节由8个二进制位组成。二进制数据中的一个位(bit)简写为b,音译为比特,是计算机存储数据的最小单位。

需要说明的是,当收到当前时刻can报文的报文帧后,通过比较当前时刻can报文的报文帧与基于当前时刻的上一时刻can报文的报文帧的各个字段是否发生变化,若发生变化,则相应字段的变化次数f增加1,若不发生变化,则变化次数f不变。

上述步骤s102涉及到的确定在预设统计周期内所述报文帧中各个字段基于以字节为单位长度时分别对应的变化次数的过程,如图3,示出了本发明实施例公开的确定在预设统计周期内can报文的报文帧中各个字段以字节为单位长度时分别对应的变化次数的流程示意图,具体包括如下步骤:

步骤s301:以字节为单位长度划分所述can报文的报文帧得到各个字段。

步骤s302:确定在预设的统计周期内所述各个字段分别对应的变化次数。

通过执行步骤s301-步骤s302以字节为单位长度划分所述can报文的报文帧得到各个字段,在预设的统计周期内确定所述各个字段分别对应的变化次数。

基于上述以字节为单位长度时确定各个字段分别对应的变化次数的过程,这里举例进行说明:

在一个统计周期t内,以字节为单位长度划分所述can报文的报文帧时,此时的报文帧中的各个字段b=(b1,b2,b3,b4,b5,b6,b7,b8),则所述各个字段b=(b1,b2,b3,b4,b5,b6,b7,b8)所对应的变化次数f=(f1,f2,f3,f4,f5,f6,f7,f8)。

上述步骤s102涉及到的确定在预设统计周期内所述can报文的报文帧中各个字段以字节为单位长度时分别对应的变化次数的过程,如图4,示出了本发明实施例公开的确定在预设统计周期内can报文的报文帧中各个字段以位为单位长度时分别对应的变化次数的流程示意图,具体包括如下步骤:

步骤s401:以位为单位长度划分所述can报文的报文帧得到各个字段。

步骤s402:确定在预设统计周期内所述各个字段分别对应的变化次数。

通过执行步骤s401-步骤s402以位为单位长度划分所述can报文的报文帧得到各个字段,在预设的统计周期内确定所述各个字段分别对应的变化次数。

基于上述以位为单位长度时确定各个字段分别对应的变化次数的过程,这里举例进行说明:

在一个统计周期t内,以位为单位长度划分所述can报文的报文帧时,此时报文帧中的各个字段b=(b1,b2,b3,b4,b5,b6),则所述各个字段b=(b1,b2,b3,b4,b5,b6)所对应的变化次数f=(f1,f2,f3,f4,f5,f6)。

基于图3公开的确定在预设统计周期内can报文的报文帧中各个字段以字节为单位长度时分别对应的变化次数的流程示意图和图4公开的确定在预设统计周期内can报文的报文帧中各个字段以位为单位长度时分别对应的变化次数的流程示意图,如图5,示出了本发明实施例公开的在预设的统计周期内can报文的报文帧中各个字段分别对应的变化次数的流程示意图,具体包括如下步骤:

步骤s501:在预设的统计周期内,比较第一时刻所述各个字段分别对应的变化次数与第二时刻所述各个字段分别对应的变化次数是否发生变化,其中,所述第一时刻是第二时刻的前一时刻。

基于上述比较第一时刻所述各个字段分别对应的变化次数与第二时刻所述各个字段分别对应的变化次数是否发生变化的实现过程,这里举例进行说明:

例如,在第一时刻为16时05分时各个字段分别对应的变化次数f1与第二时刻16时06分时各个字段分别对应的变化次数f2,所述变化次数f2与所述变化次数f1不同。

步骤s502:若发生变化,则获取所述各个字段分别对应的变化次数为第一变化次数。

需要说明的是,第一时刻与第二时刻所述各个字段分别对应的变化次数发生变化时,则所述第一变化次数相应的增加1。

需要说明的是,所述各个字段的数量可以为多个,具体字段个数的确定由技术人员根据实际情况进行设置。

步骤s503:若不发生变化,则获取所述各个字段分别对应的变化次数为第二变化次数。

需要说明的是,第一时刻与第二时刻所述各个字段分别对应的变化次数不发生变化时,则所述第二变化次数不变。

通过执行步骤s501-步骤s503通过在预设的统计周期内,比较第一时刻和第二时刻的各个字段分别对应的变化次数是否发生变化,若发生变化,则获取所述各个字段分别对应的变化次数为第一变化次数,若不发生变化,则获取所述各个字段分别对应的变化次数为第二变化次数。

步骤s103:根据所述各个字段分别对应的变化次数由高至低对所述can报文的报文帧进行结构重组。

在具体实现步骤s103的过程中,根据预设的单位长度划分所述can报文的报文帧得到的各个字段,基于所述各个字段所对应的变化次数由高至低对所述can报文的报文帧进行结构重组。

需要说明的是,所述can报文的报文帧进行结构重组是依据所述各个字段所对应的变化次数由高至低的方式进行重组的,由高至低的方式可以是以排序的方式进行,也可以是分级的方式进行,具体由高至低的方式的确定由技术人员根据实际情况进行设置。

步骤s104:将结构重组后的所述can报文的报文帧进行压缩并存储。

在具体实现步骤s104的过程中,基于结构重组后的所述can报的报文帧进行异或运算压缩处理。

需要说明的是,基于can报文的报文帧中的单位长度的变化频率对原始报文帧重组后再压缩的方式,在各个统计周期内,能够根据can报文的报文帧内数据的变化规律,自适应的动态重组can报文的报文帧结构,以达到最佳压缩比的效果。

需要说明的是,所述can报文的报文帧进行压缩并存储后,是否要继续下一统计周期的can报文的报文帧压缩存储过程,可以根据实际情况由技术人员进行设置。

在上述步骤s103-步骤s104涉及到的根据预设的单位长度划分所述can报文的报文帧得到各个字段,所述各个字段分别对应的变化次数由高至低对所述can报文的报文帧进行结构重组压缩的过程,如图6,示出了本发明实施例公开的以字节为单位的can报文的报文帧重组压缩示意图。

需要说明的是,图6中,信号sig_i和信号sig_j的变化次数高,其余部分的变化次数低。

需要说明的是,对以字节为单位所对应的变化次数由高至低进行排序,按照排序结果,重组报文帧的字节序列。

需要说明的是,以字节为单位的重组压缩方式,计算复杂度较低,运算更快。

在上述步骤s103-步骤s104涉及到的根据预设的单位长度划分所述can报文的报文帧得到各个字段,所述各个字段分别对应的变化次数由高至低对所述can报文的报文帧进行结构重组压缩的过程,如图7,示出了本发明实施例公开的以位为单位的can报文的报文帧重组压缩示意图。

需要说明的是,图7中,信号sig_i和信号sig_j的变化次数高,其余部分的变化次数低。

需要说明的是,对以位为单位所对应的变化次数由高至低进行排序,按照排序结果,重组报文帧的位序列。

需要说明的是,以位为单位长度的重组压缩方式,运算复杂度略高,但是压缩效果更优。

在实际应用中,可以根据计算平台的计算能力及对数据压缩率的需求,灵活选择以字节为单位长度或者以位为单位长度的压缩存储方案。

本发明实施例公开的一种数据处理方法,通过获取预设统计周期内的缓存数据中的can报文,并确定can报文包括的报文帧,确定在预设统计周期内所述报文帧中各个字段分别对应的变化次数,根据各个字段分别对应的变化次数由高至低对所述can报文的报文帧进行结构重组,将结构重组后的所述can报文的报文帧进行压缩并存储。通过上述方法,将各个字段分别对应的变化次数由高至低对can报文的报文帧进行结构重组,基于重组后的报文帧进行压缩处理,得到长度最短的压缩存储数据,从而提高压缩报文帧的压缩效率。

基于图1的一种数据处理方法的流程示意图,本发明实施例公开的另一种数据处理方法的流程示意图,如图8所示,具体包括如下步骤:

步骤s801:获取预设统计周期内的缓存数据中的can报文,并确定所述can报文包括的报文帧。

步骤s802:确定在预设统计周期内所述报文帧中各个字段分别对应的变化次数。

可选的,步骤s802中具体得到所述报文帧中各个字段分别对应的变化次数的方式,也可以采用图3中公开的步骤s301-步骤s302或图4公开的步骤s401-步骤s402的执行方式实现。

步骤s803:根据所述各个字段分别对应的变化次数由高至低对所述can报文的报文帧进行结构重组。

上述步骤s801-步骤s803的执行过程与图1示出的步骤s101-步骤s103的执行过程相同,且执行原理也相同,可参见,这里不再进行赘述。

步骤s804:将所述结构重组后的所述can报文的报文帧进行异或运算压缩,得到压缩数据dnz。

在执行步骤s804的过程中,根据变化次数由高至低对can报文的报文帧进行结构重组,使得变化次数高的信号在报文帧中聚集在帧的一端,在进行异或运算时,得到长度最短的压缩存储数据dnz。

步骤s805:将所述压缩数据dnz进行存储。

本发明提供了一种数据处理方法,获取预设统计周期内的缓存数据中的can报文,并确定所述can报文包括的报文帧,确定在预设统计周期内所述报文帧中各个字段分别对应的变化次数,根据所述各个字段分别对应的变化次数由高至低对所述can报文的报文帧进行结构重组,将所述结构重组后的所述can报文的报文帧进行异或运算压缩,得到压缩数据dnz,将所述压缩数据dnz进行存储。通过上述方法,将各个字段分别对应的变化次数由高至低对can报文的报文帧进行结构重组,基于重组后的报文帧进行压缩处理,得到长度最短的压缩存储数据,从而提高压缩报文帧的压缩效率。

基于上述数据处理方法具体实现过程,这里举例进行说明:

在统计周期开始后,获取统计周期内的缓存数据中的can报文,确定所述can报文中的报文帧,将第一时刻17:00分时字节a=(a1,a2)所对应的变化次数fa=(f1,f2)与第二时刻17:01分时字节b=(b1,b2)所对应的变化次数fb=(f3,f4)进行比较,所述变化次数fa与fb发生变化,根据字节a和字节b分别对应的变化次数fa与fb由高至低进行排序,基于排序后的结果对can报文的报文帧进行结构重组,基于重组后的报文帧进行异或运算压缩处理,得到长度最短的压缩存储数据dnz。

基于上述本发明实施例公开的数据处理方法,本发明实施例对应公开了一种数据处理系统,如图9所示,该数据处理系统900具体包括:

获取单元901,用于获取预设统计周期内的缓存数据中的can报文,并确定所述can报文包括的报文帧。

确定单元902,用于确定在预设统计周期内所述报文帧中各个字段分别对应的变化次数,其中,所述各个字段是依据预设的单位长度划分所述can报文的报文帧得到的。

重组单元903,用于根据所述各个字段分别对应的变化次数由高至低对所述can报文的报文帧进行结构重组。

压缩存储单元904,用于将结构重组后的所述can报文的报文帧进行压缩并存储。

进一步的,所述获取单元901,如图10所示,包括:

采集模块1001,用于通过采集节点对can网络中的can报文进行采集并缓存,得到缓存数据。

获取模块1002,用于获取预设统计周期内的所述缓存数据中的can报文。

进一步的,所述压缩存储单元904,如图11所示,包括:

压缩模块1101,用于将所述结构重组后的所述can报文的报文帧进行异或运算压缩,得到压缩数据dnz。

存储模块1102,用于将所述压缩数据dnz进行存储。

上述本发明实施例公开的数据处理系统中的各个单元和模块具体的原理和执行过程,与上述本发明实施例公开的数据处理方法相同,可参见上述本发明实施例公开的数据处理方法中相应的部分,这里不再进行赘述。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本申请的实施例可提供为方法、装置或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1