(57)【要約】  カードリーダのフィールドのＲＦカードを識別する方法を実行するための方法およびプロセッサ読取可能な記憶媒体。カードリーダフィールドのカードにポーリングリクエスト（９０）が送られる。送られたコマンドからの明瞭な応答が応答カード（１００）が受取られる場合、応答は保存され（１０４）、応答カードはアクティブ状態に移され（１０６）、可能であればタイムスロット数がインクリメントされ（１０８）、もはや明瞭な応答が受取られなくなるまで上記のステップが繰返される。明瞭な応答が受取られない場合（１００）、衝突が発生したか否かの判定が行なわれる（１１０）。衝突が発生しない場合、タイムスロット数はインクリメントされ（１０８）、衝突が発生した場合は別のポーリングリクエストが送られる（８６）。すべてのタイムスロットがポーリングされた後にカードまたは衝突が検知されない場合、発見されたカードが返される（１２２）。
2008530654.tif 000002
【特許請求の範囲】
【請求項１】
ＲＦカードリーダのフィールドの任意のＲＦカードを識別するための方法であって、
ａ）  コマンドのグループからコマンドを送るステップを含み、前記グループは、
ｉ）  前記フィールドの衝突防止状態にある任意のカードからの応答をリクエストする第１のポーリングコマンドを含み、前記第１のポーリングコマンドはさらに停止状態にある任意のカードを前記衝突防止状態に移し、前記グループはさらに、
ii）  前記フィールドの前記衝突防止状態にある任意のカードからの応答をリクエストする第２のポーリングコマンドと、
iii）  応答するべき特定のタイムスロットを選択した、前記フィールドの衝突防止状態にある任意のカードからの応答をリクエストする第３のポーリングコマンドとを含み、前記方法は、
ｂ）  前記送られたコマンドからの明瞭な応答が応答カードから受取られた場合、
ｉ）  前記応答を保存するステップと、
ii）  前記応答カードをアクティブ状態に動かすステップと、
iii）  タイムスロット数をインクリメントするステップとを含み、前記インクリメントされたタイムスロット数が予め定められたタイムスロットの最大数を超えるとステップｄ）に移り、そうでなければ、明瞭な応答が受取られなくなるまでステップａ）およびｂ）を繰返し、
ｃ）  明瞭な応答が応答カードから受取られない場合、衝突が発生したか否かを判定するステップを含み、発生していた場合、明瞭な応答が受取られなくなるまでステップａ）およびｂ）を繰返し、衝突が発生していなかった場合はステップｂiii）に移り、
ｄ）  応答カードの数を表示する値を返すステップを含む、方法。
【請求項２】
前記第１または第２のポーリングコマンドを送るとき、利用可能なタイムスロット数を表示するステップをさらに含む、請求項１に記載の方法。
【請求項３】
前記アクティブ状態をクリアするステップをさらに含む、請求項１に記載の方法。
【請求項４】
利用可能なカードＩＤ番号の数を超えると前記応答カードを停止状態に動かすステップをさらに含む、請求項１に記載の方法。
【請求項５】
前記フィールドにもはや見つけるカードがなくなると応答カードの前記数を表示する値を返すステップをさらに含む、請求項１に記載の方法。
【請求項６】
アクティブ状態カード（Active State Cards）のためのＣＩＤスロットの前記数が満たされると応答カードの前記数を表示する値を返すステップをさらに含む、請求項１に記載の方法。
【請求項７】
ターゲットとなるカードのタイプを特定するステップをさらに含む、請求項１に記載の方法。
【請求項８】
前記第１のポーリングコマンドは送られる最初のコマンドである、請求項１に記載の方法。
【請求項９】
タイムスロット数を増加させるステップをさらに含む、請求項１に記載の方法。
【請求項１０】
プロセッサ読取可能な記憶媒体上に具体化されるプロセッサ読取可能なコードを有するプロセッサ読取可能な記憶媒体であって、前記プロセッサ読取可能なコードは、ＲＦカードリーダのフィールドの任意のＲＦカードを識別するための方法を実現するようにプロセ
ッサをプログラムするためのものであり、前記方法は、
ａ）  リストからコマンドを送るステップを含み、前記リストは、
ｉ）  前記フィールドの衝突防止状態にある任意のカードからの応答をリクエストする第１のポーリングコマンドを含み、前記第１のポーリングコマンドはさらに停止状態にある任意のカードを前記衝突防止状態に移し、前記リストはさらに、
ii）  前記フィールドの前記衝突防止状態にある任意のカードからの応答をリクエストする第２のポーリングコマンドと、
iii）  応答するべき特定のタイムスロットを選択した、前記フィールドの前記衝突防止状態にある任意のカードからの応答をリクエストする第３のポーリングコマンドとを含み、前記方法は、
ｂ）  前記送られたコマンドからの明瞭な応答が応答カードから受取られた場合、
ｉ）  前記応答を保存するステップと、
ii）  前記応答カードをアクティブ状態に動かすステップと、
iii）  タイムスロット数をインクリメントするステップとを含み、前記インクリメントされたタイムスロット数が予め定められたタイムスロットの最大数を超えるとステップｄ）に移り、そうでなければ、明瞭な応答が受取られなくなるまでステップａ）およびｂ）を繰返し、
ｃ）  明瞭な応答が応答カードから受取られない場合、衝突が発生したか否かを判定するステップを含み、発生していた場合、明瞭な応答が受取られなくなるまでステップａ）およびｂ）を繰返し、衝突が発生していなかった場合ステップｂiii）に移り、
ｄ）  応答カードの数を表示する値を返すステップを含む、プロセッサ読取可能な記憶媒体。
【請求項１１】
前記方法はさらに、前記第１または第２のポーリングコマンドを送るときに利用可能なタイムスロット数を表示するステップをさらに含む、請求項１０に記載のプロセッサ読取可能な記憶媒体。
【請求項１２】
前記方法は、前記アクティブ状態をクリアするステップをさらに含む、請求項１０に記載のプロセッサ読取可能な記憶媒体。
【請求項１３】
前記方法は、利用可能なカードＩＤ番号の数を超えると前記応答カードを停止状態に動かすステップをさらに含む、請求項１０に記載のプロセッサ読取可能な記憶媒体。
【請求項１４】
前記方法は、前記フィールドにもはや見つけるカードがなくなると応答カードの前記数を表示する値を返すステップをさらに含む、請求項１０に記載のプロセッサ読取可能な記憶媒体。
【請求項１５】
前記方法は、アクティブ状態のためのＣＩＤスロットの前記数が満たされると応答カードの前記数を表示する値を返すステップをさらに含む、請求項１０に記載のプロセッサ読取可能な記憶媒体。
【請求項１６】
前記方法は、ターゲットとなるカードのタイプを特定するステップをさらに含む、請求項１０に記載のプロセッサ読取可能な記憶媒体。
【請求項１７】
前記第１のポーリングコマンドは送られる最初のコマンドである、請求項１０に記載のプロセッサ読取可能な記憶媒体。
【請求項１８】
前記方法は、タイムスロット数を増加させるステップをさらに含む、請求項１０に記載のプロセッサ読取可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
技術分野
本発明は、ＲＦカードリーダのフィールド内でＲＦカードを検知することに関する。
【背景技術】
【０００２】
背景技術
無線周波数識別（「ＲＦＩＤ」）はますます一般的になっている。ＲＦＩＤは、目的についての情報を収集し特定するために無線通信を用いる。目的についての情報は目的が特定された後に「オンザフライ」で作成され、または更新され得る。ＲＦＩＤはＩＤカード（identity card）を含む広範囲の適用に用いられることができる。
【０００３】
ＲＦＩＤシステムは１つ以上のリーダおよびトランスポンダ、すなわちリーダと通信する非接触メモリタグから構成される。トランスポンダはＩＤカード上に搭載され得る。トランスポンダは、カードが識別されることができるようなデータを含み、無線周波数通信ブロックに関連付けられるメモリでできている。リーダはトランスポンダと無線周波数信号を送受信するアンテナに接続される。図１において、従来技術のリーダ６８はＲＦフィールド６６のカード７０、７２、７４、７６のすべてと通信することができる。リーダ６８はそのフィールド６６の外にあるカード７８とは通信することができない。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
カードがそのフィールド内でトランスポンダまたはカードと通信するとき、１つを超えるトランスポンダまたはカードが同時にリーダに応答しようとすると、しばしば衝突が発生する。衝突が発生すると、リーダはいずれのカードからも明瞭な応答を受取らない。
【０００５】
１つを超えるカードが同時に送信するのを防止するため、衝突防止機構が採用され得る。確率的な衝突防止機構は、単一のタイムスロット内に応答するよう繰返しカードに促す。しかしながらこの手法を用いると、応答カードがフィールドから取除かれるか、またはリーダからのリクエストに応答できる状態になるまで、複数のカードの存在が検知されないかもしれない。応答するべきタイムスロットを選択したカードからの応答を促すポーリングコマンドをリーダが送るような、タイムスロット衝突防止方法が採用されてもよい。
【０００６】
カードを処理する前にいかなるカードが存在するかを知るために、リーダのフィールドにおいてカードのリストを構築することができる方法があることが望ましい。カードがいかなる状態にあるかを知り、カードの状態を変えられることがさらに望ましい。
【課題を解決するための手段】
【０００７】
発明の概要
ＲＦカードリーダのフィールドのＲＦカードを識別する方法を実行するための、方法およびプロセッサ読取可能な媒体が提示される。この方法は、コマンドのグループからコマンドを送ることを含む。このグループは、フィールドの衝突防止状態（Anticollision State）にある任意のカードからの応答をリクエストする第１のポーリングコマンドを含み、上記第１のポーリングコマンドはさらに停止状態（Halted State）にある任意のカードを衝突防止状態に移し、上記グループはさらに、フィールドの衝突防止状態にある任意のカードからの応答をリクエストする第２のポーリングコマンドと、応答するべき特定のタイムスロットを選択した、フィールドの衝突防止状態にある任意のカードからの応答をリクエストする第３のポーリングコマンドとを含む。送られたコマンドからの明瞭な応答が
応答カードから受取られた場合、その応答は保存され、応答カードはアクティブ状態（Active State）に移され、可能であればタイムスロット数がインクリメントされ、明瞭な応答が受取られなくなるまで上記のステップが繰返される。タイムスロット数のインクリメントができなければ、応答カードの数を表示する値が返される。応答カードから明瞭な応答が受取られない場合は衝突が発生したか否かが判定され、発生していた場合には、明瞭な応答が受取られなくなるまで上記のステップが繰返される。衝突が発生していなかった場合、応答カードの数を表示する値が返される。
【発明を実施するための最良の形態】
【０００８】
発明の詳細な説明
下記に説明される実施例で用いられるコマンドは、ＩＳＯ／ＩＥＣ  １４４４３規格に記述されるタイプＢ信号のためのコマンドである。しかしながら、他の実施例では他の規格および／または他の信号スキームからのコマンドが使用されてもよい。関連するコマンドは次のとおりである。リクエスト（Request）Ｂ（「ＲＥＱＢ」）；ウェイクアップ（Wake-Up）Ｂ（「ＷＵＰＢ」）；スロットマーカ（Slot Marker）（「ＭＡＲＫＥＲ」）；近接カード選択コマンド（Proximity Card Selection Command）（「ＡＴＴＲＩＢ」）；および、停止（Halt）Ｂ（「ＨＬＴＢ」）である。
【０００９】
ＲＥＱＢは、衝突防止状態近接カード（「ＰＩＣＣ」または「カード」）のすべてにポーリングリクエストを送る。このコマンドが送られるときにタイムスロット数「Ｎ」がＰＩＣＣに割当てられ、ＰＩＣＣはタイムスロット割当てとして１から「Ｎ」までの値を無作為に選ぶ。タイムスロット値「１」を選ぶＰＩＣＣは直ちにタイプＢのリクエストへの回答（Answer to Request of Type B）（「ＡＴＱＢ」）で応答する。「Ｎ」のための値が再び割当てられ、すべての（下記に説明される）ＲＥＱＢおよびＷＵＰＢコマンドで新しい無作為のタイムスロットが選ばれる。
【００１０】
ＷＵＰＢはＲＥＱＢに類似するが１つ相違点がある。ＷＵＰＢコマンドが送られるとき、停止状態にあるカードは衝突防止状態に移される。
【００１１】
ＭＡＲＫＥＲまたはＳＬＯＴ  ＭＡＲＫＥＲは、特定のタイムスロットを選んだカードへポーリングリクエストを送る付加的なポーリングコマンドである。このコマンドが送られる特定のタイムスロットを選んだカードは、ＡＴＱＢ応答でこのリクエストに応答する。
【００１２】
ＡＴＴＲＩＢはＰＩＣＣをアクティブ状態に動かすために用いられる。ＡＴＴＲＩＢコマンドを受取るカードが選択されて、専用チャンネルに割当てられる。カードがアクティブ状態にあるためには、そのカードに未使用のカード識別子（Card Identifier）（「ＣＩＤ」）値を割当てる必要がある。なぜならばアクティブ状態コマンドは、カードを参照するためにＣＩＤを用いるからである。
【００１３】
ＨＬＴＢコマンドはカードを停止状態に動かす。カードは、リセットされるか、またはＷＵＰＢコマンドを受取るまで、停止状態のままである。
【００１４】
図２において、先行技術のカード（示されない）はリセットされ、またはＲＦフィールド（１０）に入る。カードは３つの状態のうち１つにある。衝突防止状態（１２）、アクティブ状態（１４）、または停止状態（１６）である。カードが停止状態（１６）にある場合、カードはＷＵＰＢコマンド（２４）によって「ウェイクアップ」され得、それがカードを衝突防止状態（１２）に動かす。衝突防止状態（１２）で、カードは上述した以下のコマンドに応答する。ＷＵＰＢ、ＲＥＱＢ、ＳＬＯＴ  ＭＡＲＫＥＲ、ＡＴＴＲＩＢおよびＨＬＴＢである。カードは、ＡＴＴＲＩＢコマンド（１８）によって衝突防止状態（
１２）からアクティブ状態（１４）へ移され得る。アクティブ状態（１４）では、コマンドはカードのタイプによって異なるが、衝突防止コマンドはアクティブ状態にあるカードには作用しない。カードは、カード固有のＤｅｓｅｌｅｃｔコマンド（２０）によってアクティブ状態（１４）から停止状態（１６）に移され得る。カードは、ＨＬＴＢコマンド（２２）によっても衝突防止状態（１２）から停止状態（１６）に移され得る。
【００１５】
リーダのフィールド内のＲＦカードを識別するための本発明は、ソフトウェア、ハードウェアまたはソフトウェアとハードウェアとの組合せによって実現され得る。本発明のすべてまたは一部がソフトウェアで実現されると、ソフトウェアはプロセッサ読取可能な記憶媒体（その例としては、フロッピー（登録商標）ディスク、ハードディスク、ＣＤ  ＲＯＭ、メモリＩＤなどの磁気光学的記憶媒体、光学的記憶媒体、または半導体記憶媒体を含むがこれに限定されない）に存在することができる。プロセッサ読取可能な記憶媒体は、本発明を実現するステップを実行するように（プロセッサ読取可能な記憶媒体と通信する）プロセッサをプログラムすることができるコードを格納する。
【００１６】
図３においては、リーダのフィールドにおけるすべてのカードを識別するアルゴリズムが開始されると（ブロック８０）、isCardFound（アルゴリズムの最後の反復でカードが見つかったか否かについての真偽インジケータ。これが起動された場合はその値は真である。）およびisCollisionFound（アルゴリズムの最後の反復で衝突が見つかったか否かの真偽インジケータ。これが起動された場合はその値は真である。）の両方が「偽」に設定される（ブロック８２）。アルゴリズムの最初の反復において（ブロック８４）、ここでＮ＝２nとして衝突防止タイムスロット数「Ｎ」を決定する値「ｎ」は、当初は０ｘ００に設定される（ブロック８８）。停止状態にあるカードを衝突防止状態に移し、衝突防止状態にあるカードすべてに応答することをリクエストするポーリングリクエストであるＷＵＰＢコマンドが送られる（ブロック９０）。ＷＵＰＢコマンドはまた、リーダのフィールドのカードに値「ｎ」を通知し、それは利用可能なタイムスロット数（０から２n−１までの範囲の数）をカードに通知する。ＷＵＰＢコマンドが送られるとフィールドのカードにＮの値が割当てられ、カードの各々は１からＮまでの無作為の数をカードのタイムスロット割当てとして選ぶ。Ｎの値およびタイムスロット割当ては、ＷＵＰＢまたはＲＥＱＢコマンドが送られるたびに変わる。タイムスロットの初期値（「スロット」）も設定される（ここで初期値は０x００に設定されるが、この値は他の実施例では変わってもよい）（ブロック９２）。
【００１７】
アルゴリズムがその最初の反復（ブロック８４）にない場合（下記により詳細に説明されるが）、衝突防止状態にあるカードすべてに応答することをリクエストするポーリングコマンドであるＲＥＱＢコマンドが送られる（ブロック８６）。上述のように、ＲＥＱＢコマンドが送られるたびにｎおよびＮの値が変わり、衝突防止タイムスロット数Ｎはｎの現在の値に基づいて計算され、タイムスロットの初期値（「スロット」）は上述のように設定される（ブロック９２）。（この実施例において、０＜ｎ≦４であり、したがってＮの最大値は１６である。他の実施例においてはｎの異なる範囲および開始値が用いられ得る。）。
【００１８】
スロット値がスロット数より小さく（ブロック９４）、アルゴリズムがＷＵＰＢまたはＲＥＱＢコマンドが発行されてから最初の経路にあり（換言すれば、この実施例ではスロット＝０x００）（ブロック９６）、有効な応答が受取られると（ブロック１００）、isCardFoundは真に設定され（ブロック１０２）、応答が保存される（ブロック１０４）。アルゴリズムがＷＵＰＢまたはＲＥＱＢコマンドが発行されてから最初の経路にない場合（ブロック９６）、ＭＡＲＫＥＲコマンド、すなわち応答するべき現在のタイムスロットに対応するタイムスロット割当てを有するカードにリクエストを送るポーリングコマンドを送る（ブロック９８）。有効な応答が受取られると（ブロック１００）、isCardFoundは
真に設定され（ブロック１０２）、応答が保存される（ブロック１０４）。
【００１９】
一旦応答が保存されると（ブロック１０４）、次いで応答カードはアクティブ状態または停止状態に移される（１０６ブロック）。図４では、カードをアクティブ状態または停止状態に動かすプロセスは、アクティブ状態で各カードに割当てられたカード識別番号（「ＣＩＤ」）が利用可能であるか、またはカード識別番号の数を超えたか、の判定から始まる（ブロック５８）。（ＣＩＤの初期値はこの実施例において「１」に設定されるが、他の実施例では異なる値が用いられてもよい。利用可能なＣＩＤの最大数もアルゴリズムの開始時に特定される。この実施例では、利用可能なＣＩＤの数は１４である。この数は他の実施例では変わってもよい。）ＣＩＤが依然利用可能である場合（ブロック５８）、カードは（ＡＴＲＲＩＢコマンドを送ることによって）アクティブ状態に置かれ（ブロック６０）、使用済みのＣＩＤの数がインクリメントされる（ブロック６２）。利用可能なＣＩＤがもはやなくなると（ブロック５８）、カードは（ＨＬＴＢコマンドによって）停止状態に移される（ブロック６４）。図３を再び参照すると、一旦カードがアクティブ状態または停止状態に移された場合（ブロック１０６）、衝突防止タイムスロットの数がインクリメントされ（ブロック１０８）、次のタイムスロットがブロック９４以下を参照して上述されたようにポーリングされる。
【００２０】
カードリーダによって明瞭な応答が検知されない場合（ブロック１００）、応答の欠如が衝突に起因するのか否かの判定がなされる（ブロック１１０）。衝突があり（ブロック１１０）、かつアルゴリズムのこの反復以前には衝突が検知されていなかった場合（換言すれば、isCollisionFoundが「真」に設定されていない場合）（ブロック１１２）、isCollisionFoundが「真」に設定される（ブロック１１４）。ｎが４未満である場合（ブロック１１６）、ｎはインクリメントされ（ブロック１１８）、スロットがインクリメントされて（ブロック１０８）、次のタイムスロットがブロック９４以下を参照して上述されたようにポーリングされる。
【００２１】
アルゴリズムのこの反復以前に衝突が検知されていた場合（ブロック１１２）、スロットはインクリメントされ（ブロック１０８）、次のタイムスロットがブロック９４以下を参照して上述されたようにポーリングされる。
【００２２】
ｎが４を越える場合（ブロック１１６）、スロットはインクリメントされ（ブロック１０８）、次のタイムスロットがブロック９４以下を参照して上述されたようにポーリングされる。
【００２３】
衝突がなかった場合（ブロック１１０）、スロットはインクリメントされ（ブロック１０８）、次のタイムスロットがブロック９４以下を参照して上述されたようにポーリングされる。
【００２４】
スロットが２nより小さく（ブロック９４）、isCardFoundまたはisCollisionFoundの一方が「真」であって（ブロック１２０）、カードまたは衝突が検知されたことを示す場合、この情報を追跡する変数（すなわちisCardFoundおよびisCollisionFound）は「偽」に設定され（ブロック８２）、アルゴリズムの別の反復がブロック８４以下を参照して上述され、後述されるように実行される。
【００２５】
スロットが２nより小さく（ブロック９４）、isCardFoundまたはisCollisionFoundのいずれもが「真」でない場合（ブロック１２０）、発見されたカードのリストが返され（ブロック１２２）、アルゴリズムは終了する（ブロック１２４）。ＷＵＰＢ、ＲＥＱＢおよびＭＡＲＫＥＲコマンドを用いてすべてのスロットを検査した後にカードまたは衝突が見られなかった場合、アルゴリズムは完了する。
【００２６】
アルゴリズムの１つの実施例の擬似コード実行が下記のリストに記載される。下記は、入力および出力が５つの主な衝突防止コマンドについて説明された、関数宣言である：
【００２７】
【数１】
2008530654.tif 000003
【００２８】
上記のリストに記載されたコマンドは以下の入力および出力を有する：
入力：
byte n  −  ｎは衝突防止スロット数である値「Ｎ」を特定する；
Ｎ＝２n  かつ  ０＜ｎ≦４
byte afi  −  ａｆｉはＰＩＣＣのサブセットをターゲットとするためにアプリケーションファミリ識別子を特定する；
byte slot  −  ｓｌｏｔは、現在のタイムスロットである値「Ｓ」を特定する；
Ｓ＝slot＋１  かつ  １≦slot≦Ｎ−１
byte [] pupi  −  ｐｕｐｉは擬似固有ＰＩＣＣ識別子（Pseudo-Unique PICC Identifier）（「ＰＵＰＩ」）を包含する４バイトのアレイである。ＰＵＰＩは、ＲＥＱＢ、ＷＵＰＢまたはＭＡＲＫＥＲコマンドの後に受取られたＡＴＱＢ応答内に見つけることができる；
byte cid  −  ｃｉｄは、アクティブ状態コマンドの間に特定のカードをアドレスするためのＣＩＤ割当てである；
ＣＩＤ＝ｃｉｄ，  １≦ｃｉｄ≦１４
出力：
byte []  −  ＰＩＣＣからのいかなる応答も包含するアレイ；
int  −  下記の値を有し得る整数である；
＞０  −  ＰＩＣＣから返されたデータアレイの長さ；
ERR_NO_RESPONSE  −  ＰＩＣＣからのＥｒｒｏｒ  Ｎｏ  Ｒｅｓｐｏｎｓｅ；
ERR_Collision  −  ＰＩＣＣの間のＥｒｒｏｒ  Ｃｏｌｌｉｓｉｏｎ。
【００２９】
カードを見つけるアルゴリズムはそれ自体再帰的に呼び出す。下記はアルゴリズムのインターフェースの説明である。
【００３０】
【数２】
2008530654.tif 000004
【００３１】
下記はインターフェースのための入力および出力である：
入力：
byte wupbStatus  −  以下の２つの可能な値がある；
WUPB−FIRST_ITER  −  ＷＵＰＢは、アルゴリズムの最初の反復中に送られて、リーダのフィールドのカードのリストがコンパイルされる前に、当初停止状態にあるカードを「ウェイクアップ」する；
WUPB−OFF  −  この入力が用いられるとＲＥＱＢコマンドがポーリングのために用いられる；
byte stateChangeStatus  −  以下の２つの可能な値がある；
MAKE_CARDS_ACTIVE  −  これは初めに発見された１４のカードをアクティブ状態にし、続いて発見されたカードは次に停止状態に移されるが、リスト中で説明される；
MAKE−CARDS_HALTED  −  発見されたカードを直接停止状態に動かす；
byte afi  −  ポーリングされたカードのサブセットのみを衝突防止コマンドに応答させるために一定のアプリケーションによって用いられるＡＦＩである；
byte n  −  ｎの当初の大きさは、Ｎ＝１を意味する、０x００として設定されることができ、ｎはアルゴリズムの進行につれて必要であれば増加してもよい。
【００３２】
byte cid  −  これはアクティブ状態にある次に利用可能なＣＩＤである。この値は当初は０x０１に設定され得る；
boolean isCardFound  −  真または偽。このアルゴリズムの最後の反復でカードが見つかったか？呼び出されると、この値は真である。
【００３３】
boolean isCollisionFound  −  真または偽。このアルゴリズムの最後の反復で衝突が見つかったか？呼び出されると、この値は真である。
【００３４】
出力：
rfl443card[]  −  ＩＳＯ１４４４３ＲＦスマートカードオブジェクト（RF Smart Card Object）のアレイであって、その状態、ＰＵＰＩ値、および（もしあれば）ＣＩＤ値をすべてが識別する；
int  −  これもこの方法から返された、カードアレイにおけるエントリ数である。
【００３５】
アルゴリズムの以下の例示的なバージョンは、アルゴリズムの開始時にはアクティブ状態にあるカードまたはＰＩＣＣがないことを仮定する。これは実現が困難ではない。なぜならば、アクティブ状態コマンドセットが典型的にはＤｅｓｅｌｅｃｔコマンドを包含し、ＰＩＣＣまたはカードを停止状態に動かすからである。この実施例では、異なるＣＩＤは１４個しか許されないので、すべてのＣＩＤについてＤｅｓｅｌｅｃｔコマンドを実行
することによりアクティブ状態をクリアすることができる。
【００３６】
【数３−１】
2008530654.tif 000005
【００３７】
【数３−２】
2008530654.tif 000006
【００３８】
【数３−３】
2008530654.tif 000007
【００３９】
【数３−４】
2008530654.tif 000008
【図面の簡単な説明】
【００４０】
【図１】先行技術で知られるカードリーダのＲＦフィールドの内部および外部にＲＦカードがある場合の、ＲＦカードリーダのブロック図である。
【図２】先行技術で知られるＲＦカードの状態図である。
【図３】本発明による、ＲＦカードがいかに識別されるかを示す例示的なフロー図である。
【図４】本発明による、ＲＦカードがいかにアクティブ状態に移されるかを示す例示的なフロー図である。
【図１】
2008530654.tif 000009
【図２】
2008530654.tif 000010
【図３】
2008530654.tif 000011
【図４】
2008530654.tif 000012
【国際調査報告】
2008530654.tif 000013
2008530654.tif 000014