一种嵌入式系统高可靠存储算法技术方案

技术编号:28558390 阅读:78 留言:0更新日期:2021-05-25 17:52
本发明专利技术公开了一种嵌入式系统高可靠存储算法,包括:将存储器分为失效管理区和数据存储区;数据存储区由数据存储单元构成;失效管理区存储当前使用的数据存储单元编号;存储区分为快速和下电数据存储区;每次数据存储完成都需要立刻读出后进行校验;当失效管理区数据连续3次校验失败则存储器失效;当数据存储单元数据连续3次校验失败则当前数据存储单元失效,需要将失效管理区数据加1并存储。采用本方法大幅提升了存储器的可靠性,保证了产品的稳定可靠。

【技术实现步骤摘要】
一种嵌入式系统高可靠存储算法
本专利技术涉及嵌入式处理器片内或片外存储器的使用方法,尤其涉及一种嵌入式系统高可靠存储算法。
技术介绍
存储器被广泛应用在嵌入式系统之中,是嵌入式系统中非常重要的组成部分。数据存储器是嵌入式存储器的一种,用于存储系统实时更新的数据和下电后不能丢失的数据。目前已有的存储方法是将数据写入存储器同时写入数据的校验结果,在使用数据时通过对读出数据重新校验,与存入的校验结果相比较,校验结果相等则判定读取数据结果正确,如果数据不正确则将所有数据设置为默认值。上述存储算法存在的问题是如果存储器损坏,会导致嵌入式系统每使用一次存储的数据,就会导致程序使用的存储数据被重置为默认值,从而错误的执行该执行的计算和逻辑,带来不可预知的结果。
技术实现思路
本专利技术的目的在于克服已有技术的缺点,提供一种提高现有存储器存储技术可靠性,保证嵌入式系统存储的数据在产品寿命内稳定有效的嵌入式系统高可靠存储算法。为了实现上述目的,本专利技术采用的算法是:本专利技术的一种嵌入式系统高可靠存储算法,包括以下步骤:第一步、将嵌入式存储器划分成两组失效管理区和两组数据存储区,每组数据存储区包括N个数据存储单元,每个数据存储单元用于存储有效数据,每组失效管理区对应一组数据存储区,所述的失效管理区用于存储对应数据存储区当前使用的数据存储单元的编号;两组失效管理区中的第一组失效管理区和两组数据存储区中的第一组数据存储区分别用于快速存储,两组失效管理区中的第二组失效管理区和两组数据存储区中的第二组数据存储区分别用于下电存储;所述的快速存储是嵌入式系统按时间更新的数据,下电存储是嵌入式系统下电前保留的现场数据;第二步、失效管理区将使用的数据存储单元编号连续存储5个字节,每个字节都存储当前使用的存储单元的编号;第三步、读取失效管理区数据,将5个字节中的数据彼此之间一一比较进行校验,若5个字节中的数据至少有3个数据一致,则认为失效管理区数据有效,然后执行第五步;否则,将失效管理区的5个字节存储为1;第四步、在失效管理区写入数据并连续存储5个字节,然后将5个字节中的数据读出并且彼此之间一一比较进行校验;当失效管理区数据存储后读出校验出现连续3次校验失败,则认为所述的嵌入式存储器失效,判断过程结束;否则执行第五步;第五步、根据失效管理区数据确定使用的数据存储单元,然后对相应编号的数据存储单元进行数据读写;第六步、数据存储单元存储数据后,立刻读取数据,将所述的存储数据和读取数据比对进行一致性校验;如果数据校验通过,嵌入式系统读取嵌入式存储器中当前数据存储单元存储的数据继续运行,否则执行第七步;第七步、重新向当前的存储单元存储数据,然后采用第六步的方法进行数据校验,当当前的数据存储单元连续3次写入读出校验失败,判定为当前数据存储单元失效,则将对应失效管理区中的存储数据加1,然后重复第四步至第七步直至下电。本专利技术的有益效果是:大幅提升了存储器的可靠性,保证产品的稳定可靠。可以使嵌入式系统在长时间工作,并且在频繁上下电等复杂工作模式下也能保证存储数据是稳定有效。附图说明图1为本专利技术嵌入式系统高可靠存储算法流程图。具体实施方式下面对本专利技术具体实施方式做进一步详细地描述。如图1所示,本专利技术提供了一种嵌入式系统高可靠存储算法,包括以下步骤:第一步、将嵌入式存储器划分成两组失效管理区和两组数据存储区,每组数据存储区包括N个数据存储单元,每个数据存储单元用于存储有效数据,每组失效管理区对应一组数据存储区,所述的失效管理区用于存储对应数据存储区当前使用的数据存储单元的编号;两组失效管理区中的第一组失效管理区和两组数据存储区中的第一组数据存储区分别用于快速存储,两组失效管理区中的第二组失效管理区和两组数据存储区中的第二组数据存储区分别用于下电存储;所述的快速存储是嵌入式系统按时间更新的数据,下电存储是嵌入式系统下电前保留的现场数据;因为快速存储读写频率高,优选的,快速存储单元的数量多于下电存储单元的数量。第二步、失效管理区将使用的数据存储单元编号连续存储5个字节(失效管理区只有5个字节),每个字节都存储当前使用的存储单元的编号,即每个字节存储的当前使用的存储单元的编号的值相同。第三步、读取失效管理区数据,将5个字节中的数据彼此之间一一比较进行校验,若5个字节中的数据至少有3个数据一致,则认为失效管理区数据有效,然后执行第五步;否则,将失效管理区的5个字节存储为1;第四步、在失效管理区写入数据并连续存储5个字节,然后将5个字节中的数据读出并且彼此之间一一比较进行校验;当失效管理区数据存储后读出校验出现连续3次校验失败,则认为所述的嵌入式存储器失效,判断过程结束;否则执行第五步;第五步、根据失效管理区数据确定使用的数据存储单元,然后对相应编号的数据存储单元进行数据读写;第六步、数据存储单元存储数据后,立刻读取数据,将所述的存储数据和读取数据比对进行一致性校验,作为本专利技术的一种实施方式,所述的存储数据若为短数据通过数值一一比较进行数据校验,若为长数据通过CRC校验算法(不限于CRC校验算法)校验;如果数据校验通过,嵌入式系统读取嵌入式存储器中当前数据存储单元存储的数据继续运行,否则执行第七步;第七步、重新向当前的存储单元存储数据,然后采用第六步的方法进行数据校验,当当前的数据存储单元连续3次写入读出校验失败,判定为当前数据存储单元失效,则将对应失效管理区中的存储数据加1,然后重复第四步至第七步直至下电。显然,本专利技术具体实现并不受上述方式的限制,只要采用了本专利技术的方法构思和技术方案进行的各种非实质性的改进,均在本专利技术的保护范围之内。本文档来自技高网...

