位置:51电子网 » 技术资料 » 存 储 器

MAXQ环境下EEPROM的保护措施

发布时间:2008/5/27 0:00:00 访问次数:531

        

    

    

    介绍

    

    在嵌入式微控制器应用中,通常都要用到非易失性存储器。无论是掉电时维持需要保存的设置,还是存储公司的重要记录,可靠的非易失性存储器都是现代微控制器领域的一个基本单元。非易失性存储常常采用外部串行存储器实现。多年以来,该领域用到了数十亿颗类似存储器件,它们的可靠性得到了的广泛认可。目前,存储器可以做到几百字节到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字节缓存的指针。如果缓存地址和块编号处于有效范围内,程序就会将指定的块数据读入缓存

        

    

    

    介绍

    

    在嵌入式微控制器应用中,通常都要用到非易失性存储器。无论是掉电时维持需要保存的设置,还是存储公司的重要记录,可靠的非易失性存储器都是现代微控制器领域的一个基本单元。非易失性存储常常采用外部串行存储器实现。多年以来,该领域用到了数十亿颗类似存储器件,它们的可靠性得到了的广泛认可。目前,存储器可以做到几百字节到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字节缓存的指针。如果缓存地址和块编号处于有效范围内,程序就会将指定的块数据读入缓存

相关IC型号

热门点击

 

推荐技术资料

循线机器人是机器人入门和
    循线机器人是机器人入门和比赛最常用的控制方式,E48S... [详细]
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!