访问手机版页面
你的位置:老古开发网 > 其他 > 正文  
经验谈:一种延长E²PROM使用寿命的方法
内容导读:

  E2PROM是可电擦除的数据存储器。这种存储器的优点是数据可永久保存,无需外加电源。正是因为这个原因,E2PROM在单片机中得到了广泛的应用。E2PROM的缺点是数据的写入次数是有限的且读写速度较慢,以现在流行的串行E2PROM为例,寿命一般在10万次左右。这虽然能满足多数用户的要求,但当要进行大量的数据读写操作时,难免发生数据写入错误,因此必须提供多个单元来存储统一数据,以提高E2PROM的写入寿命。本文采用滚动地址指针的方法,实现多单元数据指针的自动定位。

一、数据指针定位

  数据指针就是指向存储数据的E2PROM单元地址。为了便于数据指针的自动定位,我们用一锁链式队列来存储数据,将数据和地址混合存储(数据+地址指针),并事先规定数据重复存储的数量为2的幂次。如果数据重复存储的数量为2I,数据指针的字长为J,第K个数据的自动指针K = K Mod 2I = K Mod 2J。为了便于理解,我们选单一字节地址作为地址指针,这样同一数据重复存储的次数依次可以是2、4、8、16、32、64、128。我们用0~255来代表不同的地址单元。图1给出了一个重复K次的锁链式队列。

  图1中的每个地址都是一个数据存储的首地址。我们用K表示一个数据E2PROM中开辟存储单元的个数。数据在E2PROM中一般按连续地址存放,所以,后一个数据的地址一定为前一个数据的地址加1。这样,就不难给出当前地址指针:


图1  数据存储方式

  如果地址指针的P字长为K,则它可以表示地址数为2K,自动地址指针的最大数字2K-1,当地址指针超过2K时,将自动回0。由于为同一数据开辟的地址单元都限定为2的幂次,所以,最后存入数据的地址指针与下一个地址指针一定不是连续数,这样即取得了数据的当前指针。只要对读取的地址指针取模运算,即可得到实际数据的存储地址。

  理论上可以证明,只要数据重复单元的数量为2的幂次,且不超地址指针的范围,则最后写入数据的单元的下一个单元的两个地址一定是间断的。

二、四字节锁链队列

  下面介绍数据在X25045中多单元重复存储的方法,并给出16次重复存储的数据指针定位实用程序(限于篇幅,程序部分从略,需要者可从本刊网上查询带实用程序的全文)。

  我们知道,X25045一次最多只能写入4字节的数据。如果要存储的某个数据为3个字节,则可将第4个字节作为地址指针存储,从而形成4字节的锁链队列。假定用100H开始的64个连续地址存储数据,则第4字节的数据指针内容可能是表1中的数据。

  由表1可见,最后写入数据的地址指针的下一地址是间断的,只要对表中数据取16的模即可得到实际的数据存储地址。表中1、2、3行地址是15;4行地址是1;5行地址是0;6行地址是3。

表1  8位指针数据表

  我们用自动指针的方法实现了同一数据的多单元滚动存储。从某种意义上讲,它延长了E2PROM的使用寿命,因此有着广泛的工程应用价值。

标签:
来源:单片机与嵌入式系统应用 作者:哈药集团制药总厂 郎建军 苍宏伟 时间:2006/2/12 0:00:00
相关阅读
推荐阅读
阅读排行
最近更新
商品推荐