提高CAN总线数据传输可靠性的方法、装置和计算机设备与流程

文档序号:18737566发布日期:2019-09-21 01:22阅读:464来源:国知局
提高CAN总线数据传输可靠性的方法、装置和计算机设备与流程

本申请涉及数据传输技术领域,特别是涉及提高CAN总线数据传输可靠性的方法、装置、计算机设备和存储介质。



背景技术:

CAN(Controller Area Network)是ISO国际标准化的串行通信协议,属于现场总线的范畴,它是一种有效支持分布式控制或实时控制的串行通信网络,利用CAN实现数据传输通常采用帧传送方式,即在总线上传输的报文以帧结构进行传输,而帧结构具体包括这四种:数据帧、远程帧、错误帧和过载帧。

其中,数据帧格式是设备通信的主要帧格式,可固定存储有效数据实现信息通信,当实际通讯中需要传输的数据量较多,设备有效数据将被分为多个数据帧进行传送。

但是,由于多个数据帧时常出现相同数据的重复传输,造成总线通讯网络堵塞、数据冗余等问题,以致影响设备之间的通讯,降低了总线的可靠性。

因此,现有的CAN总线数据传输方法存在数据传输可靠性低的问题。



技术实现要素:

基于此,有必要针对上述CAN总线数据传输方法存在着数据传输可靠性低的技术问题,提供一种能够合理解决上述技术问题的提高CAN总线数据传输可靠性的方法、装置、计算机设备和存储介质。

一种提高CAN总线数据传输可靠性的方法,包括如下步骤:

获取已传输数据帧;所述已传输数据帧包括标定数据段;

统计所述标定数据段的重复传输量;

根据所述标定数据段的重复传输量,确定所述标定数据段为共性数据;

获取待传输数据帧,当所述待传输数据帧包含有所述共性数据时,将所述共性数据替换为共性标识,得到待传输共性数据帧;

发送所述待传输共性数据帧至数据接收设备。

在其中一个实施例中,所述标定数据段包括仲裁段和控制段,所述统计所述标定数据段的重复传输量,包括:

确定所述已传输数据帧的仲裁控制段数据;所述仲裁控制段数据为所述仲裁段和所述控制段的数据;

统计所述仲裁控制段数据的重复数量,作为所述标定数据段的重复传输量。

在其中一个实施例中,所述根据所述标定数据段的重复传输量,确定所述标定数据段为共性数据,包括:

统计所述已传输数据帧的数据帧总量;

计算所述重复传输量与所述数据帧总量的商值,得到重复百分比;

当所述重复百分比达到预设的重复百分比阈值,则确定所述标定数据段为共性数据。

在其中一个实施例中,所述方法还包括:

当所述重复百分比未达到所述重复百分比阈值,则累计所述标定数据段的重复传输量,直至所述标定数据段的重复百分比达到所述重复百分比阈值。

在其中一个实施例中,所述获取待传输数据帧,当所述待传输数据帧包含有所述共性数据时,将所述共性数据替换为共性标识,得到待传输共性数据帧,包括:

获取待传输数据帧;

确定所述待传输数据帧的仲裁控制段数据;所述仲裁控制段数据为所述待传输数据帧的仲裁段数据和控制段数据;

当所述仲裁控制段数据与所述共性数据相匹配时,将所述仲裁控制段数据替换为共性标识,得到所述待传输共性数据帧。

在其中一个实施例中,所述当所述仲裁控制段数据与所述共性数据相匹配时,将所述仲裁控制段数据替换为共性标识,得到所述待传输共性数据帧,包括:

当所述仲裁控制段数据与所述共性数据相匹配时,确定所述仲裁控制段数据为所述共性数据;

根据所述共性数据,从预存的多个共性标识中获取与所述共性数据相匹配的共性标识;所述多个共性标识分别与多个共性数据相匹配;

将所述共性数据替换为所述共性标识,得到所述待传输共性数据帧。

在其中一个实施例中,所述方法还包括:

当所述待传输数据帧不包含所述共性数据时,将所述待传输数据帧发送至所述数据接收设备。

在其中一个实施例中,所述发送所述待传输共性数据帧至数据接收设备,包括:

将所述待传输共性数据帧按照预设的周期时间发送至所述数据接收设备。

一种提高CAN总线数据传输可靠性的方法,包括如下步骤:

接收数据发送设备的数据帧;

当所述数据帧为共性数据帧时,根据所述共性数据帧的共性标识,从预存的多个共性数据中获取与所述共性标识相匹配的共性数据;所述多个共性数据分别与多个共性标识相匹配;

将所述共性数据帧的共性标识替换为所述共性数据,得到有效数据帧。

在其中一个实施例中,在所述接收数据发送设备的数据帧之后,还包括:

提取所述数据帧的标定数据段;所述标定数据段为所述数据帧的仲裁段与控制段;

确定所述标定数据段的数据位总数;

当所述数据位总数小于预设的数据位阈值时,确定所述数据帧为所述共性数据帧;所述共性数据帧的标定数据段包括所述共性标识。

在其中一个实施例中,所述方法还包括:

若所述多个共性数据中不包括与所述共性标识相匹配的共性数据,则生成通信故障提示;所述通信故障提示用于提示CAN总线通信故障。

一种提高CAN总线数据传输可靠性的装置,所述装置包括:

