MAXQ环境下EEPROM的保护措施,MAXQ,EEPROM.docVIP

  • 1
  • 0
  • 约2.63千字
  • 约 3页
  • 2021-09-26 发布于山东
  • 举报
MAXQ环境下EEPROM的保护措施,MAXQ,EEPROM. MAXQ环境下EEPROM的保护措施,MAXQ,EEPROM. PAGE / NUMPAGES MAXQ环境下EEPROM的保护措施,MAXQ,EEPROM. MAXQ环境下 EEPROM的保护措施, MAXQ,EEPROM,保护存储器 , 非易失存储器 介绍在嵌入式微控制器应用中,通常都要用到非易失性存储器。无论是掉电时 维持需要保存的设置,还是存储公司的重要记录,可靠的非易失性存储器都是 现代微控制器领域的一个基本单元。非易失性存储常常采用外部串行存储器实 现。多年以来,该领域用到了数十亿颗类似存储器件,它们的可靠性得到了的 广泛认可。目前,存储器可以做到几百字节到 1 兆字节甚至更大的容量,在每 一个需要保持设置的设备中,都能找到这样一个紧凑、廉价的器件。 介绍 在嵌入式微控制器应用中,通常都要用到非易失性存储器。无论是掉电时维持需要保存的设置,还是存储公司的重要记录,可靠的非易失性存储器都是现代微控制器领域的一个基本单元。 非易失性存储常常采用外部串行存储器实现。多年以来,该领域用到了数十亿颗类似存储器件,它们的可靠性得到了的广泛认可。目前,存储器可以做到几百字节到 1 兆字节甚至更大的容量,在每一个需要保持设置的设备中,都能找到这样一个紧凑、廉价的器件。 包括 EEPROM、闪存和旋转式存储器在内,所有类型的非易失性存储器都面临一个共同的问题:写周期被中断时,数据会丢失。一旦在写周期执行过程中掉电,那么即使再恢复 电源,也很难修复损坏的数据。 本文提出了一种基于事务的提交 - 回退机制,用于保护一个外部串行EEPROM存储器件的内容。这些措施同样适用于大多数 MAXQ微控制器的内置EEPROM。可以下载本应用的代码文件 (ZIP ,20.5kb) 。 I2C EEPROM的特点 串行存储器件有 多种接口,但最常用的接口是 I2C 接口。这种总线接口有很多优点:高度标准化的接口;控制器和存储器之间只需两条线;而且具有灵活的 时序要求,可以由软件驱动。一个 I2C 主机可以驱动很多 I2C 从机,从而最大程度减少了主机的引脚数。 在所有 EEPROM器件中,写周期都要比读周期长的多。因为在写周期过程中,电荷需要借助隧道效应并通过绝缘层进行转移,而这个过程很费时间。虽然增加电压可以加快这个过程,但是过高的电压会导致绝缘层的介质击穿,从而损坏器件。典型的 EEPROM器件写周期持续 10 毫秒左右;而读周期通常需要几百个纳秒。 为了显著缩短写周期的时间,许多 I2C EEPROM器件采用页面模式。该模式允许将多个字节传送到缓存中,然后将数据一次性写入存储区。 I2C 存储器件的典型页面尺寸为 32 字节。因此,可以在一个写周期内向 EEPROM填入 32 个字节。 这一点非常重要,因为串行 EEPROM器件都具有特定的耐久度:即每个页面所能承受的写周期次数上限。典型的写周期次数从 10,000 到 1,000,000 次。然而,即使存储器件能够承受 1 百万次写周期,软件也会很快将其损耗殆尽。软件每秒仅执行 100 次写周期,那么不到 3 个小时就会耗尽器件的写周期次数。 考虑到这些基本的 EEPROM特性,设计者为一个嵌入式处理器设计可靠的非易失存储系统时,需切记以下几点: 不要在同一页面上反复执行写操作。尤其是不要将某个页面设置成写入任何 其它页面时都要更新的“目录”。 如果在写周期过程中电源被中断,必须提供以下机制: (1) 检测被中断的写操作; (2) 完成被中断的操作; (3) 或者将事件回退至写操作之前的状态。 必须通过某些数据校验机制 ( 校验和、 CRC或消息摘要 ) 来保证数据的完整性。 设计目标 虽然上面提到的 EEPROM问题可通过多种非易失文件系统加以解决,但这样的文件机制对于小型嵌入式微控制器来说负担过重。很多文件系统需要更多的RAM,远远超出了小型微控制器所能提供的容量,而且对于多数应用,也不需要一个完整的文件系统。 考虑到这一点,下面列出了 EEPROM数据保护机制的设计目标: 精简:保护机制用于存储校验数据的空间不应超过需要少量的计算开销。  EEPROM的 10%,它应该只 块大小:被保护的块大小,应该和 EEPROM的写操作页面大小一样。由于EEPROM器件的页面大小通常是 2 的偶数次幂,因此与每个块保留 1 或 2 个字节的做法相比,相同的尺寸大小更便于软件编码。 耐久性:每个保护周期不要对同一页面进行写操作。 可靠性:每次掉电情况下,数据都应是可恢复的。 这里提到的保护机制有 6 个接口函数:读、写、提交、回退、检查和清理。 读函数接收一个块编号和一个指向 32 字节缓存的指针。如果缓存地址和块编号处于有效范围内,程序

文档评论(0)

1亿VIP精品文档

相关文档