老古开发网首页
导航:老古开发网首页文章索引文章分类新闻热点→[经验谈:一种延长E²PROM使用寿命的方法]
| -文章搜索 - 最新文章 - |

经验谈:一种延长E²PROM使用寿命的方法

发布时间:2006年3月4日 点击次数:723
来源:单片机与嵌入式系统应用   作者:哈药集团制药总厂 郎建军 苍宏伟
 

  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的使用寿命,因此有着广泛的工程应用价值。


欢迎进入老古论坛进行讨论
[新闻热点] 相关文章:
Intel-研华基于RISC CPU全系列新产品正式发布
简介:
  2002年9月17—20日,研华公司嵌入式事业部分别在北京、上海和深圳举办了“Intel-研华基于RISC CPU全系列新产品发布会”。会上研华公司进行了研华全系列RISC产品发布,介绍了客制化设计服务、研华小批量快速ODM服务和研华成功案例。Intel公司作了Intel处理器推动嵌入式和通信应用的报告。会议期间还展示了研华公司基于StrongARM的超低功耗主板PCM-7130及其评估包, 推出基于Xcale的平台PCM-7210+SOM-1240。......

意法半导体巡回展示会报道
2002中国(深圳)嵌入式系统技术与应用研讨会和蓝牙论坛报道
要想设计一个以单片机为控制核心的工业控制系统,其全套开发系统包括那些?目前市场上开发系统品牌繁多,良莠不齐,不知选择购买哪个品牌较好(以8051系列为例)?
2002年四川单片机及嵌入式系统学术会议报道
构建完整的嵌入式Linux系统研讨会报道
从专用RTOS到嵌入式Linux研讨会报道
深圳市嵌入式系统与单片机专业委员会成立
第七届国际集成电路展(IIC)——北京展区巡礼
读者报道:单片机汇编程序开发系统的新秀——VOLON开发机
 
下一个:[新闻热点]经验谈:实现程序分割的加密方法
简介:
  目前,国内流行使用的单片机按加密程度可大致分为两类:一类用硬件手段实现了程序不能被读出;另一类做不到这一点,于是就采取各种手段进行加密,常见的方法是防止程序被别人读懂但却无法防止别人拷贝过去盗用。本人找到了一种方法可以做到即使拷贝过去也无法使用。 1. 用软件实现电位器功能的系统   在一些智能仪表和家用电器的控制系统中,过去在模拟系统中要实现零点调整和量程调整往往各用一个电位器;而在单片机应用系统中,可以在软件中采用一个直线方程,用调整直线的斜率和截距的方法来实现。在这样的系统中,程序一般分成两部分:(1)正常运行部分;(2)标定/设置部分。为了防止别人乱动,进入设置......
 

上一个:[常见技术问答]在单片机与嵌入式系统开发和产品的生产过程中,程序存储器的编程方法有哪些?

老古开发网版权所有 2006年9月 asp.Net V2.0 设计:老古
页面缓存:10分钟 执行时间:0毫秒