CN102541690B - 一种智能卡及其恢复数据方法 - Google Patents

一种智能卡及其恢复数据方法 Download PDF

Info

Publication number
CN102541690B
CN102541690B CN201110439718.7A CN201110439718A CN102541690B CN 102541690 B CN102541690 B CN 102541690B CN 201110439718 A CN201110439718 A CN 201110439718A CN 102541690 B CN102541690 B CN 102541690B
Authority
CN
China
Prior art keywords
backed item
backup area
storage space
read
smart card
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201110439718.7A
Other languages
English (en)
Other versions
CN102541690A (zh
Inventor
张楠
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Watchdata Co ltd
Original Assignee
Beijing WatchData System Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing WatchData System Co Ltd filed Critical Beijing WatchData System Co Ltd
Priority to CN201110439718.7A priority Critical patent/CN102541690B/zh
Publication of CN102541690A publication Critical patent/CN102541690A/zh
Application granted granted Critical
Publication of CN102541690B publication Critical patent/CN102541690B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明公开了一种智能卡及其恢复数据方法,该方法包括:将所述智能卡闪存内备份区中的备份项一次读入到所述备份区外的预设存储空间中,若所述读入到预设存储空间未能完成,则在智能卡再次上电时重新读入直到完成;所述读入到预设存储空间完成后,在所述预设存储空间中对读出的备份项进行有效性验证,根据验证成功后的有效备份项对智能卡进行数据恢复。本发明先将所有备份区中的备份项读入预设的存储空间,之后的备份项进行有效性验证和数据区数据恢复都以该次读出的备份项为基准,在多次读取备份项时都能读出一致的数据,从而使得即使在智能卡操作备份区时发生异常断电,也能保证对智能卡作出的任何数据恢复都是有效的。

Description

一种智能卡及其恢复数据方法
技术领域
本发明涉及数据备份技术领域,尤其涉及一种智能卡及其恢复数据方法。
背景技术
智能卡的事务操作具有原子性,即一个事务在对一批数据执行修改操作时,要么全部完成,并使用修改后的数据去替代原来的数据,要么一个数据也不修改。然而智能卡的断电情况却经常会破坏智能卡事务操作的原子性,例如:完成一次写操作后智能卡突然断电,数据区的更新操作只是部分被完成;或者一次写操作需要较长的时间,写操作的过程中间智能卡突然断电,导致写操作不能完整结束。
为了保证事务操作的原子性,智能卡引用了备份机制,即在写操作进行时,先将该段地址的原数据备份到指定的备份区,再行写入,如果在这期间智能卡出现断电,则在智能卡下次上电初始先检查备份区并恢复数据,整个智能卡断电保护的过程如下:将数据区的原数据写入备份区中形成对应的备份项,备份项的数据结构如图1所示包括以下字段:标记Tag、长度Length、数据Data、地址Address和校验值,其中校验值是对该备份项中理论上应该写入的标记Tag、长度Length、数据Data和地址Address这四个字段内的值进行一定运算得到的值;在下次智能卡上电初始,首先对该备份项中除校验值以外实际写入其他字段的值进行相同的运算得到一个期望值,如果该期望值与对应的校验值相同,则说明该备份项有效,可以利用该备份项对数据区的相应数据进行恢复,否则,该备份项无效,不能利用该备份项对数据区进行恢复。这是因为在写备份项时,只有当备份项的所有字段都正常写入的情况下,即在写备份项的过程中没有出现断电的情况下,重新上电初始计算出的期望值才会与校验值相同,说明此时的备份项记录是可靠的,可以用来作为恢复数据使用,否则就说明写入备份项的过程中出现了断电情况,备份项记录是不可靠的,不能用作恢复数据使用。
智能卡的备份区一般位于FLASH ROM(FLASH Read-Only Memory,闪速只读存储器)内,而目前常见的闪存中写操作往往不支持对单个字节进行修改,而是只支持页擦页写型的修改,即只要进行修改,都需要先擦除一整页的存储空间,然后再将旧数据及新数据一起写入该页内,这样在备份区中添加新的备份项时,就会出现旧的备份项被擦除的操作。
闪存通常采用反向读取的方式进行读操作,对于每一bit进行读取时,源极和漏极的方向已经和写操作不同,发生了互换,此时,若某一bit内存有电荷,则器件的阈值电压大,器件无法导通,可判断该bit的数值为1;若该bit内没有存储电荷,则器件的阈值电压小,器件可以导通,可判断该bit的数值为0。因此,根据器件的导通与否便可获取闪存内的数据。
然而由于目前闪存制造工艺的特殊,使得如果在对闪存进行页擦页写的过程中出现异常断电,就会有不稳定的现象出现,这主要体现在读操作上。例如,如果在对某一bit进行写操作的过程中出现异常断电,则该bit就可能会因为没有充满足够电荷量或放掉全部电荷量而处于一个临界值,也就是器件处于导通和非导通的边缘,并且由于临界值通常不是一个定值,有一定的误差,因此,这个时候对该bit进行多次读操作,就有可能读出不一样的值,有时是0,有时就可能是1。
这种不稳定现象的存在使得闪存内进行数据恢复存在相当大的漏洞,因为智能卡可能正是在对备份区进行写操作的过程中断了电,那么在上电后对备份项数据进行有效性验证时,某一bit的值可能与期望值相符而被判作有效,但是当使用该备份项进行数据恢复的时候,会进行第二次读操作,而由于该bit内电荷量的特殊性,读出的值与之前的值不同,则此时将把错误的数据恢复回去,造成数据区的数据发生跳变,即恢复的数据与原始数据不一致,导致卡片的数据完整性和安全性受到了破坏。
发明内容
本发明提供一种智能卡及其恢复数据方法,用以解决目前智能卡如果在操作备份区时发生异常断电,对备份区数据进行多次读操作时可能会得到不同的结果而导致不能正确恢复智能卡数据区数据的问题。
本发明方法包括:
一种智能卡恢复数据方法,包括:
将所述智能卡闪存内备份区中的备份项一次读入到所述备份区外的预设存储空间中,若所述读入到预设存储空间未能完成,则在智能卡再次上电时重新读入直到完成;
所述读入到预设存储空间完成后,在所述预设存储空间中对读出的备份项进行有效性验证,根据验证成功后的有效备份项对智能卡进行数据恢复。
一种智能卡,包括:
读入模块,用于将所述智能卡闪存内备份区中的备份项一次读入到所述备份区外的预设存储空间中,若所述读入到预设存储空间未能完成,则在智能卡再次上电时重新读入直到完成;
恢复模块,用于所述读入到预设存储空间完成后,在所述预设存储空间中对读出的备份项进行有效性验证,根据验证成功后的有效备份项对智能卡进行数据恢复。
本发明提供的一种智能卡及其恢复数据方法,在智能卡恢复数据区的数据之前,先将所有备份区中的备份项读入预设的存储空间,而后利用该存储空间内的备份项进行有效性验证和数据区数据恢复。由于该过程只对智能卡原备份区进行一次读操作,在之后都以该次读出的备份项为基准,在多次读取备份项时都能读出一致的数据,从而使得即使在智能卡操作备份区时发生异常断电,也能保证对智能卡作出的任何数据恢复都是有效的。
附图说明
图1为智能卡闪存内备份项的数据结构示意图;
图2为本发明提供的一种智能卡恢复数据方法流程示意图;
图3为本发明实施例中智能卡事务执行写操作的操作1;
图4为本发明实施例中智能卡事务执行写操作的操作2;
图5为本发明实施例中智能卡事务执行写操作的操作3;
图6为本发明实施例中智能卡事务执行写操作的操作4;
图7为本发明实施例中智能卡事务执行写操作的操作5;
图8为本发明实施例中智能卡事务执行写操作的操作6;
图9为本发明实施例中智能卡事务执行写操作的操作7;
图10为本发明实施例中智能卡事务执行写操作的操作8;
图11为本发明实施例提供的一种智能卡结构示意图。
具体实施方式
下面结合附图和具体实施例,对本发明一种智能卡及其恢复数据方法的具体实施方式作进一步详细描述。
本发明提供一种智能卡恢复数据方法,用于智能卡异常断电后进行的数据恢复工作,如图2所示,包括:
步骤201,将所述智能卡闪存内备份区中的备份项一次读入到所述备份区外的预设存储空间中,若所述读入到预设存储空间未能完成,则在智能卡重新上电时重新读入直到完成;
步骤202,所述读入到预设存储空间完成后,在所述预设存储空间中对读出的备份项进行有效性验证,根据验证成功后的有效备份项对智能卡进行数据恢复。
现有的智能卡恢复数据方法中,由于对备份项的有效性验证和数据区数据恢复都需要对智能卡原备份区进行读操作,当备份区中存在包含临界值电荷量的bit(断电发生在智能卡操作备份区时会出现的状况)时,就不能够保证对该bit进行多次读操作得到的数据是前后一致的,也就是所述备份区本身就是不可信的,因此利用这种不可信的备份区进行的数据恢复是不能够保证有效性的。
本方法在智能卡对数据区数据进行恢复之前,先将卡内所有备份区的备份项数据读入预设的存储空间,而后利用该存储空间内的备份项进行有效性验证和数据区数据恢复。由于该过程只对智能卡原备份区进行一次读操作,在之后都以该次读出的备份项为基准,因此在多次读取备份项时都能读出一致的数据,并且由于备份项的有效性验证确保了只利用正确的备份数据进行恢复,从而使得即使在智能卡操作备份区时异常断了电,也能保证智能卡所作出的任何数据恢复都是有效的。
智能卡重新上电后,一般首先验证备份区标志位是否有效,在验证备份区标志位有效的情况下,才进一步执行数据恢复工作。这是由于备份区标志位标识了智能卡中的备份区是否可用。事务执行数据区写操作的过程初始,使用备份区成功备份第一个数据,即在备份区中成功写入第一个备份项时,操作系统即把所述备份区的标志位置位(进行了相应的写操作);在事务成功的执行完全部写操作之后,操作系统才把所述备份区的标志位擦除(置为无效)。因此,当确定所述标志位无效时,说明事务还没有开始对数据区进行写操作或者事务已经成功完成全部写操作,这种情况下,不需要对数据区进行数据恢复。
因此,在应用本发明提供的智能卡恢复数据方法进行数据恢复过程之前,需要验证备份区的标志位是否有效,具体的可以按照现有技术中验证备份区标志位有效的方法。
本发明提供一种智能卡恢复数据方法实施例,用于在事务执行过程中断电后重新上电时智能卡所进行的数据恢复,具体流程如下:
步骤c1,智能卡操作系统扫描闪存内备份区的标志位,判断该标志位是否有效,若有效,则执行后续步骤,否则,结束处理。
步骤c2,操作系统在闪存内查找到各备份区,将所有备份区内的备份项全部一次读入预设的存储空间中,若所述读入操作未能完成,则在智能卡再次上电时重新读入直到完成。
为了避免在多次读取备份项时,得到不一致的读取结果,本发明提供的智能卡恢复数据方法对智能卡闪存内所有备份区内的备份项仅执行一次读取,即对读取过一次的备份项不再执行第二次读取,之后任何需要对备份项进行的操作都以所述预设存储空间中的备份项为依据;考虑到若在将备份区中的备份项读入到预设存储空间的过程中出现再次断电,则不能完成将所有备份区的备份项都读入预设存储空间的情况,本发明方法限定在所述读入操作未能完成时,在智能卡再次上电时重新执行该读入操作直到完成。
步骤c3,扫描所述预设的存储空间中存储的各备份区数据,确定每个备份区中有效备份项的个数,并判断各备份区内有效备份项的个数是否相同,若是,则执行步骤c4,否则,执行步骤c6。
步骤c4,判断各备份区内有效备份项的个数是否都为零,若是,则结束处理,否则,执行步骤c5。
步骤c5,利用所述预设的存储空间中任一备份区内的有效备份项对数据区中相应的数据进行恢复。
步骤c6,利用所述预设的存储空间中具有较多有效备份项的备份区恢复数据区中相应的数据。
智能卡在上电初期执行对数据区数据的恢复,而在上电初期,智能卡的内存空间由于还没有被应用程序分配,是可以随意使用的,优选的,在智能卡上电执行数据恢复之前,使用内存作为所述预设的存储空间,将备份区中的备份项全部读入内存中。
智能卡备份区中备份项的顺序与事务执行对数据区相应数据写操作的顺序一致,优选的,在将所有备份区的备份项写入预设存储空间后,按照所述备份区中备份项的顺序,依次对所述预设存储空间中备份区中的备份项进行有效性验证,当确定备份区中某个备份项数据为无效时,即停止对该备份区中的其余备份项进行验证,并使用所述无效备份项之前的所有有效备份项个数作为该备份区的有效备份项个数。
事务开始执行对数据区的写操作之后,所述备份区的双备份机制使得智能卡中的两个备份区交替被使用。正常情况下,操作系统将组织的新备份项与其中一个备份区中存储的旧备份项一起,存入另一备份区中,这样两个备份区中记录的有效备份项个数应相差一个,则利用具有较多有效备份项的备份区中的备份项数据,将能够恢复更多的数据区数据,并且所述恢复是有效的。
如果在上述写备份区的过程中出现异常断电,就可能会出现两个备份区具有相同的有效备份项个数,这时两个备份区具有的有效备份项个数相同且不为零,利用任一备份区内的有效备份项对数据区中相应的数据进行恢复都是有效的。
智能卡在作数据恢复之前,由于不知道断电的具体时间点以及断电所影响到的具体数据,因此所述智能卡恢复数据方法应保证不论断电出现在事务执行写操作的任意时间点,利用该方法所作的数据恢复都是正确有效的。
假设某一事务需要完成对数据区两个地址addr1和addr2的写操作,写入的长度分别是len1和len2,该事务需要将原来的数据内容data1old和data2old分别写为data1new和data2new。
假设智能卡中包含备份区A和备份区B,并且上电初始使用内存作为预设存储空间,以下说明不论在该事务执行过程的任一时间点出现了断电情况,使用本发明提供的智能卡恢复数据方法都能保证所作出的数据恢复都是有效的,具体过程如下:
1、如图3所示,事务执行写操作之初,在对addr1地址进行写操作之前,先将该地址上的旧数据data1old备份到备份区A中。
若在此过程中出现了异常断电,事务还没有开始对数据区进行任何写操作,则依据所述智能卡恢复数据方法,智能卡上电后,首先扫描闪存内备份区的标志位,由于该标志目前未置位,被判断为无效,所以不需要进行任何数据的恢复。事实上,在该断电的时刻事务还没有开始对数据区进行写操作,因此不需要进行数据恢复工作。
2、如图4所示,备份区中已经成功完成对数据data1old的备份,操作系统将备份区的标志位置位(进行了相应的写操作)。
若在此过程中出现了异常断电,则备份区的标志位可能处于不稳定的状态,依据所述智能卡恢复数据方法,智能卡上电后,首先扫描闪存内备份区的标志位,会有以下两种情况:
1)若通过判断确定该标志位为无效,则不需要进行任何数据的恢复。事实上,这说明断电发生在对该标志位进行置位的过程中,并且事务还没有开始对数据区进行任何写操作,因此不需要数据恢复工作。
2)若通过判断确定该标志为有效(说明断电发生时该备份区的标志位已经成功置位),操作系统随即在闪存内查找到各备份区,将所有备份区中的备份项(此时只有备份区A内的首个备份项)读入内存中,并在内存中判断该备份项的有效性,事实上由于断电前已经成功完成对数据data1old的备份,则该备份项处于稳定状态,读入到内存中的数据与备份区中存储的数据是一致的,所以被判断为有效。随后操作系统利用该备份项对addr1地址的数据进行恢复(虽然此刻事务还没有开始对数据区进行任何写操作,理论上不需要做任何数据恢复,但由于操作系统不知道具体的断电位置,因此按照所述闪存数据恢复的方法,在判断具有有效备份项时,依然进行数据恢复),该恢复是有效的。
3、如图5所示,操作系统成功完成对数据data1old的备份,并且成功完成对所述标志位的置位,开始执行事务对addr1地址的写操作。
若在此过程中出现了异常断电,则数据区addr1地址中的数据可能处于不稳定的状态,按照所述智能卡恢复数据方法,智能卡上电后,首先扫描备份区的标志位,并对其进行判断后确定所述标志位为有效。
操作系统随即在闪存内查找到各备份区,将备份区A内的首个备份项读入内存中,并在内存中判断该备份项的有效性,事实上由于断电前已经成功完成对数据data1old的备份,则该备份项处于稳定状态,读入到内存中的数据与备份区中存储的数据是一致的,所以被判断为有效。随后操作系统利用该备份项对addr1地址的数据进行恢复,该恢复是有效的。
4、如图6所示,操作系统已经成功完成对addr1地址的写操作(此时,addr1地址上的数据已为data1new),开始在内存中将下一步要修改的addr2地址上的旧数据data2old组织成新的备份项,并将其与当前备份区A中的旧备份项(对应data1old)一起备份到备份区B中。
若在此过程中出现了异常断电,则备份区B中的备份项可能处于不稳定的状态,依据所述智能卡恢复数据方法,智能卡上电后,首先扫描备份区的标志位,并对其进行判断后确定所述标志位为有效。
操作系统随即在闪存内查找到各备份区,将备份区A和备份区B中所有的备份项都读入内存中。
操作系统在内存中扫描各备份区,并确定各备份区内的有效备份项个数。事实上由于备份区A中的备份项是成功完成的,可确定其有效备份项个数为1,而备份区B中就可能会出现以下3种情况:
1)备份区B中的第一备份项(对应data1old)为有效,而第二备份项(对应data2old)为不有效,此时统计备份区B的有效备份项个数为1,与备份区A的情况一致,则操作系统利用内存中任一备份区内的有效备份项(对应data1old)对数据区中addr1地址上的数据进行恢复,该恢复一定是有效的。
2)备份区B中的第一备份项为无效,则无论第二备份项是否有效,确定该备份区的有效备份项个数为0,则操作系统利用内存中备份区A内的有效备份项对数据区中addr1地址上的数据进行恢复,该恢复一定是有效的。
3)备份区B中的两个备份项都为有效,则备份区B的有效备份项个数为2,比备份区A具有的有效备份项个数多,则操作系统将备份区B设置为有效备份区,并利用该有效备份区中的两个备份项分别对addr1地址和addr2地址上的数据进行恢复,该恢复一定是有效的。
5、如图7所示,操作系统已成功完成对数据data2old的备份,开始执行事务对addr2地址的写操作。
若在此过程中出现了异常断电,则数据区addr2地址中的数据可能处于不稳定的状态,依据所述智能卡恢复数据方法,智能卡上电后,首先扫描备份区的标志位,并对其进行判断后确定所述标志位为有效。
操作系统随即在闪存内查找到各备份区,将备份区A和备份区B中所有的备份项都读入内存中。
操作系统在内存中扫描各备份区,并确定各备份区内的有效备份项个数。事实上由于备份区A和备份区B中的所有备份项都是成功完成的,因此操作系统最终能够确定备份区A的有效备份项个数为1,备份区B的有效备份项个数为2,并确定将备份区B设置为有效备份区,随后利用该有效备份区中的两个有效备份项分别对addr1地址和addr2地址上的数据进行恢复,该恢复一定是有效的。
6、如图8所示,事务已经成功完成所有的写操作,操作系统开始执行对具有较少备份项备份区(备份区A)的擦除工作。
若在此过程中出现了异常断电,则备份区A中的备份项可能出于不稳定的状态,按照所述智能卡恢复数据方法,智能卡上电后,首先扫描备份区的标志位,并对其进行判断后确定所述标志位为有效。
操作系统随即在闪存内查找到各备份区,将备份区A和备份区B中所有的备份项都读入内存中。
操作系统在内存中扫描各备份区,并确定各备份区内的有效备份项个数。事实上由于备份区B中的备份项是成功完成的,而备份区A中的备份项由于已经被擦除或者没有被完全擦除而处于不稳定的状态,所以操作系统最终能够确定备份区B的有效备份项个数较多,并确定将备份区B设置为有效备份区,随后利用该有效备份区中的两个有效备份项分别对addr1地址和addr2地址上的数据进行恢复,该恢复一定是有效的。
7、如图9所示,操作系统已经成功完成了对具有较少备份项的备份区A的擦除工作,开始执行擦除备份区的标志位。
若在此过程中出现了异常断电,则所述标志位可能处于不稳定的状态,依据所述智能卡恢复数据方法,智能卡上电后,首先扫描所述标志位,会有以下两种情况:
1)若通过判断确定该标志位为无效,则不需要进行任何数据的恢复。事实上,这说明断电发生时已经完成对所述标志位的擦除工作或正处于擦除标志位的过程中,并且事务已经成功完成全部写操作,所以不需要数据恢复工作。
2)若通过判断确定该标志为有效(事实上说明断电发生时还没有开始擦除该标志位),操作系统随即在闪存内查找到各备份区,将备份区A和备份区B内的所有备份项读入内存中。
操作系统在内存中扫描各备份区,并确定各备份区内的有效备份项个数。事实上由于备份区A已经被擦除,而备份区B中的备份项是成功完成的,因此操作系统最终能够确定备份区B的有效备份项个数较多,并确定将备份区B设置为有效备份区,随后利用该有效备份区中的两个有效备份项分别对addr1地址和addr2地址上的数据进行恢复(虽然此时事务已经成功完成了所有写操作,理论上不需要做任何数据恢复,但由于操作系统不知道具体的断电位置,因此按照所述闪存数据恢复的方法,在判断具有有效备份项时,依然进行数据恢复),该恢复是有效的。
8、如图10所示,操作系统已经成功完成了对所述标志位的擦除工作,开始执行对具有较多备份项备份区(备份区B)的擦除工作。
若在此过程中出现了异常断电,则备份区B中的备份项有可能处于不稳定的状态,但是按照所述智能卡恢复数据方法,智能卡上电后,首先扫描备份区的标志位,由于该标志目前已被擦除,被判断为无效,所以不需要进行任何数据的恢复。事实上,在该断电的时刻事务已经成功完成全部写操作,不需要作任何数据恢复。
上述过程中,若在将智能卡闪存内各备份区的备份项读入到内存的过程中出现异常断电,所述读入操作未能完成,则在智能卡再次上电时,重新执行将智能卡闪存内各备份区的备份项读入到内存的操作,直到该读入操作成功完成。
上述过程中,若断电出现在事务对数据区进行写操作的过程中,则由于备份区中已经成功备份了数据区相应的原始数据,所有的备份项都处于稳定的状态,因此将备份区中的备份项读入到内存的过程中所有备份项数据都不会改变,按照所述智能卡恢复数据方法对数据区数据进行的恢复一定是有效的。
若断电出现在操作系统写备份的过程中,则智能卡备份区中的备份项就可能会处于不稳定的状态,如果按照现有的智能卡恢复数据方法,由于对备份项进行有效性验证以及利用备份项进行数据恢复都需要对智能卡备份区进行读操作,这样两次读取的备份项数据就可能是不一样的,例如对备份项进行有效性验证时,某一bit位读出的值为0,而利用该备份项进行数据恢复时,该bit位读出的值又变成了1,这样进行数据恢复就很有可能会出现数据跳变的情况,即对数据区进行数据恢复后的数据与原始数据是完全不一样的。
而按照本发明提供的智能卡恢复数据方法,即使备份区中存储的备份项处于不稳定的状态,在将备份项读入内存时备份项数据可能会出现改变的情况,但是由于读入内存后的备份项数据一定是稳定的,以内存中的备份项为基准进行的备份项有效性验证及数据恢复时,两次读取的备份项数据就一定是相同的,例如对备份项中的某一bit不论读取多少次,所读出的值都是一致的,这样进行数据恢复时就不会出现数据跳变的情况,同时由于备份项有效性验证保证了进行数据恢复时只利用有效的备份项,在判断所有备份项都为无效时不进行数据恢复,因此按照本方法进行的任何数据恢复都是有效的。
事务成功完成所有的写操作之后,智能卡擦除具有较少备份项的备份区和具有较多备份项的备份区的步骤是依次进行的,以保证即使在擦除备份区的过程中出现了断电,也总能有尽可能多的备份项还没有被擦除,以用于对数据区尽可能多的数据进行恢复。但是需要指出的是,智能卡操作系统可以选择先擦除具有较少备份项的备份区,然后再擦除备份区的标志位(正如上述过程中的描述),也可以选择先擦除备份区的标志位,再擦除具有较少备份项的备份区。所述先后顺序随智能卡的具体应用场景有变化,但是不论哪一种先后顺序,按照本发明的智能卡恢复数据方法,都能够达到对数据恢复的有效性。例如在事务成功完成所有的写操作之后,智能卡选择先擦除备份区的标志位,再擦除具有较少备份项的备份区,按照本发明的智能卡恢复数据方法执行数据恢复的过程如下:
如果擦除备份区的标志位的过程中发生了断电,则按照所述智能卡恢复数据方法,智能卡上电后,首先扫描备份区的标志位,会有以下两种情况:
1)若通过判断确定该标志为无效,则不需要进行任何数据的恢复。事实上,在该断电时刻事务已经成功完成全部写操作,所以不需要数据恢复工作。
2)若通过判断确定该标志为有效(说明断电发生时该备份区的标志位还没有开始擦除),操作系统随即在闪存内查找到各备份区,将备份区A和备份区B内的所有备份项读入内存中。操作系统在内存中扫描各备份区,并确定各备份区内的有效备份项个数。事实上由于备份区A和备份区B中的备份项都是成功完成的,因此操作系统最终能够确定备份区B的有效备份项个数较多,并利用该有效备份区中的备份项进行相应数据的恢复。
如果断电不是发生在上述擦除备份区的标志位的过程中,而是发生在后面对具有较少备份项的备份区擦除的过程中,则按照所述智能卡恢复数据方法,智能卡上电后,首先扫描备份区的标志位,由于该标志目前已被擦除,被判断为无效,所以不需要进行任何数据的恢复。事实上,在该断电的时刻事务已经成功完成全部写操作,不需要作任何数据恢复。
综上,不论智能卡删除备份区的标志位和删除具有较少备份项备份区的先后顺序如何,按照本发明的智能卡恢复数据方法,都能够达到对数据恢复的有效性。
本发明还提供一种智能卡实施例,如图11所示,包括:
读入模块111,用于将所述智能卡闪存内备份区中的备份项一次读入到所述备份区外的预设存储空间中,若所述读入到预设存储空间未能完成,则在智能卡再次上电时重新读入直到完成;
恢复模块112,用于所述读入到预设存储空间完成后,在所述预设存储空间中对读出的备份项进行有效性验证,根据验证成功后的有效备份项对智能卡进行数据恢复。
优选的,智能卡闪存内有两个备份区,则所述恢复模块112在所述预设存储空间中对读出的备份项进行有效性验证,根据验证成功后的有效备份项对智能卡进行数据恢复,具体包括:对读入到所述预设存储空间的各备份区中的备份项进行有效性验证,确定所述各备份区中验证成功的有效备份项个数;根据所述预设存储空间中,有效备份项个数最多且不为零的备份区中的有效备份项进行数据恢复。
优选的,所述恢复模块112还用于在所述预设存储空间中各备份区中的有效备份项个数相同且不为零时,利用所述预设存储空间中任一备份区内的有效备份项进行数据恢复。
优选的,所述恢复模块112对读入到所述预设存储空间的各备份区中的备份项进行有效性验证,确定所述各备份区中验证成功的有效备份项个数,具体包括:按照所述各备份区中备份项的顺序,对所述预设存储空间中各备份区的备份项依次进行有效性验证;所述备份项的顺序与所述智能卡对数据区中相应数据进行写操作的顺序一致;当确定所述各备份区中出现无效备份项时,停止对该备份区的其余备份项进行有效性验证,并确定该备份区中有效备份项的个数为所述无效备份项之前的所有有效备份项个数。
优选的,智能卡闪存内备份区中的备份项包含存储校验值的校验值字段,则所述恢复模块112采用如下方式在所述预设存储空间中对读出的备份项进行有效性验证:从所述读入到预设存储空间中的备份项的校验值字段获取校验值,并对该备份项中除校验值字段外的字段进行预定运算,得到期望值;确定所述获取的校验值与所述期望值一致时,确定验证成功,否则验证不成功。
优选的,所述预设存储空间为智能卡内存。
所述智能卡中各模块的具体实现功能参见上述智能卡恢复数据方法的具体实现过程,在此不再赘述。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (9)

