[发明专利]一种利用MCU内部数据Flash存储非易失性数据的方法有效

专利信息
申请号: 201210074452.5 申请日: 2012-03-20
公开(公告)号: CN102662852A 公开(公告)日: 2012-09-12
发明(设计)人: 马建辉;王知学;刘源杨;李研强 申请(专利权)人: 山东省科学院自动化研究所
主分类号: G06F12/06 分类号: G06F12/06
代理公司: 济南圣达知识产权代理有限公司 37221 代理人: 张勇
地址: 250014 山*** 国省代码: 山东;37
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 利用 mcu 内部 数据 flash 存储 非易失性 方法
【说明书】:

 

技术领域

发明属于嵌入式系统技术领域,更具体的说是一种利用MCU内部数据Flash存储非易失性数据的方法。

背景技术

在嵌入式系统设计中,经常需要存储一些非易失性的数据,如果采用支持对字节读写的EEPROM实现数据存储,操作起来和RAM一样简单方便,但同时会在大批量产品的生产中带来成本问题和维护问题。在有数据Flash的MCU中,采用数据Flash代替EEPROM实现非易失性的存储,便可以节约成本且无需维护。

用Flash存储数据的传统方式是为每个数据分配固定的存储地址,由于Flash在进行写操作时需要先擦除数据所在的整个扇区,对一个数据进行写操作便会造成对扇区内其他数据的擦除,由于擦除操作耗时较长,不仅效率低,影响嵌入式系统的实时性,而且为了避免丢失其他数据需要相当复杂的处理,对MCU的RAM空间也有一定的要求。如果写入数据失败,会造成所写入数据的丢失,如果在擦除扇区后发生掉电,便会造成扇区内所有数据的丢失。不仅如此,由于每次写入操作都需要先擦除扇区,以擦除次数表征的Flash使用寿命也无法满足产品生命周期的要求。

发明内容

本发明的目的就是为解决上述问题,提供一种利用MCU内部数据Flash存储非易失性数据的方法,它不仅操作方便,应用接口简单,而且可以尽量避免扇区擦除操作,提高存储效率,同时提高MCU内部数据Flash的使用寿命。

为实现上述目的,本发明采用如下技术方案:

一种利用MCU内部数据Flash存储非易失性数据的方法,将所有非易失性数据条目组织在一个分区中,将数据Flash的若干扇区划分为多个数据分区,不同数据分区存储数据在不同历史时间的拷贝;当前数据分区存储最新的数据拷贝;在数据读操作进行时,计算最新数据拷贝的Flash存储位置,直接读取该地址;在数据写操作进行时,判断数据写入位置是否已经被擦除,如果写入位置未擦除,进行分区拷贝操作,即将数据写入下一个分区,同时将当前分区中的其他数据依次复制到下一个分区;如果写入位置已经擦除,直接将数据写入当前分区中,其他数据保持不变。

本发明数据分区的存储结构为分区状态字+data id 1+data 1+data id 2+data 2…,每个数据都可以很方便地进行寻址。按照存储历史时间,数据均匀地存储在多个数据分区上,而不是固定的存储地址,单个数据的频繁存储操作不会造成对固定扇区的反复擦除,这样便可以提高Flash的使用寿命,以满足产品生命周期的要求。

所述数据分区大小和个数取值均为2的幂次方,且分区个数不大于256,分区大小*分区个数等于扇区大小*扇区个数。扇区个数至少为2,这样当存在分区拷贝操作需要擦除分区所在的扇区时,仍能保留至少一个扇区的历史数据,这样可以避免分区拷贝操作期间发生掉电而造成所有数据的丢失,以满足实现掉电恢复功能的需要。

所述数据分区设置有状态字,大小为单字节,位置在分区起始地址,标识分区数据的存储历史时间,最新数据分区状态字代表的分区为最新数据分区。数据分区状态字在分区擦除后执行完第一次写操作后更新,之后本分区内的写操作不影响分区状态字。当发生分区拷贝时,最新数据分区状态字递增且不等于0xff,当递增到0xff时,设置状态字为0。通过在写操作完成后进行分区状态字的更新,保证了即使在分区拷贝期间发生掉电,上电时查找到的最新数据仍为掉电之前备份的那个分区,这样便实现了掉电恢复功能。

当存在取值为0的分区状态字时,小于分区数的最大状态字代表的分区为最新数据分区,当不存在取值为0的分区状态字时,最大状态字代表的分区为最新数据分区。

将所有非易失性数据条目组织在一个分区中是指数据分区中数据条目的组织是以固定序列的形式进行的,每个数据条目都有固定的偏移地址,数据条目地址=分区起始地址+偏移地址。

所述的数据条目格式为data id+data,data id,它为单字节大小,唯一标识该数据,data为数据内容,长度由所表示的含义决定。

所述数据条目中的data id,其取值区间为[0,254]的整型数据,不仅唯一标识数据,同时将其地址作为数据条目状态字的存储地址。由于Flash擦除后其数据为0xff,通过限定data id的取值范围不等于255即0xff,则可以用于判断该数据条目在当前分区中的地址是否已经被擦除。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东省科学院自动化研究所,未经山东省科学院自动化研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201210074452.5/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top