主计算机识别单体以反冲突的方法

文档序号:6400743阅读:157来源:国知局
专利名称:主计算机识别单体以反冲突的方法
技术领域
本发明涉及其中可同时由一个主计算机或者一个等效的用来识别单体的设备识别数个单体从而造成数个单体之间的冲突的系统,尤其涉及用于被主计算机识别的单体的反冲突方法。
背景技术
存在着许多利用主计算机或等效设备识别单体的系统,其中每个单体具有一个识别号并具有和该主计算机的某种关系。例如当单体是属于同一个数据传输网络(“属于同一个网络”关系)的终端时并且当单体是由阅读器识别后可访问受控访问区(“靠近阅读器”关系)的不接触式对象时,为这种情况。
这些系统中可能发生的一个值得注意的问题出于数个单体可能同时回答来自主计算机或等效设备的查询这一事实。例如当一阅读器的前方同时存在数个不接触式智能卡时为这种情况。这说成是在数个单体之间出现冲突。阅读器必须解决这种问题,它必须能识别冲突中所涉及到的每个单体。
在相对于阅读器多个不接触式智能卡位于一给定区域的情况下,已知的反冲突方法实现树形结构迭代算法,在其中按照树形结构表示所有的卡识别号。在该树结构中,树的“根”分成二个“分支”,每个分支以一个和识别号的第一个位,例如最高有效位的逻辑值1或0对应的“结点”结束。这二个结点分成二个新的分支,这二个新分支以一个和识别号的另一个位的值1或0的结点对应,依次类推直到识别号的最后一位,从而该树的世代数和编码卡的识别号的位数相同。
基于树形结构迭代算法的反冲突方法具有速度慢的缺点,因为编码识别号所使用的位数越多,考察代表卡的整个树的时间越长。按这种方式,在某些例如公共交通网应用中,尽管多数情况下阅读器所覆盖的区域同时只存在数量很少的卡,为了对识别号编码必须设置大的位数。

发明内容
从而,本发明的目的是产生一种不基于识别号的逐位比较的从而不必识别造成冲突的位的反冲突方法,而该反冲突方法是利用每个识别号相对于一个识别尝试数字值的定位的,其中该识别尝试数字值是由采用一种能快速解决冲突的算法的主计算机发送的。
本发明涉及一种主计算机的反冲突方法,其中单体和该主计算机具有给定关系以使该主计算机识别各单体,每个单体具有一个在0和最大值(MAX)之间的识别号。该方法包括以下步骤a)该主计算机发出一条能由任何和该给定的与该主计算机的关系匹配的单体接收并识别的查询指令,b)当至少一个的单体和该给定的与该主计算机的关系匹配时,该主计算机发送一条包含一个识别尝试数字值的反冲突指令,c)任何和该给定的与该主计算机的关系匹配的并且其识别号小于或等于该识别尝试数字值的单体对此响应,以及d)当该主计算机接收数个响应时检测数个单体之间的冲突,并且在此情况下发送一条由一个根据一给定算法定义的识别尝试数字值组成的反冲突指令,或者,当只存在一个响应时用它的识别号选择该单体。
依据一优选实施例,这些单体是不接触式智能卡例如对受控进入区的进入卡,这些卡是借助使卡通过充当该主计算机的阅读器的前方的特定区域来被识别的。