1.一种智能卡恢复数据方法,其特征在于,包括:
将所述智能卡闪存内两个备份区中的备份项一次读入到所述备份区外的预设存储空间中,若所述读入到预设存储空间未能完成,则在智能卡再次上电时重新读入直到完成;
所述读入到预设存储空间完成后,对读入到所述预设存储空间的各备份区中的备份项进行有效性验证,确定所述各备份区中验证成功的有效备份项个数;根据所述预设存储空间中,有效备份项个数最多且不为零的备份区中的有效备份项进行数据恢复。
2.如权利要求1所述的方法,其特征在于,还包括:
在所述预设存储空间的各备份区中的有效备份项个数相同且不为零时,利用所述预设存储空间中任一备份区内的有效备份项进行数据恢复。
3.如权利要求1或2任一所述的方法,其特征在于,对读入到所述预设存储空间的各备份区中的备份项进行有效性验证,确定所述各备份区中验证成功的有效备份项个数,具体包括:
按照所述各备份区中备份项的顺序,对所述预设存储空间中各备份区的备份项依次进行有效性验证;所述备份项的顺序与所述智能卡对数据区中相应数据进行写操作的顺序一致;
当确定所述各备份区中出现无效备份项时,停止对该备份区的其余备份项进行有效性验证,并确定该备份区中有效备份项的个数为所述无效备份项之前的所有有效备份项个数。
4.如权利要求1所述的方法,其特征在于,智能卡闪存内备份区中的备份项包含存储校验值的校验值字段,则采用如下方式在所述预设存储空间中对读出的备份项进行有效性验证:
从所述读入到预设存储空间中的备份项的校验值字段获取校验值,并对该备份项中除校验值字段外的字段进行预定运算,得到期望值;
确定所述获取的校验值与所述期望值一致时,确定验证成功,否则验证不成功。
5.一种智能卡,其特征在于,包括:
读入模块,用于将所述智能卡闪存内两个备份区中的备份项一次读入到所述备份区外的预设存储空间中,若所述读入到预设存储空间未能完成,则在智能卡再次上电时重新读入直到完成;
恢复模块,用于所述读入到预设存储空间完成后,对读入到所述预设存储空间的各备份区中的备份项进行有效性验证,确定所述各备份区中验证成功的有效备份项个数;根据所述预设存储空间中,有效备份项个数最多且不为零的备份区中的有效备份项进行数据恢复。
6.如权利要求5所述的智能卡,其特征在于,所述恢复模块还用于:
在所述预设存储空间的各备份区中的有效备份项个数相同且不为零时,利用所述预设存储空间中任一备份区内的有效备份项进行数据恢复。
7.如权利要求5或6任一所述的智能卡,其特征在于,所述恢复模块对读入到所述预设存储空间的各备份区中的备份项进行有效性验证,确定所述各备份区中验证成功的有效备份项个数,具体包括:
按照所述各备份区中备份项的顺序,对所述预设存储空间中各备份区的备份项依次进行有效性验证;所述备份项的顺序与所述智能卡对数据区中相应数据进行写操作的顺序一致;
当确定所述各备份区中出现无效备份项时,停止对该备份区的其余备份项进行有效性验证,并确定该备份区中有效备份项的个数为所述无效备份项之前的所有有效备份项个数。
8.如权利要求5所述的智能卡,其特征在于,智能卡闪存内备份区中的备份项包含存储校验值的校验值字段,则所述恢复模块采用如下方式在所述预设存储空间中对读出的备份项进行有效性验证:
从所述读入到预设存储空间中的备份项的校验值字段获取校验值,并对该备份项中除校验值字段外的字段进行预定运算,得到期望值;
确定所述获取的校验值与所述期望值一致时,确定验证成功,否则验证不成功。
9.如权利要求5所述的智能卡,其特征在于,所述预设存储空间为智能卡内存。
CN201110439718.7A 2011-12-23 2011-12-23 一种智能卡及其恢复数据方法 Expired - Fee Related CN102541690B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110439718.7A CN102541690B (zh) 2011-12-23 2011-12-23 一种智能卡及其恢复数据方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110439718.7A CN102541690B (zh) 2011-12-23 2011-12-23 一种智能卡及其恢复数据方法

