專(zhuān)利名稱(chēng):一種在交易時(shí)修改存儲(chǔ)卡上數(shù)據(jù)的方法
技術(shù)領(lǐng)域:
在本發(fā)明涉及的系統(tǒng)中,部分存儲(chǔ)在卡上的數(shù)據(jù)記錄,在使用讀卡器進(jìn)行交易時(shí)被修改,更具體說(shuō),是涉及一種處理過(guò)程,用于在使用讀卡器交易時(shí),修改存儲(chǔ)卡的數(shù)據(jù)。
背景技術(shù):
存儲(chǔ)卡,也稱(chēng)為智能卡的使用,日益增加,作為對(duì)與持卡人有關(guān)的數(shù)據(jù)的支持。在這些卡中,研發(fā)了無(wú)接觸卡,作為接入控制存取區(qū)的裝置、個(gè)人標(biāo)識(shí)甚至電子錢(qián)包裝置,這種無(wú)接觸卡,通過(guò)放在卡中的天線(xiàn)與相關(guān)讀卡器之間的遠(yuǎn)程電磁耦合,交換信息。
智能卡中含有數(shù)據(jù)的存儲(chǔ)器,一般是非易失的、可擦除的、和可重寫(xiě)的存儲(chǔ)器,最好是EEPROM類(lèi)型。該類(lèi)型存儲(chǔ)器被分為多個(gè)存儲(chǔ)單元,內(nèi)含的數(shù)據(jù)記錄有確定長(zhǎng)度,例如32字節(jié)。
在交易時(shí),卡的存儲(chǔ)器中包含的若干記錄,一般必須修改,以便適應(yīng)交易結(jié)果產(chǎn)生的新的條件。遺憾的是,存儲(chǔ)器,特別如果它是EEPROM類(lèi)型的存儲(chǔ)器,要求相對(duì)長(zhǎng)的擦除/寫(xiě)入時(shí)間(例如5ms),而在這段時(shí)間內(nèi),可能出現(xiàn)電源故障,導(dǎo)致包含在記錄中的數(shù)據(jù)的丟失。
此外,在各種交易操作中,若干數(shù)據(jù)記錄按通/斷模式操作被修改。為了交易安全的原因,如果在操作時(shí)發(fā)生電源斷電,那么所有交易必須重復(fù),如果不能從頭重復(fù)交易,那么要冒永久丟失敏感數(shù)據(jù)(例如,電子錢(qián)包的貸方余額)的風(fēng)險(xiǎn)。
為了回答以上所述問(wèn)題,已經(jīng)嘗試在修改數(shù)據(jù)記錄之前,把該數(shù)據(jù)記錄存儲(chǔ)在緩存中。當(dāng)完成所有改變時(shí),才從緩存存儲(chǔ)器中擦除舊的記錄。
遺憾的是,這種方法要求對(duì)每一記錄進(jìn)行4種操作,即保存在緩存區(qū)中、擦除要修改的記錄、重寫(xiě)、最后擦除緩存區(qū)中舊的記錄。當(dāng)交易包括許多操作時(shí),例如常常需要8種操作,交易需要長(zhǎng)的時(shí)間,且可能是把卡遞交給讀卡器的持卡人不相容的時(shí)間。此外,這種方法的主要缺點(diǎn)是,數(shù)據(jù)區(qū)的記錄常常位于同一存儲(chǔ)單元,而緩存區(qū)位于存儲(chǔ)器固定的地方;這樣將增加對(duì)存儲(chǔ)器的“壓力”,并限制可以完成的交易數(shù),因?yàn)椴僮鲾?shù)被限制在給定的硅片制造商保證的值內(nèi)。
發(fā)明內(nèi)容
另一個(gè)使上述問(wèn)題變得更為困難的問(wèn)題,涉及用于存放修改記錄的自由扇區(qū)的選定。傳統(tǒng)的方法包括掃描存儲(chǔ)器,以便查找自由扇區(qū)。這一查找操作需要的時(shí)間加到已經(jīng)指出的記錄和擦除所必需的操作時(shí)間上。但是,當(dāng)有若干記錄需要修改,從而需要若干次查找自由扇區(qū)時(shí),這一時(shí)間變得非常重要和不能與交易時(shí)間兼容。
這就是為什么本發(fā)明的目的在于創(chuàng)立一種處理過(guò)程,用于在交易時(shí)修改存儲(chǔ)卡數(shù)據(jù),本處理過(guò)程能在短的、與交易時(shí)限制卡的存取時(shí)間兼容的時(shí)間周期上,使交易時(shí)進(jìn)行的修改與該通/斷模式同步,同時(shí)避免把存儲(chǔ)器的一部分用作保存數(shù)據(jù)的緩存存儲(chǔ)器,因而避免常常把數(shù)據(jù)寫(xiě)入同一存儲(chǔ)器區(qū),形成對(duì)存儲(chǔ)器的“壓力”。
因此,本發(fā)明涉及一種處理過(guò)程,用在以卡為基礎(chǔ)的交易系統(tǒng)中修改數(shù)據(jù),該種系統(tǒng)的特征是,有存儲(chǔ)卡和讀卡器,當(dāng)把卡放在相對(duì)于讀卡器確定的位置上時(shí),能讀出該卡??òǖ谝淮鎯?chǔ)器(RAM)和第二非易失、可擦除、并可重寫(xiě)的存儲(chǔ)器(EEPROM),后者有存儲(chǔ)單元,內(nèi)含通過(guò)該卡進(jìn)行交易的數(shù)據(jù)記錄,每次交易導(dǎo)致至少一個(gè)數(shù)據(jù)存儲(chǔ)單元的修改和添加新的記錄。
按照本發(fā)明的方法,包括如下步驟a)為要修改的數(shù)據(jù)記錄或要添加的記錄,在以前的校驗(yàn)寄存器中,讀出第二存儲(chǔ)器的一個(gè)自由存儲(chǔ)單元的地址,該以前的校驗(yàn)寄存器位于第二存儲(chǔ)器第一個(gè)確定的存儲(chǔ)單元內(nèi),
b)把新修改的或添加的記錄,寫(xiě)入該自由存儲(chǔ)單元,c)對(duì)每一要修改或要添加的新記錄,重復(fù)步驟a)和b),d)把新的校驗(yàn)寄存器,寫(xiě)入第二存儲(chǔ)器的第二個(gè)確定的存儲(chǔ)單元,該新的校驗(yàn)寄存器包含下一次交易要使用的第二存儲(chǔ)器自由存儲(chǔ)單元的地址。
根據(jù)以下結(jié)合唯一的附圖的說(shuō)明,本發(fā)明的目的、目標(biāo)、和優(yōu)點(diǎn)將變得更為明顯,該圖表示按照本發(fā)明的處理過(guò)程的流程圖。
具體實(shí)施例方式
在下面的說(shuō)明中,假定用于交易的智能卡以EEPROM存儲(chǔ)器為特征,該EEPROM存儲(chǔ)器例如分為32字節(jié)的全同的扇區(qū)。本發(fā)明的一個(gè)基本特征,是使用一校驗(yàn)寄存器,它占據(jù)存儲(chǔ)器的一個(gè)扇區(qū)。該校驗(yàn)寄存器包括指定用于交易的數(shù)據(jù),在這些數(shù)據(jù)中,存儲(chǔ)器自由扇區(qū)的標(biāo)識(shí)可以用于記錄新的數(shù)據(jù)。校驗(yàn)寄存器具體包括如下字段-FlagOpen(標(biāo)志開(kāi)始)指示交易是否開(kāi)始,-OldSect(舊扇區(qū))指示修改前的扇區(qū)數(shù),-PrevReg(以前的寄存器)指示以前的校驗(yàn)寄存器所在的扇區(qū)號(hào)碼,-NextReg(下一寄存器)指示以前的校驗(yàn)寄存器所在的扇區(qū)號(hào)碼,-FlagClose(標(biāo)志結(jié)束)指示交易是否結(jié)束,-NewSect(新扇區(qū))指示用于新的修改的自由扇區(qū)數(shù),假定正在進(jìn)行交易,根據(jù)該單一的圖所示的流程圖,發(fā)生按照本發(fā)明的處理過(guò)程。最初,有一初始化步驟(步驟10),它包含把卡的RAM存儲(chǔ)器中4個(gè)變量初始化-校驗(yàn)寄存器地址校驗(yàn)寄存器存放在其中的扇區(qū)的號(hào)碼,-NbUpdates(號(hào)碼更新)在每一記錄修改或添加新記錄之后遞增的變量,-TransactionLevel(交易電平)指示交易正在進(jìn)行的比特,-OldSector(舊扇區(qū))指示在整個(gè)交易中,用于記錄數(shù)據(jù)的扇區(qū)數(shù)。
第二步是交易開(kāi)始步驟(步驟12),在該步驟中,RAM存儲(chǔ)器的TransactionLevel比特從0變到1,且校驗(yàn)寄存器的FlagOpen字段,從原來(lái)的0置值為十六進(jìn)制值A(chǔ)5。
在下一步中,確定是否有記錄需要修改或添加到存儲(chǔ)器的存儲(chǔ)單元中(步驟14)。如果有,把舊扇區(qū)號(hào)碼寫(xiě)入RAM存儲(chǔ)器(步驟16),新記錄必須寫(xiě)入的扇區(qū)的地址,從校驗(yàn)寄存器讀出(步驟17),把新記錄寫(xiě)入從校驗(yàn)寄存器讀出的號(hào)碼標(biāo)識(shí)的扇區(qū)中(步驟18),最后執(zhí)行RAM存儲(chǔ)器中校驗(yàn)數(shù)據(jù)的修改(步驟20)。處理過(guò)程回到確定是否有另一個(gè)記錄需要修改或添加的步驟(步驟14)。
應(yīng)當(dāng)指出,本發(fā)明的優(yōu)點(diǎn),主要存在于如下事實(shí),即交易幾乎常常需要修改若干記錄,記錄的修改可以利用校驗(yàn)寄存器而不浪費(fèi)時(shí)間,因?yàn)樵谠撔r?yàn)寄存器中指出了自由扇區(qū),不必查找它們。
應(yīng)當(dāng)指出,在添加記錄而不是修改記錄的情形,在RAM中的扇區(qū)號(hào)碼不需存儲(chǔ),因?yàn)樵撋葏^(qū)不存在,但代之以存儲(chǔ)一虛號(hào)碼0。
當(dāng)沒(méi)有更多的記錄需要寫(xiě)入存儲(chǔ)器中時(shí),把包含新數(shù)據(jù)的新的校驗(yàn)寄存器寫(xiě)入自由扇區(qū),該扇區(qū)的號(hào)碼由舊校驗(yàn)寄存器提供(步驟18),舊校驗(yàn)寄存器被擦除(步驟20),包含要修改的記錄的舊扇區(qū)被擦除(步驟22),以及RAM的校驗(yàn)變量復(fù)位為0(步驟24)。
為了說(shuō)明本發(fā)明的處理過(guò)程,可以考慮下面的例子,在該例子中,EEPROM存儲(chǔ)器在交易前,取如下形式位于扇區(qū)5的校驗(yàn)寄存器包括如下數(shù)據(jù)-FlagOpen00-OldSect0,0,0,0,0,0,0,0,0-PrevReg0-NextReg6-FlagCloseA5-NewSect7,8,9,10,11,12,13,14假定交易包括4個(gè)相繼的變化-修改記錄2-修改記錄3-添加記錄5-第二次修改記錄2在初始化步驟之后,處理過(guò)程的步驟如下-交易開(kāi)始把在十六進(jìn)制A5處的FlagOpen字段,寫(xiě)入當(dāng)前的寄存器,并對(duì)變量初始化
NbUpdates=0
TransactionLevel=1
OldSect[8]={0,0,0,0,0,0,0,0,0}-修改記錄#2把舊扇區(qū)#2存儲(chǔ)進(jìn)RAM中,在扇區(qū)#7寫(xiě)入新記錄,RAM的變量為 NbUpdates=1 TransactionLevel=1 OldSect[8]={2,0,0,0,0,0,0,0,0}-修改記錄#3把舊扇區(qū)#3存儲(chǔ)進(jìn)RAM中,在扇區(qū)#8寫(xiě)入新記錄。RAM的變量為 NbUpdates=2 TransactionLevel=1 OldSect[8]={2,3,0,0,0,0,0,0,0}-添加記錄#5把舊扇區(qū)#0存儲(chǔ)進(jìn)RAM中(0意味舊的不存在的扇區(qū)),在扇區(qū)#9寫(xiě)入新記錄。RAM的變量為 NbUpdates=3 TransactionLevel=1 OldSect[8]={2,3,0,0,0,0,0,0,0}-修改記錄#2把舊扇區(qū)#7存儲(chǔ)進(jìn)RAM中,在扇區(qū)#10寫(xiě)入新記錄。RAM的變量為 NbUpdates=4 TransactionLevel=1 OldSect[8]={2,3,0,7,0,0,0,0,0}-交易結(jié)束 遞減TransactionLevel 以FlagClose=0把新的寄存器寫(xiě)入扇區(qū)#6 擦除舊的校驗(yàn)寄存器 擦除舊扇區(qū)#2、#3、#7 在$A5寫(xiě)入FlagClose 初始化NbUpdates=0TransactionLevel=0OldSect[8]={x,x,x,x,x,x,x,x,x}
交易后,EEPROM存儲(chǔ)器取如下形式新的校驗(yàn)寄存器包含如下數(shù)據(jù)-FlagOpen00-OldSect2,3,0,7,0,0,0,0-PrevReg5-NextReg11
-FlagCloseA5-NewSect12,13,14,15,16,17我們看到,新的校驗(yàn)寄存器包含其值由RAM提供的舊扇區(qū)的標(biāo)識(shí)、舊校驗(yàn)寄存器所在的扇區(qū)標(biāo)識(shí)、將要放置的下一個(gè)校驗(yàn)寄存器的扇區(qū)標(biāo)識(shí)、下一次修改可以寫(xiě)入的自由扇區(qū)數(shù)、和交易結(jié)束的指示(FlagClose)。
如果正在對(duì)EEPROM存儲(chǔ)器進(jìn)行修改的同時(shí),發(fā)生電源故障,那么,RAM的內(nèi)容丟失,然而數(shù)據(jù)的條件能使任何交易從零再次重復(fù),不必害怕失去敏感的數(shù)據(jù)??赡芤呀?jīng)寫(xiě)入的所有扇區(qū),簡(jiǎn)單地用新數(shù)據(jù)擦除,擦除的方式如下或者擦除校驗(yàn)寄存器中標(biāo)有“自由”的所有扇區(qū),或者只擦除在已經(jīng)掃描它們的內(nèi)容、以校驗(yàn)它們是否已寫(xiě)入(否則,它們包含若干個(gè)0)之后寫(xiě)入的那些數(shù)據(jù)。
應(yīng)當(dāng)指出,如果電源故障發(fā)生在交易結(jié)束的時(shí)候,那么,已經(jīng)把一個(gè)0存放進(jìn)新的校驗(yàn)寄存器的FlagClose字段,表明交易沒(méi)有結(jié)束,且表明必須考慮在倒數(shù)第二步的操作中被擦除的舊扇區(qū)內(nèi)容,最后一步的操作是寫(xiě)入指示交易結(jié)束的FlagClose。
按照本發(fā)明的處理過(guò)程,比把數(shù)據(jù)保存在緩存存儲(chǔ)器中,使用較少的循環(huán)。在傳統(tǒng)的處理過(guò)程中,每一數(shù)據(jù)修改,需要4次EEPROM存儲(chǔ)器操作寫(xiě)入緩存存儲(chǔ)器區(qū)、擦除將來(lái)的存儲(chǔ)單元、在該存儲(chǔ)單元中寫(xiě)入新的數(shù)據(jù)、和擦除緩存存儲(chǔ)器區(qū)中的存儲(chǔ)單元。在這些步驟的頂部,還必須加上緩存存儲(chǔ)器的管理和與要存儲(chǔ)數(shù)據(jù)有關(guān)的信息的管理。
相反,按照本發(fā)明的過(guò)程,每一數(shù)據(jù)修改,只需要2次EEPROM操作,即把新的數(shù)據(jù)寫(xiě)入新的扇區(qū)和擦除舊的扇區(qū),以及4次一般的操作,即在起始時(shí),把FlagOpen寫(xiě)入校驗(yàn)寄存器、擦除舊的校驗(yàn)寄存器、寫(xiě)入新的校驗(yàn)寄存器、和把FlagOpen寫(xiě)入該校驗(yàn)寄存器。
按此方式,對(duì)N次修改,可以建立如下的比較表,表明傳統(tǒng)處理過(guò)程與按照本發(fā)明處理過(guò)程中EEPROM存儲(chǔ)器的操作數(shù),以及節(jié)省的操作數(shù)。
如果在EEPROM中一次寫(xiě)入或擦除操作持續(xù)5ms,那么4次(修改)操作最小節(jié)省30ms。
除了以上的時(shí)間收益外,由于校驗(yàn)寄存器中指出了自由扇區(qū),無(wú)需為查找自由扇區(qū)而掃描EEPROM存儲(chǔ)器,所以還可以加上由此得到的時(shí)間收益。
權(quán)利要求
1.一種以卡為基礎(chǔ)的交易系統(tǒng)中用于修改數(shù)據(jù)的處理過(guò)程,該系統(tǒng)的特征是有一存儲(chǔ)卡和一讀卡器,當(dāng)把卡放在相對(duì)于讀卡器確定的位置上時(shí),讀卡器能讀出所述卡,所述卡的特征是,有第一RAM存儲(chǔ)器和第二非易失、可擦除、又可重寫(xiě)的存儲(chǔ)器,該第二存儲(chǔ)器包括存儲(chǔ)單元,內(nèi)含有關(guān)所述卡完成的交易的數(shù)據(jù)記錄,每一次交易導(dǎo)致至少一個(gè)所述數(shù)據(jù)存儲(chǔ)單元的修改,或添加新的記錄,所述處理過(guò)程由以下步驟為特征a.為要修改的數(shù)據(jù)記錄或要添加的記錄,從以前的校驗(yàn)寄存器中讀出(17)所述第二存儲(chǔ)器的一個(gè)自由存儲(chǔ)單元的地址,該以前的校驗(yàn)寄存器位于所述第二存儲(chǔ)器第一確定的存儲(chǔ)單元內(nèi),b.把新修改的或添加的記錄,寫(xiě)入(18)所述自由存儲(chǔ)單元,c.對(duì)每一要修改或添加的新記錄,重復(fù)步驟a)和b),d.把新的校驗(yàn)寄存器,寫(xiě)入(22)所述第二存儲(chǔ)器第二確定的存儲(chǔ)單元,該新的校驗(yàn)寄存器包含下一次交易要使用的所述第二存儲(chǔ)器的自由存儲(chǔ)單元的地址。
2.按照權(quán)利要求1的處理過(guò)程,還包括在步驟a)前,要執(zhí)行如下步驟i)寫(xiě)入(16)存儲(chǔ)單元的號(hào)碼,該存儲(chǔ)單元是把要修改或添加的記錄存放在所述第一RAM中的存儲(chǔ)單元。
3.按照權(quán)利要求2的處理過(guò)程,其中,當(dāng)要執(zhí)行的操作涉及要添加記錄時(shí),寫(xiě)入的所述第一RAM中的所述存儲(chǔ)單元號(hào)碼,是一個(gè)虛號(hào)碼。
4.按照權(quán)利要求1、2、或3的處理過(guò)程,其中,在交易被初始化時(shí),要把兩個(gè)變量記錄在存儲(chǔ)器中,第一變量(NbUpdates)置值0,使它能在每一記錄修改操作或記錄添加操作時(shí)遞增,第二變量(TransactionLevel)置值0,使它能在交易進(jìn)行時(shí),從0變?yōu)?。
5.按照權(quán)利要求1到4任一項(xiàng)的處理過(guò)程,其中,當(dāng)交易結(jié)束時(shí),擦除(26)內(nèi)含已修改的或已添加的記錄的存儲(chǔ)單元。
6.按照權(quán)利要求5的處理過(guò)程,其中,當(dāng)交易結(jié)束時(shí),擦除內(nèi)含以前的校驗(yàn)寄存器的所述第一個(gè)確定的存儲(chǔ)單元(24)。
7.按照權(quán)利要求6的處理過(guò)程,其中,當(dāng)交易結(jié)束時(shí),內(nèi)含修改的或添加的記錄的所述存儲(chǔ)單元數(shù),從所述第一RAM寫(xiě)入所述新的校驗(yàn)寄存器。
8.按照權(quán)利要求7的處理過(guò)程,其中,當(dāng)交易結(jié)束時(shí),所述第一RAM的所述變量,都復(fù)位為0(28)。
9.按照權(quán)利要求8的處理過(guò)程,其中,在擦除所述以前的校驗(yàn)寄存器和所述修改或添加的記錄之前,所述新的校驗(yàn)寄存器的字段(FlagClose)被復(fù)位為0,而在這些操作已經(jīng)執(zhí)行之后,置為另一個(gè)值(A5)。
10.一種包括適合實(shí)施按照權(quán)利要求1到9任一項(xiàng)的裝置的系統(tǒng)。
全文摘要
一種以卡為基礎(chǔ)的交易系統(tǒng)中用于修改數(shù)據(jù)的處理過(guò)程,該系統(tǒng)的特征是有一存儲(chǔ)卡和能讀出該卡的讀卡器。該卡包括第一存儲(chǔ)器(RAM)和第二存儲(chǔ)器(EEPROM),該第二存儲(chǔ)器(EEPROM)內(nèi)含數(shù)據(jù)記錄的存儲(chǔ)單元,每一交易導(dǎo)致至少一個(gè)數(shù)據(jù)存儲(chǔ)單元的修改或新數(shù)據(jù)的添加。處理過(guò)程包括的步驟是a)在以前的校驗(yàn)寄存器中,讀出(17)一個(gè)自由存儲(chǔ)單元的地址,該以前的校驗(yàn)寄存器位于EEPROM存儲(chǔ)器第一個(gè)確定的存儲(chǔ)單元內(nèi),b)把修改的或添加的記錄,寫(xiě)入(18)該自由存儲(chǔ)單元,并且,對(duì)要修改或要添加的每一新的記錄,重復(fù)步驟a)和b),還把新的校驗(yàn)寄存器,寫(xiě)入(22)EEPROM存儲(chǔ)器的第二個(gè)確定的存儲(chǔ)單元,該新的校驗(yàn)寄存器包含下一次交易要使用的自由EEPROM存儲(chǔ)器存儲(chǔ)單元的地址。
文檔編號(hào)G11C16/10GK1533575SQ03800657
公開(kāi)日2004年9月29日 申請(qǐng)日期2003年4月15日 優(yōu)先權(quán)日2002年4月16日
發(fā)明者埃里克·格爾伯特, 埃里克 格爾伯特 申請(qǐng)人:Ask股份有限公司