一种在交易时修改存储卡上数据的方法

文档序号:6752428阅读:261来源:国知局
专利名称:一种在交易时修改存储卡上数据的方法
技术领域
在本发明涉及的系统中,部分存储在卡上的数据记录,在使用读卡器进行交易时被修改,更具体说,是涉及一种处理过程,用于在使用读卡器交易时,修改存储卡的数据。
背景技术
存储卡,也称为智能卡的使用,日益增加,作为对与持卡人有关的数据的支持。在这些卡中,研发了无接触卡,作为接入控制存取区的装置、个人标识甚至电子钱包装置,这种无接触卡,通过放在卡中的天线与相关读卡器之间的远程电磁耦合,交换信息。
智能卡中含有数据的存储器,一般是非易失的、可擦除的、和可重写的存储器,最好是EEPROM类型。该类型存储器被分为多个存储单元,内含的数据记录有确定长度,例如32字节。
在交易时,卡的存储器中包含的若干记录,一般必须修改,以便适应交易结果产生的新的条件。遗憾的是,存储器,特别如果它是EEPROM类型的存储器,要求相对长的擦除/写入时间(例如5ms),而在这段时间内,可能出现电源故障,导致包含在记录中的数据的丢失。
此外,在各种交易操作中,若干数据记录按通/断模式操作被修改。为了交易安全的原因,如果在操作时发生电源断电,那么所有交易必须重复,如果不能从头重复交易,那么要冒永久丢失敏感数据(例如,电子钱包的贷方余额)的风险。
为了回答以上所述问题,已经尝试在修改数据记录之前,把该数据记录存储在缓存中。当完成所有改变时,才从缓存存储器中擦除旧的记录。
遗憾的是,这种方法要求对每一记录进行4种操作,即保存在缓存区中、擦除要修改的记录、重写、最后擦除缓存区中旧的记录。当交易包括许多操作时,例如常常需要8种操作,交易需要长的时间,且可能是把卡递交给读卡器的持卡人不相容的时间。此外,这种方法的主要缺点是,数据区的记录常常位于同一存储单元,而缓存区位于存储器固定的地方;这样将增加对存储器的“压力”,并限制可以完成的交易数,因为操作数被限制在给定的硅片制造商保证的值内。

发明内容
另一个使上述问题变得更为困难的问题,涉及用于存放修改记录的自由扇区的选定。传统的方法包括扫描存储器,以便查找自由扇区。这一查找操作需要的时间加到已经指出的记录和擦除所必需的操作时间上。但是,当有若干记录需要修改,从而需要若干次查找自由扇区时,这一时间变得非常重要和不能与交易时间兼容。
这就是为什么本发明的目的在于创立一种处理过程,用于在交易时修改存储卡数据,本处理过程能在短的、与交易时限制卡的存取时间兼容的时间周期上,使交易时进行的修改与该通/断模式同步,同时避免把存储器的一部分用作保存数据的缓存存储器,因而避免常常把数据写入同一存储器区,形成对存储器的“压力”。
因此,本发明涉及一种处理过程,用在以卡为基础的交易系统中修改数据,该种系统的特征是,有存储卡和读卡器,当把卡放在相对于读卡器确定的位置上时,能读出该卡。卡包括第一存储器(RAM)和第二非易失、可擦除、并可重写的存储器(EEPROM),后者有存储单元,内含通过该卡进行交易的数据记录,每次交易导致至少一个数据存储单元的修改和添加新的记录。
按照本发明的方法,包括如下步骤a)为要修改的数据记录或要添加的记录,在以前的校验寄存器中,读出第二存储器的一个自由存储单元的地址,该以前的校验寄存器位于第二存储器第一个确定的存储单元内,
b)把新修改的或添加的记录,写入该自由存储单元,c)对每一要修改或要添加的新记录,重复步骤a)和b),d)把新的校验寄存器,写入第二存储器的第二个确定的存储单元,该新的校验寄存器包含下一次交易要使用的第二存储器自由存储单元的地址。


根据以下结合唯一的附图的说明,本发明的目的、目标、和优点将变得更为明显,该图表示按照本发明的处理过程的流程图。
具体实施例方式
在下面的说明中,假定用于交易的智能卡以EEPROM存储器为特征,该EEPROM存储器例如分为32字节的全同的扇区。本发明的一个基本特征,是使用一校验寄存器,它占据存储器的一个扇区。该校验寄存器包括指定用于交易的数据,在这些数据中,存储器自由扇区的标识可以用于记录新的数据。校验寄存器具体包括如下字段-FlagOpen(标志开始)指示交易是否开始,-OldSect(旧扇区)指示修改前的扇区数,-PrevReg(以前的寄存器)指示以前的校验寄存器所在的扇区号码,-NextReg(下一寄存器)指示以前的校验寄存器所在的扇区号码,-FlagClose(标志结束)指示交易是否结束,-NewSect(新扇区)指示用于新的修改的自由扇区数,假定正在进行交易,根据该单一的图所示的流程图,发生按照本发明的处理过程。最初,有一初始化步骤(步骤10),它包含把卡的RAM存储器中4个变量初始化-校验寄存器地址校验寄存器存放在其中的扇区的号码,-NbUpdates(号码更新)在每一记录修改或添加新记录之后递增的变量,-TransactionLevel(交易电平)指示交易正在进行的比特,-OldSector(旧扇区)指示在整个交易中,用于记录数据的扇区数。
第二步是交易开始步骤(步骤12),在该步骤中,RAM存储器的TransactionLevel比特从0变到1,且校验寄存器的FlagOpen字段,从原来的0置值为十六进制值A5。
在下一步中,确定是否有记录需要修改或添加到存储器的存储单元中(步骤14)。如果有,把旧扇区号码写入RAM存储器(步骤16),新记录必须写入的扇区的地址,从校验寄存器读出(步骤17),把新记录写入从校验寄存器读出的号码标识的扇区中(步骤18),最后执行RAM存储器中校验数据的修改(步骤20)。处理过程回到确定是否有另一个记录需要修改或添加的步骤(步骤14)。
应当指出,本发明的优点,主要存在于如下事实,即交易几乎常常需要修改若干记录,记录的修改可以利用校验寄存器而不浪费时间,因为在该校验寄存器中指出了自由扇区,不必查找它们。
应当指出,在添加记录而不是修改记录的情形,在RAM中的扇区号码不需存储,因为该扇区不存在,但代之以存储一虚号码0。


当没有更多的记录需要写入存储器中时,把包含新数据的新的校验寄存器写入自由扇区,该扇区的号码由旧校验寄存器提供(步骤18),旧校验寄存器被擦除(步骤20),包含要修改的记录的旧扇区被擦除(步骤22),以及RAM的校验变量复位为0(步骤24)。
为了说明本发明的处理过程,可以考虑下面的例子,在该例子中,EEPROM存储器在交易前,取如下形式位于扇区5的校验寄存器包括如下数据-FlagOpen00-OldSect0,0,0,0,0,0,0,0,0-PrevReg0-NextReg6-FlagCloseA5-NewSect7,8,9,10,11,12,13,14假定交易包括4个相继的变化-修改记录2-修改记录3-添加记录5-第二次修改记录2在初始化步骤之后,处理过程的步骤如下-交易开始把在十六进制A5处的FlagOpen字段,写入当前的寄存器,并对变量初始化

NbUpdates=0

TransactionLevel=1

OldSect[8]={0,0,0,0,0,0,0,0,0}-修改记录#2把旧扇区#2存储进RAM中,在扇区#7写入新记录,RAM的变量为 NbUpdates=1 TransactionLevel=1 OldSect[8]={2,0,0,0,0,0,0,0,0}-修改记录#3把旧扇区#3存储进RAM中,在扇区#8写入新记录。RAM的变量为 NbUpdates=2 TransactionLevel=1 OldSect[8]={2,3,0,0,0,0,0,0,0}-添加记录#5把旧扇区#0存储进RAM中(0意味旧的不存在的扇区),在扇区#9写入新记录。RAM的变量为 NbUpdates=3 TransactionLevel=1 OldSect[8]={2,3,0,0,0,0,0,0,0}-修改记录#2把旧扇区#7存储进RAM中,在扇区#10写入新记录。RAM的变量为 NbUpdates=4 TransactionLevel=1 OldSect[8]={2,3,0,7,0,0,0,0,0}-交易结束 递减TransactionLevel 以FlagClose=0把新的寄存器写入扇区#6 擦除旧的校验寄存器 擦除旧扇区#2、#3、#7 在$A5写入FlagClose 初始化NbUpdates=0TransactionLevel=0OldSect[8]={x,x,x,x,x,x,x,x,x}
交易后,EEPROM存储器取如下形式新的校验寄存器包含如下数据-FlagOpen00-OldSect2,3,0,7,0,0,0,0-PrevReg5-NextReg11

-FlagCloseA5-NewSect12,13,14,15,16,17我们看到,新的校验寄存器包含其值由RAM提供的旧扇区的标识、旧校验寄存器所在的扇区标识、将要放置的下一个校验寄存器的扇区标识、下一次修改可以写入的自由扇区数、和交易结束的指示(FlagClose)。
如果正在对EEPROM存储器进行修改的同时,发生电源故障,那么,RAM的内容丢失,然而数据的条件能使任何交易从零再次重复,不必害怕失去敏感的数据。可能已经写入的所有扇区,简单地用新数据擦除,擦除的方式如下或者擦除校验寄存器中标有“自由”的所有扇区,或者只擦除在已经扫描它们的内容、以校验它们是否已写入(否则,它们包含若干个0)之后写入的那些数据。
应当指出,如果电源故障发生在交易结束的时候,那么,已经把一个0存放进新的校验寄存器的FlagClose字段,表明交易没有结束,且表明必须考虑在倒数第二步的操作中被擦除的旧扇区内容,最后一步的操作是写入指示交易结束的FlagClose。
按照本发明的处理过程,比把数据保存在缓存存储器中,使用较少的循环。在传统的处理过程中,每一数据修改,需要4次EEPROM存储器操作写入缓存存储器区、擦除将来的存储单元、在该存储单元中写入新的数据、和擦除缓存存储器区中的存储单元。在这些步骤的顶部,还必须加上缓存存储器的管理和与要存储数据有关的信息的管理。
相反,按照本发明的过程,每一数据修改,只需要2次EEPROM操作,即把新的数据写入新的扇区和擦除旧的扇区,以及4次一般的操作,即在起始时,把FlagOpen写入校验寄存器、擦除旧的校验寄存器、写入新的校验寄存器、和把FlagOpen写入该校验寄存器。
按此方式,对N次修改,可以建立如下的比较表,表明传统处理过程与按照本发明处理过程中EEPROM存储器的操作数,以及节省的操作数。


如果在EEPROM中一次写入或擦除操作持续5ms,那么4次(修改)操作最小节省30ms。
除了以上的时间收益外,由于校验寄存器中指出了自由扇区,无需为查找自由扇区而扫描EEPROM存储器,所以还可以加上由此得到的时间收益。
权利要求
1.一种以卡为基础的交易系统中用于修改数据的处理过程,该系统的特征是有一存储卡和一读卡器,当把卡放在相对于读卡器确定的位置上时,读卡器能读出所述卡,所述卡的特征是,有第一RAM存储器和第二非易失、可擦除、又可重写的存储器,该第二存储器包括存储单元,内含有关所述卡完成的交易的数据记录,每一次交易导致至少一个所述数据存储单元的修改,或添加新的记录,所述处理过程由以下步骤为特征a.为要修改的数据记录或要添加的记录,从以前的校验寄存器中读出(17)所述第二存储器的一个自由存储单元的地址,该以前的校验寄存器位于所述第二存储器第一确定的存储单元内,b.把新修改的或添加的记录,写入(18)所述自由存储单元,c.对每一要修改或添加的新记录,重复步骤a)和b),d.把新的校验寄存器,写入(22)所述第二存储器第二确定的存储单元,该新的校验寄存器包含下一次交易要使用的所述第二存储器的自由存储单元的地址。
2.按照权利要求1的处理过程,还包括在步骤a)前,要执行如下步骤i)写入(16)存储单元的号码,该存储单元是把要修改或添加的记录存放在所述第一RAM中的存储单元。
3.按照权利要求2的处理过程,其中,当要执行的操作涉及要添加记录时,写入的所述第一RAM中的所述存储单元号码,是一个虚号码。
4.按照权利要求1、2、或3的处理过程,其中,在交易被初始化时,要把两个变量记录在存储器中,第一变量(NbUpdates)置值0,使它能在每一记录修改操作或记录添加操作时递增,第二变量(TransactionLevel)置值0,使它能在交易进行时,从0变为1。
5.按照权利要求1到4任一项的处理过程,其中,当交易结束时,擦除(26)内含已修改的或已添加的记录的存储单元。
6.按照权利要求5的处理过程,其中,当交易结束时,擦除内含以前的校验寄存器的所述第一个确定的存储单元(24)。
7.按照权利要求6的处理过程,其中,当交易结束时,内含修改的或添加的记录的所述存储单元数,从所述第一RAM写入所述新的校验寄存器。
8.按照权利要求7的处理过程,其中,当交易结束时,所述第一RAM的所述变量,都复位为0(28)。
9.按照权利要求8的处理过程,其中,在擦除所述以前的校验寄存器和所述修改或添加的记录之前,所述新的校验寄存器的字段(FlagClose)被复位为0,而在这些操作已经执行之后,置为另一个值(A5)。
10.一种包括适合实施按照权利要求1到9任一项的装置的系统。
全文摘要
一种以卡为基础的交易系统中用于修改数据的处理过程,该系统的特征是有一存储卡和能读出该卡的读卡器。该卡包括第一存储器(RAM)和第二存储器(EEPROM),该第二存储器(EEPROM)内含数据记录的存储单元,每一交易导致至少一个数据存储单元的修改或新数据的添加。处理过程包括的步骤是a)在以前的校验寄存器中,读出(17)一个自由存储单元的地址,该以前的校验寄存器位于EEPROM存储器第一个确定的存储单元内,b)把修改的或添加的记录,写入(18)该自由存储单元,并且,对要修改或要添加的每一新的记录,重复步骤a)和b),还把新的校验寄存器,写入(22)EEPROM存储器的第二个确定的存储单元,该新的校验寄存器包含下一次交易要使用的自由EEPROM存储器存储单元的地址。
文档编号G11C16/10GK1533575SQ03800657
公开日2004年9月29日 申请日期2003年4月15日 优先权日2002年4月16日
发明者埃里克·格尔伯特, 埃里克 格尔伯特 申请人:Ask股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1