一种数据存储方法技术

技术编号:14642582 阅读:93 留言:0更新日期:2017-02-15 22:39
本发明专利技术涉及一种数据存储方法,提供主存储区、备份存储区、索引区、数据暂存区、时间暂存区、主校验区以及备份校验区;包括如下方式:擦除主存储区以及备份存储区,在时间暂存区写入当前的时间信息,并在索引区中当前的索引单元写入起始偏移量;将获取的待存储数据写入数据暂存区;计算当前的时间信息对应的存储偏移量;计算所述待存储数据在所述主存储区存储的写入地址,并将待存储数据写入所述主存储区中:计算写入地址映射在备份存储区存储的备份地址,并将待存储数据按照该备份地址写入备份存储区。本发明专利技术所提出的一种数据存数方法,实现了数据量大的数据存储、实时更新以及定期存储。

【技术实现步骤摘要】

本专利技术涉及一种电数字数据处理领域,特别是一种数据存储方法
技术介绍
在工业生产中,经常需要对各种参数进行连续记录存储,产生连续的历史数据,为技术和管理人员提供分析研究的一手资料。但是,很多工况环境不佳,存储器在存储过程中不可避免的出现意外掉电的情况,导致数据存储过程被中断,特别是对于采用flash存储器作为存储介质的,意外掉电可能导致已存储的历史数据错误。flash存储器是一种常用的存储介质,具有可掉电存储、存储空间大、成本低的特点。对flash存储器的重复写入操作的步骤一般为:首先获取目的地址所在扇区的数据,然后把整个扇区中目的地址的数据用待写的数据替换,这样就整合了老数据和待写的数据,最后把整合的数据再写入到flash存储器中。由于flash存储器的读写速度较慢,而且是进行先擦后写的操作,因此如果在写的过程中发生意外掉电等异常情况,可能破坏原来的数据。另外,flash存储器的擦除寿命有限,随着擦除次数的增加,会有一些存储块逐渐变得不稳定或存储失败,当数据需要实时存储时,flash存储器受到使用寿命的限制。为实现数据的实时存储,一般采用写入速度快、擦写次数不限制的铁电存储器进行数据存储,但该存储器的成本较高,当需要存储大量数据时,成本将大大增加。工业应用中,很多时候不需要记录并保留全部实时数据,会以一定的采样周期对参数进行采样记录。有的参数虽然实时采样但存储的数据却是将一定周期内的采样数据进行处理后再行存储。比如光伏并网逆变器,相比实时发电量的变化情况,更多时候关心的是日发电量,因此需要实时采样、统计发电量,并在每日结束时对统计的日发电量进行存储。光伏并网逆变器基本需要保证20~25年的数据量,其数据量也不小。本专利技术提出一种适用于需要实时更新、定期存储且数据量大的数据存储装置和数据存储方法。
技术实现思路
本专利技术的目的在于提供一种数据存储方法,以克服现有技术中存在的缺陷。为实现上述目的,本专利技术的技术方案是:一种数据存储方法,提供一包括多个存储块的主存储区、一用于备份所述主存储区数据的备份存储区、一包括至少一个索引单元的索引区、一用于暂存待存储数据的数据暂存区;按照如下步骤实现:步骤S12:获取待存储数据,并将其写入所述数据暂存区;步骤S13:计算当前的时间信息对应的存储偏移量;步骤S14:按照如下方式计算所述待存储数据在所述主存储区存储的写入地址,并将所述待存储数据按照该写入地址写入所述主存储区中:写入地址=主存储区的起始地址+当前索引单元存储的起始偏移量+存储偏移量;步骤S15:按照如下方式计算所述写入地址映射在所述备份存储区的备份地址,并将所述待存储数据按照该备份地址写入所述备份存储区:备份地址=备份存储区的起始地址+当前索引单元存储的起始偏移量+存储偏移量;其中,所述索引单元用于存储所述存储块的起始偏移量,所述当前的时间信息包括用于标记存储周期的存储标记以及用于标记所述待存储数据对应的采样时间序列号的时间标记。进一步的,初次上电进行数据存储前,按照如下步骤S110至S113进行初始化:步骤S110:擦除所述主存储区以及所述备份存储区;步骤S111:读取所述主存储区一未写入数据的存储块的起始地址,将当前时间信息的存储标记写入该起始地址;步骤S112:计算所述主存储区当前的存储块的起始地址相对于所述主存储区起始地址的起始偏移量,将该起始偏移量写入当前索引单元;步骤S113:按照如下方式计算所述主存储区当前的存储块的起始地址映射在所述备份存储区的备份地址,并将该存储标记写入该备份地址:备份地址=备份存储区的起始地址+当前索引单元存储的起始偏移量。进一步的,还提供一用于存储时间信息的时间暂存区,所述步骤S110还包括:获取当前的时间信息,并将其写入时间暂存区;所述步骤S15之后,还包括如下步骤:步骤S16:获取所述当前的时间信息,并将其写入时间暂存区。进一步的,所述步骤S12具体包括如下步骤S121至S122:步骤S121:判断当前的时间信息的存储标记与所述时间暂存区中存储的时间信息的存储标记是否一致,若一致,则执行步骤S122,否则跳转执行所述步骤S13至步骤S16,步骤S16之后执行所述步骤S111至步骤S113;步骤S122:判断当前的时间信息的时间标记与所述时间暂存区中存储的时间信息的时间标记是否一致,若一致,则获取待存储数据,并将其写入所述数据暂存区,并重复执行所述步骤S122;否则跳转执行所述步骤S13至步骤S16。进一步的,还提供一用于存储主存储区校验码的主校验区以及一用于存储备份存储区校验码的备份校验区;在所述步骤S14中,将所述待存储数据写入所述写入地址,或在所述步骤S111中,将当前的存储标记写入所述起始地址,还包括计算所述主存储区的校验码;若检验正确,则将所述校验码写入所述主校验区,否则擦除所述主存储区与所述主校验区,将所述备份存储区存储的数据写入所述主存储区的相应地址,并将所述备份校验区的校验码写入主校验区;在所述步骤S15中,将所述待存储数据写入备份地址,或在所述步骤S113中,将当前的存储标记写入备份地址,还包括计算所述备份存储区的校验码;若检验正确,则将所述校验码写入备份校验区,否则擦除备份存储区和备份校验区,将主存储区存储的数据写入备份存储区的相应地址,将主校验区的校验码写入备份校验区。进一步的,所述索引单元采用环形循环方式指向下一索引单元。进一步的,在所述步骤S13中,当前的时间信息对应的存储偏移量的计算方法如下:存储偏移量=n1+n2*(时间标记-1)+1,其中,n1为存储标记的字节长度,n2为待存储数据的字节长度,且n1、n2均为正整数。进一步的,所述时间信息包括年份、月份以及日期,所述存储标记为年份,所述时间标记=月份*31+日期。进一步的,所述主存储区和所述备份存储区采用norflash存储器,所述索引区、所述数据暂存区、所述时间暂存区采用铁电存储器;所述主校验区和所述备份校验区均采用铁电存储器。进一步的,当存储过程中意外中断后,重新上电后的数据存储方法按照以下步骤S21至S24实现:步骤S21:读取所述主存储区存储的数据,并重新计算主存储区的校验码;步骤S22:判断重新计算的校验码与所述主校验区存储的校验码是否一致,若一致,则擦除所述备份存储区和所述备份校验区,将所述主存储区存储的数据写入所述备份存储区的相应地址,将所述主校验区的校验码写入备份校验区,并跳转执行所述步骤S12,继续存储数据;若不一致,则执行步骤S23;步骤S23:读取所述备份存储区存储的数据,并重新计算备份存储区的校验码;步骤S24:判断重新计算的校验码与所述备份校验区存储的校验码是否一致,若一致,则擦除所述主存储区和所述主校验区,将所述备份存储区存储的数据写入所述主存储区的相应地址,将是备份校验区的校验码写入所述主校验区,跳转执行所述步骤S12,继续存储数据;若不一致,无法恢复数据,依照初次上电存储时的步骤进行初始化。相较于现有技术,本专利技术具有以下有益效果:(1)数据在主存储区或备份存储区的存储地址与该数据的采样时间密切相关,可根据存储偏移量的计算规则,反推可获取任一存储单元存储的数据对应的采样时间,写入的数据未包含具体的采样时间,节约存储空间,同时不影响数据的读取与还原。以本文档来自技高网
...
一种数据存储方法

