CN110719231A - 一种数据处理方法、装置、设备及可读存储介质 - Google Patents
一种数据处理方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN110719231A CN110719231A CN201911025113.6A CN201911025113A CN110719231A CN 110719231 A CN110719231 A CN 110719231A CN 201911025113 A CN201911025113 A CN 201911025113A CN 110719231 A CN110719231 A CN 110719231A
- Authority
- CN
- China
- Prior art keywords
- data
- pgn
- message
- request
- ecu
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07C—TIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
- G07C5/00—Registering or indicating the working of vehicles
- G07C5/008—Registering or indicating the working of vehicles communicating information to a remotely located station
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L2012/40208—Bus networks characterized by the use of a particular bus standard
- H04L2012/40215—Controller Area Network CAN
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L2012/40267—Bus for use in transportation systems
- H04L2012/40273—Bus for use in transportation systems the transportation system being a vehicle
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Small-Scale Networks (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
Abstract
本申请公开了一种数据处理方法、装置、设备及可读存储介质。本申请公开的方法应用于汽车故障诊断设备,包括:接收电子控制单元ECU发送的报文数据;若报文数据不是应答消息,则判断报文数据的参数组编号PGN数据的类型,PGN数据的类型包括广播PGN数据和请求PGN数据;若报文数据是请求PGN数据,则根据报文数据中的源地址和目标地址将报文数据存储至对应的缓冲器。本申请中的汽车故障诊断设备中设有多个缓冲器,不同的请求PGN数据对应不同的缓冲器。在数据通信过程中,可对任意CAN ID对应的PGN数据进行接收和处理,提高了汽车故障诊断设备的处理效率和可用性,也可避免数据丢失。本申请公开的一种数据处理装置、设备及可读存储介质,也同样具有上述技术效果。
Description
技术领域
本申请涉及汽车故障诊断技术领域,特别涉及一种数据处理方法、装置、设备及可读存储介质。
背景技术
ECU(Electronic Control Unit)电子控制单元,又称“行车电脑”、“车载电脑”等,其为汽车专用微机控制器,可以收集汽车中的各个模组采集的数据(如模组温度,模组运行速率等)。汽车故障诊断设备用于从ECU获取这些数据,汽车故障诊断平台能够对这些数据进行分析,从而诊断汽车存在的故障。汽车故障诊断平台可内置在汽车故障诊断设备中,也可运行于其他设备上。其中,汽车中的每个模组对应一个CAN ID。
目前,现有的汽车故障诊断设备需要按照数据接收机制来接收ECU发送的数据报文。例如:当汽车故障诊断设备中的数据接收机制为广播PGN数据接收机制时,汽车故障诊断设备在当前时间段内只对接收到的广播PGN数据进行处理,而接收到的其他数据则会丢弃。同理,当汽车故障诊断设备中的数据接收机制为请求PGN数据接收机制时,汽车故障诊断设备在当前时间段内只对接收到的请求PGN数据进行处理,而接收到的其他数据则会丢弃。
其中,当汽车故障诊断设备接收请求PGN数据时,只能处理当前数据接收机制规定的唯一模组对应的数据。也就是说,若汽车故障诊断设备在当前时间段内接收到当前数据接收机制未规定的其他模组对应的数据,这些数据也会被丢弃。因此现有汽车故障诊断设备在规定时间段内只能接收和处理指定的CAN ID对应的数据,该段时间内传输至汽车故障诊断设备的其他数据会被丢弃,从而浪费了数据传输资源,降低了汽车故障诊断设备的处理效率和可用性。
因此,如何提高汽车故障诊断设备的处理效率和可用性,是本领域技术人员需要解决的问题。
发明内容
有鉴于此,本申请的目的在于提供一种数据处理方法、装置、设备及可读存储介质,以提高汽车故障诊断设备的处理效率和可用性。其具体方案如下:
第一方面,本申请提供了一种数据处理方法,应用于汽车故障诊断设备,包括:
接收电子控制单元ECU发送的报文数据;
判断报文数据是否为应答消息;
若否,则确定报文数据的参数组编号PGN数据的类型,PGN数据的类型包括广播PGN数据和请求PGN数据;
若报文数据是请求PGN数据,则根据报文数据中的源地址和目标地址将报文数据存储至对应的缓冲器;
其中,汽车故障诊断设备中设有多个缓冲器,不同的请求PGN数据对应不同的缓冲器。
优选地,判断报文数据是否为应答消息,包括:
解析报文数据,获得报文数据中的电源分配单元PDU格式、源地址和目标地址;
判断PDU格式是否为第一目标参数;
若是,则确定报文数据为应答消息;
若否,则确定报文数据不是应答消息,并执行判断报文数据是广播PGN数据还是请求PGN数据的步骤。
优选地,确定所述报文数据的参数组编号PGN数据的类型,包括:
判断报文数据中的控制字节是否为第二目标参数;
若是,则确定报文数据是请求PGN数据,并执行根据报文数据中的源地址和目标地址将报文数据存储至对应的缓冲器的步骤;
若否,则确定报文数据是广播PGN数据。
优选地,若报文数据是请求PGN数据,则根据报文数据中的源地址和目标地址将报文数据存储至对应的缓冲器,包括:
若报文数据是请求PGN数据,则判断报文数据是否为数据传输首帧;
若是,则将源地址和目标地址存储至缓冲器,并返回准备发送的应答消息至ECU,以使ECU发送PGN数据;
若否,则根据源地址和目标地址将报文数据中的PGN数据存储至缓冲器,并判断缓冲器中的PGN数据是否完整;若完整,则将缓冲器中的PGN数据发送至汽车故障诊断平台,并清空缓冲器。
优选地,若报文数据是请求PGN数据,则接收电子控制单元ECU发送的报文数据之前,还包括:
发送获取PGN数据的请求至ECU。
优选地,发送获取PGN数据的请求至ECU,包括:
获取PGN数据的收集任务;
根据收集任务生成请求;
判断请求中的待传输数据的长度是否大于第三目标参数;
若是,则将请求拆分为多个报文数据,并将多个报文数据发送至ECU;
若否,则将请求发送至ECU。
优选地,将多个报文数据发送至ECU,包括:
发送请求发送的应答消息至ECU,以使ECU返回准备发送的应答消息;
若接收到准备发送的应答消息,则将多个报文数据发送至ECU。
第二方面,本申请提供了一种数据处理装置,应用于汽车故障诊断设备,包括:
接收模块,用于接收电子控制单元ECU发送的报文数据;
第一判断模块,用于判断所述报文数据是否为应答消息;
第二判断模块,用于若所述报文数据不是所述应答消息,则确定所述报文数据的参数组编号PGN数据的类型,所述PGN数据的类型包括广播PGN数据和请求PGN数据;
存储模块,用于若所述报文数据是所述请求PGN数据,则根据所述报文数据中的源地址和目标地址将所述报文数据存储至对应的缓冲器;
其中,所述汽车故障诊断设备中设有多个缓冲器,不同的请求PGN数据对应不同的缓冲器。
优选地,第一判断模块包括:
解析单元,用于解析报文数据,获得报文数据中的PDU格式、源地址和目标地址;
第一判断单元,用于判断PDU格式是否为第一目标参数;
第一确定单元,用于若PDU格式为第一目标参数,则确定报文数据为应答消息;
第二确定单元,用于若PDU格式不是第一目标参数,则确定报文数据不是应答消息,并执行判断报文数据是广播PGN数据还是请求PGN数据的步骤。
优选地,第二判断模块包括:
第二判断单元,用于判断报文数据中的控制字节是否为第二目标参数;
第三确定单元,用于若报文数据中的控制字节为第二目标参数,则确定报文数据是请求PGN数据,并执行根据报文数据中的源地址和目标地址将报文数据存储至对应的缓冲器的步骤;
第四确定单元,用于若报文数据中的控制字节不是第二目标参数,则确定报文数据是广播PGN数据。
优选地,存储模块包括:
第三判断单元,用于若报文数据是请求PGN数据,则判断报文数据是否为数据传输首帧;
第一执行单元,用于若报文数据是数据传输首帧,则将源地址和目标地址存储至缓冲器,并返回准备发送的应答消息至ECU,以使ECU发送PGN数据;
第二执行单元,用于若报文数据不是数据传输首帧,则根据源地址和目标地址将报文数据中的PGN数据存储至缓冲器,并判断缓冲器中的PGN数据是否完整;若完整,则将缓冲器中的PGN数据发送至汽车故障诊断平台,并清空缓冲器。
优选地,若报文数据是请求PGN数据,则数据处理装置还包括:
发送模块,用于发送获取PGN数据的请求至ECU。
优选地,发送模块包括:
获取单元,用于获取PGN数据的收集任务;
生成单元,用于根据收集任务生成请求;
第四判断单元,用于判断请求中的待传输数据的长度是否大于第三目标参数;
第一发送单元,用于若请求中的待传输数据的长度大于第三目标参数,则将请求拆分为多个报文数据,并将多个报文数据发送至ECU;
第二发送单元,用于若请求中的待传输数据的长度不大于第三目标参数,则将请求发送至ECU。
优选地,第一发送单元包括:
第一发送子单元,用于发送请求发送的应答消息至ECU,以使ECU返回准备发送的应答消息;
第二发送子单元,用于若接收到准备发送的应答消息,则将多个报文数据发送至ECU。
第三方面,本申请提供了一种数据处理设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序,以实现前述公开的数据处理方法。
第四方面,本申请提供了一种可读存储介质,用于保存计算机程序,其中,计算机程序被处理器执行时实现前述公开的数据处理方法。
通过以上方案可知,本申请提供了一种数据处理方法,应用于汽车故障诊断设备,包括:接收电子控制单元ECU发送的报文数据;判断报文数据是否为应答消息;若否,则确定报文数据的参数组编号PGN数据的类型,PGN数据的类型包括广播PGN数据和请求PGN数据;若报文数据是请求PGN数据,则根据报文数据中的源地址和目标地址将报文数据存储至对应的缓冲器;其中,汽车故障诊断设备中设有多个缓冲器,不同的请求PGN数据对应不同的缓冲器。
可见,该方法在接收到ECU发送的报文数据后,首先判断报文数据是否为应答消息,若报文数据不是应答消息,那么进一步判断报文数据是广播PGN数据还是请求PGN数据;若报文数据是请求PGN数据,则根据报文数据中的源地址和目标地址将报文数据存储至对应的缓冲器。可见,本申请能够对当前接收到的报文数据进行分析和判断,从而根据当前接收到的报文数据执行相应的处理步骤,而无需依据数据接收机制进行固定处理,从而打破了现有数据接收机制的限制,可避免接收到的其他可用数据被丢弃,从而避免了数据传输资源的浪费。同时,当接收到的报文数据为请求PGN数据时,本申请可根据报文数据中的源地址和目标地址将报文数据存储至对应的缓冲器;其中,源地址为模组的CAN ID,目标地址为汽车故障诊断设备的地址,而源地址和目标地址与缓冲器对应。并且,汽车故障诊断设备中的缓冲器对应不不同的请求PGN数据,也就是在同一通信周期内,当汽车故障诊断设备接收到不同的请求PGN数据时,其可以将各个请求PGN数据分别存储至对应的缓冲器。由此可见,本申请在数据通信过程中,可对任意CAN ID对应的PGN数据进行接收和处理,而不会只对一个CAN ID对应的PGN数据进行接收和处理,因此提高了汽车故障诊断设备的处理效率和可用性,也可避免数据丢失。
相应地,本申请提供的一种数据处理装置、设备及可读存储介质,也同样具有上述技术效果。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的第一种数据处理方法流程图;
图2为图1中S105步骤的细化流程图;
图3为本申请公开的第二种数据处理方法流程图;
图4为本申请公开的第三种数据处理方法流程图;
图5为本申请公开的汽车故障诊断设备和ECU之间进行数据传输示意图;
图6为本申请公开的汽车故障诊断设备和ECU之间的广播传输示意图;
图7为本申请公开的汽车故障诊断设备向ECU发送获取PGN数据的请求的流程图;
图8为本申请公开的汽车故障诊断设备接收ECU返回的数据的流程图;
图9为本申请公开的一种数据处理装置示意图;
图10为本申请公开的一种数据处理设备示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,现有汽车故障诊断设备在规定时间段内只能接收和处理指定的CAN ID对应的数据,该段时间内传输至汽车故障诊断设备的其他数据会被丢弃,从而浪费了数据传输资源,降低了汽车故障诊断设备的处理效率和可用性。为此,本申请提供了一种数据处理方案,能够提高汽车故障诊断设备的处理效率和可用性。
参见图1所示,本申请实施例公开了第一种数据处理方法,应用于汽车故障诊断设备,包括:
S101、接收ECU发送的报文数据;
S102、判断报文数据是否为应答消息;若是,则执行S103;若否,则执行S104;
S103、将报文数据发送至汽车故障诊断平台;
S104、确定报文数据的参数组编号PGN数据的类型;若报文数据是广播PGN数据,则执行S103;若报文数据是请求PGN数据,则执行S105;
S105、根据报文数据中的源地址和目标地址将报文数据存储至对应的缓冲器。
需要说明的是,PGN(Parameter Group Number,参数组编号)用于表示模组温度,模组运行速率等参数,不同参数具有不同的PGN,也就是具有不同的编号。汽车故障诊断设备和ECU可采用SAEJ1939协议进行通信,也可以采用其他协议,如1575协议。汽车故障诊断设备中设有多个缓冲器,不同的请求PGN数据对应不同的缓冲器(即缓存区域)。
需要说明的是,若在一个通信周期内,汽车故障诊断设备接收到多个请求PGN数据(多个请求PGN数据一般交替传输),由于汽车故障诊断设备中设有多个缓冲器,那么其就可以将不同的请求PGN数据对应存储至不同的缓冲器。其中,在汽车故障诊断设备接收到请求PGN数据的首帧时,会首先将此请求PGN数据中的源地址、目标地址、数据大小等信息存储至任一个缓冲器,那么此缓冲器即为该请求PGN数据对应的缓冲器。当汽车故障诊断设备再次接收到具有相同源地址和目标地址的请求PGN数据时,会将接收到的请求PGN数据存储至相应的缓冲器,直至该请求PGN数据完整被接收。当完整的请求PGN数据被传输至汽车故障诊断平台后,可以清空存储该请求PGN数据的缓冲器,以便于后续存储其他请求PGN数据。
其中,在一个通信周期内,一个缓冲器可以存储一个具有相同源地址和目标地址的请求PGN数据;也就是缓冲器和源地址、目标地址一一对应。当然,一个缓冲器还可以存储多个具有相同源地址和目标地址的请求PGN数据;也就是当缓冲器的存储空间足够大时,在一个通信周期内,其可以存储多个源地址发送的请求PGN数据,此时一个缓冲器对应多个源地址的请求PGN数据。
其中,ECU发送的应答消息可以是表示系统繁忙的应答消息,用于表示ECU繁忙;也可以是请求发送数据的应答消息,用于表示ECU想要给汽车故障诊断设备发送数据;还可以是准备接收数据的应答消息,用于表示ECU已做好接收数据的准备,亦或者其他应答消息。
其中,请求PGN数据为:汽车故障诊断设备发送获取PGN数据的请求后,ECU返回的PGN数据。广播PGN数据为:ECU主动向汽车故障诊断设备发送的广播消息,该广播消息中携带有PGN数据,广播消息最多连续50个。
在本实施例中,PGN数据的类型包括广播PGN数据和请求PGN数据,因此判断报文数据的参数组编号PGN数据的类型具体可以为:判断报文数据是广播PGN数据还是请求PGN数据。
请参见图2,图2为图1中S105步骤的细化流程图。图1中的S105的具体实现步骤包括:
S201、判断报文数据是否为数据传输首帧;若是,则执行S202;若否,则执行S203;
S202、将源地址和目标地址存储至缓冲器,并返回准备发送的应答消息至ECU,以使ECU发送PGN数据;
S203、根据源地址和目标地址将报文数据中的PGN数据存储至缓冲器,并执行S204;
S204、判断缓冲器中的PGN数据是否完整;若是,则执行S205;若否,则等待接收PGN数据的分包;
S205、将缓冲器中的PGN数据发送至汽车故障诊断平台,并清空缓冲器。
需要说明的是,当报文数据为数据传输首帧时,该报文数据中包括接下来ECU要发送的PGN数据的总字节数;分几个帧发送;该PGN数据对应的模组的地址(CAN ID),也就是源地址;目标地址,也就是汽车故障诊断设备的地址等内容。当接收到数据传输首帧时,将其中的源地址、目标地址以及其他内容存储至缓冲器,并返回已做好数据接收准备的应答消息至ECU,以使ECU发送PGN数据。
当报文数据是请求PGN数据,但不是数据传输首帧时,则表明当前报文数据是ECU发送的PGN数据的分包,因此根据其中的源地址和目标地址将报文数据中的PGN数据存储至对应的缓冲器。其中,由于源地址和目标地址在接收到数据传输首帧时已记录至缓冲器,因此在接收到PGN数据的分包时,可确定对应的缓冲器。
当接收到PGN数据的分包后,可进一步确定当前PGN数据是否接收完整;若是,则将缓冲器中的PGN数据发送至汽车故障诊断平台,并清空缓冲器,以便于存储其他CAN ID对应的PGN数据。若否,则等待PGN数据的其他分包。PGN数据是否接收完整可基于数据传输首帧中的PGN数据的总字节数和当前已接收到的字节总数确定,若PGN数据的总字节数大于当前已接收到的字节总数,则表明PGN数据不完整;若PGN数据的总字节数等于当前已接收到的字节总数,则表明PGN数据完整。
需要说明的是,在汽车故障诊断设备和ECU采用SAEJ1939协议进行通信时,二者之间传输的PGN数据的长度最大为8字节。并且,汽车故障诊断设备和ECU具有可接收数据的最大阈值。假设汽车故障诊断设备可接收数据的最大阈值为255字节,那么说明汽车故障诊断设备在连续接收到255字节的数据后,将无法接收数据,需要重新开启数据接收流程。例如:ECU发送的PGN数据为257字节,那么32×8+1=257。也就是说,257字节的PGN数据需要被拆分为33个分包,也就是分33个数据帧才能发送完。但由于汽车故障诊断设备可接收数据的最大阈值为255字节,也就是说,汽车故障诊断设备接收完32个数据帧后,就没有能力再接收数据帧了。此时需要汽车故障诊断设备重新发送请求发送的应答消息至ECU,在ECU返回准备发送的应答消息后,将剩下的最后一帧数据发送至ECU。
可见,本申请实施例能够对当前接收到的报文数据进行分析和判断,从而根据当前接收到的报文数据执行相应的处理步骤,而无需依据数据接收机制进行固定处理,从而打破了现有数据接收机制的限制,可避免接收到的其他可用数据被丢弃,从而避免了数据传输资源的浪费。同时,当接收到的报文数据为请求PGN数据时,本申请可根据报文数据中的源地址和目标地址将报文数据存储至对应的缓冲器;其中,源地址为模组的CAN ID,目标地址为汽车故障诊断设备的地址,而源地址和目标地址与缓冲器对应,由此可见,本申请在数据通信过程中,可对任意CAN ID对应的PGN数据进行接收和处理,而不会只对一个CAN ID对应的PGN数据进行接收和处理,因此提高了汽车故障诊断设备的处理效率和可用性,也可避免数据丢失。
参见图3所示,本申请实施例公开了第二种数据处理方法,应用于汽车故障诊断设备,包括:
S301、接收ECU发送的报文数据;
S302、解析报文数据,获得报文数据中的PDU格式、源地址和目标地址;
S303、判断PDU格式是否为第一目标参数;若是,则执行S304;若否,则执行S306;
S304、确定报文数据为应答消息,并执行S305;
S305、将报文数据发送至汽车故障诊断平台;
S306、确定报文数据不是应答消息,并执行S307;
S307、判断报文数据中的控制字节是否为第二目标参数;若是,则执行S308;若否,则执行S309;
S308、确定报文数据是请求PGN数据,并根据报文数据中的源地址和目标地址将报文数据存储至对应的缓冲器;
S309、确定报文数据是广播PGN数据,并执行S305。
需要说明的是,对于接收到的不同CAN ID对应的PGN数据,可采用不同的缓冲器进行存储。汽车故障诊断设备中设置有多个缓冲器。不同CAN ID对应的PGN数据是异步接收的。
当异步接收不同CAN ID对应的PGN数据,需要进行组包。例如:第一个CAN ID对应的PGN数据被拆分为3个数据帧,分别为:1、2、3;第二个CAN ID对应的PGN数据也被拆分为3个数据帧,分别为:4、5、6,那么这两个PGN数据可能是交替发送的。如:ECU先发1,再发4,进而2,进而发5,如此交替发送。那么汽车故障诊断设备也就是交替接收这些数据,因此接收到各个分包后,需要进行组包,才能获得完整的PGN数据。第一个CAN ID对应的PGN数据的接收流程和第二个CAN ID对应的PGN数据的接收流程会有相应的流程执行进度的记录,因此可实现异步接收。
需要说明的是,汽车故障诊断设备和ECU之间传输的报文数据可以为PDU格式,报文数据中携带有当前报文数据的具体PDU格式。在本实施例中,PDU格式具体可以为PS或PF。若PDU格式为PF,且PF为第一目标参数时,则确定报文数据为应答消息,其中,第一目标参数可以为“0XE8”,“0XE8”为16进制的数值。
当报文数据中的控制字节为第二目标参数时,表明报文数据是请求PGN数据;否则,报文数据是广播PGN数据。其中,第二目标参数可以为16字节,也就是说,当报文数据中的控制字节为16字节时,表明报文数据是请求PGN数据。当报文数据中的控制字节不是16字节时,表明报文数据是广播PGN数据。
需要说明的是,本实施例中的实现步骤与上述实施例相同或类似,故可以相互参照,本实施例在此不再赘述。
由上可见,本实施例在数据通信过程中,可对任意CAN ID对应的PGN数据进行接收和处理,而不会只对一个CAN ID对应的PGN数据进行接收和处理,因此提高了汽车故障诊断设备的处理效率和可用性,也可避免数据丢失。
若汽车故障诊断设备想要从ECU获取PGN数据,那么其首先需要向ECU发送获取PGN数据的请求。参见图4所示,汽车故障诊断设备向ECU发送获取PGN数据的请求的过程包括:
S401、获取PGN数据的收集任务;
S402、根据收集任务生成请求;
S403、判断请求中的待传输数据的长度是否大于第三目标参数;若是,则执行S405;若否,则执行S404;
S404、将请求发送至ECU;
S405、将请求拆分为多个报文数据;
S406、发送请求发送的应答消息至ECU,以使ECU返回准备发送的应答消息;
S407、若接收到准备发送的应答消息,则将多个报文数据发送至ECU。
在本实施例中,PGN数据的收集任务在汽车故障诊断平台生成并下发至汽车故障诊断设备。PGN数据的收集任务可以是汽车故障诊断平台自主生成的任务,也可以是用户在汽车故障诊断平台进行操作后生成的任务。汽车故障诊断平台可安装于汽车故障诊断设备上,也可以安装于其他计算机设备上。汽车故障诊断设备获取到PGN数据的收集任务后,会将任务添加至FIFO队列,这些任务将按照先入先出的原则被汽车故障诊断设备处理。其中,FIFO(First Input First Output)是传统的先入先出执行队列。
在本实施例中,获取PGN数据的请求的拆包规则可参照上述实施例,为避免赘述,在此不再说明。其中,当汽车故障诊断设备和ECU采用SAEJ1939协议进行通信时,第三目标参数可以为8字节。ECU返回的准备发送的应答消息表示:ECU已做好接收请求的准备工作。
需要说明的是,本实施例中的实现步骤与上述实施例相同或类似,故可以相互参照,本实施例在此不再赘述。
由上可见,本实施例提供了汽车故障诊断设备向ECU发送获取PGN数据的请求的具体过程,能够按照先入先出的原则逐一处理获取PGN数据的任务,且不存在通信机制的限制,不同请求是异步发送的,因而提高了汽车故障诊断设备的任务处理效率。
按照本申请提供的数据处理方法,汽车故障诊断设备和ECU之间进行数据传输的过程请参见图5,汽车故障诊断设备和ECU之间的广播传输过程请参见图6。在图5和图6中,data1-7表示字节数据;TP.CM_RTS表示请求发送;TP.CM_CTS表示准备发送;TP.CM_BAM表示开始广播;TP.DT表示数据传输。图5和图6中的发送者节点可以是汽车故障诊断设备或ECU,接收者节点可以是汽车故障诊断设备或ECU。当发送者节点是汽车故障诊断设备时,接收者节点则为ECU;当发送者节点是ECU时,接收者节点则为汽车故障诊断设备。
需要说明的是,汽车故障诊断设备和ECU之间设有CAN控制器,CAN控制器能够将ECU发送的模拟数据转换为数字数据,以供汽车故障诊断设备接收和处理,也能够将汽车故障诊断设备发送的数字数据转换为模拟数据,以供ECU接收和处理。汽车故障诊断设备、ECU和CAN控制器之间通过CAN总线相连。
在本实施例中,汽车故障诊断设备向ECU发送获取PGN数据的请求的流程请求参见图7。汽车故障诊断设备接收ECU返回的数据的流程请参见图8。
在图7中,发送函数采用状态轮询法发送请求,具有快进快出,执行时间短的优点。当发送函数完成一个任务或发送超时后,会从FIFO任务队列中获取新的任务。
发送流程具体包括:发送函数判断当前任务是否发送完成,未完成则继续执行,则读取下一个任务。若待发送的数据长度<=8字节,发送单帧数据,完成发送流程。
若待发送的数据长度>8字节,需要将数据分包发送,分包过程如下:
A、判断“请求发送”是否发送;若是,则执行B;若否,则发送“请求发送”,退出当前发送函数;
B、判断是否收到过“准备发送”若是,则执行C;若否,则退出当前发送函数;
C、向ECU发送一个数据帧;
D、判断是否发送完所有需发送的数据,若是,则退出当前发送函数,执行下一个发送任务;若否,则执行A。
在图8中,接收函数采用状态轮询法发送请求,具有快进快出,执行时间短的优点。
接收流程具体包括:从接收到的报文数据中解析出PF/DA/SA,DA为目标地址,SA为源地址;若PF=0XE8,则报文数据为应答帧,也就是应答消息,那么将报文数据发送到汽车故障诊断平台,并退出接收函数;若否,则执行下一步;若PF=0XEC,则报文数据是数据传输首帧,那么执行下一步;0XEC为16进制的数值;若报文数据中的控制字节=16,则发送“准备发送”至ECU;“准备发送”的控制字节=17;记录SA/DA与PGN类型,根据SA/DA的不同建立不同缓冲器(Buffer)对应的接收通道,异步接收不同SA/DA对应的数据;若PF=0XEB,则报文数据为连续帧,也就是PGN数据的分包。对于PGN数据的分包,解析其中的SA/DA,并SA/DA判断是否被记录过;若是,则保存数据到对应的缓冲器中;判断PGN数据是否接收完整;若是,则发送PGN数据到汽车故障诊断平台,此时可做下一个PGN数据的接收准备;若否,则等待接收PGN数据的其他分包。
可见,本实施例能够对接收到的数据报文的SA/DA进行比对和判断,并根据SA/DA的不同将数据分别接收到不同的Buffer中,可以处理多CAN ID对应的PNG数据。收发函数异步处理,不同接收流程和不同发送流程也是异步处理的,从而提高了汽车故障诊断设备的处理效率和可用性,也可避免数据丢失。
下面对本申请实施例提供的一种数据处理装置进行介绍,下文描述的一种数据处理装置与上文描述的一种数据处理方法可以相互参照。
参见图9所示,本申请实施例公开了一种数据处理装置,应用于汽车故障诊断设备,包括:
接收模块901,用于接收电子控制单元ECU发送的报文数据;
第一判断模块902,用于判断所述报文数据是否为应答消息;
第二判断模块903,用于若所述报文数据不是所述应答消息,则确定所述报文数据的参数组编号PGN数据的类型,所述PGN数据的类型包括广播PGN数据和请求PGN数据;
存储模块904,用于若所述报文数据是所述请求PGN数据,则根据所述报文数据中的源地址和目标地址将所述报文数据存储至对应的缓冲器;
其中,所述汽车故障诊断设备中设有多个缓冲器,不同的请求PGN数据对应不同的缓冲器。
在一种具体实施方式中,第一判断模块包括:
解析单元,用于解析报文数据,获得报文数据中的PDU格式、源地址和目标地址;
第一判断单元,用于判断PDU格式是否为第一目标参数;
第一确定单元,用于若PDU格式为第一目标参数,则确定报文数据为应答消息;
第二确定单元,用于若PDU格式不是第一目标参数,则确定报文数据不是应答消息,并执行判断报文数据是广播PGN数据还是请求PGN数据的步骤。
在一种具体实施方式中,第二判断模块包括:
第二判断单元,用于判断报文数据中的控制字节是否为第二目标参数;
第三确定单元,用于若报文数据中的控制字节为第二目标参数,则确定报文数据是请求PGN数据,并执行根据报文数据中的源地址和目标地址将报文数据存储至对应的缓冲器的步骤;
第四确定单元,用于若报文数据中的控制字节不是第二目标参数,则确定报文数据是广播PGN数据。
在一种具体实施方式中,存储模块包括:
第三判断单元,用于若报文数据是请求PGN数据,则判断报文数据是否为数据传输首帧;
第一执行单元,用于若报文数据是数据传输首帧,则将源地址和目标地址存储至缓冲器,并返回准备发送的应答消息至ECU,以使ECU发送PGN数据;
第二执行单元,用于若报文数据不是数据传输首帧,则根据源地址和目标地址将报文数据中的PGN数据存储至缓冲器,并判断缓冲器中的PGN数据是否完整;若完整,则将缓冲器中的PGN数据发送至汽车故障诊断平台,并清空缓冲器。
在一种具体实施方式中,若报文数据是请求PGN数据,则数据处理装置还包括:
发送模块,用于发送获取PGN数据的请求至ECU。
在一种具体实施方式中,发送模块包括:
获取单元,用于获取PGN数据的收集任务;
生成单元,用于根据收集任务生成请求;
第四判断单元,用于判断请求中的待传输数据的长度是否大于第三目标参数;
第一发送单元,用于若请求中的待传输数据的长度大于第三目标参数,则将请求拆分为多个报文数据,并将多个报文数据发送至ECU;
第二发送单元,用于若请求中的待传输数据的长度不大于第三目标参数,则将请求发送至ECU。
在一种具体实施方式中,第一发送单元包括:
第一发送子单元,用于发送请求发送的应答消息至ECU,以使ECU返回准备发送的应答消息;
第二发送子单元,用于若接收到准备发送的应答消息,则将多个报文数据发送至ECU。
其中,关于本实施例中各个模块、单元更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
可见,本实施例提供了一种数据处理装置,该装置提高了汽车故障诊断设备的处理效率和可用性,也可避免数据丢失。
下面对本申请实施例提供的一种数据处理设备进行介绍,下文描述的一种数据处理设备与上文描述的一种数据处理方法及装置可以相互参照。
参见图10所示,本申请实施例公开了一种数据处理设备,包括:
存储器1001,用于保存计算机程序;
处理器1002,用于执行所述计算机程序,以实现上述任意实施例公开的方法。
下面对本申请实施例提供的一种可读存储介质进行介绍,下文描述的一种可读存储介质与上文描述的一种数据处理方法、装置及设备可以相互参照。
一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述实施例公开的数据处理方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
本申请涉及的“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法或设备固有的其它步骤或单元。
需要说明的是,在本申请中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的可读存储介质中。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种数据处理方法,其特征在于,应用于汽车故障诊断设备,包括:
接收电子控制单元ECU发送的报文数据;
判断所述报文数据是否为应答消息;
若否,则确定所述报文数据的参数组编号PGN数据的类型,所述PGN数据的类型包括广播PGN数据和请求PGN数据;
若所述报文数据是所述请求PGN数据,则根据所述报文数据中的源地址和目标地址将所述报文数据存储至对应的缓冲器;其中,所述汽车故障诊断设备中设有多个缓冲器,不同的请求PGN数据对应不同的缓冲器。
2.根据权利要求1所述的数据处理方法,其特征在于,所述判断所述报文数据是否为应答消息,包括:
解析所述报文数据,获得所述报文数据中的电源分配单元PDU格式、源地址和目标地址;
判断所述PDU格式是否为第一目标参数;
若是,则确定所述报文数据为所述应答消息;
若否,则确定所述报文数据不是所述应答消息,并执行所述判断所述报文数据是广播PGN数据还是请求PGN数据的步骤。
3.根据权利要求2所述的数据处理方法,其特征在于,所述确定所述报文数据的参数组编号PGN数据的类型,包括:
判断所述报文数据中的控制字节是否为第二目标参数;
若是,则确定所述报文数据是所述请求PGN数据,并执行所述根据所述报文数据中的源地址和目标地址将所述报文数据存储至对应的缓冲器的步骤;
若否,则确定所述报文数据是所述广播PGN数据。
4.根据权利要求1所述的数据处理方法,其特征在于,若所述报文数据是所述请求PGN数据,则根据所述报文数据中的源地址和目标地址将所述报文数据存储至对应的缓冲器,包括:
若所述报文数据是所述请求PGN数据,则判断所述报文数据是否为数据传输首帧;
若是,则将所述源地址和所述目标地址存储至所述缓冲器,并返回准备发送的应答消息至所述ECU,以使所述ECU发送PGN数据;
若否,则根据所述源地址和所述目标地址将所述报文数据中的PGN数据存储至所述缓冲器,并判断所述缓冲器中的PGN数据是否完整;若完整,则将所述缓冲器中的PGN数据发送至汽车故障诊断平台,并清空所述缓冲器。
5.根据权利要求1至4任一项所述的数据处理方法,其特征在于,若所述报文数据是所述请求PGN数据,则所述接收电子控制单元ECU发送的报文数据之前,还包括:
发送获取所述PGN数据的请求至所述ECU。
6.根据权利要求5所述的数据处理方法,其特征在于,所述发送获取所述PGN数据的请求至所述ECU,包括:
获取所述PGN数据的收集任务;
根据所述收集任务生成所述请求;
判断所述请求中的待传输数据的长度是否大于第三目标参数;
若是,则将所述请求拆分为多个报文数据,并将多个所述报文数据发送至所述ECU;
若否,则将所述请求发送至所述ECU。
7.根据权利要求6所述的数据处理方法,其特征在于,所述将多个所述报文数据发送至所述ECU,包括:
发送请求发送的应答消息至所述ECU,以使所述ECU返回准备发送的应答消息;
若接收到所述准备发送的应答消息,则将多个所述报文数据发送至所述ECU。
8.一种数据处理装置,其特征在于,应用于汽车故障诊断设备,包括:
接收模块,用于接收电子控制单元ECU发送的报文数据;
第一判断模块,用于判断所述报文数据是否为应答消息;
第二判断模块,用于若所述报文数据不是所述应答消息,则确定所述报文数据的参数组编号PGN数据的类型,所述PGN数据的类型包括广播PGN数据和请求PGN数据;
存储模块,用于若所述报文数据是所述请求PGN数据,则根据所述报文数据中的源地址和目标地址将所述报文数据存储至对应的缓冲器;
其中,所述汽车故障诊断设备中设有多个缓冲器,不同的请求PGN数据对应不同的缓冲器。
9.一种数据处理设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求1至7任一项所述的数据处理方法。
10.一种可读存储介质,其特征在于,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911025113.6A CN110719231B (zh) | 2019-10-25 | 2019-10-25 | 一种数据处理方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911025113.6A CN110719231B (zh) | 2019-10-25 | 2019-10-25 | 一种数据处理方法、装置、设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110719231A true CN110719231A (zh) | 2020-01-21 |
CN110719231B CN110719231B (zh) | 2023-04-25 |
Family
ID=69213268
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911025113.6A Active CN110719231B (zh) | 2019-10-25 | 2019-10-25 | 一种数据处理方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110719231B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113852533A (zh) * | 2021-09-27 | 2021-12-28 | 北京微纳星空科技有限公司 | 一种多通道数据通信系统、方法及电子设备 |
CN113872967A (zh) * | 2021-09-27 | 2021-12-31 | 深圳市元征科技股份有限公司 | 车辆信息的传输方法、装置、电子设备及存储介质 |
CN114650194A (zh) * | 2022-03-29 | 2022-06-21 | 深圳市元征科技股份有限公司 | 数据通信的方法、装置、电子设备及存储介质 |
CN115134186A (zh) * | 2022-06-29 | 2022-09-30 | 深圳市元征科技股份有限公司 | 数据处理方法以及相关设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102975668A (zh) * | 2012-11-22 | 2013-03-20 | 福建星海通信科技有限公司 | 基于can总线的车辆远程控制方法 |
WO2017080386A1 (zh) * | 2015-11-10 | 2017-05-18 | 阿里巴巴集团控股有限公司 | 一种报文处理方法和装置 |
CN107919947A (zh) * | 2017-11-28 | 2018-04-17 | 南瑞集团有限公司 | 一种can总线长报文传输的编码方法 |
CN108845506A (zh) * | 2018-08-31 | 2018-11-20 | 深圳市路畅科技股份有限公司 | 一种汽车故障的诊断方法、装置及设备 |
-
2019
- 2019-10-25 CN CN201911025113.6A patent/CN110719231B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102975668A (zh) * | 2012-11-22 | 2013-03-20 | 福建星海通信科技有限公司 | 基于can总线的车辆远程控制方法 |
WO2017080386A1 (zh) * | 2015-11-10 | 2017-05-18 | 阿里巴巴集团控股有限公司 | 一种报文处理方法和装置 |
CN107919947A (zh) * | 2017-11-28 | 2018-04-17 | 南瑞集团有限公司 | 一种can总线长报文传输的编码方法 |
CN108845506A (zh) * | 2018-08-31 | 2018-11-20 | 深圳市路畅科技股份有限公司 | 一种汽车故障的诊断方法、装置及设备 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113852533A (zh) * | 2021-09-27 | 2021-12-28 | 北京微纳星空科技有限公司 | 一种多通道数据通信系统、方法及电子设备 |
CN113872967A (zh) * | 2021-09-27 | 2021-12-31 | 深圳市元征科技股份有限公司 | 车辆信息的传输方法、装置、电子设备及存储介质 |
CN113852533B (zh) * | 2021-09-27 | 2022-06-07 | 北京微纳星空科技有限公司 | 一种多通道数据通信系统、方法及电子设备 |
CN113872967B (zh) * | 2021-09-27 | 2024-04-30 | 深圳市元征科技股份有限公司 | 车辆信息的传输方法、装置、电子设备及存储介质 |
CN114650194A (zh) * | 2022-03-29 | 2022-06-21 | 深圳市元征科技股份有限公司 | 数据通信的方法、装置、电子设备及存储介质 |
CN114650194B (zh) * | 2022-03-29 | 2024-05-10 | 深圳市元征科技股份有限公司 | 数据通信的方法、装置、电子设备及存储介质 |
CN115134186A (zh) * | 2022-06-29 | 2022-09-30 | 深圳市元征科技股份有限公司 | 数据处理方法以及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110719231B (zh) | 2023-04-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110719231B (zh) | 一种数据处理方法、装置、设备及可读存储介质 | |
US20040208177A1 (en) | Semiconductor circuit device, packet processing method, management system, management method and packet processing method | |
CN110519377B (zh) | 一种通信数据传输方法及装置 | |
CN107872396B (zh) | 具有超时控制的通信方法、处理设备、终端设备和服务器 | |
CN110086566B (zh) | 一种车载数据的传输方法及车载设备 | |
CN107025146B (zh) | 一种文件生成方法、装置和系统 | |
CN111181698B (zh) | 数据处理方法、装置、设备及介质 | |
CN112019440A (zh) | 基于标识符复用的can总线组播方法 | |
CN113609059A (zh) | 一种通信系统及通信方法 | |
JP5237438B2 (ja) | 機能的に区別される送信イベントメモリを備えた通信システムの加入者ノード | |
CN111726406A (zh) | 数据传输方法及相关设备 | |
CN110781104A (zh) | 一种数据处理系统、方法和装置 | |
CN115604052A (zh) | 车辆通讯交互方法、系统及电子设备 | |
CN114697269A (zh) | 数据通信方法、装置、设备和介质 | |
CN114338270A (zh) | 数据通信方法、装置、电子设备及存储介质 | |
CN113535436A (zh) | 一种数据处理方法、装置、存储介质 | |
CN113630442A (zh) | 数据传输方法、装置及系统 | |
JP2006319670A (ja) | 通信システム及び中継装置 | |
CN114650194B (zh) | 数据通信的方法、装置、电子设备及存储介质 | |
KR100290659B1 (ko) | 실시간/비실시간 신호처리 제어장치 및 그 방법 | |
CN110650079B (zh) | 一种信息传输方法、装置、终端、系统及存储介质 | |
CN109474693B (zh) | 数据传输方法及相关装置 | |
CN117527634A (zh) | 智能电表网络状态确定方法及相关装置 | |
CN113900901A (zh) | 数据上报方法、数据监控方法、装置、设备及存储介质 | |
CN117667300A (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 | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230925 Address after: Room 305, Yuanzheng Technology R&D Building, No. 4012 Wuhe Avenue, Gangtou Community, Bantian Street, Longgang District, Shenzhen City, Guangdong Province, 518100 Patentee after: Shenzhen yikonglichu Software Development Co.,Ltd. Address before: 518000 8F, yijingge, hujingge, Jingfa garden, No. 2077, Lianhua West Road, Shiling community, Lianhua street, Futian District, Shenzhen, Guangdong Patentee before: SHENZHEN PENGJUSHU INFORMATION TECHNOLOGY Co.,Ltd. |