专利名称:智能ic卡数据防掉电保护方法
技术领域:
本发明涉及智能IC (集成电路)卡应用领域,特别是涉及一种在智能IC卡应用中防止因突然掉电而造成卡内数据丢失的方法。
背景技术:
智能IC卡的应用领域非常广泛。在应用中经常要进行数据的修改,如果在数据修改过程中掉电,例如突然断电或是误插拔了卡片,那么,假设原有数据已被擦除,而要写入的数据还没有开始写或是未完全写入,这种情况下会造成数据的丢失;如果是重要数据的话会导致智能IC卡无法完成正常的应用功能,造成废卡。为了防止出现上述的情况,智能 IC卡内数据进行修改时必须对数据进行备份还原操作。备份一般是备份到非易失性存储区域中,如EEPR0M,保证断电后数据不丢失。但EEPROM的特性是擦写速度相对较慢且有有限次使用寿命,由于备份操作是经常性发生,如果备份区的EEPROM达到了其使用寿命会造成智能IC卡功能的不稳定。
发明内容
本发明要解决的技术问题是提供了一种智能IC卡数据防掉电保护方法,可以有效的缩短发卡时间,同时提高智能IC卡的使用寿命。为解决上述技术问题,本发明的智能IC卡数据防掉电保护方法,包括如下步骤步骤一、在智能IC卡的RAM和EEPROM中各开辟一个区域,作为备份区域,并且设计一种备份区的数据结构,用于进行数据备份;步骤二、将要写入的数据写入RAM备份区,计算数据的校验值,设置RAM备份区的备份还原标记为还原状态,一并写入RAM备份区;步骤三、将存储在RAM备份区中的全部数据,写入EEPROM备份区,写入时要按照从后向前的顺序,以保证包括备份还原标记在内的状态标记是最后写入的;步骤四、将EEPROM目标区的数据擦除,将EEPROM备份区中的数据写入EEPROM目标区中,修改EEPROM备份区的备份还原状态标记为备份状态。采用本发明的方法,在智能IC卡上电过程中,会先读取EEPROM备份区中备份还原标记的状态;如果是还原状态,表示上一次备份还原过程没有正常结束,在还原过程中出现了断电等异常现象,导致数据没有被正常写入EEPROM目标区;为了确保备份区数据的正确性和完整性,程序会继续判断是否满足还原条件,具体就是判断校验值和实际计算的校验值是否一致,如果一致说明处于正确的还原状态,接下来会进行数据还原,即将EEPROM备份区的有效数据写入到相应的EEPROM目标区中,写完后修改备份还原标记为备份状态。本发明利用RAM的快速访问特性,将数据在RAM中组织好后一次性写入EEPROM备份区,有效的缩短了备份还原过程的时间,在智能IC卡实际应用中缩短了发卡时间,提高了工作效率;同时EEPROM的擦写次数也被有效的减少,延长了智能IC卡的使用寿命。
下面结合附图与具体实施方式
对本发明作进一步详细的说明图I是备份区数据结构示意图;图2是本发明的方法一实施例控制流程示意图。
具体实施例方式在实施本发明时,需要在智能IC卡的RAM和EEPROM中各开辟一块空间作为备份区,空间开辟具体要多大需根据实际应用来确定。设计一种备份区的数据结构,如图I所示,备份区的数据结构包括两部份头数据区和数据区。头数据区包括两个字节的备份还原标记,一个字节的备份还原记录数,两个字节的数据区的校验值,两个字节的头数据区的校验值。数据区是以记录格式来进行数据存储,每条记录包括两个字节的数据还原地址, 一个字节的数据长度以及按照数据长度来确定的具体数据。结合图2所示,在一实施例中,所述智能IC卡数据防掉电保护方法具体包括如下步骤步骤一、设计智能IC卡内程序时,在RAM和EEPROM中各开辟一块数据备份区,备份区的大小要根据实际应用来确定;如某条指令需要擦写0x80个数据,那么备份区的数据区长度不能小于0x80,此外还要考虑数据地址和数据长度等附加信息的长度,在本实施例中设置了 0x180长的备份区。步骤二、在进行数据修改操作时,先将要写入的数据按照数据结构格式写入RAM 备份区,即将要修改的数据的地址,要修改的数据的长度及具体数据写入RAM备份区的数据区。步骤三、计算数据区的校验值和头数据区的校验值,写入RAM备份区的头数据区, 设置备份还原标记为还原状态并写入RAM备份区的头数据区。步骤四、将组织好的RAM中的数据按照页写方式写入EEPROM备份区,要按照由后向前的顺序写入,保证头数据区最后写入,即保证备份还原标记等状态标记是最后写入的。步骤五、将EEPROM目标区的数据擦除,将EEPROM备份区中数据区的数据按照地址、长度的规定写入EEPROM目标区。如地址两个字节为0x12,0x40,即表示记录中的数据要写入地址为0x1240的EEPROM目标区,如长度为0x20,表示这条记录数据共0x20个字节,那么写入EEPROM目标区的数据共有0x20个字节。步骤六、当头数据区中标记的备份还原记录数全部被写入EEPROM目标区后,最后将EEPROM备份区中的备份还原标记修改为备份状态。智能IC卡上电过程中会先判断RAM备份区和EEPROM备份区的备份还原标记。如果是备份状态,表示上一次备份还原过程完成,没有数据需要还原,上一次数据擦写过程正常结束,没有异常发生。如果是还原状态,表示上一次备份还原过程没有完成,有数据需要进行还原,即上一次数据擦写过程有异常发生;此时需要进一步判断两个校验值和实际计算的校验值是否一致,如果一致,说明可以进行数据还原,将EEPROM备份区的数据写入到EEPROM目标区,最后修改备份还原标记为备份状态;如果不一致,说明还原的数据有错误,不能进行后续还原操作。为了延长IC卡的使用寿命,本发明提出了先将数据备份到RAM备份区中,将所有数据组织好后一次性写入EEPROM备份区。这样一方面提高了备份的速度;另一方面有效的减少了擦写EEPROM的次数。提高备份速度在智能IC卡发卡过程中尤为重要。智能IC卡的发卡时间被视为其关键性能之一,发卡时间越短,单位时间内发出的卡片就越多,生产效率越高。本发明利用 RAM的快速特性,减少EEPROM的擦写次数,可以极有效的缩短发卡时间;EEPR0M的擦写次数减少,其使用寿命也就相应的延长了,卡片不会因EEPROM的失效而失效,智能IC卡的寿命也被延长了。以上通过结合具体实施方式
和实施例对本发明作了详细的说明,这些并非构成对本发明的限制,在不脱离本发明原理的情况下,本领域技术人员还可做出若干变形和改进, 这些也应视为属于本发明的保护范围。
权利要求
1.一种智能IC卡数据防掉电保护方法,其特征在于,包括如下步骤步骤一、在RAM和EEPROM中各开辟一块空间,作为备份区,并且设计一种备份区的数据结构,用于进行数据备份;步骤二、将要写入的数据写入RAM备份区,计算数据的校验值,设置RAM备份区的备份还原标记为还原状态,一并写入RAM备份区;步骤三、将存储在RAM备份区中的全部数据,写入EEPROM备份区,写入时要按照从后向前的顺序,以保证包括备份还原标记在内的状态标记是最后写入的;步骤四、将EEPROM目标区的数据擦除,将EEPROM备份区中的数据写入EEPROM目标区, 最后修改EEPROM备份区的备份还原状态标记为备份状态。
2.如权利要求I所述的方法,其特征在于所述智能IC卡在上电过程中,首先检查备份还原标记;如果是备份状态,表示上一次备份还原过程完成,不需要进行还原;如果是还原状态,表示上一次备份还原过程没有完成,有数据需要进行还原;此时需要进一步判断所述校验值和实际计算的校验值是否一致,如果一致,说明可以进行数据还原,将EEPROM备份区的数据写入到EEPROM目标区,最后修改备份还原标记为备份状态;如果不一致,说明还原的数据有错误,不能进行后续还原操作。
3.如权利要求I或2所述的方法,其特征在于所述校验值包括备份区的数据区的校验值和备份区的头数据区的校验值。
4.如权利要求I所述的方法,其特征在于步骤一中所述的数据结构包括头数据区和数据区;其中,头数据区包括备份还原标记,备份还原记录数,数据区的校验值和头数据区的校验值;数据区包括数据还原地址,数据长度和具体数据。
5.如权利要求4所述的方法,其特征在于执行步骤三时,采用页写方式,按照从后向前写的顺序写入EEPROM备份区,即先写数据区后写头数据区。
全文摘要
本发明公开了一种智能IC卡数据防掉电保护方法。IC卡在应用中会经常进行卡内数据的修改操作,此过程中如果在擦完数据后掉电,待写入的数据没有被正常写入,而原有数据已被擦除,会造成重要数据的丢失。本发明在进行卡内数据的修改时,先将要写入的信息备份到RAM,再计算备份校验信息,并设置备份还原标记为还原状态,将以上信息一并写入RAM,在RAM中将所有数据组织好后写入EEPROM备份区,然后进行数据还原,将有效数据写入目标数据区,完成后修改备份区的备份还原标记为备份状态。本发明利用RAM的快速访问特性,缩短了数据备份时间;在RAM中将数据组织好一次性写入EEPROM备份区,有效的减少了写EEPROM的次数,延长了IC卡的使用寿命。
文档编号G06F11/14GK102609332SQ20111002140
公开日2012年7月25日 申请日期2011年1月19日 优先权日2011年1月19日
发明者施燕 申请人:上海华虹集成电路有限责任公司