一种eeprom的存储方法

文档序号:6377809阅读:491来源:国知局
专利名称:一种eeprom的存储方法
技术领域
本发明涉及数据存储的技术领域,具体涉及一种EEPROM的存储方法。
背景技术
目前EEPROM普遍使用静态存储方式存储数据,静态存储方式是将接收到的数据根据关联性分成若干个大小不大于EEPROM中数据块容量的数据包,将数据包分别写入 EEPROM的数据块中。在接收到新的数据包时,将新数据包写入到对应旧数据包所存储的数据块中,即新数据包覆盖其对应的旧数据包。这样每次更新数据包都擦写其对应的同一地址,更新频率快的数据包对应的数据块擦写频率也快,而数据块的擦写次数是有限的,目前数据块的擦写次数极限值为100万次,在擦写次数达到极限值后,该数据块作废,从而对应 EEPROM也因此作废。由此可见,EEPROM的静态存储方式使数据块的利用率低,而且使用寿命短。另外,在同一时间内,EEPROM中的数据包只存储一份,不利于数据保存,安全性低。例如,EEPROM中某些块的损坏,将 导致相对应的数据永远丢失。发明内容
本发明的目的是克服现有技术静态存储方式数据块的利用率低以及使用寿命短的不足和缺陷,提供一种EEPROM的存储方法,提高EEPROM中数据块的利用率、延长EEPROM 的使用寿命。
本发明的目的是通过以下技术方案来实现的一种EEPROM的存储方法,所述 EEPROM划分为有效数据存储区和坏块数据存储区,所述有效数据存储区用于存储有效数据,所述坏块数据存储区用于存储坏块数据,所述坏块数据用于存储EEPROM中的坏块信息;所述有效数据包括工厂调试数据、人工操作数据以及无线接收数据,对应地,有效数据存储区以数据块为单位划分成用于存放工厂调试数据的极少更新区,用于存放人工操作数据的慢速更新区以及用于存放无线接收数据的快速更新区;
所述EEPROM上电运行时包括以下步骤
步骤A、在预先设定的时间段内截取有效数据,每一类有效数据分别组成相应的一个或一个以上大小不大于数据块容量的数据包;
步骤B、将有更新的数据包作为待更新数据包写入至EEPROM中相应的数据存储区中,若待更新数据包为工厂调试数据的数据包则以静态存储方式写入极少更新区,若待更新数据包为人工操作数据的数据包则以动态存储方式写入慢速更新区,若待更新数据包为无线接收数据的数据包则以动态存储方式写入快速更新区。
优选地,根据数据包的多少、数据包中数据的重要性以及数据包更新频率的快慢划分对应数据存储区内数据块的多少。所述数据包包数越多、对应数据越重要、更新频率越快对应的数据存储区分配的数据块越多,反之数据包包数越少、对应数据越不重要、更新频率越慢对应的数据存储区分配的数据块越少。
优选地,所述EEPROM的存储方法,还包括在截取有效数据前通过读取EEPROM的信息,在RAM中建立索引表的步骤。
优选地,所述索引表包括EEPROM中各个数据包的标识符组成的数组和各数据包的时间戳组成的数组。
优选地,所述EEPROM的存储方法,还包括建立索引表后的坏块检测步骤。
优选地,所述坏块检测的步骤具体如下
aOl、获取待检测数据块的地址;
a02、在获取地址对应的数据块中写入全为“I”的数据;
a03、读取步骤a02写入的数据;
a04、判断步骤a03读取的数据与步骤a02写入的数据是否完全一致;若两者完全一致,则执行步骤a05,否则执行a08 ;
a05、在步骤aOl获取的地址对应的标记坏块中写入全为“O”的数据;
a06、读取步骤a05写入的数据;
a07、判断步骤a06读取的数据与步骤a05写入的数据是否完全一致;若两者不完全一致,则执行步骤a08,否则执行a09 ;
a08、判定该数据块为坏块,更新坏块数据,并执行步骤alO ;
a09、判定数据块为完好数据块,释放相应坏块标记,并执行步骤alO ;
alO、判断是否还有待检测数据块,若有待检测数据块则执行步骤all,否则执行步骤 al2 ;
all、获取下一个待检测数据块地址,并执行步骤a02 ;
al2、更新索引表。
优选地,所述步骤B中通过查询RAM中的索引表获取写入地址。
优选地,所述步骤B中的动态存储方式具体如下
b01、判断待写入数据包对应的数据存储区是否有空块,若有空块则执行步骤b02, 否则执行步骤b03;
b02、获取地址最低的空块地址作为写入地址;
b03、获取待写入数据包相应数据存储区内块的总量;
b04、获取待写入数据包相应数据存储区内数据包类型的总量;
b05、获取待写入数据包相应数据存储区内坏块的总量;
b06、取平均数的整数部分作为平均备份数,所述平均数=(块的总量_坏块的总量)/数据包类型的总量;
b07、获取对应数据存储区各类型数据包的备份数;
b08、查询是否有数据包的备份数大于平均备份数,若相应数据存储区内数据包的备份数均不大于平均备份数,则执行步骤b09,否则执行blO ;
b09、获取待写入数据包本身最早备份的地址作为写入地址;
blO、获取备份数大于平均备份数且地址最低的数据包最早备份的地址作为写入地址;
bll、将待写入数据包写入上述步骤获取的写入地址。
优选地,还包括写入数据包后,校验数据包是否成功写入的校验步骤。
优选地,所述校验步骤包括
cOl、读取新写入数据包与写入前数据包比较;
c02、判断新写入数据包与写入前数据包是否完全一致,若完全一致则执行步骤 c03,否则执行c04 ;
c03、数据包写入成功;
c04、判断不一致次数是否超过三次,若不一致次数超过三次,则执行步骤c06,否则执行步骤c05 ;
c05、重新写入数据包,并执行cOl ;
c06、在缓冲区中标记坏块;
c07、判断数据包是否以静态存储方式写入,是则执行步骤c08,否则执行步骤 c09 ;
c08、停止写入,并执行步骤ClO ;
c09、重新获取写入地址写入待写入数据包,并执行步骤ClO ;
c 10、执行坏块检测。
本发明相比现有技术具有以下优点及有益效果
I、本发明一种EEPROM的存储方法通过将EEPROM分成极少更新区、慢速更新区、 快速更新区以及坏块数据存储区,并通过动态存储方式与静态存储方式相结合,增加了 EEPROM的利用率、延长EEPROM的使用寿命以及缩短访问EEPROM的寻址时间。
2、本发明动态存储方式使数据包多次备份,增加了数据存储的安全性。
3、本发明通过在RAM中建立索引表,方便写入与读取时寻址,不需要访问EEPROM ; 减少访问EEPROM的次数,提高访问效率。
4、本发明在建立索引表后检测标记坏块,释放错误标记的完好块,减少EEPROM存储空间的浪费。
5、本发明通过坏块数据对坏块进行标示,从而在读写寻址算法中屏蔽掉坏块地址,减少寻址时间,从而缩短访问时间。
6、本发明将数据包写入后进行校验,提高了写入的正确率,防止偶然写入失败或将数据包写入坏块而将数据丢失。