【技术保护点】
1.一种嵌入式系统高可靠存储算法,其特征在于包括以下步骤:/n第一步、将嵌入式存储器划分成两组失效管理区和两组数据存储区,每组数据存储区包括N个数据存储单元,每个数据存储单元用于存储有效数据,每组失效管理区对应一组数据存储区,所述的失效管理区用于存储对应数据存储区当前使用的数据存储单元的编号;两组失效管理区中的第一组失效管理区和两组数据存储区中的第一组数据存储区分别用于快速存储,两组失效管理区中的第二组失效管理区和两组数据存储区中的第二组数据存储区分别用于下电存储;所述的快速存储是嵌入式系统按时间更新的数据,下电存储是嵌入式系统下电前保留的现场数据;/n第二步、失效管理区将使用的数据存储单元编号连续存储5个字节,每个字节都存储当前使用的存储单元的编号;/n第三步、读取失效管理区数据,将5个字节中的数据彼此之间一一比较进行校验,若5个字节中的数据至少有3个数据一致,则认为失效管理区数据有效,然后执行第五步;否则,将失效管理区的5个字节存储为1;/n第四步、在失效管理区写入数据并连续存储5个字节,然后将5个字节中的数据读出并且彼此之间一一比较进行校验;当失效管理区数据存储后读出校验出现连续3次校验失败,则认为所述的嵌入式存储器失效,判断过程结束;否则执行第五步;/n第五步、根据失效管理区数据确定使用的数据存储单元,然后对相应编号的数据存储单元进行数据读写;/n第六步、数据存储单元存储数据后,立刻读取数据,将所述的存储数据和读取数据比对进行一致性校验;如果数据校验通过,嵌入式系统读取嵌入式存储器中当前数据存储单元存储的数据继续运行,否则执行第七步;/n第七步、重新向当前的存储单元存储数据,然后采用第六步的方法进行数据校验,当当前的数据存储单元连续3次写入读出校验失败,判定为当前数据存储单元失效,则将对应失效管理区中的存储数据加1,然后重复第四步至第七步直至下电。/n...

【技术特征摘要】
1.一种嵌入式系统高可靠存储算法,其特征在于包括以下步骤:
第一步、将嵌入式存储器划分成两组失效管理区和两组数据存储区,每组数据存储区包括N个数据存储单元,每个数据存储单元用于存储有效数据,每组失效管理区对应一组数据存储区,所述的失效管理区用于存储对应数据存储区当前使用的数据存储单元的编号;两组失效管理区中的第一组失效管理区和两组数据存储区中的第一组数据存储区分别用于快速存储,两组失效管理区中的第二组失效管理区和两组数据存储区中的第二组数据存储区分别用于下电存储;所述的快速存储是嵌入式系统按时间更新的数据,下电存储是嵌入式系统下电前保留的现场数据;
第二步、失效管理区将使用的数据存储单元编号连续存储5个字节,每个字节都存储当前使用的存储单元的编号;
第三步、读取失效管理区数据,将5个字节中的数据彼此之间一一比较进行校验,若5个字节中的数据至少有3个数据一致,则认为失效管理区数据有效,然后执行第五步;否则,将失效管理区的5个字节存储为1;
第四步、在失效管理区写入数据并连续存储5个字节,然后将5个字节中的数据读出并且彼此之间一一比较...

【专利技术属性】
技术研发人员:杨永超赵春明李磊周能辉张松波
申请(专利权)人:天津易鼎丰动力科技有限公司
类型:发明
国别省市:天津;12

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

1