利用基于闪存的MCU实现用户数据存储
时间:08-24
来源:Maxim公司工程经理:Ben Smith
点击:
方案2
问题:要求用非易失性存储技术来跟踪用电量和其他经常变化的数据。更新经常是一周数次或一天数次发生。
解决方案:这是即使传统EEPROM也需要寻求帮助的场合。问题是:更新的频率和所有非易失性存储器有限的写入寿命这样的事实不允许反复写入和擦除单个EEPROM单元。考虑一个小时更新一次的情况,具有1万次写入-擦除次数限制的EEPROM只需一年时间就会失效,这个时间比电表所需的十年设计目标少得太多了。
解决这个问题的方法之一是实现某种形式的"损耗均衡"。这意味着不会有单个位置被反复写数据。相反,写入操作将呈类似合理指数分布的方式分散到整个存储器阵列。
损耗均衡是一种很好理解的技术,在闪存器件中使用就是出于这个目的。但它的算法非常复杂和难以理解,不过对我们来说,一个更简单的原理介绍就足够了。
存储阵列中的数据项是由数据单元(data element)号引用的,而不是地址。
数据单元号是一个唯一识别数据单元的任意8位数,因此在这种方案中,最多有255个数据单元(数据单元0是保留单元)。
每个数据单元有一个双字节的头部(见图2),包含了数据单元号和数据单元长度以及留给差错管理使用的足够空间,其中长度是一个两位代码,可表示1个、2个、3个或4个16位的字。
问题:要求用非易失性存储技术来跟踪用电量和其他经常变化的数据。更新经常是一周数次或一天数次发生。
解决方案:这是即使传统EEPROM也需要寻求帮助的场合。问题是:更新的频率和所有非易失性存储器有限的写入寿命这样的事实不允许反复写入和擦除单个EEPROM单元。考虑一个小时更新一次的情况,具有1万次写入-擦除次数限制的EEPROM只需一年时间就会失效,这个时间比电表所需的十年设计目标少得太多了。
解决这个问题的方法之一是实现某种形式的"损耗均衡"。这意味着不会有单个位置被反复写数据。相反,写入操作将呈类似合理指数分布的方式分散到整个存储器阵列。
损耗均衡是一种很好理解的技术,在闪存器件中使用就是出于这个目的。但它的算法非常复杂和难以理解,不过对我们来说,一个更简单的原理介绍就足够了。
存储阵列中的数据项是由数据单元(data element)号引用的,而不是地址。
数据单元号是一个唯一识别数据单元的任意8位数,因此在这种方案中,最多有255个数据单元(数据单元0是保留单元)。
每个数据单元有一个双字节的头部(见图2),包含了数据单元号和数据单元长度以及留给差错管理使用的足够空间,其中长度是一个两位代码,可表示1个、2个、3个或4个16位的字。
![]() 图2:数据单元的头部结构 写一个数据单元需要知道写入数据的地址、写入数据的单元号和长度。写函数先寻找阵列结尾,然后紧跟最后一个记录之后写入新的数据单元。 如果闪存页中没有足够的空间容纳指定长度的记录,一个表示结尾的页标记将被写入,并会打开一个新的页。有关典型数据页的结构请见图3。
|
- USB闪存盘驱动器与PIC微控制器的接口设计(04-04)
- 连结USB闪存盘与PIC微控制器的简单方案(04-05)
- 基于ARM的定时继电器驱动模板的设计(08-04)
- ST 8引脚微控制器系列产品扩大存储容量(04-15)
- ARM与英蓓特推出中国版低成本RealView微控制器开发工具包(04-28)
- ST发布32位微控制器/系统级芯片STM32W 助力无线监视应用(09-15)


