基于双备份的数据保存和校验方法.pdf

上传人:xia****o6 文档编号:1666036 上传时间:2018-07-03 格式:PDF 页数:9 大小:439.95KB
返回 下载 相关 举报
摘要
申请专利号:

CN201310526859.1

申请日:

2013.10.30

公开号:

CN104598330A

公开日:

2015.05.06

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 11/14申请日:20131030|||公开

IPC分类号:

G06F11/14; G06F11/10

主分类号:

G06F11/14

申请人:

中国航空工业集团公司第六三一研究所

发明人:

刘晓

地址:

710119陕西省西安市锦业二路15号

优先权:

专利代理机构:

西安智邦专利商标代理有限公司61211

代理人:

姚敏杰

PDF下载: PDF下载
内容摘要

本发明涉及一种基于双备份的数据保存和校验方法,该方法包括以下步骤:1)数据备份:根据所要保存的原始数据产生备份数据,并分别进行保存;备份数据包括第一备份数据以及第二备份数据;第一备份数据和第二备份数据的编码方式是不同的;2)数据恢复:分别读取第一备份数据和第二备份数据,并进行正确性校验;若校验成功,则第一备份数据就是恢复出的正确的原始数据;若校验失败,则判定存储的数据出错,原始数据无法恢复。本发明提供了一种可显著提高发现错误的能力、可保证重要数据使用的正确性和安全性的基于双备份的数据保存和校验方法。

权利要求书

权利要求书
1.  一种基于双备份的数据保存和校验方法,其特征在于:所述方法包括以 下步骤:
1)数据备份:根据所要保存的原始数据产生备份数据,并分别进行保存; 所述备份数据包括第一备份数据以及第二备份数据;所述第一备份数据和第二 备份数据的编码方式是不同的;
2)数据恢复:分别读取第一备份数据和第二备份数据,并进行正确性校验; 若校验成功,则所述第一备份数据就是正确的原始数据;若校验失败,则判定 存储的数据出错,原始数据无法恢复。

2.  根据权利要求1所述的基于双备份的数据保存和校验方法,其特征在于: 所述步骤1)中产生第一备份数据的具体实现方式是:
1.1.1)获取需要保存的原始数据;
1.1.2)将所述原始数据进行拷贝,直接将拷贝数据作为第一备份数据。

3.  根据权利要求1所述的基于双备份的数据保存和校验方法,其特征在于: 所述步骤1)中产生第二备份数据的具体实现方式是:
1.2.1)获取需要保存的原始数据;
1.2.2)对所述原始数据以字节为单位,根据各原始数据字节中所含1的个数 的奇偶性,依次产生第二备份数据的各个字节。

4.  根据权利要求3所述的基于双备份的数据保存和校验方法,其特征在于: 所述步骤1.2.2)中产生各第二备份数据字节的具体实现方式是:
1.2.2.1)确定所述原始数据字节中所含1的个数是奇数还是偶数;
1.2.2.2)若所述原始数据字节中所含1的个数是奇数,则将所述原始数据字 节本身作为第二备份数据的对应字节;若所述原始数据字节中所含1的个数是偶 数,则将所述原始数据字节逐位变反,形成反码字节,并将所述反码字节作为 第二备份数据的对应字节。

5.  根据权利要求1所述的基于双备份的数据保存和校验方法,其特征在于: 所述步骤2)中数据校验和恢复的具体实现方式是:
2.1)以字节为单位,分别读取第一备份数据和第二备份数据的各个字节;
2.2)对每一对所述第一备份数据字节和第二备份数据字节,分别进行校验;
2.3)若所述每一对备份数据字节全都校验成功,则所述第一备份数据就是 恢复出的正确的原始数据;若至少有一对备份数据字节校验失败,则表明存储 的数据出错,原始数据无法恢复。

6.  根据权利要求5所述的基于双备份的数据保存和校验方法,其特征在于: 所述步骤2.2)中对各对备份数据字节校验的具体实现方式是:
2.2.1)确定所述第一备份数据字节中所含1的个数的奇偶性;
2.2.2)若所述第一备份数据字节中所含1的个数是奇数,则判断对应的第二 备份数据字节是否等于所述第一备份数据字节:是则校验成功,否则校验失败; 若所述第一备份数据字节中所含1的个数是偶数,则判断对应的第二备份数据字 节是否等于所述第一备份数据字节的反码,是则校验成功;否则校验失败。

7.  根据权利要求1-6任一权利要求所述的基于双备份的数据保存和校验方 法,其特征在于:所述基于双备份的数据保存和校验方法在步骤2)之后还包括:
3)输出数据是否成功恢复的标志,当成功恢复时给出恢复后的原始数据, 当数据出错时或者给出警示信息、或者给出默认的安全值。

