本发明专利技术提供一种电可擦可编程只读存储器的读写方法,通过在电可擦可编程只读存储器中设置用以存储需要读写数据的读写模块,且该读写模块分成为若干读写页,当前一读写页损坏后将数据放置入下一读写页中继续读写,使电可擦可编程只读存储器的寿命延长。
【技术实现步骤摘要】
本专利技术涉及一种数据的读写方法,特别是一种用于电可擦可编程只读存储器的读 写方法。
技术介绍
在嵌入式系统中,对频繁读写的数据一般采用EEPROM(EleCtriCally Erasable Programmable Read-Only Memory,中文译为电可擦可编程只读存储器)来进行存储。 EEPROM的特点是可电擦除,最小支持单字节擦写。目前使用比较多的是Atmel公司的 AT24CXX系列的存储片,擦写寿命在10万次以上。如果按每天改写10次的话,可以使用30 年;同理,如果每天100次的话,将缩短到3年;某些场合,如果数据频繁修改,将会达到500 次以上,那么寿命就缩短到半年甚至更短。因此,需要一种新的技术方案以解决上述问题。
技术实现思路
针对上述现有电可擦可编程只读存储器所存在的问题和不足,本专利技术的目的是提 供一种可提高电可擦可编程只读存储器寿命的读写方法。为实现上述目的,本专利技术可采用如下技术方案,包括以下步骤(1)在电可擦可编程只读存储器中设置用以存储需要读写数据的读写模块,且该 读写模块分成为若干读写页;(2)先将数据放置于第一读写页并循环的写入并读出,若写入数据与读出数据相 同,则数据继续放置在该第一读写页中,若写入数据与读出数据不相同,则数据在该第一读 写页中重新写入;(3)若数据在第一读写页中的写入数据与读出数据重试三次都不相同,则判断为 该第一读写页损坏,然后将数据放置入第二读写页中继续读写,直至到最后一个读写页中。本专利技术与现有技术相比通过将设置的读写模块分成为若干读写页,当前一读写 页损坏后将数据放置入下一读写页中继续读写,使电可擦可编程只读存储器的寿命延长。具体实施例方式下面结合具体实施方式,进一步阐明本专利技术,应理解下述具体实施方式仅用于说 明本专利技术而不用于限制本专利技术的范围,在阅读了本专利技术之后,本领域技术人员对本专利技术的 各种等价形式的修改均落于本申请所附权利要求所限定的范围。本专利技术公开一种电可擦可编程只读存储器(EEPROM)的读写方法,该读写方法包 括以下步骤(1)在电可擦可编程只读存储器中设置用以存储需要读写数据的读写模块,且该 读写模块分成为若干读写页;优选的实施方式是所述读写模块的空间大小为所述需要读写数据的整数倍,该倍数即为读写页的个数,这样的设置可最优化的利用该电可擦可编程只 读存储器的内部空间。(2)先将数据放置于第一读写页并循环的写入并读出,若写入数据与读出数据相 同,则数据继续放置在该第一读写页中,若写入数据与读出数据不相同,则数据在该第一读 写页中重新写入。(3)若数据在第一读写页中的写入数据与读出数据重试三次都不相同,则判断为 该第一读写页损坏,然后将数据放置入第二读写页中继续读写,直至到最后一个读写页中。所述电可擦可编程只读存储器中还设置有块管理结构体,该块管理结构体用以在 上一个读写页损坏后将需要读写数据放置于下一个读写页。通过上述方法,将读写模块分成为若干读写页,使需要频繁读写的数据先在第一 读写页中循环的读写,当第一读写页损坏后再将数据放置入第二读写页中继续读写,直至 最后一个读写页,这样可优化的分配电可擦可编程只读存储器的内部空间,当某一读写页 损坏并不会影响后续读写页的使用,故可显著提升电可擦可编程只读存储器的使用寿命。以下通过一个实例来具体解释如何使用该方法假设有20个字节的数据需要频繁更新,如果按10万次的寿命,每天的操作次数 500次,如果每次都对同一块区域操作,那么若使用
技术介绍
中所述的电可擦可编程只读存 储器,半年就后这20字节可能将会无法继续擦写。如果采用以下的管理方法,将会改变这 种状态。假设希望EEPROM可以使用5年,那么可以分一个200字节存储块,并可优选的定 义如下一个结构体Typedef struct{Unsigned int start_addr ;Unsigned int page_num ;Unsigned int page_size ;Unsigned int using_page ;Unsigned int crc ;}BL0CK_INF0 Bk_Info ;初次使用时,将结构体初始化为如下数值Start_addr该块的起始地址,假设为0x1000 ;Page_num将该块分成若干页,此例中为10 ;Page_size每一页的大小,此例中为20 ;Using_page当前正在用的页号,为0 ;Crc前四项的CRC校验;将该结构体存储在电可擦可编程只读存储器的某一地址。使用时,可以根据以下 的方法查找到实际写入地址ADDR = BK_Info. start_addr+Page_size*Using_page ;ADDR 艮口为实际保存时数 据的写入地址,同样,读取数据时也可以按照上述方法将数据读出。每次将数据写入后,再 将数据读出,如果发现读出的数据和写入的不一致,那么可以重新写一次,重试三次都不成功的话,说明该页的某些字节已经达到寿命,这时,将Using_page加一,并先将该结构体存 储到电可擦可编程只读存储器中,然后便开始对下一页进行写操作,也即开始了新一个IOW 次编程操作,从而延长了读写的寿命。当using_page加到10时(即直到using_page和 page_num相等时,该块则彻底损坏),该块已经到寿命结束,但此时已经相对于
技术介绍
将 电可擦可编程只读存储器的使用寿命延长的原先的10倍。因为管理结构体只有在更改页 时才改写一次,如果按10页计算的话,总共也只需改写10次,完全不会涉及到寿命问题。 根据以上方法,既方便程序编写,也增加了电可擦可编程只读存储器的擦写次数。本文档来自技高网...
【技术保护点】
一种电可擦可编程只读存储器的读写方法,其特征在于,包括以下步骤:(1)在电可擦可编程只读存储器中设置用以存储需要读写数据的读写模块,且该读写模块分成为若干读写页;(2)先将数据放置于第一读写页并循环的写入并读出,若写入数据与读出数据相同,则数据继续放置在该第一读写页中,若写入数据与读出数据不相同,则数据在该第一读写页中重新写入;(3)若数据在第一读写页中的写入数据与读出数据重试三次都不相同,则判断为该第一读写页损坏,然后将数据放置入第二读写页中继续读写,直至到最后一个读写页中。
【技术特征摘要】
一种电可擦可编程只读存储器的读写方法,其特征在于,包括以下步骤(1)在电可擦可编程只读存储器中设置用以存储需要读写数据的读写模块,且该读写模块分成为若干读写页;(2)先将数据放置于第一读写页并循环的写入并读出,若写入数据与读出数据相同,则数据继续放置在该第一读写页中,若写入数据与读出数据不相同,则数据在该第一读写页中重新写入;(3)若数据在第一读写页中的写入数据与读出数据重试三次都不相同,则判断为该第一读写...
【专利技术属性】
技术研发人员:陈杰,丁文权,
申请(专利权)人:南京通用电器有限公司,
类型:发明
国别省市:84[中国|南京]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。