已传输数据帧获取模块,用于获取已传输数据帧;所述已传输数据帧包括标定数据段;

重复传输量统计模块,用于统计所述标定数据段的重复传输量;

共性数据确定模块,用于根据所述标定数据段的重复传输量,确定所述标定数据段为共性数据;

共性数据帧获取模块,用于获取待传输数据帧,当所述待传输数据帧包含有所述共性数据时,将所述共性数据替换为共性标识,得到待传输共性数据帧;

共性数据帧发送模块,用于发送所述待传输共性数据帧至数据接收设备。

一种提高CAN总线数据传输可靠性的装置,所述装置包括:

数据帧接收模块,用于接收数据发送设备的数据帧;

共性数据获取模块,用于当所述数据帧为共性数据帧时,根据所述共性数据帧的共性标识,从预存的多个共性数据中获取与所述共性标识相匹配的共性数据;所述多个共性数据分别与多个共性标识相匹配;

有效数据帧获取模块,用于将所述共性数据帧的共性标识替换为所述共性数据,得到有效数据帧。

一种提高CAN总线数据传输可靠性的系统,所述系统包括:

数据发送设备和数据接收设备;

所述数据接收设备,用于接收所述数据发送设备的数据帧,并当所述数据帧为共性数据帧时,根据所述共性数据帧的共性标识,从预存的多个共性数据中获取与所述共性标识相匹配的共性数据,进而将所述共性数据帧的共性标识替换为所述共性数据,得到有效数据帧;所述多个共性数据分别与多个共性标识相匹配;

所述数据发送设备,用于获取已传输数据帧,并统计所述已传输数据帧中标定数据段的重复传输量,进而根据所述重复传输量,确定所述标定数据段为共性数据,以此获取待传输数据帧,当所述待传输数据帧包含有所述共性数据时将所述共性数据替换为共性标识,从而得到待传输共性数据帧,最终发送所述待传输共性数据帧至所述数据接收设备。

一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

获取已传输数据帧;所述已传输数据帧包括标定数据段;

统计所述标定数据段的重复传输量;

根据所述标定数据段的重复传输量,确定所述标定数据段为共性数据;

获取待传输数据帧,当所述待传输数据帧包含有所述共性数据时,将所述共性数据替换为共性标识,得到待传输共性数据帧;

发送所述待传输共性数据帧至数据接收设备。

一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

接收数据发送设备的数据帧;

当所述数据帧为共性数据帧时,根据所述共性数据帧的共性标识,从预存的多个共性数据中获取与所述共性标识相匹配的共性数据;所述多个共性数据分别与多个共性标识相匹配;

将所述共性数据帧的共性标识替换为所述共性数据,得到有效数据帧。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

获取已传输数据帧;所述已传输数据帧包括标定数据段;

统计所述标定数据段的重复传输量;

根据所述标定数据段的重复传输量,确定所述标定数据段为共性数据;

获取待传输数据帧,当所述待传输数据帧包含有所述共性数据时,将所述共性数据替换为共性标识,得到待传输共性数据帧;

发送所述待传输共性数据帧至数据接收设备。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

接收数据发送设备的数据帧;

当所述数据帧为共性数据帧时,根据所述共性数据帧的共性标识,从预存的多个共性数据中获取与所述共性标识相匹配的共性数据;所述多个共性数据分别与多个共性标识相匹配;

将所述共性数据帧的共性标识替换为所述共性数据,得到有效数据帧。

上述提高CAN总线数据传输可靠性的方法、装置、系统、计算机设备和存储介质中,数据发送设备主要通过统计已传输数据帧中标定数据段的重复传输量,来确定并标记共性数据,以此判断待传输数据帧中是否包含有该被标记的共性数据,若有则将共性数据替换为预先设置的共性标识,生成待传输共性数据帧,以此发送至数据接收设备,供数据接收设备解析该共性数据帧获取完整有效的数据。采用本方案,将设备间通讯数据中的相同数据作共性提取、标识替换,以扩充数据帧中有效数据的存储空间,不仅有效减少了数据帧的划分帧数,还有效提高了CAN总线利用率,增强了CAN总线通讯数据传输的可靠性。

附图说明

图1为一个实施例中提高CAN总线数据传输可靠性方法的应用环境图;

图2为一个实施例中提高CAN总线数据传输可靠性方法的流程示意图;

图3为一个实施例中提高CAN总线数据传输可靠性方法的CAN数据帧格式示意图;

图4为另一个实施例中提高CAN总线数据传输可靠性方法的流程示意图;

图5为一个实施例中提高CAN总线数据传输可靠性装置的结构框图;

图6为另一个实施例中提高CAN总线数据传输可靠性装置的结构框图;

图7为一个实施例中提高CAN总线数据传输可靠性系统的结构示意图;

图8为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本发明所提供的一种提高CAN总线数据传输可靠性的方法,可以应用于如图1所示的应用环境中,该应用环境可以是针对空调内部设备之间的数据通讯,也可以是空调总控中心对多个空调执行数据传输控制的场景。其中,在一个提高CAN总线数据传输可靠性的系统中,可以包括有数据发送设备102和数据接收设备104。

其中,数据发送设备102、数据接收设备104可以是空调内部设置不同管理系统的微处理器,也可以是空调总控中心的服务器,数据发送设备102与数据接收设备104之间的通讯可以是通过网络建立通信,也可以是存在一个有线或无线的通讯模块实现数据传输通讯。

