以下に本発明の実施の形態を説明するが、本発明の構成要件と、発明の詳細な説明に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、発明の詳細な説明に記載されていることを確認するためのものである。従って、発明の詳細な説明中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
本発明の第1の側面の通信システム(例えば、図2の通信システム)は、コマンドを送信する第1の通信装置(例えば、図2のリーダライタ32)と、前記コマンドに対するレスポンスを送信する第2の通信装置(例えば、図2のICタグ34)とを備え、前記第1の通信装置が、前記コマンドに対する有効なレスポンスの受信のタイミングの範囲であるレスポンス受信時間に関する情報を取得する第1の取得手段(例えば、図4のレスポンス受信時間取得部81)と、前記第1の取得手段で取得した前記レスポンス受信時間に関する情報を含むコマンドを生成する第1の生成手段(例えば、図4の送信パケット生成部82)と、前記第1の生成手段で生成した前記コマンドを送信する第1の送信手段(例えば、図4の通信制御部83)と、前記コマンドに対するレスポンスを受信する第1の受信手段(例えば、図4の通信制御部83)と、前記レスポンスを正常に受信したかを判定する第1の判定手段(例えば、図4の判定部84)と、前記レスポンスを前記レスポンス受信時間に関する情報が表すレスポンス受信時間内に受信したかを判定する第2の判定手段(例えば、図4の判定部84)とを備え、前記第2の通信装置が、前記第1の通信装置からの前記コマンドを受信する第2の受信手段(例えば、図6の通信制御部111)と、前記第2の受信手段により受信した前記コマンドに含まれる前記レスポンス受信時間に関する情報を取得する第2の取得手段(例えば、図6のレスポンス受信時間取得部112)と、前記コマンドに対するレスポンスを生成する第2の生成手段(例えば、図6の送信パケット生成部113)と、前記レスポンス受信時間内に、前記第2の生成手段により生成した前記レスポンスが前記第1の通信装置に受信されるように、前記レスポンスを送信する第2の送信手段(例えば、図6の通信制御部111)とを備える。
本発明の第2の側面の通信装置は、コマンドを送信する通信装置(例えば、図2のリーダライタ32)であって、前記コマンドに対する有効なレスポンスの受信のタイミングの範囲であるレスポンス受信時間に関する情報を取得する取得手段(例えば、図4のレスポンス受信時間取得部81)と、前記取得手段で取得した前記レスポンス受信時間に関する情報を含むコマンドを生成する生成手段(例えば、図4の送信パケット生成部82)と、前記生成手段で生成した前記コマンドを送信する送信手段(例えば、図4の通信制御部83)と、前記コマンドに対するレスポンスを受信する受信手段(例えば、図4の通信制御部83)と、前記レスポンスを正常に受信したかを判定する第1の判定手段(例えば、図4の判定部84)と、前記レスポンスを前記レスポンス受信時間に関する情報が表すレスポンス受信時間内に受信したかを判定する第2の判定手段(例えば、図4の判定部84)とを備える。
本発明の第2の側面の通信方法、またはプログラムは、コマンドを送信する通信装置(例えば、図2のリーダライタ32)の通信方法、またはコマンドを送信する通信装置を制御するコンピュータ(例えば、図3のCPU66)に処理を実行させるプログラムであって、前記コマンドに対する有効なレスポンスの受信のタイミングの範囲であるレスポンス受信時間に関する情報を取得し(例えば、図8のステップS41)、取得した前記レスポンス受信時間に関する情報を含むコマンドを生成し(例えば、図8のステップS42)、生成した前記コマンドの送信を制御し(例えば、図8のステップS43)、前記コマンドに対するレスポンスを正常に受信したかを判定し(例えば、図8のステップS45)、前記レスポンスを前記レスポンス受信時間に関する情報が表すレスポンス受信時間内に受信したかを判定する(例えば、図8のステップS46)ステップを含む。
本発明の第3の側面の通信装置は、コマンドを送信する他の装置(例えば、図2のリーダライタ32)からの前記コマンドを受信し、前記コマンドに対するレスポンスを送信する通信装置(例えば、図2のICタグ34)であって、前記コマンドを受信する受信手段(例えば、図6の通信制御部111)と、前記受信手段により受信した前記コマンドに含まれる、前記コマンドに対する有効なレスポンスの受信のタイミングの範囲であるレスポンス受信時間に関する情報を取得する取得手段(例えば、図6のレスポンス受信時間取得部112)と、前記コマンドに対するレスポンスを生成する生成手段(例えば、図6の送信パケット生成部113)と、前記レスポンス受信時間に関する情報が表すレスポンス受信時間内に、前記生成手段により生成した前記レスポンスが前記他の装置に受信されるように、前記レスポンスを送信する送信手段(例えば、図6の通信制御部111)とを備える。
本発明の第3の側面の通信方法、またはプログラムは、コマンドを送信する他の装置(例えば、図2のリーダライタ32)からの前記コマンドを受信し、前記コマンドに対するレスポンスを送信する通信装置(例えば、図2のICタグ34)の通信方法、またはコマンドを送信する他の装置からの前記コマンドを受信し、前記コマンドに対するレスポンスを送信する通信装置を制御するコンピュータ(例えば、図5のCPU96)に処理を実行させるプログラムであって、前記コマンドに含まれる、前記コマンドに対する有効なレスポンスの受信のタイミングの範囲であるレスポンス受信時間に関する情報を取得し(例えば、図9のステップS52)、前記コマンドに対するレスポンスを生成し(例えば、図9のステップS53)、前記レスポンス受信時間に関する情報が表すレスポンス受信時間内に、生成した前記レスポンスが前記他の装置に受信されるように、前記レスポンスの送信を制御する(例えば、図9のステップS54)ステップを含む。
次に、図面を参照して、本発明の実施の形態について説明する。
図2は、本発明を適用した通信システムの一実施の形態の構成例を示している。
携帯電話機31は、リーダライタ32を内蔵している。また、携帯電話機33は、ICタグ34を内蔵している。
携帯電話機31に内蔵されているリーダライタ32と、携帯電話機33に内蔵されているICタグ34とは、電磁波を利用して非接触でデータの送受信(近接通信)を行う。
即ち、例えば、リーダライタ32は、搬送波としての電磁波を出力し、その搬送波としての電磁波をコマンドなどのデータで変調することにより、データを送信する。また、ICタグ34は、リーダライタ32が出力する搬送波としての電磁波をレスポンスなどのデータで、いわゆる負荷変調することにより、データを送信する。
図3は、図2のリーダライタ32の内部の構成例を示すブロック図である。
リーダライタ32は、アンテナ61、復調部62、SPU(Signal Processing Unit)63、変調部64、発振回路65、CPU(Central Processing Unit)66、RAM(Random Access Memory)67、ROM(Read Only Memory)68、記憶部69、通信部70、バス71を含んでいる。SPU63、CPU66、RAM67、ROM68、記憶部69、通信部70は、バス71を介して相互に接続されている。
アンテナ61は、変調部64から供給された変調信号や無変調の信号を、電磁波で送信する。また、アンテナ61は、他の装置から送信されてきた電磁波としての変調信号を受信し、復調部62に供給する。
復調部62は、アンテナ61から供給された変調信号を、ICタグ34の負荷変調部94(図5)の変調方式に対応する復調方式により復調し、その復調の結果得られるデータをSPU63に供給する。例えば、復調部62は、アンテナ61を介して取得したASK(Amplitude Shift Keying)変調信号を復調し、その復調によって得られるデータをSPU63に出力する。
SPU63は、CPU66からバス71を介して供給されたコマンドなどのデータを、所定の方式により符号化し、符号化したデータを変調部64に出力する。また、SPU63は、復調部62から供給されたデータを、データの符号化方式に対応する方式により復号し、復号したデータを、バス71を介してCPU66に供給する。
例えば、SPU63は、他の装置(例えば、ICタグ34)あてに送信するコマンドなどのデータが、CPU66からバス71を介して供給されてきた場合、そのデータに、マンチェスタ符号へのコーディングなどの符号化処理を施し、これにより得られたマンチェスタ符号を変調部64に出力する。また、例えば、SPU63は、復調部62の出力に対して、マンチェスタ符号のデコードなどの復号処理を施し、これにより得られたデータを、バス71を介してCPU66に供給する。
変調部64は、発振回路65から供給される搬送波を、SPU63から供給されるコマンドなどのデータで所定の方式により変調することにより変調信号を得て、アンテナ61に供給する。例えば、変調部64は、SPU63から供給されたデータに基づいて、搬送波を、例えば、ASK変調する。
より具体的には、例えば、変調部64は、発振回路65から供給される所定の周波数の正弦波を搬送波として、その搬送波をSPU63より供給されるデータでASK変調し、その結果得られる変調波を、電磁波としてアンテナ61から出力させる。なお、変調部64における変調方式は、ASKに限定されるものではなく、PSK(Phase Shift Keying)やQAM(Quadrature Amplitude Modulation)その他を採用することが可能である。
発振回路65は、所定の周波数の搬送波を生成し、変調部64に供給する。
CPU66は、ROM68や記憶部69に記憶されたプログラムをRAM67に読み込んで実行することで、リーダライタ32全体の動作を制御する。また、例えば、CPU66は、通信部70からプログラムやデータが供給された場合、そのプログラムやデータを必要に応じてRAM67や記憶部69に記憶させる。
さらに、CPU66は、他の装置(例えば、ICタグ34)あてに送信するコマンドなどのデータを生成し、バス71を介してSPU63に供給する。
RAM67は、CPU66が各種の処理を行うとき、その処理の途中のデータなどを一時的に記憶する。
ROM68は、CPU66が各種の処理を行うためのプログラム、その他のデータなどを記憶している。
記憶部69は、書き換え可能で、電源が遮断されても記録内容を保持できる、いわゆる
不揮発性の記憶媒体からなり、例えば、ハードディスク、フラッシュメモリ、EEPROM(Electrically Erasable Programmable Read Only Memory)、MRAM(Magnetoresistive Random Access Memory(磁気抵抗メモリ))、またはFeRAM(Ferroelectric Random Access Memory(強誘電体メモリ))などにより構成される。記憶部69は、CPU66により書込みが指示されたデータや、CPU66が各種の処理を行うためのプログラム、その他のデータなどを記憶する。
通信部70は、携帯電話機31の、電話やブラウザその他として機能する図示せぬブロック(以下、適宜、電話等機能ブロック)から供給されるデータを、バス71を介してCPU66に供給し、CPU66からバス71を介して供給されるデータを、携帯電話機31の電話等機能ブロックに供給する。
なお、CPU66に実行させるプログラムは、リーダライタ32に内蔵されている記録媒体としてのROM68や記憶部69に予め記憶させておくことができる。
あるいは、プログラムは、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory)、MO(Magneto Optical)ディスク、DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的あるいは永続的に格納(記録)しておくことができる。このようなリムーバブル記録媒体を、いわゆるパッケージソフトウェアとして提供し、プログラムは、そのようなリムーバブル記録媒体から、通信部70を介して記録部69などにインストールすることができる。
また、プログラムは、上述したようなリムーバブル記録媒体からインストールする他、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、携帯電話機31に転送し、あるいは、LAN(Local Area Network)、インターネットといったネットワークを介して、携帯電話機31に転送し、携帯電話機31に内蔵されているリーダライタ32では、そのように転送されてくるプログラムを、通信部70で受信し、記憶部69にインストールすることができる。
次に、図3のCPU66は、プログラムを実行することにより、近接通信の制御を行う制御部として機能する。
図4は、所定のプログラムを実行するCPU66により実現される制御部の機能的な構成例を示すブロック図である。CPU66がプログラムを実行することにより、レスポンス受信時間取得部81、送信パケット生成部82、通信制御部83、および判定部84が実現される。
レスポンス受信時間取得部81は、リーダライタ32が送信するポーリングコマンドに対する有効なレスポンスの受信のタイミングの範囲であるレスポンス受信時間に関する情報(以下、適宜、受信時間情報という)を取得する。具体的には、例えば、受信時間情報が、ROM68や記憶部69に予め記憶されている場合には、ROM68や記憶部69から受信時間情報を読み取ることにより取得する。また、例えば、レスポンス受信時間取得部81は、ROM68や記憶部69に記憶されているプログラムにより乱数を発生させ、その乱数の値を利用して受信時間情報を生成することにより取得する。さらに、受信時間情報は、携帯電話機31の図示せぬ各種ボタンやスイッチなどをユーザに操作してもらうことにより入力することができ、この場合、レスポンス受信時間取得部81は、ユーザが入力した受信時間情報を取得する。
なお、受信時間情報としては、例えば、ポーリングコマンドを送信する送信時刻を基準とする時間を表す情報を採用することができる。即ち、受信時間情報としては、例えば、ポーリングコマンドを送信する送信時刻を基準として、レスポンス受信時間としての時間の範囲の始点と終点の時刻を採用することができる。また、受信時間情報としては、例えば、ポーリングコマンドを送信する送信時刻を基準として、レスポンス受信時間としての時間の範囲の始点の時刻と時間幅を採用することができる。
また、レスポンス受信時間取得部81は、送信パケット生成部82と判定部84に、取得した受信時間情報を供給する。
送信パケット生成部82は、レスポンス受信時間取得部81から供給される受信時間情報を含むポーリングコマンド(のパケット)を生成し、通信制御部83に供給する。
通信制御部83は、送信パケット生成部82より供給されるポーリングコマンドの送信を制御し、これにより、ポーリングコマンドをバス71、SPU63、変調部64、および、アンテナ61を介して送信する。また、通信制御部83は、他の装置からポーリングレスポンスが送信されてきた場合に、アンテナ61、復調部62、SPU63、およびバス71を介して供給されるポーリングレスポンスを受信し、判定部84に供給する。
判定部84は、通信制御部83からのポーリングレスポンスが、通信制御部83において正常に受信されたか否か、即ち、通信制御部83からのポーリングレスポンスに、例えば、コリジョン等に起因する(訂正不可能な)エラーが生じていないかどうかを判定する。正常に受信されなかったポーリングレスポンスは、判定部84により破棄される。また、判定部84は、ポーリングレスポンスが、レスポンス受信時間取得部81からの受信時間情報が表すレスポンス受信時間内に受信されたか否かを判定する。通信制御部83において、レスポンス受信時間内に受信されなかったポーリングレスポンスは、判定部84により破棄(または無視)される。
図5は、図2のICタグ34の内部の構成例を示すブロック図である。
ICタグ34は、アンテナ91、復調部92、SPU93、負荷変調部94、CPU96、RAM97、ROM98、記憶部99、通信部100、バス101を含んでいる。SPU93、CPU96、RAM97、ROM98、記憶部99、通信部100は、バス101を介して相互に接続されている。
アンテナ91は、他の装置(例えば、リーダライタ32)から送信されてきた変調信号を受信し、復調部92に供給する。
復調部92は、アンテナ91から供給された変調信号を、リーダライタ32の変調部64(図3)の変調方式に対応する復調方式により復調し、その復調の結果得られるデータをSPU93に供給する。例えば、復調部92は、アンテナ91を介して受信したASK変調信号を復調し、その復調によって得られるデータをSPU93に出力する。
SPU93は、復調部92から供給されたデータを所定の方式により復号し、復号したデータを、バス101を介してCPU96に供給する。また、SPU93は、CPU96からバス101を介して供給されたデータを、所定の符号化方式により符号化し、符号化したデータを負荷変調部94に供給する。
例えば、SPU93は、復調部92の出力に対して、マンチェスタ符号のデコードなどの復号処理を施し、これにより得られたデータを、バス101を介してCPU96に供給する。また、例えば、SPU93は、他の装置(例えば、リーダライタ32)あてに送信するデータが、バス101を介してCPU96から供給された場合、そのデータにマンチェスタ符号のコーディングなどの符号化処理を施し、これにより得られたマンチェスタ符号を負荷変調部94に出力する。
負荷変調部94は、外部からアンテナ91を見たときのインピーダンスを、SPU93から供給されるデータにしたがって変化させる。他の装置が搬送波としての電磁波を出力することにより、アンテナ91の周囲にRF(Radio Frequency)フィールド(磁界)が形成されている場合、アンテナ91としてのコイルを見たときのインピーダンスが変化することにより、アンテナ91の周囲のRFフィールドも変化する。これにより、他の装置が出力している電磁波としての搬送波が、SPU93から供給されるデータにしたがって変調(負荷変調)されることにより、変調信号が搬送波を出力している他の装置で受信される。
CPU96は、ROM98や記憶部99に記憶されたプログラムをRAM97に読み込んで実行することで、ICタグ34全体の動作を制御する。また、例えば、CPU96は、通信部100からプログラムやデータが供給された場合、そのプログラムやデータを必要に応じてRAM97や記憶部99に記憶させる。
さらに、CPU96は、他の装置(例えば、リーダライタ32)あてに送信するコマンドなどのデータを生成し、生成したデータを、バス101を介してSPU93に供給する。
RAM97は、CPU96が各種の処理を行うとき、その処理の途中のデータなどを一時的に記憶する。
ROM98は、CPU96が各種の処理を行うためのプログラム、その他のデータなどを記憶している。
記憶部99は、書き換え可能で、電源が遮断されても記録内容を保持できる、いわゆる
不揮発性の記憶媒体からなり、例えば、ハードディスク、フラッシュメモリ、EEPROM、MRAM、またはFeRAMなどにより構成される。記憶部99は、CPU96により書込みが指示されたデータや、CPU96が各種の処理を行うためのプログラム、その他のデータなどを記憶する。
通信部100は、携帯電話機33の電話等機能ブロックから供給されるデータを、バス101を介して、CPU96に供給し、CPU96からバス101を介して供給されるデータを、携帯電話機33の電話等機能ブロックに供給する。
なお、CPU96に実行させるプログラムは、ICタグ34に内蔵されている記録媒体としてのROM98や記憶部99に予め記憶させておくことができる。
あるいは、プログラムは、上述したようなリムーバブル記録媒体に、一時的あるいは永続的に格納(記録)して、パッケージソフトウェアとして提供し、そのようなリムーバブル記録媒体から、通信部100を介して記録部99などにインストールすることができる。
また、プログラムは、ダウンロードサイトから、ネットワークを介して、携帯電話機33に転送し、携帯電話機33に内蔵されているICタグ34では、そのように転送されてくるプログラムを、通信部100で受信し、記憶部99にインストールすることができる。
次に、図5のCPU96は、プログラムを実行することにより、近接通信の制御を行う制御部として機能する。
図6は、所定のプログラムを実行するCPU96により実現される制御部の機能的な構成例を示すブロック図である。CPU96がプログラムを実行することにより、通信制御部111、レスポンス受信時間取得部112、および送信パケット生成部113が実現される。
通信制御部111は、リーダライタ32などから、ポーリングコマンドが送信されてきた場合に、アンテナ91、復調部92、SPU93、およびバス101を介して供給されるポーリングコマンドを受信し、レスポンス受信時間取得部112と送信パケット生成部113に供給する。また、通信制御部111は、送信パケット生成部113より供給されるポーリングレスポンスを、レスポンス受信時間取得部112からの受信時間情報が表すレスポンス受信時間内にリーダライタ32が受信することができるように、ポーリングレスポンスの送信を制御し、この制御に従い、ポーリングレスポンスは、バス101、SPU93、負荷変調部94、および、アンテナ91を介して送信される。
レスポンス受信時間取得部112は、通信制御部111より供給されるポーリングコマンドから、そのポーリングコマンドに含まれる受信時間情報を取得し、その受信時間情報が表すレスポンス受信時間を、通信制御部111に供給する。
送信パケット生成部113は、通信制御部111から供給されるポーリングコマンドに対するポーリングレスポンス(のパケット)を生成し、通信制御部111に供給する。
図7の上側は、リーダライタ32により送信されるポーリングコマンドのパケットのフォーマットの例を示す図である。
ポーリングコマンドのパケットは、先頭からヘッダ、ペイロード、CRC(Cyclic Redundancy Check)コードなどのエラー訂正符号が順次配置されて構成される。そして、ペイロードには、ポーリングコマンドであることを示すポーリングコマンドコードと、受信時間情報とが少なくとも含まれる。
図7の下側は、ICタグ34により送信されるポーリングレスポンスのパケットのフォーマットの例を示す図である。
ポーリングレスポンスのパケットは、ポーリングコマンドのパケットと同様に、先頭からヘッダ、ペイロード、CRCコードなどのエラー訂正符号が順次配置されて構成される。但し、ペイロードには、ポーリングレスポンスであることを示すレスポンスコードが少なくとも含まれ、さらに、必要に応じて、ICタグ34を特定(識別)するためのIDが含まれる。
次に、図8のフローチャートを参照して、図3および図4のリーダライタ32のデータの送受信処理について説明する。
ステップS41において、図4のレスポンス受信時間取得部81は、上述したような方法でレスポンス受信時間を表す受信時間情報を取得し、送信パケット生成部82と判定部84に供給して、ステップS42に進む。
ステップS42において、送信パケット生成部82は、レスポンス受信時間取得部81からの受信時間情報を含むポーリングコマンドパケット(図7の上側)を生成し、通信制御部83に供給して、ステップS43に進む。
ステップS43において、通信制御部83は、送信パケット生成部82からのポーリングコマンドを送信させる。
そして、通信制御部83は、ステップS43で送信されたポーリングコマンドに対するポーリングレスポンス(のパケット)が送信されてくるのを待って、ステップS43からステップS44に進み、そのポーリングレスポンスを受信し、判定部84に供給してステップS45に進む。
ステップS45において、判定部84は、通信制御部83からのポーリングレスポンスが、正常に受信されたか否か判定する。ステップS45において、ポーリングレスポンスが正常に受信されていないと判定された場合、即ち、通信制御部83からのポーリングレスポンスに、例えば、コリジョンなどに起因するエラー訂正不可能なエラーが生じるなどして、ポーリングレスポンスを正常に受信することができていない場合、ステップS41に戻り、以下、同様の処理が繰り返される。
また、ステップS45において、ポーリングレスポンスを正常に受信することができたと判定された場合には、次のステップS46に進む。
ステップS46において、判定部84は、通信制御部83からの、正常に受信されたポーリングレスポンスが、レスポンス受信時間取得部81から供給された受信時間情報が表すレスポンス受信時間内に受信されたか否かを判定する。ステップS46において、ポーリングレスポンスがレスポンス受信時間内に受信されていないと判定された場合は、判定部84は、そのポーリングレスポンスを有効でないポーリングレスポンスであるとして破棄し、ステップS41に戻り、以下、同様の処理が繰り返される。
また、ステップS46において、ポーリングレスポンスが、レスポンス受信時間内に受信されたと判定された場合は、判定部84は、そのポーリングレスポンスを有効なポーリングレスポンスとして、次のステップS47に進む。
ステップS47において、判定部84は、通信制御部83からの(有効な)ポーリングレスポンス(図7の下側)に含まれるIDによって特定される装置(例えば、ICタグ34など)を通信相手として認識する。以後、リーダライタ32は、その通信相手と近接通信を行う。
次に、図9のフローチャートを参照して、図5および図6のICタグ34のデータの送受信処理について説明する。
ステップS51において、通信制御部111は、図8のステップS43において、リーダライタ32から送信されるポーリングコマンドを、アンテナ91、復調部92、SPU93、およびバス101を介して受信し、レスポンス受信時間取得部112と送信パケット生成部113へ供給して、ステップS52に進む。
ステップS52において、レスポンス受信時間取得部112は、通信制御部111からのポーリングコマンド(図7の上側)に含まれる受信時間情報を取得し、その受信時間情報が表すレスポンス受信時間を通信制御部111に供給して、ステップS53に進む。
ステップS53において、送信パケット生成部113は、ICタグ34を特定するIDを、例えば、乱数によって決定し、そのIDを含むポーリングレスポンス(のパケット)(図7の下側)を生成して、通信制御部111へ供給する。
そして、ステップS53からステップS54に進み、通信制御部111は、レスポンス受信時間取得部112からのレスポンス受信時間内に、送信パケット生成部113からのポーリングレスポンスを、リーダライタ32が受信することができるように、そのポーリングレスポンスの送信を制御する。
即ち、通信制御部111は、例えば、レスポンス受信時間の始点の時刻において、ポーリングレスポンスの送信を開始させる。これにより、ポーリングレスポンスは、バス101、SPU93、負荷変調部94、およびアンテナ91を介して送信される。
次に、図10を参照し、なりすましをしようとする通信装置121が存在する場合のリーダライタ32とICタグ34の処理について説明する。なお、図10では、通信装置121は、ポーリングコマンド(のパケット)(図7の上側)に受信時間情報が含まれていることがわからず、したがって、受信時間情報を認識することができないものとする。
ステップS21において、携帯電話機31のリーダライタ32は、受信時間情報を含むポーリングコマンドを送信する。このポーリングコマンドは、携帯電話機33のICタグ34と通信装置121で受信される。
ステップS22において、リーダライタ32からのポーリングコマンドを受信した通信装置121は、なりすましをするために、リーダライタ32からのポーリングコマンドに対するポーリングレスポンスを送信するが、通信装置121は、ポーリングコマンドに対する受信時間情報を認識していないため、ポーリングレスポンスの送信のタイミングを特に制御せずに、ポーリングレスポンスを送信する。その結果、リーダライタ32では、通信装置121が送信したポーリングレスポンスは、レスポンス受信時間内に、受信されない。そのため、リーダライタ32において、通信装置121によるポーリングレスポンスは、破棄され、通信装置121によるなりすましを防止することができる。
一方、リーダライタ32からのポーリングコマンドに含まれる受信時間情報を認識することができる携帯電話機33のICタグ34は、ステップS23において、リーダライタ32からのポーリングコマンドに対するポーリングレスポンスを、リーダライタ32からのポーリングコマンドに含まれる受信時間情報が表すレスポンス受信時間内にリーダライタ32が受信することができるように送信する。その結果、例えば、ポーリングコマンドの送信時刻を基準とする、レスポンス受信時間の始点と終点の時刻を、各々、tsとteと表すこととすると、ICタグ34が送信したポーリングレスポンスは、レスポンス受信時間である時刻tsから時刻teまでの間に、リーダライタ32で受信される。
そして、リーダライタ32は、レスポンス受信時間内に受信したポーリングレスポンス(のパケット)に含まれるIDによって特定される装置であるICタグ34を通信相手として、近接通信を行う。
さらに、図11を参照し、なりすましをしようとする通信装置131が存在する場合のリーダライタ32とICタグ34の処理について説明する。なお、図11では、通信装置131は、ポーリングコマンド(のパケット)(図7の上側)に受信時間情報が含まれていることがわかり、従って、受信時間情報を認識することができるものとする。
ステップS31において、携帯電話機31のリーダライタ32は、受信時間情報を含むポーリングコマンドを送信する。このポーリングコマンドは、携帯電話機33のICタグ34と通信装置131で受信される。
ステップS32において、リーダライタ32からのポーリングコマンドに含まれる受信時間情報を認識することができる通信装置131は、なりすましをするために、リーダライタ32からのポーリングコマンドに対するポーリングレスポンスを、リーダライタ32からのポーリングコマンドに含まれる受信時間情報が表すレスポンス受信時間内にリーダライタ32が受信することができるように送信する。その結果、例えば、ポーリングコマンドの送信時刻を基準とする、レスポンス受信時間の始点と終点の時刻を、それぞれtsとteと表すこととすると、通信装置131が送信したポーリングレスポンスは、レスポンス受信時間である時刻tsから時刻teまでの間に、リーダライタ32に到達する。
一方、携帯電話機33のICタグ34も、ステップS33において、リーダライタ32からのポーリングコマンドに対するポーリングレスポンスを、リーダライタ32からのポーリングコマンドに含まれる受信時間情報が表すレスポンス受信時間内にリーダライタ32が受信することができるように送信する。その結果、携帯電話機33のICタグ34が送信したポーリングレスポンスは、上述したレスポンス受信時間である時刻tsから時刻teまでの間に、リーダライタ32に到達する。
以上のように、携帯電話機33のICタグ34と通信装置131のいずれも、ポーリングレスポンスを、携帯電話機31のリーダライタ32が、レスポンス受信時間内に受信することができるように送信する。その結果、通信装置131が送信したポーリングレスポンスと、ICタグ34が送信したポーリングレスポンスとの間で、コリジョン(データの衝突)が生じる。そのため、携帯電話機33のICタグ34からのポーリングレスポンスに、コリジョンに起因するエラー訂正不可能なエラーが生じることから、リーダライタ32は、携帯電話機33のICタグ34からのポーリングレスポンスを正常に受信することができず、従って、ICタグ34と近接通信をすることが出来なくなるが、通信装置131が送信したポーリングレスポンスも正常に受信することができないために、通信装置131と近接通信を行うことも出来なくなり、通信装置131によるなりすましを防止することが出来る。
なお、受信時間情報が表すレスポンス受信時間は、レスポンス受信時間内に、2以上のポーリングレスポンスがリーダライタ32に到達した場合に、それぞれのポーリングレスポンスにエラー訂正不可能なエラーが生ずるコリジョンが生じるような時間であることが必要となる。即ち、例えば、リーダライタ32に、時刻tsにポーリングレスポンスが到達し、時刻teに他のポーリングレスポンスが到達した場合でも、両方のポーリングレスポンスにエラー訂正不可能なエラーが生ずるコリジョンが生ずることが必要となる。
また、レスポンス受信時間の始点の時刻tsは、特に限定されるものではないが、時刻tsを遅い時刻(例えば、リーダライタ32によるポーリングコマンドの送信時を基準としての時刻)とすると、リーダライタ32とICタグ34との間の通信に時間を要することとなるので、時刻tsは、その点を考慮して決めるのが望ましい。
また、なりすましを防止する観点から、レスポンス受信時間は、受信時間情報を認識することが出来ない通信装置121(図10)が、ポーリングレスポンスを送信してくるタイミングを含まないように決めるのが望ましい。
図12は、本発明を適用した通信システムの他の一実施の形態の構成例を示す図である。
図12において、通信システムは、携帯電話機141と携帯電話機144とから構成されている。携帯電話機141は、リーダライタ142とICタグ143を内蔵している。また、携帯電話機144は、リーダライタ145とICタグ146を内蔵している。
リーダライタ142とリーダライタ145とは、いずれも、図2のリーダライタ32と同様に構成されている。また、ICタグ143とICタグ146とは、いずれも、図2のICタグ34と同様に構成されている。
以上のように構成される図12の通信システムでは、リーダライタ142が電磁波を出力し、その電磁波を媒介として、リーダライタ142とICタグ146との間で、リーダライタ32とICタグ34との間の近接通信と同様の近接通信が行われる。あるいは、リーダライタ145が電磁波を出力し、その電磁波を媒介として、ICタグ143とリーダライタ145との間で、リーダライタ32とICタグ34との間の近接通信と同様の近接通信が行われる。
なお、本明細書において、フローチャートに記述されたステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
ここで、本実施の形態では、本発明を、電磁波を媒介とする近接通信を行うリーダライタまたはICタグの一方、または両方を内蔵する携帯電話機に適用した場合について説明したが、本発明は、その他、例えば、有線または無線であるかを問わず、ポーリングに対して、レスポンスを返して通信を行う装置に適用可能である。
また、本実施の形態では、ICタグ34において、リーダライタ32が出力する電磁波を負荷変調することによりデータを送信することとしたが、ICタグ34では、その他、リーダライタ32と同様に、ICタグ34自身が電磁波を出力し、その電磁波を変調することによりデータを送信することが可能である。
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
11 携帯電話機, 12 リーダライタ, 13 携帯電話機, 14 ICタグ, 21 携帯電話機, 31 携帯電話機, 32 リーダライタ, 33 携帯電話機, 34 ICタグ, 61 アンテナ, 62 復調部, 63 SPU, 64 変調部, 65 発振回路, 66 CPU, 67 RAM, 68 ROM, 69 記憶部, 70 通信部, 71 バス, 81 通信制御部,82 レスポンス受信時間取得部, 83 送信パケット生成部, 84 判定部, 91 アンテナ, 92 復調部, 93 SPU, 94 変調部, 96 CPU, 97 RAM, 98 ROM, 99 記憶部, 100 通信部, 101 バス, 111 通信制御部, 112 レスポンス受信時間取得部, 113 送信パケット生成部, 141 携帯電話機, 142 リーダライタ, 143 ICタグ, 144 携帯電話機, 145 リーダライタ, 146 ICタグ