Publications (2)

Publication Number Publication Date
CN102541690A CN102541690A (zh) 2012-07-04
CN102541690B true CN102541690B (zh) 2014-03-26

Family

ID=46348640

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110439718.7A Expired - Fee Related CN102541690B (zh) 2011-12-23 2011-12-23 一种智能卡及其恢复数据方法

Country Status (1)

Country Link
CN (1) CN102541690B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103530242B (zh) * 2012-07-06 2016-02-17 河南思维自动化设备股份有限公司 NandFlash存储器写操作过程掉电防护方法
CN103093151B (zh) * 2012-12-31 2015-09-30 中国电子科技集团公司第十五研究所 一种智能卡数据掉电保护电路
CN104104786B (zh) 2013-04-12 2016-09-28 中国银联股份有限公司 一种对外接载体持续供电的方法和终端设备
CN103744746B (zh) * 2013-12-30 2016-08-03 北京工业大学 一种基于索引的智能卡记录备份与恢复方法
CN104778133B (zh) * 2014-01-09 2017-09-22 苏州融卡智能科技有限公司 增加智能卡可编程只读存储器寿命的方法
CN106648982B (zh) * 2016-12-15 2019-12-20 宁波迦南智能电气股份有限公司 一种电能表掉电保护数据存贮方法
CN109254878B (zh) * 2018-09-27 2021-09-17 北京中电华大电子设计有限责任公司 一种基于字写的智能卡掉电备份方法和数据结构
GB2585641A (en) * 2019-07-08 2021-01-20 Zwipe As Robust data storage algorithm
CN111104253B (zh) * 2019-11-22 2023-06-06 江苏恒宝智能系统技术有限公司 一种掉电保护智能卡及其工作方法
CN111427726B (zh) * 2020-03-27 2023-07-25 江苏恒宝智能系统技术有限公司 Ic卡及其防掉电数据备份方法或数据恢复方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2003224385A1 (en) * 2002-06-04 2003-12-19 Koninklijke Philips Electronics N.V. Roll back method for a smart card
US8266391B2 (en) * 2007-06-19 2012-09-11 SanDisk Technologies, Inc. Method for writing data of an atomic transaction to a memory device
CN100507773C (zh) * 2007-09-30 2009-07-01 浙江中控技术股份有限公司 实现固化程序在线升级的方法和装置
US7979626B2 (en) * 2008-05-13 2011-07-12 Microsoft Corporation Flash recovery employing transaction log
CN101561950B (zh) * 2009-05-21 2011-08-17 北京握奇数据系统有限公司 智能卡的数据处理方法及装置
CN101571808B (zh) * 2009-05-26 2013-09-25 东信和平科技股份有限公司 提高电信智能卡生产效率的方法