在一个实施例中,如图2所示,提供了一种提高CAN总线数据传输可靠性的方法,以该方法应用于图1中的数据发送设备102为例进行说明,包括以下步骤:

步骤S210,获取已传输数据帧;已传输数据帧包括标定数据段。

其中,已传输数据帧是指由数据发送设备102已传输发送的数据帧格式数据,已传输数据帧的数据帧格式可参阅图3。

其中,标定数据段是指在已传输数据帧中被预先标定的数据段,该标定数据段将成为共性数据特征提取的依据,即共性数据的标记来源。需要说明的是,如图3所示,CAN数据帧格式包括有多个数据段,其中的数据段取决于设备之间通讯传输的具体数据,因此数据段所存储数据是变化的,则校验段随数据段数据的变化而同步校验对象的变化,因此,作为共性数据来源的标定数据段主要为仲裁段和控制段。

具体实现中,要确定数据帧中所存在的共性数据,首先需要获取已传输数据帧,通过对已传输数据帧中标定数据段的标记记录,判断后续待传输数据帧是否需要进行共性数据的提取。

例如,在一次数据传输过程中,数据按帧结构形式传输,要判断是否对当前待传输的数据帧进行共性数据提取,则首先需获取所有已传输数据帧,利用已传输数据帧中标定数据段的相似性判断,判定在已传输数据帧中是否已存在共性数据,则可对候选待传输的数据帧进行共性数据的提取与标记,采用存储空间占用小的共性标识代替共性数据,以缩短标定数据段的占用数据位,则数据段可相应扩充其可存储数据位,进而促使数据划分数据帧数量减少,实现对CAN总线的利用率,避免通信网络堵塞,由此提高数据传输的可靠性。

步骤S220,统计标定数据段的重复传输量。

其中,重复传输量可以是标定数据段重复出现的数量,也可以是具有相同性质标定数据段的数据总量,例如,20、30、40等。

具体实现中,数据发送设备102获取已传输数据帧之后,将针对已传输数据帧中所存在的标定数据段,进行重复传输量的统计,该统计方式可以是在数据帧传输过程中利用计数器实现对相同标定数据段的重复记录,若出现多个不同的标定数据段,则采用多个计数器完成重复传输量的记录。

例如,当前已传输数据帧总计30帧,则总计有30个标定数据段,其中标定数据段A有12个、标定数据段B有15个、标定数据段C有3个,则标定数据段A的重复传输量为12、标定数据段B的重复传输量为15、标定数据段C的重复传输量为3。

步骤S230,根据标定数据段的重复传输量,确定标定数据段为共性数据。

其中,共性数据是指重复传输量达到要求从而被标记的标定数据段,共性数据包括满足要求标定数据段中所存储的数据,若重复传输量满足要求的标定数据段包括仲裁段的数据“01010011010”和控制段数据“1010”,则可确定共性数据为“010100110101010”。

具体实现中,利用已传输数据帧的标定数据段判断待传输数据帧是否存在被标定的共性数据,则首先需针对已传输数据帧中标定数据段的重复传输量进行甄别,即判断该重复传输量是否达到了预设的要求,若达到则可确定该甄别的标定数据段的数据为共性数据,若未达到则不作共性数据的标记,继续累计重复传输量,直至达到要求。

例如,当前标定数据段A的重复传输量达到了12,而预设的数量要求为10,则该标定数据段A中的数据“010100110101010”被标记为共性数据,共性数据被存入微处理器寄存器,同时生成相对应的共性标识,形成共性数据与共性标识之间的映射关系。其中,共性标识必然是存储数据位小于共性数据的标识,共性标识可以是由字符串组成的标识。

步骤S240,获取待传输数据帧,当待传输数据帧包含有共性数据时,将共性数据替换为共性标识,得到待传输共性数据帧。

其中,待传输数据帧是指当前需分析处理之后传输的数据帧。

其中,待传输共性数据帧可以是待传输数据帧中存在共性数据,并且共性数据已被替换为共性标识的数据帧。

其中,共性标识是指存储于寄存器中、与共性数据存在映射关系的标识,共性标识的组成包括但不仅限于二进制数据等一切形式的表达方式,并优选用十六进制数据为设备间的约定方式,例如,二进制数“1 0001”、“0 1111”或十六进制数“0x11”、“0x0F”等。

需要说明的是,由于CAN数据帧中仲裁段与控制段的存储数据位总计15位,而本申请提出采用存储数据位小于15位的标识替换数据,以达到扩充数据段有效数据存储空间的目的,因此本申请提出在能够实现该发明目的基础上,不仅要确保共性标识的可采用数量,还需控制共性标识的存储数据位,例如:若将共性标识的数据位设置为8位,则包括有“0000 0000-1111 1111”总计256种共性标识,而将共性标识的数据位设置为5位,则包括有“0 0000-1 1111”总计32种共性标识,因此,在实际应用中,可根据具体的标识数量需要来设置共性标识的存储位数,共性标识长度在小于15位数的基础上不作限制。

具体实现中,每传输一帧数据,均需对其进行共性数据的分析甄别,以此为待传输数据帧的处理方式设置规则,即需标记所有已传输数据帧中满足要求的共性数据,则当再次出现包含该共性数据的待传输数据帧时,即可根据预先构建的映射关系,将共性数据替换为存储量较小的共性标识,得到具有共性标识的待传输共性数据帧。

