CN117520044A - 一种数据校验方法、装置、设备及存储介质 - Google Patents
一种数据校验方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117520044A CN117520044A CN202311581728.3A CN202311581728A CN117520044A CN 117520044 A CN117520044 A CN 117520044A CN 202311581728 A CN202311581728 A CN 202311581728A CN 117520044 A CN117520044 A CN 117520044A
- Authority
- CN
- China
- Prior art keywords
- checksum
- data area
- driving cycle
- data
- instruction
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000013524 data verification Methods 0.000 title claims abstract description 25
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 72
- 238000004364 calculation method Methods 0.000 claims abstract description 45
- 230000001680 brushing effect Effects 0.000 claims abstract description 28
- 238000011010 flushing procedure Methods 0.000 claims description 14
- 238000010586 diagram Methods 0.000 description 18
- 238000004590 computer program Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 238000012795 verification Methods 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 230000036449 good health Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Detection And Correction Of Errors (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本公开涉及一种数据校验方法、装置、设备及存储介质,该方法包括:响应于驾驶循环开始指令,从设定区域指定位置获取刷写指示,所述刷写指示用于指示上次驾驶循环执行应用层逻辑计算流程后是否发生数据区刷写;若根据刷写指示确定未发生数据区刷写,则从存储器中获取上次驾驶循环的各数据区的第一校验和;基于所述各数据区的第一校验和,执行应用层逻辑计算流程。本公开不需要利用预设校验和算法计算本次驾驶循环的各数据区的校验码,节省了对应的计算时间,从而提高用户体验感。
Description
技术领域
本公开涉及数据处理技术领域,尤其涉及一种数据校验方法、装置、设备及存储介质。
背景技术
循环冗余校验(Cyclic Redundancy Check,CRC)是一种根据网络数据包或电脑文件等数据产生简短固定位数校验和的快速算法,主要用来检测或校核数据传输或者保存后可能出现的错误。
现有技术中,在一次驾驶循环开始时,电子控制单元(Electronic Control Unit,ECU)需要根据各数据区中的数据,利用CRC算法计算各数据区的校验和,并基于各数据区的校验和进行应用层逻辑的计算。由于每次驾驶循环都需要重新计算各数据区的校验和,且计算过程需要花费大量时间,从而导致用户体验感较差。
发明内容
本公开提供一种数据校验方法、装置、设备及存储介质,能够无需利用预设校验和算法计算本次驾驶循环的各数据区的校验码,节省了对应的计算时间,从而提高用户体验感。
根据本公开实施例的第一方面,提供一种数据校验方法,该方法包括:
响应于驾驶循环开始指令,从设定区域指定位置获取刷写指示,所述刷写指示用于指示上次驾驶循环执行应用层逻辑计算流程后是否发生数据区刷写;
若根据刷写指示确定未发生数据区刷写,则从存储器中获取上次驾驶循环的各数据区的第一校验和;
基于所述各数据区的第一校验和,执行应用层逻辑计算流程。
本公开的实施例提供的技术方案,响应于驾驶循环开始指令,从设定区域指定位置获取刷写指示,根据刷写指示确定未发生数据区刷写,则表明上次驾驶循环各数据区与本次驾驶循环地各数据区相同。因此,可以基于从存储器中获取的上次驾驶循环的各数据区的第一校验和,执行应用层逻辑计算流程,不需要利用预设校验和算法计算本次驾驶循环的各数据区的校验码,节省了对应的计算时间,从而提高用户体验感。
在一种可能的实现方式中,在从设定区域指定位置获取刷写指示之后,还包括:
若根据刷写指示确定发生数据区刷写,则重新基于预设校验和算法计算本次驾驶循环中各数据区的校验和,并将刷写指示更新为未发生数据区刷写;
基于所述本次驾驶循环中各数据区的校验和,执行应用层逻辑计算流程。
本公开的实施例提供的技术方案,根据刷写指示确定发生数据区刷写,则表明上次驾驶循环各数据区与本次驾驶循环各数据区存在差异。因此,需要重新基于预设校验和算法计算本次驾驶循环中各数据区的校验和,基于所述本次驾驶循环中各数据区的校验和,执行应用层逻辑计算流程。并且在重新基于预设校验和算法计算本次驾驶循环中各数据区的校验和之后,将刷写指示更新为未发生数据区刷写,以用于下次驾驶循环进行本次驾驶循环是否发生数据区刷写的判断。
在一种可能的实现方式中,在执行应用层逻辑计算流程之后,还包括,
确定发生数据区刷写时,将刷写指示更新为发生数据区刷写。
本公开的实施例提供的技术方案,在确定发生数据区刷写时,将刷写指示更新为发生数据区刷写,以用于下次驾驶循环进行本次驾驶循环是否发生数据区刷写的判断。
在一种可能的实现方式中,所述刷写指示通过设定区域的各数据区的第二校验和以及各数据区的第三校验和是否一致确定,确定发生数据区刷写时,将刷写指示更新为发生数据区刷写,包括:
在执行任一次驾驶循环的应用层逻辑计算流程之后,在下次驾驶循环开始之前,确定发生数据区刷写时,利用重新基于预设校验和算法计算的本次驾驶循环中各数据区的校验和,更新所述第三校验和。
本公开的实施例提供的技术方案,在执行任一次驾驶循环的应用层逻辑计算流程之后,在下次驾驶循环开始之前,确定发生数据区刷写时,需要利用重新基于预设校验和算法计算的本次驾驶循环中各数据区的校验和,更新本次驾驶循环中各数据区的第三校验和,以用于下次驾驶循环进行本次驾驶循环是否发生数据区刷写的判断。
在一种可能的实现方式中,根据刷写指示确定是否未发生数据区刷写,包括:
若确定各数据区的第二校验和与对应的第三校验和一致,则确定未发生数据区刷写;
否则,确定发生数据区刷写。
本公开的实施例提供的技术方案,根据各数据区的第二校验和与对应的第三校验和是否一致,确定是否发生数据区刷写,从而实现上次驾驶循环各数据区与本次驾驶循环地各数据区是否相同的判断。
在一种可能的实现方式中,重新基于预设校验和算法计算本次驾驶循环中各数据区的校验和,并将刷写指示更新为未发生数据区刷写,包括:
重新基于预设校验和算法计算本次驾驶循环中各数据区的校验和,利用重新计算的校验和同时更新第二校验和及第三校验和。
本公开的实施例提供的技术方案,在刷写指示确定发生数据区刷写时,需要重新基于预设校验和算法计算本次驾驶循环中各数据区的校验和,并利用重新计算的校验和同时更新第二校验和及第三校验和,以用于下次驾驶循环进行本次驾驶循环是否发生数据区刷写的判断。
在一种可能的实现方式中,在从存储器中获取上次驾驶循环的各数据区的第一校验和之后,还包括:
基于预设校验和算法异步计算本次驾驶循环中各数据区的第四校验和;
若各数据区的第一校验和与各数据区的第四校验和一致,则不更新所述存储器中的上次驾驶循环的各数据区的第一校验和。
本公开的实施例提供的技术方案,若从存储器中获取上次驾驶循环的各数据区的第一校验和,与基于预设校验和算法异步计算的本次驾驶循环中各数据区的第四校验和一致,则表明未出现恶意盗刷情况,存储器中的各数据区的第一校验和具有较高的可信度。因此,不需要更新存储器中的上次驾驶循环的各数据区的第一校验和,即直接将上次驾驶循环的各数据区的第一校验和作为本次驾驶循环的各数据区的第一校验和,以保证存储器中存储的校验和的准确度。
在一种可能的实现方式中,在基于预设校验和算法异步计算本次驾驶循环中各数据区的第四校验和之后,还包括:
若存在至少一个数据区的第一校验和与对应的第四校验和不一致,则将所述存储器中的上次驾驶循环中各数据区的第一校验和,更新为所述本次驾驶循环中各数据区的第四校验和。
本公开的实施例提供的技术方案,若存在至少一个数据区的第一校验和与对应的第四校验和不一致,则表明出现恶意盗刷情况,存储器中的各数据区的第一校验和具有较低的可信度。因此,需要将存储器中的上次驾驶循环中各数据区的第一校验和,更新为本次驾驶循环中各数据区的第四校验和,以提高存储器中存储的校验和的准确度。
在一种可能的实现方式中,在基于预设校验和算法异步计算本次驾驶循环中各数据区的第四校验和之前,还包括:
获取电子控制单元ECU中各处理核的负荷;
基于所述各处理核的负荷,确定最低负荷对应的目标处理核;
基于预设校验和算法异步计算本次驾驶循环中各数据区的第四校验和,包括:
控制所述目标处理核执行,基于预设校验和算法异步计算本次驾驶循环中各数据区的第四校验和。
本公开的实施例提供的技术方案,获取电子控制单元ECU中各处理核的负荷,从各处理核的负荷中确定最低负荷对应的目标处理核,并控制目标处理核执行,基于预设校验和算法异步计算本次驾驶循环中各数据区的第四校验和,从而使ECU保持较好的健康度。
根据本公开实施例的第二方面,提供一种数据校验装置,该装置包括:
第一获取模块,用于响应于驾驶循环开始指令,从设定区域指定位置获取刷写指示,所述刷写指示用于指示上次驾驶循环执行应用层逻辑计算流程后是否发生数据区刷写;
第二获取模块,用于若根据刷写指示确定未发生数据区刷写,则从存储器中获取上次驾驶循环的各数据区的第一校验和;
执行模块,用于基于所述各数据区的第一校验和,执行应用层逻辑计算流程。
在一种可能的实现方式中,在从设定区域指定位置获取刷写指示之后,第一获取模块还用于:
若根据刷写指示确定发生数据区刷写,则重新基于预设校验和算法计算本次驾驶循环中各数据区的校验和,并将刷写指示更新为未发生数据区刷写;
基于所述本次驾驶循环中各数据区的校验和,执行应用层逻辑计算流程。
在一种可能的实现方式中,在执行应用层逻辑计算流程之后,执行模块还用于,
确定发生数据区刷写时,将刷写指示更新为发生数据区刷写。
在一种可能的实现方式中,所述刷写指示通过设定区域的各数据区的第二校验和以及各数据区的第三校验和是否一致确定,执行模块用于:
在执行任一次驾驶循环的应用层逻辑计算流程之后,在下次驾驶循环开始之前,确定发生数据区刷写时,利用重新基于预设校验和算法计算的本次驾驶循环中各数据区的校验和,更新所述第三校验和。
在一种可能的实现方式中,第二获取模块用于:
若确定各数据区的第二校验和与对应的第三校验和一致,则确定未发生数据区刷写;
否则,确定发生数据区刷写。
在一种可能的实现方式中,第一获取模块用于:
重新基于预设校验和算法计算本次驾驶循环中各数据区的校验和,利用重新计算的校验和同时更新第二校验和及第三校验和。
在一种可能的实现方式中,在从存储器中获取上次驾驶循环的各数据区的第一校验和之后,第二后期模块还用于:
基于预设校验和算法异步计算本次驾驶循环中各数据区的第四校验和;
若各数据区的第一校验和与各数据区的第四校验和一致,则不更新所述存储器中的上次驾驶循环的各数据区的第一校验和。
在一种可能的实现方式中,在基于预设校验和算法异步计算本次驾驶循环中各数据区的第四校验和之后,第二获取模块还用于:
若存在至少一个数据区的第一校验和与对应的第四校验和不一致,则将所述存储器中的上次驾驶循环中各数据区的第一校验和,更新为所述本次驾驶循环中各数据区的第四校验和。
在一种可能的实现方式中,在基于预设校验和算法异步计算本次驾驶循环中各数据区的第四校验和之前,第二获取模块还用于:
获取电子控制单元ECU中各处理核的负荷;
基于所述各处理核的负荷,确定最低负荷对应的目标处理核;
第二获取模块用于:
控制所述目标处理核执行,基于预设校验和算法异步计算本次驾驶循环中各数据区的第四校验和。
根据本公开实施例的第三方面,提供一种设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器通过运行所述可执行指令以实现上述数据校验方法的步骤。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现上述数据校验方法的步骤。
附图说明
为了更清楚地说明本公开实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是根据一示例性实施例示出的一种数据校验方法的流程图;
图2是根据一示例性实施例示出的一种数据校验方法的具体流程图;
图3是根据一示例性实施例示出的一种设定区域存储的各数据区的第二校验和以及各数据区的第三校验和的示意图;
图4是根据一示例性实施例示出的一种设定区域存储的各数据区的第二校验和与对应的第三校验和一致的示意图;
图5是根据一示例性实施例示出的一种判断各数据区的校验和的可信度的方法的流程图;
图6是根据一示例性实施例示出的一种设定区域存储的存在数据区的第二校验和与对应的第三校验和不一致的示意图;
图7是根据一示例性实施例示出的另一种设定区域存储的存在数据区的第二校验和与对应的第三校验和不一致的示意图;
图8是根据一示例性实施例示出的一种数据校验装置的示意图;
图9是根据一示例性实施例示出的一种数据校验方法的电子设备示意图;
图10是根据一示例性实施例示出的一种数据校验方法的程序产品示意图。
具体实施方式
为了使本公开的目的、技术方案和优点更加清楚,下面将结合附图对本公开作进一步地详细描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本公开的保护范围。
下面对文中出现的一些词语进行解释:
1、本公开实施例中术语“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
2、本公开实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。
本公开实施例描述的应用场景是为了更加清楚的说明本公开实施例的技术方案,并不构成对于本公开实施例提供的技术方案的限定,本领域普通技术人员可知,随着新应用场景的出现,本公开实施例提供的技术方案对于类似的技术问题,同样适用。其中,在本公开的描述中,除非另有说明,“多个”的含义是两个或两个以上。
CRC是一种根据网络数据包或电脑文件等数据产生简短固定位数校验和的快速算法,主要用来检测或校核数据传输或者保存后可能出现的错误。
现有技术中,在一次驾驶循环开始时,ECU需要根据各数据区中的数据,利用CRC算法计算各数据区的校验和,并基于各数据区的校验和进行应用层逻辑的计算。由于每次驾驶循环都需要计算各数据区的校验和,且计算过程需要花费大量时间,从而导致用户体验感较差。
因此,为了解决上述问题,本公开提供了一种数据校验方法、装置、设备及存储介质,能够无需利用预设校验和算法计算本次驾驶循环的各数据区的校验码,节省了对应的计算时间,从而提高用户体验感。
首先,本公开实施例可以应用于ECU。本公开实施例中,作为一种可选的实施方式,ECU响应于驾驶循环开始指令,从设定区域指定位置获取刷写指示,所述刷写指示用于指示上次驾驶循环执行应用层逻辑计算流程后是否发生数据区刷写;若根据刷写指示确定未发生数据区刷写,则从存储器中获取上次驾驶循环的各数据区的第一校验和;基于所述各数据区的第一校验和,执行应用层逻辑计算流程。
在一些实施例中,下面通过具体的实施例对本公开提供的一种数据校验方法进行说明,如图1所示,包括:
步骤101,响应于驾驶循环开始指令,从设定区域指定位置获取刷写指示;
其中,上述刷写指示用于指示上次驾驶循环执行应用层逻辑计算流程后是否发生数据区刷写。上述刷写指示通过设定区域的各数据区的第二校验和以及各数据区的第三校验和是否一致确定。上述设定区域指定位置为在ECU中划分出1k(kB,千字节)的固定地址(例如0x8005500-0x8005900),该设定区域不会随着软件的更新,而被擦除。
其中,上述驾驶循环是指车辆完成点火、运转、熄火的完整过程。本公开可以根据ECU上电或者钥匙开关(T15)上电确定驾驶循环开始,T15是钥匙开关信号,表示ECU进入工作状态的指令。
步骤102,若根据刷写指示确定未发生数据区刷写,则从存储器中获取上次驾驶循环的各数据区的第一校验和;
其中,上述根据刷写指示确定未发生数据区刷写表示在上次驾驶循环中各数据区并未被刷写。本公开可以根据设定区域的各数据区的第二校验和以及各数据区的第三校验和是否一致来判断是否发生数据区刷写。
上述存储器可以为EEPROM(Electrically Erasable Programmable Read OnlyMemory,带电可擦可编程只读存储器),其是一种掉电后数据不丢失的存储芯片。上述存储器也可以为其他不易丢书数据的存储器。
步骤103,基于所述各数据区的第一校验和,执行应用层逻辑计算流程。
不同的应用场景对应不同的应用层逻辑计算流程。
例如,上述基于所述各数据区的第一校验,执行应用层逻辑计算流程,包括:基于所述各数据区的第一校验判断,执行异常判断流程;或者,基于所述各数据区的第一校验,执行主ECU和备用ECU一致性的判断流程。
本公开的实施例提供的技术方案,响应于驾驶循环开始指令,从设定区域指定位置获取刷写指示,根据刷写指示确定未发生数据区刷写,则表明上次驾驶循环各数据区与本次驾驶循环地各数据区相同。因此,可以基于从存储器中获取的上次驾驶循环的各数据区的第一校验和,执行应用层逻辑计算流程,不需要利用预设校验和算法计算本次驾驶循环的各数据区的校验码,节省了对应的计算时间,从而提高用户体验感。
下面对上述提供的数据校验方法的具体步骤进行详细说明,如图2所示,包括:
步骤201,响应于驾驶循环开始指令,从设定区域指定位置获取刷写指示。
其中,上述刷写指示用于指示上次驾驶循环执行应用层逻辑计算流程后是否发生数据区刷写。上述刷写指示通过设定区域的各数据区的第二校验和以及各数据区的第三校验和是否一致确定。
图3是根据一示例性实施例示出的一种设定区域存储的各数据区的第二校验和以及各数据区的第三校验和的示意图。如图3所示,在该ECU的设定区域保存n个数据区的第二校验和以及n个数据区的第三校验和,同一数据区的第二校验和的存储地址与对应的第三校验和的存储地址相邻。
步骤202,根据刷写指示确定未发生数据区刷写。
本公开可以通过以下方式根据刷写指示确定是否未发生数据区刷写:
若确定各数据区的第二校验和与对应的第三校验和一致,则确定未发生数据区刷写;
否则,确定发生数据区刷写。
例如,图4是根据一示例性实施例示出的一种设定区域存储的各数据区的第二校验和与对应的第三校验和一致的示意图。如图4所示,在该ECU的设定区域保存5个数据区的第二校验和以及5个数据区的第三校验和,5个数据区的第二校验和与对应的第三校验和均一致,因此,确定未发生数据区刷写,即本次驾驶循环的各数据区与上次驾驶循环的各数据区相同。
步骤203,从存储器中获取上次驾驶循环的各数据区的第一校验和。
在从存储器中获取上次驾驶循环的各数据区的第一校验和之后,本公开为了防止被恶意的篡改或者刷写,提供一种判断各数据区的校验和的可信度的方法。图5是根据一示例性实施例示出的一种判断各数据区的校验和的可信度的方法的流程图,如图5所示,包括:
步骤501,基于预设校验和算法异步计算本次驾驶循环中各数据区的第四校验和;
其中,上述预设校验和算法可以为CRC算法,也可以为其他校验和算法。
由于ECU是多核的控制器,因此,本公开在基于预设校验和算法异步计算本次驾驶循环中各数据区的第四校验和之前,还包括:
获取电子控制单元ECU中各处理核的负荷;
基于所述各处理核的负荷,确定最低负荷对应的目标处理核。
基于预设校验和算法异步计算本次驾驶循环中各数据区的第四校验和,包括:
控制所述目标处理核执行,基于预设校验和算法异步计算本次驾驶循环中各数据区的第四校验和。
具体地,在本次驾驶循环开始的设定时间段内,例如1000ms(毫秒),判断ECU各个处理核的负荷,确定最低负荷对应的目标处理核,控制目标处理核执行,基于预设校验和算法异步计算本次驾驶循环中各数据区的第四校验和,从而使ECU保持较好的健康度。
例如,ECU包括4个处理核,分别为处理核1、处理核2、处理核3和处理核4,处理核1的负荷为A1,处理核2的负荷为A2,处理核3的负荷为A3,处理核4的负荷为A4,若A1>A2>A3>A4,则处理核4为目标处理核,在处理核4中运行基于预设校验和算法异步计算本次驾驶循环中各数据区的第四校验和。
步骤502,确定各数据区的第一校验和与各数据区的第四校验和一致;
步骤503,不更新所述存储器中的上次驾驶循环的各数据区的第一校验和;
具体地,若各数据区的第一校验和与各数据区的第四校验和一致,则表明存储器中的上次驾驶循环的各数据区的第一校验和的可信度较高,因此,不需要更新所述存储器中的上次驾驶循环的各数据区的第一校验和,将上次驾驶循环的各数据区的第一校验和作为本次驾驶循环的各数据区的第一校验和。
步骤504,确定存在至少一个数据区的第三校验和与对应的第四校验和不一致;
步骤505,将所述存储器中的上次驾驶循环中各数据区的第一校验和,更新为所述本次驾驶循环中各数据区的第四校验和。
具体地,若存在至少一个数据区的第三校验和与对应的第四校验和不一致,则表明存储器中的上次驾驶循环的各数据区的第一校验和的可信度较低,即存在被恶意盗刷的情况。因此,将所述存储器中的上次驾驶循环中各数据区的第一校验和,更新为所述本次驾驶循环中各数据区的第四校验和。
上述步骤501-505可以与步骤204并行执行。
步骤204,基于所述各数据区的第一校验和,执行应用层逻辑计算流程。
步骤205,根据刷写指示确定发生数据区刷写。
具体地,若确定至少一个数据区的第二校验和与对应的第三校验和不一致,则确定发生数据区刷写。
例如,图6是根据一示例性实施例示出的一种设定区域存储的存在数据区的第二校验和与对应的第三校验和不一致的示意图。如图6所示,在该ECU的设定区域保存5个数据区的第二校验和以及5个数据区的第三校验和,数据区5的第二校验和与对应的第三校验和不一致,其他数据区的第二校验和与对应的第三校验和均一致。因此,确定发生数据区刷写,即本次驾驶循环的各数据区与上次驾驶循环的各数据区存在差异。
图7是根据一示例性实施例示出的另一种设定区域存储的存在数据区的第二校验和与对应的第三校验和不一致的示意图。如图7所示,在该ECU的设定区域保存5个数据区的第二校验和以及5个数据区的第三校验和,数据区4的第二校验和与对应的第三校验和不一致,数据区5的第二校验和与对应的第三校验和不一致,其他数据区的第二校验和与对应的第三校验和均一致。因此,确定发生数据区刷写,即本次驾驶循环的各数据区与上次驾驶循环的各数据区存在差异。
步骤206,重新基于预设校验和算法计算本次驾驶循环中各数据区的校验和,并将刷写指示更新为未发生数据区刷写。
上述基于预设校验和算法计算本次驾驶循环中各数据区的校验和的具体过程为现有技术,此处不再详细赘述。
可选地,上述重新基于预设校验和算法计算本次驾驶循环中各数据区的校验和,并将刷写指示更新为未发生数据区刷写,包括:
重新基于预设校验和算法计算本次驾驶循环中各数据区的校验和,利用重新计算的校验和同时更新第二校验和及第三校验和。
具体地,将本次驾驶循环中各数据区的校验和作为本次驾驶循环中各数据区的第二校验和并保存至设定区域指定位置;将本次驾驶循环中各数据区的校验和作为本次驾驶循环中各数据区的第三校验和并保存至设定区域指定位置。
步骤207,基于所述本次驾驶循环中各数据区的校验和,执行应用层逻辑计算流程。
在上述步骤204或者步骤207之后,本公开还包括:
确定发生数据区刷写时,将刷写指示更新为发生数据区刷写。
可选地,上述确定发生数据区刷写时,将刷写指示更新为发生数据区刷写,包括:
在执行任一次驾驶循环的应用层逻辑计算流程之后,在下次驾驶循环开始之前,确定发生数据区刷写时,利用重新基于预设校验和算法计算的本次驾驶循环中各数据区的校验和,更新所述第三校验和。
具体地,以本次驾驶循环为例,在执行本次驾驶循环的应用层逻辑计算流程之后,在下次驾驶循环开始之前,响应于用户触发的数据区刷写指令,获取本次驾驶循环中各数据区刷写前的校验和,将本次驾驶循环中各数据区刷写前的校验和作为本次驾驶循环中各数据区的第二校验和,并保存至设定区域指定位置;基于数据区刷写指令对各数据区进行刷写;基于预设校验和算法计算本次驾驶循环中各数据区刷写后的校验和,将本次驾驶循环的各数据区刷写后的校验和作为本次驾驶循环中各数据区的第三校验和,并保存至设定区域指定位置。
例如,在每次更新完程序或者数据时,即确定发生数据区刷写时,在擦除各数据区之前,先将本次驾驶循环中各数据区刷写前的校验和作为本次驾驶循环中各数据区的第二校验和,并保存至设定区域指定位置。然后,基于CRC算法计算本次驾驶循环中各数据区刷写后的校验和。最后,将本次驾驶循环的各数据区刷写后的校验和作为本次驾驶循环中各数据区的第三校验和,并保存至设定区域指定位置。
在一些实施例中,基于相同的发明构思,本公开实施例还提供一种数据校验装置,由于该装置即是本公开实施例中的方法中的装置,并且该装置解决问题的原理与该方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。
如图8所示,上述装置包括以下模块:
第一获取模块801,用于响应于驾驶循环开始指令,从设定区域指定位置获取刷写指示,所述刷写指示用于指示上次驾驶循环执行应用层逻辑计算流程后是否发生数据区刷写;
第二获取模块802,用于若根据刷写指示确定未发生数据区刷写,则从存储器中获取上次驾驶循环的各数据区的第一校验和;
执行模块803,用于基于所述各数据区的第一校验和,执行应用层逻辑计算流程。
作为一种可选的实施方式,在从设定区域指定位置获取刷写指示之后,第一获取模块801还用于:
若根据刷写指示确定发生数据区刷写,则重新基于预设校验和算法计算本次驾驶循环中各数据区的校验和,并将刷写指示更新为未发生数据区刷写;
基于所述本次驾驶循环中各数据区的校验和,执行应用层逻辑计算流程。
作为一种可选的实施方式,在执行应用层逻辑计算流程之后,执行模块803还用于,
确定发生数据区刷写时,将刷写指示更新为发生数据区刷写。
作为一种可选的实施方式,所述刷写指示通过设定区域的各数据区的第二校验和以及各数据区的第三校验和是否一致确定,执行模块803用于:
在执行任一次驾驶循环的应用层逻辑计算流程之后,在下次驾驶循环开始之前,确定发生数据区刷写时,利用重新基于预设校验和算法计算的本次驾驶循环中各数据区的校验和,更新所述第三校验和。
作为一种可选的实施方式,第二获取模块802用于:
若确定各数据区的第二校验和与对应的第三校验和一致,则确定未发生数据区刷写;
否则,确定发生数据区刷写。
作为一种可选的实施方式,第一获取模块801用于:
重新基于预设校验和算法计算本次驾驶循环中各数据区的校验和,利用重新计算的校验和同时更新第二校验和及第三校验和。
作为一种可选的实施方式,在从存储器中获取上次驾驶循环的各数据区的第一校验和之后,第二获取模块802还用于:
基于预设校验和算法异步计算本次驾驶循环中各数据区的第四校验和;
若各数据区的第一校验和与各数据区的第四校验和一致,则不更新所述存储器中的上次驾驶循环的各数据区的第一校验和。
作为一种可选的实施方式,在基于预设校验和算法异步计算本次驾驶循环中各数据区的第四校验和之后,第二获取模块802还用于:
若存在至少一个数据区的第一校验和与对应的第四校验和不一致,则将所述存储器中的上次驾驶循环中各数据区的第一校验和,更新为所述本次驾驶循环中各数据区的第四校验和。
作为一种可选的实施方式,在基于预设校验和算法异步计算本次驾驶循环中各数据区的第四校验和之前,第二获取模块802还用于:
获取电子控制单元ECU中各处理核的负荷;
基于所述各处理核的负荷,确定最低负荷对应的目标处理核;
第二获取模块802用于:
控制所述目标处理核执行,基于预设校验和算法异步计算本次驾驶循环中各数据区的第四校验和。
在一些实施例中,基于相同的发明构思,本公开实施例中还提供了一种数据校验设备,该设备可以实现前文论述的数据校验功能,请参考图9,该设备包括处理器901和存储器902,其中所述存储器902用于存储程序指令;
所述处理器901调用所述存储器中存储的程序指令,通过运行所述程序指令以实现:
响应于驾驶循环开始指令,从设定区域指定位置获取刷写指示,所述刷写指示用于指示上次驾驶循环执行应用层逻辑计算流程后是否发生数据区刷写;
若根据刷写指示确定未发生数据区刷写,则从存储器中获取上次驾驶循环的各数据区的第一校验和;
基于所述各数据区的第一校验和,执行应用层逻辑计算流程。
作为一种可选的实施方式,在从设定区域指定位置获取刷写指示之后,所述处理器901还用于执行:
若根据刷写指示确定发生数据区刷写,则重新基于预设校验和算法计算本次驾驶循环中各数据区的校验和,并将刷写指示更新为未发生数据区刷写;
基于所述本次驾驶循环中各数据区的校验和,执行应用层逻辑计算流程。
作为一种可选的实施方式,在执行应用层逻辑计算流程之后,所述处理器901还用于执行,
确定发生数据区刷写时,将刷写指示更新为发生数据区刷写。
作为一种可选的实施方式,所述刷写指示通过设定区域的各数据区的第二校验和以及各数据区的第三校验和是否一致确定,确定发生数据区刷写时,将刷写指示更新为发生数据区刷写,包括:
在执行任一次驾驶循环的应用层逻辑计算流程之后,在下次驾驶循环开始之前,确定发生数据区刷写时,利用重新基于预设校验和算法计算的本次驾驶循环中各数据区的校验和,更新所述第三校验和。
作为一种可选的实施方式,根据刷写指示确定是否未发生数据区刷写,包括:
若确定各数据区的第二校验和与对应的第三校验和一致,则确定未发生数据区刷写;
否则,确定发生数据区刷写。
作为一种可选的实施方式,重新基于预设校验和算法计算本次驾驶循环中各数据区的校验和,并将刷写指示更新为未发生数据区刷写,包括:
重新基于预设校验和算法计算本次驾驶循环中各数据区的校验和,利用重新计算的校验和同时更新第二校验和及第三校验和。
作为一种可选的实施方式,在从存储器中获取上次驾驶循环的各数据区的第一校验和之后,所述处理器901还用于执行:
基于预设校验和算法异步计算本次驾驶循环中各数据区的第四校验和;
若各数据区的第一校验和与各数据区的第四校验和一致,则不更新所述存储器中的上次驾驶循环的各数据区的第一校验和。
作为一种可选的实施方式,在基于预设校验和算法异步计算本次驾驶循环中各数据区的第四校验和之后,所述处理器901还用于执行:
若存在至少一个数据区的第一校验和与对应的第四校验和不一致,则将所述存储器中的上次驾驶循环中各数据区的第一校验和,更新为所述本次驾驶循环中各数据区的第四校验和。
作为一种可选的实施方式,在基于预设校验和算法异步计算本次驾驶循环中各数据区的第四校验和之前,所述处理器901还用于执行:
获取电子控制单元ECU中各处理核的负荷;
基于所述各处理核的负荷,确定最低负荷对应的目标处理核;
基于预设校验和算法异步计算本次驾驶循环中各数据区的第四校验和,包括:
控制所述目标处理核执行,基于预设校验和算法异步计算本次驾驶循环中各数据区的第四校验和。
在一些可能的实施方式中,本公开的各个方面还可以实现为一种程序产品的形式,如图10所示,该计算机程序产品100包括计算机程序代码,当该计算机程序代码在计算机上运行时,使得计算机执行如前文论述任一的数据校验方法。由于上述计算机程序产品解决问题的原理与数据校验方法相似,因此上述计算机程序产品的实施可以参见数据校验方法的实施,重复之处不再赘述。
本领域内的技术人员应明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的设备。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令设备的制造品,该指令设备实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (12)
1.一种数据校验方法,其特征在于,该方法包括:
响应于驾驶循环开始指令,从设定区域指定位置获取刷写指示,所述刷写指示用于指示上次驾驶循环执行应用层逻辑计算流程后是否发生数据区刷写;
若根据刷写指示确定未发生数据区刷写,则从存储器中获取上次驾驶循环的各数据区的第一校验和;
基于所述各数据区的第一校验和,执行应用层逻辑计算流程。
2.根据权利要求1所述的方法,其特征在于,在从设定区域指定位置获取刷写指示之后,还包括:
若根据刷写指示确定发生数据区刷写,则重新基于预设校验和算法计算本次驾驶循环中各数据区的校验和,并将刷写指示更新为未发生数据区刷写;
基于所述本次驾驶循环中各数据区的校验和,执行应用层逻辑计算流程。
3.根据权利要求1所述的方法,其特征在于,在执行应用层逻辑计算流程之后,还包括,
确定发生数据区刷写时,将刷写指示更新为发生数据区刷写。
4.根据权利要求1~3任一所述的方法,其特征在于,所述刷写指示通过设定区域的各数据区的第二校验和以及各数据区的第三校验和是否一致确定,确定发生数据区刷写时,将刷写指示更新为发生数据区刷写,包括:
在执行任一次驾驶循环的应用层逻辑计算流程之后,在下次驾驶循环开始之前,确定发生数据区刷写时,利用重新基于预设校验和算法计算的本次驾驶循环中各数据区的校验和,更新所述第三校验和。
5.根据权利要求4所述的方法,其特征在于,根据刷写指示确定是否未发生数据区刷写,包括:
若确定各数据区的第二校验和与对应的第三校验和一致,则确定未发生数据区刷写;
否则,确定发生数据区刷写。
6.根据权利要求4所述的方法,其特征在于,重新基于预设校验和算法计算本次驾驶循环中各数据区的校验和,并将刷写指示更新为未发生数据区刷写,包括:
重新基于预设校验和算法计算本次驾驶循环中各数据区的校验和,利用重新计算的校验和同时更新第二校验和及第三校验和。
7.根据权利要求1所述的方法,其特征在于,在从存储器中获取上次驾驶循环的各数据区的第一校验和之后,还包括:
基于预设校验和算法异步计算本次驾驶循环中各数据区的第四校验和;
若各数据区的第一校验和与各数据区的第四校验和一致,则不更新所述存储器中的上次驾驶循环的各数据区的第一校验和。
8.根据权利要求7所述的方法,其特征在于,在基于预设校验和算法异步计算本次驾驶循环中各数据区的第四校验和之后,还包括:
若存在至少一个数据区的第一校验和与对应的第四校验和不一致,则将所述存储器中的上次驾驶循环中各数据区的第一校验和,更新为所述本次驾驶循环中各数据区的第四校验和。
9.根据权利要求7所述的方法,其特征在于,在基于预设校验和算法异步计算本次驾驶循环中各数据区的第四校验和之前,还包括:
获取电子控制单元ECU中各处理核的负荷;
基于所述各处理核的负荷,确定最低负荷对应的目标处理核;
基于预设校验和算法异步计算本次驾驶循环中各数据区的第四校验和,包括:
控制所述目标处理核执行,基于预设校验和算法异步计算本次驾驶循环中各数据区的第四校验和。
10.一种数据校验装置,其特征在于,该装置包括:
第一获取模块,用于响应于驾驶循环开始指令,从设定区域指定位置获取刷写指示,所述刷写指示用于指示上次驾驶循环执行应用层逻辑计算流程后是否发生数据区刷写;
第二获取模块,用于若根据刷写指示确定未发生数据区刷写,则从存储器中获取上次驾驶循环的各数据区的第一校验和;
执行模块,用于基于所述各数据区的第一校验和,执行应用层逻辑计算流程。
11.一种设备,其特征在于,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器通过运行所述可执行指令以实现权利要求1至9任一项所述方法的步骤。
12.一种计算机可读写存储介质,其上存储有计算机指令,其特征在于,该指令被处理器执行时实现权利要求1至9任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311581728.3A CN117520044A (zh) | 2023-11-24 | 2023-11-24 | 一种数据校验方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311581728.3A CN117520044A (zh) | 2023-11-24 | 2023-11-24 | 一种数据校验方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117520044A true CN117520044A (zh) | 2024-02-06 |
Family
ID=89756492
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311581728.3A Pending CN117520044A (zh) | 2023-11-24 | 2023-11-24 | 一种数据校验方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117520044A (zh) |
-
2023
- 2023-11-24 CN CN202311581728.3A patent/CN117520044A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110442473B (zh) | 一种非易失性数据存储方法、装置、电子设备及介质 | |
CN110930131A (zh) | 一种车辆维修方法、装置、设备及介质 | |
CN110069360B (zh) | 一种电机控制器数据的存储、读取方法及装置 | |
CN114385421A (zh) | 数据存储方法、装置、电子设备及存储介质 | |
CN111736873B (zh) | 电子控制单元的程序更新方法、装置、设备和存储介质 | |
US20160034226A1 (en) | Data storage device, method of storing data, and on-vehicle control apparatus | |
CN113341924A (zh) | 一种ecu下电方法、装置、设备及存储介质 | |
CN110704236B (zh) | 芯片flash数据的在线校验方法及计算机存储介质 | |
JP2009271737A (ja) | 情報処理装置 | |
US20190095193A1 (en) | System version upgrading method and apparatus | |
CN112052032B (zh) | 电子控制单元的刷写方法及装置 | |
CN113220319A (zh) | 一种数据更新方法、装置及车辆 | |
CN117520044A (zh) | 一种数据校验方法、装置、设备及存储介质 | |
CN112835601A (zh) | 一种固件更新方法、装置、设备及存储介质 | |
CN104699574B (zh) | 一种建立处理器Cache检查点的方法、装置及系统 | |
JP2014056381A (ja) | 車両の電子制御装置 | |
US20130055017A1 (en) | Device and method for restoring information in a main storage unit | |
EP3540533B1 (en) | Controller and data storage method | |
CN110083393B (zh) | 快闪存储器和植入式医疗设备 | |
CN114035831A (zh) | 一种cpld升级方法、系统及计算机可读存储介质 | |
CN113672258A (zh) | 车辆的系统升级方法、装置、计算机设备和存储介质 | |
CN108241578B (zh) | 汽车电控单元软件兼容性检查方法及装置 | |
US9773562B2 (en) | Storage apparatus, flash memory control apparatus, and program | |
CN112099987A (zh) | 一种数据管理方法、装置、设备及存储介质 | |
CN111580844B (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 |