CN104820641A - 减少flash擦除次数的方法 - Google Patents

减少flash擦除次数的方法 Download PDF

Info

Publication number
CN104820641A
CN104820641A CN201510181824.8A CN201510181824A CN104820641A CN 104820641 A CN104820641 A CN 104820641A CN 201510181824 A CN201510181824 A CN 201510181824A CN 104820641 A CN104820641 A CN 104820641A
Authority
CN
China
Prior art keywords
page
record
parameter
data
storage unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201510181824.8A
Other languages
English (en)
Other versions
CN104820641B (zh
Inventor
朱环保
王丽华
王永军
左彦波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Ran Neng Robotization Science And Technology Ltd
Original Assignee
Shanghai Ran Neng Robotization Science And Technology Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Ran Neng Robotization Science And Technology Ltd filed Critical Shanghai Ran Neng Robotization Science And Technology Ltd
Priority to CN201510181824.8A priority Critical patent/CN104820641B/zh
Publication of CN104820641A publication Critical patent/CN104820641A/zh
Application granted granted Critical
Publication of CN104820641B publication Critical patent/CN104820641B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

本发明公开一种减少FLASH擦除次数的方法,包括:A、在FLASH的存储空间分别设置参数页和记录页,各页面的存储空间包括多个存储单元;B、将要存储的数据记录依次写入所述记录页的空存储单元,直到所述记录页的数据记录存储量达到预设值;C、当参数页的数据记录存储量小于预设值时,将要存储的数据记录依次写入参数页的空数据记录备份存储单元,并擦除记录页,返回步骤B;当参数页的数据记录存储量达到预设值时,擦除所述参数页与所述记录页。本发明利用FLASH的存储空间减少闪存的擦写次数,提高FLASH的擦写寿命,和同时使用两个页面,以避免页面擦除时的数据丢失。

Description

减少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;
步骤C包括:
S3、根据参数页的记录状态标识判断是否有空的数据记录备份存储单元,是则进行步骤S4,否则跳转至步骤S6;
S4、向参数页的空的数据记录备份存储单元中写入当前数据记录;
S5、擦除记录页,跳转至步骤S1;
S6、擦除参数页与记录页。
通过将数据记录循环写入空存储单元,可以实现在页面满或存储到一定数据量时才擦除一次页面,实现存储空间的充分利用,减少擦写次数,提高FLASH的使用寿命。
在一些实施方式中,步骤C还包括:
当所述参数页的数据记录存储量达到预设值时,备份参数页的数据,交换参数页与记录页。由此,可以实现页面擦除时数据的备份,防止擦除时页面数据的丢失。
在一些实施方式中,备份参数页的数据,交换参数页与记录页的方法包括:
a、擦除记录页;
b、将参数页的参数部分写入到记录页的对应存储单元,进行备份;
c、更改记录页的页面状态标识为参数页标识;
d、擦除参数页;
e、更改参数页的页面状态标识为记录页标识;
f、记录页转化为参数页,参数页转化为记录页,跳转至步骤B。
由此,可以实现页面功能的交换。而通过备份和页面功能交换,能够有效避免在设置参数擦除后写入前掉电,导致设置参数丢失。
在一些实施方式中,还包括:
在上电时首先读取Flash存储空间的参数页和记录页的页面状态标识;
根据页面状态标识判断掉电时的页面状态,以确定页面的有效数据;
根据掉电时的页面状态和有效数据,对FLASH的参数页和记录页进行页面初始化操作。
通过在上电时,首先读取页面状态标识进行掉电时状态的判断,能够避免掉电时正在备份或擦除数据,导致数据丢失或重复无效数据或备份不完整,从而有效的实现数据的备份、存储和页面交换。
附图说明
图1为本发明一实施方式的减少FLASH擦除次数的方法流程图;
图2为图1所示方法中的页面空间存储结构图;
图3为图1所示方法中的页面的状态记录的存储结构图;
图4为本发明另一实施方式的减少FLASH擦除次数的方法流程图;
图5为图4所示方法中页面交换过程的流程图;
图6为本发明一实施方式的上电时FLASH存储页面的初始化方法的流程图。
具体实施方式
下面结合附图对本发明作进一步详细的说明。
图1示意性地显示了根据本发明的一种实施方式的减少FLASH擦除次数的方法的流程图。下面以在智能配电仪表中利用FLASH存储空间来减少闪存的擦写次数延长FLASH的擦写寿命,以满足不断存储电能计量数据的需求为例,进行详细说明。如图1所示,该方法包括:
步骤S101:将FLASH的存储空间分为两个页面,并将每个页面的空间划分为多个存储单元。
以往要改写FLASH里的数据,必须先擦除整个页面,电度改写的比较频繁,为了延长FLASH的寿命,本发明该例中将FLASH的整个页面按电度数据的数量级或所占字节数(如本例中一条电度数据占用16个字节)进行存储单元的划分,每次的电度数据作为一条数据记录依次存储在一个存储单元。这样就可以在页面存满时(此种情况适用于扇区的存储空间较小,设置的页面大小刚好满足电度数据的存储量要求时)或可以预设为达到例如页面容量的四分之三或写满32个存储单元时(此种情况适用于扇区的存储空间远大于电度数据的存储量时)再擦除,可以对一个页面进行循环利用。
另外,在擦除页面时,为了避免数据丢失,同时使用两个页面,还可以在擦除电度数据时,进一步进行数据备份。
页面的大小受限于MCU的一个扇区的大小和保存参数的多少及单个电能记录的大小。例如有些MCU的扇区大小为1024字节或2048字节,在这种情况下,即使一个页面512个字节就可以满足要求,也要把一个页面的大小设置为MCU单个扇区的大小,此时可以设置页面存储量达到预设值如四分之三或写满32个存储单元就进行擦除。而当要保存的参数较多要使用多个扇区,或一个电能记录要保存的数据较多,需要多个扇区来保存时,就要把两个或更多个扇区作为一个页面来处理。在本实施例中,FLASH每页设定为512字节。根据每次写入的电度数据,将每页分为32个存储单元(即32条记录),每个存储单元16个字节。每次写入的电度数据需要16个字节,占用一条记录。
步骤S102:设置参数页和记录页。
由于参数数据比较少改变,而电能数据却不断变化,本发明将参数数据存储在其中一个页面,而将电能数据存储另一个页面,在擦除电能数据时,存放参数的页面可以进行临时的数据备份,以避免数据丢失。
在本实施例中,每页的第一个存储单元作为该页的状态标识记录,每次写入的电度数据占用一个存储单元(即占用一条记录),校准参数占用两条记录(32个字节),设置参数占用8条记录(128个字节)。
图2(a)示意性的显示了本实施例中用于存储参数数据的页面(即参数页)的空间存储结构,图2(b)示意性的显示了本实施例中用于存储电能数据的页面(即记录页)的空间存储结构。如图2(a)所示,参数页20的第一个存储单元(即REC0)201用于存放状态标识,第二和三个存储单元(即REC1-2)用于存储校准参数,第四至十一个存储单元(即REC3-10)用于存放设置参数。而剩余的存储单元用于进行记录页擦除时,数据记录的备份。如图2(b)所示,记录页21的第一个存储单元(即REC0)用于存放状态标识,第二和三个存储单元(即REC1-2)作为保留,剩余的二十九个存储单元(即REC3-31)用于存放数据记录。
状态标识记录的格式如图3所示,即偏移地址为0的一个字节对应存放每个页面的页面状态标识,偏移地址为2-5的4个字节对应存放每个存储单元的记录状态标识。页面状态标识用于标识该页的当前状态,主要包括以下几种:PageStatus=0xFF,表示该页为空;PageStatus=0xFE,表示该页是记录页;PageStatus=0xF0,表示该页为参数页;PageStatus=0x00,表示正把该页的参数数据备份到另一页;PageStatus=0xFC,表示正在往该页上备份参数数据。记录状态标识占用四个字节32个位,每一位标识一个存储单元(即一条记录)的状态,如“1”表示该记录为空可以写入,“0”标识该记录已有数据,第一位(即BIT0)标记第一个存储单元(即REC0)的状态,第三十二位(即BIT31)标记第三十二个存储单元(即REC31)的状态。
当页面划分好后,两个页面的页面状态标识都为空(即PageStatus=0xFF),在将该MCU的FLASH存储空间应用与仪表中时,首先把校准参数的默认值写入FLASH的对应存储单元中,把设置参数设置为默认值写入到其中一个页面的对应存储单元,并设置该页面的页面状态标识为参数页标识。其中,校准参数包括电压、电流零点偏移校准数据和电压电流校准系数,校准参数在出厂前由校准测试软件进行校准,一般不会进行更改。设置参数包括保护密码、通信地址、通信波特率、电压互感器一次侧值、二次侧值、电流互感器一次侧值、二次侧值和开关量输出工作方式等。这些设置参数可以根据实际的实用情况和需求通过人机交互界面进行设定和修改,以保存到FLASH中的对应存储单元。把数据写入到另一个页面的对应存储单元,并设置该页面的页面状态标识为记录页标识。通过参数设置和页面状态标识更改,就将存放参数的页面作为参数页,另一个页面作为记录页进行使用。
步骤S103:接收电度记录,判断记录页中是否有空的存储单元。
在仪表使用中,当有新的电度数据时,便将电度记录写入FLASH的存储空间中进行保存。
FLASH接收到要存储的数据记录时,首先读取记录页的状态标识记录的记录状态标识,根据记录状态标识的值(如“0”或“1”)判断记录页中是否还存在空的存储单元,是则进行步骤S104,否则跳转至步骤S105。
步骤S104:向记录页写入一条电度记录。
FLASH向其记录页的第一个空的存储单元中写入当前要存储的电度数据。需要说明的是,电度记录是按照从前往后依次顺序存储的,具体做法为每个页都用一个变量来指示第一条空记录,该变量在上电时初始化,每写入一条记录,该变量加1。上电时根据记录标志找到最后一条有效的电能记录,若有效记录的下一条为空(空时值为FFFFFFFFH,电能有效值的范围为0~999999999(3B9AC9FFH)),则为第一条空记录,否则继续往下查找。
步骤S105:判断参数页中是否有空的电能备份存储单元。
FLASH读取参数页的状态标识记录的记录状态标识,根据记录状态标识的值判断参数页中是否有空的存储单元,如果有空存储单元则进行步骤S106,如果没有空的存储单元(即参数页写满),则跳转至步骤S108。
步骤S106:向参数页写入一条电能记录,进行步骤S107。
FLASH向其参数页的第一个空的存储单元(顺序判断方法同S104中查找第一条空记录的方法)中写入当前要存储的电度数据,完成写入后进行步骤S103。
步骤S107:擦除记录页,跳转至步骤S103。
FLASH进行擦除记录页的全部数据的操作,擦除后跳转至步骤S103以等待接收新的存储数据。
步骤S108:擦除参数页与记录页,跳转至步骤S102。
FLASH擦除参数页和记录页的全部数据,擦除后跳转至步骤S102,以重新设置参数数据,开始进行新一轮的数据存储。
图4示意性地显示了根据本发明的另一种实施方式的减少FLASH擦除次数的方法的流程图。
如图4所示,在本实施方式中,步骤S401至步骤S404与图1中所示实施方式的流程相同。区别在于步骤S405是判断参数页中空的电能备份存储单元是否多于一个,当大于一个时的处理方式与图1所示的实施方式流程相同,当不大于一个(即只剩一个)空存储单元时,本实施方式在将当前电度记录写入参数页的空存储单元后,备份参数页的数据,交换参数页与记录页的功能,之后对交换后的参数页与记录页继续进行电度记录写入的操作。需要注意的是,由于有新数据时交换,若交换时掉电则最近的五分钟的电能会丢失,所以页面交换是在写满时即交换。通过采用交换参数页与记录页的方式,能够避免页面擦除时数据丢失,并且对参数页的备份也能保证在设置参数擦除后写入前掉电时数据不丢失。
图5示意性地显示了图4所示方法中页面交换过程的流程图,如图5所示,参数页与记录页的交换过程包括:
步骤S501:擦除原记录页。
将原写满的记录页中的数据擦除,更改页面状态标识为“0xFF”即空页标识,以备写入新的数据。
步骤S502:将原参数页的参数写入到原记录页进行备份。
将原参数页中的参数写入到已经为空页的原记录页中,设置原参数页的页面状态标识为“0x00”(表示正把该页的参数数据备份到另一页),以标识原参数页现在为备份页面。同时将原记录页的空页标识更改为“0xFC”(表示正在往该页上备份参数数据),将原参数页的参数数据备份到原记录页。
步骤S503:更改原记录页的页面状态标识为参数页标识。
当数据备份完成时,原参数页的参数数据已全部写入原记录页,此时更改原记录页的页面状态标识为“0xF0”(表示该页为参数页),从而将原记录页转换为参数页。
步骤S504:擦除原参数页。
数据备份完成后,参数数据已由原参数页写入到原记录页(即当前参数页),由于原参数页已经写满数据,此时将原参数页的页面数据擦除,擦除后将原参数页的页面状态标识设置为“0xFF”即空页标识,以备写入新的数据。
步骤S505:更改原参数页的页面状态标识为记录页标识。
当有数据(本实施例为电度数据)写入时,将新增的一条电度记录写入到已经为空的原参数页,并更改已经为空的原参数页的页面状态标识为“0xFE”(表示该页是记录页),从而将原参数页转换为记录页。
步骤S506:原记录页转换为当前参数页,原参数页转换为当前记录页。
通过步骤S501至S505的备份和状态标识的设置,原记录页转换为参数页,原参数页转换为记录页,两页的功能进行了交换,且参数数据得到保存,避免参数数据的丢失。
需要说明的是,在本发明中,当参数页的设置参数更改时,也会进行参数备份和页面交换操作,其中参数备份和页面交换操作的方法同上。但是由于设置参数在使用中一般不会发生更改,所以对减少闪存擦写次数效率的影响甚微,即使偶尔有更改需求,也是交换页面发生两次页面擦除即可。
在页面交换的过程中,可能存在掉电的风险,为了避免掉电时数据的丢失,在上电时,首先要检测页面的状态,根据当前页面状态进行相应的页面初始化处理,保证两个页面都处于有效数据状态,以进行正常的数据读写操作。图6示意性地显示了在上电时,读取页面数据和对页面数据的处理方法。如图6所示,根据上电时每个页面的页面状态标识,该处理方法包括:
步骤S601:读取FLASH存储空间的两个页面的页面状态标识。
在上电时,首先读取FLASH存储空间的两个页面的页面状态标识,以判断在掉电时页面的状态,根据掉电时页面的状态进行有效数据的初始化,以防止数据丢失和无效数据的重复。
步骤S602:根据页面状态标识判断掉电时的页面状态,确定有效数据,并进行上电时页面的初始化操作。
当页面状态标识为“0xFF”,表示该页为空;“0xFE”,表示该页是记录页;“0xF0”,表示该页为参数页;“0x00”,表示正把该页的参数数据备份到另一页;“0xFC”,表示正在往该页上备份参数数据。当上电时,根据两个页面的操作,两个页面的状态可以分为以下几种情况:
A、两个页面的状态标识都为“0xFF”,该状态表示掉电时两个页面都为空,还没有进行参数设置和数据写入,此时进行步骤S603;
B、其中一个页面的状态标识为“0x00”,另一个页面状态标识为“0xFC”。该状态表示掉电时,一个页面正在向第二个页面备份,且备份并未完成,此时标识为“0x00”的页面的数据为有效数据,而另一个页面的数据由于未备份完成即掉电,所以为无效数据,需要重新进行掉电时的操作,即进行步骤S604;
C、其中一个页面的状态标识为“0x00”,另一个页面状态标识为“0xF0”。此状态表示掉电时,标识为“0x00”的页面的数据已经备份到另一个页面,另一个页面的数据有效,此时需要继续进行掉电时的操作,即进行步骤S605;
D、其中一个页面的状态标识为“0xF0”,另一个页面状态标识为“0xFE”。此状态表示掉电时,标识为“0xF0”的页面为参数页,标识为“0xFE”的页面为记录页,掉电时,两个页面并未进行页面交换的操作,两页的数据都为有效数据,此时进行步骤S606;
E、其中一个页面的状态标识为“0xF0”,另一个页面的状态标识为“0xFF”。该状态表示掉电时,一个页面为参数页,另一个页面为记录页且为空,掉电时,两个页面并未进行数据备份和页面交换的操作,参数页的数据有效,记录页可进行数据写入操作,此时进行步骤S607。
步骤S603:设置两个页面分别为参数页和记录页,把参数设置为默认值写入参数页。
步骤S604:从页面状态标识为“0x00”的页面读取参数值和数据记录,擦除页面状态标识为“0xFC”的页面的数据记录,重新进行数据备份。
步骤S605:把页面状态标识为“0x00”的页面的数据擦除,并转换为记录页,把页面状态标识为“0xF0”的页面作为参数页,从参数页读取数据。
步骤S606:两页的数据都有效,从页面状态标识为“0xF0”的页面读取参数值,从页面状态标识为“0xFE”的页面读取数据记录。
步骤S607:页面状态标识为“0xF0”的页面为参数页,页面状态标识为“0xFF”的页面为记录页,从参数页读取数据。
在本发明的算法中,记录页写满29条记录后,向参数页写入1条电能备份记录,然后擦除记录页,重新开始向记录页写入新的电能数据,也就是记录页的电能数据写入30次才进行一次记录页的数据擦除。当参数页满时,要进行一次页面交换,即每写入30*20=600条记录要进行一次页面交换,在这个过程中,记录页擦除20次,参数页才擦除1次。也就是说,每写入600条数据记录,就擦除21次,对于FLASH擦写次数为9万次的MCU,两个页面的总擦写次数为9*2=18万次,擦写寿命为18*(600/21)=514万次(不包含设置参数更改时进行的页面交换引起的擦写,但设置参数一般很少更改,本算法能够利用设置参数很少更改的特性,能够充分满足不断更改的数据记录的存储需求),超过了24Cxx系列的EEPRom的100万次。可见,通过本算法,利用FLASH的存储空间有效的减少了擦写次数,延长了FLASH的擦写寿命。并且本算法使用两个页面,通过进行数据备份和页面交换,也避免了掉电时擦写数据引起的数据丢失,能够很好的满足需要不断更改且需要掉电不丢失的数据存储需求,尤其是本实施例中的仪表中电能计量数据的保存。
以上所述的仅是本发明的一些实施方式。对于本领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。

Claims (10)

1.减少FLASH擦除次数的方法,包括:
A、在FLASH的存储空间分别设置参数页和记录页,各页面的存储空间包括多个存储单元;
B、将要存储的数据记录依次写入所述记录页的空存储单元,直到所述记录页的数据记录存储量达到预设值;
C、当所述参数页的数据记录存储量小于预设值时,
将要存储的数据记录依次写入所述参数页的空数据记录备份存储单元,并擦除所述记录页,返回步骤B;
当所述参数页的数据记录存储量达到预设值时,
擦除所述参数页与所述记录页。
2.根据权利要求1所述的方法,其中,所述步骤A包括:
根据扇区、需要存储的参数和数据的量,设置页面的大小;
根据单条数据记录和所设置的页面的大小,将所述页面的空间分区为多个存储单元,每个存储单元对应存储一条数据记录;
把参数设置为默认值写入所述页面的对应存储单元,并设置该页面的页面状态标识为参数页标识;
把数据写入到另一个页面的对应存储单元,并设置该页面的页面状态标识为记录页标识。
3.根据权利要求2所述的方法,其中,所述页面的大小为512个字节,所述存储单元为32个,每个存储单元的大小为16个字节,每次写入的一条数据记录占用一个存储单元。
4.根据权利要求3所述的方法,其中,所述参数页的存储单元存储有状态标识、校准参数、设置参数及数据记录备份,所述状态标识占用一个存储单元,所述校准参数占用二个存储单元,所述设置参数占用八个存储单元,剩余存储单元用于存放所述数据记录备份;所述记录页的存储单元设置为存放状态标识和数据记录,所述状态标识占用一个存储单元,所述数据记录占用二十九个存储单元,剩余存储单元作为保留空间。
5.根据权利要求4所述的方法,其中,所述状态标识包括页面状态标识和存储单元使用状态标识,所述页面状态标识占用一个字节,所述存储单元使用状态标识占用四个字节,四个字节的三十二个位每一位对应标识一个存储单元的使用状态。
6.根据权利要求5所述的方法,其中所述页面状态标识包括:空页标识、记录页标识、参数页标识、正把该页的参数备份到另一页标识,和正在往该页上备份参数标识。
7.根据权利要求1所述的方法,其中,所述步骤B包括:
S1、接收一条数据记录,根据所述记录页的记录状态标识判断是否有空存储单元,是则继续步骤S2,否则跳转至步骤S3;
S2、向所述空存储单元中写入当前数据记录,跳转至步骤S 1;
所述步骤C包括:
S3、根据所述参数页的记录状态标识判断是否有空的数据记录备份存储单元,是则进行步骤S4,否则跳转至步骤S6;
S4、向所述参数页的空的数据记录备份存储单元中写入当前数据记录;
S5、擦除所述记录页,跳转至步骤S1;
S6、擦除所述参数页与所述记录页。
8.根据权利要求1所述的方法,其中,所述步骤C还包括:
当所述参数页的数据记录存储量达到预设值时,备份所述参数页的数据,交换所述参数页与所述记录页。
9.根据权利要求8所述的方法,其中,所述备份参数页的数据,交换参数页与记录页的方法包括:
a、擦除所述记录页;
b、将所述参数页的参数部分写入到所述记录页的对应存储单元,进行备份;
c、更改所述记录页的页面状态标识为参数页标识;
d、擦除所述参数页;
e、更改所述参数页的页面状态标识为记录页标识。
10.根据权利要求8所述的方法,包括:
上电时首先读取FLASH存储空间的所述参数页和记录页的页面状态标识;
根据所述页面状态标识判断掉电时的页面状态,以确定页面的有效数据;
根据掉电时的页面状态和有效数据,对FLASH的所述参数页和记录页进行页面初始化操作。
CN201510181824.8A 2015-04-16 2015-04-16 减少flash擦除次数的方法 Active CN104820641B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510181824.8A CN104820641B (zh) 2015-04-16 2015-04-16 减少flash擦除次数的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510181824.8A CN104820641B (zh) 2015-04-16 2015-04-16 减少flash擦除次数的方法

Publications (2)

Publication Number Publication Date
CN104820641A true CN104820641A (zh) 2015-08-05
CN104820641B CN104820641B (zh) 2017-10-31

Family

ID=53730942

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510181824.8A Active CN104820641B (zh) 2015-04-16 2015-04-16 减少flash擦除次数的方法

Country Status (1)

Country Link
CN (1) CN104820641B (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016165597A1 (zh) * 2015-04-16 2016-10-20 中兴通讯股份有限公司 数据存储的处理方法及装置
CN106126117A (zh) * 2016-06-20 2016-11-16 浪潮电子信息产业股份有限公司 一种格式化pcie ssd容量的方法
CN106227619A (zh) * 2016-07-20 2016-12-14 中国航空工业集团公司航空动力控制系统研究所 具有数据修改记忆能力的Flash数据存储方法
CN106816175A (zh) * 2015-12-01 2017-06-09 中芯国际集成电路制造(上海)有限公司 存储器的控制方法及装置
CN108804346A (zh) * 2018-05-30 2018-11-13 广东思诺伟智能技术有限公司 一种电池soc数据在flash存储器存储的方法
CN109324921A (zh) * 2017-07-31 2019-02-12 大心电子(英属维京群岛)股份有限公司 数据备份方法、数据恢复方法以及存储控制器
CN109359059A (zh) * 2018-10-15 2019-02-19 珠海美佳音科技有限公司 一种减少低功耗设备Flash的擦写次数的方法
CN110045927A (zh) * 2019-04-16 2019-07-23 华大半导体有限公司 一种使用闪存模拟具有原子操作特性的eeprom的方法
CN110389723A (zh) * 2019-07-22 2019-10-29 广东美的制冷设备有限公司 数据的存储方法、装置、空调器和存储介质
CN110658981A (zh) * 2019-04-19 2020-01-07 石家庄科林电气股份有限公司 一种提高Flash使用寿命的方法
CN111708487A (zh) * 2020-05-26 2020-09-25 杭州涂鸦信息技术有限公司 一种数据存储的方法、装置及计算机存储介质
CN113655950A (zh) * 2021-01-12 2021-11-16 青岛鼎信通讯股份有限公司 一种应用于电子远传水表的eeprom擦写平衡方法
CN115952113A (zh) * 2023-03-15 2023-04-11 力高(山东)新能源技术股份有限公司 一种eeprom存储保护的方法
CN116795297A (zh) * 2023-08-18 2023-09-22 苏州云途半导体有限公司 一种存储设备、存储方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102253279A (zh) * 2011-06-03 2011-11-23 青岛乾程电子科技有限公司 一种可靠性数据存储式多功能电表
CN102629234A (zh) * 2012-01-18 2012-08-08 物联微电子(常熟)有限公司 一种单片机片内置Flash数据快速检索方法
CN102662852A (zh) * 2012-03-20 2012-09-12 山东省科学院自动化研究所 一种利用MCU内部数据Flash存储非易失性数据的方法
US20140156916A1 (en) * 2011-02-02 2014-06-05 Micron Technology, Inc. Control arrangements and methods for accessing block oriented nonvolatile memory

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140156916A1 (en) * 2011-02-02 2014-06-05 Micron Technology, Inc. Control arrangements and methods for accessing block oriented nonvolatile memory
CN102253279A (zh) * 2011-06-03 2011-11-23 青岛乾程电子科技有限公司 一种可靠性数据存储式多功能电表
CN102629234A (zh) * 2012-01-18 2012-08-08 物联微电子(常熟)有限公司 一种单片机片内置Flash数据快速检索方法
CN102662852A (zh) * 2012-03-20 2012-09-12 山东省科学院自动化研究所 一种利用MCU内部数据Flash存储非易失性数据的方法

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016165597A1 (zh) * 2015-04-16 2016-10-20 中兴通讯股份有限公司 数据存储的处理方法及装置
CN106816175A (zh) * 2015-12-01 2017-06-09 中芯国际集成电路制造(上海)有限公司 存储器的控制方法及装置
CN106126117A (zh) * 2016-06-20 2016-11-16 浪潮电子信息产业股份有限公司 一种格式化pcie ssd容量的方法
CN106227619A (zh) * 2016-07-20 2016-12-14 中国航空工业集团公司航空动力控制系统研究所 具有数据修改记忆能力的Flash数据存储方法
CN106227619B (zh) * 2016-07-20 2019-03-29 中国航空工业集团公司航空动力控制系统研究所 具有数据修改记忆能力的Flash数据存储方法
CN109324921A (zh) * 2017-07-31 2019-02-12 大心电子(英属维京群岛)股份有限公司 数据备份方法、数据恢复方法以及存储控制器
CN108804346A (zh) * 2018-05-30 2018-11-13 广东思诺伟智能技术有限公司 一种电池soc数据在flash存储器存储的方法
CN109359059A (zh) * 2018-10-15 2019-02-19 珠海美佳音科技有限公司 一种减少低功耗设备Flash的擦写次数的方法
CN110045927A (zh) * 2019-04-16 2019-07-23 华大半导体有限公司 一种使用闪存模拟具有原子操作特性的eeprom的方法
CN110658981A (zh) * 2019-04-19 2020-01-07 石家庄科林电气股份有限公司 一种提高Flash使用寿命的方法
CN110658981B (zh) * 2019-04-19 2022-11-08 石家庄科林电气股份有限公司 一种提高Flash使用寿命的方法
CN110389723A (zh) * 2019-07-22 2019-10-29 广东美的制冷设备有限公司 数据的存储方法、装置、空调器和存储介质
CN111708487A (zh) * 2020-05-26 2020-09-25 杭州涂鸦信息技术有限公司 一种数据存储的方法、装置及计算机存储介质
CN113655950A (zh) * 2021-01-12 2021-11-16 青岛鼎信通讯股份有限公司 一种应用于电子远传水表的eeprom擦写平衡方法
CN115952113A (zh) * 2023-03-15 2023-04-11 力高(山东)新能源技术股份有限公司 一种eeprom存储保护的方法
CN116795297A (zh) * 2023-08-18 2023-09-22 苏州云途半导体有限公司 一种存储设备、存储方法及装置
CN116795297B (zh) * 2023-08-18 2023-11-17 江苏云途半导体有限公司 一种存储设备、存储方法及装置

Also Published As

Publication number Publication date
CN104820641B (zh) 2017-10-31

Similar Documents

Publication Publication Date Title
CN104820641A (zh) 减少flash擦除次数的方法
CN105556416B (zh) 数据存储设备/系统中利用低功率状态的停电保护和恢复
EP2404239B1 (en) Memory block selection
CN100419714C (zh) 闪存存取方法、闪存文件系统的块替换方法及其管理装置
CN103092766B (zh) 一种用于nand flash的均衡损耗实现方法
CN105260270B (zh) 一种Flash存储空间的动态恢复方法及装置
CN106776362B (zh) 存储器的控制方法及装置
CN104220991B (zh) 用于允许数据在nand闪存上的有效存储的架构
CN104516471B (zh) 一种管理存储器系统的电源的方法和装置
CN101419841B (zh) 一种flash存储器擦写方法
CN106415502B (zh) 数据存储的方法和装置
US20110153917A1 (en) Storage apparatus and its control method
CN107291405B (zh) 一种NorFlash的数据管理方法与装置
CN102135942A (zh) 一种存储设备中实现损耗均衡的方法及存储设备
CN107329905A (zh) 数据储存装置以及快闪存储器控制方法
CN101763309A (zh) 非易失性存储装置、信息记录系统及信息记录方法
CN105938447B (zh) 数据备份装置及方法
CN110287068B (zh) 一种NandFlash驱动方法
CN104731515B (zh) 控制存储设备机群磨损均衡的方法及设备
CN103365786A (zh) 数据存储方法、装置和系统
JP2010097333A (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
CN102572330A (zh) 一种液晶电视机Flash芯片的数据读取、写入和擦除的方法
CN109976673A (zh) 一种数据写入方法和装置
CN104598165A (zh) 在嵌入式设备上对存储器提高耐用性的方法及装置
TW201220047A (en) Method for performing automatic boundary alignment and related non-volatile memory device

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CB03 Change of inventor or designer information

Inventor after: Zhu Baohuan

Inventor after: Wang Lihua

Inventor after: Wang Yongjun

Inventor after: Zuo Yanbo

Inventor before: Zhu Huanbao

Inventor before: Wang Lihua

Inventor before: Wang Yongjun

Inventor before: Zuo Yanbo