例如,当前被标记的共性数据包括“010100110101010”,若待传输数据帧中的标定数据段同样存储该数据“010100110101010”,则对应获取到已设映射表中共性数据“010100110101010”的共性标识为“0x0F”,随即将共性数据替换为共性标识,得到标定数据段存储数据为“0x0F”的待传输共性数据帧。

需要说明的是,CAN数据帧中的数据段存储数据位为0-64位,而仲裁段与控制段的存储数据位为11+4=15位,因此在标定数据段中共性数据替换为共性标识后,将会释放标定数据段的数据存储空间,释放出的存储空间可供存储有效数据,则数据段实际所存储的数据不再局限于0-64位,还有标定数据段释放出的存储空间。

例如,共性标识的存储数据位仅为4位,则将15为共性数据替换为4为的共性标识后,数据段的数据存储位将由0-64位扩充为0-75位,由此,该方法不仅能够在数据帧总长度不变的情况下增加每一帧数据中数据段的长度、扩展有效数据的存储空间,还能提高CAN总线利用率。

步骤S250,发送待传输共性数据帧至数据接收设备。

具体实现中,若待传输数据帧中包含有被标记的共性数据,并且被共性标识替换后形成新的待传输共性数据帧后,便可将待传输共性数据帧发送至数据接收设备104,而若是待传输数据帧中未包含有被标记的共性数据,则数据发送设备102依然会发送该待传输数据帧至数据接收设备104。

上述提高CAN总线数据传输可靠性的方法,数据发送设备主要通过统计已传输数据帧中标定数据段的重复传输量,来确定并标记共性数据,以此判断待传输数据帧中是否包含有该被标记的共性数据,若有则将共性数据替换为预先设置的共性标识,生成待传输共性数据帧,以此发送至数据接收设备,供数据接收设备解析该共性数据帧获取完整有效的数据。采用本方案,将设备间通讯数据中的相同数据作共性提取、标识替换,以扩充数据帧中有效数据的存储空间,不仅有效减少了数据帧的划分帧数,还有效提高了CAN总线利用率,增强了CAN总线通讯数据传输的可靠性。

在一个实施例中,标定数据段包括仲裁段和控制段,统计标定数据段的重复传输量的步骤,包括:

确定已传输数据帧的仲裁控制段数据;仲裁控制段数据为仲裁段和控制段的数据;统计仲裁控制段数据的重复数量,作为标定数据段的重复传输量。

具体实现中,统计已传输数据帧中标定数据段的重复传输量,可以是首先确定已传输数据帧的仲裁段和控制段,组合仲裁段与控制段的数据,并统计所有已传输数据帧中该相同仲裁控制段数据的重复数量,也可称之为相同数量,作为标定数据段的重复传输量。

例如,已传输数据帧的仲裁控制段数据为“010100110101010”,其中“01010011010”为仲裁段的数据、“1010”为控制段的数据,若30帧已传输数据中存在有12个相同的标定数据段“010100110101010”,则该标定数据段的重复传输量为12。

在一个实施例中,根据标定数据段的重复传输量,确定标定数据段为共性数据的步骤,包括:

统计已传输数据帧的数据帧总量;计算重复传输量与数据帧总量的商值,得到重复百分比;当重复百分比达到预设的重复百分比阈值,则确定标定数据段为共性数据。

其中,数据帧总量是指已传输至数据接收设备104的数据帧的总数量,例如,10、20、30等。

其中,重复百分比可以是统计得到重复传输量与数据帧总量计算商值的重复占比,例如20%、40%、60%等。

其中,重复百分比阈值可以是根据具体情况或需求预先设置,并存储于微处理器中的重复百分比临界值,例如,80%。

具体实现中,根据标定数据段的重复传输量确定共性数据,可以是首先统计已传输数据帧的数据帧总量,进而计算前序步骤统计所得重复传输量与数据帧总量的商值,得到重复百分比。其中,若标定数据段包括有多个,例如标定数据段A和标定数据段B,则分别计算两种标定数据段占数据帧总量的重复百分比,并根据重复百分比与重复百分比阈值之间的关系,确定共性数据。

例如,已传输数据帧的数据帧总量为“30”、已传输数据帧中存在两种标定数据段:标定数据段A、标定数据段B,且标定数据段A的重复传输量为“12”、标定数据段B的重复传输量为“18”,则标定数据段A的重复百分比为“40%”、标定数据段B的重复百分比为“60%”,当预设的重复百分比阈值为“50%”时,仅有标定数据段B满足条件,由此确定标定数据段B中所存储数据为共性数据,标记并进行存储。

在一个实施例中,根据标定数据段的重复传输量,确定标定数据段为共性数据的步骤,还包括:

当重复百分比未达到重复百分比阈值,则累计标定数据段的重复传输量,直至标定数据段的重复百分比达到重复百分比阈值。

具体实现中,根据上述实施例,若某个标定数据段的重复百分比无法满足阈值条件,则继续累计该标定数据段的重复传输量,即通过获取待传输数据帧甄别累计,直至其满足阈值条件即可被标记为共性数据。

例如,根据上述实施例,标定数据段A的重复百分比为“40%”、标定数据段B的重复百分比为“60%”,当预设的重复百分比阈值为“50%”时,仅有标定数据段B满足条件,标定数据段A未达到该预设阈值,则继续累计标定数据段A的重复传输量,直至其满足阈值条件。

在一个实施例中,获取待传输数据帧,当待传输数据帧包含有共性数据时,将共性数据替换为共性标识,得到待传输共性数据帧的步骤,包括:

获取待传输数据帧;确定待传输数据帧的仲裁控制段数据;仲裁控制段数据为待传输数据帧的仲裁段数据和控制段数据;当仲裁控制段数据与共性数据相匹配时,将仲裁控制段数据替换为共性标识,得到待传输共性数据帧。

具体实现中,判断待传输数据帧中是否包含已被标记的共性数据,则可首先确定待传输数据帧的仲裁控制段数据,利用仲裁控制端数据与共性数据的匹配关系,确定待传输数据帧具体有无存在共性数据。

例如,待传输数据帧的仲裁控制段数据为“010100110101010”,而位处理器中存储查询到有被标记的共性数据“010100110101010”,两者数据相同,则判定该待传输数据帧具有共性数据,进而将该共性数据替换为微处理器中所存储对应的共性标识“0x0F”,得到新生成的待传输共性数据帧。

在一个实施例中,当仲裁控制段数据与共性数据相匹配时,将仲裁控制段数据替换为共性标识,得到待传输共性数据帧的步骤,包括:

当仲裁控制段数据与共性数据相匹配时,确定仲裁控制段数据为共性数据;根据共性数据,从预存的多个共性标识中获取与共性数据相匹配的共性标识;多个共性标识分别与多个共性数据相匹配;将共性数据替换为共性标识,得到待传输共性数据帧。

具体实现中,将共性数据替换为共性标识,需要通过预设设置存储的“共性数据-共性标识”映射表进行查询替换,该映射表中的共性数据与共性标识一一对应,确定了待传输数据帧中的共性数据之后,即可查询获取到共性标识,并完成替换步骤。

在一个实施例中,获取待传输数据帧之后,还包括:

当待传输数据帧不包含共性数据时,将待传输数据帧发送至数据接收设备。

具体实现中,若待传输数据帧不包含共性数据,则不作标识替换处理,直接将待传输数据帧发送至数据接收设备104。

在一个实施例中,发送待传输共性数据帧至数据接收设备的步骤,包括:

将待传输共性数据帧按照预设的周期时间发送至数据接收设备。

其中,周期时间可以是针对待传输共性数据帧定时发送的预设时间,例如,每隔10s、30s、60s等。

具体实现中,为了防止数据接收设备未能成功接收共性数据,采用定时发送的方式发送待传输共性数据帧。

根据本发明实施例提供的方案,数据发送设备通过分析已传输数据帧中仲裁段与控制段的数据重复数量是否达到阈值条件,来判断该仲裁段与控制段是否可被标记为共性数据,从而对待传输数据帧中仲裁段与控制段是否与共性数据一致进行甄别,并在判定一致后将仲裁段与控制段中所包含的共性数据替换为预设的共性标识,以此获取到待传输共性数据帧,之后发送至数据接收设备。采用本方案,将设备间通讯数据中的相同数据作共性提取、标识替换,以扩充数据帧中有效数据的存储空间,不仅有效减少了数据帧的划分帧数,还有效提高了CAN总线利用率,增强了CAN总线通讯数据传输的可靠性。

在另一个实施例中,如图4所示,提供了一种提高CAN总线数据传输可靠性的方法,以该方法应用于图1中的数据接收设备104为例进行说明,包括以下步骤:

步骤S410,接收数据发送设备的数据帧;

步骤S420,当数据帧为共性数据帧时,根据共性数据帧的共性标识,从预存的多个共性数据中获取与共性标识相匹配的共性数据;多个共性数据分别与多个共性标识相匹配;

步骤S430,将共性数据帧的共性标识替换为共性数据,得到有效数据帧。

其中,有效数据帧可以是全部数据段具有完整数据的数据帧,该有效数据帧可被数据接收设备104获取并进行对有效数据帧的分析处理。

具体实现中,数据发送设备102可发送共性数据帧或是普通数据帧至数据接收设备104,普通数据帧是指未被共性标识替换的数据帧,其存储有完整数据。当数据接收设备104接收到数据发送设备102发送的共性数据帧后,首先确定共性数据帧中是否包括已被存储设置的共性标识,若有,则将该共性标识通过映射表匹配共性数据进行数据替换,以便得到具有完整数据的有效数据帧。

上述提高CAN总线数据传输可靠性的方法,数据接收设备在接收到数据发送设备发送的共性数据帧后,将针对共性数据帧中是否存在共性标识进行识别,若识别到共性标识并查询到对应共性数据之后,则将标识替换回共性数据,以此得到具有完整数据的有效数据帧。采用本方案,不仅有效减少了数据帧的划分帧数,还有效提高了CAN总线利用率,增强了CAN总线通讯数据传输的可靠性。

在一个实施例中,在接收数据发送设备的数据帧之后,还包括:

提取数据帧的标定数据段;标定数据段为数据帧的仲裁段与控制段;确定标定数据段的数据位总数;当数据位总数小于预设的数据位阈值时,确定数据帧为共性数据帧;共性数据帧的标定数据段包括共性标识。

