(57)【要約】  【課題】  リーダライタの通信エリア内に複数の非接触ＩＣカードが存在する場合に生じ得るリーダライタによる非接触ＩＣカードの識別の遅延の防止、すなわち、非接触ＩＣカードが初期応答を行う際の当該初期応答の衝突防止を行う。  【解決手段】  非接触ＩＣカードにおいて、スロットを決定するための乱数を生成する乱数生成手段を複数備え、乱数生成指示手段は、複数の乱数生成手段のうち、前記応答に用いる乱数生成手段を指定する。スロット決定手段は、乱数生成指示手段が指定する乱数生成手段により生成された乱数を用いてリーダライタに対して応答を行う。【選択図】  図５
2004185601.tif 000002
【特許請求の範囲】
【請求項１】
複数のアプリケーションを実行可能であり、リーダライタからのリクエストに対して乱数で決定されるスロットを利用して応答する非接触ＩＣカードにおいて、
前記アプリケーションと独立し、前記スロットを決定するための乱数をそれぞれ独立して生成する複数の乱数生成手段と、
前記複数の乱数生成手段のうち、前記応答に用いる乱数生成手段を指定する乱数生成指示手段と、
前記乱数生成指示手段が指定する乱数生成手段により生成された乱数を用いて前記応答を行うスロット決定手段と
を備えることを特徴とする非接触ＩＣカード。
【請求項２】
前記乱数生成指示手段は、当該非接触ＩＣカードに格納される複数のアプリケーションのうち所定の情報により決定されるアプリケーションに基づいて前記応答に用いる乱数生成手段を指定する請求項１に記載の非接触ＩＣカード。
【請求項３】
前記乱数生成指示手段は、リーダライタからの指示に基づいて乱数生成手段の指定を変更する請求項１に記載の非接触ＩＣカード。
【請求項４】
さらに、前記リクエストに含まれる、乱数発生手段を指定する乱数生成情報を取得する乱数生成情報取得手段を備え、
前記スロット決定手段は、前記乱数生成情報により指定される乱数生成手段を利用して乱数を取得し、当該乱数を用いて前記応答を行う請求項２に記載の非接触ＩＣカード。
【請求項５】
前記乱数生成情報は、非接触ＩＣカードに格納されるアプリケーションを指定すると共に、
前記スロット決定手段は、前記乱数生成情報により指定されたアプリケーションに含まれる機能を利用して乱数を取得し、当該乱数を用いて前記応答を行う請求項４に記載の非接触ＩＣカード。
【請求項６】
前記アプリケーションは通信によるダウンロードが可能である場合、
当該アプリケーションは前記乱数生成手段を構成する請求項２に記載の非接触ＩＣカード。
【請求項７】
さらに、前記複数の乱数生成手段を物理的に選択するためのスイッチを備え、
前記スロット決定手段は、前記スイッチの状態に基づいて乱数生成手段を選択すると共に、当該乱数生成手段により生成された乱数を用いて前記応答を行う請求項１に記載の非接触ＩＣカード。
【請求項８】
さらに、前記応答に利用した乱数生成手段を示す情報を当該応答に格納する乱数生成通知手段を備え、
前記スロット決定手段は、前記情報が格納された応答を前記リーダライタに送信する請求項１に記載の非接触ＩＣカード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の非接触ＩＣカードを認識するシステムの非接触ＩＣカードに関する。
【背景技術】
【０００２】
従来、電磁誘導方式等を用いてデータの授受を行う非接触ＩＣカードと当該非接触ＩＣカードを認識するリーダライタとの間の通信には、タイムスロット方式が採用されている。これは、複数の非接触ＩＣカードが同時にリーダライタの通信エリア内に存在し、リーダライタからのポーリングに対して複数の非接触ＩＣカードが同時に応答信号を送信した場合、各応答信号が衝突して何れの非接触ＩＣカードもリーダライタと正常に通信することができなくなる問題を解決するためである。
【０００３】
前記タイムスロット方式の通信方法を以下に説明する。
【０００４】
（１）リーダライタは非接触ＩＣカードの存在を確認するため初期要求リクエストを非接触ＩＣカードへ送信する。初期要求リクエストには、非接触ＩＣカードが初期応答可能なタイムスロットの数、即ち「スロット数」が含まれる。
【０００５】
（２）非接触ＩＣカードは初期要求リクエストを受信後、特定時間から開始されるタイムスロット（１〜「スロット数」：以後スロットと称する）へ初期応答を返す。応答するスロットは、非接触ＩＣカード自身で決定する。
【０００６】
（３）リーダライタは非接触ＩＣカードからの初期応答レスポンスの衝突を検出した場合、再度初期要求リクエストを非接触ＩＣカードへ送信することで、タイムスロットをもちいた非接触ＩＣカードの識別処理を新規に再開する。
【０００７】
（４）リーダライタはすべてのスロットにおいて、非接触ＩＣカードからの初期応答レスポンスの衝突を検出しなかった場合、すべての非接触ＩＣカードの認識をすることができ、識別処理のシーケンスを完了する。
【０００８】
また、応答するタイミングをリーダライタが通知するスロットマーカ方式も存在する。当該スロットマーカ方式は、リーダライタが前記タイムスロット方式における初期応答リクエストを送信後、さらに当該リーダライタが各スロット開始のタイミング毎にスロットの開始を示すスロットマーカコマンドを送信する方式である。尚、ＩＣカードが乱数を利用して応答するスロットを決定する方法は同じである。
【０００９】
このようなシステムとしては、無線式識別装置（特許文献１参照）が開示されている。
【００１０】
また、非接触ＩＣカードの認識システム及び認識方法（特開平１１−２０５３３４号公報）においても非接触ＩＣカードの認識方法が示されている。
【特許文献１】特開平９−６９３４号公報
【特許文献２】特開平１１−２０５３３４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかし、前記無線式識別装置（特許文献１参照）では、各々の非接触ＩＣカードが依存することなく、応答信号を送信するスロットを乱数で決定する。このため、複数の非接触ＩＣカードが同じ乱数を生成した場合には、必ず初期応答は衝突してしまう。この場合、リーダライタは再度、初期要求リクエストコマンドを送信することで、タイムスロット決定のための処理を新たに開始する必要があるため、リーダライタによるＩＣカードの識別が遅延する。
【００１２】
また、前記非接触ＩＣカードの認識システム及び認識方法（特許文献２参照）では、電源投入後の最初のリクエストに対しては必ずスロット番号１、即ち1番目のタイムスロットで応答し、２回目以降のリクエストに対しては前記無線式識別装置（特許文献１参照）と同様に乱数により応答するスロット番号を決定する。
【００１３】
この場合でも、複数枚の非接触ＩＣカードを識別する時には、最初のリクエストでは必ず衝突してしまう。従って、同様に、リーダライタは再度、初期要求リクエストコマンドを送信し、タイムスロット決定のための処理を新たに開始する必要があるため、リーダライタによるＩＣカードの識別が遅延する。
【００１４】
本発明は、リーダライタの通信エリア内に複数の非接触ＩＣカードが存在する場合に生じ得るリーダライタによる非接触ＩＣカードの識別の遅延の防止、すなわち、非接触ＩＣカードが初期応答を行う際の当該初期応答の衝突防止を行うことを目的とする。
【課題を解決するための手段】
【００１５】
本発明は、複数のアプリケーションを実行可能であり、リーダライタからのリクエストに対して乱数で決定されるスロットを利用して応答する非接触ＩＣカードを前提としている。ここで、前記アプリケーションとは独立して設けられ、スロットを決定するための乱数を他の乱数生成指示手段とは独立して生成する乱数生成手段を複数備え、乱数生成指示手段は、複数の乱数生成手段のうち、前記応答に用いる乱数生成手段を指定する。スロット決定手段は、乱数生成指示手段が指定する乱数生成手段により生成された乱数を用いてリーダライタに対して応答を行う。
【００１６】
また、乱数生成指示手段は、非接触ＩＣカードに格納される複数のアプリケーションのうち所定の情報により決定されるアプリケーションに基づいて応答に用いる乱数生成手段を指定する構成がある。
【００１７】
また、乱数生成指示手段は、リーダライタからの指示に基づいて乱数生成手段の指定を変更する構成がある。
【００１８】
さらに、リクエストに含まれる、乱数発生手段を指定する乱数生成情報を取得する乱数生成情報取得手段を備え、スロット決定手段は、乱数生成情報により指定される乱数生成手段を利用して乱数を取得し、当該乱数を用いて応答を行う構成としてもよい。
【００１９】
前記構成において、乱数生成情報は、非接触ＩＣカードに格納されるアプリケーションを指定すると共に、スロット決定手段は、乱数生成情報により指定されたアプリケーションに含まれる機能を利用して乱数を取得し、当該乱数を用いて応答を行う構成としてもよい。
【００２０】
さらに、非接触ＩＣカードが、乱数生成手段を構成するアプリケーションをダウンロードする構成としてもよい。
【００２１】
また、複数の乱数生成手段を物理的に選択するためのスイッチを備え、スロット決定手段は、スイッチの状態に基づいて乱数生成手段を選択すると共に、この乱数生成手段により生成された乱数を用いて応答を行う構成としてもよい。
【００２２】
さらに、応答に利用した乱数生成手段を示す情報を当該応答に格納する乱数生成通知手段を備え、スロット決定手段は、情報が格納された応答をリーダライタに送信する構成としてもよい。
【発明の効果】
【００２３】
複数の乱数生成手段を備え、乱数生成指示手段により指定されている乱数生成手段を利用してスロット決定手段が応答を行うため、非接触ＩＣカード単位で異なるスロット決定のためのアルゴリズムを選択できる。従って、同一種の非接触ＩＣカードであっても、リクエストに対して異なるスロットでの応答が可能となり、結果として応答が衝突する確立を低下させることが可能となる。
【００２４】
また、乱数生成指示手段はデフォルトアプリケーションに基づいて応答に用いる乱数生成手段を指定することで、複数のアプリケーションが格納されている場合には、アプリケーションに応じて乱数生成手段を自由に変更可能となる。従って、同一種の非接触ＩＣカードであっても、格納されるアプリケーションに応じて異なるスロットでの応答が可能となり、結果として応答が衝突する確立を低下させることが可能となる。
【００２５】
尚、乱数生成指示手段は、外部の、例えばリーダライタからのコマンドにより、その格納する指定内容を変更可能とした場合には、複数の乱数生成手段から利用する乱数生成手段を、ユーザの意思により自由に設定可能となる。
【００２６】
また、乱数生成通知手段が、非接触ＩＣカードにて利用された乱数生成手段、言い換えると、動作しているアプリケーションの種別を含めて送信することにより、リーダライタは認識できた非接触ＩＣカードにて動作しているアプリケーションを認識可能となる。従って、当該アプリケーションが、リーダライタによって認識されれば十分であるアプリケーションである場合には、他の非接触ＩＣカードの認識の可不可にかかわらずアンチコリジョン処理を早期に終了することが可能となる。尚、ＡＰＰ  Ｄａｔａの最上位ｂｙｔｅに、乱数生成手段を示す情報に換えて、動作するアプリケーションを示す情報を格納してもよい。これにより、リーダライタでは乱数発生手段からではなく直接的に非接触ＩＣカードにて動作しているアプリケーションを認識可能となる。また、リーダライタにおいては、初期要求リクエストに対する応答により非接触ＩＣカードにて動作しているアプリケーションの種別、あるいは乱数生成手段を特定することが可能となる。つまり、ホストは、非接触ＩＣカードの種別の情報を解析することで、どのような非接触ＩＣカードが頻繁に認識されているかといったことを知ることができ、結果として、以後の、リクエストに対する応答の衝突を防止するための対応を行うことが可能となる。
【００２７】
また、非接触ＩＣカードにて、初期要求リクエストに含まれる乱数生成情報を判定することで、リーダライタによる乱数生成手段、即ち乱数生成方法の指定が可能となる。これにより、非接触ＩＣカードに、外部のホストプログラム（リーダライタ）が所望する乱数生成を行わせることが可能となるため、非接触ＩＣカード毎に異なるスロットの決定を行わせる事ができ、リクエストに対する応答の衝突を防止することが可能となる。
【００２８】
また、乱数生成情報がアプリケーションを指定し当該乱数生成情報を乱数生成情報取得手段が取得することで、リーダライタは、非接触ＩＣカードに搭載されるアプリケーションに対して、アプリケーション固有の乱数を生成させることもでき、アプリケーション毎に異なるスロットを選択させる事ができる。従って、上述したような定期乗車券と通常乗車券の非接触ＩＣカードのように、1つの非接触ＩＣカードさえ認識すれば他のカードを認識する必要がない場合などに、非接触ＩＣカードの認識処理を早期に終了させるといったことが可能となる。
【００２９】
また、複数の乱数生成手段を物理的に選択するためのスイッチを備える構成では、非接触ＩＣカードのユーザが外部よりスイッチで乱数の取得方法を指定できるため、非接触ＩＣカードを使用する環境に適した乱数生成方法を選択可能となり、従って、リクエストに対する応答の衝突を防止することが可能となる。
【発明を実施するための最良の形態】
【００３０】
以下、本発明を近接型非接触ＩＣカードの国際規格ＩＳＯ／ＩＥＣ１４４４３に適応させた場合の実施例を説明する。
図１は、リーダライタ１００及び非接触ＩＣカード２００の構成を示す図である。リーダライタ１００は、アンテナ１０１、送受信回路１０２、ＣＰＵ（Central Processing Unit）１０３、リーダライタを制御するためのプログラムの格納されているＲＯＭ（Read Only Memory）１０４、プログラム実行時に例えばワークエリアとして使用されるＲＡＭ（Random Access Memory）１０５より構成されている。
【００３１】
非接触ＩＣカード２００は、アンテナ２０１、送受信回路２０２、ＣＰＵ２０３、リーダライタ１００からのコマンドを処理するための制御プログラムの格納されているＲＯＭ２０４、プログラム実行時に例えばワークエリアとして使用されるＲＡＭ２０５を備える。
【００３２】
さて、ＩＳＯ／ＩＥＣ１４４４３は、例えば公共交通機関の改札ゲートなどに適用できる。より具体的に、図１に示すように、改札ゲートとして機能するリーダライタ１００に乗車券カードとしての機能を有する非接触ＩＣカード２００及び非接触ＩＣカード３００を同時に近接させた場合を想定する。
【００３３】
前記ＩＳＯ／ＩＥＣ１４４４３の非接触ＩＣカードの認識システムにおいては、以下の手順で非接触ＩＣカードの認識が行われる。
【００３４】
まず、改札ゲートであるリーダライタ１００が初期要求リクエストを送信する。初期要求リクエストは、図３に示されるフォーマットになっており、初期要求リクエスト３０１のＰＡＲＡＭ３０２におけるｂｉｔ１〜ｂｉｔ３の３ｂｉｔ３０３においてスロット数（Ｎ）を非接触ＩＣカードに通知する。非接触ＩＣカードは１〜Ｎまでのスロットで応答する。尚、ヘッダ３０４は、初期要求リクエストを示すヘッダであり、ＡＦＩ３０５は非接触ＩＣカードの適用クラスを示す。又、ＣＲＣ（Cyclic Redundancy Check）３０６はヘッダ３０４〜ＰＡＲＡＭ３０２までのＣＲＣである。
【００３５】
今回の説明ではスロット数（Ｎ）を４として説明を行なう。すなわち、初期要求リクエストに対して各非接触ＩＣカード２００及び３００は、１〜４までのスロットのうち一つを選択し、初期応答を行う。
【００３６】
尚、本発明では、ＰＡＲＡＭ３０２のｂｉｔ６〜ｂｉｔ８の３ｂｉｔ３０７は、乱数生成情報をリーダライタ１００から非接触ＩＣカードに通知するための情報とされている。当該情報が、乱数生成手段、あるいは乱数の生成方法を指定しない場合は、ｂｉｔ６〜ｂｉｔ８の値を０として非接触ＩＣカードに通知するが詳細は後述する。
【００３７】
また、初期応答レスポンス４０１は、図４に示されるフォーマットになっており、非接触ＩＣカード２００、３００は、カードを識別するためのカード固有ＩＤ４０３（ＰＵＰＩ：Pseudo-Unique PICC Identifier）、カードに搭載されているアプリケーション固有情報を通知するためのＡＰＰ  Ｄａｔａ４０４、及び、リーダライタ１００にプロトコル情報を通知するためのＰｒｏｔｏｃｏｌ  Ｉｎｆ４０５を設定してリーダライタ１００に応答を行う。尚、ヘッダ４０２は初期応答を示すヘッダであり、ＣＲＣ４０６はヘッダ４０２〜Ｐｒｏｔｏｃｏｌ  Ｉｎｆ４０５までのＣＲＣである。
【００３８】
各非接触ＩＣカード２００及び３００からの初期応答レスポンスを受け取ったリーダライタ１００は、受信した初期応答レスポンスのＣＲＣの値を計算し、当該初期応答レスポンスに格納されている値と比較することで、衝突発生の有無を判定する。比較した結果が一致した場合には衝突は発生しておらず、一致しない場合には衝突が発生していると判定可能である。
【００３９】
尚、本発明ではＡＰＰ  Ｄａｔａ４０４の４ｂｙｔｅ中、最上位ｂｙｔｅ４０７を乱数生成方法の通知に使用する。ただし、当然のごとく、ＡＰＰ  Ｄａｔａ４０４のみでなく、カード固有ＩＤ４０３（ＰＵＰＩ）の最上位ｂｙｔｅにこの乱数生成方法の数値を包含したＰＵＰＩとしてもかまわない。つまり、ホストとの取り決めによって通知方法の定義が可能である。
【００４０】
さて、図２の、リーダライタと非接触ＩＣカードとの通信状態を示すタイムチャートにおける、一回目のカード識別処理２８０において、リーダライタ１００が初期要求リクエストＲ１を送信する。初期要求リクエストに対して非接触ＩＣカード２００及び非接触ＩＣカード３００が、乱数としてそれぞれ「１」を生成したときには、スロット１（２０３）にて応答する。当該初期応答レスポンスは、それぞれＡ２１、Ａ３１で示される。この場合、同一のスロット１、つまり同一のタイミングで初期応答レスポンスを送信するため、リーダライタ１００は、当該初期応答レスポンスの衝突を検出する。従って、再度、カード識別処理を再開する。
【００４１】
二回目の識別処理２９０において、リーダライタ１００が初期要求リクエストＲ２を送信する。初期要求リクエストＲ２に対して非接触ＩＣカード２００及び非接触ＩＣカード３００が、乱数として「３」、および「２」を生成したときには、スロット３（２０４）、およびスロット２（２０５）で、それぞれ初期応答レスポンスＡ２２、Ａ３２により応答する。この場合、リーダライタ１００は衝突を検出しないため、すべての非接触ＩＣカードの識別を行なうことができ、識別処理を完了する。
【００４２】
（実施の形態１）
本実施の形態１に係る非接触ＩＣカードは、図５に示すように、乱数を発生する乱数生成手段１（２１１）、乱数生成手段２（２１２）、当該複数の乱数生成手段１（２１１）、２（２１２）のうち、どの乱数生成手段を利用するかを指定する情報を保持する乱数生成指示手段２０６、及び乱数生成指示手段２０６が指定する乱数生成手段により生成された乱数を用いてリーダライタに応答するスロット決定手段２１４より構成される。尚、ここに言う乱数とは、リーダライタからの初期要求リクエストが送信された際に、このリクエストに応答を行うスロットを決定するために使用する乱数である。尚、上記乱数生成手段は、非接触ＩＣカードに格納されるアプリケーションとは独立して設けられている。ここで言う独立とは、ハードウェア、あるいはアプリケーションとは別のソフトウェアであることを意味する。また、前記乱数生成手段１（２１１）と乱数生成手段２（２１２）は、乱数の生成をそれぞれ独立して行うものである。
【００４３】
ここでは、公共交通機関の改札ゲートに適用した場合を考え、非接触ＩＣカード２００は定期乗車券ＩＣカード、非接触ＩＣカード３００は通常乗車券ＩＣカードとし、その２枚のＩＣカードがリーダライタ１００となる改札ゲートを通過する時の状態を検証する。
【００４４】
図７は、非接触ＩＣカード２００、及び非接触ＩＣカード３００を公共交通機関に適用した時に実行する処理のフローチャートである。
【００４５】
ここで、非接触ＩＣカード２００、及び非接触ＩＣカード３００の乱数生成手段１（２１１）における乱数生成方法、乱数生成手段２（２１２）における乱数生成方法は、それぞれ例えば以下の規定１、規定２に基づいて行われる。
【００４６】
・乱数生成手段１における乱数生成方法：１のみ生成する・・・(規定１)
・乱数生成手段２における乱数生成方法：乱数は２以上からスロット数まで乱数を生成、スロット数が１の場合には乱数を生成しない・・・（規定２）
また、非接触ＩＣカード２００、及び非接触ＩＣカード３００には、それぞれ、非接触ＩＣカードの定期乗車券アプリケーション１、及び、通常乗車券アプリケーション２が搭載されている。さらに、非接触ＩＣカード２００、及び非接触ＩＣカード３００の乱数生成指示手段２０６には、それぞれ、以下の設定１、設定２が保持されている。
【００４７】
・非接触ＩＣカード２００の乱数生成指示手段２０６：乱数生成手段１を利用  する・・・(設定１)
・非接触ＩＣカード３００の乱数生成指示手段２０６：乱数生成手段２を利用する・・・(設定２)
次に、このような条件の下での、非接触ＩＣカード２００の動作を図７のフローチャートに従って説明する。
【００４８】
非接触ＩＣカード２００はリーダライタ１００から初期要求リクエストが送信されてくるのを待機する（ステップＳ１００でＮＯ）。初期要求リクエストを受信した場合（ステップＳ１００でＹＥＳ）、スロット決定手段２１４は、当該リクエストに基づいてスロット数を算出する（図示を省略した）。スロット数は、図３に図示されるＰＡＲＡＭ３０３のｂｉｔ１〜ｂｉｔ３で指定された値に基づいて算出される。このｂｉｔに指定される値の２の乗数がスロット数となる。以下にスロット数の計算式（式１）を示す。
【００４９】
スロット数（Ｎ）=２n・・・式１
（ｎはｂｉｔ１〜ｂｉｔ３であらわされる０から４までの値）
ここで、前記初期要求リクエストに含まれるｎの値が１、即ち算出されるスロット数（Ｎ）は２とする。
【００５０】
続いてスロット数を算出した後、前記スロット決定手段２１４は、乱数生成指示手段２０６に格納されている設定の取得をおこなう（ステップＳ１０１）。前記条件より、取得される設定は設定１、即ち、「乱数生成手段１」である。
【００５１】
次に、前記スロット決定手段２１４は、前記乱数生成指示手段２０６に格納されている情報に基づいて乱数生成手段１を選択（ステップＳ１０２）し、乱数生成手段１より乱数の取得を行う(ステップＳ１０３)。乱数生成手段１によれば、乱数は１のみを生成するので、前記非接触ＩＣカード２００は、スロット１で応答を行う(ステップＳ１０５)。
【００５２】
次に、前記非接触ＩＣカード２００と平行して行われる、非接触ＩＣカード３００の動作を図７のフローチャートに従って説明する。
【００５３】
まず、非接触ＩＣカード３００はリーダライタ１００から初期要求リクエストが送信されてくるのを待機する（ステップＳ１００でＮＯ）。初期要求リクエストを受信した場合（ステップＳ１００でＹＥＳ）、スロット決定手段２１４は、当該リクエストに基づいてスロット数を算出する（式１）。スロット数（Ｎ）は、非接触ＩＣカード２００の場合と同様であるため、２となる。
【００５４】
続いて、前記スロット決定手段２１４は乱数生成指示手段２０６より、乱数生成指示手段２０６に格納されている設定の取得をおこなう（ステップＳ１０１）。前記条件より、取得される設定は設定２、即ち、「乱数生成手段２」である。
【００５５】
続いて非接触ＩＣカード３００は、前記乱数生成指示手段２０６に格納されている情報に基づいて乱数生成手段２を選択（ステップＳ１０２）し、乱数生成手段２より乱数の取得を行う(ステップＳ１０４)。乱数生成手段２によれば、乱数は２〜スロット数、すなわち、２から２までの中での乱数を生成するため、生成される乱数は２となり、結果として非接触ＩＣカード３００は、スロット２で応答を行うことになる(ステップＳ１０５)。
【００５６】
以上の処理より、結果として、リーダライタ１００からのスロット数２のリクエストに対して非接触ＩＣカード２００は、スロット番号１に応答し、非接触ＩＣカード３００は、スロット番号２に必ず応答するため、１回のアンチコリジョン処理で全ての非接触ＩＣカードの識別が終了する。
【００５７】
以上のように、複数の乱数生成手段を備え、乱数生成指示手段により指定されている乱数生成手段を利用してスロット決定手段が応答を行うため、非接触ＩＣカード単位で異なるスロット決定のためのアルゴリズムを選択できる。従って、同一種の非接触ＩＣカードであっても、リクエストに対して異なるスロットでの応答が可能となり、結果として応答が衝突する確立を低下させることが可能となる。
【００５８】
ところで、複数のアプリケーションに対応する非接触ＩＣカードにおいては、例えば利用頻度の高いと思われる所定のアプリケーションをデフォルトアプリケーション２２１として、他のアプリケーション２２２とは区別する設定とすることが可能である。つまり、非接触ＩＣカードの認識完了後に、リーダライタが当該非接触ＩＣカードと通信する際に、リーダライタからのアプリケーションの指定がない場合、非接触ＩＣカードでは前記デフォルトアプリケーション２２１が動作するのである。
【００５９】
このような状況において、前記乱数生成指示手段２０６は、前記デフォルトアプリケーションが指定する乱数生成手段を指定するようにしてもよい。
【００６０】
つまり、前記乱数生成指示手段２０６は、前記デフォルトアプリケーションが推奨する乱数生成手段の情報を当該アプリケーションから読み出し、乱数生成指示手段２０６が指示する乱数生成手段として格納するのである。
【００６１】
例えば図５に示すように、アプリケーション２２１が推奨する乱数生成手段は、乱数生成手段１（２１１）であり、アプリケーション２２２が推奨する乱数生成手段は、乱数生成手段２（２１２）であるとする。このような場であって、例えば外部からのコマンドにより、デフォルトアプリケーションが、アプリケーション２２１に設定された場合、前記乱数生成指示手段２０６は、当該アプリケーション２２１に設定されている情報に基づいて、乱数生成手段１（２１１）を格納する。
【００６２】
以上のように、乱数生成指示手段はデフォルトアプリケーションに基づいて応答に用いる乱数生成手段を指定することで、複数のアプリケーションが格納されている場合には、アプリケーションに応じて乱数生成手段を自由に変更可能となる。従って、同一種の非接触ＩＣカードであっても、格納されるアプリケーションに応じて異なるスロットでの応答が可能となり、結果として応答が衝突する確立を低下させることが可能となる。
【００６３】
尚、前記乱数生成指示手段は、外部の、例えばリーダライタからのコマンドにより、その格納する指定内容を変更可能としてもよい。これにより、複数の乱数生成手段から利用する乱数生成手段を、ユーザの意思により自由に設定可能となる。この処理は、例えば新たなアプリケーションを非接触ＩＣカードにインストールした場合に、乱数生成指示手段が指示する先を当該アプリケーションに適応した乱数生成手段に変更する場合などに用いられる。
【００６４】
また、上述した乱数生成指示手段２０６が、デフォルトアプリケーションに応じて乱数生成手段を指定する別の方法として、アプリケーションと乱数生成手段とを対応付けた例えばテーブル等のアプリケーション・乱数対応情報を保持するようにしてもよい。当該アプリケーション・乱数対応情報のテーブルイメージを図６に示す。
【００６５】
図６に示すように、アプリケーション・乱数対応情報６００は、アプリケーション名６０１と乱数生成手段６０２とが対応付けられて格納されており、前記乱数生成指示手段２０６は前記アプリケーション・乱数対応情報６００を参照し、現在デフォルトアプリケーションとして設定されているアプリケーション名６０１に基づいて対応する乱数生成手段６０２を決定する。例えば、デフォルトアプリケーションが通常乗車券６０３であれば、対応する乱数生成手段は乱数生成手段２（６０４）となる。尚、前記アプリケーション名に限らず、例えば後述するアプリケーションＩＤでもよいのは言うまでもない。また、上述したテーブルは一例であり、アプリケーションと乱数生成手段との関連付けができるのであればどのような構成でも良い。
【００６６】
次に、前記非接触ＩＣカードが乱数生成通知手段２１３を備える構成について説明する。
【００６７】
例えば、１枚の定期乗車券非接触ＩＣカード２００と２枚の通常乗車券非接触ＩＣカード３００、非接触ＩＣカード３００と同じアプリケーション搭載の非接触ＩＣカード４００(図示省略)が存在する場合を考える。
【００６８】
この場合、前記と同様にリーダライタ１００からのスロット数２のリクエストに対して非接触ＩＣカード２００はスロット番号１で応答し、非接触ＩＣカード３００と非接触ＩＣカード４００はスロット番号２で必ず応答することになる。ただし、ここでは、前記乱数生成通知手段２１３が、図４で示される初期応答レスポンスのＡＰＰ  Ｄａｔａ４０７の最上位ｂｙｔｅに、利用した乱数生成手段を示す情報を格納して応答する。
【００６９】
前記例では、リーダライタ１００は、スロット番号１にて非接触ＩＣカード２００の応答を問題なく認識し、スロット番号２では、その他の非接触ＩＣカード３００、４００の応答のコリジョンが検出される。つまり正常に認識されるのは非接触ＩＣカード２００のみであるため、通常は再度すべての非接触ＩＣカードについての認識処理を開始する。しかしここでは、前記リーダライタ１００は、非接触ＩＣカード２００を識別できているため、さらに、乱数生成通知手段２１３による通知により、リーダライタは定期乗車券ということを確実に認識可能となる。この例では、通常乗車券ＩＣカードより優先して利用されるべき定期券乗車券ＩＣカードが認識されたのであるから、改札処理が可能となる。
【００７０】
以上のように、乱数生成通知手段が、非接触ＩＣカードにて利用された乱数生成手段、言い換えると、動作しているアプリケーションの種別を含めて送信することにより、リーダライタは認識できた非接触ＩＣカードにて動作しているアプリケーションを認識可能となる。従って、当該アプリケーションが、リーダライタによって認識されれば十分であるアプリケーションである場合には、他の非接触ＩＣカードの認識の可不可にかかわらずアンチコリジョン処理を早期に終了することが可能となる。
【００７１】
尚、ＡＰＰ  Ｄａｔａ４０７の最上位ｂｙｔｅに、乱数生成手段を示す情報に換えて、定期乗車券ＩＣカードを示す情報を格納してもよい。これにより、リーダライタでは乱数発生手段からではなく直接的に非接触ＩＣカードにて動作しているアプリケーションを認識可能となる。
【００７２】
また、リーダライタにおいては、初期要求リクエストに対する応答により非接触ＩＣカードにて動作しているアプリケーションの種別、あるいは乱数生成手段を特定することが可能となる。つまり、ホストは、非接触ＩＣカードの種別の情報を解析することで、どのような非接触ＩＣカードが頻繁に認識されているかといったことを知ることができ、結果として、以後の、リクエストに対する応答の衝突を防止するための対応を行うことが可能となる。
【００７３】
（実施の形態２）
図８は、実施の形態２に係る非接触ＩＣカード２５０の機能ブロック図である。リーダライタ１００は、実施の形態１で示したリーダライタであるため、ここでの説明は省略する。
【００７４】
非接触ＩＣカード２５０は、非接触ＩＣカード２００に乱数生成情報取得手段２０７を追加した構成になっている。尚、乱数生成情報取得手段２０７は、乱数生成情報をリーダライタから取得し、その内容をスロット決定手段に通知する。スロット決定手段は、当該通知に基づいて、非接触ＩＣカード２５０に搭載されている乱数生成手段１、２、或いはアプリケーション７０１、７０２、７０５に対して乱数の生成を要求するが詳細は後述する。
【００７５】
図９は、非接触ＩＣカード２５０の動作を示すフローチャートである。
【００７６】
まず、非接触ＩＣカード２５０はリーダライタ１００から初期要求リクエストが送信されてくるのを待機する（ステップＳ２００でＮＯ）。初期要求リクエストを受信した場合（ステップＳ２００でＹＥＳ）、スロット決定手段７００は、当該リクエストに基づいてスロット数を算出する（図示を省略した）。ここで算出されたスロット数（Ｎ）は２とする。またさらに、前記乱数生成情報取得手段２０７は、前記初期要求リクエストより乱数生成情報を取得する。当該乱数生成情報は、図３に図示されるＰＡＲＡＭ３０２のｂｉｔ６〜ｂｉｔ８の３ｂｉｔ３０７で示され、応答に利用すべき乱数生成手段を指定する情報である。
【００７７】
ここで、取得した乱数生成情報に乱数の生成手段の指定がある場合（ｂｉｔ６〜ｂｉｔ８が０以外の場合）、ステップＳ２０３へ進み（ステップＳ２０１でＹＥＳ）、指定がない場合（ｂｉｔ６〜ｂｉｔ８が０の場合）、ステップＳ１０１へ進む（ステップＳ２０１のＮＯ）。尚、ステップ１０１は、前記実施の形態１にて示した図７におけるステップＳ１０１であり、非接触ＩＣカード２５０は、前記指定が無い場合には、乱数生成指示手段２０６より設定の取得をおこなう。その後、取得された設定に基づき乱数を生成して応答するのは、前記実施の形態１にて述べたとおりである。
【００７８】
さて、前記初期要求リクエストの乱数生成情報が乱数生成手段１を示している場合、前記スロット決定手段２１４は、前記乱数生成手段１（２１１）より乱数を取得する（ステップＳ２０４）。
【００７９】
前記乱数生成情報が乱数生成手段２を示している場合、前記スロット決定手段２１４は、前記乱数生成手段２（２１２）より乱数を取得する（ステップＳ２０５）。
【００８０】
以後、スロット決定手段７００は、前記取得した乱数に基づいて、応答すべきスロットを決定し、当該スロットを用いて応答する（ステップＳ２０７）。
【００８１】
以上のように、非接触ＩＣカードにて、初期要求リクエストに含まれる乱数生成情報を判定することで、リーダライタによる乱数生成手段、即ち乱数生成方法の指定が可能となる。これにより、非接触ＩＣカードに、外部のホストプログラム（リーダライタ）が所望する乱数生成を行わせることが可能となるため、非接触ＩＣカード毎に異なるスロットの決定を行わせる事ができ、リクエストに対する応答の衝突を防止することが可能となる。
【００８２】
尚、前記乱数生成情報がアプリケーションを示している場合には、前記スロット決定手段７００は、例えば前記ＲＡＭ２０５に格納されるアプリケーション７０１に対して乱数の生成要求を行い、当該アプリケーションに備えられたアプリケーション固有の乱数発生関数７０３より、乱数を取得する（ステップＳ２０６）。尚、前記乱数発生関数７０３は乱数発生手段の一態様である。
【００８３】
以後、スロット決定手段７００は、前記取得した乱数に基づいて、応答すべきスロットを決定し、当該スロットを用いて応答する（ステップＳ２０７）。
【００８４】
当然、非接触ＩＣカードが複数のアプリケーション７０１、７０２、７０５を備えている場合には、リーダライタは、前記乱数生成情報としてアプリケーションを特定する情報である例えばアプリケーションＩＤを格納してもよい。当該アプリケーションＩＤに基づいて前記乱数生成情報取得手段２０７が、対応するアプリケーション固有の例えば乱数発生関数７０４より乱数を取得するのである。また、前記アプリケーション自体が乱数発生手段を構成し、他のアプリケーションと同様に、外部よりダウンロード可能としてもよい。
【００８５】
以上のように、乱数生成情報がアプリケーションを指定し、当該乱数生成情報を乱数生成情報取得手段が取得することで、リーダライタは、非接触ＩＣカードに搭載されるアプリケーションに対して、アプリケーション固有の乱数を生成させることもでき、アプリケーション毎に異なるスロットを選択させる事ができる。従って、上述したような定期乗車券と通常乗車券の非接触ＩＣカードのように、1つの非接触ＩＣカードさえ認識すれば他のカードを認識する必要がない場合などに、非接触ＩＣカードの認識処理を早期に終了させるといったことが可能となる。
【００８６】
（実施の形態３）
図１０Ａは、実施の形態３に係る非接触ＩＣカード２６０の機能ブロック図であり、図１０Ｂは、スイッチ手段の一例を示す図である。尚、リーダライタ１００は、実施の形態１で示したリーダライタと同様であるため、ここでの説明は省略する。
【００８７】
非接触ＩＣカード２６０は、非接触ＩＣカード２００にスイッチ読取手段２０８を追加した構成になっている。スイッチ読取手段２０８は、スイッチのＯＦＦ又は、ＯＮの状態によりＣＰＵ２０３に伝える信号を変化させる。ＣＰＵ２０３は通知される信号により、乱数生成手段１または、乱数生成手段２を選択することになる。ここでは、スイッチがＯＦＦの時にはＣＰＵ２０３に伝える信号がプラスの電圧となり、その場合、乱数生成手段１（２１１）が選択され、また、スイッチがＯＮの時にはＣＰＵ２０３に伝える信号がゼロの電圧となり、その場合、乱数生成手段２（２１２）が選択されるものとする。今回の説明ではＣＰＵ２０３に対する電圧の変化で乱数生成手段の選択を行うような構成にしたが、ＣＰＵ２０３での判定が可能な構成であれば電圧変化の構成以外でもかまわない。
【００８８】
図１１は、非接触ＩＣカード２６０の動作を示すフローチャートである
まず、非接触ＩＣカード２６０はリーダライタ１００から初期要求リクエストが送信されてくるのを待機する（ステップＳ３００でＮＯ）。初期要求リクエストを受信した場合（ステップＳ３００でＹＥＳ）、スロット決定手段９００は、当該初期要求リクエストに基づいてスロット数を算出する（図示を省略した）。尚、ここでの、スロット数（Ｎ）は２とする。
【００８９】
続いて、前記スロット決定手段９００はスイッチ読取手段２０８より、設定の取得をおこなう（ステップＳ３０１）。その後、取得された設定に基づき使用する乱数生成手段を決定する（ステップＳ３０２）。
【００９０】
設定がＯＦＦの場合には、乱数生成手段１（２１１）による乱数の取得を行う（ステップＳ３０３）。
【００９１】
設定がＯＮの場合には、乱数生成手段２（２１２）による乱数の取得を行う（ステップＳ３０４）。
【００９２】
その後、取得された乱数に基づいたスロット番号で初期応答を行う（ステップＳ３０５）。
【００９３】
以上のように、非接触ＩＣカードのユーザが外部よりスイッチで乱数の取得方法を指定できるため、非接触ＩＣカードを使用する環境に適した乱数生成方法を選択可能となり、従って、リクエストに対する応答の衝突を防止することが可能となる。
【００９４】
尚、前記スイッチの状態に基づいて、上述したデフォルトアプリケーションを切り替えるようにしても良い。前記実施の形態１の後段で述べた、デフォルトアプリケーションが決定することで乱数生成手段が決定する構成では、スイッチによって乱数生成手段を決定するのと同様の効果がある。
【産業上の利用可能性】
【００９５】
本発明に係る非接触ＩＣカードは、応答が衝突する確立を低下させることが可能となるため、複数の非接触ＩＣカードを認識するシステムに利用する非接触ＩＣカードに有用である。
【図面の簡単な説明】
【００９６】
【図１】本発明の非接触ＩＣカードの構成を示す図。
【図２】リーダライタと非接触ＩＣカードとの通信状態を示すタイムチャート。
【図３】本発明に係る初期要求リクエストのフォーマット図。
【図４】本発明に係る初期応答レスポンスのフォーマット図。
【図５】本発明の実施の形態１に係る非接触ＩＣカードの機能ブロック図。
【図６】乱数生成指示手段が格納するアプリケーション・乱数対応情報の一例を示すイメージ図。
【図７】本発明の実施の形態１に係る非接触ＩＣカードの処理を示すフローチャート。
【図８】本発明の実施の形態２に係る非接触ＩＣカードの機能ブロック図。
【図９】本発明の実施の形態２に係る非接触ＩＣカードの処理を示すフローチャート。
【図１０】本発明の実施の形態３に係る非接触ＩＣカードの機能ブロック図及び、スイッチ手段の一例を示す図。
【図１１】本発明の実施の形態３に係る非接触ＩＣカードの処理を示すフローチャート。
【符号の説明】
【００９７】
１００  リーダライタ
１０１  アンテナ
１０２  送受信回路
１０３  ＣＰＵ
１０４  ＲＯＭ
１０５  ＲＡＭ
２００  非接触ＩＣカード
２０１  アンテナ
２０２  送受信回路
２０３  ＣＰＵ
２０４  ＲＯＭ
２０５  ＲＡＭ
２０６  乱数生成指示手段
２０７  乱数生成方法取得手段
２０８  スイッチ読取手段
２１１  乱数生成手段１
２１２  乱数生成手段２
２１３  乱数生成通知手段
２１４  スロット決定手段
３００  非接触ＩＣカード
【図１】
2004185601.tif 000003
【図２】
2004185601.tif 000004
【図３】
2004185601.tif 000005
【図４】
2004185601.tif 000006
【図５】
2004185601.tif 000007
【図６】
2004185601.tif 000008
【図７】
2004185601.tif 000009
【図８】
2004185601.tif 000010
【図９】
2004185601.tif 000011
【図１０】
2004185601.tif 000012
【図１１】
2004185601.tif 000013