【技术保护点】
一种数据存储方法,其特征在于,提供一包括多个存储块的主存储区、一用于备份所述主存储区数据的备份存储区、一包括至少一个索引单元的索引区、一用于暂存待存储数据的数据暂存区;按照如下步骤实现:步骤S12:获取待存储数据,并将其写入所述数据暂存区;步骤S13:计算当前的时间信息对应的存储偏移量;步骤S14:按照如下方式计算所述待存储数据在所述主存储区存储的写入地址,并将所述待存储数据按照该写入地址写入所述主存储区中:写入地址=主存储区的起始地址+当前索引单元存储的起始偏移量+存储偏移量;步骤S15:按照如下方式计算所述写入地址映射在所述备份存储区的备份地址,并将所述待存储数据按照该备份地址写入所述备份存储区:备份地址=备份存储区的起始地址+当前索引单元存储的起始偏移量+存储偏移量;其中,所述索引单元用于存储所述存储块的起始偏移量,所述当前的时间信息包括用于标记存储周期的存储标记以及用于标记所述待存储数据对应的采样时间序列号的时间标记。

【技术特征摘要】
1.一种数据存储方法,其特征在于,提供一包括多个存储块的主存储区、一用于备份所述主存储区数据的备份存储区、一包括至少一个索引单元的索引区、一用于暂存待存储数据的数据暂存区;按照如下步骤实现:步骤S12:获取待存储数据,并将其写入所述数据暂存区;步骤S13:计算当前的时间信息对应的存储偏移量;步骤S14:按照如下方式计算所述待存储数据在所述主存储区存储的写入地址,并将所述待存储数据按照该写入地址写入所述主存储区中:写入地址=主存储区的起始地址+当前索引单元存储的起始偏移量+存储偏移量;步骤S15:按照如下方式计算所述写入地址映射在所述备份存储区的备份地址,并将所述待存储数据按照该备份地址写入所述备份存储区:备份地址=备份存储区的起始地址+当前索引单元存储的起始偏移量+存储偏移量;其中,所述索引单元用于存储所述存储块的起始偏移量,所述当前的时间信息包括用于标记存储周期的存储标记以及用于标记所述待存储数据对应的采样时间序列号的时间标记。2.根据权利要求1所述的一种数据存储方法,其特征在于,初次上电进行数据存储前,按照如下步骤进行初始化:步骤S110:擦除所述主存储区以及所述备份存储区;步骤S111:读取所述主存储区一未写入数据的存储块的起始地址,将当前时间信息的存储标记写入该起始地址;步骤S112:计算所述主存储区当前的存储块的起始地址相对于所述主存储区起始地址的起始偏移量,将该起始偏移量写入当前索引单元;步骤S113:按照如下方式计算所述主存储区当前的存储块的起始地址映射在所述备份存储区的备份地址,并将该存储标记写入该备份地址:备份地址=备份存储区的起始地址+当前索引单元存储的起始偏移量。3.根据权利要求2所述的一种数据存储方法,其特征在于,还提供一用于存储时间信息的时间暂存区,所述步骤S110还包括:获取当前的时间信息,并将其写入时间暂存区;所述步骤S15之后,还包括如下步骤:步骤S16:获取所述当前的时间信息,并将其写入时间暂存区。4.根据权利要求3所述的一种数据存储方法,其特征在于,所述步骤S12具体包括如下步骤:步骤S121:判断当前的时间信息的存储标记与所述时间暂存区中存储的时间信息的存储标记是否一致,若一致,则执行步骤S122,否则跳转执行所述步骤S13至步骤S16,步骤S16之后执行所述步骤S111至步骤S113;步骤S122:判断当前的时间信息的时间标记与所述时间暂存区中存储的时间信息的时间标记是否一致,若一致,则获取待存储数据,并将其写入所述数据暂存区,并重复执行所述步骤S122;否则跳转执行所述步骤S13至步骤S16。5.根据权利要求2、3或4所述的一种数据存储方法,其特征在...

【专利技术属性】
技术研发人员:徐晓翔洪金追柳龙杰
申请(专利权)人:厦门科华恒盛股份有限公司
类型:发明
国别省市:福建;35

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

1