8.  根据权利要求7所述的基于双备份的数据保存和校验方法,其特征在于: 所述需要保存的原始数据是单个字节或多个字节。

说明书

说明书基于双备份的数据保存和校验方法
技术领域
本发明属于计算机控制领域,涉及一种基于双备份的数据保存和校验方法, 尤其涉及一种对实时控制系统中重要数据进行双备份保存和正确性校验的方 法。
背景技术
在基于微处理器的实时控制系统中,经常需要把一些重要数据保存在 FLASH或EEPROM等非易失性存储器中。由于器件的瞬时或永久性失效以及各 种外部环境的干扰,存储的数据有可能出错。为此,通常采用对重要数据进行“双 备份”的方法,以检验数据是否出现了错误。具体方法是,将需要保存的数据分 别存放在两个地方,读出使用时先比较两处的数据是否一致,若不一致就表明 出现了错误。由于备份数据之间的最小“汉明距离”(互异的二进制位数)只有2, 所以这种方法的检错能力实际上很有限。如果两个备份数据中各有一个二进制 位发生了翻转(0变1、1变0)、而位置又恰好相同,则差错就不可能被发现,从 而导致将错误数据当成正确数据来使用,给控制系统的可靠性和安全性带来隐 患。
发明内容
为了解决背景技术中存在的上述技术问题,本发明提供了一种可显著提高 发现错误的能力、可保证重要数据使用的正确性和安全性的基于双备份的数据 保存和校验方法。
本发明的技术解决方案是:本发明提供了一种基于双备份的数据保存和校 验方法,其特殊之处在于:所述方法包括以下步骤:
1)数据备份:根据所要保存的原始数据产生备份数据,并分别进行保存; 所述备份数据包括第一备份数据以及第二备份数据;所述第一备份数据和第二 备份数据的编码方式是不同的;
2)数据恢复:分别读取第一备份数据和第二备份数据,并进行正确性校验; 若校验成功,则所述第一备份数据就是恢复出的正确的原始数据;若校验失败, 则判定存储的数据出错,原始数据无法恢复。
上述步骤1)中产生第一备份数据的具体实现方式是:
1.1.1)获取需要保存的原始数据;
1.1.2)将所述原始数据进行拷贝,直接将拷贝数据作为第一备份数据。
上述步骤1)中产生第二备份数据的具体实现方式是:
1.2.1)获取需要保存的原始数据;
1.2.2)对所述原始数据以字节为单位,根据各原始数据字节中所含1的个数 的奇偶性,依次产生第二备份数据的各个字节。
上述步骤1.2.2)中产生各第二备份数据字节的具体实现方式是:
1.2.2.1)确定所述原始数据字节中所含1的个数是奇数还是偶数;
1.2.2.2)若所述原始数据字节中所含1的个数是奇数,则将所述原始数据字 节本身作为第二备份数据的对应字节;若所述原始数据字节中所含1的个数是偶 数,则将所述原始数据字节逐位变反,形成反码字节,并将所述反码字节作为 第二备份数据的对应字节。
上述步骤2)中数据校验和恢复的具体实现方式是:
2.1)以字节为单位,分别读取第一备份数据和第二备份数据的各个字节;
2.2)对每一对所述第一备份数据字节和第二备份数据字节,分别进行正确 性校验;
2.3)若所述每一对备份数据字节全都校验成功,则所述第一备份数据就是 恢复出的正确的原始数据;若至少有一对备份数据字节校验失败,则表明存储 的数据出错,原始数据无法恢复。
上述步骤2.2)中对各对备份数据字节校验的具体实现方式是:
2.2.1)确定所述第一备份数据字节中所含1的个数的奇偶性;
2.2.2)若所述第一备份数据字节中所含1的个数是奇数,则判断对应的第二 备份数据字节是否等于所述第一备份数据字节:是则校验成功,否则校验失败; 若所述第一备份数据字节中所含1的个数是偶数,则判断对应的第二备份数据字 节是否等于所述第一备份数据字节的反码,是则校验成功;否则校验失败。
上述基于双备份的数据保存和校验方法在步骤2)之后还可包括:
3)输出数据是否成功恢复的标志,当成功恢复时给出恢复后的原始数据, 当数据出错时或者给出警示信息、或者给出默认的安全值。
上述基于双备份的数据保存和校验方法中,需要保存的原始数据可以是单 个字节或多个字节。
本发明的优点是:
本发明提供了一种基于双备份的数据保存和校验方法,该方法明通过改变 传统双备份方法中的第二个备份,即将原来无条件取数据原码改为仅在原字节 中“1”的位数为奇数时才取原码、偶数时取其反码,在不明显增加处理复杂度的 情况下,增大了备份码字之间的汉明距离,从而可提高对数据差错的检测能力。 这对于计算资源有限而可靠性要求又很高的嵌入式实时控制系统来说,具有很 大的实用价值。
具体实施方式
本发明提供了一种基于双备份的数据保存和校验方法,该方法包括以下步 骤:
1)数据备份:根据所要保存的原始数据产生备份数据,并分别进行保存; 所述备份数据包括第一备份数据以及第二备份数据;所述第一备份数据和第二 备份数据的编码方式是不同的;所述的要保存的原始数据可以是单个字节或多 个字节。
其中:
产生第一备份数据的具体实现方式是:
1.1.1)获取需要保存的原始数据;
1.1.2)将所述原始数据进行拷贝,直接将拷贝数据作为第一备份数据。
产生第二备份数据的具体实现方式是:
1.2.1)获取需要保存的原始数据;
1.2.2)对所述原始数据以字节为单位,根据各原始数据字节中所含1的个数 的奇偶性,依次产生第二备份数据的各个字节。
上述步骤1.2.2)中产生各第二备份数据字节的具体实现方式是:
1.2.2.1)确定所述原始数据字节中所含1的个数是奇数还是偶数;
1.2.2.2)若所述原始数据字节中所含1的个数是奇数,则将所述原始数据字 节本身作为第二备份数据的对应字节;若所述原始数据字节中所含1的个数是偶 数,则将所述原始数据字节逐位变反,形成反码字节,并将所述反码字节作为 第二备份数据的对应字节。
2)数据恢复:分别读取第一备份数据和第二备份数据,并进行正确性校验; 若校验成功,则所述第一备份数据就是正确的原始数据,否则判定存储的数据 出错。
其具体实现方式是:
2.1)以字节为单位,分别读取第一备份数据和第二备份数据的各个字节;
2.2)对每一对所述第一备份数据字节和第二备份数据字节,分别进行校验。
上述步骤2.2)中对各对备份数据字节校验的具体实现方式是:
2.2.1)确定所述第一备份数据字节中所含1的个数的奇偶性;
2.2.2)若所述第一备份数据字节中所含1的个数是奇数,则判断对应的第二 备份数据字节是否等于所述第一备份数据字节:是则校验成功,否则校验失败; 若所述第一备份数据字节中所含1的个数是偶数,则判断对应的第二备份数据字 节是否等于所述第一备份数据字节的反码,是则校验成功;否则校验失败。
2.3)若所述每一对备份数据字节全都校验成功,则所述第一备份数据就是 恢复出的正确的原始数据;若至少有一对备份数据字节校验失败,则表明存储 的数据出错,原始数据无法恢复。
3)输出数据是否成功恢复的标志,当成功恢复时给出恢复后的原始数据, 当数据出错时或者给出警示信息、或者给出默认的安全值。
本发明与传统方法不同,本发明中两个备份数据的编码方式是不同的,其 第二个备份数据不是对原数据的简单拷贝,而是根据各字节中二进制“1”的个 数的奇偶性取其原码或反码。
现假设有两个不同的数据字节a和b,二者之间的汉明距离记为k(k=1..8)。 在传统的双备份方法中,这两个字节对应的16位备份码字(aa,bb)之间的汉明 距离将是2k,当k=1时取得最小值2。在本发明的双备份方法中,当k为偶数(2、 4、6、8)时,对应的两个备份码字之间的汉明距离仍是2k;而当k为奇数(1、 3、5、7)时,备份码字之间的汉明距离则恒为8。因此,新方法中的汉明距离 只有4、8、12、16等四种数值,最小值在k=2时取得,其值为4。
表1和表2分别给出了传统双备份方法和本发明的双备份方法中备份码字的 一些示例(H表示十六进制,B表示二进制)
表1传统的双备份方法
原数据字节(H) 第一备份(B) 第二备份(B) 00 00000000 00000000 01 00000001 00000001 02 00000010 00000010 03 00000011 00000011 .. ... ... FC 11111100 11111100 FD 11111101 11111101 FE 11111110 11111110 FF 11111111 11111111
表2本发明的双备份方法
原数据字节(H) 第一备份(B) 第二备份(B) 00 00000000 11111111 01 00000001 00000001 02 00000010 00000010 03 00000011 11111100 .. ... ... FC 11111100 00000011 FD 11111101 11111101 FE 11111110 11111110 FF 11111111 00000000
不难看出,在传统双备份方法中,数据字节00H与01H、01H与03H、...、FEH 与FFH等,其两个备份字节构成的16位二进制码字之间,均只有两位二进制数字 不同。这样,如果那两位同时发生翻转,就会变成对方的“合法的”备份码字,错 误将无法被发现。比如,若00H的两个备份字节的最低位均由0变成1,则由于两 个备份相同而误认为未发生错误,并将01H当成“正确”的数据。而在本发明的 双备份方法中,任何两个数据字节的16位备份码字之间,至少会有4位二进制数 字不同。于是,只要16位备份码字中出错的位数不足4(3位或3位以下),就总 能被发现。
下面通过两种具体实施方式,对本发明作进一步的详细说明。
实施例1-利用MCS-51系列单片机汇编语言来实现
MCS-51系列单片机是一种流行的8位微处理器,在控制领域中有着非常广 泛的应用。该处理器设有专门的“奇偶标志位(程序状态字PSW的第0位)”,并 有“根据状态位跳转指令(JB)”以及“按位取反指令(CPL)”。利用这些功能特 点,可以很方便地实施本发明的技术方案。
数据备份时
假设待保存数据的一个字节已经放在累加器A中,则可采用如下汇编代码, 在寄存器R1和R2中分别得到其第一、第二备份字节:
MOV R1,A;
JB PSW.0,skip1;
CPL A;
skip1:MOV R2,A;
数据恢复时
假设一对备份字节已分别存放在R1和R2中(R1为第一备份字节,R2为第二 备份字节),则可采用如下汇编代码,在累加器A中得到恢复后的原始数据字节;
MOV A,R1;
JB PSW.0,skip2;
CPL A;
skip2:CJNE A,R2,<异常处理程序的入口地址>;
MOV A,R1;
实施例2-利用C语言通过查表来实现
如果所用的处理器没有专门的奇偶标志,则可通过简单的查表方法来实施 本发明的技术方案。首先,定义一个具有256个元素的数组,其中按次序存放0, 1,2,...,255所对应的第二备份字节:
unsigned char copy2[256]={255,1,2,252,4,250,249,7,8,246,245, 11,243,13,14,240,16,238,237,19,235,21,22,232,231,25,26, 228,28,226,225,31,32,222,221,35,219,37,38,216,215,41, 42,212,44,210,209,47,207,49,50,204,52,202,201,55,56,198, 197,59,195,61,62,192,64,190,189,67,187,69,70,184,183, 73,74,180,76,178,177,79,175,81,82,172,84,170,169,87,88, 166,165,91,163,93,94,160,159,97,98,156,100,154,153,103, 104,150,149,107,147,109,110,144,112,142,141,115,139,117, 118,136,135,121,122,132,124,130,129,127,128,126,125,131, 123,133,134,120,119,137,138,116,140,114,113,143,111,145, 146,108,148,106,105,151,152,102,101,155,99,157,158,96, 95,161,162,92,164,90,89,167,168,86,85,171,83,173,174, 80,176,78,77,179,75,181,182,72,71,185,186,68,188,66,65, 191,63,193,194,60,196,58,57,199,200,54,53,203,51,205, 206,48,208,46,45,211,43,213,214,40,39,217,218,36,220, 34,33,223,224,30,29,227,27,229,230,24,23,233,234,20,236, 18,17,239,15,241,242,12,244,10,9,247,248,6,5,251,3,253, 254,0}。
数据备份时
假设data_byte为要保存的数据字节,则可按照如下的C代码,在copy_byte1 和copy_byte2中得到其第一、第二备份字节:
copy_byte1=data_byte;
copy_byte2=copy2[data_byte];
数据恢复时
假设两个备份字节已分别赋给变量copy_byte1和copy_byte2,则可按照如下 的C代码来恢复原数据字节data_byte:
if(copy_byte2==copy2[copy_byte1])
{
data_byte=copy_byte1;
}
else<异常处理>;
可以看出,上述两种实施方式都十分简单,时间花费都很小,非常适合计 算资源有限的嵌入式实时控制系统。

基于双备份的数据保存和校验方法.pdf_第1页
第1页 / 共9页
基于双备份的数据保存和校验方法.pdf_第2页
第2页 / 共9页
基于双备份的数据保存和校验方法.pdf_第3页
第3页 / 共9页
点击查看更多>>
资源描述

《基于双备份的数据保存和校验方法.pdf》由会员分享,可在线阅读,更多相关《基于双备份的数据保存和校验方法.pdf(9页珍藏版)》请在专利查询网上搜索。

本发明涉及一种基于双备份的数据保存和校验方法,该方法包括以下步骤:1)数据备份:根据所要保存的原始数据产生备份数据,并分别进行保存;备份数据包括第一备份数据以及第二备份数据;第一备份数据和第二备份数据的编码方式是不同的;2)数据恢复:分别读取第一备份数据和第二备份数据,并进行正确性校验;若校验成功,则第一备份数据就是恢复出的正确的原始数据;若校验失败,则判定存储的数据出错,原始数据无法恢复。本发明。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1