从下面的连带着各附图的说明本发明的用途、目的和特征会变得更清楚,附图中图1是依据本发明的进程的框图,其是在每个单体中即在不接触式智能卡的芯片中当在阅读器的前方提供卡时实现的,以及图2是依据本发明的进程的框图,该进程是在主计算机中实现的并且即识别不接触式智能卡。
具体实施例方式
可以在任何其中数个单体和主计算机有给定关系的系统中实现本发明的进程。但是,在下面的说明中,在其中这些单体是不接触式智能卡的优选实施例里说明该进程,当卡位于相对于阅读器定义的某空间中的卡和该阅读器通信。
参照图1,任何位于该相对于阅读器定义的空间内的卡期待接收来自该阅读器的查询,该查询是由所述阅读器以循环方式发送的(例如,每5毫秒)。接着,每个卡检查它是否接收查询(步骤10),在接收到查询之前该步骤连续重复。
当卡的芯片接收到该查询时,该芯片等待来自该阅读器的“反冲突”指令(步骤12)并且环回(loop back)直到接收该指令。当接收该反冲突指令时,该芯片检查自己的识别号是否小于或等于该指令中含有的识别尝试数字值(步骤14)。若不是,该进程环回以等待反冲突指令。应注意,所有接收到查询的卡参与该反冲突进程并且这次查询发出之后连接的卡不参与以便防止新卡的干扰。
如果该卡的识别号小于或等于该指令中包含的该数字值,该卡的芯片通过发送它的识别号响应该阅读器(步骤16)。
接着,该芯片等待一条新指令;该指令可以是一条选择指令或者是一条新的反冲突指令(步骤18)。如果该接收到的指令是一条新的反冲突指令,该进程环回到步骤14,以便检查该卡的识别号是否小于该新指令中所含有的识别尝试数字值。应注意,上述步骤14和16的再循环进程可能重复数次,如下面参照图2说明那样。
尽管在参照图1和2说明的该实施例中,本发明的基本原则是检查卡的识别号是否小于或等于识别尝试值;也可以检查卡的识别号是否大于或等于识别尝试值,这不偏离本发明的范围。
如果该卡接收一条选择指令,这意味着已识别该卡。该芯片再次向该阅读器发送它的识别号(步骤20)并且不再参与该反冲突进程。
如下面参照图2说明发生在阅读器中实现的反冲突进程。首先,该阅读器向所有位于相对该阅读器定义的空间内的卡发送查询(步骤30)。该阅读器等待至少一个来自卡的响应(步骤32)并且只要未收到响应一直环回。当接收一响应时,初始化数个变量(步骤34);表示要识别的识别号所位于的区间的下限的MIN变量初始化为0;代表识别尝试数字值的VALID初始化为MAX,其中MAX是分配给卡的识别号所持有的最大值;以及DERCOLL是代表进程中上一次使用的VALID值的变量并且也初始化为MAX。
接着,该阅读器发送一条含有一个识别尝试数字值的反冲突指令(步骤36)。在此发送后,该阅读器等待可能的响应(步骤38)。如果接收到响应,则意味着在为能和该阅读器发生通信而定义的空间中存在至少一个卡。该阅读器必须判定是否出现冲突或者只存在单个响应即在该定义的空间内只存在单个卡(步骤40)。
当出现冲突时,在该进程环回到发送一条新的反冲突指令的步骤36之前,把DERCOLL变量置为等于VALID值(步骤42)即前一条反冲突指令中使用的识别尝试数字值,并且按如下方式在考虑称为下降速度且其大于1的参数N的情况下修改VALID值VALID=MIN+(VALID-MIN)/N应注意,由于采用该第一算法,VALID的新值必然比以前的值小。这种方式下当N=2和MAX=1000时,VALID的值会成为500。
当不出现冲突时,这意味着只存在一个响应。在此情况下,阅读器记录卡的识别号(步骤46),从而能使它选择该先前看到的卡。在该进程环回到新反冲突指令发送步骤之前,修改MIN值以变成等于VALID(步骤48),使VALID值变成等于DERCOLL值(步骤50),并且用MAX置换DERCOLL值(步骤52)。应注意,该第二算法允许把VALID值增加到MAX值,从而能识别它们的识别号位于MAX附近区间并且由于和带有小的识别号的卡的冲突尚未检测出的卡。
当发送步骤38的反冲突指令后不存在响应时,这不意味着检测了所有存在的卡的识别号。有可能这些识别号位于MAX附近的区间里,但不存在小于VALID的识别号。
如果不存在响应,首先检查VALID的值是否到达MAX(步骤54)。若是,则肯定不存在要识别的卡并终止该进程。反之,进行验证以判定VALID是否等于DERCOLL(步骤56)。若是,则把DERCOLL的值置为等于MAX(步骤58)。在这二个例子中,在该进程环回到发送一条新的反冲突指令的步骤36之前,把MIN的值置为等于VALID的值(步骤60),并且按如下方式在考虑称为上升速度的且大于1的参数M的情况下修改VALID的值(步骤62)VALID=VALID+(DERCOLL-VALID)/M应注意,由于采用该第三算法,VALID的新值必然比以前的值大。
上面说明的反冲突方法非常快,因为几次指令就检测出卡的概率相当高。按照这种方式,假定冲突处理中涉及三个识别号分别为A、B、C的卡,如下面的表所示通过数字值VALID(单条反冲突指令之后)在0-MAX的范围内存在8种可能的分离情况

