增加智能卡可编程只读存储器寿命的方法

文档序号:8457232阅读:228来源:国知局
增加智能卡可编程只读存储器寿命的方法
【技术领域】
[0001]本发明涉及可编程只读存储器领域,尤其涉及一种增加智能卡可编程只读存储器寿命的方法。
【背景技术】
[0002]当前智能卡芯片在可编程只读存储器(EEPR0M/FLASH)模块的擦写寿命上,还不能完全满足实际应用的需要。尤其是国产芯片,目前绝大部分还停留在10万次水平。另外,智能卡操作系统需要对应用数据进行掉电保护,即事务处理,而在现有技术中,在掉电保护过程中需要进行置标记位和清标记位两个步骤,这样,在一次掉电保护就至少擦写了两次,使得可编程只读存储器(EEPR0M/FLASH)的擦写寿命缩短,相当于寿命最多只能达到芯片本身寿命的一半。造成这种问题的根本性原因在于,保护标志位需要被操作两次。因此,如何减少对保护标志位操作次数就成了智能卡操作系统方面的一个难题。

【发明内容】

[0003]针对现有技术的不足,本发明的目的是提供一种能增加智能卡可编程只读存储器寿命的方法。
[0004]为实现上述目的,本发明采用如下技术方案:
增加智能卡可编程只读存储器寿命的方法,其特征在于,包括如下步骤:
(1)在可编程只读存储器中申请两个变量Dl和D2,分别存放在不同的寿命单元中;
(2)上电开始,检查D1、D2的数据值:
如果两个数据值中一个是X,另一个是Y,则进行事务恢复处理,恢复完成后,将D2的值置为Dl的当前值,其中,X、Y为预设数据值,且X与Y不同;
如果两个数据值都是X或Y,则直接跳过事务上电恢复步骤;
如果两个数据值中有一个以上数据值既不是X也不是Y,则将Dl、D2同时设置为X或者Y,然后跳过事务上电恢复步骤;
(3)调用事务处理:
第一步,先将要擦写的目标地址的原始数据备份到事务备份区;
第二步,然后读取Dl的值,如果Dl的值为Y,则设置Dl的值为X ;如果Dl的值为X,则设置Dl的值为Y;如果Dl的值既不是Y也不是X,则重新上电初始化;
第三步,接着将新的数据写到目标地址中;
第四步,最后设置D2的值为Dl当前值,结束事务处理。
[0005]作为上述方案的进一步优化,所述智能卡为JAVA卡。
[0006]作为上述方案的进一步优化,所述寿命单元为页。
[0007]作为上述方案的进一步优化,所述X为AA,Y为55。
[0008]本发明的有益效果主要表现为:采用本发明的技术方案,在一次掉电保护中,对两个标志位各擦写一次,即可正确反映出保护过程是否完成,从而将可编程只读储存器的擦写寿命提升一倍。
【附图说明】
[0009]图1是本发明一典型实施例中的事务处理流程示意图。
[0010]图2是本发明一典型实施例中的事务上电恢复处理流程示意图。
【具体实施方式】
[0011]以下结合附图及一实施例对本发明的技术方案作更为具体的说明。
[0012]如图1和2所示,增加智能卡可编程只读存储器寿命的方法,包括如下步骤:
(1)在可编程只读存储器中申请两个变量Dl和D2,分别存放在不同的寿命单元中;
(2)上电开始,检查D1、D2的数据值:
如果两个数据值中一个是AA,另一个是55,则进行事务恢复处理,恢复完成后,将D2的值置为Dl的当前值,其中AA、55是预设的值,且AA不等于55 ;
如果两个数据值都是AA或55,则直接跳过事务上电恢复步骤;
如果两个数据值中有一个以上数据值,既不是AA也不是55,则将D1、D2同时设置为AA或者55,然后跳过事务上电恢复步骤;
(3)调用事务处理:
第一步,先将要擦写的目标地址的原始数据备份到事务备份区;
第二步,然后读取Dl的值,如果Dl的值为55,则设置Dl的值为AA ;如果Dl的值为AA,则设置Dl的值为55 ;如果Dl的值既不是55也不是AA,则重新上电初始化;
第三步,接着将新的数据写到目标地址中;
第四步,最后设置D2的值为Dl当前值,结束事务处理。
[0013]所述智能卡为JAVA卡,所述寿命单元为页。
[0014]本实施例其中的核心原理是:在上电时,比较两个变量Dl、D2的值,如果相同,则表明事务保护结束,不需要恢复数据;如果两个地址的值不相同,则表明数据保护未完成,需要恢复数据;如果Dl的值不是AA也不是55,则表明保护还未开始,不需要恢复数据;如果D2的值不是AA也不是55,则表明保护已经结束,也不需要恢复数据。
[0015]事务机制在掉电保护中,需要有一个掉电保护标记,来表明保护过程是否完成,现有技术都是在掉电保护开始时设置保护标记位,保护结束或者回滚完成后,清除标记。本发明人创造出的一种新方法,减少了对保护标记位的擦写次数,从而降低对同一块可编程只读存储器(EEPR0M/FLASH)的擦写次数,进而使得可编程只读存储器(EEPR0M/FLASH)的擦与寿命得到最大提升。
[0016]除上述实施例外,本发明还可以有其他实施方式。凡采用等同替换或等效变换形成的技术方案,均落在本发明要求的保护范围。
【主权项】
1.增加智能卡可编程只读存储器寿命的方法,其特征在于,包括如下步骤: (1)在可编程只读存储器中申请两个变量Dl和D2,分别存放在不同的寿命单元中; (2)上电开始,检查D1、D2的数据值: 如果两个数据值中一个是X,另一个是Y,则进行事务恢复处理,恢复完成后,将D2的值置为Dl的当前值,其中,X、Y为预设数据值,且X与Y不同; 如果两个数据值都是X或Y,则直接跳过事务上电恢复步骤; 如果两个数据值中有一个以上数据值既不是X也不是Y,则将Dl、D2同时设置为X或者Y,然后跳过事务上电恢复步骤; (3)调用事务处理: 第一步,先将要擦写的目标地址的原始数据备份到事务备份区; 第二步,然后读取Dl的值,如果Dl的值为Y,则设置Dl的值为X ;如果Dl的值为X,则设置Dl的值为Y;如果Dl的值既不是Y也不是X,则重新上电初始化; 第三步,接着将新的数据写到目标地址中; 第四步,最后设置D2的值为Dl当前值,结束事务处理。
2.根据权利要求1所述的增加智能卡可编程只读存储器寿命的方法,其特征在于,所述智能卡为JAVA卡。
3.根据权利要求1所述的增加智能卡可编程只读存储器寿命的方法,其特征在于,所述寿命单元为页。
4.根据权利要求1所述的增加智能卡可编程只读存储器寿命的方法,其特征在于,所述X为AA,Y为55。
【专利摘要】本发明公开了一种增加智能卡可编程只读存储器寿命的方法,包括步骤:(1)在可编程只读存储器中申请两个变量D1和D2,分别存放在不同的寿命单元中;(2)上电开始,检查D1、D2的数据值;(3)调用事务处理。其能将可编程只读储存器的擦写寿命提升一倍。
【IPC分类】G06F12-16
【公开号】CN104778133
【申请号】CN201410008735
【发明人】徐明祥, 郭腊顺, 王涛
【申请人】苏州融卡智能科技有限公司
【公开日】2015年7月15日
【申请日】2014年1月9日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1