Also Published As

Publication number Publication date
CN102541690A (zh) 2012-07-04

Similar Documents

Publication Publication Date Title
CN102541690B (zh) 一种智能卡及其恢复数据方法
CN102609334B (zh) 非易失闪存擦除异常存储块修复方法和装置
CN102135927B (zh) 一种基于nand flash的系统引导方法和装置
CN103914407B (zh) 一种sd卡掉电保护、恢复方法以及带有掉电保护的sd卡
US8448023B2 (en) Approach for data integrity in an embedded device environment
CN102890657A (zh) 一种减少eeprom的数据读写出错的方法
CN101373451B (zh) 保护双基本输出入系统程序的计算机系统及其控制方法
CN111143132B (zh) 一种bios恢复方法、装置、设备及可读存储介质
CN101634960A (zh) 一种修改bios参数及重新生成校验和的方法
CN101567217A (zh) 一种安全烧写闪存的方法及数据写入方法
CN103823769A (zh) 计算机系统及数据回复方法
CN103617101A (zh) 一种掉电保护方法及装置
CN101482837B (zh) 闪存文件系统纠错方法和装置
CN102298545A (zh) 一种系统启动引导处理方法及装置
CN113409881B (zh) 闪存擦除中断恢复测试方法、装置、电子设备及存储介质
CN104063477A (zh) 嵌入式系统启动异常的处理方法及装置
CN102521074B (zh) 一种加快raid5恢复的方法
CN110058973B (zh) 数据储存装置的测试系统与数据储存装置的测试方法
CN1936853A (zh) 嵌入式设备的数据掉电保护和修复方法
CN101901174B (zh) 基于代码段多副本对比机制提高程序可靠性方法
CN104461791A (zh) 一种信息处理方法及处理装置
CN110865906B (zh) 一种电机初始位置角度存储方法、装置、车辆及存储介质
CN109918228B (zh) 一种数据掉电保持方法及系统
CN102308287B (zh) 电子设备的复制文件系统
CN114356653A (zh) 一种工控防火墙掉电保护方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CB03 Change of inventor or designer information

Inventor after: Zhang Nan

Inventor after: Wang Youjun

Inventor before: Zhang Nan

CB03 Change of inventor or designer information
CP01 Change in the name or title of a patent holder

Address after: 100015 Beijing city Chaoyang District Dongzhimen West eight Street No. 2 room Wanhong Yan Dong Business Garden

Patentee after: BEIJING WATCHDATA Co.,Ltd.

Address before: 100015 Beijing city Chaoyang District Dongzhimen West eight Street No. 2 room Wanhong Yan Dong Business Garden

Patentee before: BEIJING WATCH DATA SYSTEM Co.,Ltd.

CP01 Change in the name or title of a patent holder
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140326

Termination date: 20211223

CF01 Termination of patent right due to non-payment of annual fee