一种用于ic卡更新数据时防掉电数据存储的方法

文档序号:6424500阅读:199来源:国知局
专利名称:一种用于ic卡更新数据时防掉电数据存储的方法
技术领域
本发明涉及IC卡技术领域,特别是用于IC卡在更新数据时可实现防掉电备份的数据存储的方法。
背景技术
现有技术中,IC卡的数据备份方法是在数据存储区选择一片空白存储区作为备份区,在更新数据前,先要将更新扇区的原有数据写入备份区;成功更新数据之后,将备份区全部清空。利用这种方法,能够实现数据更新时的掉电恢复功能。但因为这种方法先要将更新数据写入备份区,再更新目的扇区,更新后还要擦除备份区,势必会多次擦写存储区。·现实中,由于一些应用场合中要求更新数据的时间尽可能短,如果能减少擦写存储区的操作次数,就可以有效降低更新数据所用的时间。

发明内容
针对上述现有技术中存在的不足,本发明的目的是提供一种用于IC卡更新数据时防掉电数据存储的方法。它能大大减少擦写存储区的操作次数,有效降低更新数据所用的时间。为了达到上述发明目的,本发明的技术方案以如下方式实现
一种用于IC卡更新数据时防掉电数据存储的方法,它包括使用多个主扇区和分别与各主扇区相连的一个至多个备份扇区的数据存储区,其步骤为
I)创建数据时,将数据写入主扇区中,备份扇区为空,同时计算出整个扇区数据的CRC校验值,将主扇区的新旧比较值置为0,将这两项连同数据一起写入主扇区中;
2)读取数据时,根据主扇区和备份扇区中的扇区标识判断哪个为有效扇区,读
取有效扇区;
3)更新数据时,根据主扇区和备份扇区中的扇区标识判断哪个为有效扇区,将有效扇区的数据整页读出,修改需要更新位置的内容后,计算出整个扇区数据的CRC校验值,将新旧比较值加一,将这两项连同数据一起写入无效扇区中。本发明由于采用了上述实现方法,使用多个相连的扇区互为数据备份,利用扇区标识判断有效页面,读取时选择有效扇区的数据,更新时选择无效扇区,这样更新过程中写备份扇区的同时也就是在写目的扇区,更新一页数据只写一个扇区。而不像传统方式,备份扇区和目的扇区是分开的,更新一页数据要写两个扇区。因此可以大大减少擦写存储区的操作次数,有效降低更新数据所用的时间。当更新数据量较大时,基本接近成倍减少擦写存储区的操作次数,更新数据所用的时间也是明显降低。下面结合附图和具体实施方式
对本发明作进一步说明。


图I为本发明一种实施例的数据存储区示意图;图2为本发明单扇区数据读取示意 图3为本发明单扇区数据更新示意 图4为本发明数据更新前掉电的数据存储区示意 图5为本发明数据更新中前掉电的数据存储区示意 图6为本发明数据更新后掉电的数据存储区示意图。
具体实施例方式 参看图I,本发明包括多个主扇区和分别与各主扇区相连的一个至多个备份扇区。各扇区都设置扇区标识,扇区标识包括扇区新旧比较值和整个扇区数据的CRC校验值。本发明中的备份扇区可以是N个,N为自然数,备份扇区标志中的新旧比较值可以 是0-η,η为自然数;扇区校验值可以是CRC或者其它方式。下面以两个互为备份的扇区,且校验值是CRC为例,说明本发明数据存储区的实现方法
I)创建数据时,将数据写入主扇区A中,备份扇区B此时为空。同时计算出整个扇区数据的CRC校验值,将主扇区A的新旧比较值置为0,将这两项连同数据一起写入主扇区A中。2)读取数据时,参见图2,先分别读出主扇区A和备份扇区B的扇区标识,计算两个扇区数据的CRC校验值。对比计算出的CRC和扇区标识中的CRC,如果只有一个扇区相同,则该扇区为有效扇区。如果两个CRC都相同,则判断新旧比较值(2>1>0>2),取值大的扇区为有效扇区(最后一次成功写入的扇区),读取有效扇区的内容。图2中,如果两个扇区的CRC均计算正确,根据新旧比较值可知B扇区为有效扇区,读取B扇区的内容。3)更新数据时,参见图3,根据上述方法判断出需要更新的有效扇区,将有效扇区的数据整页读出,修改需要更新位置的内容后,计算出整个扇区数据的CRC校验值,将新旧比较值加一(2 + I变成0),将这两项连同数据一起写入无效扇区中。本发明使用中如果出现更新数据时掉电的情况,根据掉电时间可以分为三种情况
一是在更新之前掉电,参见图4,这时主扇区A和备份扇区B都保持的是前一次更新后的状况。两个扇区的CRC均计算正确,通过新丨日比较值可知当前主扇区A是有效页面。二是在更新之中掉电,参见图5,这时主扇区A的CRC计算正确,备份扇区B的CRC计算错误。可知当前主扇区A是有效页面。三是在更新之后掉电,参见图6,这时备份扇区B已经写好了这次更新的内容。两个扇区的CRC均计算正确,通过新旧比较值可知当前备份扇区B是有效页面。
权利要求
1 一种用于IC卡更新数据时防掉电数据存储的方法,它包括使用多个主扇区(A)和分别与各主扇区(A)相连的一个至多个备份扇区(B)的数据存储区,其步骤为 1)创建数据时,将数据写入主扇区(A)中,备份扇区(B)为空,同时计算出整个扇区数据的CRC校验值,将主扇区(A)的新旧比较值置为O,将这两项连同数据一起写入主扇区(A)中; 2)读取数据时,根据主扇区(A)和备份扇区(B)中的扇区标识判断哪个为有效扇区,读取有效扇区; 3)更新数据时,根据主扇区(A)和备份扇区(B)中的扇区标识判断哪个为有效扇区,将有效扇区的数据整页读出,修改需要更新位置的内容后,计算出整个扇区数据的CRC校验值,将新旧比较值加一,将这两项连同数据一起写入无效扇区中。
全文摘要
一种用于IC卡更新数据时防掉电数据存储的方法,涉及IC卡技术领域。本发明的方法步骤为1)创建数据时,将数据写入主扇区中,备份扇区为空,同时计算出整个扇区数据的CRC校验值,将主扇区的新旧比较值置为0,将这两项连同数据一起写入主扇区中;2)读取数据时,根据主扇区和备份扇区中的扇区标识判断哪个为有效扇区,读取有效扇区;3)更新数据时,根据主扇区和备份扇区中的扇区标识判断哪个为有效扇区,将有效扇区的数据整页读出,修改需要更新位置的内容后,计算出整个扇区数据的CRC校验值,将新旧比较值加一,将这两项连同数据一起写入无效扇区中。同现有技术相比,本发明能大大减少擦写存储区的操作次数,有效降低更新数据所用的时间。
文档编号G06F11/14GK102789404SQ20111013109
公开日2012年11月21日 申请日期2011年5月20日 优先权日2011年5月20日
发明者丁义民, 张廷晅, 杨帆, 杨征军, 王庆林, 王强, 苏垚昀, 路倩 申请人:北京同方微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1