一种高可靠性嵌入式软件数据防掉电方法及系统技术方案

技术编号:18553182 阅读:47 留言:0更新日期:2018-07-28 10:30
本发明专利技术涉及一种高可靠性嵌入式软件数据防掉电方法及系统,涉及嵌入式控制系统技术领域。本发明专利技术通过将每个关键数据保存到嵌入式控制系统非易失性存储器中两个不同的地址空间,并针对每个数据地址空间设置两个掉电标志位,分别将两个掉电标志位保存到两个不同的地址空间。嵌入式控制系统每次重新上电后,首先读取掉电标志位,根据掉电标志位判断数据的有效性,从而读取出有效的软件关键数据,用来进行下一步的判断、计算或控制,该方法能够保证嵌入式控制系统掉电后软件数据不丢失,保证了数据的完整性,提高了嵌入式控制系统的可靠性和安全性。

【技术实现步骤摘要】
一种高可靠性嵌入式软件数据防掉电方法及系统
本专利技术涉及嵌入式控制系统
,具体涉及一种高可靠性嵌入式软件数据防掉电方法及系统。
技术介绍
嵌入式控制系统软件在运行过程中,经常会遇到一些关键数据,这些关键数据需要参与下一轮的控制和运算,而且在控制系统掉电后,这些关键数据也不能丢失,控制系统重新上电后,需要用这些数据进行判断、计算或控制。目前的处理方法是将这些关键数据保存在控制系统的非易失性存储器中,这样控制系统掉电后,绝大多数数据甚至有可能全部数据都会保存下来,但是,如果掉电瞬间软件正在写入关键数据到非易失性存储器中,则该数据是错误数据,是不完整的,会导致重新上电后嵌入式控制系统的非正常运行,或者数据计算出现很大的偏差。为此,需要提供一种嵌入式控制系统软件数据防掉电方法,控制系统每次掉电后,保证关键数据完整地保存下来,用来进行下一步的判断、计算或控制,避免突然掉电对控制系统造成的影响,保证嵌入式软件数据的完整性,提高控制系统的可靠性和安全性。
技术实现思路
(一)要解决的技术问题本专利技术要解决的技术问题是:如何提高嵌入式控制系统的可靠性和安全性。(二)技术方案为了解决上述技术问题,本专利技术提供了一种。(三)有益效果本专利技术通过将每个关键数据保存到嵌入式控制系统非易失性存储器中两个不同的地址空间,并针对每个数据地址空间设置两个掉电标志位,分别将两个掉电标志位保存到两个不同的地址空间。嵌入式控制系统每次重新上电后,首先读取掉电标志位,根据掉电标志位判断数据的有效性,从而读取出有效的软件关键数据,用来进行下一步的判断、计算或控制,该方法能够保证嵌入式控制系统掉电后软件数据不丢失,保证了数据的完整性,提高了嵌入式控制系统的可靠性和安全性。附图说明图1是本专利技术的方法流程图。具体实施方式为使本专利技术的目的、内容、和优点更加清楚,下面结合附图和实施例,对本专利技术的具体实施方式作进一步详细描述。如图1所示,本专利技术的高可靠性嵌入式软件数据防掉电方法包括以下步骤:第一步、上电初始化:针对一个预设关键数据设置四个地址空间:数据地址1、数据地址2、掉电标志位地址1、掉电标志位地址2;数据地址1和数据地址2用于保存关键数据,掉电标志位地址1和掉电标志位地址2用于保存掉电标志位,当掉电标志位地址1为0xAA时,说明数据地址1的数据有效,当掉电标志位地址2为0xAA时,说明数据地址2的数据有效;第二步、上电初始化完成后,判断掉电标志位地址1的数据是否为0xAA,如果掉电标志位地址1的数据为0xAA,读取数据地址1的数据,并将读取的数据保存下来,然后将掉电标志位地址2的数据清零,将读取的数据地址1的数据写到数据地址2中,然后再将0xAA写入到掉电标志位地址2中;如果掉电标志位地址1的数据不为0xAA,判断掉电标志位地址2的数据是否为0xAA;如果掉电标志位地址2的数据为0xAA,则读取数据地址2的数据,并将读取的数据地址2的数据保存下来,然后将掉电标志位地址1的数据清零,将读取的数据地址2的数据写到数据地址1中,然后再将0xAA写入到掉电标志位地址1中;如果掉电标志位地址2的数据也不为0xAA,说明软件是第一次运行,也是第一次写数据到非易失性存储器中,先将0写入到数据地址1,然后将0xAA写入到掉电标志位地址1中,再将0写入到数据地址2,然后将0xAA写入到掉电标志位地址2中;所述非易失性存储器为FLASH、RAM、ROM、PROM、EPROM中的一种。第三步、根据当前的关键数据,根据预设的算法进行判断和计算,得出最新的关键数据,将掉电标志位地址1数据清零,将最新的关键数据写入到数据地址1,掉电标志位地址1写入0xAA,将掉电标志位地址2数据清零,将最新的关键数据写入到数据地址2,掉电标志位地址2写入0xAA;第四步、循环执行第三步,直到掉电时结束。本专利技术还提供了一种高可靠性嵌入式软件数据防掉电系统,包括:上电初始化模块,用于针对一个预设关键数据设置四个地址空间:数据地址1、数据地址2、掉电标志位地址1、掉电标志位地址2;数据地址1和数据地址2用于保存关键数据,掉电标志位地址1和掉电标志位地址2用于保存掉电标志位,当掉电标志位地址1为0xAA时,说明数据地址1的数据有效,当掉电标志位地址2为0xAA时,说明数据地址2的数据有效;数据有效性判断模块,用于判断掉电标志位地址1的数据是否为0xAA,如果掉电标志位地址1的数据为0xAA,读取数据地址1的数据,并将读取的数据保存下来,然后将掉电标志位地址2的数据清零,将读取的数据地址1的数据写到数据地址2中,然后再将0xAA写入到掉电标志位地址2中;如果掉电标志位地址1的数据不为0xAA,判断掉电标志位地址2的数据是否为0xAA;如果掉电标志位地址2的数据为0xAA,则读取数据地址2的数据,并将读取的数据地址2的数据保存下来,然后将掉电标志位地址1的数据清零,将读取的数据地址2的数据写到数据地址1中,然后再将0xAA写入到掉电标志位地址1中;如果掉电标志位地址2的数据也不为0xAA,说明软件是第一次运行,也是第一次写数据到非易失性存储器中,先将0写入到数据地址1,然后将0xAA写入到掉电标志位地址1中,再将0写入到数据地址2,然后将0xAA写入到掉电标志位地址2中;判断和计算模块,用于根据当前的关键数据,根据预设算法进行判断和计算,得出最新的关键数据,将掉电标志位地址1数据清零,将最新的关键数据写入到数据地址1,掉电标志位地址1写入0xAA,将掉电标志位地址2数据清零,将最新的关键数据写入到数据地址2,掉电标志位地址2写入0xAA。所述判断和计算模块循环执行,直到掉电时结束。为了对本专利技术的方法进行验证,用富士通单片机设计了电路板,用的是铁电存储器,通过信号发生器,设置500Hz方波,用富士通单片机采集脉冲,每100个脉冲对应10米,在开始采集的时候记录时间和里程,全部为0,10分钟后,再次记录里程,里程为30公里,停止信号发生器,给电路板断电,然后重新上电,界面显示里程为30公里,连续做实验几十次,结果都是重新上电后,里程依然保持在断电前的数据,说明该方法能够保证控制系统断电后数据不丢失,提高了软件的稳定性。可以看出,本专利技术能够保证控制系统掉电后关键数据能够正确的保存下来,避免关键数据的丢失和错误关键数据的产生,同时避免了重新上电后错误的关键数据导致控制系统的运行错误甚至瘫痪,提高了嵌入式控制系统的可靠性和安全性。以上所述仅是本专利技术的优选实施方式,应当指出,对于本
的普通技术人员来说,在不脱离本专利技术技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本专利技术的保护范围。本文档来自技高网
...

