CN110888605B - Eeprom的数据写入方法、装置和电子设备 - Google Patents
Eeprom的数据写入方法、装置和电子设备 Download PDFInfo
- Publication number
- CN110888605B CN110888605B CN201911268396.7A CN201911268396A CN110888605B CN 110888605 B CN110888605 B CN 110888605B CN 201911268396 A CN201911268396 A CN 201911268396A CN 110888605 B CN110888605 B CN 110888605B
- Authority
- CN
- China
- Prior art keywords
- data
- address
- cache
- eeprom
- writing
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 44
- 238000004891 communication Methods 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 12
- 238000012795 verification Methods 0.000 description 5
- 125000004122 cyclic group Chemical group 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 2
- 238000004378 air conditioning Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- 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
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- 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
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本发明的实施例提供了一种EEPROM的数据写入方法、装置和电子设备,涉及存储技术领域,EEPROM的数据写入方法包括以下步骤:在EEPROM的存储空间中配置一主存地址和一缓存地址;校验缓存地址的数据以确定缓存数据和目标地址,目标地址为主存地址和缓存地址中的一个;擦除目标地址的数据并向目标地址写入缓存数据。EEPROM的数据写入装置用于实现上述的EEPROM的数据写入方法。电子设备包括控制器和EEPROM,控制器与EEPROM通信连接,用于以上述的EEPROM的数据写入方法向EEPROM写入数据。该EEPROM的数据写入方法、装置和电子设备可以有效降低EEPROM在数据写入过程中突然掉电带来的数据丢失风险。
Description
技术领域
本发明涉及存储技术领域,具体而言,涉及一种EEPROM的数据写入方法、装置和电子设备。
背景技术
电可擦可编程只读存储器(Electrically Erasable Programmable read onlymemory,EEPROM)是一种掉电后数据不丢失的存储芯片,通常用于存储一些重要的数据。EEPROM可以在电脑上或专用设备上擦除已有信息,重新编程。
但是,EEPROM在数据写入的过程中如果突然掉电,很容易造成数据丢失。
发明内容
本发明的目的包括,例如,提供了一种EEPROM的数据写入方法、装置和电子设备,其能够有效降低EEPROM在数据写入过程中突然掉电带来的数据丢失风险。
本发明的实施例可以这样实现:
第一方面,实施例提供一种EEPROM的数据写入方法,包括:
在EEPROM的存储空间中配置一主存地址和一缓存地址;
校验缓存地址的数据以确定缓存数据和目标地址,目标地址为主存地址和缓存地址中的一个;
擦除目标地址的数据并向目标地址写入缓存数据。
在可选的实施方式中,校验缓存地址的数据以确定缓存数据和目标地址的步骤包括:
如果缓存地址的数据是完整正确的数据,则确定缓存数据为缓存地址的数据,目标地址为主存地址。
在可选的实施方式中,校验缓存地址的数据以确定缓存数据和目标地址的步骤包括:
如果缓存地址的数据不是完整正确的数据,则校验主存地址的数据以确定缓存数据和目标地址。
在可选的实施方式中,校验主存地址的数据以确定缓存数据和目标地址的步骤包括:
如果主存地址的数据不是完整正确的数据,则确定缓存数据需要赋初值且目标地址为缓存地址。
在可选的实施方式中,擦除目标地址的数据并向目标地址写入缓存数据的步骤之后还包括:
校验写入目标地址的数据是否与缓存数据相等。
在可选的实施方式中,校验写入目标地址的数据是否与缓存数据相等的步骤之后还包括:
如果相等且目标地址为主存地址,则擦除缓存地址的数据;
如果相等且目标地址为缓存地址,则重新确定目标地址为主存地址。
在可选的实施方式中,校验目标地址的数据是否与缓存数据相等的步骤之后还包括:
如果不相等且写入次数大于或者等于预设次数,则报错;
如果不相等且写入次数小于预设次数,则返回擦除目标地址的数据并向目标地址写入缓存数据的步骤。
在可选的实施方式中,EEPROM的数据写入方法还包括:当需要更新数据时,擦除缓存地址的数据并将更新的数据写入缓存地址。
第二方面,实施例提供一种EEPROM的数据写入装置,包括配置模块、校验和确定模块以及擦除和写入模块;
配置模块用于在EEPROM的存储空间中配置一主存地址和一缓存地址;
校验和确定模块用于校验缓存地址的数据以确定缓存数据和目标地址,目标地址为主存地址和缓存地址中的一个;
擦除和写入模块用于擦除目标地址的数据并向目标地址写入缓存数据。
第三方面,实施例提供一种电子设备,包括控制器和EEPROM,控制器与EEPROM通信连接,用于以前述的EEPROM的数据写入方法向EEPROM写入数据。
本发明实施例的有益效果包括,例如:
本发明实施例提供的技术方案首先在EEPROM的存储空间中配置一主存地址和一缓存地址,然后校验缓存地址的数据以确定缓存数据和目标地址,目标地址为主存地址和缓存地址中的一个,最后擦除目标地址的数据并向目标地址写入缓存数据。该技术方案在向主存地址写入数据前,会先对缓存地址的数据进行校验,以判断缓存地址的数据是否为完整正确的数据,如果不是,则需要先向缓存地址写入缓存数据,如果是,则将缓存地址的数据作为缓存数据写入主存地址即可。也就是说,该技术方案采用的是先向缓存地址写入数据,在写入成功后再向主存地址写入数据的方式,在向缓存地址写入数据时,即使在擦除缓存地址的数据过程中或者擦除缓存地址的数据后EEPROM突然掉电,最多损失一个最新数据,次新的数据仍然存储于主存地址;而向主存地址写入数据时,即使在擦除主存地址的数据的过程中或者擦除主存地址的数据后EEPROM突然掉电,最新的数据仍然保留在缓存地址中,只需要再次将缓存地址的数据作为缓存数据写入主存地址即可,这样就可以从很大程度上降低EEPROM在数据写入的过程中因为突然掉电而带来的数据丢失风险。同时,由于数据丢失风险大大降低,自然就可以节省许多没有必要的写入和擦除操作,从而延长EEPROM的使用寿命。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例提供的电子设备的结构框图;
图2为本发明实施例提供的控制器的结构框图;
图3为本发明实施例提供的EEPROM的数据写入方法的流程图;
图4为本发明实施例提供的步骤S200的子步骤流程图;
图5为本发明实施例提供的步骤S210的子步骤流程图;
图6为本发明实施例提供的步骤S200的更详细的子步骤流程图;
图7为本发明实施例提供的步骤S232的子步骤流程图;
图8为本发明实施例提供的步骤S300之后的流程图;
图9为本发明实施例提供的数据需要更新时的流程图;
图10为本发明实施例提供的EEPROM的数据写入装置的结构框图;
图11为本发明实施例提供的校验和确定模块的结构框图。
图标:100-控制器;101-存储器;102-通信接口;103-处理器;104-总线;200-EEPROM;300-配置模块;400-校验和确定模块;410-第一校验模块;420-第一确定模块;430-第二校验模块;440-第二确定模块;500-擦除和写入模块。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本发明的描述中,需要说明的是,若出现术语“上”、“下”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
此外,若出现术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
需要说明的是,在不冲突的情况下,本发明的实施例中的特征可以相互结合。
相关技术中,EEPROM采用的是先擦除后写入的简单逻辑,EEPROM的存储空间中的数据都是同时擦除的。这样,假如需要向EEPROM中写入新数据时,必然需要先擦除EEPROM中的旧数据。但是在擦除旧数据的过程中或者在擦除旧数据之后,如果EEPROM突然掉电,新数据来不及写入,就会造成数据丢失。
针对上述情况,本发明实施例提供了一种新的EEPROM的数据写入方法、装置和电子设备,用以改善EEPROM在数据写入时突然掉电带来的数据丢失问题。具体如下:
请参考图1,图1为本发明实施例提供的电子设备的结构框图。本实施例提供了一种电子设备,其可以是,但不限于,车载空调系统、门禁考勤系统,测量和医疗仪表,存取款机等对数据存储安全性及可靠性要求较高的设备。该电子设备包括控制器100和EEPROM200,控制器100与EEPROM200通信连接,用于以EEPROM的数据写入方法向EEPROM200写入数据。
请参照图2,图2为本发明实施例提供的控制器100的结构框图。控制器100可以是,但不限于微控制单元(Microcontroller Unit,MCU)、可编程逻辑控制器100(ProgrammableLogic Controller,PLC)等。控制器100包括存储器101、通信接口102、处理器103和总线104,存储器101、通信接口102和处理器103通过总线104连接,处理器103用于执行存储器101中存储的可执行模块,例如计算机程序,计算机程序的代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。
其中,存储器101可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括快闪存储器。通过至少一个通信接口102(可以是有线或者无线)实现控制器100与EEPROM200之间的通信连接。
总线104可以是ISA总线、PCI总线或EISA总线等。图2中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器101用于存储程序,例如图6所示的EEPROM的数据写入装置。该EEPROM200的数据写入装置包括至少一个可以软件或固件(firmware)的形式存储于存储器101中的软件功能模块。处理器103在接收到执行指令后,执行程序以实现本发明实施例揭示的EEPROM的数据写入方法。
请参考图3,图3为本发明实施例提供的EEPROM的数据写入方法的流程图。该EEPROM的数据写入方法包括以下步骤:
步骤S100:在EEPROM200的存储空间中配置一主存地址和一缓存地址。
其中,主存地址用于主存,缓存地址用于缓存,两个地址的数据不能同时擦除,以防止主存地址和缓存地址的数据同时丢失。主存地址和缓存地址对应的存储空间的大小以及两者在整个EEPROM200的存储空间中的占比可以根据实际需要设置。
在EEPROM200的存储空间中配置两个地址相对于划分出两个存储区,两个存储区中一个为与主存地址对应的主存区,另一个为与缓存地址的缓存区,主存区和缓存区存储的数据不能同时擦除,这样即使在向其中一个存储区写入最新数据NEW-DATA时,EEPROM200掉电导致写入失败且数据丢失,至少还有另外一个存储区存储有次新数据,而不会直接丢失所有数据。
步骤S200:校验缓存地址的数据以确定缓存数据BUFFER-DATA和目标地址ADDRESS,目标地址ADDRESS为主存地址和缓存地址中的一个。
详细地,请参照图4,图4为本发明实施例提供的步骤S200的子步骤流程图。校验缓存地址的数据以确定缓存数据BUFFER-DATA和目标地址ADDRESS的步骤具体包括:
步骤S210:校验缓存地址的数据是否为完整正确的数据。请参照图5,图5为本发明实施例提供的步骤S210的子步骤流程图。校验缓存地址的数据是否为完整正确的数据的步骤通过对比校验码的方式实现,其具体包括:
步骤S212:读取缓存地址的数据和原始校验码。步骤S214:根据缓存地址的数据计算新校验码。步骤S216:判断缓存地址的原始校验码和新校验码是否相等,如果相等则执行步骤S217:判定缓存地址的数据是完整正确的数据。如果不相等则执行步骤S218:判定缓存地址的数据不是完整正确的数据。
其中,缓存地址的原始校验码需要在向缓存地址写入数据时,随写入的数据一起写入缓存地址。缓存地址的校验码可以根据需要采用不同的类型,本实施例中,校验码采用循环冗余校验(Cyclic Redundancy Check,CRC)码,其可以校验数据的多位错误,提高校验的准确性。其它实施例中,缓存地址的校验码也可以为其它类型的校验码,比如奇偶校验码。根据缓存地址的数据计算新校验码的算法为现有的算法,此处不再赘述。
在完成对缓存地址的数据的校验后,开始根据校验结果确定缓存数据BUFFER-DATA和目标地址ADDRESS。
如果缓存地址的数据是完整正确的数据,则说明EEPROM200已经成功地写入过数据,此时执行步骤S220:确定缓存数据BUFFER-DATA为缓存地址的数据,目标地址ADDRESS为主存地址。
如果缓存地址的数据是完整正确的数据,则只需要将缓存地址的数据写入主存地址即可。因此,将缓存地址的数据作为缓存数据BUFFER-DATA,主存地址作为目标地址ADDRESS。同时如果缓存地址的数据是完整正确的数据,则说明其可以作为最新数据NEW-DATA,因此在将缓存地址的数据赋值给缓存数据BUFFER-DATA的同时,还可以赋值给最新数据NEW-DATA。
相反,如果缓存地址的数据不是完整正确的数据,则执行步骤S230:校验主存地址的数据以确定缓存数据BUFFER-DATA和目标地址ADDRESS。请参照图6,图6为本发明实施例提供的步骤S200的更详细的子步骤流程图。校验主存地址的数据以确定缓存数据BUFFER-DATA和目标地址ADDRESS的步骤具体包括:
步骤S232:校验主存地址的数据是否为完整正确的数据。请参照图7,图7为本发明实施例提供的步骤S232的子步骤流程图。与缓存地址的数据校验相同,校验主存地址的数据是否为完整正确的数据的步骤也是通过对比校验码的方式实现,具体包括:
步骤S234:读取主存地址的数据和原始校验码。步骤S235:根据主存地址的数据计算新校验码。步骤S236:判断主存地址的原始校验码和新校验码是否相等,如果相等则执行步骤S237:判定主存地址的数据是完整正确的数据。如果不相等则执行步骤S238:判定主存地址的数据不是完整正确的数据。
其中,主存地址的原始校验码需要在向主存地址写入数据时,随写入的数据一起写入主存地址。与缓存地址的校验码类似,主存地址的校验码也可以根据需要采用不同的类型,本实施例中,校验码也采用循环冗余校验(Cyclic Redundancy Check,CRC)码,其可以校验数据的多位错误,提高校验的准确性。其它实施例中,主存地址的校验码也可以为其它类型的校验码,比如奇偶校验码。根据主存地址的数据计算新校验码的算法为现有的算法,此处不再赘述。
在完成对主存地址的数据的校验后,根据校验结果确定缓存数据BUFFER-DATA和目标地址ADDRESS。
如果主存地址的数据是完整正确的数据,则说明EEPROM200已经成功的写入过数据,在没有更新的数据到来之前,无需再进行写入操作。并且主存地址的数据可以作为最新数据NEW-DATA,可以将主存地址的数据赋值给最新数据NEW-DATA。
如果主存地址的数据不是完整正确的数据,则说明EEPROM200还没有成功地写入过数据,有可能是还没进行过操作,没有存储任何数据,也可能是已经进行过操作,存储有数据,但是数据不完整或者不正确。不管是哪种情况,都需要向缓存地址写入数据。此时,需要根据实际需要给缓存数据BUFFER-DATA和最新数据NEW-DATA赋初值,并将缓存地址作为目标地址ADDRESS。因此执行步骤S235:确定缓存数据BUFFER-DATA需要赋初值,缓存地址为目标地址ADDRESS。
在缓存数据BUFFER-DATA和目标地址ADDRESS确定后,首先开启EEPROM200的写入权限,此时EEPROM200的写入标志位WRITE–FLAG置1,即允许外部数据写入EEPROM200的存储空间。然后调用相应的写入函数,准备开始进行写入操作。
开始写入时,执行步骤S300:擦除目标地址ADDRESS的数据并向目标地址ADDRESS写入缓存数据BUFFER-DATA。其中,如果目标地址ADDRESS是主存地址,则先擦除目标地址ADDRESS的数据,然后将缓存地址的数据写入目标地址ADDRESS。如果目标地址ADDRESS是缓存地址,则先擦除缓存地址的数据,然后给缓存数据BUFFER-DATA赋初值后写入缓存地址。
请参照图8,图8为本发明实施例提供的步骤S300之后的流程图。写入数据后,执行步骤S302:将写入次数TIME加1。控制器100每向EEPROM200写入一次数据,写入次数TIME就加1。
进一步地,在将写入次数TIME加1的步骤之后还包括:
步骤S310:校验写入目标地址ADDRESS的数据是否与缓存数据BUFFER-DATA相等。即判断本次写入操作是否成功。
如果写入目标地址ADDRESS的数据与缓存数据BUFFER-DATA相等,则说明写入成功,此时执行步骤S320:判断目标地址ADDRESS是否为主存地址。
如果目标地址ADDRESS为主存地址,则执行步骤S330:擦除缓存地址的数据。缓存地址的数据写入主存地址后,可以先擦除缓存地址的数据。这样,下一次向缓存地址写入数据时,就不用再先擦除缓存地址的数据,而可以直接写入,从而节省数据写入的时间(一般来说,擦除需要几十毫秒,而写入只需要几毫秒)。然后执行步骤S332:关闭EEPROM200的写入权限。此时EEPROM200的写入标志位WRITE–FLAG置0,即不允许外部数据写入EEPROM200。同时,因为写入成功,因此错误标志位EEPROM-ERROR置0,表示没有出现写入错误。
如果目标地址ADDRESS不为主存地址,则说明目标地址ADDRESS为缓存地址,则执行步骤S340:重新确定目标地址ADDRESS为主存地址。本次向缓存地址写入数据,则下次必然是向主存地址写入数据,因此需要重新确定目标地址ADDRESS为主存地址。然后执行步骤S342:将写入次数TIME清零。如果本次写入数据的是缓存地址,则需要将写入次数TIME清零。同时,因为写入成功,因此错误标志位EEPROM-ERROR置0,表示没有出现写入错误。
如果写入目标地址ADDRESS的数据与缓存数据BUFFER-DATA相等不相等,则说明写入失败,此时执行步骤S350:判断写入次数TIME是否大于预设次数。其中,预设次数是根据实际情况确定的。本实施例中,预设次数为10。其它实施例中,预设次数也可以为8、9或者11等。
如果写入次数TIME大于或者等于预设次数,则执行步骤S360:报错。此时,错误标志位EEPROM-ERROR置1,表示写入操作出现错误。如果有上报机制,还可以将错误标志位EEPROM-ERROR上报。
如果写入次数TIME小于预设次数,则返回步骤S300:擦除目标地址ADDRESS的数据并向目标地址ADDRESS写入缓存数据BUFFER-DATA。即如果写入次数TIME小于预设次数,则重新进行写入操作,如果再次写入失败且操作次数仍然小于预设次数,就再次重新进行写入操作,如此循环往复。如果写入次数TIME到达预设次数时,写入仍然失败,则跳出循环,执行步骤S360,即报错。
当成功地对EEPROM200进行至少一次写入操作后,EEPROM200就会存储有完整正确的数据,该数据可以作为最新数据NEW-DATA。但是,如果有更新的数据到来,则需要更新数据,重新确定最新数据NEW-DATA。
请参照图9,图9为本发明实施例提供的数据需要更新时的流程图。当需要更新数据时,擦除缓存地址的数据并将更新的数据写入缓存地址,具体包括:
步骤S400:确定缓存数据BUFFER-DATA为更新的数据。由于需要将更新的数据写入EEPROM200,因此需要首先将更新的数据确定为缓存数据BUFFER-DATA。同时,更新的数据可以作为最新数据NEW-DATA,因此在将更新的数据赋值给缓存数据BUFFER-DATA的同时,还可以赋值给最新数据NEW-DATA。
步骤S410:擦除缓存地址的数据及确定目标地址ADDRESS为缓存地址。当更新的数据到来时,必然先写入缓存地址,因此先擦除缓存地址的数据并将缓存地址作为目标地址ADDRESS。
然后开启EEPROM200的写入权限,即写入标志位WRITE–FLAG置1,表示EEPROM200允许外部的数据写入。之后重新执行步骤S300以及S300之后的步骤,即可完成更新数据的操作。需要说明的是,此处执行步骤S300时,无需再擦除缓存地址的数据,直接向缓存地址写入数据即可,因为步骤S410中已经对缓存地址的数据进行擦除,即擦除操作已经前置于步骤S410中。
本发明实施例提供的EEPROM的数据写入方法首先在EEPROM200的存储空间中配置一主存地址和一缓存地址,然后校验缓存地址的数据以确定缓存数据BUFFER-DATA和目标地址ADDRESS,目标地址ADDRESS为主存地址和缓存地址中的一个,最后擦除目标地址ADDRESS的数据并向目标地址ADDRESS写入缓存数据BUFFER-DATA。该技术方案在向主存地址写入数据前,会先对缓存地址的数据进行校验,以判断缓存地址的数据是否为完整正确的数据,如果不是,则需要先向缓存地址写入缓存数据BUFFER-DATA,如果是,则将缓存地址的数据作为缓存数据BUFFER-DATA写入主存地址。也就是说,该技术方案采用的是先向缓存地址写入数据,在写入成功后再向主存地址写入数据的方式,在向缓存地址写入数据时,即使在擦除缓存地址的数据过程中或者擦除缓存地址的数据后EEPROM200突然掉电,最多损失一个最新数据NEW-DATA,次新的数据仍然存储于主存地址;而向主存地址写入数据时,即使在擦除主存地址的数据的过程中或者擦除主存地址的数据后EEPROM200突然掉电,最新的数据仍然保留在缓存地址中,只需要再次将缓存地址的数据作为缓存数据BUFFER-DATA写入主存地址即可,这样就可以从很大程度上降低EEPROM200在数据写入的过程中因为突然掉电而带来的数据丢失风险。同时,由于数据丢失风险大大降低,自然就可以节省许多没有必要的写入和擦除操作,从而延长EEPROM200的使用寿命。
请参照图10,图10为本发明实施例提供的EEPROM200的数据写入装置的结构框图。该EEPROM200的数据写入装置可以用于上述控制器100中,其包括配置模块300、校验和确定模块400以及擦除和写入模块500。
其中,配置模块300用于在EEPROM200的存储空间中配置一主存地址和一缓存地址。本实施例中,配置模块300用于执行步骤S100。
校验和确定模块400用于校验缓存地址的数据以确定缓存数据BUFFER-DATA和目标地址ADDRESS,目标地址ADDRESS为主存地址和缓存地址中的一个。本实施例中,校验和确定模块400用于执行步骤S200。
详细地,请参照图11,图11为本发明实施例提供的校验和确定模块的结构框图。校验和确定模块400包括第一校验模块410、第一确定模块420、第二校验模块430以及第二确定模块440。
第一校验模块410用于校验缓存地址的数据是否为完整正确的数据。本实施例中,第一校验模块410用于执行步骤S210。
当缓存地址的数据是完整正确的数据时,第一确定模块420用于确定缓存数据BUFFER-DATA为缓存地址的数据,目标地址ADDRESS为主存地址。本实施例中,第一确定模块420用于执行步骤S220。
当缓存地址的数据不是完整正确的数据时,第二校验模块430用于校验主存地址的数据以确定缓存数据BUFFER-DATA和目标地址ADDRESS。本实施例中,第二校验模块430用于执行步骤S230。
当主存地址的数据不是完整正确的数据时,第二确定模块440用于确定缓存数据BUFFER-DATA需要赋初值,缓存地址为目标地址ADDRESS。本实施例中,第二确定模块440用于执行步骤S235。
擦除和写入模块500用于擦除目标地址ADDRESS的数据并向目标地址ADDRESS写入缓存数据BUFFER-DATA。本实施例中,擦除和写入模块500用于执行步骤S300。
本发明实施例提供的EEPROM的数据写入方法采用的在EEPROM200中配置主存地址和缓存地址,写入时先向缓存地址写入数据,在写入成功后再向主存地址写入数据的方式,在向缓存地址写入数据时,即使在擦除缓存地址的数据过程中或者擦除缓存地址的数据后EEPROM200突然掉电,最多损失一个最新数据NEW-DATA,次新的数据仍然存储于主存地址;而在向主存地址写入数据时,即使在擦除主存地址的数据的过程中或者擦除主存地址的数据后EEPROM200突然掉电,最新的数据仍然保留在缓存地址中,只需要再次将缓存地址的数据作为缓存数据BUFFER-DATA写入主存地址即可,这样就可以从很大程度上降低EEPROM200在数据写入的过程中因为突然掉电而带来的数据丢失风险。同时,由于数据丢失风险大大降低,自然就可以节省许多没有必要的写入和擦除操作,从而延长EEPROM200的使用寿命。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (8)
1.一种EEPROM的数据写入方法,其特征在于,包括:
在EEPROM的存储空间中配置一主存地址和一缓存地址;
校验所述缓存地址的数据以确定缓存数据和目标地址,如果所述缓存地址的数据不是完整正确的数据,则校验所述主存地址的数据以确定所述缓存数据和所述目标地址;如果所述主存地址的数据不是完整正确的数据,则确定所述缓存数据需要赋初值且所述目标地址为所述缓存地址,所述目标地址为所述主存地址和所述缓存地址中的一个;
擦除所述目标地址的数据并向所述目标地址写入所述缓存数据。
2.根据权利要求1所述的EEPROM的数据写入方法,其特征在于,校验所述缓存地址的数据以确定缓存数据和目标地址的步骤包括:
如果所述缓存地址的数据是完整正确的数据,则确定所述缓存数据为所述缓存地址的数据,所述目标地址为所述主存地址。
3.根据权利要求1所述的EEPROM的数据写入方法,其特征在于,所述擦除所述目标地址的数据并向所述目标地址写入所述缓存数据的步骤之后还包括:
校验写入所述目标地址的数据是否与所述缓存数据相等。
4.根据权利要求3所述的EEPROM的数据写入方法,其特征在于,所述校验写入所述目标地址的数据是否与所述缓存数据相等的步骤之后还包括:
如果相等且所述目标地址为所述主存地址,则擦除所述缓存地址的数据;
如果相等且所述目标地址为所述缓存地址,则重新确定所述目标地址为所述主存地址。
5.根据权利要求3所述的EEPROM的数据写入方法,其特征在于,所述校验所述目标地址的数据是否与所述缓存数据相等的步骤之后还包括:
如果不相等且写入次数大于或者等于预设次数,则报错;
如果不相等且写入次数小于预设次数,则返回擦除所述目标地址的数据并向所述目标地址写入所述缓存数据的步骤。
6.根据权利要求1所述的EEPROM的数据写入方法,其特征在于,所述EEPROM的数据写入方法还包括:当需要更新数据时,擦除所述缓存地址的数据并将更新的数据写入所述缓存地址。
7.一种EEPROM的数据写入装置,其特征在于,包括配置模块、校验和确定模块以及擦除和写入模块;
所述配置模块用于在EEPROM的存储空间中配置一主存地址和一缓存地址;
所述校验和确定模块用于校验所述缓存地址的数据以确定缓存数据和目标地址,所述目标地址为所述主存地址和所述缓存地址中的一个,如果所述缓存地址的数据不是完整正确的数据,则校验所述主存地址的数据以确定所述缓存数据和所述目标地址,如果所述主存地址的数据不是完整正确的数据,则确定所述缓存数据需要赋初值且所述目标地址为所述缓存地址;
所述擦除和写入模块用于擦除所述目标地址的数据并向所述目标地址写入所述缓存数据。
8.一种电子设备,其特征在于,包括控制器和EEPROM,所述控制器与所述EEPROM通信连接,用于以权利要求1-6任意一项所述的EEPROM的数据写入方法向所述EEPROM写入数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911268396.7A CN110888605B (zh) | 2019-12-11 | 2019-12-11 | Eeprom的数据写入方法、装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911268396.7A CN110888605B (zh) | 2019-12-11 | 2019-12-11 | Eeprom的数据写入方法、装置和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110888605A CN110888605A (zh) | 2020-03-17 |
CN110888605B true CN110888605B (zh) | 2023-10-20 |
Family
ID=69751578
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911268396.7A Active CN110888605B (zh) | 2019-12-11 | 2019-12-11 | Eeprom的数据写入方法、装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110888605B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112053727B (zh) * | 2020-08-20 | 2023-03-31 | 珠海格力电器股份有限公司 | Eeprom掉电保护控制方法、装置、存储介质及存储设备 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA1191278A (en) * | 1983-02-04 | 1985-07-30 | Thomas L. Heidebrecht | Data retention circuit |
WO1996025743A1 (fr) * | 1995-02-16 | 1996-08-22 | Gemplus | Procede de mise a jour securisee de memoire eeprom |
DE19539746A1 (de) * | 1995-10-26 | 1997-04-30 | Sel Alcatel Ag | Rechner |
FR2766593A1 (fr) * | 1997-07-25 | 1999-01-29 | Aerospatiale | Procede et dispositif pour proteger des donnees d'un systeme electronique contre une agression ionisante |
JP2004013763A (ja) * | 2002-06-11 | 2004-01-15 | Toshiba Corp | 情報記憶装置及び情報記憶方法 |
JP2005275889A (ja) * | 2004-03-25 | 2005-10-06 | Daihatsu Motor Co Ltd | 電子制御装置及びそのメモリ制御方法 |
JP2007102566A (ja) * | 2005-10-05 | 2007-04-19 | Fuji Electric Holdings Co Ltd | メモリバックアップシステム |
CN102508723A (zh) * | 2011-09-28 | 2012-06-20 | 山东神思电子技术股份有限公司 | 一种面向ic卡的掉电保护方法 |
CN102890657A (zh) * | 2012-10-10 | 2013-01-23 | 深圳市航盛电子股份有限公司 | 一种减少eeprom的数据读写出错的方法 |
CN105868127A (zh) * | 2016-03-23 | 2016-08-17 | 北京经纬恒润科技有限公司 | 一种数据存储、读取方法及装置 |
CN106776362A (zh) * | 2015-11-24 | 2017-05-31 | 中芯国际集成电路制造(上海)有限公司 | 存储器的控制方法及装置 |
CN108776627A (zh) * | 2018-05-29 | 2018-11-09 | 青岛海尔科技有限公司 | 一种数据存储方法、装置、读取方法及装置 |
CN109240622A (zh) * | 2018-09-26 | 2019-01-18 | 潍柴动力股份有限公司 | 一种eeprom数据写入的方法及系统 |
CN110096451A (zh) * | 2018-01-29 | 2019-08-06 | 华为技术有限公司 | 一种数据存储方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8700852B2 (en) * | 2010-02-03 | 2014-04-15 | International Business Machines Corporation | Processing read and write requests in a storage controller |
-
2019
- 2019-12-11 CN CN201911268396.7A patent/CN110888605B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA1191278A (en) * | 1983-02-04 | 1985-07-30 | Thomas L. Heidebrecht | Data retention circuit |
WO1996025743A1 (fr) * | 1995-02-16 | 1996-08-22 | Gemplus | Procede de mise a jour securisee de memoire eeprom |
DE19539746A1 (de) * | 1995-10-26 | 1997-04-30 | Sel Alcatel Ag | Rechner |
FR2766593A1 (fr) * | 1997-07-25 | 1999-01-29 | Aerospatiale | Procede et dispositif pour proteger des donnees d'un systeme electronique contre une agression ionisante |
JP2004013763A (ja) * | 2002-06-11 | 2004-01-15 | Toshiba Corp | 情報記憶装置及び情報記憶方法 |
JP2005275889A (ja) * | 2004-03-25 | 2005-10-06 | Daihatsu Motor Co Ltd | 電子制御装置及びそのメモリ制御方法 |
JP2007102566A (ja) * | 2005-10-05 | 2007-04-19 | Fuji Electric Holdings Co Ltd | メモリバックアップシステム |
CN102508723A (zh) * | 2011-09-28 | 2012-06-20 | 山东神思电子技术股份有限公司 | 一种面向ic卡的掉电保护方法 |
CN102890657A (zh) * | 2012-10-10 | 2013-01-23 | 深圳市航盛电子股份有限公司 | 一种减少eeprom的数据读写出错的方法 |
CN106776362A (zh) * | 2015-11-24 | 2017-05-31 | 中芯国际集成电路制造(上海)有限公司 | 存储器的控制方法及装置 |
CN105868127A (zh) * | 2016-03-23 | 2016-08-17 | 北京经纬恒润科技有限公司 | 一种数据存储、读取方法及装置 |
CN110096451A (zh) * | 2018-01-29 | 2019-08-06 | 华为技术有限公司 | 一种数据存储方法及装置 |
CN108776627A (zh) * | 2018-05-29 | 2018-11-09 | 青岛海尔科技有限公司 | 一种数据存储方法、装置、读取方法及装置 |
CN109240622A (zh) * | 2018-09-26 | 2019-01-18 | 潍柴动力股份有限公司 | 一种eeprom数据写入的方法及系统 |
Non-Patent Citations (3)
Title |
---|
I~2C串行EEPROM应用系统的健壮性设计;汪社民等;《单片机与嵌入式系统应用》;20071101(第11期);第64-66页 * |
一种实用的防止EEPROM信息丢失的方法;赵农;《自动化仪表》;19951231(第08期);第39-42页 * |
用EEPROM实现信息掉电保护中若干问题;苏炜;《湖北工业大学学报》;19981231;第13卷(第3期);第51-54页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110888605A (zh) | 2020-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7774382B2 (en) | Method and apparatus for configuring a control device, and corresponding control device | |
US20050013154A1 (en) | Non-volatile storage device control method | |
CN103577275B (zh) | 一种数据校验的方法、设备和系统 | |
CN107239411B (zh) | 一种车载控制器内存管理方法及系统 | |
CN111966287B (zh) | 数据存储方法、电子设备及存储介质 | |
US10509565B2 (en) | Apparatuses, methods, and computer-readable non-transitory recording mediums for erasure in data processing | |
CN110888605B (zh) | Eeprom的数据写入方法、装置和电子设备 | |
US11003531B2 (en) | Memory system and operating method thereof | |
JP6447469B2 (ja) | 書換システム | |
US9721665B2 (en) | Data writing method and system | |
CN114489732A (zh) | 一种更新设备的fpga固件的方法、装置及电子设备 | |
CN111090541B (zh) | 控制器的数据防丢方法、装置、行车电脑设备及存储介质 | |
CN112379843A (zh) | Eeprom数据处理方法、系统、存储介质及终端 | |
CN111045600B (zh) | 向存储器写入数据的方法、装置及存储介质 | |
JP2013003869A (ja) | 不揮発性半導体記憶装置およびメモリ管理方法 | |
CN112925546B (zh) | 一种防止车载ecu刷新出错的多级校验方法及系统 | |
US20070288809A1 (en) | Method for updating nonvolatile memory | |
JP6314859B2 (ja) | 電子制御装置及びソフトウェア書き換えシステム | |
US7353348B2 (en) | Nonvolatile memory and card reader provided with the same | |
CN111813597A (zh) | 一种空调器 | |
US20230418591A1 (en) | Firmware update method of a flash bootloader in a micro controller unit for a vehicle | |
JP2005056144A (ja) | フラッシュメモリ搭載電子装置、そのメモリデータ管理方法およびプログラム | |
US10379875B2 (en) | Solid state storage device and program loading method thereof | |
CN118276753A (zh) | 一种数据存储方法、设备及存储介质 | |
CN116594804A (zh) | 一种edac码读写优化方法、系统、设备及存储介质 |
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 |