[发明专利]减少FLASH擦除次数的方法有效
申请号: | 201510181824.8 | 申请日: | 2015-04-16 |
公开(公告)号: | CN104820641B | 公开(公告)日: | 2017-10-31 |
发明(设计)人: | 朱环保;王丽华;王永军;左彦波 | 申请(专利权)人: | 上海冉能自动化科技有限公司 |
主分类号: | G06F12/02 | 分类号: | G06F12/02;G06F12/16 |
代理公司: | 北京商专永信知识产权代理事务所(普通合伙)11400 | 代理人: | 邢若兰,高之波 |
地址: | 200431 上海市嘉*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 减少 flash 擦除 次数 方法 | ||
技术领域
本发明涉及数据存储领域,尤其涉及一种减少FLASH(闪存)擦除次数的方法。
背景技术
在工业仪表如智能配电仪表的设计中,有时会出现IO口资源太少,无法外接EEPRom芯片存储设置参数,而MCU的FLASH存储空间没有用完,可以用来保存数据。但由于FLASH的擦写次数有限,无法满足工业仪表如智能配电仪表中电能数据的不断更改且需要掉电不丢失的要求。例如,常用的MCU的FLASH的擦写次数只有9万次,远远无法满足需要不断更改并且需要掉电不丢失的数据的存储要求,尤其是在工业仪表中。在智能配电仪表中,要保存的参数可分为两类,一类是参数包括设置参数和校准参数,这些数据很少改变,FLASH本身的存储寿命可以满足要求;而另一类是电能计量数据,这些数据要不断的进行存储,若每5分钟一次,则每年要写入的次数达到10万次,MCU中FLASH的擦写寿命常常无法满足需求。
发明内容
根据本发明的一个方面,提供了一种减少FLASH擦除次数的方法,通过利用FLASH的存储空间来减少FLASH的擦写次数,延长FLASH的使用寿命,满足掉电不丢失的数据的存储要求。该方法包括:
A、在FLASH的存储空间分别设置参数页和记录页,各页面的存储空间包括多个存储单元;
B、将要存储的数据记录依次写入记录页的空存储单元,直到记录页的数据记录存储量达到预设值;
C、当参数页的数据记录存储量小于预设值时,将要存储的数据记录写入参数页的空数据记录备份存储单元,并擦除记录页,返回步骤B;
当参数页的数据记录存储量达到预设值时,擦除所述参数页与所述记录页。
上述方法通过利用FLASH的存储空间减少闪存的擦写次数,能够有效提高FLASH的擦写寿命,满足需要不断存储的数据的写入需求。同时,该算法使用两个页面,能够进行数据备份,避免页面擦除时数据丢失的风险。
在一些实施方式中,步骤A包括:
根据扇区、需要存储的参数和数据的量,设置页面的大小;
根据单条数据记录和所设置的页面的大小,将页面的空间分区为多个存储单元,每个存储单元对应存储一条数据记录;
把参数设置为默认值写入页面的对应存储单元,并设置该页面的页面状态标识为参数页标识;
把数据写入到另一个页面的对应存储单元,并设置该页面的页面状态标识为记录页标识。
由此,将存储的单条数据记录放置在页面中的对应存储单元中,可以实现依次循环写满一个页面才进行一次擦除操作,从而减少FLASH空间的擦写次数。而将变化较少的参数数据和不断变化的数据记录分开存放,能够借助变化较少的参数数据页面的空间,有效减少数据记录页面的擦写次数,并且能够实现数据备份,避免擦除时和掉电时数据的丢失。
在一些实施方式中,页面的大小为512个字节,存储单元为32个,每个存储单元的大小为16个字节,每次写入的一条数据记录占用一个存储单元。由此,实现仪表中16个字节的电能数据记录的依次写入,并且32个存储单元能够将擦写次数减低为写入30次擦除一次记录页。
在一些实施方式中,参数页的存储单元存储有状态标识、校准参数、设置参数及数据记录备份,状态标识占用一个存储单元,校准参数占用二个存储单元,设置参数占用八个存储单元,剩余存储单元用于存放数据记录备份;记录页的存储单元设置为存放状态标识和数据记录,状态标识占用一个存储单元,数据记录占用二十九个存储单元,剩余存储单元作为保留空间。由此,通过状态标识的设置,可以判断页面和记录的当前状态,为依次写入数据记录和进行页面数据备份提供保障。
在一些实施方式中,状态标识包括页面状态标识和存储单元使用状态标识,页面状态标识占用一个字节,存储单元使用状态标识占用四个字节,四个字节的三十二个位每一位对应标识一个存储单元的使用状态。由此,可以通过读取状态标识判断页面和存储单元的当前状态。
在一些实施方式中,页面状态标识包括空页标识、记录页标识、参数页标识、正把该页的参数备份到另一页标识和正在往该页上备份参数标识。由此,页面可以通过状态标识进行页面交换,能够有效标识页面状态,区分页面功能,也能够实现在掉电时状态的记录,有利于上电时有效数据的读取和页面数据的初始化,防止掉电数据丢失的情况。
在一些实施方式中,步骤B包括:
S1、接收一条数据记录,根据记录页的记录状态标识判断是否有空的数据记录存储单元,是则继续步骤S2,否则跳转至步骤S3;
S2、向记录页的空存储单元中写入当前数据记录,跳转至步骤S1;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海冉能自动化科技有限公司,未经上海冉能自动化科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510181824.8/2.html,转载请声明来源钻瓜专利网。