(57)【要約】【課題】複数のICカードを的確に検出できるようにする。【解決手段】各ICカードは乱数RNDを生成し、その値を基にポーリング待ち回数Ｒを更新する。各ICカードは、リーダライタからポーリングが送信される度にポーリングの受信回数をカウントし、ポーリング待ち回数Ｒとリーダライタによるポーリングの受信回数Ｋとが一致した時に、はじめてリーダライタにレスポンスを送信する。各ICカードは、リーダライタにレスポンスを送信すると再度乱数RNDを生成して、新たな乱数RNDを基にポーリング待ち回数Ｒを更新する。本発明は、情報処理装置に適用することができる。【選択図】図５
2010206437.tif 000002
【特許請求の範囲】
【請求項１】
タイムスロットを用いて通信をする他の情報処理装置からのポーリングを受信し、そのポーリングに対するレスポンスを前記他の情報処理装置に送信する通信手段と、
前記他の情報処理装置が１つの前記タイムスロットを使用する場合、前記通信手段に受信される前記ポーリングの回数が閾値未満の間は、前記通信手段による前記レスポンスの送信を禁止し、前記ポーリングの回数が前記閾値と一致したとき、前記通信手段による前記レスポンスの送信を許可する通信制御を行う制御手段と
を備える情報処理装置。
【請求項２】
前記制御手段は、
さらに、前記通信手段から前回の前記レスポンスが送信される毎に、
前記閾値を更新し、更新後の前記閾値を用いて前記通信制御を行う、
ことを繰り返す
請求項１に記載の情報処理装置。
【請求項３】
前記制御手段は、前記通信手段から前記レスポンスが送信された後にさらに乱数を発生させ、その乱数を用いて前記閾値を更新する
請求項２に記載の情報処理装置。
【請求項４】
前記他の情報処理装置は、リーダライタとして構成され、
前記情報処理装置は、IC(Integrated Circuit)カードとして構成される
請求項１に記載の情報処理装置。
【請求項５】
タイムスロットを用いて通信をする他の情報処理装置からのポーリングを受信し、そのポーリングに対するレスポンスを前記他の情報処理装置に送信する通信手段を備える情報処理装置が、
前記他の情報処理装置が１つの前記タイムスロットを使用する場合、前記通信手段に受信される前記ポーリングの回数が閾値未満の間は、前記通信手段による前記レスポンスの送信を禁止し、前記ポーリングの回数が前記閾値と一致したとき、前記通信手段による前記レスポンスの送信を許可する
ステップを含む情報処理方法。
【請求項６】
タイムスロットを用いて通信をする他の情報処理装置からのポーリングを受信し、そのポーリングに対するレスポンスを前記他の情報処理装置に送信する通信手段を備える情報処理装置を制御するコンピュータに、
前記他の情報処理装置が１つの前記タイムスロットを使用する場合、前記通信手段に受信される前記ポーリングの回数が閾値未満の間は、前記通信手段による前記レスポンスの送信を禁止し、前記ポーリングの回数が前記閾値と一致したとき、前記通信手段による前記レスポンスの送信を許可する
ステップを含む制御処理を実行させるプログラム。
【請求項７】
タイムスロットを用いて他の情報処理装置と通信をし、前記他の情報処理装置を検出するためにポーリングを送信する第１の情報処理装置と、
前記第１の情報処理装置からのポーリングを受信し、そのポーリングに対するレスポンスを前記第１の情報処理装置に送信する通信手段と、
前記第１の情報処理装置が１つの前記タイムスロットを使用する場合、前記通信手段に受信される前記ポーリングの回数が閾値未満の間は、前記通信手段による前記レスポンスの送信を禁止し、前記ポーリングの回数が前記閾値と一致したとき、前記通信手段による前記レスポンスの送信を許可する通信制御を行う制御手段と
を備える第２の情報処理装置と
を含む情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及び方法、プログラム、並びに情報処理システムに関し、特に、複数のICカードを的確に検出できるようになった、情報処理装置及び方法、プログラム、並びに情報処理システムに関する。
【背景技術】
【０００２】
近接通信を行うシステムとしては、例えば、IC(Integrated Circuit)カードシステムが広く知られている。ICカードシステムにおいては、リーダライタは、自身にかざされたICカードもしくは複数の機能を持つICカードエミュレーション機器の検出を試みる。なお、以下、右のICカードのみならず、複数の機能を持つICカードエミュレーション機器も含めて、単に、ICカードと称する。リーダライタは、ICカードを検出するための制御信号（以下、ポーリングと称する）を送信する。ICカードは、リーダライタからのポーリングに対するレスポンスを送信する。リーダライタは、このレスポンスを受信することで、ICカードを検出することができる。
【０００３】
このように、検出時にポーリングを送信する近接通信を行う通信規格としては、例えば、次のような規格が存在する。即ち、ISO/IEC（International Organization for Standardization/International Electrotechnical Commission）14443で規定されるTYPE-AやTYPE-Bという規格が存在する。また、JIS（Japanese Industrial Standards）X 6319-4という規格が存在する。これらの規格による近接通信においては、複数の異なる通信方式のICカードの検出能力向上と消費電力削減のために、ポーリングが短時間で繰り返し送信される。
【０００４】
JIS X 6319-4には、複数のICカードに対する通信処理において、タイムスロットを設けて、ポーリングを送信するタイミングをICカード間で意図的にずらす方式（以下、タイムスロット方式と称する）が規定されている。タイムスロット方式では、１つのポーリング送信処理においてその送信タイミング（タイムスロット）が時間的に複数設けられている。その結果、信号の送信タイミングが分散されるので、信号衝突の発生を抑制することができる（例えば特許文献１参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−２１５２２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、タイムスロット方式によるポーリングの繰り返し時間を短縮するために、タイムスロットを１つに限定して動作させるリーダライタが存在する。このようなリーダライタに対して複数のICカードがかざされると、リーダライタには、各ICカードからのレスポンスが同時に送信されてくる。その結果、各ICカードからのレスポンスが衝突する可能性が高くなり、リーダライタが各ICカードを正しく検出することが困難となる。
【０００７】
本発明は、このような状況に鑑みてなされたものであり、複数のICカードを的確に検出できるようにするものである。
【課題を解決するための手段】
【０００８】
本発明の一側面の情報処理装置は、タイムスロットを用いて通信をする他の情報処理装置からのポーリングを受信し、そのポーリングに対するレスポンスを前記他の情報処理装置に送信する通信手段と、前記他の情報処理装置が１つの前記タイムスロットを使用する場合、前記通信手段に受信される前記ポーリングの回数が閾値未満の間は、前記通信手段による前記レスポンスの送信を禁止し、前記ポーリングの回数が前記閾値と一致したとき、前記通信手段による前記レスポンスの送信を許可する通信制御を行う制御手段とを備える。
【０００９】
前記制御手段は、さらに、前記通信手段から前回の前記レスポンスが送信される毎に、前記閾値を更新し、更新後の前記閾値を用いて前記通信制御を行う、ことを繰り返す。
【００１０】
前記制御手段は、前記通信手段から前記レスポンスが送信された後にさらに乱数を発生させ、その乱数を用いて前記閾値を更新する。
【００１１】
前記他の情報処理装置は、リーダライタとして構成され、前記情報処理装置は、IC(Integrated Circuit)カードとして構成される。
【００１２】
本発明の一側面の情報処理方法およびプログラムは、上述した本発明の一側面の情報処理装置に対応する方法およびプログラムである。
【００１３】
本発明の一側面の情報処理装置および方法、並びにプログラムにおいては、タイムスロットを用いて通信をする他の情報処理装置からのポーリングが受信され、そのポーリングに対するレスポンスが前記他の情報処理装置に送信される通信手段を備える情報処理装置またはそれを制御するコンピュータにより、前記他の情報処理装置が１つの前記タイムスロットを使用する場合、前記通信手段に受信される前記ポーリングの回数が閾値未満の間は、前記通信手段による前記レスポンスの送信が禁止され、前記ポーリングの回数が前記閾値と一致したとき、前記通信手段による前記レスポンスの送信が許可される。
【００１４】
本発明の一側面の情報処理システムは、上述の本発明の一側面の情報処理装置に対応する１以上の情報処理装置から構成されるシステムである。
【００１５】
本発明の一側面の情報処理システムにおいては、第１の情報処理装置により、タイムスロットを用いて他の情報処理装置と通信がされ、前記他の情報処理装置を検出するためにポーリングが送信され、第２の情報処理装置により、前記第１の情報処理装置からのポーリングが受信され、そのポーリングに対するレスポンスが前記第１の情報処理装置に送信され、前記第１の情報処理装置により１つの前記タイムスロットが使用される場合、受信される前記ポーリングの回数が閾値未満の間は、前記レスポンスの送信が禁止され、前記ポーリングの回数が前記閾値と一致したとき、前記レスポンスの送信が許可される。
【発明の効果】
【００１６】
以上のごとく、本発明によれば、複数のICカードを的確に検出できるようになる。
【図面の簡単な説明】
【００１７】
【図１】本発明が適用される情報処理システムの一実施形態としての通信システムを説明する図である。
【図２】ICカード１２の構成例を示す図である。
【図３】レスポンス送信処理のうち、ICカード１２側で実行されるレスポンス送信処理の一例を説明するフローチャートである。
【図４】ICカード１２−１によるレスポンス送信処理の一連の流れを説明するための図である。
【図５】リーダライタ１１と、２つのICカード１２−１，１２−２とのそれぞれの間における、相互の処理の関係の一例を説明するフローチャートである。
【図６】本発明が適用される情報処理装置のハードウエア構成例を示すブロック図である。
【発明を実施するための形態】
【００１８】
＜１．本発明の概要の説明＞
【００１９】
まず、本発明の理解を容易なものとすべく、その概要について説明する。
【００２０】
リーダライタによるポーリングのタイムスロットの指定値が０で指定されて、返信スロットが１つとなっている場合、リーダライタに複数のICカードが一斉にかざされると、各ICカードからのレスポンスが衝突する場合がある。
【００２１】
このような場合の衝突を回避するために、本発明においては、各ICカードは、レスポンスを送信するタイミングを、従来のようにポーリングの受信毎に直ちにとするのではなく、Ｒ回目（Ｒは１以上の整数値）のポーリングの受信まで待つことにする。この回数Ｒを、以下、ポーリング待ち回数Ｒと称する。即ち、各ICカードは、リーダライタからのポーリングを受信する度に、ポーリングの受信回数Ｋをカウントする。そして、各ICカードは、保持していたポーリング待ち回数Ｒとポーリングの受信回数Ｋとが一致した時に、レスポンスをリーダライタに送信する。
【００２２】
なお、リーダライタ側で複数のICカードのレスポンスの衝突を防止する必要があるので、各ICカードが用いるポーリング待ち回数Ｒは、何れかのタイミングで、相異なる値になる必要がある。このため、各ICカードは、適当なタイミングで、例えばレスポンスを送信する度に、ポーリング待ち回数Ｒの設定を更新する。更新手法自体は、特に限定されず、例えば、巡回符号等を用いて数値を可変させたり、乱数を発生させることで数値を可変させる数値可変部を設ける。そして、数値可変部により発生された数値を用いてポーリング待ち回数Ｒを設定または更新するという手法を採用することもできる。例えば、後述する本実施の形態では、乱数を発生させ、その乱数を用いてポーリング待ち回数Ｒを設定または更新するという手法が採用されている。
【００２３】
なお、以下、このようなICカード側の一連の処理、即ち、各ICカードが、ポーリング待ち回数Ｒを設定し、ポーリング待ち回数Ｒとポーリングの受信回数Ｋとが一致したときにレスポンスを送信するまでの一連の処理を、レスポンス送信処理と称する。
【００２４】
複数のICカードがリーダライタと近接通信を行う場合でも、各ICカードはレスポンス送信処理を繰り返し実行することによって、リーダライタに対してランダムに応答することができる。その結果、複数のICカードによるレスポンスの衝突の可能性を抑制できるようになるので、リーダライタが各ICカードを的確に検出することができるようになる。
【００２５】
＜２．本発明の実施の形態＞
【００２６】
以下、図１乃至図５を参照して、本発明の実施の形態について説明する。
【００２７】
[本発明が適用される通信システム]
【００２８】
図１は、本発明が適用される情報処理システムの一実施形態としての通信システムを説明する図である。
【００２９】
図１の例の通信システムは、リーダライタ１１と、ICカード１２−１乃至１２−N（Nは１以上の自然数）とから構成されている。
【００３０】
なお、以下、ICカード１２−１乃至１２−Nを個々に区別する必要がない場合、これらをまとめてICカード１２と称する。
【００３１】
リーダライタ１１とICカード１２との間では、電磁波を利用して非接触でのデータの送受信が行われる。
【００３２】
なお、通信方式は、本実施の形態では、JIS X 6319-4もしくはNFCIP（Near Field Communication Interface and Protocol）-1が採用されるが、タイムスロット方式を採用する方式であれば特に限定されない。
【００３３】
ICカード１２がかざされるなどしてリーダライタ１１に近接すると、リーダライタ１１は電磁波を放射することで、ICカード１２との間での通信処理を開始する。
【００３４】
[ICカードの構成例]
【００３５】
図２は、ICカード１２の構成例を示す図である。
【００３６】
図２の例では、ICカード１２は、ICチップモジュール２１およびアンテナ２２から構成されている。ICチップモジュール２１には、ASK（Amplitude Shift Keying)変復調部３１、およびBPSK(Binary Phase Shift Keying)変復調部３２が設けられている。ICチップモジュール２１にはまた、CPU（Central Processing Unit）３３、およびEEPROM（Electrically Erasable and Programmable Read Only Memory）３４が設けられている。
【００３７】
ASK変復調部３１は、アンテナ２２を介して入力された変調波（ASK変調波）を検波して復調する。ASK変復調部３１は、復調後のデータを、BPSK変復調部３２に供給する。BPSK変復調部３２は、ASK変復調部３１から供給されるデータのBPSK復調（マンチェスタコードのデコード）を行い、その結果得られるデータ（例えば、本例では図１のリーダライタ１１からのポーリング等）をCPU３３に供給する。
【００３８】
CPU３３は、BPSK変復調部３２から供給されたデータに基づく所定の処理を実行する。例えば、CPU３３は、後述するレスポンス送信処理を実行する。
【００３９】
EEPROM３４は、不揮発性のメモリである。ICカード１２が、図１のリーダライタ１１との通信を終了し、その電力供給が停止された後も、EEPROM３４は、データを記憶し続けることができる。
【００４０】
一方、ICカード１２から図１のリーダライタ１１へデータ（例えば本例では、ポーリングに対するレスポンス等）を送信する場合には、CPU３３は、EEPROM３４から対象のデータを読み出し、BPSK変復調部３２に供給する。BPSK変復調部３２は、CPU３３から供給されたデータをBPSK変調し、変調後のデータをASK変復調部３１に供給する。ASK変復調部３１は、BPSK変復調部３２から供給されたデータに対応して、例えば、図示しない所定のスイッチング素子に対するオン／オフ制御を実行する。オン／オフ制御とは、スイッチング素子の状態を、所定のタイミングで、オン状態からオフ状態へ遷移させたり、或いは、オフ状態からオン状態へ遷移させる制御のことをいう。
【００４１】
スイッチング素子の状態がオン状態である場合には、所定の負荷がアンテナ２２に並列に接続され、また、オフ状態の場合にはその接続が切れる。従って、ASK変復調部３１がスイッチング素子に対するオン／オフ制御を実行することによって、アンテナ２２の負荷が変動する。このようにして、ASK変復調部３１は、アンテナ２２の負荷を変動させることにより、アンテナ２２を介して受信している変調波をASK変調し、その変調波を、アンテナ２２を介して、図１のリーダライタ１１側のアンテナに送信する。
【００４２】
逆に言えば、リーダライタ１１は、ICカード１２からデータを受信するとき、即ち、ICカード１２に所定のデータを送信させるとき、変調波の最大振幅を一定にして変調波（キャリア）を出力する。このリーダライタが出力する変調波（キャリア）が、ICカード１２のアンテナ２２の負荷の変動によりASK変調（負荷変調）されることになる。
【００４３】
なお、ICカード１２の中には、電源としてバッテリを搭載しているものも存在する。この場合、このバッテリからICカード１２の各部に対して電力が供給される。ただし、本実施の形態では、ICカード１２の各部への電力の供給手法は例えば次の通りであるとする。即ち、本実施の形態のICカード１２は、コイルとなるアンテナ２２および図示しないコンデンサにより構成されるＬＣ回路を有しており、このＬＣ回路において、リーダライタ１１側のアンテナが放射した電磁波の一部が電気信号に変換される。さらに、本実施の形態のICカード１２において、その電気信号（変調波）が整流平滑化されることで包絡線検波が行われる。その結果得られる信号が図示しない電圧レギュレータに供給されて安定化され、その結果得られる直流電圧の信号（それによる電力）がICカード１２の各部に供給される。
【００４４】
なお、ICカード１２の構成は、図２の例に限定されず、ポーリングとそのレスポンスを含む各種情報をリーダライタ１１と通信できる構成を有すれば足りる。例えば、非接触ICカード１２は、アンテナも含めた構成要素が１チップに格納されたICから構成されていてもよい。
【００４５】
また、ICカード１２の形状はカード状のものでなくてもよい。即ち、ICカード１２とは、説明の便宜上用いた呼称であり、上述したようなまたは後述するような機能を意図するものである。ICカード１２と同様の機能を提供するものとして、例えば、Felicaチップ(登録商標)などがある。即ち、例えば携帯端末にFelicaチップを搭載すれば、この携帯端末を非接触ICカード１２として用いることができる。
【００４６】
以上のように構成されるリーダライタ１１と、ICカード１２との間で、各種情報が、電磁波を媒体として送受信されることになる。以下、そのような送受信処理のうち、レスポンス送信処理の一例について図３乃至図５のフローチャートを参照して説明する。
【００４７】
[レスポンス送信処理]
【００４８】
図３は、レスポンス送信処理のうち、ICカード１２側で実行されるレスポンス送信処理の一例を説明するフローチャートである。
【００４９】
図４、図５は、リーダライタ１１とICカード１２との相互の処理の関係の一例を説明するフローチャートである。
【００５０】
即ち、図４は、ポーリング待ち回数Ｒ＝１となったときに行われる、ICカード１２−１によるレスポンス送信処理の一連の流れを説明するための図である。また、図５は、リーダライタ１１と複数のICカード（ICカード１２−１，ICカード１２−２）間における、相互の処理の関係を説明する図である。
【００５１】
以下、図３を参照して、CPU３３によるレスポンス送信処理について説明する。リーダライタ１１とICカード１２の相互の処理関係は、図４、図５の対応するステップを参照することで理解することが可能である。
【００５２】
図３に示されるレスポンス送信処理の初回の処理は、リーダライタ１１からICカード１２へ電力が供給されると開始する。なお、２回目以降については、原則として、前回のレスポンス送信処理が終了した後のタイミングで実行される。
【００５３】
図３のレスポンス送信処理のステップＳ１において、CPU３３は、乱数RNDを生成し、CNT＝０に初期設定し、Ｒ＝RNDmod3とする。ここで、CNTとは、ポーリングの受信回数Ｋ（正確には、前回までのＫ−１）を数えるカウンタ値（以下、ポーリングカウンタ値と称する）を示している。また、Ｒはポーリング待ち回数を示している。したがって、図３の例では、ポーリング待ち回数Ｒとしては、乱数RNDを３で除算した値が設定される。即ち、乱数RNDの取り得る範囲が１乃至３である場合には、ポーリング待ち回数Ｒは、０乃至２のうちの何れかの値が設定されることになる。
【００５４】
ステップＳ２において、CPU３３は、リーダライタ１１からのポーリングを受信したか否かを判定する。
【００５５】
リーダライタ１１からのポーリングが受信されない限り、ステップＳ２においてＮＯであると判定されて、処理はステップＳ２に戻され、それ以降の処理が繰り返される。即ち、リーダライタ１１からのポーリングが受信されるまでの間は、ステップＳ２の判定処理が繰り返される。
【００５６】
その後、リーダライタ１１からのポーリングが受信された場合、ステップＳ２においてＹＥＳであると判定されて、処理はステップＳ３に進む。
【００５７】
ステップＳ３において、CPU３３は、タイムスロットの指定値は０であるか否かを判定する。即ち、CPU３３は、リーダライタ１１によるポーリングの返信スロットの数が１で指定されたか否かを判定する。
【００５８】
タイムスロットの指定値が０であった場合、即ち、リーダライタ１１が用いる返信スロットの数が１である場合、ステップＳ３においてＹＥＳであると判定されて、処理はステップＳ４に進む。ただし、ステップＳ４以降の一連の処理については後述する。
【００５９】
これに対して、タイムスロットの指定値が０以外であった場合、即ち、リーダライタ１１が用いる返信スロットの数が複数である場合、ステップＳ３においてＮＯであると判定されて、処理はステップＳ６に進む。
【００６０】
ステップＳ６において、CPU３３は、レスポンスをリーダライタ１１に送信する。即ち、タイムスロットの指定値が０でない場合とは、上述の如く、リーダライタ１１が用いる返信スロットの数が複数であった場合を意味する。このような場合、リーダライタ１１側において、複数のICカード１２の間でレスポンスの衝突が発生する可能性は低くなる。よって、CPU３３は、リーダライタ１１からの１回目のポーリングに対して直ちにレスポンスを送信する。
【００６１】
このようにして、タイムスロットの指定値が０でない場合は、ステップＳ６の処理が終了するとレスポンス送信処理も終了する。
【００６２】
これに対して、タイムスロットの指定値が０である場合とは、リーダライタ１１が用いる返信スロットの数が１つであった場合を意味する。このような場合、リーダライタ１１側において、複数のICカード１２の間でレスポンスの衝突が発生する可能性は高くなる。よって、このような場合、CPU３３は、ステップＳ３においてＮＯであると判定して、ステップＳ４において、Ｒ＝<CNTであるか否かを判定する。即ち、CPU３３は、ポーリングカウンタ値CNTがポーリング待ち回数Ｒ以上であるか否かを判定する。
【００６３】
Ｒ＝<CNTでない場合、即ち、ポーリングカウンタ値CNTがポーリング待ち回数Ｒよりも小さい場合、ステップＳ４においてＮＯであると判定されて、処理はステップＳ５に進む。
【００６４】
ステップＳ５において、CPU３３は、ポーリングカウンタ値CNTを１だけインクリメントする（CNT＝CNT+１）。その後、処理はステップＳ２に戻され、それ以降の処理が繰り返される。即ち、ステップＳ２乃至ステップＳ５の処理が繰り返されることで、ポーリングが受信される度に、ポーリングの受信回数Ｋ（正確には、前回までのＫ−１）を示すポーリングカウンタ値CNTがカウントアップされていく。この間は、レスポンスは送信されない。そして、ポーリングの受信回数Ｋがポーリング待ち回数Ｒと一致した場合、即ち、Ｒ＝<CNTの関係を満たすようになった場合、ステップＳ４においてＹＥＳであると判定されて、処理はステップＳ６に進む。ステップＳ６において、CPU３３は、レスポンスをリーダライタ１１に送信する。これにより、レスポンス送信処理は終了となる。
【００６５】
このように、レスポンス送信処理で用いるポーリングカウンタ値CNT（正確にはCNT-１）は、一種の閾値であると把握することができる。このように把握した場合、レスポンス送信処理とは次のような処理の一例であることがわかる。即ち、ポーリングの受信回数Ｋが閾値未満の間は、レスポンスの送信を禁止し、ポーリングの受信回数Ｋが閾値と一致したとき、レスポンスの送信を許可するという処理の一例が、レスポンス送信処理である。
【００６６】
なお、CPU３３は、レスポンスをリーダライタ１１に送信して（ステップＳ６）、レスポンス送信処理を終了させると、再度、新たなレスポンス送信処理を実行する。即ち、CPU３３は、新たな乱数RNDを生成し、新たな乱数RNDを基にポーリング待ち回数Ｒを更新する（ステップＳ１参照）。そして、CPU１１は、再度リーダライタ１１からのポーリングの送信を待つ（ステップＳ２以降の処理参照）。
【００６７】
[リーダライタとICカードとの相互の処理の関係]
【００６８】
以下、さらに、図４と図５を用いて、リーダライタ１１とICカード１２との相互の処理の観点から、レスポンス送信処理について説明する。なお、以下、ICカード１２によるレスポンス送信処理に対するリーダライタ１１側の処理を、ポーリング送信処理と称する。
【００６９】
図４には、左方から、リーダライタ１１のポーリング送信処理の一例を説明するフローチャートと、ICカード１２−１のレスポンス送信処理の一例を説明するフローチャートとが図示されている。なお、両者の間を結ぶ矢印は、情報の流れを示している。
【００７０】
ICカード１２−１は、レスポンス送信処理を開始すると、新たな乱数RNDを生成して、新たな乱数RNDを基にポーリング待ち回数Ｒを設定または更新する。例えば、図４の例では、乱数RND＝１が生成されたので、ポーリング待ち回数Ｒは１に設定または更新される。
【００７１】
ステップＳ２１において、リーダライタ１１は、ポーリングを送信する。
【００７２】
この場合、ICカード１２−１は、ポーリングを受信すると、ステップＳ２においてＹＥＳであると判定して、処理をステップＳ３に進める。ステップＳ３において、CPU３３は、タイムスロットの指定値は０であるか否かを判定する。
【００７３】
ここでは、リーダライタ１１によるポーリングの返信スロットの数が１で指定されたとする。即ち、指定値は０であるとする。この場合、ステップＳ３においてＹＥＳであると判定されて、処理はステップＳ４に進む。
【００７４】
この段階では、ポーリングカウンタ値CNTがまだ初期値０のままであり、ポーリング待ち回数Ｒ＝１であるので、ステップＳ４の処理でＮＯであると判定されて、ステップＳ５の処理で、ポーリングカウンタ値CNT＝１に更新される(CNT＝CNT+１)。
【００７５】
その後、処理はステップＳ２に戻されて、次のポーリングが受信されるまで、ステップＳ２の判定処理が繰り返されて、ICカード１２−１のレスポンス送信処理は待機状態となる。
【００７６】
リーダライタ１１は、ICカード１２−１をまだ検出できていないので、ステップＳ２１において、ポーリングを再度送信してくる。
【００７７】
この場合、ICカード１２−１は、２回目のポーリングを受信すると、ステップＳ２においてＹＥＳであると判定して、処理をステップＳ３に進める。ステップＳ３において、CPU３３は、タイムスロットの指定値は０であるか否かを判定する。
【００７８】
ここでは、上述の如く、指定値は０であるので、ステップＳ３においてＹＥＳであると判定されて、処理はステップＳ４に進む。
【００７９】
この段階では、ポーリングカウンタ値CNT＝１であり、ポーリング待ち回数Ｒ＝１であるので、ステップＳ４の処理でＹＥＳであると判定されて、処理はステップＳ６に進む。
【００８０】
ステップＳ６において、ICカード１２−１は、レスポンスをリーダライタ１１に送信する。このように、ポーリングカウンタ値CNTとポーリング待ち回数Ｒが一致した時にはじめて、ICカード１２−１は、ポーリングに対するレスポンスをリーダライタ１１に送信する。これにより、レスポンス送信処理は終了となる。
【００８１】
一方、ステップＳ２２において、リーダライタ１１は、ICカード１２−１からのレスポンスを受信する。これにより、リーダライタ１１は、ICカード１２−１を検出できるので、ポーリング送信処理を終了させる。
【００８２】
以上、図４を参照してレスポンス送信処理の具体例について説明した。さらに、以下、図５を参照して、レスポンス処理の別の具体例について説明する。
【００８３】
[リーダライタと複数のICカード間における相互の処理の関係]
【００８４】
図５は、リーダライタ１１と、２つのICカード１２−１，１２−２とのそれぞれの間における、相互の処理の関係の一例を説明するフローチャートである。
【００８５】
図５には、左方から、リーダライタ１１のポーリング送信処理の一例を説明するフローチャートと、ICカード１２−１、１２−２それぞれのレスポンス送信処理の一例を説明するフローチャートとが図示されている。なお、それぞれの間を結ぶ矢印は、情報の流れを示している。
【００８６】
例えば、ユーザが、財布等に２つのICカード１２−１，１２−２を同時に保持し、財布等をリーダライタ１１に近づけた場合に、図５のフローチャートに従った処理が実行される。
【００８７】
ICカード１２−１は、レスポンス送信処理を開始すると、ステップＳ１において、乱数RNDを生成して、新たな乱数RNDを基にポーリング待ち回数Ｒを設定または更新する。例えば、図５の例では、乱数RND＝０が生成されたので、ポーリング待ち回数Ｒは０に設定または更新される。
【００８８】
同様に、ICカード１２−２は、レスポンス送信処理を開始すると、ステップＳ１において、乱数RNDを生成して、新たな乱数RNDを基にポーリング待ち回数Ｒを設定または更新する。例えば、図５の例では、乱数RND＝０が生成されたので、ポーリング待ち回数Ｒは０に設定または更新される。
【００８９】
リーダライタ１１は、ポーリング送信処理のステップＳ２１において、ポーリングを送信する。ここでは、リーダライタ１１によるポーリングの返信スロットの数が１で指定されたとする。即ち、指定値は０であるとする。
【００９０】
この段階では、ICカード１２−１と１２−２は、両者ともポーリングカウンタ値CNTがまだ初期値０のままであり、ポーリング待ち回数Ｒ＝０である。したがって、ICカード１２−１と１２−２はそれぞれ、レスポンス送信処理のステップＳ４の処理でＮＯであると判定される。そして、ステップＳ６の処理で、ICカード１２−１と１２−２はそれぞれレスポンスをリーダライタ１１に送信する。
【００９１】
この場合、返信スロットの数が１つしかないので、リーダライタ１１からのポーリングに対するICカード１２−１と１２−２のレスポンスが衝突してしまう。その結果、リーダライタ１１は、ICカード１２−１と１２−２の何れも正しく検出することができない。このように、ICカード１２−１と１２−２が生成した乱数RNDがたまたま同一になってしまうと、結局従来と同じように、レスポンスの衝突が発生してしまう。
【００９２】
そこで、このような場合、ICカード１２−１，１２−２はそれぞれ、レスポンス送信処理を再度実行する。即ち、ICカード１２−１は、ステップＳ１において、新たな乱数RNDを生成して、新たな乱数RNDを基にポーリング待ち回数Ｒを更新する。例えば、ここでは、新たな乱数RND＝１が生成されたので、ポーリング待ち回数Ｒは０から１に更新される。
【００９３】
一方、ICカード１２−２も、ステップＳ１において、新たな乱数RNDを生成して、新たな乱数RNDを基にポーリング待ち回数Ｒを更新する。例えば、ここでは、新たな乱数RND＝３が生成されたので、ポーリング待ち回数Ｒは０から３に更新される。
【００９４】
このように、今回、ICカード１２−１と１２−２が生成した乱数RNDが異なる値となり、その結果、ポーリング待ち回数Ｒも異なる回数に設定されたとする。
【００９５】
この場合、リーダライタ１１は、ICカード１２−１と１２−２をまだ検出できていないので、ステップＳ２１において、ポーリングを再度送信する。
【００９６】
ICカード１２−１は、この段階では、ポーリングカウンタ値CNT＝０であり、ポーリング待ち回数Ｒ＝１である。したがって、ICカード１２−１のレスポンス送信処理のステップＳ４においてＮＯであると判定されて、ステップＳ５の処理でポーリングカウンタ値CNT＝１に更新される(CNT＝CNT+１)。その後、リーダライタ１１からのポーリングが再度受信されるまで、ICカード１２−１のレスポンス送信処理は待機状態となる。
【００９７】
一方、ICカード１２−２は、この段階では、ポーリングカウンタ値CNT＝０であり、ポーリング待ち回数Ｒ＝３である。したがって、ICカード１２−２のレスポンス送信処理のステップＳ４においてＮＯであると判定されて、ステップＳ５の処理でポーリングカウンタ値CNT＝１に更新される(CNT＝CNT+１)。その後、リーダライタ１１からのポーリングが再度受信されるまで、ICカード１２−２のレスポンス送信処理は待機状態となる。
【００９８】
このように、この段階でも、ICカード１２−１と１２−２との何れからもレスポンスが送信されてこないので、リーダライタ１１は、ICカード１２−１と１２−２をまだ検出できていない。そこで、リーダライタ１１は、ステップＳ２１において、ポーリングを再度送信する。
【００９９】
ICカード１２−１は、この段階では、ポーリングカウンタ値CNT＝１であり、ポーリング待ち回数Ｒ＝１である。ポーリングカウンタ値CNTとポーリング待ち回数Ｒが一致する。したがって、ICカード１２−１は、ステップＳ４の処理でＹＥＳであると判定し、ステップＳ６の処理でレスポンスをリーダライタ１１に送信する。これにより、レスポンス送信処理が終了されるので、再度、新たなレスポンス送信処理が実行される。即ち、ICカード１２−１は、ステップＳ１において、新たな乱数RNDを生成して、新たな乱数RNDを基にポーリング待ち回数Ｒを更新する。例えば、ここでは、新たな乱数RND＝２が生成されたので、ポーリング待ち回数Ｒは１から２に更新される。
【０１００】
この場合、リーダライタ１１は、ステップＳ２２において、ICカード１２−１のレスポンスを受信する。これにより、リーダライタ１１は、ICカード１２−１を検出する。
【０１０１】
一方、ICカード１２−２は、この段階では、ポーリングカウンタ値CNT＝１であり、ポーリング待ち回数Ｒ＝３である。したがって、ICカード１２−２のレスポンス送信処理のステップＳ４においてＮＯであると判定されて、ステップＳ５の処理でポーリングカウンタ値CNT＝２に更新される(CNT＝CNT+１)。その後、リーダライタ１１からのポーリングの受信されるまで、ICカード１２−１のレスポンス送信処理は待機状態となる。
【０１０２】
このようにして、リーダライタ１１は、ICカード１２−１のレスポンスを受信できたので、ICカード１２−１を検出することができた。ただし、ICカード１２−２の検出ができていないので、リーダライタ１１は、ステップＳ２１において、ポーリングを再度送信する。
【０１０３】
ICカード１２−１は、この段階では、ポーリングカウンタ値CNT＝０であり、ポーリング待ち回数Ｒ＝２である。したがって、ICカード１２−１は、ステップＳ４の処理でＮＯであると判定して、ステップＳ５の処理でポーリングカウンタ値CNT＝１に更新する(CNT＝CNT+１)。その後、リーダライタ１１からのポーリングが受信されるまで、ICカード１２−１のレスポンス送信処理は待機状態となる。
【０１０４】
一方、ICカード１２−２は、この段階では、ポーリングカウンタ値CNT＝２であり、ポーリング待ち回数Ｒ＝３である。したがって、ICカード１２−２は、ステップＳ４の処理でＮＯであると判定して、ステップＳ５の処理でポーリングカウンタ値CNT＝３に更新する(CNT＝CNT+１)。その後、リーダライタ１１からのポーリングが受信されるまで、ICカード１２−２のレスポンス送信処理は待機状態となる。
【０１０５】
ICカード１２−１と１２−２との何れからもレスポンスが送信されてこないので、リーダライタ１１は、ICカード１２−１と１２−２をまだ検出できていない。そこで、リーダライタ１１は、ステップＳ２１において、ポーリングを再度送信する。
【０１０６】
ICカード１２−１は、この段階では、ポーリングカウンタ値CNT＝１であり、ポーリング待ち回数Ｒ＝２である。したがって、ICカード１２−１は、ステップＳ４の処理でＮＯであると判定して、ステップＳ５の処理でポーリングカウンタ値CNT＝２に更新する(CNT＝CNT+１)。その後、リーダライタ１１からのポーリングが受信されるまで、ICカード１２−１のレスポンス送信処理は待機状態となる。
【０１０７】
一方、ICカード１２−２は、この段階では、ポーリングカウンタ値CNT＝３であり、ポーリング待ち回数Ｒ＝３である。ポーリングカウンタ値CNTとポーリング待ち回数Ｒが一致する。したがって、ICカード１２−１は、ステップＳ４の処理でＹＥＳであると判定し、ステップＳ６の処理でレスポンスをリーダライタ１１に送信する。これにより、レスポンス送信処理が終了されるので、再度、新たなレスポンス送信処理が実行される。即ち、ICカード１２−２は、ステップＳ１において、新たな乱数RNDを生成して、新たな乱数RNDを基にポーリング待ち回数Ｒを更新する。例えば、ここでは、新たな乱数RND＝１が生成されたので、ポーリング待ち回数Ｒは３から１に更新される。
【０１０８】
この場合、リーダライタ１１は、ステップＳ２２において、ICカード１２−２のレスポンスを受信する。これにより、リーダライタ１１は、ICカード１２−２を検出する。
【０１０９】
以上、図３乃至図５を参照して、ICカード１２のレスポンス送信処理を説明した。
【０１１０】
このように、複数のICカード１２がリーダライタ１１と近接通信を行う場合でも、各ICカード１２はリーダライタ１１に対してランダムにレスポンスを送信することができる。これにより、リーダライタ１１側では、各ICカード１２間のレスポンスの衝突の可能性を低減できるようになる。その結果、リーダライタ１１が各ICカード１２を的確に検出することができるようになる。
【０１１１】
以上、本発明が適用される情報処理システムの実施形態として、図１の構成の情報処理システム、即ち、リーダライタ１１とICカード１２とからなる通信システムについて説明してきた。しかしながら、本発明は、図１の例の情報処理システムのみならず、タイムスロット方式で通信する情報処理装置であれば広く適用することができる。このような情報処理システムの構成要素も特に限定されない。例えば、上述のICカード１２のみならず、例えば、PDA(Personal Digital Assistant)、パーソナルコンピュータ、携帯電話機等の各種通信機器に本発明を適用することができる。
【０１１２】
[本発明のプログラムへの適用]
【０１１３】
ところで、上述した一連の処理は、ハードウエアにより実行させることもできるが、ソフトウエアにより実行させることができる。
【０１１４】
この場合、上述した情報処理装置の少なくとも一部として、例えば、図６に示されるパーソナルコンピュータを採用してもよい。
【０１１５】
図６において、CPU（Central Processing Unit）１０１は、ROM（Read Only Memory）１０２に記録されているプログラムに従って各種の処理を実行する。または記憶部１０８からRAM（Random Access Memory）１０３にロードされたプログラムに従って各種の処理を実行する。RAM１０３にはまた、CPU１０１が各種の処理を実行する上において必要なデータなども適宜記憶される。
【０１１６】
CPU１０１、ROM１０２、およびRAM１０３は、バス１０４を介して相互に接続されている。このバス１０４にはまた、入出力インタフェース１０５も接続されている。
【０１１７】
入出力インタフェース１０５には、キーボード、マウスなどよりなる入力部１０６、ディスプレイなどよりなる出力部１０７が接続されている。また、ハードディスクなどより構成される記憶部１０８、および、モデム、ターミナルアダプタなどより構成される通信部１０９が接続されている。通信部１０９は、インターネットを含むネットワークを介して他の装置（図示せず）との間で行う通信を制御する。
【０１１８】
入出力インタフェース１０５にはまた、必要に応じてドライブ１１０が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどよりなるリムーバブルメディア１１１が適宜装着される。そして、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部１０８にインストールされる。
【０１１９】
一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、ネットワークや記録媒体からインストールされる。
【０１２０】
このようなプログラムを含む記録媒体は、図６に示されるように、装置本体とは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク（フロッピディスクを含む）、光ディスク（CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む）、光磁気ディスク（MD（Mini-Disk）を含む）、もしくは半導体メモリなどよりなるリムーバブルメディア（パッケージメディア）１１１により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM１０２や、記憶部１０８に含まれるハードディスクなどで構成される。
【０１２１】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、その順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【符号の説明】
【０１２２】
１１  リーダライタ  ，  １２  ICカード，  ２１  ICチップモジュール，  ３１  ASK変復調部，  ３２  BPSK変復調部，  ３３  CPU，  ３４  EEPROM，  １０１  CPU，  １０２  ROM，  １０３  RAM，  １０８  記憶部，  １１１  リムーバブルメディア
【図１】
2010206437.tif 000003
【図２】
2010206437.tif 000004
【図３】
2010206437.tif 000005
【図４】
2010206437.tif 000006
【図５】
2010206437.tif 000007
【図６】
2010206437.tif 000008