增加智能卡可編程只讀存儲(chǔ)器壽命的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及可編程只讀存儲(chǔ)器領(lǐng)域,尤其涉及一種增加智能卡可編程只讀存儲(chǔ)器壽命的方法。
【背景技術(shù)】
[0002]當(dāng)前智能卡芯片在可編程只讀存儲(chǔ)器(EEPR0M/FLASH)模塊的擦寫壽命上,還不能完全滿足實(shí)際應(yīng)用的需要。尤其是國(guó)產(chǎn)芯片,目前絕大部分還停留在10萬(wàn)次水平。另外,智能卡操作系統(tǒng)需要對(duì)應(yīng)用數(shù)據(jù)進(jìn)行掉電保護(hù),即事務(wù)處理,而在現(xiàn)有技術(shù)中,在掉電保護(hù)過(guò)程中需要進(jìn)行置標(biāo)記位和清標(biāo)記位兩個(gè)步驟,這樣,在一次掉電保護(hù)就至少擦寫了兩次,使得可編程只讀存儲(chǔ)器(EEPR0M/FLASH)的擦寫壽命縮短,相當(dāng)于壽命最多只能達(dá)到芯片本身壽命的一半。造成這種問(wèn)題的根本性原因在于,保護(hù)標(biāo)志位需要被操作兩次。因此,如何減少對(duì)保護(hù)標(biāo)志位操作次數(shù)就成了智能卡操作系統(tǒng)方面的一個(gè)難題。
【發(fā)明內(nèi)容】
[0003]針對(duì)現(xiàn)有技術(shù)的不足,本發(fā)明的目的是提供一種能增加智能卡可編程只讀存儲(chǔ)器壽命的方法。
[0004]為實(shí)現(xiàn)上述目的,本發(fā)明采用如下技術(shù)方案:
增加智能卡可編程只讀存儲(chǔ)器壽命的方法,其特征在于,包括如下步驟:
(1)在可編程只讀存儲(chǔ)器中申請(qǐng)兩個(gè)變量Dl和D2,分別存放在不同的壽命單元中;
(2)上電開始,檢查D1、D2的數(shù)據(jù)值:
如果兩個(gè)數(shù)據(jù)值中一個(gè)是X,另一個(gè)是Y,則進(jìn)行事務(wù)恢復(fù)處理,恢復(fù)完成后,將D2的值置為Dl的當(dāng)前值,其中,X、Y為預(yù)設(shè)數(shù)據(jù)值,且X與Y不同;
如果兩個(gè)數(shù)據(jù)值都是X或Y,則直接跳過(guò)事務(wù)上電恢復(fù)步驟;
如果兩個(gè)數(shù)據(jù)值中有一個(gè)以上數(shù)據(jù)值既不是X也不是Y,則將Dl、D2同時(shí)設(shè)置為X或者Y,然后跳過(guò)事務(wù)上電恢復(fù)步驟;
(3)調(diào)用事務(wù)處理:
第一步,先將要擦寫的目標(biāo)地址的原始數(shù)據(jù)備份到事務(wù)備份區(qū);
第二步,然后讀取Dl的值,如果Dl的值為Y,則設(shè)置Dl的值為X ;如果Dl的值為X,則設(shè)置Dl的值為Y;如果Dl的值既不是Y也不是X,則重新上電初始化;
第三步,接著將新的數(shù)據(jù)寫到目標(biāo)地址中;
第四步,最后設(shè)置D2的值為Dl當(dāng)前值,結(jié)束事務(wù)處理。
[0005]作為上述方案的進(jìn)一步優(yōu)化,所述智能卡為JAVA卡。
[0006]作為上述方案的進(jìn)一步優(yōu)化,所述壽命單元為頁(yè)。
[0007]作為上述方案的進(jìn)一步優(yōu)化,所述X為AA,Y為55。
[0008]本發(fā)明的有益效果主要表現(xiàn)為:采用本發(fā)明的技術(shù)方案,在一次掉電保護(hù)中,對(duì)兩個(gè)標(biāo)志位各擦寫一次,即可正確反映出保護(hù)過(guò)程是否完成,從而將可編程只讀儲(chǔ)存器的擦寫壽命提升一倍。
【附圖說(shuō)明】
[0009]圖1是本發(fā)明一典型實(shí)施例中的事務(wù)處理流程示意圖。
[0010]圖2是本發(fā)明一典型實(shí)施例中的事務(wù)上電恢復(fù)處理流程示意圖。
【具體實(shí)施方式】
[0011]以下結(jié)合附圖及一實(shí)施例對(duì)本發(fā)明的技術(shù)方案作更為具體的說(shuō)明。
[0012]如圖1和2所示,增加智能卡可編程只讀存儲(chǔ)器壽命的方法,包括如下步驟:
(1)在可編程只讀存儲(chǔ)器中申請(qǐng)兩個(gè)變量Dl和D2,分別存放在不同的壽命單元中;
(2)上電開始,檢查D1、D2的數(shù)據(jù)值:
如果兩個(gè)數(shù)據(jù)值中一個(gè)是AA,另一個(gè)是55,則進(jìn)行事務(wù)恢復(fù)處理,恢復(fù)完成后,將D2的值置為Dl的當(dāng)前值,其中AA、55是預(yù)設(shè)的值,且AA不等于55 ;
如果兩個(gè)數(shù)據(jù)值都是AA或55,則直接跳過(guò)事務(wù)上電恢復(fù)步驟;
如果兩個(gè)數(shù)據(jù)值中有一個(gè)以上數(shù)據(jù)值,既不是AA也不是55,則將D1、D2同時(shí)設(shè)置為AA或者55,然后跳過(guò)事務(wù)上電恢復(fù)步驟;
(3)調(diào)用事務(wù)處理:
第一步,先將要擦寫的目標(biāo)地址的原始數(shù)據(jù)備份到事務(wù)備份區(qū);
第二步,然后讀取Dl的值,如果Dl的值為55,則設(shè)置Dl的值為AA ;如果Dl的值為AA,則設(shè)置Dl的值為55 ;如果Dl的值既不是55也不是AA,則重新上電初始化;
第三步,接著將新的數(shù)據(jù)寫到目標(biāo)地址中;
第四步,最后設(shè)置D2的值為Dl當(dāng)前值,結(jié)束事務(wù)處理。
[0013]所述智能卡為JAVA卡,所述壽命單元為頁(yè)。
[0014]本實(shí)施例其中的核心原理是:在上電時(shí),比較兩個(gè)變量Dl、D2的值,如果相同,則表明事務(wù)保護(hù)結(jié)束,不需要恢復(fù)數(shù)據(jù);如果兩個(gè)地址的值不相同,則表明數(shù)據(jù)保護(hù)未完成,需要恢復(fù)數(shù)據(jù);如果Dl的值不是AA也不是55,則表明保護(hù)還未開始,不需要恢復(fù)數(shù)據(jù);如果D2的值不是AA也不是55,則表明保護(hù)已經(jīng)結(jié)束,也不需要恢復(fù)數(shù)據(jù)。
[0015]事務(wù)機(jī)制在掉電保護(hù)中,需要有一個(gè)掉電保護(hù)標(biāo)記,來(lái)表明保護(hù)過(guò)程是否完成,現(xiàn)有技術(shù)都是在掉電保護(hù)開始時(shí)設(shè)置保護(hù)標(biāo)記位,保護(hù)結(jié)束或者回滾完成后,清除標(biāo)記。本發(fā)明人創(chuàng)造出的一種新方法,減少了對(duì)保護(hù)標(biāo)記位的擦寫次數(shù),從而降低對(duì)同一塊可編程只讀存儲(chǔ)器(EEPR0M/FLASH)的擦寫次數(shù),進(jìn)而使得可編程只讀存儲(chǔ)器(EEPR0M/FLASH)的擦與壽命得到最大提升。
[0016]除上述實(shí)施例外,本發(fā)明還可以有其他實(shí)施方式。凡采用等同替換或等效變換形成的技術(shù)方案,均落在本發(fā)明要求的保護(hù)范圍。
【主權(quán)項(xiàng)】
1.增加智能卡可編程只讀存儲(chǔ)器壽命的方法,其特征在于,包括如下步驟: (1)在可編程只讀存儲(chǔ)器中申請(qǐng)兩個(gè)變量Dl和D2,分別存放在不同的壽命單元中; (2)上電開始,檢查D1、D2的數(shù)據(jù)值: 如果兩個(gè)數(shù)據(jù)值中一個(gè)是X,另一個(gè)是Y,則進(jìn)行事務(wù)恢復(fù)處理,恢復(fù)完成后,將D2的值置為Dl的當(dāng)前值,其中,X、Y為預(yù)設(shè)數(shù)據(jù)值,且X與Y不同; 如果兩個(gè)數(shù)據(jù)值都是X或Y,則直接跳過(guò)事務(wù)上電恢復(fù)步驟; 如果兩個(gè)數(shù)據(jù)值中有一個(gè)以上數(shù)據(jù)值既不是X也不是Y,則將Dl、D2同時(shí)設(shè)置為X或者Y,然后跳過(guò)事務(wù)上電恢復(fù)步驟; (3)調(diào)用事務(wù)處理: 第一步,先將要擦寫的目標(biāo)地址的原始數(shù)據(jù)備份到事務(wù)備份區(qū); 第二步,然后讀取Dl的值,如果Dl的值為Y,則設(shè)置Dl的值為X ;如果Dl的值為X,則設(shè)置Dl的值為Y;如果Dl的值既不是Y也不是X,則重新上電初始化; 第三步,接著將新的數(shù)據(jù)寫到目標(biāo)地址中; 第四步,最后設(shè)置D2的值為Dl當(dāng)前值,結(jié)束事務(wù)處理。
2.根據(jù)權(quán)利要求1所述的增加智能卡可編程只讀存儲(chǔ)器壽命的方法,其特征在于,所述智能卡為JAVA卡。
3.根據(jù)權(quán)利要求1所述的增加智能卡可編程只讀存儲(chǔ)器壽命的方法,其特征在于,所述壽命單元為頁(yè)。
4.根據(jù)權(quán)利要求1所述的增加智能卡可編程只讀存儲(chǔ)器壽命的方法,其特征在于,所述X為AA,Y為55。
【專利摘要】本發(fā)明公開了一種增加智能卡可編程只讀存儲(chǔ)器壽命的方法,包括步驟:(1)在可編程只讀存儲(chǔ)器中申請(qǐng)兩個(gè)變量D1和D2,分別存放在不同的壽命單元中;(2)上電開始,檢查D1、D2的數(shù)據(jù)值;(3)調(diào)用事務(wù)處理。其能將可編程只讀儲(chǔ)存器的擦寫壽命提升一倍。
【IPC分類】G06F12-16
【公開號(hào)】CN104778133
【申請(qǐng)?zhí)枴緾N201410008735
【發(fā)明人】徐明祥, 郭臘順, 王濤
【申請(qǐng)人】蘇州融卡智能科技有限公司
【公開日】2015年7月15日
【申請(qǐng)日】2014年1月9日