CN114448744A - 复用标识号的can数据解析方法、装置、设备及介质 - Google Patents

复用标识号的can数据解析方法、装置、设备及介质 Download PDF

Info

Publication number
CN114448744A
CN114448744A CN202210105770.7A CN202210105770A CN114448744A CN 114448744 A CN114448744 A CN 114448744A CN 202210105770 A CN202210105770 A CN 202210105770A CN 114448744 A CN114448744 A CN 114448744A
Authority
CN
China
Prior art keywords
frame
data
transmission time
jth
group
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202210105770.7A
Other languages
English (en)
Other versions
CN114448744B (zh
Inventor
耿家新
刘起航
姜涛
戴鑫
刘欣
郭志品
韩明晶
甘霖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CASIC Rocket Technology Co
Original Assignee
CASIC Rocket Technology Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by CASIC Rocket Technology Co filed Critical CASIC Rocket Technology Co
Priority to CN202210105770.7A priority Critical patent/CN114448744B/zh
Priority claimed from CN202210105770.7A external-priority patent/CN114448744B/zh
Publication of CN114448744A publication Critical patent/CN114448744A/zh
Application granted granted Critical
Publication of CN114448744B publication Critical patent/CN114448744B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40006Architecture of a communication node
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40208Bus networks characterized by the use of a particular bus standard
    • H04L2012/40215Controller Area Network CAN

Abstract

本发明公开了一种复用标识号的CAN数据解析方法、装置、设备及介质,所述方法包括:获取第一标识号对应的第一CAN帧及传输时间,并根据传输时间判断第一CAN帧对应所属的组号是否为Pi;若是,设置标志位为s,重复执行获取第j标识号对应的第j CAN帧,在判断到第j CAN帧对应的标志位为t时,设置标志位为t;在j为M时,获得第Pi组中的M个CAN帧;重复执行开始步骤直至i=N结束,得到目标批次数据;对所述目标批次数据进行解析,得到对应的解析结果。采用本发明,能解决现有技术中无法准确进行数据解析的技术问题。

Description

复用标识号的CAN数据解析方法、装置、设备及介质
技术领域
本发明涉及通信技术领域,尤其涉及一种复用标识号的CAN数据解析方法、装置、设备及介质。
背景技术
CAN总线作为多主站方式的串行通信总线,具有低成本、高抗电磁干扰性、高总线利用率、高数据传输率的特点,在运载火箭上得到了广泛应用。在航天领域中,受限于信道宽度,对某些CAN总线数据的传输,火箭控制系统仅适用同一组CAN标识号(身份标识号ID),将同一批完整的数据拆分为多组数据。每组数据均循环使用该组CAN ID,按照固定周期进行传输,并为传输的每一组数据添加时间,以此来标定各组数据的顺序。通过这样一种循环式复用ID的方式,将数据进行分组拆分发送,提高了数据的传输效率,有效节约了信道带宽,但也带来了很多问题,例如易受外界干扰出现误帧和丢帧现象等,从而导致无法准确地进行数据解析。
发明内容
本申请实施例通过提供一种复用标识号的CAN数据解析方法,解决了现有技术中无法准确进行数据解析的技术问题。
一方面,本申请通过本申请的一实施例提供一种复用标识号的CAN数据解析方法,所述方法包括:
获取第一标识号对应的第一CAN帧及传输时间,并根据所述传输时间判断所述第一CAN帧对应所属的组号是否为Pi,Pi为自然数,i为循环次数;
若是,则设置所述第一CAN帧对应的标志位为s,并重复执行如下步骤:获取第j标识号对应的第j CAN帧,并在判断到所述第j CAN帧对应的标志位为t时,设置所述第j CAN帧对应的标志位为t,其中t等于s+j-2,j为大于1且不超过M的正整数,s和t均为自然数,M为正整数;
在j为M时,获得第Pi组中的M个CAN帧;重复执行所述获取第一标识号对应的第一CAN帧及传输时间,并根据所述传输时间判断所述第一CAN帧对应所属的组号是否为Pi的步骤,直至i=N结束,得到目标批次数据,所述目标批次数据包括N组各自对应的M个CAN帧;
对所述目标批次数据进行解析,得到对应的解析结果。
可选地,M为数据传输时所采用的循环复用的标识号的数量,N为每批数据被划分传输的组数,每个所述标识号携带有所述标识号所属组号的传输时间及所述标识号对应的CAN帧。
可选地,所述根据所述传输时间判断所述第一CAN帧对应所属的组号是否为Pi包括:
根据所述传输时间、所述M及每组数据传输的发送周期T,判断所述第一CAN帧对应所属的组号是否为Pi
可选地,所述获取第一标识号对应的第一CAN帧及传输时间之前,所述方法还包括:
设置二维数值A[N][M];
所述在判断到所述第一CAN帧对应所属的组号为Pi之后,所述方法还包括:
将所述第一CAN帧存储至A[Pi][s];
所述设置所述第j CAN帧对应的标志位为t之后,所述方法还包括:
将所述第jCAN帧存储至A[Pi][t]。
可选地,所述方法还包括:
在判断到所述第j CAN帧对应的标志位不为t时,重新执行所述获取第一标识号对应的第一CAN帧及传输时间,并根据所述传输时间判断所述第一CAN帧对应所属的组号是否为Pi的步骤。
可选地,所述方法还包括:
清空所述二维数组A[N][M],并设置所述第j帧对应的标志位为s+M-1。
可选地,所述方法还包括:
在判断到所述第一CAN帧对应所属的组号不为Pi时,重新执行所述获取第一标识号对应的第一CAN帧及传输时间,并根据所述传输时间判断所述第一CAN帧对应所属的组号是否为Pi的步骤。
另一方面,本申请通过本申请的一实施例提供一种复用标识号的CAN数据解析装置,所述装置包括:
第一处理模块,用于获取第一标识号对应的第一CAN帧及传输时间,并根据所述传输时间判断所述第一CAN帧对应所属的组号是否为Pi,Pi为自然数,i为循环次数;
第二处理模块,用于若所述第一处理模块的处理结果为是,则设置所述第一CAN帧对应的标志位为s,并重复执行如下步骤:获取第j标识号对应的第j CAN帧,并在判断到所述第j CAN帧对应的标志位为t时,设置所述第j CAN帧对应的标志位为t,其中t等于s+j-2,j为大于1且不超过M的正整数,s和t均为自然数,M为正整数;
获得模块,用于在j为M时,获得第Pi组中的M个CAN帧;通知所述第一处理模块重复执行所述获取第一标识号对应的第一CAN帧及传输时间,并根据所述传输时间判断所述第一CAN帧对应所属的组号是否为Pi的步骤,直至i=N结束,得到目标批次数据,所述目标批次数据包括N组各自对应的M个CAN帧;
解析模块,用于对所述目标批次数据进行解析,得到对应的解析结果。
关于本申请未介绍或未阐述的内容可对应参考前述方法实施例中的相关介绍,这里不再赘述。
另一方面,本申请通过本申请的一实施例提供一种终端设备,所述终端设备包括:处理器、存储器、通信接口和总线;所述处理器、所述存储器和所述通信接口通过所述总线连接并完成相互间的通信;所述存储器存储可执行程序代码;所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于执行如上所述的复用标识号的CAN数据解析方法。
另一方面,本申请通过本申请的一实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有程序,当所述程序运行在终端设备时执行如上所述的复用标识号的CAN数据解析方法。
本申请实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:本申请获取第一标识号对应的第一CAN帧及传输时间,并根据所述传输时间判断所述第一CAN帧对应所属的组号是否为Pi,Pi为自然数,i为循环次数;若是,则设置所述第一CAN帧对应的标志位为s,并重复执行如下步骤:获取第j标识号对应的第j CAN帧,并在判断到所述第jCAN帧对应的标志位为t时,设置所述第j CAN帧对应的标志位为t,其中t等于s+j-2,j为大于1且不超过M的正整数,s和t均为自然数,M为正整数;在j为M时,获得第Pi组中的M个CAN帧;重复执行所述获取第一标识号对应的第一CAN帧及传输时间,并根据所述传输时间判断所述第一CAN帧对应所属的组号是否为Pi的步骤,直至i=N结束,得到目标批次数据,所述目标批次数据包括N组各自对应的M个CAN帧;对所述目标批次数据进行解析,得到对应的解析结果。上述方案中,利用循环复用的标识号来获取分组传输的每批数据(即目标批次数据)后,才能对完整的目标批次数据进行解析,这样就实现了数据解析的准确性,避免数据不完整进行的无效数据解析。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种复用标识号的CAN数据解析方法的流程示意图。
图2是本申请实施例提供的一种CAN数据流的传输示意图。
图3是本申请实施例提供的一种复用标识号的CAN数据解析装置的结构示意图。
图4是本申请实施例提供的一种终端设备的结构示意图。
具体实施方式
申请人在提出本申请的过程中还发现:利用循环式复用ID来传输数据时,各个循环ID之间,可能包含着除其他类型的CAN数据,此类数据作为解析时的冗余数据,需被过滤。同时,数据的传递过程中,不可避免地会收到外界干扰,出现误码和丢帧现象。由于CAN ID的复用和数据的分组传输,此时更加难以确保该批数据的完整性。现有的CAN数据解析方法通过ID查找来获取对应数据直接解析。对于循环式复用ID类型的CAN数据,出现同一ID对应多种数据含义的情况,既无法对数据含义进行正确对应,又对出现误码和丢帧时的不完整数据进行解析时,亦无法准确解析。因此,如何既保证数据的完整性,又能正确高效地解析出其中的数据,是亟需解决的问题。
本申请实施例通过提供一种复用标识号的CAN数据解析方法,解决了现有技术中无法准确进行CAN数据解析的技术问题。
本申请实施例的技术方案为解决上述技术问题,总体思路如下:获取第一标识号对应的第一CAN帧及传输时间,并根据所述传输时间判断所述第一CAN帧对应所属的组号是否为Pi,Pi为自然数,i为循环次数;若是,则设置所述第一CAN帧对应的标志位为s,并重复执行如下步骤:获取第j标识号对应的第j CAN帧,并在判断到所述第j CAN帧对应的标志位为t时,设置所述第j CAN帧对应的标志位为t,其中t等于s+j-2,j为大于1且不超过M的正整数,s和t均为自然数,M为正整数;在j为M时,获得第Pi组中的M个CAN帧;重复执行所述获取第一标识号对应的第一CAN帧及传输时间,并根据所述传输时间判断所述第一CAN帧对应所属的组号是否为Pi的步骤,直至i=N结束,得到目标批次数据,所述目标批次数据包括N组各自对应的M个CAN帧;对所述目标批次数据进行解析,得到对应的解析结果。
为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。
首先说明,本文中出现的术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
请参见图1,是本申请实施例提供的一种复用标识号的CAN数据解析方法的流程示意图。如图1所示的方法包括如下实施步骤:
S101、获取第一标识号对应的第一CAN帧及传输时间,并根据所述传输时间判断所述第一CAN帧对应所属的组号是否为Pi,Pi为自然数,i为循环次数。
本申请在步骤S101之前,本申请初始时可设置二维数组A[N][M],用以存储所需解析的CAN数据(即CAN帧)。其中,M为待解析数据传输时所采用的循环复用的标识号的数量,N为待解析数据中每批数据被划分传输的组数。可选地,本申请还可设置标志位lastIDFlag,以表示寻找到的前一个循环复用的标识ID号。初始时,标志位lastIDFlag可设置为最后一个循环标识ID号,如lastIDFlag=M-1。每个所述标识号携带有所述标识号对应的CAN帧、及所述标识号所属组号内CAN帧的传输时间。
在步骤S101中,本申请可寻找第一标识号ID0对应的第一CAN帧及其传输时间。进而根据所述传输时间t、M及预配的每组数据传输时所采用的发生周期T,来判断所述第一CAN帧对应所属的组号是否为Pi。具体地,可根据t%(NT)的数值可确定所述第一CAN帧当前所属的组号,例如其数值为0时,可确定对应的组号为0;当t%(NT)的数值为T时,可确定对应的组号为1;当t%(NT)的数值为2T时,可确定对应的组号为2;依次类推,可确定最后的组号为(N-1),Pi为小于或等于N的自然数。
本申请在判断到所述第一CAN帧对应所属的组号为Pi时,则继续执行步骤S102;否则,重新执行步骤S101。
S102、设置所述第一CAN帧对应的标志位为s,并重复执行如下步骤:获取第j标识号对应的第j CAN帧,并判断所述第jCAN帧对应的标志位是否为t。其中t等于s+j-2,j为大于1且不超过M的正整数,s和t均为自然数,M为正整数。
本申请在判断到所述第一CAN帧对应所属的组号为Pi时,可将所述第一CAN帧存储至A[Pi][s],并设置所述第一CAN帧对应的标志位(即标志位lastIDFlag)为s,s为自定义设置的数值,例如0等。进而重复执行如下步骤,直至j=M结束:获取第j标识号对应的第j CAN帧,并判断所述第jCAN帧对应的标志位lastIDFlag是否为t。其中,t等于s+j-2。
本申请在判断到所述第jCAN帧对应的标志位lastIDFlag为t后,可继续执行步骤S103。反之,在判断到所述第j CAN帧对应的标志位lastIDFlag不为t时,本申请需重新执行步骤S101,可选地本申请还可清空所述二维数组A[N][M],并设置所述第j帧对应的标志位为s+M-1等,本申请不做限定。
S103、在判断到所述第j CAN帧对应的标志位为t时,设置所述第j CAN帧对应的标志位为t。
本申请在判断到所述第j CAN帧对应的标志位为t时,可将所述第jCAN帧存储至A[Pi][t],并设置所述第j CAN帧对应的标志位为t。
S104、在j为M时,获得第Pi组中的M个CAN帧;重复执行所述获取第一标识号对应的第一CAN帧及传输时间,并根据所述传输时间判断所述第一CAN帧对应所属的组号是否为Pi的步骤,直至i=N结束,得到目标批次数据,所述目标批次数据包括N组各自对应的M个CAN帧。
本申请在S103循环结束后,可获得第Pi组中的M个CAN帧。此时还可重复执行步骤S101,进行下一Pi+1组的CAN帧获取,直至i=N结束,即获取N组中每组包括的M个CAN帧,即可获得当前完整的目标批次数据,所述目标批次数据的数据量有N×M个CAN数据。
S105、对所述目标批次数据进行解析,得到对应的解析结果。
本申请在获得所述目标批次数据后,可对所述目标批次数据进行解析,以得到对应的解析结果。
可以看出,本申请提出一种循环式ID复用类型CAN数据的解析方法,旨在对使用CAN总线进行通信的航天器测试中,利用循环式复用ID来传输数据时的工况,提出一种能剔除残缺数据和冗余数据,又能确保数据完整性的CAN数据解析方法,看推广至其他使用CAN总线通信的工业场合。
为帮助更好地理解本申请实施例,下面以一个例子进行详述说明。以循环ID数为3(M=3),一批数据分为3组(N=3)为例,其原理如图2所示。若各组CAN数据发送的时间间隔(即发送周期)T=10ms,则30ms发送一批数据。通过定义IDi所携带的数据为实际时间t(即该组CAN数据实际的传输时间),可利用t来判定当前组数。亦或是根据具体场景,拟定相应的方式来判定当前组数,本申请并不做限定。本例循环式ID复用类型CAN数据的解析方法,包括以下步骤:
步骤1、初始时,设置二维数组A[3][3],以保存待解析数据;设置标志位lastIDFlag,用于标记各循环ID携带的数据是否找到,初始时设置为2。
本申请数组A中的元素为CAN ID所携带的二进制数据,具体长度由实际使用的CAN协议确定。当数组A中的元素填满时,表明收集到了一批完整的数据;lastIDFlag初始值设置为2,表示上一次查找到的ID为ID2。
步骤2、读取CAN数据,寻找ID0携带的CAN帧,将对应判断t%30是否为0。若为0,将对应数据(即ID0携带的CAN帧)存入a[0][0],将lastIDFlag置为0,继续执行步骤3;若不为0,将lastIDFlag置为2,重复步骤2。
本申请通过在CAN数据中查找ID0,获取ID0携带的数据,将其解析为实际时间t。判断t%30的值来确定当前循环ID所处的组数,余数为0则说明当前ID0为第1组数据的起始ID,可将lastIDFlag置为0,表示已经找到当前ID0对应的CAN帧,并进行该组下一个ID的搜索;若余数不为0,说明此时数据出现了掉帧现象,该批数据为不完整数据,将lastIDFlag置为2,重复步骤2,过滤掉残缺数据。
步骤3、读取CAN数据,寻找ID1对应的CAN帧,寻找到后判断lastIDFlag是否为0,若为0,将对应数据存入a[0][1],并将lastIDFlag置为1,继续执行步骤4;若lastIDFlag不为0或查找失败,则清空数组A,将lastIDFlag置为2,返回步骤2。
本申请当前需寻找的是第1组数据的第二个ID对应的CAN帧,在CAN数据中查找ID1,找到后需判断上一个循环ID(ID0)对应的CAN帧是否已经找到,即lastIDFlag是否为0,若为0,才需获取ID1携带的数据后存入数组a,并将lastIDFlag置为1,表示已经找到ID1对应的CAN帧,可进行下一个ID的搜索。否则,恢复开始搜索时状态,重新从第一组数据开始查找。
步骤4、读取CAN数据,寻找ID2对应的CAN帧,找到后判断lastIDFlag是否为1。若为1,将对应数据存入a[0][2],并将lastIDFlag置为2,此时第1组数据查找完整,继续执行步骤5;若lastIDFlag不为1或查找失败,则清空数组a,将lastIDFlag置为20,返回步骤2;
本申请当前需寻找的是第1组数据的最后一个ID对应的CAN帧,当查找到对应数据时,同样需要判断是否已经找到上一个循环ID(ID1)对应的CAN帧,即lastIDFlag是否为1,若为1,则说明第一组数据已经寻找完整,可进行第二组数据的搜索。否则,恢复开始搜索时状态,重新从第一组数据开始查找。
步骤5、读取CAN数据,寻找ID0对应的CAN帧,判断t%30是否为10。若为10,将对应数据存入数组a[1][0],将lastIDFlag置为0,继续执行步骤6;若不为10,将lastIDFlag置为2,重复步骤2;
步骤6、读取CAN数据,寻找ID1对应的CAN帧,找到后判断lastIDFlag是否为0。若为0,将对应数据存入a[1][1],将lastIDFlag置为1,继续执行步骤7;若lastIDFlag不为0或查找失败,则清空数组a,将lastIDFlag置为2,返回步骤2;
步骤7、读取CAN数据,寻找ID2对应的CAN帧,找到后判断lastIDFlag是否为1。若为1,将对应数据存入a[1][2],此时第2组数据查找完整,继续执行步骤8;若lastIDFlag不为1或查找失败,则清空数组a,将lastIDFlag置为2,返回步骤2;
步骤8、读取CAN数据,寻找ID0对应的CAN帧,判断t%30是否为20。若为20,对应数据存入a[2][0],并将lastIDFlag置为0,继续执行步骤9;若不为20,将lastIDFlag置为2,重复步骤2;
步骤9、读取CAN数据,寻找ID1对应的CAN帧,找到后判断lastIDFlag是否为0。若为0,将对应数据存入a[2][1],将lastIDFlag置为1,继续执行步骤10;若lastIDFlag不为0或查找失败,则清空数组a,将lastIDFlag置为2,返回步骤2。
步骤10、读取CAN数据,寻找ID2对应的CAN帧,寻找到后判断lastIDFlag是否为1。若为1,对应数据存入a[2][2],并将lastIDFlag置为2,此时第3组数据查找完整,继续执行步骤11;若lastIDFlag不为1或查找失败,则清空数组a,将lastIDFlag置为2,返回步骤2。
步骤11、该批三组数据查找完整,遍历数组a中的数据,依据相应协议进行解析。解析完毕后,返回步骤1,直到所有CAN数据解析完毕。
本申请进入到本步骤11时,说明该批数据已经查找完整,且已经暂存到数组a中,根据实际使用的具体协议,以基本的解析方法对各个数据进行解析即可。
实施本申请实施例,具备以下有益效果:对航天器中利用循环ID下传的分组CAN数据进行完整性判别,过滤残缺数据和冗余数据,并对完整数据依照相关协议进行解析。可有效避免数据冗余或部分数据丢帧所造成的解析结果错误。在实际测试中可对航天器飞行数据完成快速、准确的实时解析和测试后解析。适用于实时性和快速性要求较高的场合,并具有良好的稳定品质,是航天器CAN数据解析中的关键技术。
基于同一发明构思,本申请另一实施例提供一种实施本申请实施例中所述复用标识号的CAN数据解析方法对应的装置及终端设备。
请参见图3,是本申请实施例提供的一种复用标识号的CAN数据解析装置的结构示意图。如图3所示的装置包括第一处理模块301、第二处理模块302、获得模块303及解析模块304,其中:
所述第一处理模块301,用于获取第一标识号对应的第一CAN帧及传输时间,并根据所述传输时间判断所述第一CAN帧对应所属的组号是否为Pi,Pi为自然数,i为循环次数;
所述第二处理模块302,用于若所述第一处理模块的处理结果为是,则设置所述第一CAN帧对应的标志位为s,并重复执行如下步骤:获取第j标识号对应的第j CAN帧,并在判断到所述第j CAN帧对应的标志位为t时,设置所述第j CAN帧对应的标志位为t,其中t等于s+j-2,j为大于1且不超过M的正整数,s和t均为自然数,M为正整数;
所述获得模块303,用于在j为M时,获得第Pi组中的M个CAN帧;通知所述第一处理模块重复执行所述获取第一标识号对应的第一CAN帧及传输时间,并根据所述传输时间判断所述第一CAN帧对应所属的组号是否为Pi的步骤,直至i=N结束,得到目标批次数据,所述目标批次数据包括N组各自对应的M个CAN帧;
所述解析模块304,用于对所述目标批次数据进行解析,得到对应的解析结果。
可选地,M为数据传输时所采用的循环复用的标识号的数量,N为每批数据被划分传输的组数,每个所述标识号携带有所述标识号所属组号的传输时间及所述标识号对应的CAN帧。
可选地,所述第一处理模块301具体用于根据所述传输时间、所述M及每组数据传输的发送周期T,判断所述第一CAN帧对应所属的组号是否为Pi
可选地,所述第一处理模块301还用于所述获取第一标识号对应的第一CAN帧及传输时间之前,设置二维数值A[N][M];所述在判断到所述第一CAN帧对应所属的组号为Pi之后,将所述第一CAN帧存储至A[Pi][s];
所述第二处理模块302还用于所述设置所述第j CAN帧对应的标志位为t之后,将所述第jCAN帧存储至A[Pi][t]。
可选地,所述第二处理模块302还用于在判断到所述第j CAN帧对应的标志位不为t时,重新执行所述获取第一标识号对应的第一CAN帧及传输时间,并根据所述传输时间判断所述第一CAN帧对应所属的组号是否为Pi的步骤。
可选地,所述第二处理模块302还用于清空所述二维数组A[N][M],并设置所述第j帧对应的标志位为s+M-1。
可选地,所述第一处理模块301还用于在判断到所述第一CAN帧对应所属的组号不为Pi时,重新执行所述获取第一标识号对应的第一CAN帧及传输时间,并根据所述传输时间判断所述第一CAN帧对应所属的组号是否为Pi的步骤。
请一并参见4,是本申请实施例提供的一种终端设备的结构示意图。如图4所示的终端设备40包括:至少一个处理器401、通信接口402、用户接口403和存储器404,处理器401、通信接口402、用户接口403和存储器404可通过总线或者其它方式连接,本发明实施例以通过总线405连接为例。其中,
处理器401可以是通用处理器,例如中央处理器(Central Processing Unit,CPU)。
通信接口402可以为有线接口(例如以太网接口)或无线接口(例如蜂窝网络接口或使用无线局域网接口),用于与其他终端或网站进行通信。本发明实施例中,通信接口402具体用于获取轨道参数。
用户接口403具体可为触控面板,包括触摸屏和触控屏,用于检测触控面板上的操作指令,用户接口403也可以是物理按键或者鼠标。用户接口403还可以为显示屏,用于输出、显示图像或数据。
存储器404可以包括易失性存储器(Volatile Memory),例如随机存取存储器(Random Access Memory,RAM);存储器也可以包括非易失性存储器(Non-VolatileMemory),例如只读存储器(Read-Only Memory,ROM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-State Drive,SSD);存储器404还可以包括上述种类的存储器的组合。存储器404用于存储一组程序代码,处理器401用于调用存储器404中存储的程序代码,执行如下操作:
获取第一标识号对应的第一CAN帧及传输时间,并根据所述传输时间判断所述第一CAN帧对应所属的组号是否为Pi,Pi为自然数,i为循环次数;
若是,则设置所述第一CAN帧对应的标志位为s,并重复执行如下步骤:获取第j标识号对应的第j CAN帧,并在判断到所述第j CAN帧对应的标志位为t时,设置所述第j CAN帧对应的标志位为t,其中t等于s+j-2,j为大于1且不超过M的正整数,s和t均为自然数,M为正整数;
在j为M时,获得第Pi组中的M个CAN帧;重复执行所述获取第一标识号对应的第一CAN帧及传输时间,并根据所述传输时间判断所述第一CAN帧对应所属的组号是否为Pi的步骤,直至i=N结束,得到目标批次数据,所述目标批次数据包括N组各自对应的M个CAN帧;
对所述目标批次数据进行解析,得到对应的解析结果。
可选地,M为数据传输时所采用的循环复用的标识号的数量,N为每批数据被划分传输的组数,每个所述标识号携带有所述标识号所属组号的传输时间及所述标识号对应的CAN帧。
可选地,所述根据所述传输时间判断所述第一CAN帧对应所属的组号是否为Pi包括:
根据所述传输时间、所述M及每组数据传输的发送周期T,判断所述第一CAN帧对应所属的组号是否为Pi
可选地,所述获取第一标识号对应的第一CAN帧及传输时间之前,所述处理器401还用于:
设置二维数值A[N][M];
所述在判断到所述第一CAN帧对应所属的组号为Pi之后,所述处理器401还用于:
将所述第一CAN帧存储至A[Pi][s];
所述设置所述第j CAN帧对应的标志位为t之后,所述处理器401还用于:
将所述第jCAN帧存储至A[Pi][t]。
可选地,所述处理器401还用于:
在判断到所述第j CAN帧对应的标志位不为t时,重新执行所述获取第一标识号对应的第一CAN帧及传输时间,并根据所述传输时间判断所述第一CAN帧对应所属的组号是否为Pi的步骤。
可选地,所述处理器401还用于:
清空所述二维数组A[N][M],并设置所述第j帧对应的标志位为s+M-1。
可选地,所述处理器401还用于:
在判断到所述第一CAN帧对应所属的组号不为Pi时,重新执行所述获取第一标识号对应的第一CAN帧及传输时间,并根据所述传输时间判断所述第一CAN帧对应所属的组号是否为Pi的步骤。
由于本实施例所介绍的终端设备为实施本申请实施例中的方法所采用的终端设备,故而基于本申请实施例中所介绍的方法,本领域所属技术人员能够了解本实施例的终端设备的具体实施方式以及其各种变化形式,所以在此对于该终端设备如何实现本申请实施例中的方法不再详细介绍。只要本领域所属技术人员实施本申请实施例中的方法所采用的终端设备,都属于本申请所欲保护的范围。
上述本申请实施例中的技术方案,至少具有如下的技术效果或优点:本申请获取第一标识号对应的第一CAN帧及传输时间,并根据所述传输时间判断所述第一CAN帧对应所属的组号是否为Pi,Pi为自然数,i为循环次数;若是,则设置所述第一CAN帧对应的标志位为s,并重复执行如下步骤:获取第j标识号对应的第j CAN帧,并在判断到所述第j CAN帧对应的标志位为t时,设置所述第j CAN帧对应的标志位为t,其中t等于s+j-2,j为大于1且不超过M的正整数,s和t均为自然数,M为正整数;在j为M时,获得第Pi组中的M个CAN帧;重复执行所述获取第一标识号对应的第一CAN帧及传输时间,并根据所述传输时间判断所述第一CAN帧对应所属的组号是否为Pi的步骤,直至i=N结束,得到目标批次数据,所述目标批次数据包括N组各自对应的M个CAN帧;对所述目标批次数据进行解析,得到对应的解析结果。上述方案中,利用循环复用的标识号来获取分组传输的每批数据(即目标批次数据)后,才能对完整的目标批次数据进行解析,这样就实现了数据解析的准确性,避免数据不完整进行的无效数据解析。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种复用标识号的CAN数据解析方法,其特征在于,包括:
获取第一标识号对应的第一CAN帧及传输时间,并根据所述传输时间判断所述第一CAN帧对应所属的组号是否为Pi,Pi为自然数,i为循环次数;
若是,则设置所述第一CAN帧对应的标志位为s,并重复执行如下步骤:获取第j标识号对应的第j CAN帧,并在判断到所述第j CAN帧对应的标志位为t时,设置所述第j CAN帧对应的标志位为t,其中t等于s+j-2,j为大于1且不超过M的正整数,s和t均为自然数,M为正整数;
在j为M时,获得第Pi组中的M个CAN帧;重复执行所述获取第一标识号对应的第一CAN帧及传输时间,并根据所述传输时间判断所述第一CAN帧对应所属的组号是否为Pi的步骤,直至i=N结束,得到目标批次数据,所述目标批次数据包括N组各自对应的M个CAN帧;
对所述目标批次数据进行解析,得到对应的解析结果。
2.根据权利要求1所述的方法,其特征在于,M为数据传输时所采用的循环复用的标识号的数量,N为每批数据被划分传输的组数,每个所述标识号携带有所述标识号所属组号的传输时间及所述标识号对应的CAN帧。
3.根据权利要求1所述的方法,其特征在于,所述根据所述传输时间判断所述第一CAN帧对应所属的组号是否为Pi包括:
根据所述传输时间、所述M及每组数据传输的发送周期T,判断所述第一CAN帧对应所属的组号是否为Pi
4.根据权利要求1所述的方法,其特征在于,所述获取第一标识号对应的第一CAN帧及传输时间之前,所述方法还包括:
设置二维数值A[N][M];
所述在判断到所述第一CAN帧对应所属的组号为Pi之后,所述方法还包括:
将所述第一CAN帧存储至A[Pi][s];
所述设置所述第j CAN帧对应的标志位为t之后,所述方法还包括:
将所述第jCAN帧存储至A[Pi][t]。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
在判断到所述第j CAN帧对应的标志位不为t时,重新执行所述获取第一标识号对应的第一CAN帧及传输时间,并根据所述传输时间判断所述第一CAN帧对应所属的组号是否为Pi的步骤。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
清空所述二维数组A[N][M],并设置所述第j帧对应的标志位为s+M-1。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在判断到所述第一CAN帧对应所属的组号不为Pi时,重新执行所述获取第一标识号对应的第一CAN帧及传输时间,并根据所述传输时间判断所述第一CAN帧对应所属的组号是否为Pi的步骤。
8.一种复用标识号的CAN数据解析装置,其特征在于,包括:
第一处理模块,用于获取第一标识号对应的第一CAN帧及传输时间,并根据所述传输时间判断所述第一CAN帧对应所属的组号是否为Pi,Pi为自然数,i为循环次数;
第二处理模块,用于若所述第一处理模块的处理结果为是,则设置所述第一CAN帧对应的标志位为s,并重复执行如下步骤:获取第j标识号对应的第j CAN帧,并在判断到所述第jCAN帧对应的标志位为t时,设置所述第j CAN帧对应的标志位为t,其中t等于s+j-2,j为大于1且不超过M的正整数,s和t均为自然数,M为正整数;
获得模块,用于在j为M时,获得第Pi组中的M个CAN帧;通知所述第一处理模块重复执行所述获取第一标识号对应的第一CAN帧及传输时间,并根据所述传输时间判断所述第一CAN帧对应所属的组号是否为Pi的步骤,直至i=N结束,得到目标批次数据,所述目标批次数据包括N组各自对应的M个CAN帧;
解析模块,用于对所述目标批次数据进行解析,得到对应的解析结果。
9.一种终端设备,其特征在于,所述终端设备包括:处理器、存储器、通信接口和总线;所述处理器、所述存储器和所述通信接口通过所述总线连接并完成相互间的通信;所述存储器存储可执行程序代码;所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于执行如上权利要求1-7中任一项所述的复用标识号的CAN数据解析方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有程序,当所述程序运行在终端设备时执行如上权利要求1-7中任一项所述的复用标识号的CAN数据解析方法。
CN202210105770.7A 2022-01-28 复用标识号的can数据解析方法、装置、设备及介质 Active CN114448744B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210105770.7A CN114448744B (zh) 2022-01-28 复用标识号的can数据解析方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210105770.7A CN114448744B (zh) 2022-01-28 复用标识号的can数据解析方法、装置、设备及介质

Publications (2)

Publication Number Publication Date
CN114448744A true CN114448744A (zh) 2022-05-06
CN114448744B CN114448744B (zh) 2024-05-03

Family

ID=

Citations (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102664779A (zh) * 2012-03-31 2012-09-12 航天东方红卫星有限公司 一种can总线数据传送方法
US20140046574A1 (en) * 2012-08-08 2014-02-13 Autotronic Controls Corporation Engine control using an asynchronous data bus
US20140236560A1 (en) * 2013-02-21 2014-08-21 Dspace Digital Signal Processing And Control Engineering Gmbh Method for performing an inventory of the hardware components connected to a control unit test system
CN104333517A (zh) * 2014-09-28 2015-02-04 航天科工深圳(集团)有限公司 基于can总线的自动化设备通信方法
CN105117359A (zh) * 2015-07-28 2015-12-02 厦门雅迅网络股份有限公司 一种can口复用装置及方法
CN105446284A (zh) * 2014-09-26 2016-03-30 比亚迪股份有限公司 Can总线的数据分析方法和装置
US20160344552A1 (en) * 2015-05-22 2016-11-24 Nxp B.V. Configurable cryptographic controller area network (can) device
CN106950864A (zh) * 2017-04-11 2017-07-14 重庆长安汽车股份有限公司 一种整车控制器的can通信程序生成方法及装置
CN107241251A (zh) * 2017-06-16 2017-10-10 龙海特尔福汽车电子研究所有限公司 多路can报文实时接收的软件实现方法
CN107342924A (zh) * 2017-06-30 2017-11-10 珠海格力电器股份有限公司 Can的无极性通信方法及装置、电子设备
CN107835266A (zh) * 2017-09-22 2018-03-23 北京机械设备研究所 一种为通信总线上相同节点自动分配地址的方法
CN109286551A (zh) * 2018-11-30 2019-01-29 南京越博动力系统股份有限公司 一种基于上位机控制的can总线通讯系统及方法
CN110224913A (zh) * 2019-07-15 2019-09-10 珠海格力电器股份有限公司 数据传输方法、装置、数据传输系统和设备
CN110545257A (zh) * 2019-07-22 2019-12-06 北京航盛新能科技有限公司 一种汽车can总线加密方法
CN110750790A (zh) * 2019-09-06 2020-02-04 深圳开源互联网安全技术有限公司 Can总线漏洞的检测方法、装置、终端设备及介质
CN111030905A (zh) * 2019-12-05 2020-04-17 深圳前海达闼云端智能科技有限公司 网络传输方法及can总线网络、存储介质及电子设备
CN111049852A (zh) * 2019-12-24 2020-04-21 国家计算机网络与信息安全管理中心 Can总线协议解析方法、装置、电子设备及存储介质
CN111049625A (zh) * 2018-10-15 2020-04-21 珠海市魅族科技有限公司 一种无线局域网络通信的方法及通信设备
CN111083030A (zh) * 2019-12-25 2020-04-28 南京领行科技股份有限公司 一种数据获取的方法、装置、设备及存储介质
CN111866017A (zh) * 2020-07-29 2020-10-30 北京天融信网络安全技术有限公司 一种can总线帧间隔异常的检测方法及装置
CN111953451A (zh) * 2020-08-06 2020-11-17 重庆邮电大学 一种提高解析物联网帧结构效率的方法
CN112019440A (zh) * 2020-07-27 2020-12-01 中国人民解放军海军工程大学 基于标识符复用的can总线组播方法
CN112291125A (zh) * 2020-10-16 2021-01-29 江苏徐工工程机械研究院有限公司 一种can总线多节点自动识别方法及装置
CN113067821A (zh) * 2021-03-22 2021-07-02 聊城大学 基于单个或多个dbc文件的can报文的解析方法
CN113079072A (zh) * 2020-01-06 2021-07-06 广州汽车集团股份有限公司 一种车辆数据采集方法及其系统、计算机设备、存储介质
CN113328919A (zh) * 2021-05-28 2021-08-31 江苏徐工工程机械研究院有限公司 一种can总线标识符、通信方法以及通信系统
CN113852531A (zh) * 2021-09-22 2021-12-28 石家庄通合电子科技股份有限公司 用于功能码匹配的can通讯方法和can控制器

Patent Citations (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102664779A (zh) * 2012-03-31 2012-09-12 航天东方红卫星有限公司 一种can总线数据传送方法
US20140046574A1 (en) * 2012-08-08 2014-02-13 Autotronic Controls Corporation Engine control using an asynchronous data bus
US20140236560A1 (en) * 2013-02-21 2014-08-21 Dspace Digital Signal Processing And Control Engineering Gmbh Method for performing an inventory of the hardware components connected to a control unit test system
CN105446284A (zh) * 2014-09-26 2016-03-30 比亚迪股份有限公司 Can总线的数据分析方法和装置
CN104333517A (zh) * 2014-09-28 2015-02-04 航天科工深圳(集团)有限公司 基于can总线的自动化设备通信方法
US20160344552A1 (en) * 2015-05-22 2016-11-24 Nxp B.V. Configurable cryptographic controller area network (can) device
CN105117359A (zh) * 2015-07-28 2015-12-02 厦门雅迅网络股份有限公司 一种can口复用装置及方法
CN106950864A (zh) * 2017-04-11 2017-07-14 重庆长安汽车股份有限公司 一种整车控制器的can通信程序生成方法及装置
CN107241251A (zh) * 2017-06-16 2017-10-10 龙海特尔福汽车电子研究所有限公司 多路can报文实时接收的软件实现方法
CN107342924A (zh) * 2017-06-30 2017-11-10 珠海格力电器股份有限公司 Can的无极性通信方法及装置、电子设备
CN107835266A (zh) * 2017-09-22 2018-03-23 北京机械设备研究所 一种为通信总线上相同节点自动分配地址的方法
CN111049625A (zh) * 2018-10-15 2020-04-21 珠海市魅族科技有限公司 一种无线局域网络通信的方法及通信设备
CN109286551A (zh) * 2018-11-30 2019-01-29 南京越博动力系统股份有限公司 一种基于上位机控制的can总线通讯系统及方法
CN110224913A (zh) * 2019-07-15 2019-09-10 珠海格力电器股份有限公司 数据传输方法、装置、数据传输系统和设备
CN110545257A (zh) * 2019-07-22 2019-12-06 北京航盛新能科技有限公司 一种汽车can总线加密方法
CN110750790A (zh) * 2019-09-06 2020-02-04 深圳开源互联网安全技术有限公司 Can总线漏洞的检测方法、装置、终端设备及介质
CN111030905A (zh) * 2019-12-05 2020-04-17 深圳前海达闼云端智能科技有限公司 网络传输方法及can总线网络、存储介质及电子设备
CN111049852A (zh) * 2019-12-24 2020-04-21 国家计算机网络与信息安全管理中心 Can总线协议解析方法、装置、电子设备及存储介质
CN111083030A (zh) * 2019-12-25 2020-04-28 南京领行科技股份有限公司 一种数据获取的方法、装置、设备及存储介质
CN113079072A (zh) * 2020-01-06 2021-07-06 广州汽车集团股份有限公司 一种车辆数据采集方法及其系统、计算机设备、存储介质
CN112019440A (zh) * 2020-07-27 2020-12-01 中国人民解放军海军工程大学 基于标识符复用的can总线组播方法
CN111866017A (zh) * 2020-07-29 2020-10-30 北京天融信网络安全技术有限公司 一种can总线帧间隔异常的检测方法及装置
CN111953451A (zh) * 2020-08-06 2020-11-17 重庆邮电大学 一种提高解析物联网帧结构效率的方法
CN112291125A (zh) * 2020-10-16 2021-01-29 江苏徐工工程机械研究院有限公司 一种can总线多节点自动识别方法及装置
CN113067821A (zh) * 2021-03-22 2021-07-02 聊城大学 基于单个或多个dbc文件的can报文的解析方法
CN113328919A (zh) * 2021-05-28 2021-08-31 江苏徐工工程机械研究院有限公司 一种can总线标识符、通信方法以及通信系统
CN113852531A (zh) * 2021-09-22 2021-12-28 石家庄通合电子科技股份有限公司 用于功能码匹配的can通讯方法和can控制器

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
TANVI AGRAWAL; P. K. BISWAS; A. D. RAOOT; ROHIT SHARMA: "Optimum frame size evaluation framework for efficient tag identification in passive RFID systems", 《2013 IEEE WIRELESS POWER TRANSFER (WPT)》 *
郭佳;李朋伟;: "基于CAN总线的绞车提升信号系统设计", 煤炭技术, no. 07 *
陶志刚;李晴;: "小卫星星载CAN总线的应用层传输方法研究", 航天器工程, no. 03, 15 May 2011 (2011-05-15) *

Similar Documents

Publication Publication Date Title
US8989215B2 (en) Method, apparatus, and system for data transmission
CN110780921A (zh) 数据处理方法和装置、存储介质及电子装置
CN109214512B (zh) 一种深度学习的参数交换方法、装置、服务器及存储介质
CN114448744A (zh) 复用标识号的can数据解析方法、装置、设备及介质
CN114064308A (zh) 基于列式数据扫描的多数据发送和接收方法、装置和设备
CN114448744B (zh) 复用标识号的can数据解析方法、装置、设备及介质
CN106528053A (zh) 一种终端设备高效率数据处理方法及其终端设备
CN113377998A (zh) 数据加载的方法、装置、电子设备及存储介质
CN102413247A (zh) 终端死机现场的恢复方法及装置
CN114492152A (zh) 更新网络模型的方法、图像分类的方法、语言建模的方法
CN114490861A (zh) 遥测数据解析方法、装置、设备及介质
CN106714258B (zh) 一种信道切换方法及装置
CN113671924B (zh) Dcs实时值置值方法和系统、设备及存储介质
CN113556403B (zh) 一种用于分布式训练的通信方法及系统
CN106648912A (zh) 数据采集平台中数据处理的模块化方法及装置
EP4071619A1 (en) Address generation method, related device and storage medium
CN114760662A (zh) 一种低时延速率匹配方法、装置、电子设备及存储介质
CN112988631A (zh) 一种基于现场可编程门阵列的数据处理方法及装置
CN113411832A (zh) 负载均衡方法、负载均衡器和物联网系统
CN115529364B (zh) 一种5g物理层的任务处理方法、装置、设备及存储介质
US20240006026A1 (en) Genome assembly method, apparatus, device and storage medium
CN117527937B (zh) 基于排序窗口的数据报文的排序方法、装置及设备
CN113726616B (zh) 基于电力物联网实时检测异常数据的方法、装置及系统
CN113467977B (zh) 基于循环队列的soe数据上送方法、系统及板卡
CN108920400A (zh) 一种多路高速高频串行数据采集装置及其采集方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant