FLASH数据读写方法及系统技术方案

技术编号:16216111 阅读:90 留言:0更新日期:2017-09-15 22:16
本发明专利技术公开了一种FLASH数据读写方法及系统,该方法是在FLASH中分配N页为数据存储区用于存放数据记录,其中用一页作为索引区,其余N‑1页作为记录区,还包括以下步骤:步骤S101:判断所述目标页Nm是否写满,若未写满执行S102,若写满则转到如下步骤S1a~S1c;步骤S102:将所述待写入数据顺序写入所述记录区的目标页Nm中;步骤S1a:擦除所述记录区的页Nm+2的信息即将该页内容全部置为0xff的标识信息;步骤S1b:将所述数据记录区中所述待写入数据的页Nm+1的页码号顺序写入所述索引区;步骤S1c:将所述待写入数据顺序写入所述记录区的页Nm+1中;所述记录区的N‑1页为一个循环队列的存储区。本发明专利技术的技术方案降低了FLASH的擦写次数,延长了使用寿命,上电能快速查找上次掉电时最后存储记录的位置。

FLASH data read-write method and system

The invention discloses a method and a system for reading and writing FLASH data, this method is the N page allocation in FLASH for the data storage area storing data record, one page as the index, the N 1 pages as a recording area, also includes the following steps: step S101: whether the target page is Nm full, if not full implementation of S102, if filled to the steps of S1a ~ S1c; the target page Nm step S102: the data to be written in the order in the recording area; step S1a: erase the recording area of the information about the page Nm+2 page content were set to the identification information of the 0xff; step S1b: the data recording area to be written to the data page Nm+1 page number in the order of the index area; step S1c: the writing data to be written into the order of the recording area Nm+1 page; the recording area of the N page for a 1 The storage area of the circular queue. The technical scheme of the invention reduces the FLASH endurance, long service life, finally recording quickly find the position of electric energy on the last time when the power is off.

【技术实现步骤摘要】
FLASH数据读写方法及系统
本专利技术涉及数据存储领域,特别涉及一种FLASH数据读写方法及系统。
技术介绍
针对嵌入式系统领域的相关设备,用户要求实时保存设备运行的数据,连续记录时间不少于5分钟,每分钟数据不少于60条记录,且有足够存储空间,数据掉电不丢失,存储器的使用寿命不小于20年。每条记录长度20byte(8bit/byte),前面14byte存放的是设备的状态及各种信息,后面6byte存放的是实时的年、月、日、时、分、秒。目前,保存数据的方法有:硬盘、电子盘、RAM外加电池、FLASH闪存等。其中,硬盘、电子盘成本高、体积大;RAM外加电池的方法由于使用了电池,电池寿命短,不能满足要求;FLASH闪存由于其存储空间大、价格低廉等优势,被广泛的应用到各类的嵌入式系统中。传统的FLASH内部分为多个存储单元页(page),存储单元页是可擦除的最小单位,字节或字是写入数据的最小单位。FLASH存储器的写操作和一般的存储器不同,FLASH的写操作必须先将存储单元擦除,然后再写入。由于FLASH擦写次数有限,频繁的对FLASH存储器进行擦写会影响其使用寿命,若不采取特殊处理,寿命不能满足要求。
技术实现思路
本专利技术主要解决的技术问题是提供一种嵌入式系统(或单片机内置)内置FLASH数据存储、快速查找方法,该专利技术可以避免使用RAM外加电池降低使用寿命,也可以避免使用硬盘、电子盘增加成本、增大体积,也不需要增加片外存储器、减小产品单板面积和降低成本。既降低FLASH的擦写次数,解决使用寿命问题,也解决上电能快速查找到上次关机时最后存储记录的位置。针对上述存在的问题,本专利技术提供了一种FLASH数据读写方法,其特征在于:在FLASH中分配N页为数据存储区,用于存放数据记录,其中一页作为索引区,其余N-1页作为记录区,所述方法包括:步骤S101:判断所述目标页Nm是否写满,若未写满执行S102,若写满则转到如下步骤S1a~S1c;步骤S102:将所述待写入数据顺序写入所述记录区的目标页Nm中;步骤S1a:擦除所述记录区的页Nm+2的信息即将该页内容全部置为0xff的标识信息;步骤S1b:将所述数据记录区中所述待写入数据的页Nm+1的页码号顺序写入所述索引区;步骤S1c:将所述待写入数据顺序写入所述记录区的页Nm+1中;所述步骤S1b之前还包括如下步骤:步骤S201:判断所述索引区是否写满,若写满则执行步骤S202;若未写满执行步骤S1b;步骤S202:擦除所述索引区所有存储单元信息即将该页内容全部置为0xff的标识信息;步骤S203:页Nm+1的页码号写入所述索引区第一个存储单元;所述记录区的N-1页为一个循环队列的存储区。进一步地,所述方法还包括如下步骤,在所述FLASH启动时,在所述步骤S101之前还执行如下步骤:步骤S301:从所述索引区的最后存储单元开始逆向查找,查找有无存储单元中的信息是否等于0xff的标识信息,若不是,则执行步骤S302;步骤S302:读取所述索引区存储的页码信息Nm,Nm即为最后存入的数据记录所在页码;步骤S303:从所述记录区第Nm页中的最后存储单元开始逆向查找,查找存储单元中的信息是否等于0xff的标识信息,若不是,该字节所处的地址W是最后存入数据记录的存储位置;步骤S304:判断是写数据还是读数据,若是写数据,则转到步骤S305;若是读数据则转到读数据子程序P1,所述子程序P1为从m页W地址开始逆向往前读取记录,根据给定的参数计算读取数据的长度,进而读取数据相应FLASH的数据直到读取结束;步骤S305:将所述待写入数据写入所述的Nm页的地址W之后的存储单元。进一步地,所述步骤S305之前还包括:步骤S401:判断地址W是否在页Nm的最后位置,如是即表示页Nm已存满数据,则转至步骤S1a,若不是,则执行步骤S305。进一步地,步骤S301之后进一步包括:步骤S501:若所述索引区及记录区为0xff的标识信息,则执行步骤S502,若不是,则转到步骤S302;步骤S502:所述索引区第一个单元写入所述待写入数据的目标页的页码信息;步骤S503:按步骤S102执行。进一步地,所述索引区为所述数据存储区的第一页或最后一页。另外一方面本专利技术还公开了一种FLASH数据读写系统,其特征在于:该系统包括:存储区划分模块,用于在FLASH中分配N页为数据存储区用于存放数据记录,且每页含有相同存储单元,其中用一页作为索引区,其余N-1页作为记录区,所述系统还包括:数据写入模块:含索引区写入模块和记录区写入模块,索引区写入模块将数据记录区待写入数据的目标页Nm的页码号写入索引区存储单元;记录区写入模块:将数据顺序写入记录区的目标页Nm中;第一判断模块:判断数据记录区的目标页Nm是否写满,写满后到待写目标页由Nm页变为Nm+1页;第一擦除模块:擦除记录区的目标页Nm后第二页Nm+2的信息即将该页内容全部置为为特定标识信息。进一步地,该系统还包括:第二判断模块:判断所述索引区的是否写满,写满后则转至第二擦除模块;第二擦除模块:擦除所述索引区的信息,即将该页内容全部置为所述特定标识信息;进一步地,该系统还包括:记录查询模块:在系统掉电重启后查询掉电前记录所在的位置,先查询所述索引区记录所在的页码,然后到相应页码中找到记录的具体位置。本专利技术还公开了一种FLASH数据读写系统,其特征在于,所述系统包括:存储单元阵列、控制位线以及处理器,其中所述处理器执行如权利要求1-5中任意一项所述的权利要求的步骤完成数据读写。进一步地,所述索引区和所述记录区每页含有相同存储单元。按照本专利技术实现的FLASH数据读写方法和系统,其索引号不是固定在一个存储单元,而是在一个页内顺序存储,指引记录区已存入数据记录的页码号,存储满后擦除再存储;而数据记录存储在多个页内,数据记录每存储满一页后,即擦除存满数据的页的下下页的数据,即只是擦除一页数据,故连续记录时间长,大大降低了FLASH的擦写次数,提高了FLASH的寿命。既解决FLASH的擦写使用寿命问题,也解决了上电能快速查找到上次关机时最后存储记录的位置。附图说明:图1为本专利技术的FLASH数据读写方法主程序流程图;图2为本专利技术的FLASH数据读写方法掉电后重启的程序流程图一;图3为本专利技术的FLASH数据读写方法掉电后重启的程序流程图二;图4为本专利技术的嵌入式系统FLASH数据读写系统结构框图一;图5为本专利技术的嵌入式系统FLASH数据读写系统结构框图二;图6为本专利技术的嵌入式系统FLASH数据读写系统结构框图三。具体实施方式下面结合实施例,对本专利技术进一步说明,下述实施例是说明性的,不是限定性的,不能经下述实施例限定本专利技术的保护范围。以ARMCortex-M3核微控制器的内置FLASH为例,详细说明本专利技术的技术方案的实现。ARMCortex-M3核微控制器内置FLASH存储结构分配如表1。第0—10页为程序存储区,第11页至第126页即共116页为数据存放区,其中第11页为数据存放区的数据索引区,也可第126页设为数据索引区,其余115页为数据记录区;第127页为参数配置存放区。表1ARMCortex-M3核微控制器内置FLASH存储结构分配在下载程序代码时,将数据存放区第11~第本文档来自技高网...
FLASH数据读写方法及系统

【技术保护点】
一种FLASH数据读写方法,其特征在于:在FLASH中分配N页为数据存储区,用于存放数据记录,其中一页作为索引区,其余N‑1页作为记录区,所述方法包括:步骤S101:判断所述目标页Nm是否写满,若未写满执行S102,若写满则转到如下步骤S1a~S1c;步骤S102:将所述待写入数据顺序写入所述记录区的目标页Nm中;步骤S1a:擦除所述记录区的页Nm+2的信息即将该页内容全部置为0xff的标识信息;步骤S1b:将所述数据记录区中所述待写入数据的页Nm+1的页码号顺序写入所述索引区;步骤S1c:将所述待写入数据顺序写入所述记录区的页Nm+1中;所述步骤S1b之前还包括如下步骤:步骤S201:判断所述索引区是否写满,若写满则执行步骤S202;若未写满执行步骤S1b;步骤S202:擦除所述索引区所有存储单元信息即将该页内容全部置为0xff的标识信息;步骤S203:页Nm+1的页码号写入所述索引区第一个存储单元;所述记录区的N‑1页为一个循环队列的存储区。

【技术特征摘要】
1.一种FLASH数据读写方法,其特征在于:在FLASH中分配N页为数据存储区,用于存放数据记录,其中一页作为索引区,其余N-1页作为记录区,所述方法包括:步骤S101:判断所述目标页Nm是否写满,若未写满执行S102,若写满则转到如下步骤S1a~S1c;步骤S102:将所述待写入数据顺序写入所述记录区的目标页Nm中;步骤S1a:擦除所述记录区的页Nm+2的信息即将该页内容全部置为0xff的标识信息;步骤S1b:将所述数据记录区中所述待写入数据的页Nm+1的页码号顺序写入所述索引区;步骤S1c:将所述待写入数据顺序写入所述记录区的页Nm+1中;所述步骤S1b之前还包括如下步骤:步骤S201:判断所述索引区是否写满,若写满则执行步骤S202;若未写满执行步骤S1b;步骤S202:擦除所述索引区所有存储单元信息即将该页内容全部置为0xff的标识信息;步骤S203:页Nm+1的页码号写入所述索引区第一个存储单元;所述记录区的N-1页为一个循环队列的存储区。2.如权利要1所述的FLASH数据读写方法,其特征在于,所述方法还包括如下步骤,在所述FLASH启动时,在所述步骤S101之前还执行如下步骤:步骤S301:从所述索引区的最后存储单元开始逆向查找,查找有无存储单元中的信息是否等于0xff的标识信息,若不是,则执行步骤S302;步骤S302:读取所述索引区存储的页码信息Nm,Nm即为最后存入的数据记录所在页码;步骤S303:从所述记录区第Nm页中的最后存储单元开始逆向查找,查找存储单元中的信息是否等于0xff的标识信息,若不是,该字节所处的地址W是最后存入数据记录的存储位置;步骤S304:判断是写数据还是读数据,若是写数据,则转到步骤S305;若是读数据则转到读数据子程序P1,所述子程序P1为从m页W地址开始逆向往前读取记录,根据给定的参数计算读取数据的长度,进而读取数据相应FLASH的数据直到读取结束;步骤S305:将所述待写入数据写入所述的Nm页的地址W之后的存储单元。3.如权利要2所述的FLASH数据读写方法,其特征在于,所述步骤S305之前还包括...

【专利技术属性】
技术研发人员:龙道志张惠军沈鹏程舒凯陈蓉
申请(专利权)人:武汉永力科技股份有限公司
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1