CN113296682A - 整车控制器的数据读取和写入方法 - Google Patents
整车控制器的数据读取和写入方法 Download PDFInfo
- Publication number
- CN113296682A CN113296682A CN202010113565.6A CN202010113565A CN113296682A CN 113296682 A CN113296682 A CN 113296682A CN 202010113565 A CN202010113565 A CN 202010113565A CN 113296682 A CN113296682 A CN 113296682A
- Authority
- CN
- China
- Prior art keywords
- data
- check
- pages
- reading
- target row
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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
-
- 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/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
- G06F11/1056—Updating check bits on partial write, i.e. read/modify/write
-
- 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/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- 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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- 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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开了整车控制器的数据读取和写入方法,涉及整车控制领域。数据读取方法包括:从n个数据页中读取出目标行的n组数据,并从n个检验页中读取出目标行的n个校验码,以及每个校验码对应的预存校验值;根据n个校验码计算对应的n个校验值;当n组数据中存在至少两组相同的数据,且n个校验值分别与对应的预存校验值相同时,则数据读取成功,将相同的数据作为目标行的读出数据。本发明适用于整车控制器的关键数据保护,不仅增加数据的可靠性,同时增加了数据的可恢复性,能够保护数据的完整性,从而能够防止大数据量的情况下存储器操作时间长而导致周期超时或者操作系统挂起超时的情况发生。
Description
技术领域
本发明涉及整车控制领域,尤其涉及整车控制器的数据读取和写入方法。
背景技术
在整车控制器开发过程中,控制器在运行或者下电存储EEPROM的时候,存在EEPROM存储失败或错误的情况,导致这种情况发生的原因是多方面的,例如,EEPROM某个存储单元失效,或由于存储数据量较大引起调度周期混乱,或由于读写校验故障导致存储的EEPROM数据失效等。这会直接导致某些关键变量读取数据的失效,例如bms的累积充放电安时容量、soc和续驶里程等,对整车安全及用户体验的影响很大。因此,需要建立有效的容错机制,防止各种异常状态下的电动车整车控制器关键数据丢失。
目前,常见的数据保护方式,大多采用crc校验码的方式对数据进行正确性判断,然而,在大数据量的情况下,EEPROM操作时间长可能导致周期超时或者操作系统挂起超时,可见这种方式对数据的保护程度不够,且数据的恢复能力有限。
发明内容
本发明所要解决的技术问题是针对现有技术的不足,提供一种整车控制器的数据读取方法和写入方法,以及存储介质和车辆。
本发明解决上述技术问题的技术方案如下:
一种整车控制器的数据读取方法,控制器从存储器中读取数据,所述存储器划分为n个数据页和n个校验页,每个校验页用于存储对应数据页中每行数据的校验码,其中,所述n个数据页包括1个主数据页和n-1个备份数据页,所述n个校验页包括1个主校验页和n-1个备份校验页,n≥3,所述数据读取方法包括:
从所述n个数据页中读取出目标行的n组数据,并从所述n个检验页中读取出所述目标行的n个校验码,以及每个校验码对应的预存校验值;
根据所述n个校验码计算对应的n个校验值;
当所述n组数据中存在至少两组相同的数据,且所述n个校验值分别与对应的所述预存校验值相同时,则数据读取成功,将相同的数据作为所述目标行的读出数据。
本发明的有益效果是:本发明提供的数据读取方法,适用于整车控制器的关键数据保护,在读取出目标行的数据后,通过多个备份数据页的数据对数据进行判断,并通过校验码进一步判断,不仅增加数据的可靠性,同时增加了数据的可恢复性,能够保护数据的完整性,从而能够防止大数据量的情况下存储器操作时间长而导致周期超时或者操作系统挂起超时的情况发生。
本发明解决上述技术问题的另一种技术方案如下:
一种整车控制器的数据写入方法,控制器向存储器中写入数据,所述存储器划分为n个数据页和n个校验页,每个校验页用于存储对应数据页中每行数据的校验码,其中,所述n个数据页包括1个主数据页和n-1个备份数据页,所述n个校验页包括1个主校验页和n-1个备份校验页,n≥3,所述数据存储方法包括:
从所述n个数据页中读取出目标行的n组数据,当所述n组数据中存在至少一组与待写入数据不同的数据时,将所述待写入数据分别写入所述n个数据页的目标行;
从所述n个检验页中读取出所述目标行的n个校验码,当所述n个校验码中存在至少一个与待写入校验码不同的校验码时,将所述待写入校验码分别写入所述n个校验页的目标行。
本发明提供的数据写入方法,适用于整车控制器的关键数据保护,通过将数据分别写入主数据页和多个备份数据页,并将校验码分别写入主校验页和多个备份校验页,不仅增加数据的可靠性,同时增加了数据的可恢复性,能够保护数据的完整性,从而能够防止大数据量的情况下存储器操作时间长而导致周期超时或者操作系统挂起超时的情况发生。
本发明解决上述技术问题的另一种技术方案如下:
一种存储介质,所述存储介质中存储有指令,当计算机读取所述指令时,使所述计算机执行如上述技术方案所述的整车控制器的数据读取方法,或执行如上述技术方案所述的整车控制器的数据写入方法。
本发明解决上述技术问题的另一种技术方案如下:
一种车辆,所述车辆的控制器使用如上述技术方案所述的整车控制器的数据读取方法从存储器中读取数据,或,使用如上述技术方案所述的整车控制器的数据写入方法向存储器中写入数据。
本发明附加的方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明实践了解到。
附图说明
图1为本发明整车控制器的数据读取方法的实施例提供的存储器地址规划结构示意图;
图2为本发明整车控制器的数据读取方法的实施例提供的流程示意图;
图3为本发明整车控制器的数据写入方法的实施例提供的流程示意图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实施例只用于解释本发明,并非用于限定本发明的范围。
需要说明的是,电动汽车中通常使用EEPROM存储关键数据,低端车型中,通常使用软件代码保护EEPROM数据,然而其逻辑比较有限,基本不做额外的保护。当前主流的EEPROM数据保护方式,大多采用crc校验码的方式对数据进行正确性判断,对数据的保护性不强,不适用于关键数据的保护。下面以EEPROM为例,进行说明。
首先,对EEPROM的地址规划方式进行说明,如图1所示,以三个数据区和三个校验区为例,给出了一种示例性的EEPROM地址规划结构示意图。
将EEPROM的地址空间划分成128*128大小相同的区域,其中,第一块为主数据区,另外两块为备份区。备份区后为三块存放校验码的1*128的区域,第一块为主校验区,另外;两块为备份区,分别对应存储三块数据区每行的校验码。
应理解,也可以根据实际需求将地址空间划分成256*256大小相同的区域,将数据区划分为四块,将第一块作为主数据区,另外三块作为备份区,校验区同理,不再赘述。
具体地,图1中,数据页A为主数据页,数据页B、C为备份数据页,校验页a为主校验页,校验页b、c为备份校验页。数据页A中存储有128行和128列数据,每行数据都有一个校验码,数据页A共有128个校验码,校验页a中存储有这128个校验码,每行数据和每行校验码一一对应。数据页B中存储有128行和128列数据,每行数据都有一个校验码,数据页B共有128个校验码,校验页b中存储有这128个校验码,每行数据和每行校验码一一对应。数据页C和校验页c的对应关系同理,不再赘述。
例如,数据页A的A1行存储有一组数据,共128列,那么在检验页a的a1行,存储有A1的校验码。数据页B的B1行和数据页C的C1行同样存储有该组数据,是对数据页A的备份,校验页b的b1行和校验页c的c1行同样存储有该校验码,是对校验页a的备份。
这种多数据页的地址空间划分方式,有利于增加数据的可靠性,同时增加了数据的可恢复性。对应上述的地址规划,本发明采用全新的存取机制来保护数据的完整性,同时为了防止大数据量EEPROM占用系统资源过多,采用异步存取的方式,保证了其他任务的实时性,同时兼顾安全性和使数据的存取操作在可接受的时间响应范围内。下面基于以上地址规划方式,对本发明提供的数据读写方法进行进一步说明。
如图2所示,为本发明整车控制器的数据读取方法的实施例提供的流程示意图,结合图1,以3个数据页和3个校验页为例进行说明,4个数据页、5个数据页、……等等同理,不再一一赘述。控制器从EEPROM中读取数据,EEPROM划分为3个数据页和3个校验页,每个校验页用于存储对应数据页中每行数据的校验码,其中,3个数据页包括1个主数据页和2个备份数据页,3个校验页包括1个主校验页和2个备份校验页,数据读取方法包括:
S11,从3个数据页中读取出目标行的3组数据,并从3个检验页中读取出目标行的3个校验码,以及每个校验码对应的预存校验值;
需要说明的是,从3个数据页中读取出目标行的3组数据中,从主数据页读出的数据为主数据,从备份数据页读出的数据为备份数据,在正常情况下,主数据与备份数据应该是相同的。3组数据中,包含1组主数据,另外2组数据为备份数据,校验码同理,不再赘述。
应理解,数据可以为车辆运行过程中的关键数据,例如,bms的累积充放电安时容量、SOC和续驶里程等。
可选地,校验码可以为码距、奇偶检验码、海明校验码或crc校验码等。
优选地,校验码可以为crc校验码。CRC即循环冗余校验码,是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。
应理解,预存校验值是在读取之前向数据页中写入数据时,根据校验码生成校验值。
S12,根据3个校验码计算对应的3个校验值;
应理解,本领域技术人员可以根据实际需求选择具体的校验算法,例如,当选择crc校验码时,可以选择CRC-4/ITU、CRC-5/EPC或CRC-6/ITU等检验算法,在此不再赘述。
S13,当3组数据中存在至少2组相同的数据,且3个校验值分别与对应的预存校验值相同时,则数据读取成功,将相同的数据作为目标行的读出数据。
需要说明的是,当划分成4个数据页和4个校验页时,会读出4组数据和4个对应的校验码,那么也可以设置成当存在3组相同的数据,且4个校验值分别与对应的预存校验值相同时,则数据读取成功。
应理解,为进一步提高数据的可靠性,也可以当3组数据中存在3组相同的数据,且3个校验值分别与对应的预存校验值相同时,则数据读取成功。
例如,假设目标行为第1行,为便于说明,假设数据仅有2列,共有3个数据页,那么读出的数据共有3组,假设分别是[256,111]、[256,111]和[25,111],那么经过比较发现,第一组数据和第二组数据相同,均是[256,111],而第三组中第1列的数据出现错误,可能是数据丢失或写入时出现错误,符合第一个条件。
假设这3组数据的校验码均为27,预存校验值均为1010,那么经过计算,发现根据校验码计算得到的校验值也均为1010,3组数据的校验码的校验值均与预存校验值相同,符合第二个条件。
那么可以将[256,111]作为成功读取出的数据。
又例如,假设读出的3组数据分别是[26,111]、[256,11]和[25,111],那么经过比较发现,3组数据均各自不同,没有相同的两组数据,那么即使每个校验值分别与对应的预存校验值相同,也读取失败。
又例如,假设3组数据的校验码为27、27和28,预存校验值均为1010,那么根据这3组数据的校验码计算得到的校验值分别为1010、1010和1011,那么经过比较发现,前两组数据的校验码的校验值与预存校验值相同,第三组数据的校验码的校验值与预存校验值不同,那么即使3组数据相同,也读取失败。
需要说明的是,当读取完目标行的数据后,就可以继续按上述方法读取下一行的数据了,可以从第1行到最后1行滚动读取。
本实施例提供的数据读取方法,适用于整车控制器的关键数据保护,在读取出目标行的数据后,通过多个备份数据页的数据对数据进行判断,并通过校验码进一步判断,不仅增加数据的可靠性,同时增加了数据的可恢复性,能够保护数据的完整性,从而能够防止大数据量的情况下存储器操作时间长而导致周期超时或者操作系统挂起超时的情况发生。
可选地,在一些实施例中,还包括:
当3组数据中不存在至少两组相同的数据,或存在至少一个校验值与对应的预存校验值不相同时,则:
当第i个数据页的目标行的校验值与对应的预存校验值相同时,将第i个数据页的目标行的数据作为目标行的读出数据;
当3个校验值与对应的预存校验值均不同时,将3组数据逐字节进行数据恢复。
例如,假设目标行为第1行,为便于说明,假设数据仅有2列,共有3个数据页,那么读出的数据共有3组,假设分别是[26,111]、[256,11]和[25,111],那么经过比较发现,3组数据均各自不同,没有相同的两组数据,假设这3组数据的校验码分别为25、26和27,预存校验值均为1010,那么根据这3组数据的校验码计算得到的校验值分别为1001、1010和1011,经过比较发现第2组数据的校验码能够匹配,那么就将第2组数据[256,11]作为读出数据。
本实施例中当数据读取时出现错误时,当无法通过数据的比对确定读出数据时,通过根据校验值选择可靠的数据作为读出数据,提高了数据保护的安全性,当校验值也不匹配时,逐字节对数据进行恢复出来,提高了数据存储的可靠度,并且能够自动地恢复数据,能够最大限度的保护关键数据。
可选地,在一些实施例中,将3组数据逐字节进行数据恢复,具体包括:
将3组数据的每个字节逐一进行对比,当至少两组数据存在相同字节时,将其余组数据对应位置的字节替换为相同字节;
根据恢复后的数据对应的检验码计算第一校验值,当第一校验值与任意一个预存校验值相同时,则数据恢复成功。
例如,假设读出的3组数据分别是[26,111]、[256,11]和[25,111],那么逐字节进行对比,首先是第一个字节,三组数据都是“2”,那么无需恢复;第二个字节,第一组数据是“6”,第二组数据是“5”,第三组数据是“5”,那么将第一组数据的“6”替换成“5”;第三个字节,第一组数据为空,第二组数据是“6”,第三组数据为空,那么将第二组数据的“6”替换成空值。依次类推,完成数据恢复。
假设第一组数据进行了数据恢复,对应的校验码为27,预存校验值为1010,那么经过计算,根据校验码27计算得到的第一校验值为1010,与预存校验值相同,数据恢复成功。
由于在实际存储过程中,在所有的错误类型中,通常缺少一个字节,或者一个字节出错的情况较为常见,因此本实施例中通过逐字节对比的方式恢复数据,能够解决数据读写错误的问题,降低读取失败出现的次数,从而提高数据的可用性。
可选地,在一些实施例中,从3个数据页中读取出目标行的3组数据之前,还包括:
从主数据页中读取出目标行的状态标志位,根据目标行的状态标志位判断是否读取目标行的数据。
例如,上一轮已经将第1行数据读取成功,那么会将第一行对应的状态标志位置为Valid,下一轮再次读到第1行的数据时,发现是valid的话,就不再进行读取。
状态标志位还可以包括Write、Error等状态,这些状态表示该行读过了或者正在写或者有故障等,这时,就不会对该行进行读操作,会继续转向下一行的判断。当本行的状态标志位为not Valid,表示没有读过或者距上次读取,数值已经改变,那么则会重新进行读取,进行后续读操作。
本实施例中,通过为每行数据添加状态标志位,能够便于数据管理,避免重复读取错误的数据,导致读取速度降低,或重复读取相同的数据。
可选地,在一些实施例中,数据读取成功,将相同的数据作为目标行的读出数据之后,还包括:
将目标行的状态标志位标注为已读取。
可以理解,在一些实施例中,可以包含如上述各实施例中的部分或全部可选实施方式。
如图3所示,为本发明整车控制器的数据写入方法的实施例提供的流程示意图,结合图1,以3个数据页和3个校验页为例进行说明,4个数据页、5个数据页、……等等同理,不再一一赘述。控制器向EEPROM中写入数据,EEPROM划分为3个数据页和3个校验页,每个校验页用于存储对应数据页中每行数据的校验码,其中,3个数据页包括1个主数据页和2个备份数据页,3个校验页包括1个主校验页和2个备份校验页,数据存储方法包括:
S21,从3个数据页中读取出目标行的3组数据,当3组数据中存在至少一组与待写入数据不同的数据时,将待写入数据分别写入3个数据页的目标行;
S22,从3个检验页中读取出目标行的3个校验码,当3个校验码中存在至少一个与待写入校验码不同的校验码时,将待写入校验码分别写入3个校验页的目标行。
需要说明的是,从3个数据页中读取出目标行的3组数据中,从主数据页读出的数据为主数据,从备份数据页读出的数据为备份数据,在正常情况下,主数据与备份数据应该是相同的。校验码同理,不再赘述。
应理解,数据可以为车辆运行过程中的关键数据,例如,bms的累积充放电安时容量、SOC和续驶里程等。
可选地,校验码可以为码距、奇偶检验码、海明校验码或crc校验码等。
优选地,校验码可以为crc校验码。CRC即循环冗余校验码,是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。
应理解,在读出校验码后,计算校验码的校验值,将校验值也对应地写入存储器中,作为预存校验值。
应理解,本领域技术人员可以根据实际需求选择具体的校验算法,例如,当选择crc校验码时,可以选择CRC-4/ITU、CRC-5/EPC或CRC-6/ITU等检验算法,在此不再赘述。
需要说明的是,只有目标行的数据与待写入数据不同,才需要写入,如果从目标行读出的3组数据均与待写入数据相同,那么原则上无需再写入数据。
例如,假设需要向第5行写入数据,读出的3组数据分别是[25,71]、[25,71]和[25,71],如果待写入的数据是[25,71],那么经过比较发现,待写入数据与读出的3组数据均相同,那么无需再写入。如果待写入的数据是[25,72],那么经过比较发现,待写入的数据与3组数据不同,那么就将[25,72]写入主数据页的第5行,同时通过其余的2个数据页进行备份。
检验码的写入过程同理,不再赘述。
本实施例提供的数据写入方法,适用于整车控制器的关键数据保护,通过将数据分别写入主数据页和多个备份数据页,并将校验码分别写入主校验页和多个备份校验页,不仅增加数据的可靠性,同时增加了数据的可恢复性,能够保护数据的完整性,从而能够防止大数据量的情况下存储器操作时间长而导致周期超时或者操作系统挂起超时的情况发生。
可选地,在一些实施例中,还包括:
将新写入目标行的数据进行回读,并将新写入目标行的校验码进行回读;
将回读数据与待写入数据进行逐字节比对,并将回读校验码与待写入校验码进行逐字节比对,当回读数据与待写入数据相同,且回读校验码与待写入校验码相同时,则数据写入成功。
本实施例中,通过写入的数据和校验码进行回读,能够进一步提高数据的安全性,防止出现数据写入错误。
可选地,在一些实施例中,还包括:
当无法从3个数据页中读取出目标行的3组数据时,将目标行的状态标志位标注为写入失败;
或,当无法从3个检验页中读取出目标行的3个校验码时,将目标行的状态标志位标注为写入失败。
例如,假设存储器一直反馈繁忙,那么我们就会将这一行的状态标志位置为Write_error,即本行写操作失败,等待下次在滚动到本行后,再尝试去写。
通过对数据行进行状态标志位的标注,能够避免重复读取错误的数据,提高数据提取的效率。
可以理解,在一些实施例中,可以包含如上述各实施例中的部分或全部可选实施方式。
在本发明的其他实施例中,还提供一种存储介质,该存储介质中存储有指令,当计算机读取指令时,使计算机执行如上述任意实施例所述的整车控制器的数据读取方法,或执行如上述任意实施例所述的整车控制器的数据写入方法。
在本发明的其他实施例中,还提供一种车辆,该车辆的控制器使用如上述任意实施例所上述述的整车控制器的数据读取方法从存储器中读取数据,或,使用如上述任意实施例所上述述的整车控制器的数据写入方法向存储器中写入数据。
读者应理解,在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的方法实施例仅仅是示意性的,例如,步骤的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个步骤可以结合或者可以集成到另一个步骤,或一些特征可以忽略,或不执行。
上述方法如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种整车控制器的数据读取方法,其特征在于,控制器从存储器中读取数据,所述存储器划分为n个数据页和n个校验页,每个校验页用于存储对应数据页中每行数据的校验码,其中,所述n个数据页包括1个主数据页和n-1个备份数据页,所述n个校验页包括1个主校验页和n-1个备份校验页,n≥3,所述数据读取方法包括:
从所述n个数据页中读取出目标行的n组数据,并从所述n个检验页中读取出所述目标行的n个校验码,以及每个校验码对应的预存校验值;
根据所述n个校验码计算对应的n个校验值;
当所述n组数据中存在至少两组相同的数据,且所述n个校验值分别与对应的所述预存校验值相同时,则数据读取成功,将相同的数据作为所述目标行的读出数据。
2.根据权利要求1所述的整车控制器的数据读取方法,其特征在于,还包括:
当所述n组数据中不存在至少两组相同的数据,或存在至少一个校验值与对应的所述预存校验值不相同时,则:
当第i个数据页的目标行的校验值与对应的所述预存校验值相同时,将第i个数据页的目标行的数据作为所述目标行的读出数据;
当所述n个校验值与对应的所述预存校验值均不同时,将所述n组数据逐字节进行数据恢复。
3.根据权利要求2所述的整车控制器的数据读取方法,其特征在于,将所述n组数据逐字节进行数据恢复,具体包括:
将所述n组数据的每个字节逐一进行对比,当至少两组数据存在相同字节时,将其余组数据对应位置的字节替换为所述相同字节;
根据恢复后的数据对应的检验码计算第一校验值,当所述第一校验值与任意一个所述预存校验值相同时,则数据恢复成功。
4.根据权利要求1至3中任一项所述的整车控制器的数据读取方法,其特征在于,从所述n个数据页中读取出目标行的n组数据之前,还包括:
从所述主数据页中读取出目标行的状态标志位,根据所述目标行的状态标志位判断是否读取所述目标行的数据。
5.根据权利要求4所述的整车控制器的数据读取方法,其特征在于,数据读取成功,将相同的数据作为所述目标行的读出数据之后,还包括:
将所述目标行的状态标志位标注为已读取。
6.一种整车控制器的数据写入方法,其特征在于,控制器向存储器中写入数据,所述存储器划分为n个数据页和n个校验页,每个校验页用于存储对应数据页中每行数据的校验码,其中,所述n个数据页包括1个主数据页和n-1个备份数据页,所述n个校验页包括1个主校验页和n-1个备份校验页,n≥3,所述数据存储方法包括:
从所述n个数据页中读取出目标行的n组数据,当所述n组数据中存在至少一组与待写入数据不同的数据时,将所述待写入数据分别写入所述n个数据页的目标行;
从所述n个检验页中读取出所述目标行的n个校验码,当所述n个校验码中存在至少一个与待写入校验码不同的校验码时,将所述待写入校验码分别写入所述n个校验页的目标行。
7.根据权利要求6所述的整车控制器的数据写入方法,其特征在于,还包括:
将新写入所述目标行的数据进行回读,并将新写入所述目标行的校验码进行回读;
将回读数据与所述待写入数据进行逐字节比对,并将回读校验码与所述待写入校验码进行逐字节比对,当所述回读数据与所述待写入数据相同,且所述回读校验码与所述待写入校验码相同时,则数据写入成功。
8.根据权利要求6或7所述的整车控制器的数据写入方法,其特征在于,还包括:
当无法从所述n个数据页中读取出目标行的n组数据时,将所述目标行的状态标志位标注为写入失败;
或,当无法从所述n个检验页中读取出所述目标行的n个校验码时,将所述目标行的状态标志位标注为写入失败。
9.一种存储介质,其特征在于,所述存储介质中存储有指令,当计算机读取所述指令时,使所述计算机执行如权利要求1至5中任一项所述的整车控制器的数据读取方法,或执行如权利要求6至8中任一项所述的整车控制器的数据写入方法。
10.一种车辆,其特征在于,所述车辆的控制器使用如权利要求1至5中任一项所述的整车控制器的数据读取方法从存储器中读取数据,或,使用如权利要求6至8中任一项所述的整车控制器的数据写入方法向存储器中写入数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010113565.6A CN113296682B (zh) | 2020-02-24 | 2020-02-24 | 整车控制器的数据读取和写入方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010113565.6A CN113296682B (zh) | 2020-02-24 | 2020-02-24 | 整车控制器的数据读取和写入方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113296682A true CN113296682A (zh) | 2021-08-24 |
CN113296682B CN113296682B (zh) | 2023-06-06 |
Family
ID=77317744
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010113565.6A Active CN113296682B (zh) | 2020-02-24 | 2020-02-24 | 整车控制器的数据读取和写入方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113296682B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103034458A (zh) * | 2012-12-25 | 2013-04-10 | 华为技术有限公司 | 固态硬盘中实现独立磁盘冗余阵列的方法及装置 |
CN103544073A (zh) * | 2012-07-17 | 2014-01-29 | 慧荣科技股份有限公司 | 读取闪存中区块的数据的方法及相关的记忆装置 |
US9329926B1 (en) * | 2013-09-13 | 2016-05-03 | Microsemi Storage Solutions (U.S.), Inc. | Overlapping data integrity for semiconductor devices |
US20170277442A1 (en) * | 2014-09-16 | 2017-09-28 | Sony Corporation | Memory controller, storage apparatus, information processing system, and method for controlling nonvolatile memory |
US20180157546A1 (en) * | 2016-12-02 | 2018-06-07 | SK Hynix Inc. | Semiconductor memory device and method for operating the same |
CN109857708A (zh) * | 2019-02-26 | 2019-06-07 | 上海仰歌电子科技有限公司 | 一种嵌入式系统的数据存取方法及计算机可读存储介质 |
CN109947368A (zh) * | 2019-03-21 | 2019-06-28 | 记忆科技(深圳)有限公司 | 数据可靠性检测方法、装置、计算机设备及存储介质 |
-
2020
- 2020-02-24 CN CN202010113565.6A patent/CN113296682B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103544073A (zh) * | 2012-07-17 | 2014-01-29 | 慧荣科技股份有限公司 | 读取闪存中区块的数据的方法及相关的记忆装置 |
CN103034458A (zh) * | 2012-12-25 | 2013-04-10 | 华为技术有限公司 | 固态硬盘中实现独立磁盘冗余阵列的方法及装置 |
US9329926B1 (en) * | 2013-09-13 | 2016-05-03 | Microsemi Storage Solutions (U.S.), Inc. | Overlapping data integrity for semiconductor devices |
US20170277442A1 (en) * | 2014-09-16 | 2017-09-28 | Sony Corporation | Memory controller, storage apparatus, information processing system, and method for controlling nonvolatile memory |
US20180157546A1 (en) * | 2016-12-02 | 2018-06-07 | SK Hynix Inc. | Semiconductor memory device and method for operating the same |
CN109857708A (zh) * | 2019-02-26 | 2019-06-07 | 上海仰歌电子科技有限公司 | 一种嵌入式系统的数据存取方法及计算机可读存储介质 |
CN109947368A (zh) * | 2019-03-21 | 2019-06-28 | 记忆科技(深圳)有限公司 | 数据可靠性检测方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113296682B (zh) | 2023-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
USRE40252E1 (en) | Flash memory control method, flash memory system using the control method and flash memory device using the control method | |
US5581690A (en) | Method and apparatus for preventing the use of corrupt data in a multiple disk raid organized storage system | |
CN101889267B (zh) | 存储器阵列中的差错校正 | |
CN107807792A (zh) | 一种基于副本存储系统的数据处理方法及相关装置 | |
CN105122213A (zh) | 用于数据存储系统中的错误检测和纠正的方法和装置 | |
CN107315616B (zh) | 一种固件的加载方法、装置及电子设备 | |
CN108062259A (zh) | Mcu内部数据存储ecc处理系统及其处理方法 | |
CN108646982A (zh) | 一种基于ubifs的数据自动修复方法及装置 | |
CN115562594B (zh) | 一种raid卡的构建方法、系统及相关装置 | |
CN115657965B (zh) | 一种元数据的配置方法、装置及介质 | |
CN115129507A (zh) | 实现快速raid阵列重组的方法、装置、设备、介质 | |
CN111785315A (zh) | 降低擦除干扰和擦除时间的方法、系统、存储介质及终端 | |
CN105183583A (zh) | 一种磁盘阵列的数据重建的方法及一种磁盘阵列系统 | |
CN111966071A (zh) | 一种车载控制器数据分类、存储及校验方法 | |
CN111428280B (zh) | SoC安全芯片密钥信息完整性存储及错误自修复方法 | |
CN106933707B (zh) | 基于raid技术的数据存储设备数据恢复方法及系统 | |
CN113296682B (zh) | 整车控制器的数据读取和写入方法 | |
CN117111990A (zh) | 程序升级方法、装置、vcu、程序升级系统以及介质 | |
CN111752755A (zh) | 一种继电保护关键数据冗余存储及可靠性恢复系统及方法 | |
CN111221681A (zh) | 一种存储器的修复方法及装置 | |
CN115543693A (zh) | 数据恢复方法及相关设备 | |
KR20030073982A (ko) | 레이드 서브 시스템에서 중복 데이터의 일관성 유지 방법 | |
CN116631492B (zh) | 一种基于多核处理器芯片的继电保护方法及系统 | |
CN107168817B (zh) | 应用于存储阵列的数据修复方法与装置及存储设备 | |
CN111124296B (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 |