图I为本发明EEPROM存储区域划分示意图2为本发明一种EEPROM的存储方法实施例流程图3为坏块检测流程图4为动态存储方式流程图5为校验数据包是否成功写入的流程图。
具体实施方式
下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
如图I所示,一种EEPROM的存储方法,所述EEPROM划分为有效数据存储区和坏块数据存储区,所述有效数据存储区用于存储有效数据,所述坏块数据存储区用于存储坏块数据,所述坏块数据用于存储EEPROM中的坏块信息;所述有效数据包括工厂调试数据、人工操作数据以及无线接收数据,对应地,有效数据存储区以数据块为单位划分成用于存放工厂调试数据的极少更新区,用于存放人工操作数据的慢速更新区以及用于存放无线接收数据的快速更新区;
所述EEPROM上电运行时包括以下步骤
步骤A、在预先设定的时间段内截取有效数据,每一类有效数据分别组成相应的一个或一个以上大小不大于数据块容量的数据包;
步骤B、将有更新的数据包作为待更新数据包写入至EEPROM中相应的数据存储区中,若待更新数据包为工厂调试数据的数据包则以静态存储方式写入极少更新区,若待更新数据包为人工操作数据的数据包则以动态存储方式写入慢速更新区,若待更新数据包为无线接收数据的数据包则以动态存储方式写入快速更新区。
所述步骤C中分配数据存储区时根据数据包的多少、数据包中数据的重要性以及数据包更新频率的快慢划分对应数据存储区内数据块的多少。所述数据包包数越多、对应数据越重要、更新频率越快对应的数据存储区分配的数据块越多,反之数据包包数越少、对应数据越不重要、更新频率越慢对应的数据存储区分配的数据块越少。以此将EEPROM的数据存储区利用率最大化,使用寿命最长。
另外,通过对EEPROM数据存储空间的划分,缩短了访问EEPROM的时间,增加了访问效率;动态存储和静态存储方式相结合,确保了 EEPROM的数据存储区的高效利用,也确保了访问EEPROM的效率;动态存储方式将数据多次备份,增加了数据的存储安全性。
如图2所示,在本实施例中EEPROM的存储方法实施过程如下
SlOl、通过读取EEPROM的信息,在RAM中建立索引表,所述索引表包括EEPROM中各数据包的标识符组成的数组和各数据包的时间戳组成的数组,存储过程中通过访问RAM 中的索引表即可获得写入地址,减少了存储过程中对EEPROM的访问次数,增加了存储速度。
S102、检测坏块,通过检测坏块步骤释放因突然掉电,再重新上电运行时,被判断为坏块的完好数据块,减少了 EEPROM存储空间的浪费。
如图3所示,所述检测坏块步骤具体如下
aOl、获取待检测数据块的地址;
a02、在获取地址对应的数据块中写入全为“I”的数据;
a03、读取步骤a02写入的数据;
a04、判断步骤a03读取的数据与步骤a02写入的数据是否完全一致;若两者完全一致,则执行步骤a05,否则执行a08 ;
a05、在步骤aOl获取的地址对应的标记坏块中写入全为“O”的数据;
a06、读取步骤a05写入的数据;
a07、判断步骤a06读取的数据与步骤a05写入的数据是否完全一致;若两者不完全一致,则执行步骤a08,否则执行a09 ;
a08、判定该数据块为坏块,更新坏块数据,并执行步骤alO ;
a09、判定数据块为完好块,释放相应坏块标记,并执行步骤alO ;
alO、判断是否还有待检测数据块,若有待检测数据块则执行步骤all,否则执行步骤 al2 ;
all、获取下一个待检测数据块地址,并执行步骤a02 ;
al2、更新索引表。
S103、在预先设定的时间段内截取有效数据,每一类有效数据分别组成相应的一个或一个以上大小不大于数据块容量的数据包。
S104、将有更新的数据包作为待更新数据包写入至EEPROM中相应的数据存储区中,若待更新数据包为工厂调试数据的数据包则以静态存储方式写进极少更新区,若待更新数据包为人工操作数据的数据包则以动态存储方式写进慢速更新区,若待更新数据包为无线接收数据的数据包则以动态存储方式写进快速更新区。
具体地通过查询RAM中的索引表获取写入地址。
如图4所示,其中动态存储方式具体如下
bOl、判断待写入数据包对应的数据存储区是否有空块,若有空块则执行步骤b02, 否则执行步骤b03;
b02、获取地址最低的空块地址作为写入地址;
b03、获取待写入数据包相应数据存储区内块的总量;
b04、获取待写入数据包相应数据存储区内数据包类型的总量;
b05、获取待写入数据包相应数据存储区内坏块的总量;
b06、取平均数的整数部分作为平均备份数,所述平均数=(块的总量_坏块的总量)/数据包类型的总量;
b07、获取对应数据存储区各类型数据包的备份数;
b08、查询是否有数据包的备份数大于平均备份数,若相应数据存储区内数据包的备份数均不大于平均备份数,则执行步骤b 09,否则执行blO ;
b09、获取待写入数据包本身最早备份的地址作为写入地址;
blO、获取备份数大于平均备份数且地址最低的数据包最早备份的地址作为写入地址;
bll、将待写入数据包写入上述步骤获取的写入地址。
S105、校验数据包是否成功写入。通过校验步骤,确保待写入数据包成功写入,防止偶然写入失败或将待写入数据包写入至坏块中而导致数据丢失的情况。
如图5所示,所述校验数据包是否成功写入的具体包括以下步骤
cOl、读取新写入数据包与写入前数据包比较;
c02、判断新写入数据包与写入前数据包是否完全一致,若完全一致则执行步骤 c03,否则执行c04 ;
c03、数据包写入成功;
c04、判断不一致次数是否超过三次,若不一致次数超过三次,则执行步骤c06,否则执行步骤c05 ;
c05、重新写入数据包,并执行cOl ;
c06、在缓冲区中标记坏块;
c07、判断数据包是否以静态存储方式写入,是则执行步骤c08,否则执行步骤 c09 ;8
c08、停止写入,并执行步骤ClO ;
c09、重新获取写入地址写入待写入数据包,并执行步骤ClO ;
c 10、执行坏块检测。
另外,本发明通过动态存储方式使数据包多次备份,增加了数据存储的安全性;通过坏块数据对坏块进行标示,从而在读写寻址算法中屏蔽掉坏块地址,减少寻址时间,从而缩短访问时间。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化, 均应为等效的置换方式,都包含在本发明的保护范围之内。
权利要求
1.一种EEPROM的存储方法,其特征在于,所述EEPROM划分为有效数据存储区和坏块数据存储区,所述有效数据存储区用于存储有效数据,所述坏块数据存储区用于存储坏块数据,所述坏块数据用于存储EEPROM中的坏块信息;所述有效数据包括工厂调试数据、人工操作数据以及无线接收数据,对应地,有效数据存储区以数据块为单位划分成用于存放工厂调试数据的极少更新区,用于存放人工操作数据的慢速更新区以及用于存放无线接收数据的快速更新区; 所述EEPROM上电运行时包括以下步骤 步骤A、在预先设定的时间段内截取有效数据,每一类有效数据分别组成相应的一个或一个以上大小不大于数据块容量的数据包; 步骤B、将有更新的数据包作为待更新数据包写入至EEPROM中相应的数据存储区中,若待更新数据包为工厂调试数据的数据包则以静态存储方式写入极少更新区,若待更新数据包为人工操作数据的数据包则以动态存储方式写入慢速更新区,若待更新数据包为无线接收数据的数据包则以动态存储方式写入快速更新区。
2.根据权利要求I所述EEPROM的存储方法,其特征在于根据数据包的多少、数据包中数据的重要性以及数据包更新频率的快慢划分对应数据存储区内数据块的多少。
3.根据权利要求2所述EEPROM的存储方法,其特征在于还包括在截取有效数据前通过读取EEPROM的信息,在RAM中建立索引表。
4.根据权利要求3所述存储器的动态存储方法,其特征在于所述索引表包括EEPROM中各个数据包的标识符组成的数组和各数据包的时间戳组成的数组。
5.根据权利要求4所述EEPROM的存储方法,其特征在于还包括建立索引表后的坏块检测步骤。
6.根据权利要求5所述EEPROM的存储方法,其特征在于,所述坏块检测的步骤具体如下 aOl、获取待检测数据块的地址; a02、在获取地址对应的数据块中写入全为“I”的数据; a03、读取步骤a02写入的数据; a04、判断步骤a03读取的数据与步骤a02写入的数据是否完全一致;若两者完全一致,则执行步骤a05,否则执行a08 ; a05、在步骤aOl获取的地址对应的标记坏块中写入全为“O”的数据; a06、读取步骤a05写入的数据; a07、判断步骤a06读取的数据与步骤a05写入的数据是否完全一致;若两者不完全一致,则执行步骤a08,否则执行a09 ; a08、判定该数据块为坏块,更新坏块数据,并执行步骤alO ; a09、判定数据块为完好数据块,释放相应坏块标记,并执行步骤alO ; alO、判断是否还有待检测数据块,若有待检测数据块则执行步骤all,否则执行步骤al2 ; all、获取下一个待检测数据块地址,并执行步骤a02 ; al2、更新索引表。
7.根据权利要求6所述EEPROM的存储方法,其特征在于所述步骤B中通过查询RAM中的索引表获取与入地址。
8.根据权利要求7所述EEPROM的存储方法,其特征在于,所述步骤B中的动态存储方式具体如下bOl、判断待写入数据包对应的数据存储区是否有空块,若有空块则执行步骤b02,否则执行步骤b03 ;b02、获取地址最低的空块地址作为写入地址; b03、获取待写入数据包相应数据存储区内块的总量; b04、获取待写入数据包相应数据存储区内数据包类型的总量; b05、获取待写入数据包相应数据存储区内坏块的总量;b06、取平均数的整数部分作为平均备份数,所述平均数=(块的总量_坏块的总量)/ 数据包类型的总量;b07、获取对应数据存储区各类型数据包的备份数;b08、查询是否有数据包的备份数大于平均备份数,若相应数据存储区内数据包的备份数均不大于平均备份数,则执行步骤b 09,否则执行blO ;b09、获取待写入数据包本身最早备份的地址作为写入地址;blO、获取备份数大于平均备份数且地址最低的数据包最早备份的地址作为写入地址;bll、将待写入数据包写入上述步骤获取的写入地址。
9.根据权利要求8所述EEPROM的存储方法,其特征在于还包括写入数据包后,校验数据包是否成功写入的校验步骤。
10.根据权利要求9所述EEPROM的存储方法,其特征在于,所述校验步骤包括 cOl、读取新写入数据包与写入前数据包比较;c02、判断新写入数据包与写入前数据包是否完全一致,若完全一致则执行步骤c03,否则执行c04 ;c03、数据包写入成功;c04、判断不一致次数是否超过三次,若不一致次数超过三次,则执行步骤c06,否则执行步骤c05 ;c05、重新写入数据包,并执行cOl ; c06、在缓冲区中标记坏块;c07、判断数据包是否以静态存储方式写入,是则执行步骤c08,否则执行步骤c09 ; c08、停止写入,并执行步骤ClO ;c09、重新获取写入地址写入待写入数据包,并执行步骤ClO ; c 10、执行坏块检测。
全文摘要
本发明涉及一种EEPROM的存储方法,所述EEPROM划分成有效数据存储区和坏块数据存储区;所述坏块数据存储区用于存储坏块数据,所述坏块数据用于存储EEPROM中的坏块信息;所述有效数据包括工厂调试数据、人工操作数据以及无线接收数据;以数据块为单位将有效区划分成极少更新区、慢速更新区以及快速更新区;截取有效数据,并按照有效数据的类型组成数据包;将有更新的数据包作为待更新数据包写入至EEPROM中相应的数据存储区中,其中工厂调试数据的数据包采用静态存储方式写入,人工操作数据和无线接收数据的数据包采用动态存储方式写入。本发明增加了EEPROM的利用率、延长EEPROM的使用寿命缩短访问EEPROM的寻址时间以及提高写入的正确率。
文档编号G06F12/06GK102929794SQ20121036442
公开日2013年2月13日 申请日期2012年9月26日 优先权日2012年9月26日
发明者张羽萍 申请人:惠州市德赛西威汽车电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1