8种当中VALID不能分离3个识别号有2种可能(0.25),8种当中分离出二个识别号有3种可能(0.375)并且8种当中识别出一个卡有3种可能(0.375)。为了了解二次指令后的概率,必须对最后一个位添加混合组合。
二次指令下确定一个识别号的概率从而是P=0.375+2/8×3/8+3/8×1/2=0.656按照这种方式可以建立一个给出X次指令下从Y个识别号中确定一个识别号的概率的表,其中X在1和12之中而Y在2和12之中。

从上面的表中,很清楚几次指令后确定一个识别号的概率是高的。例如,在高于百分之九十的可能下,1)在4次指令下从2或3个号中找到一个识别号,2)在5次指令下从4、5或6个号中找到一个识别号,以及3)在6次指令下从7、8、9、10、11或12个号中找到一个识别号。
一般地说,最好把上升和下降速度N和M中的一个选择为至少大于或等于2。另外,经验表明,如果N和M都等于2结果最优。
为了试图说明本发明,给出下面的例子,其中按16位分析每个卡的识别号,这意味着这些识别号在0和65,536之间。还假定M=N=2并且每条指令持续1.5毫秒。如果我们考虑发送查询以及它的响应的初始时间,检测1到12个识别号所需的最大时间从而为

例1(4个卡)MAX=1,000冲突中涉及到的4个卡的识别号
ID1=12 ID2=356 ID3=567 ID4=5681 VALID=1000 MIN=0 DERCOLL=1000冲突2 VALID=500 MIN=0 DERCOLL=1000冲突3 VALID=250 MIN=0 DERCOLL=500一个响应00124 VALID=500 MIN=250 DERCOLL=1000一个响应03565 VALID=1000 MIN=500 DERCOLL=1000冲突6 VALID=750 MIN=500 DERCOLL=1000冲突7 VALID=625 MIN=500 DERCOLL=750冲突8 VALID=563 MIN=500 DERCOLL=625无响应9 VALID=594 MIN=563 DERCOLL=625冲突10 VALID=579 MIN=563 DERCOLL=594冲突11 VALID=571 MIN=563 DERCOLL=579冲突12 VALID=567 MIN=563 DERCOLL=571一个响应056713 VALID=571 MIN=567 DERCOLL=1000一个响应056814 VALID=1000 MIN=571 DERCOLL=1000无响应检查4个识别号需要14个指令和28.5毫秒。
例2(5个卡)MAX=1,000冲突中的5个卡的识别号ID1=887 ID2=997 ID3=938 ID4=562 ID5=2941 VALID=1000 MIN=0 DERCOLL=1000冲突2 VALID=500 MIN=0 DERCOLL=1000一个响应02943 VALID=1000 MIN=500 DERCOLL=1000冲突4 VALID=750 MIN=500 DERCOLL=1000一个响应05625 VALID=1000 MIN=750 DERCOLL=1000冲突6 VALID=875 MIN=750 DERCOLL=1000无响应7 VALID=938 MIN=875 DERCOLL=1000冲突8 VALID=907 MIN=875 DERCOLL=938一个响应08879 VALID=938 MIN=907 DERCOLL=1000一个响应093810 VALID=1000 MIN=938 DERCOLL=1000一个响应099711 VALID=1000 MIN=1000 DERCOLL=1000无响应为检测5个识别号需要11个指令和25.5毫秒。
在该不接触式智能卡的应用中,上面说明的依据本发明的处理使用遵循ISO 14443标准的通信装置。但是,和现有过程不同,不必识别造成冲突的位,因为冲突是从错误“校验和”推断出来的。它和时间无关,从而可以在不会影响该处理的功能下用PC上的BASIC语言软件或者用阅读器中的硬编码实现。
不论是在各个单体例如不接触式智能卡中还是在主计算机或等同品例如不接触式智能卡阅读器中,依据本发明的处理是通过软件代码即计算机程序实现的。
权利要求
1.一种主计算机的反冲突方法,其中单体和所述主计算机具有给定关系以使所述主计算机识别所述单体,每个所述单体具有一个在0和最大值(MAX)之间的识别号;所述方法特征在于下述步骤a)所述主计算机发出一条能由任何与所述主计算机有给定的关系的单体接收并识别的查询指令,b)当至少一个所述单体和所述给定的与所述主计算机的关系匹配时,所述主计算机发送一个包含一个识别尝试数字值的反冲突信号,c)任何和所述给定的与所述主计算机的关系匹配的并且其识别号小于或等于(或者大于或等于)所述数字识别尝试值的单体作出响应,以及d)当所述主计算机接收数个响应时检测数个单体之间的冲突,并且在此情况下发送一条由一个根据一给定算法定义的识别尝试数字值组成的反冲突指令,或者,当只存在一个响应时用它的识别号选择该单体。
2.一种主计算机的反冲突方法,其中单体和所述主计算机具有给定的关系以使所述主计算机识别所述单体,每个所述单体具有一个在0和最大值(MAX)之间的识别号;所述方法特征在于下述步骤a)所述主计算机发出一条能由任何与所述主计算机有给定的关系的单体接收并识别的查询指令,b)当至少一个的所述单体和所述给定的与所述主计算机的关系匹配时,所述主计算机发送一条包含一个识别尝试数字值的反冲突指令,c)如果来自数个单体的响应中存在冲突所述主计算机发送一条新的包含一个比先前发送的识别尝试数字值要小的和从第一算法产生的识别尝试数字值的反冲突指令,或者,当只存在一个其识别号小于先前所发送的所述识别尝试数字值的单体时所述主计算机记录该单体的识别号,d)重复步骤c),直至发送一条由一个识别尝试数字值组成的反冲突指令会导致只识别一个所述单体,并在该情况下,记录所述单体的识别号,e)如果来自数个单体的响应中存在冲突所述主计算机发送一条新的包含一个比先前发送的识别尝试数字值要大的和从第二算法产生的识别尝试数字值的反冲突指令,或者,当只存在一个其识别号小于先前所发送的所述识别尝试数字值的单体时所述主计算机记录该单体的识别号,f)重复步骤e),直至发送一条其识别尝试数字值为所述最大值的反冲突指令,以及g)重复步骤c)到步骤f),直至发送一条其识别尝试数字值为所述最大值的反冲突指令不产生来自所述单体的响应。
3.依据权利要求2的方法,如果对步骤c)和e)的反冲突指令不存在响应,则包括以下步骤h)验证所述反冲突指令不把所述最大值作为识别尝试数字值,i)所述主计算机发送一条新的包含一个比先前发送的识别尝试值要大的和从第三算法产生的反冲突指令,以及j)重复步骤c)到g)。
4.依据权利要求3的方法,其中所述第一算法包括用新值VALID=MIN+(VALID-MIN)/N代替(44)反冲突指令中含有的识别尝试数字值VALID,其中MIN代表区间的下限,其上限为VALID并且要识别的单体的识别号位于其中,而N代表其值大于1的下降速度参数。
5.依据权利要求4的方法,其中所述第二算法包括用该发送的反冲突指令中含有的识别尝试数字值(VALID)代替(48)MIN,并且包括用所述刚发送的反冲突指令的前一个反冲突指令中含有的识别尝试数字值代替(50)所述识别尝试数字值。
6.依据权利要求5的方法,其中所述第三算法包括用新值VALID=VALID+(DERCOLL-VALID)/M代替(62)反冲突指令中含有的数字识别尝试值VALID,其中DERCOLL是一个值等于MAX或者等于刚发送的反冲突指令的前一个反冲突指令中的识别尝试数字值的变量,而M代表其值大于1的上升速度参数。
7.依据权利要求2至6中任一项的方法,其中变量M和N各等于2。
8.依据权利要求1至7中任一项的方法,其中所述单体是不接触式智能卡并且所述主计算机是所述不接触式灵巧卡的阅读器。
9.一种包括实现依据权利要求1所述的方法的指令组的计算机程序。
10.一种包括实现依据权利要求2至6中任一项所述的方法的指令组的计算机程序。
全文摘要
一种由主计算机控制的允许该主计算机识别单体的单体反冲突方法,其中每个单体具有一个在0和最大值(MAX)之间的识别号,其包括下述步骤a)该主计算机发送一条能由所有单体接收并识别的查询指令,b)该主计算机发送一条包含一个识别尝试数字值的反冲突指令,c)任何识别号小于或等于该识别尝试数字值的单体作出响应,以及d)当该主计算机接收数个响应时检测数个单体之间的冲突并且发送一条新的根据一给定算法的反冲突指令,或者,当只存在一个响应时用它的识别号选择该单体。
文档编号G06K17/00GK1496513SQ03800073
公开日2004年5月12日 申请日期2003年1月17日 优先权日2002年1月17日
发明者尼古拉斯·庞奥德, 尼古拉斯 庞奥德 申请人:Ask股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1