其中,数据位总数可以是标定数据段中存储数据的总位数,例如,10、20、30等。

具体实现中,在接收到数据发送设备102发送的数据帧之后,还需对该数据帧进行识别,识别其是否为共性数据帧,识别方式可以是针对数据帧标定数据段的数据位总数进行阈值判断,即在满足阈值条件的情况下,可判定其为共性数据帧,则相应的标定数据段既包括的是共性标识。其中,数据位阈值可以是根据原始数据帧中仲裁段和控制段的数据总位数设置,即原始的待传输数据帧中仲裁段的数据位为11位、控制段的数据位为4位,则数据位阈值可设置为15,设置规则取决于共性标识的数据位一定是小于标定数据段数据位的。

在一个实施例中,若多个共性数据中不包括与共性标识相匹配的共性数据,则生成通信故障提示;通信故障提示用于提示CAN总线通信故障。

具体实现中,若数据接收设备104获取到的共性数据帧,其所包含的共性标识不存在相应共性数据,则生成通信故障提示,该提示可由数据接收设备104自行展示,也可传输至其他设备进行展示提醒。

根据本发明实施例提供的方案,数据接收设备在接收到数据发送设备发送的数据帧后,需对该数据帧进行共性帧识别,即识别标定数据段的数据位总数是否小于预设阈值,若为共性数据帧则进行标识数据之间的替换,作为普通数据帧则直接获取有效数据,若是共性数据帧中的共性标识无相应共性数据存储记录,则生成通信故障提示,提示CAN总线通信故障。采用本方案,不仅有效减少了数据帧的划分帧数,还有效提高了CAN总线利用率,增强了CAN总线通讯数据传输的可靠性。

应该理解的是,虽然图2、4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、4的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图5所示,提供了一种提高CAN总线数据传输可靠性的装置,包括已传输数据帧获取模块510、重复传输量统计模块520、共性数据确定模块530、共性数据帧获取模块540和共性数据帧发送模块550,其中:

已传输数据帧获取模块510,用于获取已传输数据帧;已传输数据帧包括标定数据段;

重复传输量统计模块520,用于统计标定数据段的重复传输量;

共性数据确定模块530,用于根据标定数据段的重复传输量,确定标定数据段为共性数据;

共性数据帧获取模块540,用于获取待传输数据帧,当待传输数据帧包含有共性数据时,将共性数据替换为共性标识,得到待传输共性数据帧;

共性数据帧发送模块550,用于发送待传输共性数据帧至数据接收设备。

根据本发明实施例提供的方案,数据发送设备主要通过统计已传输数据帧中标定数据段的重复传输量,来确定并标记共性数据,以此判断待传输数据帧中是否包含有该被标记的共性数据,若有则将共性数据替换为预先设置的共性标识,生成待传输共性数据帧,以此发送至数据接收设备,供数据接收设备解析该共性数据帧获取完整有效的数据。采用本方案,将设备间通讯数据中的相同数据作共性提取、标识替换,以扩充数据帧中有效数据的存储空间,不仅有效减少了数据帧的划分帧数,还有效提高了CAN总线利用率,增强了CAN总线通讯数据传输的可靠性。

在一个实施例中,标定数据段包括仲裁段和控制段,重复传输量统计模块520包括:

仲裁控制段数据确定子模块,用于确定所述已传输数据帧的仲裁控制段数据;所述仲裁控制段数据为所述仲裁段和所述控制段的数据;重复数量统计子模块,用于统计所述仲裁控制段数据的重复数量,作为所述标定数据段的重复传输量。

在一个实施例中,共性数据确定模块530包括:

数据帧总量统计子模块,用于统计所述已传输数据帧的数据帧总量;重复百分比计算子模块,用于计算所述重复传输量与所述数据帧总量的商值,得到重复百分比;百分比阈值判断子模块,用于当所述重复百分比达到预设的重复百分比阈值,则确定所述标定数据段为共性数据。

在一个实施例中,共性数据确定模块530还包括:

重复传输量累计子模块,用于当所述重复百分比未达到所述重复百分比阈值,则累计所述标定数据段的重复传输量,直至所述标定数据段的重复百分比达到所述重复百分比阈值。

在一个实施例中,共性数据帧获取模块540包括:

数据帧获取子模块,用于获取待传输数据帧;仲裁控制段数据确定子模块,用于确定所述待传输数据帧的仲裁控制段数据;所述仲裁控制段数据为所述待传输数据帧的仲裁段数据和控制段数据;共性标识替换子模块,用于当所述仲裁控制段数据与所述共性数据相匹配时,将所述仲裁控制段数据替换为共性标识,得到所述待传输共性数据帧。

在一个实施例中,共性标识替换子模块包括:

共性数据确定单元,用于当所述仲裁控制段数据与所述共性数据相匹配时,确定所述仲裁控制段数据为所述共性数据;共性标识获取单元,用于根据所述共性数据,从预存的多个共性标识中获取与所述共性数据相匹配的共性标识;所述多个共性标识分别与多个共性数据相匹配;共性标识替换单元,用于将所述共性数据替换为所述共性标识,得到所述待传输共性数据帧。

在一个实施例中,提高CAN总线数据传输可靠性的装置还包括:

待传输数据帧发送模块,用于当所述待传输数据帧不包含所述共性数据时,将所述待传输数据帧发送至所述数据接收设备。