【技术保护点】
1.一种高可靠性嵌入式软件数据防掉电方法,其特征在于,包括以下步骤:第一步、上电初始化:针对一个预设关键数据设置四个地址空间:数据地址1、数据地址2、掉电标志位地址1、掉电标志位地址2;数据地址1和数据地址2用于保存关键数据,掉电标志位地址1和掉电标志位地址2用于保存掉电标志位,当掉电标志位地址1为0xAA时,说明数据地址1的数据有效,当掉电标志位地址2为0xAA时,说明数据地址2的数据有效;第二步、判断掉电标志位地址1的数据是否为0xAA,如果掉电标志位地址1的数据为0xAA,读取数据地址1的数据,并将读取的数据保存下来,然后将掉电标志位地址2的数据清零,将读取的数据地址1的数据写到数据地址2中,然后再将0xAA写入到掉电标志位地址2中;如果掉电标志位地址1的数据不为0xAA,判断掉电标志位地址2的数据是否为0xAA;如果掉电标志位地址2的数据为0xAA,则读取数据地址2的数据,并将读取的数据地址2的数据保存下来,然后将掉电标志位地址1的数据清零,将读取的数据地址2的数据写到数据地址1中,然后再将0xAA写入到掉电标志位地址1中;如果掉电标志位地址2的数据也不为0xAA,说明软件是第一次运行,也是第一次写数据到非易失性存储器中,先将0写入到数据地址1,然后将0xAA写入到掉电标志位地址1中,再将0写入到数据地址2,然后将0xAA写入到掉电标志位地址2中;第三步、根据当前的关键数据,进行判断和计算,得出最新的关键数据,将掉电标志位地址1数据清零,将最新的关键数据写入到数据地址1,掉电标志位地址1写入0xAA,将掉电标志位地址2数据清零,将最新的关键数据写入到数据地址2,掉电标志位地址2写入0xAA。...

