返回首页
当前位置: 主页>Flash存储开发>

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

时间:2018-04-30 02:10来源:USB开发群 作者:USB开发频道 点击:

  

在软件实现上,为了便于软件处理,建议定义一些关键宏定义和结构体,指定Flash 模拟EEPROM 的起始、结束地址、页的大小、子页的大小、每个页的子页数目等参数,同时将需要操作的参数封装起来,便于软件操作和管理,不建议定义许多离散的标志变量。

copyright dedecms

本文来自织梦

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

内容来自dedecms

内容来自dedecms

在软件操作上,Flash 模拟EEPROM模块需要提供几个API 接口给应用程序调用。

内容来自dedecms

通过typedef 关键字定义设备类型,typedef unsigned char u8;

内容来自dedecms

ChkFstPowerOnInfo()用于检测芯片是否为第一次上电并初始化EEPROM 参数到内存,原型如下。

内容来自dedecms

Void ChkFstPowerOnInfo(void);

织梦好,好织梦

FlashWrite()用于写Flash,传递的形参包括指向待写入数据的指针,待写入数据在子页中的起始字节编号,写入数据的长度,原型如下。

织梦内容管理系统

void FlashWrite( u8 *array, u8 startNum, u8 length ); copyright dedecms

FlashErase()用于擦除Flash,传递的形参是子页的编号,在擦除函数中需要根据子页的编号判断是否需要执行页的擦除操作,原型如下。 本文来自织梦

void FlashErase(u8 seg_sn); 内容来自dedecms

2.2.2 软件流程图

织梦内容管理系统

软件启动后,初始化模拟EEPROM流程图描述如下。

内容来自dedecms

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

内容来自dedecms

dedecms.com

调用API,向模拟EEPROM 写入数据的软件流程如图五所示。在软件处理中,要特别注意目标指针的切换和保证写入数据的正确性,在代码空间允许的情况下,可以增加一些校验算法来保证。 本文来自织梦

提高MSP430G系列单片机的Flash 擦写寿命的方法 织梦内容管理系统

本文来自织梦

采用划分子页的方案总结如下。

内容来自dedecms

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

内容来自dedecms

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

织梦好,好织梦

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

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

内容来自dedecms

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

2.3 两种方案的对比分析 copyright dedecms

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

织梦内容管理系统

表二 两种方案的对比分析

内容来自dedecms

 

虚拟地址加数据的方案

copyright dedecms

 

划分子页的方案 织梦好,好织梦

 

优点 copyright dedecms

 

对所有存储变量进行了虚拟地址预分配,完全模拟了EEPROM 的地址加变量数据的访问方式,易于理解并且操作简便。

copyright dedecms

 

对所有存储变量进行了封装,通过由模拟EEPROM 驱动模块提供的API 接口进行整体操作,操作简便。

本文来自织梦

存储空间利用率高。 织梦内容管理系统

 

缺点

织梦好,好织梦

 

由于为每个存储变量分配了虚拟地址,在有限Flash 资源前提下,存储空间利用率低,理论利用率低于50%。

本文来自织梦

 

每次数据保存,都需要对整个子页进行写操作,效率较低。

本文来自织梦

在每次将数据保存到模拟EEPROM 之前,需要应用程序将待写入的变量数据结构体进行整理,增加软件开销。 内容来自dedecms

 

总结

本文来自织梦

 

两种方案都可以提高Flash 的擦写寿命,用户可以结合自己的应用设计进行方案选择; 织梦内容管理系统

在有限资源前提下,如需要更大容量的数据存储空间,建议选择划分子页的方式;

dedecms.com

在实际应用中,可以根据不同的需求,将存储变量进行分类:将可能频繁变化和需要保存的非易失性数据存储到Flash 模拟EEPROM(code Flash)中,将不会经常改变的非易失性数据存储到信息Flash(information Flash)中,从而增加Flash 模拟EEPROM模块的利用率,更加灵活的实现数据保存。 内容来自dedecms

 

3. 实际的嵌入式应用 dedecms.com

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

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

内容来自dedecms

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

提高MSP430G系列单片机的Flash 擦写寿命的方法 织梦内容管理系统

dedecms.com

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

copyright dedecms

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

织梦内容管理系统

3.2 掉电时的异常处理

copyright dedecms

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

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

4. 系统可靠性设计 copyright dedecms

4.1 时钟源的选择 copyright dedecms






秦华 『上海买保险』上海地区人寿保险资深寿险顾问 上海外籍人士买保险-高端人士医疗办理
服务项目:儿童医疗/子女教育金/养老保险/重大疾病/意外伤害/员工团险/公众责任
免费热线『上海』:13761630213, QQ:107242375, Email:victor.qin@qq.com
选择保险事业 为了爱,为了一份坚定的承诺!MSN:
上海地区请直接拨打本人电话,应约免费上门提供免费保险方案。
Baoxian.ws>>           旅行签证保险、上门办理>>        重大疾病网>>     上海重大疾病一览    
友情链接: 走在上海人寿保险的前端    和讯保险博客    上海投保在线    Shanghai Insurance    秦华的个人简历


顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
图文并茂 我的链接
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
上海高端医疗/住院医疗保险信息
上海保险规划师信息
上海子女教育理财保险信息
上海保险规划师信息
上海女性高端生育保险方案-等待期
上海保险规划师信息
上海三口之家家庭保障方案
上海保险规划师信息
上海女性特色重大疾病保险方案
上海保险规划师信息
上海女性白领理财保险方案
上海保险规划师信息
上海养老理财规划保险方案
上海保险规划师信息
通过网络取得初步咨询
  •    
上海办理-免费咨询送计划书
上海买保险
上海办理-申根签证 出国旅行保险
上海买保险
上海买保险,海外基金,买保险,友邦保险,中国人民健康保险,养老保险,儿童保险,儿童医疗,子女教育金,太平洋保险,医疗保险,工伤保险条例,中国人寿保险,保险公司,中国平安保险,医疗险,进口药,自费药,外籍人士医疗,泰康人寿,英国保诚集团,上海综合保险,国际医疗保险,上海医疗保险,上海社会保险,上海养老保险,上海市综合保险,上海平安保险,上海太平洋保险,和睦家医院,上海综合保险卡,买保险,高端医疗,重大疾病,意外伤害,定期寿险,家庭理财,友邦保险,金茂大厦,少儿互助基金,上海社保,太平洋集团,港安医院