在一个实施例中,共性数据帧发送模块550包括:

共性数据帧周期发送子模块,用于将所述待传输共性数据帧按照预设的周期时间发送至所述数据接收设备。

根据本发明实施例提供的方案,数据发送设备通过分析已传输数据帧中仲裁段与控制段的数据重复数量是否达到阈值条件,来判断该仲裁段与控制段是否可被标记为共性数据,从而对待传输数据帧中仲裁段与控制段是否与共性数据一致进行甄别,并在判定一致后将仲裁段与控制段中所包含的共性数据替换为预设的共性标识,以此获取到待传输共性数据帧,之后发送至数据接收设备。采用本方案,将设备间通讯数据中的相同数据作共性提取、标识替换,以扩充数据帧中有效数据的存储空间,不仅有效减少了数据帧的划分帧数,还有效提高了CAN总线利用率,增强了CAN总线通讯数据传输的可靠性。

在另一个实施例中,如图6所示,提供了一种提高CAN总线数据传输可靠性的装置,包括数据帧接收模块610、共性数据获取模块620和有效数据帧获取模块,其中:

数据帧接收模块610,用于接收数据发送设备的数据帧;

共性数据获取模块620,用于当数据帧为共性数据帧时,根据共性数据帧的共性标识,从预存的多个共性数据中获取与共性标识相匹配的共性数据;多个共性数据分别与多个共性标识相匹配;

有效数据帧获取模块630,用于将共性数据帧的共性标识替换为共性数据,得到有效数据帧。

根据本发明实施例提供的方案,数据接收设备在接收到数据发送设备发送的共性数据帧后,将针对共性数据帧中是否存在共性标识进行识别,若识别到共性标识并查询到对应共性数据之后,则将标识替换回共性数据,以此得到具有完整数据的有效数据帧。采用本方案,不仅有效减少了数据帧的划分帧数,还有效提高了CAN总线利用率,增强了CAN总线通讯数据传输的可靠性。

在一个实施例中,提高CAN总线数据传输可靠性的装置还包括:

标定数据段提取模块,用于提取所述数据帧的标定数据段;所述标定数据段为所述数据帧的仲裁段与控制段;数据位总数确定模块,用于确定所述标定数据段的数据位总数;共性数据帧确定模块,用于当所述数据位总数小于预设的数据位阈值时,确定所述数据帧为所述共性数据帧;所述共性数据帧的标定数据段包括所述共性标识。

在一个实施例中,提高CAN总线数据传输可靠性的装置还包括:

通信故障提示生成模块,用于若所述多个共性数据中不包括与所述共性标识相匹配的共性数据,则生成通信故障提示;所述通信故障提示用于提示CAN总线通信故障。

根据本发明实施例提供的方案,数据接收设备在接收到数据发送设备发送的数据帧后,需对该数据帧进行共性帧识别,即识别标定数据段的数据位总数是否小于预设阈值,若为共性数据帧则进行标识数据之间的替换,作为普通数据帧则直接获取有效数据,若是共性数据帧中的共性标识无相应共性数据存储记录,则生成通信故障提示,提示CAN总线通信故障。采用本方案,不仅有效减少了数据帧的划分帧数,还有效提高了CAN总线利用率,增强了CAN总线通讯数据传输的可靠性。

关于提高CAN总线数据传输可靠性的装置的具体限定,可以参见上文中对提高CAN总线数据传输可靠性的方法的限定,在此不再赘述。上述提高CAN总线数据传输可靠性的装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,如图7所示,提供了一种提高CAN总线数据传输可靠性的系统,包括数据发送设备710和数据接收设备720,其中:

数据发送设备710,用于获取已传输数据帧,并统计已传输数据帧中标定数据段的重复传输量,进而根据重复传输量,确定标定数据段为共性数据,以此获取待传输数据帧,当待传输数据帧包含有共性数据时将共性数据替换为共性标识,从而得到待传输共性数据帧,最终发送待传输共性数据帧至数据接收设备;

数据接收设备720,用于接收数据发送设备的数据帧,并当数据帧为共性数据帧时,根据共性数据帧的共性标识,从预存的多个共性数据中获取与共性标识相匹配的共性数据,进而将共性数据帧的共性标识替换为共性数据,得到有效数据帧;多个共性数据分别与多个共性标识相匹配。

根据本发明实施例提供的方案,数据发送设备主要通过统计已传输数据帧中标定数据段的重复传输量,来确定并标记共性数据,以此判断待传输数据帧中是否包含有该被标记的共性数据,若有则将共性数据替换为预先设置的共性标识,生成待传输共性数据帧,以此发送至数据接收设备,供数据接收设备解析该共性数据帧获取完整有效的数据。采用本方案,将设备间通讯数据中的相同数据作共性提取、标识替换,以扩充数据帧中有效数据的存储空间,不仅有效减少了数据帧的划分帧数,还有效提高了CAN总线利用率,增强了CAN总线通讯数据传输的可靠性。

关于提高CAN总线数据传输可靠性的系统的具体限定,可以参见上文中对提高CAN总线数据传输可靠性的方法的限定,在此不再赘述。上述提高CAN总线数据传输可靠性的系统中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储标识信息和设备信息。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时实现一种提高CAN总线数据传输可靠性方法。

本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:

获取已传输数据帧;已传输数据帧包括标定数据段;

统计标定数据段的重复传输量;

根据标定数据段的重复传输量,确定标定数据段为共性数据;

获取待传输数据帧,当待传输数据帧包含有共性数据时,将共性数据替换为共性标识,得到待传输共性数据帧;

发送待传输共性数据帧至数据接收设备。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

确定所述已传输数据帧的仲裁控制段数据;所述仲裁控制段数据为所述仲裁段和所述控制段的数据;统计所述仲裁控制段数据的重复数量,作为所述标定数据段的重复传输量。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

统计所述已传输数据帧的数据帧总量;计算所述重复传输量与所述数据帧总量的商值,得到重复百分比;当所述重复百分比达到预设的重复百分比阈值,则确定所述标定数据段为共性数据。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

当所述重复百分比未达到所述重复百分比阈值,则累计所述标定数据段的重复传输量,直至所述标定数据段的重复百分比达到所述重复百分比阈值。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

获取待传输数据帧;确定所述待传输数据帧的仲裁控制段数据;所述仲裁控制段数据为所述待传输数据帧的仲裁段数据和控制段数据;当所述仲裁控制段数据与所述共性数据相匹配时,将所述仲裁控制段数据替换为共性标识,得到所述待传输共性数据帧。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

当所述仲裁控制段数据与所述共性数据相匹配时,确定所述仲裁控制段数据为所述共性数据;根据所述共性数据,从预存的多个共性标识中获取与所述共性数据相匹配的共性标识;所述多个共性标识分别与多个共性数据相匹配;将所述共性数据替换为所述共性标识,得到所述待传输共性数据帧。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

当所述待传输数据帧不包含所述共性数据时,将所述待传输数据帧发送至所述数据接收设备。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

将所述待传输共性数据帧按照预设的周期时间发送至所述数据接收设备。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

接收数据发送设备的数据帧;当所述数据帧为共性数据帧时,根据所述共性数据帧的共性标识,从预存的多个共性数据中获取与所述共性标识相匹配的共性数据;所述多个共性数据分别与多个共性标识相匹配;将所述共性数据帧的共性标识替换为所述共性数据,得到有效数据帧。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

提取所述数据帧的标定数据段;所述标定数据段为所述数据帧的仲裁段与控制段;确定所述标定数据段的数据位总数;当所述数据位总数小于预设的数据位阈值时,确定所述数据帧为所述共性数据帧;所述共性数据帧的标定数据段包括所述共性标识。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

若所述多个共性数据中不包括与所述共性标识相匹配的共性数据,则生成通信故障提示;所述通信故障提示用于提示CAN总线通信故障。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

获取已传输数据帧;所述已传输数据帧包括标定数据段;

统计所述标定数据段的重复传输量;

根据所述标定数据段的重复传输量,确定所述标定数据段为共性数据;

获取待传输数据帧,当所述待传输数据帧包含有所述共性数据时,将所述共性数据替换为共性标识,得到待传输共性数据帧;

发送所述待传输共性数据帧至数据接收设备。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

确定所述已传输数据帧的仲裁控制段数据;所述仲裁控制段数据为所述仲裁段和所述控制段的数据;统计所述仲裁控制段数据的重复数量,作为所述标定数据段的重复传输量。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

统计所述已传输数据帧的数据帧总量;计算所述重复传输量与所述数据帧总量的商值,得到重复百分比;当所述重复百分比达到预设的重复百分比阈值,则确定所述标定数据段为共性数据。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

当所述重复百分比未达到所述重复百分比阈值,则累计所述标定数据段的重复传输量,直至所述标定数据段的重复百分比达到所述重复百分比阈值。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

获取待传输数据帧;确定所述待传输数据帧的仲裁控制段数据;所述仲裁控制段数据为所述待传输数据帧的仲裁段数据和控制段数据;当所述仲裁控制段数据与所述共性数据相匹配时,将所述仲裁控制段数据替换为共性标识,得到所述待传输共性数据帧。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

当所述仲裁控制段数据与所述共性数据相匹配时,确定所述仲裁控制段数据为所述共性数据;根据所述共性数据,从预存的多个共性标识中获取与所述共性数据相匹配的共性标识;所述多个共性标识分别与多个共性数据相匹配;将所述共性数据替换为所述共性标识,得到所述待传输共性数据帧。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

当所述待传输数据帧不包含所述共性数据时,将所述待传输数据帧发送至所述数据接收设备。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

将所述待传输共性数据帧按照预设的周期时间发送至所述数据接收设备。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

接收数据发送设备的数据帧;当所述数据帧为共性数据帧时,根据所述共性数据帧的共性标识,从预存的多个共性数据中获取与所述共性标识相匹配的共性数据;所述多个共性数据分别与多个共性标识相匹配;将所述共性数据帧的共性标识替换为所述共性数据,得到有效数据帧。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

提取所述数据帧的标定数据段;所述标定数据段为所述数据帧的仲裁段与控制段;确定所述标定数据段的数据位总数;当所述数据位总数小于预设的数据位阈值时,确定所述数据帧为所述共性数据帧;所述共性数据帧的标定数据段包括所述共性标识。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

若所述多个共性数据中不包括与所述共性标识相匹配的共性数据,则生成通信故障提示;所述通信故障提示用于提示CAN总线通信故障。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

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