【技术特征摘要】
1.一种高可靠性嵌入式软件数据防掉电方法,其特征在于,包括以下步骤:第一步、上电初始化:针对一个预设关键数据设置四个地址空间:数据地址1、数据地址2、掉电标志位地址1、掉电标志位地址2;数据地址1和数据地址2用于保存关键数据,掉电标志位地址1和掉电标志位地址2用于保存掉电标志位,当掉电标志位地址1为0xAA时,说明数据地址1的数据有效,当掉电标志位地址2为0xAA时,说明数据地址2的数据有效;第二步、判断掉电标志位地址1的数据是否为0xAA,如果掉电标志位地址1的数据为0xAA,读取数据地址1的数据,并将读取的数据保存下来,然后将掉电标志位地址2的数据清零,将读取的数据地址1的数据写到数据地址2中,然后再将0xAA写入到掉电标志位地址2中;如果掉电标志位地址1的数据不为0xAA,判断掉电标志位地址2的数据是否为0xAA;如果掉电标志位地址2的数据为0xAA,则读取数据地址2的数据,并将读取的数据地址2的数据保存下来,然后将掉电标志位地址1的数据清零,将读取的数据地址2的数据写到数据地址1中,然后再将0xAA写入到掉电标志位地址1中;如果掉电标志位地址2的数据也不为0xAA,说明软件是第一次运行,也是第一次写数据到非易失性存储器中,先将0写入到数据地址1,然后将0xAA写入到掉电标志位地址1中,再将0写入到数据地址2,然后将0xAA写入到掉电标志位地址2中;第三步、根据当前的关键数据,进行判断和计算,得出最新的关键数据,将掉电标志位地址1数据清零,将最新的关键数据写入到数据地址1,掉电标志位地址1写入0xAA,将掉电标志位地址2数据清零,将最新的关键数据写入到数据地址2,掉电标志位地址2写入0xAA。2.如权利要求1所述的方法,其特征在于,在第三步之后还包括第四步:循环执行第三步,直到掉电时结束。3.如权利要求1所述的方法,其特征在于,第三步中,根据当前的关键数据,利用预设的算法进行判断和计算,得出最新的关键数据。4.如权利要求1所述的方法,其特征在于,所述非易失性存储器为FLASH。5.如权利要求1所述的方法,其特征在于,所述非...

【专利技术属性】
技术研发人员:庞凤颖刘勇朱天蔚胡建军李欣颜郭倩雅周娜张领辉渠龙波李冀川高明伊欣妍
申请(专利权)人:中国北方车辆研究所
类型:发明
国别省市:北京,11

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

1