提高MSP430G系列单片机的Flash 擦写寿命的方法

2019-07-19 13:29发布

MSP430 产品技术支持

摘要

在嵌入式设计中,许多应用设计都需要使用EEPROM 存储非易失性数据,由于成本原因,某些单片机在芯片内部并没有集成EEPROM。MSP430G 系列处理器是TI 推出的低成本16 位处理器,在MSP430G 系列单片机中并不具备EEPROM。为了存储非易失性数据,MSP430G 系列处理器在芯片内部划分出了256 字节的Flash 空间作为信息Flash,可用于存储非易失性数据,但是由于Flash 与EEPROM 在擦写寿命上存在一定差距,所以在实际应用中,这种应用方式并不能够满足所有客户的需求。本应用笔记介绍了使用代码区域Flash 来模拟EEPROM,通过一定的软件处理算法,可以大大增加数据存储周期的一种方法。本文给出了实现上述功能的软件流程。
1.   嵌入式Flash 存储介质与EEPROM 的主要特性对比电可擦除和编程只读存储器(EEPROM)是在绝大多数嵌入式应用中都会使用到的用于保存非易失性数据的关键器件,用于在程序运行期间保存数据。Flash 闪存(Flash Memory,简称为"Flash")是一种非易失性( Non-Volatile )存储器,广泛应用于各种嵌入式处理器中,用于存储程序代码。由于硬件成本原因,在许多嵌入式处理器中并没有集成 EEPROM 模块,通常我们可以采用在片内Flash 存储器中保存非易失性数据的应用方式来达到使用要求。对一些普通的应用场合,这种使用方式可以满足要求。表一 EEPROM 与Flash 对比分析


20141009105421195.jpg

1.1 写访问时间

由于 EEPROM 和 Flash 的工作特性不同,所以写访问时间也不相同。Flash 具有更短的写访问时间,所以更适用于对存储速度有要求的场合。

1.2 写方法

外置EEPROM 和采用Flash 模拟EEPROM 的最大不同之处在于写的方法。

EEPROM:对 EEPROM 的写操作不需要额外的操作,只需要提供电源供给;但是一旦启动写操作流程后,写操作不能够被打断。所以需要外接电容器等措施来保证在芯片掉电时能够维持供电,保证完成数据操作。

Flash 模拟 EEPROM:当芯片上电后,写操作可以被电源掉电和芯片复位打断。和 EEPROM 相比,需要应用设计者增加相关的处理来应对可能存在的异常。

1.3 擦写时间

EEPROM 和采用Flash 模拟EEPROM 在擦除时间上存在很大的差异。

与 Flash 不同,EEPROM 在进行写操作之前不要擦除操作。由于 Flash 需要几个毫秒时间进行擦除操作,所以如果在进行擦除操作的过程中出现电源掉电的情况,需要软件做相关的保护处理。为了设计一个健壮的Flash 存储器的管理软件,需要深入的了解和掌握Flash 存储器的擦除过程特性。

2.  增加Flash 模拟EEPROM 擦写寿命的方法

可以根据用户的需求采用不同的方法实现Flash 存储器模拟EEPROM。

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
5条回答
fentianyou
2019-07-19 23:13
采用划分子页的方案总结如下。

•  每次写入模拟EEPROM 的数据长度为定长,即为子页的长度。

•  软件需要定义一个存储变量结构体,用于刷新和同步模拟EEPROM 内容。在将数据写入模拟EEPROM 之前,程序员需要按照约定的数据格式,在内存中将所有的目标存储变量进行整理。

• 在软件处理上,需要计算当前写入和下一次写入的物理地址;在每一次执行写入操作后,根据子页长度大小,将指向子页的目的操作指针自动累加。

• 待一个页(Page)写满后,需要将最后更新的模拟EEPROM 数据拷贝到下一个页,再对写满页执行一次擦除操作。

• 在嵌入式软件处理上需加入合适的校验机制,保证写入数据的正确性并监测用于模拟EEPROM功能的Flash 子页是否已经失效。

2.3 两种方案的对比分析

两种方案的对比分析见表二。

表二两种方案的对比分析

20141009105422254.jpg

3.  实际的嵌入式应用

根据软件需要,建议采用字节(8bit)做为操作的最小粒度,适用性会更广泛。

3.1 Flash存储器擦写寿命的提升

对于MSP430G 系列的Flash 存储器,可以保证至少10000 次的编程和擦除寿命。如图六所示。

20141009105422641.jpg

图六  MSP430G 系列单片机Flash 编程和擦除寿命

采用划分小页结合至少分配2 个大页的操作方式,则可以大大增加Flash 模拟EEPROM 的擦写寿命。例如,对于MSP430G 系列单片机,如果将每个小页的尺寸划分为16 字节,采用2 个大页(每页512 字节)作为模拟 EEPROM 使用,则可以提供 64 个操作子页((512/16)x2=64),可以保证至少640000 次的擦写寿命。

3.2 掉电时的异常处理

如果正在进行Flash 数据存储时发生掉电,数据可能会保存不成功,存在异常。为了增强健壮性,在软件处理上,需要考虑设备异常掉电等可能会导致Flash 擦写失败的情况。

在软件处理中,当成功保存Flash 数据后,再写入该子页的状态标志。单片机上电后,用户程序将查找最后一次写入的子页,再将该子页的数据内容并恢复到内存中的数据结构中。

一周热门 更多>