(57)【要約】【課題】リーダ・ライタ装置の通信可能な範囲内に複数の非接触識別タグが存在する場合の通信順番を設定するのに好適な非接触識別タグ、データ通信システム及び非接触識別タグ制御プログラムを提供する。【解決手段】データ通信システム１を、ホスト装置２と、リーダ・ライタ装置３と、複数の非接触識別タグ４と、を含んだ構成とし、非接触識別タグ４を、データ受信部４ａと、データ送信部４ｂと、データ制御部４ｃと、データ記憶部４ｄと、駆動電力生成部４ｅと、コイルアンテナ４ｆと、を含んだ構成とし、リーダ・ライタ装置３からのコマンドに応じて、データ制御部４ｃにおいて、乱数を発生し、この乱数と予めデータ記憶部４ｄに記憶された固有の識別番号とに基づきタイムスロット番号を設定するようにした。【選択図】      図１
2005184761.tif 000002
【特許請求の範囲】
【請求項１】
リーダ・ライタ装置との間で複数のタイムスロットを用いた時分割多重方式によるデータ通信を行う際に、前記リーダ・ライタ装置との通信順番に係るタイムスロット番号を設定し、当該設定されたタイムスロット番号に基づき決定される通信順番に従って前記リーダ・ライタ装置との間で非接触による無線通信を行うことが可能な非接触識別タグであって、
固有の識別番号を記憶する識別番号記憶手段と、
乱数を発生する乱数発生手段と、
前記識別番号及び前記乱数に基づき前記タイムスロット番号を設定するタイムスロット番号設定手段と、を備えることを特徴とする非接触識別タグ。
【請求項２】
前記乱数と、前記識別番号を示すビット列のビット位置と、を予め対応付けておき、
前記タイムスロット番号設定手段は、前記識別番号を示すビット列から、前記乱数に対応したビット位置の数値を抜き出し、当該抜き出した数値に基づき前記タイムスロット番号を設定するようになっていることを特徴とする請求項１記載の非接触識別タグ。
【請求項３】
前記識別番号を示すビット列を、所定ビット数単位で複数のブロックにブロック分けすると共に、各ブロック毎にそれぞれ異なる番号を付し、
前記タイムスロット番号設定手段は、前記乱数発生手段によって発生した乱数に対応する番号の前記ブロックを選択し、当該選択されたブロックに含まれるビット列から成る数値に基づき前記タイムスロット番号を設定するようになっていることを特徴とする請求項２記載の非接触識別タグ。
【請求項４】
前記タイムスロット番号設定手段は、前記乱数発生手段によって発生された乱数に基づき前記識別番号を示すビット列から特定のビットを選択し、当該選択されたビットの位置を基準とした上位又は下位の所定ビット数のビット列から成る数値に基づき前記タイムスロット番号を設定するようになっていることを特徴とする請求項２記載の非接触識別タグ。
【請求項５】
複数の請求項１乃至請求項４のいずれか１項に記載の非接触識別タグと、リーダ・ライタ装置と、ホスト装置と、を備え、
前記リーダ・ライタ装置は、前記ホスト装置からの指示に応じて、前記複数の非接触識別タグのそれぞれに前記タイムスロット番号をそれぞれ互いに重複しないように設定させるようになっており、
前記設定されたタイムスロット番号に基づき、前記複数の非接触識別タグと前記リーダ・ライタ装置との間の非接触による無線データ通信を行うことを特徴とするデータ通信システム。
【請求項６】
複数の請求項１乃至請求項４のいずれか１項に記載の非接触識別タグと、リーダ・ライタ装置と、ホスト装置と、を備え、
前記ホスト装置は、前記リーダ・ライタ装置に、前記複数の非接触識別タグに対して前記タイムスロット番号を設定させるための指示を与える第１のスロット番号設定指示手段と、前記リーダ・ライタ装置から前記非接触識別タグの前記識別番号を含むタグ情報を取得する第１のタグ情報取得手段と、前記リーダ・ライタ装置から前記タイムスロット番号の重複の情報が送られてきた場合に、当該重複の情報を取得する重複情報取得手段と、前記重複情報取得手段によって前記重複の情報を取得した場合に、前記タイムスロット番号の重複した非接触識別タグに対して前記タイムスロット番号の再設定を行わせるための指示を与える第１の再設定指示手段とを備え、
前記リーダ・ライタ装置は、前記ホスト装置からの前記タイムスロット番号を設定させるための指示に応じて、前記複数の非接触識別タグに前記タイムスロット番号の設定指示を与える第２のスロット番号設定指示手段と、前記ホスト装置からの前記タイムスロット番号を再設定させるための指示に応じて、前記重複が検出された前記非接触識別タグに対して前記タイムスロット番号の再設定を行わせるための指示を与える第２の再設定指示手段と、前記非接触識別タグから、当該非接触識別タグの前記識別番号を含むタグ情報を取得する第２のタグ情報取得手段と、前記第２のタグ情報取得手段によって取得した前記タグ情報を前記ホスト装置に送信する第１のタグ情報送信手段と、前記第２のタグ情報取得手段によって取得した前記タグ情報に基づいて、前記複数の非接触識別タグの中に前記タイムスロット番号の重複したものがあるか否かを検出する重複タグ検出手段と、前記重複タグ検出手段によって前記タイムスロット番号の重複した非接触識別タグがあると検出された場合に、前記重複の情報を前記ホスト装置に送信する重複情報送信手段とを備え、
前記非接触識別タグは、前記リーダ・ライタ装置からの前記タイムスロット番号の設定指示に応じて、前記タイムスロット番号の設定処理を行い、且つ、前記リーダ・ライタ装置からの前記タイムスロット番号の再設定指示に応じて、前記タイムスロット番号の再設定処理を行うスロット番号再設定手段と、前記リーダ・ライタ装置に前記タグ情報を送信する第２のタグ情報送信手段と、を備えることを特徴とするデータ通信システム。
【請求項７】
前記ホスト装置は、
前記非接触識別タグに対してその動作を停止させる指示を与える第１の動作停止指示手段と、前記第１の動作停止指示手段によって動作の停止された前記非接触識別タグに、その動作を再開させる指示を与える第１の動作再開指示手段と、を備え、
前記リーダ・ライタ装置は、
前記ホスト装置からの前記動作を停止させる指示に応じて、前記非接触識別タグに対してその動作を停止させる指示を与える第２の動作停止指示手段と、前記ホスト装置からの前記動作を再開させる指示に応じて、前記動作の停止された前記非接触識別タグに、その動作を再開させる指示を与える第２の動作再開指示手段と、を備え、
前記非接触識別タグは、前記リーダ・ライタ装置からの動作の停止指示に応じて動作を停止し、前記リーダ・ライタ装置からの動作の再開指示に応じて停止中の動作を再開することを特徴とする請求項６に記載のデータ通信システム。
【請求項８】
複数の請求項１乃至請求項４のいずれか１項に記載の非接触識別タグと、リーダ・ライタ装置と、ホスト装置と、を備え、
前記ホスト装置は、前記リーダ・ライタ装置に、前記複数の非接触識別タグに対して前記タイムスロット番号を設定させるための指示を与える第１のスロット番号設定指示手段と、前記リーダ・ライタ装置から前記非接触識別タグの前記識別番号を含むタグ情報を取得する第１のタグ情報取得手段とを備え、
前記リーダ・ライタ装置は、前記ホスト装置からの前記指示に応じて、前記複数の非接触識別タグに前記タイムスロット番号の設定指示を与える第２のスロット番号設定指示手段と、前記非接触識別タグから、当該非接触識別タグの前記識別番号を含むタグ情報を取得する第２のタグ情報取得手段と、前記第２のタグ情報取得手段によって取得した前記タグ情報に基づいて、前記複数の非接触識別タグの中に前記タイムスロット番号の重複したものがあるか否かを検出する重複タグ検出手段と、前記重複タグ検出手段によって前記タイムスロット番号の重複した非接触識別タグがあると検出された場合に、その非接触識別タグに対して前記タイムスロット番号の再設定を行わせるための指示を与える再設定指示手段と、前記第２のタグ情報取得手段によって取得した前記タグ情報を前記ホスト装置に送信する第１のタグ情報送信手段と、を備え、
前記非接触識別タグは、前記リーダ・ライタ装置からの前記タイムスロット番号の設定指示に応じて、前記タイムスロット番号の設定処理を行い、且つ、前記リーダ・ライタ装置からの前記タイムスロット番号の再設定指示に応じて、前記タイムスロット番号の再設定処理を行うスロット番号再設定手段と、前記リーダ・ライタ装置に前記タグ情報を送信する第２のタグ情報送信手段と、を備えることを特徴とするデータ通信システム。
【請求項９】
前記タグ情報は、前記タイムスロット番号が重複していることを示す情報を含むことを特徴とする請求項８に記載のデータ通信システム。
【請求項１０】
前記ホスト装置は、前記リーダ・ライタ装置から取得した前記タグ情報を表示するタグ情報表示手段を備えることを特徴とする請求項６から請求項９のいずれか１項に記載のデータ通信システム。
【請求項１１】
前記リーダ・ライタ装置は、前記非接触識別タグに対してその動作を停止させる指示を与える動作停止指示手段と、前記動作停止指示手段によって動作の停止された前記非接触識別タグに、その動作を再開させる指示を与える動作再開指示手段と、を備え、
前記非接触識別タグは、前記リーダ・ライタ装置からの動作の停止指示に応じて動作を停止し、前記リーダ・ライタ装置からの動作の再開指示に応じて停止中の動作を再開し、
前記リーダ・ライタ装置は、前記重複タグ検出手段によって前記タイムスロット番号の重複した非接触識別タグがあると検出された場合には、前記動作停止指示手段によって、前記タイムスロット番号の重複していない前記非接触タグに対して動作を停止する指示を与え、かつ、前記再設定指示手段によって前記タイムスロット番号の重複を解消した場合には、前記動作再開指示手段によって、前記動作の停止された前記非接触識別タグに対して動作を再開させる指示を与えることを特徴とする請求項８乃至請求項１０のいずれか１項に記載のデータ通信システム。
【請求項１２】
請求項１記載の非接触識別タグを制御するためのコンピュータが実行可能なプログラムであって、
乱数を発生する乱数発生ステップと、
前記識別番号記憶手段に記憶された前記識別番号と、前記乱数発生ステップにおいて発生した乱数と、に基づき前記タイムスロット番号を設定するスロット番号設定ステップと、を備えることを特徴とする非接触識別タグ制御プログラム。
【請求項１３】
前記乱数と、前記識別番号を示すビット列のビット位置と、が予め対応付けられており、
前記タイムスロット番号設定ステップにおいては、前記識別番号を示すビット列から、前記乱数に対応したビット位置の数値を抜き出し、当該抜き出した数値に基づき前記タイムスロット番号を設定するようになっていることを特徴とする請求項１２記載の非接触識別タグ制御プログラム。
【請求項１４】
前記識別番号を示すビット列を所定ビット数単位で複数のブロックにブロック分けすると共に、各ブロック毎にそれぞれ異なる番号を付し、
前記スロット番号設定ステップにおいては、前記乱数発生ステップによって発生した乱数に対応する番号の前記ブロックを選択し、当該選択されたブロックに含まれるビット列から成る数値に基づき前記タイムスロット番号を設定するようになっていることを特徴とする請求項１３記載の非接触識別タグ制御プログラム。
【請求項１５】
前記スロット番号設定ステップにおいては、前記乱数発生ステップによって発生された乱数に基づき前記識別番号を示すビット列から特定のビットを選択し、当該選択されたビットの位置を基準とした上位又は下位の所定ビット数のビット列から成る数値に基づき前記タイムスロット番号を設定するようになっていることを特徴とする請求項１３記載の非接触識別タグ制御プログラム。
【請求項１６】
請求項５記載のデータ通信システムにおける前記非接触識別タグを制御するためのコンピュータが実行可能なプログラムであって、
前記リーダ・ライタ装置からの前記タイムスロット番号の再設定指示に応じて、前記タイムスロット番号の再設定処理を行うスロット番号再設定ステップを備えることを特徴とする請求項１２乃至請求項１５のいずれか１項に記載の非接触識別タグ制御プログラム。
【請求項１７】
前記リーダ・ライタ装置に前記タグ情報を送信する第２のタグ情報送信ステップを備えることを特徴とする請求項１６記載の非接触識別タグ制御プログラム。
【請求項１８】
前記リーダ・ライタ装置からの動作の停止指示に応じて動作を停止するステップと、前記リーダ・ライタ装置からの動作の再開指示に応じて停止中の動作を再開するステップと、を備えることを特徴とする請求項１６又は請求項１７記載の非接触識別タグ制御プログラム。
【請求項１９】
請求項６記載のデータ通信システムにおける前記リーダ・ライタ装置を制御するためのコンピュータが実行可能なプログラムであって、
前記ホスト装置からの前記タイムスロット番号を設定させるための指示に応じて、前記複数の非接触識別タグに前記タイムスロット番号の設定指示を与えるステップと、
前記ホスト装置からの前記タイムスロット番号を再設定させるための指示に応じて、前記重複が検出された前記非接触識別タグに対して前記タイムスロット番号の再設定を行わせるための指示を与えるステップと、
前記非接触識別タグから、当該非接触識別タグの前記識別番号を含むタグ情報を取得するステップと、
前記第２のタグ情報取得手段によって取得した前記タグ情報を前記ホスト装置に送信するステップと、
前記第２のタグ情報取得手段によって取得した前記タグ情報に基づいて、前記複数の非接触識別タグの中に前記タイムスロット番号の重複したものがあるか否かを検出するステップと、
前記重複タグ検出手段によって前記タイムスロット番号の重複した非接触識別タグがあると検出された場合に、前記重複の情報を前記ホスト装置に送信するステップと、を備えることを特徴とするリーダ・ライタ装置制御プログラム。
【請求項２０】
請求項８記載のデータ通信システムにおける前記リーダ・ライタ装置を制御するためのコンピュータが実行可能なプログラムであって、
前記ホスト装置からの前記指示に応じて、前記複数の非接触識別タグに前記タイムスロット番号の設定指示を与えるステップと、
前記非接触識別タグから、当該非接触識別タグの前記識別番号を含むタグ情報を取得するステップと、
前記第２のタグ情報取得手段によって取得した前記タグ情報に基づいて、前記複数の非接触識別タグの中に前記タイムスロット番号の重複したものがあるか否かを検出するステップと、
前記重複タグ検出手段によって前記タイムスロット番号の重複した非接触識別タグがあると検出された場合に、その非接触識別タグに対して前記タイムスロット番号の再設定を行わせるための指示を与えるステップと、
前記第２のタグ情報取得手段によって取得した前記タグ情報を前記ホスト装置に送信するステップと、を備えることを特徴とするリーダ・ライタ装置制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、非接触識別タグ及びリーダ・ライタ装置を利用した非接触による無線データ通信に係り、特に、リーダ・ライタ装置の通信可能な範囲内に複数の非接触識別タグが存在する場合の通信順番を設定するのに好適な非接触識別タグ、データ通信システム及び非接触識別タグ制御プログラムに関する。
【背景技術】
【０００２】
従来、リーダ・ライタ装置と複数のＲＦＩＤタグとの間で適切な通信順番を設定してデータ通信を行う技術として、特許文献１の非接触ＩＣカードとデータ交信装置が開示されている。
これは、非接触ＩＣカードとの間で無線通信を行う際に、リーダ・ライタ装置は、非接触ＩＣカードとの最初の交信において混信を確認すると、そのことを通信範囲内の複数の非接触ＩＣカードに通知する。一方、非接触ＩＣカードは、混信があった場合の処理準備として、メモリに格納された乱数発生のアルゴリズムに従い乱数を発生させ、発信スロット（時間で区切られたスロット）用の番号（０〜９のいずれか）を予め設定しておく。そして、非接触ＩＣカードは、リーダ・ライタ装置から混信の通知を受信した後、上記発信スロット用の番号に従い、リーダ・ライタ装置にレスポンスを返す。更に、非接触ＩＣカードは、再度の混信に備えて、上記同様の手順で発信スロット用の番号を設定する。一方、リーダ・ライタ装置は、非接触ＩＣカードからのレスポンスにより再度混信を確認すると、混信のあったことを非接触ＩＣカードに通知する。これらの処理は、混信がなくなるまで繰り返し行われる。
【特許文献１】特許２８１４９７４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上記従来技術においては、乱数発生用のアルゴリズムで発生した乱数をそのまま用いて（例えば、乱数の下一桁を使用）発信スロット用の番号を設定しているため、各非接触ＩＣカードに設定される各番号の発生確率は、乱数発生アルゴリズムの番号発生確率に依存することになる。従って、乱数発生アルゴリズムの性能によっては、複数の非接触ＩＣカードに同じ番号が何度も設定され、これにより何度も混信が発生してしまい混信解消に時間がかかってしまう恐れがある。
【０００４】
そこで、本発明は、このような従来の技術の有する未解決の課題に着目してなされたものであって、リーダ・ライタ装置の通信可能な範囲内に複数の非接触識別タグが存在する場合の通信順番を設定するのに好適な非接触識別タグ、データ通信システム及び非接触識別タグ制御プログラムを提供することを目的としている。
【課題を解決するための手段】
【０００５】
〔発明１〕  上記目的を達成するために、発明１の非接触識別タグは、リーダ・ライタ装置との間で複数のタイムスロットを用いた時分割多重方式によるデータ通信を行う際に、前記リーダ・ライタ装置との通信順番に係るタイムスロット番号を設定し、当該設定されたタイムスロット番号に基づき決定される通信順番に従って前記リーダ・ライタ装置との間で非接触による無線通信を行うことが可能な非接触識別タグであって、
固有の識別番号を記憶する識別番号記憶手段と、
乱数を発生する乱数発生手段と、
前記識別番号及び前記乱数に基づき前記タイムスロット番号を設定するタイムスロット番号設定手段と、を備えることを特徴としている。
【０００６】
このような構成であれば、識別番号記憶手段によって、固有の識別番号を記憶することが可能であり、乱数発生手段によって乱数を発生することが可能であり、タイムスロット番号設定手段によって、前記識別番号及び前記乱数に基づき前記タイムスロット番号を設定することが可能である。
従って、タイムスロット番号を、乱数発生手段による乱数から一意に決めずに、当該乱数と識別番号とから決定し設定するようにしたので、乱数発生手段の発生確率のみに依存しないタイムスロット番号の設定が可能となる。
ここで、識別番号とは、２進数、８進数、１０進数、１６進数等のどのような形式で扱っても良く、通常は、２進数のビット列として識別番号記憶手段に記憶されたものである。
【０００７】
〔発明２〕  更に、発明２の非接触識別タグは、発明１の非接触識別タグにおいて、前記乱数と、前記識別番号を示すビット列のビット位置と、を予め対応付けておき、
前記タイムスロット番号設定手段は、前記識別番号を示すビット列から、前記乱数に対応したビット位置の数値を抜き出し、当該抜き出した数値に基づき前記タイムスロット番号を設定するようになっていることを特徴としている。
【０００８】
つまり、識別番号を示すビット列における乱数に対応したビット位置にある数値に基づきタイムスロット番号を設定するようにしたので、乱数発生手段の発生確率のみに依存しないタイムスロット番号の設定が可能となる。
〔発明３〕  更に、発明３の非接触識別タグは、発明２の非接触識別タグにおいて、前記識別番号を示すビット列を、所定ビット数単位で複数のブロックにブロック分けすると共に、各ブロック毎にそれぞれ異なる番号を付し、
前記タイムスロット番号設定手段は、前記乱数発生手段によって発生した乱数に対応する番号の前記ブロックを選択し、当該選択されたブロックに含まれるビット列から成る数値に基づき前記タイムスロット番号を設定するようになっていることを特徴としている。
【０００９】
このような構成であれば、タイムスロット番号設定手段は、前記乱数発生手段によって発生された乱数に対応する番号のブロックを選択し、当該選択されたブロックに含まれるビット列から成る数値に基づき前記タイムスロット番号を設定することが可能である。
従って、タイムスロット番号は、乱数発生手段による乱数から一意に決めずに、当該乱数とブロック分けされた識別番号とから決定し設定するようにしたので、乱数発生手段の番号発生確率のみに依存しないタイムスロット番号の設定が可能となる。
【００１０】
ここで、ブロック分けの方法としては、識別番号を示すビット列を、各ブロックが他のブロックとの重複ビットが無い状態で所定ビット数から成るブロック単位に複数に分ける方法、各ブロックが他のブロックとの重複ビットが無い状態で且つ隣り合うブロック間を所定ビット数空けた状態で所定ビット数から成るブロック単位で複数に分ける方法、各ブロックが隣合うブロックと一部重複ビットがある状態で所定ビット数から成るブロック単位で複数に分ける方法、などがある。
上記したように、隣合うブロックと一部重複させてブロック分けを行うことにより、分割するブロック数を増やすことができるので、複数の非接触識別タグ４間におけるタイムスロット番号の重複確率を低減させることが可能となる。
【００１１】
〔発明４〕  更に、発明４の非接触識別タグは、発明２の非接触識別タグにおいて、前記タイムスロット番号設定手段は、前記乱数発生手段によって発生された乱数に基づき前記識別番号を示すビット列から特定のビットを選択し、当該選択されたビットの位置を基準とした上位又は下位の所定ビット数のビット列から成る数値に基づき前記タイムスロット番号を設定するようになっていることを特徴としている。
【００１２】
このような構成であれば、タイムスロット番号設定手段は、前記乱数発生手段によって発生された乱数に基づき前記識別番号を示すビット列から特定のビットを選択し、当該選択されたビットの位置を基準とした上位又は下位の所定ビット数のビット列から成る数値に基づき前記タイムスロット番号を設定することが可能である。
従って、タイムスロット番号は、乱数発生手段による乱数から一意に決めずに、当該乱数と識別番号における特定ビットを基準としたビット列とから決定し設定するようにしたので、乱数発生手段の番号発生確率のみに依存しないタイムスロット番号の設定が可能となる。
【００１３】
〔発明５〕  一方、発明５のデータ通信システムは、複数の発明１乃至発明４のいずれか１の非接触識別タグと、リーダ・ライタ装置と、ホスト装置と、を備え、
前記リーダ・ライタ装置は、前記ホスト装置からの指示に応じて、前記複数の非接触識別タグのそれぞれに前記タイムスロット番号をそれぞれ互いに重複しないように設定させるようになっており、
前記設定されたタイムスロット番号に基づき、前記複数の非接触識別タグと前記リーダ・ライタ装置との間の非接触による無線データ通信を行うことを特徴としている。
【００１４】
このような構成であれば、非接触識別タグは、タイムスロット番号を前記乱数発生手段による乱数から一意に決めずに、当該乱数と前記識別番号とから決定し設定することが可能なので、乱数発生手段の番号発生確率のみに依存しないタイムスロット番号の設定が可能となり、これにより、複数の非接触識別タグにおいて番号が重複し難いタイムスロット番号の設定処理が可能となる。
【００１５】
〔発明６〕  更に、発明６のデータ通信システムは、複数の発明１乃至発明４のいずれか１の非接触識別タグと、リーダ・ライタ装置と、ホスト装置と、を備え、
前記ホスト装置は、前記リーダ・ライタ装置に、前記複数の非接触識別タグに対して前記タイムスロット番号を設定させるための指示を与える第１のスロット番号設定指示手段と、前記リーダ・ライタ装置から前記非接触識別タグの前記識別番号を含むタグ情報を取得する第１のタグ情報取得手段と、前記リーダ・ライタ装置から前記タイムスロット番号の重複の情報が送られてきた場合に、当該重複の情報を取得する重複情報取得手段と、前記重複情報取得手段によって前記重複の情報を取得した場合に、前記タイムスロット番号の重複した非接触識別タグに対して前記タイムスロット番号の再設定を行わせるための指示を与える第１の再設定指示手段とを備え、
前記リーダ・ライタ装置は、前記ホスト装置からの前記タイムスロット番号を設定させるための指示に応じて、前記複数の非接触識別タグに前記タイムスロット番号の設定指示を与える第２のスロット番号設定指示手段と、前記ホスト装置からの前記タイムスロット番号を再設定させるための指示に応じて、前記重複が検出された前記非接触識別タグに対して前記タイムスロット番号の再設定を行わせるための指示を与える第２の再設定指示手段と、前記非接触識別タグから、当該非接触識別タグの前記識別番号を含むタグ情報を取得する第２のタグ情報取得手段と、前記第２のタグ情報取得手段によって取得した前記タグ情報を前記ホスト装置に送信する第１のタグ情報送信手段と、前記第２のタグ情報取得手段によって取得した前記タグ情報に基づいて、前記複数の非接触識別タグの中に前記タイムスロット番号の重複したものがあるか否かを検出する重複タグ検出手段と、前記重複タグ検出手段によって前記タイムスロット番号の重複した非接触識別タグがあると検出された場合に、前記重複の情報を前記ホスト装置に送信する重複情報送信手段とを備え、
前記非接触識別タグは、前記リーダ・ライタ装置からの前記タイムスロット番号の設定指示に応じて、前記タイムスロット番号の設定処理を行い、且つ、前記リーダ・ライタ装置からの前記タイムスロット番号の再設定指示に応じて、前記タイムスロット番号の再設定処理を行うスロット番号再設定手段と、前記リーダ・ライタ装置に前記タグ情報を送信する第２のタグ情報送信手段と、を備えることを特徴としている。
【００１６】
このような構成であれば、ホスト装置は、第１のスロット番号設定指示手段によって、リーダ・ライタ装置に、複数の非接触識別タグに対してタイムスロット番号を設定させるための指示を与えることが可能であり、第１のタグ情報取得手段によってリーダ・ライタ装置から非接触識別タグの前記識別番号を含むタグ情報を取得することが可能であり、リーダ・ライタ装置からタイムスロット番号の重複の情報が送られてきた場合に、重複情報取得手段によって当該重複の情報を取得することが可能であり、重複情報取得手段によって前記重複の情報を取得した場合に、第１の再設定指示手段によって、タイムスロット番号の重複した非接触識別タグに対してタイムスロット番号の再設定を行わせるための指示を与えることが可能である。
【００１７】
一方、リーダ・ライタ装置は、第２のスロット番号設定指示手段によって、ホスト装置からのタイムスロット番号を設定させるための指示に応じて、複数の非接触識別タグにタイムスロット番号の設定指示を与えることが可能であり、第２の再設定指示手段によって、ホスト装置からのタイムスロット番号を再設定させるための指示に応じて、前記重複が検出された非接触識別タグに対してタイムスロット番号の再設定を行わせるための指示を与えることが可能であり、第２のタグ情報取得手段によって非接触識別タグから当該非接触識別タグの識別番号を含むタグ情報を取得することが可能である。また、このリーダ・ライタ装置は、第１のタグ情報送信手段によって、前記第２のタグ情報取得手段によって取得した前記タグ情報を前記ホスト装置に送信することが可能であり、重複タグ検出手段によって、第２のタグ情報取得手段によって取得した前記タグ情報に基づいて、複数の非接触識別タグの中にタイムスロット番号の重複したものがあるか否かを検出することが可能であり、重複タグ検出手段によってタイムスロット番号の重複した非接触識別タグがあると検出された場合に、重複情報送信手段によって、前記重複の情報をホスト装置に送信することが可能である。
【００１８】
さらに、非接触識別タグは、スロット番号再設定手段によって、リーダ・ライタ装置からのタイムスロット番号の設定指示に応じて、タイムスロット番号の設定処理を行い、且つ、リーダ・ライタ装置からのタイムスロット番号の再設定指示に応じて、タイムスロット番号の再設定処理を行うことが可能であり、第２のタグ情報送信手段によってリーダ・ライタ装置に前記タグ情報を送信することが可能である。
【００１９】
従って、非接触識別タグは、乱数発生手段の番号発生確率のみに依存しないタイムスロット番号の設定処理を行うので、これにより、複数の非接触識別タグにおいて番号が重複し難いタイムスロット番号の設定処理が可能となる。更に、非接触識別タグの識別番号を含むタグ情報を取得するようにしたので、再設定時の指示対象からタイムスロット番号の重複しているもの以外の非接触識別タグを除外することが可能となる。
【００２０】
〔発明７〕  更に、発明７のデータ通信システムは、発明６のデータ通信システムにおいて、
前記ホスト装置は、
前記非接触識別タグに対してその動作を停止させる指示を与える第１の動作停止指示手段と、前記第１の動作停止指示手段によって動作の停止された前記非接触識別タグに、その動作を再開させる指示を与える第１の動作再開指示手段と、を備え、
前記リーダ・ライタ装置は、
前記ホスト装置からの前記動作を停止させる指示に応じて、前記非接触識別タグに対してその動作を停止させる指示を与える第２の動作停止指示手段と、前記ホスト装置からの前記動作を再開させる指示に応じて、前記動作の停止された前記非接触識別タグに、その動作を再開させる指示を与える第２の動作再開指示手段と、を備え、
前記非接触識別タグは、前記リーダ・ライタ装置からの動作の停止指示に応じて動作を停止し、前記リーダ・ライタ装置からの動作の再開指示に応じて停止中の動作を再開することを特徴としている。
【００２１】
このような構成であれば、ホスト装置は、第１の動作停止指示手段によって、非接触識別タグに対してその動作を停止させる指示を与えることが可能であり、第１の動作再開指示手段によって、第１の動作停止指示手段によって動作の停止された非接触識別タグに、その動作を再開させる指示を与えることが可能である。また、リーダ・ライタ装置は、第２の動作停止指示手段によって、ホスト装置からの前記動作を停止させる指示に応じて、非接触識別タグに対してその動作を停止させる指示を与えることが可能であり、第２の動作再開指示手段によって、ホスト装置からの前記動作を再開させる指示に応じて、動作の停止された非接触識別タグに、その動作を再開させる指示を与えることが可能である。
従って、リーダ・ライタ装置と非接触識別タグとの間で、不必要な通信が行われないようにすることができ、速やかに複数の非接触識別タグにおいてタイムスロット番号が重複しない状態へと移行することが可能となる。
【００２２】
〔発明８〕  更に、発明８のデータ通信システムは、複数の発明１乃至発明４のいずれか１の非接触識別タグと、リーダ・ライタ装置と、ホスト装置と、を備え、
前記ホスト装置は、前記リーダ・ライタ装置に、前記複数の非接触識別タグに対して前記タイムスロット番号を設定させるための指示を与える第１のスロット番号設定指示手段と、前記リーダ・ライタ装置から前記非接触識別タグの前記識別番号を含むタグ情報を取得する第１のタグ情報取得手段とを備え、
前記リーダ・ライタ装置は、前記ホスト装置からの前記指示に応じて、前記複数の非接触識別タグに前記タイムスロット番号の設定指示を与える第２のスロット番号設定指示手段と、前記非接触識別タグから、当該非接触識別タグの前記識別番号を含むタグ情報を取得する第２のタグ情報取得手段と、前記第２のタグ情報取得手段によって取得した前記タグ情報に基づいて、前記複数の非接触識別タグの中に前記タイムスロット番号の重複したものがあるか否かを検出する重複タグ検出手段と、前記重複タグ検出手段によって前記タイムスロット番号の重複した非接触識別タグがあると検出された場合に、その非接触識別タグに対して前記タイムスロット番号の再設定を行わせるための指示を与える再設定指示手段と、前記第２のタグ情報取得手段によって取得した前記タグ情報を前記ホスト装置に送信する第１のタグ情報送信手段と、を備え、
前記非接触識別タグは、前記リーダ・ライタ装置からの前記タイムスロット番号の設定指示に応じて、前記タイムスロット番号の設定処理を行い、且つ、前記リーダ・ライタ装置からの前記タイムスロット番号の再設定指示に応じて、前記タイムスロット番号の再設定処理を行うスロット番号再設定手段と、前記リーダ・ライタ装置に前記タグ情報を送信する第２のタグ情報送信手段と、を備えることを特徴としている。
【００２３】
このような構成であれば、ホスト装置は、第１のスロット番号設定指示手段によって、リーダ・ライタ装置に、複数の非接触識別タグに対してタイムスロット番号を設定させるための指示を与えることが可能であり、第１のタグ情報取得手段によってリーダ・ライタ装置から非接触識別タグの前記識別番号を含むタグ情報を取得することが可能である。
一方、リーダ・ライタ装置は、第２のスロット番号設定指示手段によって、ホスト装置からの前記指示に応じて、複数の非接触識別タグにタイムスロット番号の設定指示を与えることが可能であり、第２のタグ情報取得手段によって、非接触識別タグから、当該非接触識別タグの前記識別番号を含むタグ情報を取得することが可能であり、重複タグ検出手段によって、第２のタグ情報取得手段によって取得した前記タグ情報に基づいて、複数の非接触識別タグの中にタイムスロット番号の重複したものがあるか否かを検出することが可能である。また、リーダ・ライタ装置は、重複タグ検出手段によってタイムスロット番号の重複した非接触識別タグがあると検出された場合に、再設定指示手段によって、その非接触識別タグに対してタイムスロット番号の再設定を行わせるための指示を与えることが可能であり、第１のタグ情報送信手段によって、前記第２のタグ情報取得手段によって取得した前記タグ情報をホスト装置に送信することが可能である。
【００２４】
非接触識別タグは、スロット番号再設定手段によって、リーダ・ライタ装置からのタイムスロット番号の設定指示に応じて、タイムスロット番号の設定処理を行い、且つ、リーダ・ライタ装置からのタイムスロット番号の再設定指示に応じて、タイムスロット番号の再設定処理を行うことが可能であり、第２のタグ情報送信手段によって、リーダ・ライタ装置に前記タグ情報を送信することが可能である。
【００２５】
従って、非接触識別タグは、乱数発生手段の番号発生確率のみに依存しないタイムスロット番号の設定処理を行うので、これにより、複数の非接触識別タグにおいて番号が重複し難いタイムスロット番号の設定処理が可能となる。更に、非接触識別タグの識別番号を含むタグ情報を取得するようにしたので、再設定時の指示対象からタイムスロット番号の重複しているもの以外の非接触識別タグを除外することが可能となる。
【００２６】
また、発明６のデータ通信システムと比べて、仮に、タイムスロット番号が重複したような場合でも、リーダ・ライタ装置からホスト装置に前記重複の情報を送信する必要がない。かつ、ホスト装置からリーダ・ライタ装置にタイムスロット番号の再設定を行わせるための指示を与える必要もない。従って、ホスト装置とリーダ・ライタ装置との間での通信時間の短縮化に貢献することができる。
【００２７】
〔発明９〕  更に、発明９のデータ通信システムは、発明８のデータ通信システムにおいて、前記タグ情報は、前記タイムスロット番号が重複していることを示す情報を含むことを特徴としている。このような構成であれば、例えば、非接触識別タグの設計者は、コリジョンの発生履歴（発生回数の多い、少ない等）に基づいて、非接触識別タグにおける乱数の発生アルゴリズムや、固有の識別番号の設定方法の見直し等を行うことが可能である。
【００２８】
〔発明１０〕  更に、発明１０のデータ通信システムは、発明６乃至発明９のいずれか１のデータ通信システムにおいて、前記ホスト装置は、前記リーダ・ライタ装置から取得した前記タグ情報を表示するタグ情報表示手段を備えることを特徴としている。
このような構成であれば、ホスト装置は、タグ情報表示手段によって、前記リーダ・ライタ装置から取得した前記タグ情報を表示することが可能である。
従って、ホスト装置の管理者は、タグ情報を簡易に知ることが可能となり、ホスト装置の適切な操作等が可能となる。
【００２９】
〔発明１１〕  更に、発明１１のデータ通信システムは、発明８乃至発明１０のいずれか１のデータ通信システムにおいて、
前記リーダ・ライタ装置は、前記非接触識別タグに対してその動作を停止させる指示を与える動作停止指示手段と、前記動作停止指示手段によって動作の停止された前記非接触識別タグに、その動作を再開させる指示を与える動作再開指示手段と、を備え、
前記非接触識別タグは、前記リーダ・ライタ装置からの動作の停止指示に応じて動作を停止し、前記リーダ・ライタ装置からの動作の再開指示に応じて停止中の動作を再開し、
前記リーダ・ライタ装置は、前記重複タグ検出手段によって前記タイムスロット番号の重複した非接触識別タグがあると検出された場合には、前記動作停止指示手段によって、前記タイムスロット番号の重複していない前記非接触タグに対して動作を停止する指示を与え、かつ、前記再設定指示手段によって前記タイムスロット番号の重複を解消した場合には、前記動作再開指示手段によって、前記動作の停止された前記非接触識別タグに対して動作を再開させる指示を与えることを特徴としている。
【００３０】
このような構成であれば、リーダ・ライタ装置は、動作停止指示手段によって非接触識別タグに対してその動作を停止させる指示を与えることが可能であり、動作再開指示手段によって、動作停止指示手段によって動作の停止された非接触識別タグに、その動作を再開させる指示を与えることが可能である。
従って、リーダ・ライタ装置と非接触識別タグとの間で、不必要な通信が行われないようにすることができ、速やかに複数の非接触識別タグにおいてタイムスロット番号が重複しない状態へと移行することが可能となる。
【００３１】
〔発明１２〕  また、発明１２の非接触識別タグ制御プログラムは、発明１の非接触識別タグを制御するためのコンピュータが実行可能なプログラムであって、
前記非接触識別タグには、固有の識別番号が設定されており、
乱数を発生する乱数発生ステップと、
前記乱数発生ステップにおいて発生された乱数と、前記識別番号と、に基づき前記タイムスロット番号を設定するスロット番号設定ステップと、を備えることを特徴としている。
ここで、本発明は、発明１の非接触識別タグを制御するためのプログラムであり、その効果は重複するので記載を省略する。
【００３２】
〔発明１３〕  更に、発明１３の非接触識別タグ制御プログラムは、発明１２の非接触識別タグ制御プログラムにおいて、前記乱数と、前記識別番号を示すビット列のビット位置と、が予め対応付けられており、
前記タイムスロット番号設定ステップにおいては、前記識別番号を示すビット列から、前記乱数に対応したビット位置の数値を抜き出し、当該抜き出した数値に基づき前記タイムスロット番号を設定するようになっていることを特徴としている。
ここで、本発明は、発明２の非接触識別タグを制御するためのプログラムであり、その効果は重複するので記載を省略する。
【００３３】
〔発明１４〕  更に、発明１４の非接触識別タグ制御プログラムは、発明１３の非接触識別タグ制御プログラムにおいて、前記識別番号を示すビット列を所定ビット数単位で複数のブロックにブロック分けすると共に、各ブロック毎にそれぞれ異なる番号を付し、
前記スロット番号設定ステップにおいては、前記乱数発生ステップによって発生した乱数に対応する番号の前記ブロックを選択し、当該選択されたブロックに含まれるビット列から成る数値に基づき前記タイムスロット番号を設定するようになっていることを特徴としている。
ここで、本発明は、発明３の非接触識別タグを制御するためのプログラムであり、その効果は重複するので記載を省略する。
【００３４】
〔発明１５〕  更に、発明１５の非接触識別タグ制御プログラムは、発明１３の非接触識別タグ制御プログラムにおいて、前記スロット番号設定ステップにおいては、前記乱数発生ステップによって発生された乱数に基づき前記識別番号を示すビット列から特定のビットを選択し、当該選択されたビットの位置を基準とした上位又は下位の所定ビット数のビット列から成る数値に基づき前記タイムスロット番号を設定するようになっていることを特徴としている。
ここで、本発明は、発明４の非接触識別タグを制御するためのプログラムであり、その効果は重複するので記載を省略する。
【００３５】
〔発明１６〕  更に、発明１６の非接触識別タグ制御プログラムは、発明１２乃至発明１５のいずれか１に記載の非接触識別タグ制御プログラムにおいて、請求項８記載のデータ通信システムにおける前記非接触識別タグを制御するためのコンピュータが実行可能なプログラムであって、
前記リーダ・ライタ装置からの前記タイムスロット番号の再設定指示に応じて、前記タイムスロット番号の再設定処理を行うスロット番号再設定ステップを備えることを特徴としている。
ここで、本発明は、発明８のデータ通信システムにおける非接触識別タグを制御するためのプログラムであり、その効果は重複するので記載を省略する。
【００３６】
〔発明１７〕  更に、発明１７の非接触識別タグ制御プログラムは、発明１６の非接触識別タグ制御プログラムにおいて、前記リーダ・ライタ装置に前記タグ情報を送信する第２のタグ情報送信ステップを備えることを特徴としている。
ここで、本発明は、発明９のデータ通信システムにおける非接触識別タグを制御するためのプログラムであり、その効果は重複するので記載を省略する。
【００３７】
〔発明１８〕  更に、発明１８の非接触識別タグ制御プログラムは、発明１６又は発明１７の非接触識別タグ制御プログラムにおいて、前記リーダ・ライタ装置からの動作の停止指示に応じて動作を停止するステップと、前記リーダ・ライタ装置からの動作の再開指示に応じて停止中の動作を再開するステップと、を備えることを特徴としている。
ここで、本発明は、発明１１のデータ通信システムにおける非接触識別タグを制御するためのプログラムであり、その効果は重複するので記載を省略する。
【００３８】
〔発明１９〕  更に、発明１９のリーダ・ライタ装置制御プログラムは、発明６のデータ通信システムにおける前記リーダ・ライタ装置を制御するためのコンピュータが実行可能なプログラムであって、
前記ホスト装置からの前記タイムスロット番号を設定させるための指示に応じて、前記複数の非接触識別タグに前記タイムスロット番号の設定指示を与えるステップと、
前記ホスト装置からの前記タイムスロット番号を再設定させるための指示に応じて、前記重複が検出された前記非接触識別タグに対して前記タイムスロット番号の再設定を行わせるための指示を与えるステップと、
前記非接触識別タグから、当該非接触識別タグの前記識別番号を含むタグ情報を取得するステップと、
前記第２のタグ情報取得手段によって取得した前記タグ情報を前記ホスト装置に送信するステップと、
前記第２のタグ情報取得手段によって取得した前記タグ情報に基づいて、前記複数の非接触識別タグの中に前記タイムスロット番号の重複したものがあるか否かを検出するステップと、
前記重複タグ検出手段によって前記タイムスロット番号の重複した非接触識別タグがあると検出された場合に、前記重複の情報を前記ホスト装置に送信するステップと、を備えることを特徴としている。
ここで、本発明は、発明６のデータ通信システムにおけるリーダ・ライタ装置を制御するためのプログラムであり、その効果は重複するので記載を省略する。
【００３９】
〔発明２０〕  更に、発明２０のリーダ・ライタ装置制御プログラムは、発明８のデータ通信システムにおける前記リーダ・ライタ装置を制御するためのコンピュータが実行可能なプログラムであって、
前記ホスト装置からの前記指示に応じて、前記複数の非接触識別タグに前記タイムスロット番号の設定指示を与えるステップと、
前記非接触識別タグから、当該非接触識別タグの前記識別番号を含むタグ情報を取得するステップと、
前記第２のタグ情報取得手段によって取得した前記タグ情報に基づいて、前記複数の非接触識別タグの中に前記タイムスロット番号の重複したものがあるか否かを検出するステップと、
前記重複タグ検出手段によって前記タイムスロット番号の重複した非接触識別タグがあると検出された場合に、その非接触識別タグに対して前記タイムスロット番号の再設定を行わせるための指示を与えるステップと、
前記第２のタグ情報取得手段によって取得した前記タグ情報を前記ホスト装置に送信するステップと、を備えることを特徴としている。
【００４０】
ここで、本発明は、発明８のデータ通信システムにおけるリーダ・ライタ装置を制御するためのプログラムであり、その効果は重複するので記載を省略する。
【発明を実施するための最良の形態】
【００４１】
以下、本発明の実施の形態を図面に基づき説明する。図１〜図８は、本発明に係るデータ通信システムの実施の形態を示す図である。
（１）第1の実施の形態
まず、本発明に係るデータ通信システムの構成を図１に基づき説明する。図１は、本発明に係るデータ通信システムの全体構成を示す図である。
【００４２】
データ通信システム１は、図１に示すように、ホスト装置２と、リーダ・ライタ装置３と、複数の非接触識別タグ４と、を含んだ構成となっている。
ホスト装置２は、非接触識別タグ４にリーダ・ライタ装置３を介して各種コマンドを送信する機能と、リーダ・ライタ装置２の通信範囲内にある非接触識別タグ４の各種情報を管理する機能と、備えている。なお、詳細な構成は後述する。
【００４３】
リーダ・ライタ装置３は、通信範囲内にある複数の非接触識別タグ４との間で非接触のデータ通信を行う機能を備えている。そして、データ通信を行う前準備として、通信範囲内に存在する複数の非接触識別タグ４との間でタイムスロット番号を決定するための情報を送受信したり、非接触識別タグ４に動作停止コマンド又は動作再開コマンドを送信したりする。更に、各非接触識別タグ４の有する固有の識別番号を含むタグ情報を取得し、これをホスト装置２に送信する。
【００４４】
なお更に、非接触識別タグ４から取得した情報に基づき、重複したタイムスロット番号が設定されている非接触識別タグ４があるか否かを検出する機能を有し、この機能により重複して設定された非接触識別タグ４があると検出された場合に、その非接触識別タグ４に対してタイムスロット番号を再設定させるコマンドを送信する。なお、詳細な構成は後述する。
【００４５】
ここで、タイムスロットとは、少なくとも、所定の時間幅及びタイムスロット番号の情報を有したもので、リーダ・ライタ装置３は、このタイムスロット番号の順番に該当する番号のスロットを用いて非接触識別タグ４とデータ通信を行うことになる。但し、複数の非接触識別タグ４においてタイムスロット番号が重複して設定されているときには、同じ番号の非接触識別タグ４から同時に応答が返ってくることになり、データのコリジョンが発生する。このような状態では、リーダ・ライタ装置３と番号の重複した非接触識別タグ４との間で正常に通信が行われないことになる。
【００４６】
非接触識別タグ４は、リーダ・ライタ装置２との間で固有の識別番号を用いた非接触のデータ通信を行う機能を備えている。更に、リーダ・ライタ装置３からのタイムスロット番号の設定コマンドを受信すると、乱数を発生して、この乱数と固有の識別番号とに基づきタイムスロット番号を設定する。そして、リーダ・ライタ装置３からのＥＯＦ（End of File）コマンドに応じて、自己に設定されたタイムスロット番号に対応したＥＯＦコマンドを受信したときに、識別番号を含むタグ情報を送信する。なお、詳細な構成は後述する。
【００４７】
更に、図２に基づき、ホスト装置２の詳細な構成を説明する。図２は、ホスト装置２の詳細構成を示すブロック図である。
ホスト装置２は、図２に示すように、データ制御部２ａと、データ通信部２ｂと、表示部２ｃと、データ記憶部２ｄと、を含んだ構成となっている。
データ制御部２ａは、非接触識別タグ４に、タイムスロット番号の設定をさせるためのコマンド、データを送信するためのコマンド等の各種コマンドをデータ通信部２ｂを介してリーダ・ライタ装置２に送信したり、リーダ・ライタ装置３から取得したタグ情報を表示部２ｃによって表示したりする機能を備えたものである。
【００４８】
データ通信部２ｂは、データ制御部２ａから制御命令に応じて、リーダ・ライタ装置３との間で無線通信を行う機能を備えたものである。
表示部２ｃは、液晶ディスプレイやブラウン管ディスプレイ等の表示部を備えたもので、データ制御部２ａの制御命令に応じて、非接触識別タグ４の情報等を表示部に表示する。
【００４９】
データ記憶部２ｄは、上記各部を制御するためのプログラムや、リーダ・ライタ装置３から取得した非接触識別タグ４の情報等を記憶するための不揮発性の記憶媒体である。
ここで、ホスト装置２は、図示しない、上記各部に対応する制御プログラムを実行するためのＣＰＵと、制御プログラムの記憶された不揮発性の記憶媒体と、制御プログラムの実行時に必要なデータを一時記憶するためのＲＡＭと、を備え、ＣＰＵにより上記各部に対応する制御プログラムを実行することによって、各部の動作を制御するものである。
【００５０】
更に、図３に基づき、リーダ・ライタ装置３の詳細な構成を説明する。図３は、リーダ・ライタ装置３の詳細構成を示すブロック図である。
リーダ・ライタ装置３は、図３に示すように、データ受信部３ａと、データ送信部３ｂと、データ制御部３ｃと、データ通信部３ｄと、データ記憶部３ｅと、コイルアンテナ３ｆと、を含んだ構成となっている。
【００５１】
データ受信部３ａは、コイルアンテナ３ｆを介して電磁誘導方式により電磁波を受信し、更に、当該受信した電磁波を復調して、電磁波に含まれるデータ信号と搬送波とを分離しデータ信号を抽出する機能を備えるものである。
データ送信部３ｂは、データ記憶部３ｅに記憶された所定データを、電磁誘導方式によって非接触識別タグ４に送信するために、データ制御部３ｃからの各種データを変調し、コイルアンテナ３ｆを介して送信する機能を備えるものである。
【００５２】
データ制御部３ｃは、通信範囲内にある複数の非接触識別タグ４に、データ送信部３ｂを介して通信順番を決定するためのタイムスロット番号を設定させるためのコマンドを送信したり、非接触識別タグ４からタグ情報を取得したり、当該取得したタグ情報に基づき、タイムスロット番号の重複した非接触識別タグ４が存在するか否かを検出したり、タイムスロット番号の重複した非接触識別タグ４にデータ送信部３ｂを介してタイムスロット番号を再設定させるためのコマンドを送信したり、タイムスロット番号が正常に設定された非接触識別タグ４にデータ送信部３ｂを介してリーダ・ライタ装置３への動作を停止させるためのコマンドを送信したり、動作の停止された非接触識別タグ４にデータ送信部３ｂを介して動作を再開させるためのコマンドを送信したりする。
【００５３】
データ通信部３ｄは、データ制御部３ｃの制御命令に応じて、ホスト装置３との間で無線によるデータ通信を行う機能を備えたものである。
データ記憶部３ｅは、上記各部を制御するためのプログラム、非接触識別タグ４から取得したタグ情報などを記憶するための不揮発性の記憶媒体である。ここで、本実施の形態においては、ＥＥＰＲＯＭ（Electrically erasable programmable read only memory）やＦｅＲＡＭ（Ferroelectric Random Access Memory）等の不揮発性メモリを使用する。
【００５４】
コイルアンテナ３ｆは、導体を基板上にスパイラル状に形成してなるもので、非接触識別タグ４から送信されるデータを含んだ電磁波を電磁誘導方式で受信するためのものである。
ここで、リーダ・ライタ装置３は、図示しない、上記各部に対応する制御プログラムを実行するためのＣＰＵと、制御プログラムの記憶された不揮発性の記憶媒体と、制御プログラムの実行時に必要なデータを一時記憶するためのＲＡＭと、を備え、ＣＰＵにより上記各部に対応する制御プログラムを実行することによって、各部の動作を制御するものである。
【００５５】
更に、図４に基づき、非接触識別タグ４の詳細な構成を説明する。図４は、非接触識別タグ４の詳細構成を示すブロック図である。
非接触識別タグ４は、図４に示すように、データ受信部４ａと、データ送信部４ｂと、データ制御部４ｃと、データ記憶部４ｄと、駆動電力生成部４ｅと、コイルアンテナ４ｆと、を含んだ構成となっている。
【００５６】
データ受信部４ａは、コイルアンテナ４ｆを介して電磁誘導方式により電磁波を受信し、更に、当該受信した電磁波を復調して、電磁波に含まれるデータ信号と搬送波とを分離しデータ信号を抽出する機能を備えるものである。
データ送信部４ｂは、データ記憶部４ｄに記憶された識別番号等の所定データを、電磁誘導方式によってリーダ・ライタ装置３に送信するために、データ制御部４ｃからの各種データを変調し、コイルアンテナ４ｆを介して送信する機能を備えるものである。
【００５７】
データ制御部４ｃは、リーダ・ライタ装置３からのコマンドに応じて、乱数を発生させ、当該乱数及び固有の識別番号に基づきタイムスロット番号を設定したり、識別番号を含むタグ情報をデータ送信部４ｂを介してリーダ・ライタ装置３に送信したり、リーダ・ライタ装置からのコマンドに応じて、動作を停止したり、停止した動作を再開したりする処理を行うものである。
【００５８】
データ記憶部４ｄは、上記各部を制御するためのプログラム、固有の識別番号、タイムスロット番号などを記憶するための不揮発性の記憶媒体である。ここで、本実施の形態においては、ＥＥＰＲＯＭ（Electrically erasable programmable read only memory）やＦｅＲＡＭ（Ferroelectric Random Access Memory）等の不揮発性メモリを使用する。
駆動電力生成部４ｅは、リーダ・ライタ装置３から受信した電磁波から駆動電力を生成して上記各部に供給するものである。
【００５９】
コイルアンテナ４ｆは、導体を基板上にスパイラル状に形成してなるもので、リーダ・ライタ装置３から送信されるデータを含んだ電磁波を電磁誘導方式で受信するためのものである。
ここで、非接触識別タグ４は、図示しない、上記各部に対応する制御プログラムを実行するためのＣＰＵと、制御プログラムの実行時に必要なデータを一時記憶するためのＲＡＭと、を備え、ＣＰＵにより上記不揮発性の記憶媒体に記憶された上記各部に対応する制御プログラムを実行することによって、各部の動作を制御するものである。なお、本実施の形態においては、ＣＰＵ及び制御プログラムにより非接触識別タグ４の動作を制御する構成としているが、これに限らず、これらの動作をロジック回路により制御する構成としても良い。
【００６０】
更に、図５に基づき、データ通信システム１のより具体的な動作を説明する。図５は、データ通信システム１におけるタイムスロット番号設定時の各装置の処理の流れを示すタイムチャートである。
ここで、リーダ・ライタ装置３の通信範囲内には、特に図示しないが、第１〜第４の非接触識別タグ４Ａ〜４Ｄ（図５中ではＴａｇ１〜Ｔａｇ４）の４つが存在していることとする。
【００６１】
また、固有の識別番号として、第１の非接触識別タグ４Ａには「００１０−１１０１−００００」が、第２の非接触識別タグ４Ｂには「１１１０−０００１−１１０１」が、第３の非接触識別タグ４Ｃには「００１０−００００−１０１１」が、第４の非接触識別タグ４Ｄには「００００−１０１０−１１１１」が、それぞれ設定されている。ここでは、識別番号を「−」符号により４桁のビット列を１ブロックとして３つのブロックにそれぞれ区分している。
【００６２】
まず、ホスト装置２は、第１〜第４の非接触識別タグ４Ａ〜４Ｄにタイムスロット番号を設定させるためのコマンド（図５中に示す「Ｉｎｖｅｎｔｏｒｙ」コマンド）をリーダ・ライタ装置３に送信する。
リーダ・ライタ装置３は、「Ｉｎｖｅｎｔｏｒｙ」コマンドを受信すると、通信範囲内にある第１〜第４の非接触識別タグ４Ａ〜４Ｄに、これらが解析可能な形式で、タイムスロット番号を設定させるための「Ｉｎｖｅｎｔｏｒｙ」コマンドと同等のコマンドを送信する。
【００６３】
第１〜第４の非接触識別タグ４Ａ〜４Ｄは、リーダ・ライタ装置３から送信された上記タイムスロット番号を設定するコマンドを受信すると、まず、それぞれの駆動電力生成部４ｅにおいて受信した信号の搬送波から駆動電力を生成し各非接触識別タグ４を構成する各部に供給する。
駆動電力が供給されると、データ制御部４ｃにおいて、まず、自己の備える図示しない第１のタイムスロット用カウンタを０にクリアし、次に、乱数（ここでは、０〜２の数値範囲）を発生し、この乱数と上記した識別番号とに基づきタイムスロット番号を設定する。
【００６４】
ここでは、第１の非接触識別タグ４Ａにおいて、乱数「１」が発生し、この乱数と識別番号「００１０−１１０１−００００」とに基づき、タイムスロット番号として「１１０１（１３）」が設定される（ここで、括弧内の数値は１０進数）。つまり、３つにブロック分けされた識別番号の各ブロックに対して左から順番に、乱数の「０」、「１」、「２」が対応している。
【００６５】
同様に、第２の非接触識別タグ４Ｂにおいては、乱数「２」が発生し、この番号と識別番号「１１１０−０００１−１１０１」とに基づき、タイムスロット番号として「１１０１（１３）」が設定される（ここで、括弧内の数値は１０進数）。
更に、第３の非接触識別タグ４Ｃにおいては、乱数「０」が発生し、この乱数と識別番号「００１０−００００−１０１１」とに基づき、タイムスロット番号として「００１０（２）」が設定される（ここで、括弧内の数値は１０進数）。
【００６６】
更に、第４の非接触識別タグ４Ｄにおいては、乱数「２」が発生し、この乱数と識別番号「００００−１０１０−１１１１」とに基づき、タイムスロット番号として「１１１１（１５）」が設定される（ここで、括弧内の数値は１０進数）。
次に、リーダ・ライタ装置３は、タイムスロット番号を設定させるコマンドの送信後に、まず、自己の備える図示しない第２のタイムスロット用カウンタを０にクリアし、次に、ＥＯＦコマンドを第１〜第４の非接触識別タグ４Ａ〜４Ｄに向けて送信する。第１〜第４の非接触識別タグ４Ａ〜４Ｄは、ＥＯＦコマンドを受信すると上記した第１のタイムスロット用カウンタの値０と自己に設定されたタイムスロット番号とを比較する。ここでは、タイムスロット番号０の設定されたタグは無いので、第１〜第４の非接触識別タグ４Ａ〜４Ｄは、どのタグも応答を返さず、第１のタイムスロット用カウンタの値を１インクリメントする。
【００６７】
そして、リーダ・ライタ装置３は、決められた時間中に非接触識別タグ４から応答を受信するか、あるいは、応答が無いことを確認すると、再びＥＯＦコマンドを第１〜第４の非接触識別タグ４Ａ〜４Ｄに向けて送信する。このとき、リーダ・ライタ装置３においても、ＥＯＦを送信する毎に第２のタイムスロット用カウンタを１インクリメントする。
本実施の形態においては、このようにして、第２のタイムスロット用カウンタを１インクリメントする毎に、このタイムスロット用カウンタの値が１５になるまで第１〜第４の非接触識別タグ４Ａ〜４Ｄに向けてＥＯＦコマンドを送信する。
【００６８】
ここでは、まず、第１のタイムスロット用カウンタ値２に対応するＥＯＦコマンドに対して、第３の非接触識別タグ４Ｃから、上記した識別番号を含む情報が応答として送信されてくることになる。
そして、次に、第１のタイムスロット用カウンタ値１３に対応するＥＯＦコマンドに対して、第１の非接触識別タグ４Ａ及び第２の非接触識別タグ４Ｂからそれぞれ応答が送信されてくることになる。この場合は、第１の非接触識別タグ４Ａ及び第２の非接触識別タグ４Ｂにおいて、同じタイムスロット番号が設定されていることになり、リーダ・ライタ装置３において、受信される信号が異常な状態（例えば、マンチェスター符号を用いた場合の１と０とに対応する信号波形が重なった状態）となり、コリジョン状態であることが検出される。ここで、リーダ・ライタ装置３は、コリジョンがあったことを記憶しておく。
【００６９】
更に、第１のタイムスロット用カウンタ値１５に対応するＥＯＦコマンドに対して、第４の非接触識別タグ４Ｄから応答が送信されてくることになる。これにより、第２のタイムスロット用カウンタ値０〜１５までに対応したＥＯＦコマンドの送信処理が終了し、リーダ・ライタ装置３は、第１〜第４の非接触識別タグ４Ａ〜４Ｄから受信した情報（上記したコリジョンに関する情報を含む）をホスト装置２に送信する。
【００７０】
ホスト装置２は、リーダ・ライタ装置３から、最初のＥＯＦコマンドに対する第１〜第４の非接触識別タグ４Ａ〜４Ｄの情報を取得すると、この情報を表示し、オペレータは、この表示情報から通信範囲内にある第３及び第４の非接触識別タグ４Ｃ及び４Ｄ以外の非接触識別タグ４にコリジョンが発生していることを知る。そして、正常な応答のあった第３及び第４の非接触識別タグ４Ｃ及び４Ｄに対して、この順番に、動作を停止させるコマンド（図５中の「Ｓｔａｙ＿Ｑｕｉｅｔ」コマンド）をリーダ・ライタ装置３に送信する。
【００７１】
一方、リーダ・ライタ装置３は、ホスト装置２から「Ｓｔａｙ＿Ｑｕｉｅｔ」コマンドを受信すると、第３及び第４の非接触識別タグ４Ｃ及び４Ｄに対して上記同様の順番で、これらが解析可能な形式で、「Ｓｔａｙ＿Ｑｕｉｅｔ」コマンドと同等の動作停止用コマンドを送信する。これにより、第３及び第４の非接触識別タグ４Ｃ及び４Ｄは、リーダ・ライタ装置３からの動作を再開させるためのコマンド以外のコマンドに対して動作を停止した状態となる。ここでは、第３及び第４の非接触識別タグ４Ｃ及び４Ｄの識別番号が解っているのでそれぞれ個別にコマンドを送信することが可能である。
【００７２】
更に、ホスト装置２は、コリジョンのあった非接触識別タグ４（ここでは、第１及び第２の非接触識別タグ４Ａ及び４Ｂ）に対して、タイムスロット番号の再設定をさせるためのコマンド（ここでは、「Ｉｎｖｅｎｔｏｒｙ」コマンド）をリーダ・ライタ装置３に送信する。リーダ・ライタ装置３は、このコマンドを受信すると、タイムスロット番号を設定させるコマンドを通信範囲内にある第１〜第４の非接触識別タグ４Ａ〜４Ｄに向けて送信する。
【００７３】
ここで、第３及び第４の非接触識別タグ４Ｃ及び４Ｄは、上記した動作停止用コマンドにより動作停止の状態となっているので、タイムスロット番号を設定させるコマンドを受信しても、タイムスロット番号の設定処理を行わないことになる。
一方、第１及び第２の非接触識別タグ４Ａ及び４Ｂは、上記リーダ・ライタ装置３からのタイムスロット番号を設定させるコマンドを受信すると、上記同様に、第１のタイムスロット用カウンタを０にクリアし、更に、乱数（ここでは、０〜２の数値範囲）を発生し、この乱数と上記した識別番号とに基づきタイムスロット番号を設定する。ここでは、第１の非接触識別タグ４Ａにタイムスロット番号として「００１０（２）」が設定され、第２の非接触識別タグ４Ｂにタイムスロット番号として「１１１０（１４）」が設定される。
【００７４】
従って、タイムスロット用カウンタ値２に対応するＥＯＦコマンドに対して、第１の非接触識別タグ４Ａから応答が送信され、第１のタイムスロット用カウンタ値１４に対応するＥＯＦコマンドに対して、第２の非接触識別タグ４Ｂから応答が送信され、それぞれリーダ・ライタ装置３によって受信される。リーダ・ライタ装置３は第１のタイムスロット用カウンタ値１５に対応するＥＯＦコマンドの送信後に、第１及び第２の非接触識別タグ４Ａ及び４Ｂから取得したタグ情報をホスト装置２に送信する。
【００７５】
ホスト装置２は、リーダ・ライタ装置３から第１及び第２の非接触識別タグ４Ａ及び４Ｂから取得したタグ情報を取得することにより、リーダ・ライタ装置３の通信範囲内にある第１〜第４の非接触識別タグ４Ａ〜４Ｄのそれぞれの識別番号を知ることになる。
ホスト装置２は、リーダ・ライタ装置３の通信範囲内にある全ての非接触識別タグ４のタグ情報を取得すると、動作停止状態にある第３及び第４の非接触識別タグ４Ｃ及び４Ｄに対して、これらの停止中の動作を再開させるためのコマンド（図５中に示す「Ｒｅｓｅｔ  ｔｏ  ｒｅａｄｙ」コマンド）を、リーダ・ライタ装置３に送信する。
【００７６】
リーダ・ライタ装置３は、「Ｒｅｓｅｔ  ｔｏ  ｒｅａｄｙ」コマンドを受信すると、第３及び第４の非接触識別タグ４Ｃ及び４Ｄに対して、これらが解析可能な形式で、「Ｒｅｓｅｔ  ｔｏ  ｒｅａｄｙ」コマンドと同等の動作再開用コマンドを送信する。
これにより、第３及び第４の非接触識別タグ４Ｃ及び４Ｄは上記動作再開用コマンドを受信すると、それぞれ停止中の動作を再開する。
【００７７】
従って、ホスト装置２は、以降、取得した識別番号を用いて、リーダ・ライタ装置３の通信範囲内にある特定の非接触識別タグ４に対してコマンドの送信等を行うことが可能となる。
更に、非接触識別タグ４におけるタイムスロット番号の別の設定方法を説明する。ここでは、上記同様に、リーダ・ライタ装置３の通信範囲内には、第１〜第４の非接触識別タグ４Ａ〜４Ｄが存在することとする。また、固有の識別番号として、第１の非接触識別タグ４Ａには「００１０１１０１００００」が、第２の非接触識別タグ４Ｂには「１１１００００１１１０１」が、第３の非接触識別タグ４Ｃには「００１０００００１０１１」が、第４の非接触識別タグ４Ｄには「００００１０１０１１１１」が、それぞれ設定されている。
【００７８】
リーダ・ライタ装置３から、上記同様にタイムスロット番号を設定させるコマンドを取得すると、第１〜第４の非接触識別タグ４Ａ〜４Ｄは、まず、タイムスロット用カウンタを０にクリアし、次に、乱数（ここでは、０〜８の数値範囲）を発生させる。ここでは、第１の非接触識別タグ４Ａにおいて、例えば、乱数「１」が発生すると、識別番号「００１０１１０１００００」を下位ビットから数えて２番目、つまり「００１０１１０１００（０）０」における括弧で囲んだ数値が選択される、そして、このビットを含む上位ビット方向の４ビットが更に選択され、これがタイムスロット番号として設定される。つまり、「００１０１１０（１０００）０」における括弧で囲まれた４ビットがタイムスロット番号「１０００（８）」として設定される（ここで、４ビットの後にある括弧内の数値は１０進数）。
【００７９】
同様に、第２の非接触識別タグ４Ｂにおいて、例えば、乱数５が発生すると、「１１１（００００）１１１０１」における括弧内の４ビット「００００（０）」がタイムスロット番号として設定され、第３の非接触識別タグ４Ｃにおいて、例えば、乱数７が発生すると、「０（０１００）０００１０１１」における括弧内の４ビット「０１００（４）」がタイムスロット番号として設定され、第４の非接触識別タグ４Ｄにおいて、例えば、乱数８が発生すると、「（００００）１０１０１１１１」における括弧内の４ビット「００００（０）」がタイムスロット番号として設定される。
【００８０】
この場合は、第２の非接触識別タグ４Ｂと第４の非接触識別タグ４Ｄとからの応答にコリジョンが発生することになる。
更に、非接触識別タグ４におけるタイムスロット番号の別の設定方法を説明する。ここでは、上記同様に、リーダ・ライタ装置３の通信範囲内には、第１〜第４の非接触識別タグ４Ａ〜４Ｄが存在することとする。また、固有の識別番号として、第１の非接触識別タグ４Ａには「００１０１１０１００００１１」が、第２の非接触識別タグ４Ｂには「１１１００００１１１０１００」が、第３の非接触識別タグ４Ｃには「００１０００００１０１１００」が、第４の非接触識別タグ４Ｄには「００００１０１０１１１１００」が、それぞれ設定されている。
【００８１】
ここでは、第１の非接触識別タグ４Ａの識別番号を、「００１０−１−１０１０−０−００１１」と「−」により１ビット飛びに４ビット単位の３つのブロックに分ける。
同様に、第２の非接触識別タグ４Ｂの識別番号を「１１１０−０−００１１−１−０１００」、第３の非接触識別タグ４Ｃの識別番号を「００１０−０−０００１−０−１１００」、第４の非接触識別タグ４Ｄの識別番号を「００００−１−０１０１−１−１１００」とブロック分けする。
【００８２】
そして、乱数の数値範囲を０〜２として、それぞれ左のブロックから順に乱数の「０」、「１」、「２」に対応させる。
従って、第１の非接触識別タグ４Ａにおいて、乱数「１」が発生した場合は、「００１０−１−（１０１０）−０−００１１」における括弧内の４ビット「１０１０（１０）」（ここで、４ビットの後にある括弧内の数値は１０進数）がタイムスロット番号として設定される。
【００８３】
同様に、第２の非接触識別タグ４Ｂにおいて、例えば、乱数０が発生すると、「（１１１０）−０−００１１−１−０１００」における括弧内の４ビット「１１１０（１４）」がタイムスロット番号として設定され、第３の非接触識別タグ４Ｃにおいて、例えば、乱数２が発生すると、「００１０−０−０００１−０−（１１００）」における括弧内の４ビット「１１００（１２）」がタイムスロット番号として設定され、第４の非接触識別タグ４Ｄにおいて、例えば、乱数０が発生すると、「（００００）−１−０１０１−１−１１００」における括弧内の４ビット「００００（０）」がタイムスロット番号として設定される。
【００８４】
この場合は、タイムスロット番号が重複しないためコリジョンは発生せず、タイムスロット番号の再設定処理は発生しない。
非接触識別タグ４におけるタイムスロット番号の別の設定方法を説明する。ここでは、上記同様に、リーダ・ライタ装置３の通信範囲内には、第１〜第４の非接触識別タグ４Ａ〜４Ｄが存在することとする。また、固有の識別番号として、第１の非接触識別タグ４Ａには「００１０１１０１００００１１」が、第２の非接触識別タグ４Ｂには「１１１００００１１１０１００」が、第３の非接触識別タグ４Ｃには「００１０００００１０１１００」が、第４の非接触識別タグ４Ｄには「００００１０１０１１１１００」が、それぞれ設定されている。
【００８５】
ここでは、第１の非接触識別タグ４Ａの識別番号を、「００１０−（１０）１１−（１１）０１−（０１）００−（００）００−（００）１１」と、括弧内に示す上位ビット側のブロックの下位側２ビットを重複させて「−」により４ビット単位の６つのブロックに分ける。
同様に、第２の非接触識別タグ４Ｂの識別番号を「１１１０−１０００−０００１−０１１１−１１０１−０１００」、第３の非接触識別タグ４Ｃの識別番号を「００１０−１０００−００００−００１０−１０１１−１１００」、第４の非接触識別タグ４Ｄの識別番号を「００００−００１０−１０１０−１０１１−１１１１−１１００」とブロック分けする。
【００８６】
そして、乱数の数値範囲を０〜５として、それぞれ左のブロックから順に乱数の「０」、「１」、「２」、「３」、「４」、「５」に対応させる。
従って、第１の非接触識別タグ４Ａにおいて、乱数「１」が発生した場合は、「００１０−（１０１１）−１１０１−０１００−００００−００１１」における括弧内の４ビット「１０１１（１１）」（ここで、４ビットの後にある括弧内の数値は１０進数）がタイムスロット番号として設定される。
【００８７】
同様に、第２の非接触識別タグ４Ｂにおいて、例えば、乱数０が発生すると、「（１１１０）−１０００−０００１−０１１１−１１０１−０１００」における括弧内の４ビット「１１１０（１４）」がタイムスロット番号として設定され、第３の非接触識別タグ４Ｃにおいて、例えば、乱数２が発生すると、「００１０−１０００−（００００）−００１０−１０１１−１１００」における括弧内の４ビット「００００（０）」がタイムスロット番号として設定され、第４の非接触識別タグ４Ｄにおいて、例えば、乱数４が発生すると、「００００−００１０−１０１０−１０１１−（１１１１）−１１００」における括弧内の４ビット「１１１１（１５）」がタイムスロット番号として設定される。
【００８８】
この場合は、タイムスロット番号が重複しないためコリジョンは発生せず、タイムスロット番号の再設定処理は発生しない。
更に、本実施の形態においては、ホスト装置２及びリーダ・ライタ装置３の各コマンドに応用分野識別子（ＡＦＩ）情報を含ませておき、更に、非接触識別タグ４に対してもＡＦＩ情報を持たせておく。
【００８９】
そして、上記したタイムスロット番号を設定させるためのコマンドを非接触識別タグ４が受信すると、このコマンドに含まれるＡＦＩ情報と、自己の有するＡＦＩ情報とを比較して、これらが一致した場合にのみ、非接触識別タグ４に、タイムスロット番号の設定処理を行うようにすることも可能である。
これにより、複数の異なるＡＦＩ情報を有する非接触識別タグ４が、リーダ・ライタ装置３の通信範囲内に存在していても、特定のＡＦＩ情報（例えば、病院、交通など）を有する非接触識別タグ４とのみ通信を行うことが可能となる。
【００９０】
更に、図６に基づき、タイムスロット番号の設定処理及びタグ情報送信処理時のホスト装置２の動作処理の流れを説明する。図６は、タイムスロット番号の設定処理及びタグ情報送信処理時のホスト装置２の動作処理を示すフローチャートである。
図６に示すように、まずステップＳ１００に移行し、データ制御部２ａ及びデータ通信部２ｂにより、リーダ・ライタ装置３に上記した「Ｉｎｖｅｎｔｏｒｙ」コマンドを送信してステップＳ１０２に移行する。ここで、「Ｉｎｖｅｎｔｏｒｙ」コマンドには、上記したＡＦＩ情報を付加する。
【００９１】
ステップＳ１０２では、データ制御部２ａにおいて、リーダ・ライタ装置３からコリジョン情報を含むタグ情報を受信したか否かを判定し、受信したと判定された場合(Yes)はステップＳ１０４に移行し、そうでない場合(No)は受信するまで待機する。
ステップＳ１０４に移行した場合は、データ制御部２ａ及び表示部２ｃによって、受信したタグ情報を表示して処理を終了する。
【００９２】
更に、図７に基づき、タイムスロット番号の設定処理及びタグ情報送信処理時のリーダ・ライタ装置３の動作処理の流れを説明する。図７は、タイムスロット番号の設定処理及びタグ情報送信処理時のリーダ・ライタ装置３の動作処理を示すフローチャートである。ここで、本フローチャートは、ホスト装置２から「Ｉｎｖｅｎｔｏｒｙ」コマンドを受信後の処理から開始する。
【００９３】
図７に示すように、まずステップＳ２００に移行し、データ制御部３ｃにおいて、ホスト装置２からのコマンド受け取りを禁止してステップＳ２０２に移行する。つまり、「Ｉｎｖｅｎｔｏｒｙ」コマンドの処理が終了する前に、ホスト装置２から他のコマンドを受け取らない状態にする。
ステップＳ２０２では、データ制御部３ｃにおいて、受信した「Ｉｎｖｅｎｔｏｒｙ」コマンドを解析してステップＳ２０４に移行する。この解析処理によって、「Ｉｎｖｅｎｔｏｒｙ」コマンドに含まれるＡＦＩ情報等を抽出する。
【００９４】
ステップＳ２０４では、データ制御部３ｃにおいて、非接触識別タグ４が解析可能な上記「Ｉｎｖｅｎｔｏｒｙ」コマンドと同等のコマンド（ＡＦＩ情報含む）を含むパケットを生成してステップＳ２０６に移行する。本実施の形態では、「Ｉｎｖｅｎｔｏｒｙ」コマンドそのものを含むパケットを生成する。
ステップＳ２０６では、データ制御部３ｃ及びデータ送信部３ｂによって、上記生成したパケットを通信範囲内の非接触識別タグ４に向けて送信してステップＳ２０８に移行する。
【００９５】
ステップＳ２０８では、データ制御部３ｃにおいて、上記パケット送信後に所定時間が経過してタイムアウトになったか否かを判定し、タイムアウトになったと判定された場合(Yes)はステップＳ２１６に移行し、そうでない場合(No)はステップＳ２１０に移行する。
ステップ２１０に移行した場合は、データ制御部３ｃにおいて、非接触識別タグ４からタグ情報を受信したか否かを判定し、受信したと判定された場合(Yes)はステップＳ２１２に移行し、そうでない場合(No)はステップＳ２０８に移行する。
【００９６】
ステップＳ２１２に移行した場合は、データ制御部３ｃにおいて、受信したタグ情報に基づき、コリジョンが発生したか否かを判定し、発生したと判定された場合(Yes)はステップＳ２１４に移行し、そうでない場合(No)はステップＳ２２４に移行する。
ステップＳ２１４に移行した場合は、データ制御部３ｃは、データ記憶部３ｅにコリジョンが発生したことを記憶してステップＳ２１６に移行する。
【００９７】
ステップＳ２１６では、データ制御部３ｃにおいて、第２のタイムスロット用カウンタの値が１５になったか否かを判定し、１５になったと判定された場合(Yes)はステップＳ２１８に移行し、そうでない場合(No)はステップＳ２２０に移行する。
ステップＳ２１８に移行した場合は、データ制御部３ｃ及びデータ送信部３ｂにより、受信したタグ情報をホスト装置２に送信して処理を終了する。
【００９８】
一方、ステップＳ２２０に移行した場合は、データ制御部３ｃ及びデータ送信部３ｂにより、通信範囲内の非接触識別タグ４に向けてＥＯＦコマンドを送信してステップＳ２２２に移行する。
ステップＳ２２２では、データ制御部３ｃによって、第２のタイムスロット用カウンタの値を１インクリメントしてステップＳ２０８に移行する。
【００９９】
また、ステップＳ２２４に移行した場合は、データ制御部３ｃによって、上記受信したタグ情報をデータ記憶部３ｅに記憶してステップＳ２１６に移行する。
更に、図８に基づき、タイムスロット番号の設定処理及びタグ情報送信処理時の非接触識別タグ４の動作処理の流れを説明する。図８は、タイムスロット番号の設定処理及びタグ情報送信処理時の非接触識別タグ４の動作処理を示すフローチャートである。ここで、本フローチャートは、駆動電力生成部４ｅにおいて、駆動電力が生成され各部に駆動電力が供給された後の処理から開始する。
【０１００】
図８に示すように、まずステップＳ３００に移行し、データ制御部４ｃにおいて、リーダ・ライタ装置３から受信したパケットを解析してステップＳ３０２に移行する。
ステップＳ３０２では、データ制御部４ｃにおいて、上記解析結果から受信したパケットは「Ｉｎｖｅｎｔｏｒｙ」コマンドか否かを判定し、「Ｉｎｖｅｎｔｏｒｙ」コマンドであると判定された場合(Yes)はステップＳ３０４に移行し、そうでない場合(No)はステップＳ３１４に移行する。
【０１０１】
ステップＳ３０４に移行した場合は、データ制御部４ｃにおいて、上記パケットに含まれるＡＦＩ情報と、データ記憶部４ｄに記憶されたＡＦＩ情報と、を比較して、両者が一致したか否かを判定し、一致したと判定された場合(Yes)はステップＳ３０６に移行し、そうでない場合(No)はステップＳ３００に移行する。
ステップＳ３０６に移行した場合は、データ制御部４ｃによって、第１のスロット用カウンタを０にクリアしてステップＳ３０８に移行する。
【０１０２】
ステップＳ３０８では、データ制御部４ｃにおいて、乱数を発生し、当該乱数とデータ記憶部４ｄに記憶された固有の識別番号とに基づき、スロット番号を設定してステップＳ３１０に移行する。
ステップＳ３１０では、データ制御部４ｃにおいて、リーダ・ライタ装置３から受信したコマンドがＥＯＦコマンドであり、当該ＥＯＦコマンドに含まれるタイムスロット番号と、設定されたタイムスロット番号とが一致したか否かを判定し、一致したと判定された場合(Yes)はステップＳ３１２に移行し、そうでない場合(No)はステップＳ３００に移行する。
【０１０３】
ステップＳ３１２に移行した場合は、データ制御部４ｃ及びデータ送信部４ｂによって、タグ情報をリーダ・ライタ装置３に向けて送信して処理を終了する。
一方、ステップＳ３０２において、「Ｉｎｖｅｎｔｏｒｙ」コマンドでは無いと判定されステップＳ３１４に移行した場合は、第１のタイムスロット用カウンタの値を１インクリメントしてステップＳ３１０に移行する。
【０１０４】
以上、非接触識別タグ４において、固有の識別番号を４ビット毎のブロックに区分けし、更に、乱数を発生し、当該乱数によって、前記ブロック分けされた固有の識別番号中から特定の１ブロックを選択し、この選択された１ブロックに含まれるビット列をタイムスロット番号として設定することが可能である。
また、非接触識別タグ４において、乱数を発生し、当該乱数によって特定される固有の識別番号中の１ビットを基準とした４ビットを選択し、当該４ビットをタイムスロット番号として設定する。
【０１０５】
また、正常に応答を返してきた非接触識別タグ４に対して、動作停止用コマンドを送信して、その動作を停止することが可能である。
また、動作停止中の非接触識別タグ４に対して、動作再開用コマンドを送信して、その停止中の動作を再開させることが可能である。
ここで、図２に示す、データ制御部２ａ及びデータ通信部２ｂによる「Ｉｎｖｅｎｔｏｒｙ」コマンドのリーダ・ライタ装置３への送信処理は、発明６の第１のスロット番号設定指示手段に対応し、データ制御部２ａ及びデータ通信部２ｂによる（コリジョンに関する情報を含む）タグ情報の受信処理は、発明６の第１のタグ情報取得手段及び重複情報取得手段に対応する。また、データ制御部２ａ及び表示部２ｃによるタグ情報の表示処理は、発明１０のタグ情報表示手段に対応し、データ制御部２ａ及びデータ通信部２ｂによる、タイムスロット番号の再設定を行わせるための再度の「Ｉｎｖｅｎｔｏｒｙ」コマンドのリーダ・ライタ装置３への送信処理は、発明６の第１の再設定指示手段に対応する。
【０１０６】
また、図３に示す、データ制御部３ｃ及びデータ送信部３ｂによる「Ｉｎｖｅｎｔｏｒｙ」コマンドと同等のコマンドの非接触識別タグ４への送信処理は、発明６の第２のスロット番号設定指示手段に対応し、データ制御部３ｃによるスロット番号の重複した非接触識別タグの有無を検出する処理は、発明６の重複タグ検出手段に対応する。さらに、タイムスロット番号の重複した非接触識別タグ４を検出した後のデータ制御部３ｃ及びデータ送信部３ｂによる再度の「Ｉｎｖｅｎｔｏｒｙ」コマンドと同等のコマンドの非接触識別タグ４への送信処理は、発明６の第２の再設定指示手段に対応し、データ制御部３ｃ及びデータ受信部３ａによるタグ情報の取得処理は、発明６の第２のタグ情報取得手段に対応する。また、データ制御部３ｃ及びデータ通信部３ｄによる（コリジョンに関する情報を含む）タグ情報のホスト装置２への送信処理は、発明６の第１のタグ情報送信手段及び重複情報送信手段に対応し、データ制御部３ｃ及びデータ送信部３ｂによる動作停止用コマンドの非接触識別タグ４への送信処理は、発明７の第２の動作停止指示手段に対応する。データ制御部３ｃ及びデータ送信部３ｂによる動作再開用コマンドの非接触識別タグ４への送信処理は、発明７の第２の動作再開指示手段に対応する。
【０１０７】
また、図４に示す、データ制御部４ｃにおける乱数発生処理は、発明１〜６のいずれか１の乱数発生手段に対応し、データ制御部４ｃにおけるタイムスロット番号の設定処理は、発明１〜４のいずれか１のタイムスロット番号設定手段に対応し、リーダ・ライタ装置３からの再度の「Ｉｎｖｅｎｔｏｒｙ」コマンドと同等のコマンドに対するデータ制御部４ｃにおけるタイムスロット番号の設定処理は、発明６のスロット番号再設定手段に対応し、データ制御部４ｃ及びデータ送信部４ｂによるタグ情報のリーダ・ライタ装置３への送信処理は、発明６の第２のタグ情報送信手段に対応する。
【０１０８】
なお、上記実施の形態においては、発生した乱数と固有の識別番号とから、４ビット毎にブロック分けした識別番号中から特定１ブロックを選択してタイムスロット番号を設定したり、識別番号中の特定の１ビットを基準とした４ビットを選択してタイムスロット番号を設定したりしているが、これらに限らず、本発明の趣旨を逸脱しない範囲で、他の方法を用いてタイムスロット番号の設定を行うようにしても良い。
【０１０９】
また、上記実施の形態においては、ホスト装置２が、タイムスロット番号の再設定時の「Ｉｎｖｅｎｔｏｒｙ」コマンド、動作を停止させるための「Ｓｔａｙ＿Ｑｕｉｅｔ」コマンド及び停止中の動作を再開させるための「Ｒｅｓｅｔ  ｔｏ  ｒｅａｄｙ」コマンドをリーダ・ライタ装置３に送信することで、非接触識別タグ４に、タイムスロット番号の再設定処理や、動作停止処理及び動作再開処理を行わせるようにしているが、これに限らず、タグ情報取得時における、コリジョン発生後の「Ｉｎｖｅｎｔｏｒｙ」コマンド、「Ｓｔａｙ＿Ｑｕｉｅｔ」コマンド及び「Ｒｅｓｅｔ  ｔｏ  ｒｅａｄｙ」コマンドの非接触識別タグ４への送信処理をリーダ・ライタ装置３のみで行う構成としても良い。以下、この点について、図１から図４、図８、及び、図９〜図１１を参照しながら、より具体的に説明する。
（２）第２の実施の形態
図９は、データ通信システム１におけるタイムスロット番号設定時の各装置の処理の流れを示すタイムチャートである。ここで、リーダ・ライタ装置３の通信範囲内には、特に図示しないが、第１〜第４の非接触識別タグ４Ａ〜４Ｄ（図９中ではＴａｇ１〜Ｔａｇ４）の４つが存在していることとする。
【０１１０】
また、固有の識別番号（ＵＩＤ）として、第１の非接触識別タグ４Ａには「００１０−１１０１−００００」が、第２の非接触識別タグ４Ｂには「１１１０−０００１−１１０１」が、第３の非接触識別タグ４Ｃには「００１０−００００−１０１１」が、第４の非接触識別タグ４Ｄには「００００−１０１０−１１１１」が、それぞれ設定されている。ここでは、識別番号を「−」符号により４桁のビット列を１ブロックとして３つのブロックにそれぞれ区分している。
【０１１１】
まず、ホスト装置２は、第１〜第４の非接触識別タグ４Ａ〜４Ｄにタイムスロット番号を設定させるためのコマンド（図９中に示す「Ｉｎｖｅｎｔｏｒｙ」コマンド）をリーダ・ライタ装置３に送信する。リーダ・ライタ装置３は、「Ｉｎｖｅｎｔｏｒｙ」コマンドを受信すると、通信範囲内にある第１〜第４の非接触識別タグ４Ａ〜４Ｄに、これらが解析可能な形式で、タイムスロット番号を設定させるための「Ｉｎｖｅｎｔｏｒｙ」コマンドと同等のコマンドを送信する。
【０１１２】
第１〜第４の非接触識別タグ４Ａ〜４Ｄは、リーダ・ライタ装置３から送信された上記タイムスロット番号を設定するコマンドを受信すると、まず、それぞれの駆動電力生成部４ｅにおいて受信した信号の搬送波から駆動電力を生成し各非接触識別タグ４を構成する各部に供給する。駆動電力が供給されると、データ制御部４ｃにおいて、まず、自己の備える図示しない第１のタイムスロット用カウンタを０にクリアし、次に、乱数（ここでは、０〜２の数値範囲）を発生し、この乱数と上記した識別番号とに基づきタイムスロット番号を設定する。
【０１１３】
ここでは、第１の非接触識別タグ４Ａにおいて、乱数「１」が発生し、この乱数と識別番号「００１０−１１０１−００００」とに基づき、タイムスロット番号として「１１０１（１３）」が設定される（ここで、括弧内の数値は１０進数）。つまり、３つにブロック分けされた識別番号の各ブロックに対して左から順番に、乱数の「０」、「１」、「２」が対応している。同様に、第２の非接触識別タグ４Ｂにおいては、乱数「２」が発生し、この番号と識別番号「１１１０−０００１−１１０１」とに基づき、タイムスロット番号として「１１０１（１３）」が設定される（ここで、括弧内の数値は１０進数）。
【０１１４】
更に、第３の非接触識別タグ４Ｃにおいては、乱数「０」が発生し、この乱数と識別番号「００１０−００００−１０１１」とに基づき、タイムスロット番号として「００１０（２）」が設定される（ここで、括弧内の数値は１０進数）。更に、第４の非接触識別タグ４Ｄにおいては、乱数「２」が発生し、この乱数と識別番号「００００−１０１０−１１１１」とに基づき、タイムスロット番号として「１１１１（１５）」が設定される（ここで、括弧内の数値は１０進数）。
【０１１５】
次に、リーダ・ライタ装置３は、タイムスロット番号を設定させるコマンドの送信後に、まず、自己の備える図示しない第２のタイムスロット用カウンタを０にクリアし、次に、ＥＯＦコマンドを第１〜第４の非接触識別タグ４Ａ〜４Ｄに向けて送信する。第１〜第４の非接触識別タグ４Ａ〜４Ｄは、ＥＯＦコマンドを受信すると上記した第１のタイムスロット用カウンタの値０と自己に設定されたタイムスロット番号とを比較する。ここでは、タイムスロット番号０の設定されたタグは無いので、第１〜第４の非接触識別タグ４Ａ〜４Ｄは、どのタグも応答を返さず、第１のタイムスロット用カウンタの値を１インクリメントする。
【０１１６】
そして、リーダ・ライタ装置３は、決められた時間中に非接触識別タグ４から応答を受信するか、あるいは、応答が無いことを確認すると、再びＥＯＦコマンドを第１〜第４の非接触識別タグ４Ａ〜４Ｄに向けて送信する。このとき、リーダ・ライタ装置３においても、ＥＯＦを送信する毎に第２のタイムスロット用カウンタを１インクリメントする。このようにして、第２のタイムスロット用カウンタを１インクリメントする毎に、このタイムスロット用カウンタの値が１５になるまで第１〜第４の非接触識別タグ４Ａ〜４Ｄに向けてＥＯＦコマンドを送信する。
【０１１７】
図９に示すように、ここでは、まず、第１のタイムスロット用カウンタ値２に対応するＥＯＦコマンドに対して、第３の非接触識別タグ４Ｃから、上記した識別番号を含む情報が応答として送信されてくることになる。そして、次に、第１のタイムスロット用カウンタ値１３に対応するＥＯＦコマンドに対して、第１の非接触識別タグ４Ａ及び第２の非接触識別タグ４Ｂからそれぞれ応答が送信されてくることになる。この場合は、第１の非接触識別タグ４Ａ及び第２の非接触識別タグ４Ｂにおいて、同じタイムスロット番号が設定されていることになり、リーダ・ライタ装置３において、受信される信号が異常な状態（例えば、マンチェスター符号を用いた場合の１と０とに対応する信号波形が重なった状態）となり、コリジョン状態であることが検出される。ここで、リーダ・ライタ装置３は、コリジョンが発生したことを記憶しておく。
【０１１８】
更に、第１のタイムスロット用カウンタ値１５に対応するＥＯＦコマンドに対して、第４の非接触識別タグ４Ｄから応答が送信されてくることになる。これにより、第２のタイムスロット用カウンタ値０〜１５までに対応したＥＯＦコマンドの送信処理が終了する。
次に、リーダ・ライタ装置３は、データ記憶部３ｅに記憶された第３及び第４の非接触識別タグ４Ｃ及び４Ｄの識別番号を含む情報とコリジョンの発生情報とに基づいて、その通信範囲内にある第３及び第４の非接触識別タグ４Ｃ及び４Ｄ以外の非接触識別タグ４にコリジョンが発生したと判定し、第３及び第４の非接触識別タグ４Ｃ及び４Ｄに動作停止用のコマンドを送信する。即ち、この動作停止用のコマンドの送信は、ホスト装置２からの上述した「Ｓｔａｙ＿Ｑｕｉｅｔ」コマンドを受けて行われるのではなく、データ制御部３ｃによるコリジョンの発生有りの判定を受けて行われる。
【０１１９】
図９に示すように、リーダ・ライタ装置３は、正常な応答のあった第３及び第４の非接触識別タグ４Ｃ及び４Ｄに対して、この順番に、「Ｓｔａｙ＿Ｑｕｉｅｔ」コマンドと同等の動作停止用のコマンドを、これら第３及び第４の非接触識別タグ４Ｃ及び４Ｄが解析可能な形式で送信する。これにより、第３及び第４の非接触識別タグ４Ｃ及び４Ｄは、リーダ・ライタ装置３からの動作を再開させるためのコマンド以外のコマンドに対して動作を停止した状態となる。ここでは、第３及び第４の非接触識別タグ４Ｃ及び４Ｄの識別番号が解っているのでそれぞれ個別にコマンドを送信することが可能である。
【０１２０】
次に、図９に示すように、リーダ・ライタ装置３は、「Ｉｎｖｅｎｔｏｒｙ」コマンドと同等のタイムスロット番号設定用コマンドを、その通信範囲内にある第１〜第４の非接触識別タグ４Ａ〜４Ｄに向けて送信する。ここで、第３及び第４の非接触識別タグ４Ｃ及び４Ｄは、上記した動作停止用コマンドにより動作停止の状態となっているので、タイムスロット番号を設定させるコマンドを受信しても、タイムスロット番号の設定処理を行わないことになる。
【０１２１】
一方、第１及び第２の非接触識別タグ４Ａ及び４Ｂは、上記リーダ・ライタ装置３からのタイムスロット番号を設定させるコマンドを受信すると、上記同様に、第１のタイムスロット用カウンタを０にクリアし、更に、乱数（ここでは、０〜２の数値範囲）を発生し、この乱数と上記した識別番号とに基づきタイムスロット番号を設定する。ここでは、第１の非接触識別タグ４Ａにタイムスロット番号として「００１０（２）」が設定され、第２の非接触識別タグ４Ｂにタイムスロット番号として「１１１０（１４）」が設定される。
【０１２２】
従って、タイムスロット用カウンタ値２に対応するＥＯＦコマンドに対して、第１の非接触識別タグ４Ａから応答が送信され、更に、第１のタイムスロット用カウンタ値１４に対応するＥＯＦコマンドに対して、第２の非接触識別タグ４Ｂから応答が送信され、それぞれリーダ・ライタ装置３によって受信される。これにより、リーダ・ライタ装置３は、その通信範囲内にある第１〜第４の非接触識別タグ４Ａ〜４Ｄのそれぞれの識別番号を取得することになる。
【０１２３】
リーダ・ライタ装置３は、その通信範囲内にある全ての非接触識別タグ４のタグ情報を取得した後で、動作停止状態にある第３及び第４の非接触識別タグ４Ｃ及び４Ｄに対して、これらが解析可能な形式で、「Ｒｅｓｅｔ  ｔｏ  ｒｅａｄｙ」コマンドと同等の動作再開用コマンドを送信する。これにより、第３及び第４の非接触識別タグ４Ｃ及び４Ｄは上記動作再開用コマンドを受信して、それぞれ停止中の動作を再開する。その後、リーダ・ライタ装置３は、その通信範囲内にある全ての非接触識別タグ４の識別番号を含むタグ情報をホスト装置２に送信する。従って、ホスト装置２は、以降、取得した識別番号を用いて、リーダ・ライタ装置３の通信範囲内にある特定の非接触識別タグ４に対してコマンドの送信等を行うことが可能となる。
【０１２４】
更に、図１０に基づき、タイムスロット番号の設定処理及びタグ情報送信処理時のホスト装置２の動作処理の流れを説明する。図１０は、タイムスロット番号の設定処理及びタグ情報送信処理時のホスト装置２の動作処理を示すフローチャートである。図１０に示すように、まずステップＳ´１００に移行し、データ制御部２ａ及びデータ通信部２ｂにより、リーダ・ライタ装置３に上記した「Ｉｎｖｅｎｔｏｒｙ」コマンドを送信してステップＳ´１０２に移行する。ここで、「Ｉｎｖｅｎｔｏｒｙ」コマンドには、上記したＡＦＩ情報を付加する。
【０１２５】
ステップＳ´１０２では、データ制御部２ａ及びデータ通信部２ｂによって、リーダ・ライタ装置３から、非接触識別タグ４の識別番号を含むタグ情報を受信する。そして、データ制御部２ａによって、この受信した識別番号を含むタグ情報をデータ記憶部２ｄに記憶させる。その後、ステップＳ´１０４に移行する。ステップＳ´１０４では、データ制御部２ａ及び表示部２ｃによって、受信した識別番号を含むタグ情報を表示して処理を終了する。図１０に示す動作処理の方が、図６に示した動作処理よりもその処理ステップ数が少なく、簡単である。
【０１２６】
更に、図１１に基づき、タイムスロット番号の設定処理及びタグ情報送信処理時のリーダ・ライタ装置３の動作処理の流れを説明する。図１１は、タイムスロット番号の設定処理及びタグ情報送信処理時のリーダ・ライタ装置３の動作処理を示すフローチャートである。ここで、本フローチャートは、ホスト装置２から「Ｉｎｖｅｎｔｏｒｙ」コマンドを受信後の処理から開始する。
【０１２７】
図１１に示すように、まずステップＳ´２００に移行し、データ制御部３ｃにおいて、ホスト装置２からのコマンド受け取りを禁止してステップＳ´２０２に移行する。つまり、「Ｉｎｖｅｎｔｏｒｙ」コマンドの処理が終了する前に、ホスト装置２から他のコマンドを受け取らない状態にする。ステップＳ´２０２では、データ制御部３ｃにおいて、受信した「Ｉｎｖｅｎｔｏｒｙ」コマンドを解析してステップＳ´２０４に移行する。この解析処理によって、「Ｉｎｖｅｎｔｏｒｙ」コマンドに含まれるＡＦＩ情報等を抽出する。
【０１２８】
ステップＳ´２０４では、データ制御部３ｃにおいて、非接触識別タグ４が解析可能な上記「Ｉｎｖｅｎｔｏｒｙ」コマンドと同等のコマンド（ＡＦＩ情報含む）を含むパケットを生成してステップＳ´２０６に移行する。本実施の形態では、「Ｉｎｖｅｎｔｏｒｙ」コマンドそのものを含むパケットを生成する。
ステップＳ´２０６では、データ制御部３ｃ及びデータ送信部３ｂによって、上記生成したパケットを通信範囲内の非接触識別タグ４に向けて送信してステップＳ´２０８に移行する。ステップＳ´２０８では、データ制御部３ｃにおいて、上記パケット送信後に所定時間が経過してタイムアウトになったか否かを判定し、タイムアウトになったと判定された場合(Yes)はステップＳ´２１６に移行し、そうでない場合(No)はステップＳ´２１０に移行する。
【０１２９】
ステップＳ´２１０に移行した場合は、データ制御部３ｃにおいて、非接触識別タグ４からタグ情報を受信したか否かを判定し、受信したと判定された場合(Yes)はステップＳ´２１２に移行し、そうでない場合(No)はステップＳ´２０８に移行する。ステップＳ´２１２に移行した場合は、データ制御部３ｃにおいて、受信したタグ情報に基づき、コリジョンが発生したか否かを判定し、発生したと判定された場合(Yes)はステップＳ´２１４に移行し、そうでない場合(No)はステップＳ´２２４に移行する。ステップＳ´２１４に移行した場合は、データ制御部３ｃは、データ記憶部３ｅにコリジョンが発生したことを記憶してステップＳ´２１６に移行する。
【０１３０】
ステップＳ´２１６では、データ制御部３ｃにおいて、第２のタイムスロット用カウンタの値が１５になったか否かを判定し、１５になったと判定された場合(Yes)はステップＳ´２１７に移行し、そうでない場合(No)はステップＳ´２２０に移行する。ステップＳ´２２０に移行した場合は、データ制御部３ｃ及びデータ送信部３ｂにより、通信範囲内の非接触識別タグ４に向けてＥＯＦコマンドを送信してステップＳ´２２２に移行する。ステップＳ´２２２では、データ制御部３ｃによって、第２のタイムスロット用カウンタの値を１インクリメントしてステップＳ´２０８に移行する。また、ステップＳ´２２４に移行した場合は、データ制御部３ｃによって、上記受信した識別番号を含むタグ情報をデータ記憶部３ｅに記憶してステップＳ´２１６に移行する。
【０１３１】
一方、ステップＳ´２１７に以降した場合は、データ制御部３ｃはデータ記憶部３ｅにコリジョンの発生情報が記憶されているか否かを判定する。コリジョンの発生情報が記憶されており、このコリジョンが未解消の場合（Yes）には、ステップＳ´２０４に移行する。このステップＳ´２０４では、正常な応答のあった非接触識別タグ向けに動作停止用コマンドを含むパケットを生成する。また、コリジョンが未解消の非接触識別タグ向けにタイムスロット番号設定用コマンドを含むパケットを生成する。即ち、ステップＳ´２１７から移行してきた際のステップＳ´２０４でのパケット生成処理は、コリジョンが未解消の非接触識別タグにタイムスロット番号の再設定をさせるために行う。
【０１３２】
また、ステップＳ´２１７でコリジョンの発生情報が記憶されていない場合、又は、コリジョンの発生情報は記憶されているものの、ステップＳ´２１７からステップＳ´２０４への移行を１回、又は２回以上行って、コリジョンは既に解消されているような場合（No）には、ステップＳ´２１８に移行する。ステップＳ´２１８に移行した場合は、データ制御部３ｃ及びデータ送信部３ｂにより、全ての識別番号を含むタグ情報をホスト装置２に送信して処理を終了する。このステップＳ´２１８でホスト装置２に送信された識別番号を含むタグ情報は、例えば、このホスト装置２の表示部２ｃに表示される。
【０１３３】
なお、この第２の実施の形態において、タイムスロット番号の設定処理及びタグ情報送信処理時の非接触識別タグ４の動作処理の流れについては、第１の実施の形態で図８を参照しながら説明した内容と同じである。従って、この第２の実施の形態では非接触識別タグ４の動作処理についての説明は省略する。
このように、第２の実施の形態によれば、第１の実施の形態と同様に、非接触識別タグ４は、乱数発生手段の番号発生確率のみに依存しないタイムスロット番号の設定処理を行うので、これにより、複数の非接触識別タグ４において番号が重複し難いタイムスロット番号の設定処理が可能となる。更に、非接触識別タグ４の識別番号を含むタグ情報を取得するようにしたので、再設定時の指示対象からタイムスロット番号の重複しているもの以外の非接触識別タグ４を除外することが可能となる。
【０１３４】
また、第２の実施の形態によれば、第１の実施の形態と比べて、仮に、タイムスロット番号が重複したような場合でも、リーダ・ライタ装置３からホスト装置２にコリジョンの発生情報を送信する必要がない。かつ、ホスト装置２からリーダ・ライタ装置３にタイムスロット番号を再設定させるための「Ｉｎｖｅｎｔｏｒｙ」コマンドを送信する必要もない。従って、ホスト装置２とリーダ・ライタ装置３との間での通信時間を短縮することができる。
【０１３５】
さらに、この第２の実施形態では、図９のステップＳ´２１８で、ホスト装置２に送信するタグ情報にコリジョンの発生履歴等を含ませておいても良い。このような構成であれば、例えば、非接触識別タグ４の設計者は、そのコリジョンの発生回数の多い、少ない等に基づいて、乱数の発生アルゴリズムや、固有の識別番号の設定方法の見直し等を行うことが可能である。
【０１３６】
この第２の実施の形態では、図２に示す、データ制御部２ａ及びデータ通信部２ｂによる「Ｉｎｖｅｎｔｏｒｙ」コマンドのリーダ・ライタ装置３への送信処理は、発明８の第１のスロット番号設定指示手段に対応し、データ制御部２ａ及びデータ通信部２ｂによるタグ情報の受信処理は、発明８の第１のタグ情報取得手段に対応する。データ制御部２ａ及び表示部２ｃによるタグ情報の表示処理は、発明１０のタグ情報表示手段に対応する。
【０１３７】
また、図３に示す、データ制御部３ｃ及びデータ送信部３ｂによる「Ｉｎｖｅｎｔｏｒｙ」コマンドと同等のコマンドの非接触識別タグ４への送信処理は、発明８の第２のスロット番号設定指示手段に対応し、データ制御部３ｃによるスロット番号の重複した非接触識別タグの有無を検出する処理は、発明８の重複タグ検出手段に対応する。さらに、タイムスロット番号の重複した非接触識別タグ４を検出した後のデータ制御部３ｃ及びデータ送信部３ｂによる再度の「Ｉｎｖｅｎｔｏｒｙ」コマンドと同等のコマンドの非接触識別タグ４への送信処理は、発明８の再設定指示手段に対応し、データ制御部３ｃ及びデータ受信部３ａによる（コリジョンに関する情報を含む）タグ情報の取得処理は、発明８の第２のタグ情報取得手段に対応する。また、データ制御部３ｃ及びデータ通信部３ｄによるタグ情報のホスト装置２への送信処理は、発明８の第１のタグ情報送信手段に対応し、データ制御部３ｃ及びデータ送信部３ｂによる動作停止用コマンドの非接触識別タグ４への送信処理は、発明１１の動作停止指示手段に対応する。データ制御部３ｃ及びデータ送信部３ｂによる動作再開用コマンドの非接触識別タグ４への送信処理は、発明１１の動作再開指示手段に対応する。
【０１３８】
また、図４に示す、データ制御部４ｃにおける乱数発生処理は、発明１〜６のいずれか１の乱数発生手段に対応し、データ制御部４ｃにおけるタイムスロット番号の設定処理は、発明１〜４のいずれか１のタイムスロット番号設定手段に対応し、リーダ・ライタ装置３からの再度の「Ｉｎｖｅｎｔｏｒｙ」コマンドと同等のコマンドに対するデータ制御部４ｃにおけるタイムスロット番号の設定処理は、発明８のスロット番号再設定手段に対応し、データ制御部４ｃ及びデータ送信部４ｂによるタグ情報のリーダ・ライタ装置３への送信処理は、発明８の第２のタグ情報送信手段に対応する。
【０１３９】
なお、本実施の形態では、図７のステップＳ２００、及び、図１１のＳ´２００で、データ制御部３ｃによるホスト装置２からのコマンドの受け取りを禁止することについて説明した。しかしながら、リーダ・ライタ装置３のデータ記憶部３ｅに格納された各部の制御用のプログラムを変更して、図７に示したステップＳ２００や、図１１に示したＳ´２００をそれぞれ削除し、ホスト装置２からリーダ・ライタ装置３へのコマンドの割り込みを可能な構成としても良い。このような構成であれば、例えば、リーダ・ライタ装置３は、コマンドの割り込みがあった場合に、図５や図９等に示したアンチコリジョン（衝突防止手順）を中断し、コマンドの割り込みが終了した後で、中断していたアンチコリジョンを自動的に再開することが可能である。従って、ホスト装置２と、リーダ・ライタ装置３と、複数個の非接触識別タグ４とからなるデータ通信システムに柔軟性を持たせることができる。
【図面の簡単な説明】
【０１４０】
【図１】本発明に係るデータ通信システムの全体構成を示す図である。
【図２】ホスト装置２の詳細構成を示すブロック図である。
【図３】リーダ・ライタ装置３の詳細構成を示すブロック図である。
【図４】非接触識別タグ４の詳細構成を示すブロック図である。
【図５】データ通信システム１におけるタイムスロット番号設定時の各装置の処理の流れを示すタイムチャートである。（第１の実施の形態）
【図６】タイムスロット番号の設定処理及びタグ情報送信処理時のホスト装置２の動作処理を示すフローチャートである。（第１の実施の形態）
【図７】タイムスロット番号の設定処理及びタグ情報送信処理時のリーダ・ライタ装置３の動作処理を示すフローチャートである。（第１の実施の形態）
【図８】タイムスロット番号の設定処理及びタグ情報送信処理時の非接触識別タグ４の動作処理を示すフローチャートである。（第１、第２の実施の形態）
【図９】データ通信システム１におけるタイムスロット番号設定時の各装置の処理の流れを示すタイムチャートである。（第２の実施の形態）
【図１０】タイムスロット番号の設定処理及びタグ情報送信処理時のホスト装置２の動作処理を示すフローチャートである。（第２の実施の形態）
【図１１】タイムスロット番号の設定処理及びタグ情報送信処理時のリーダ・ライタ装置３の動作処理を示すフローチャートである。（第２の実施の形態）
【符号の説明】
【０１４１】
１…データ通信システム、２…ホスト装置、２ａ…データ制御部、２ｂ…データ通信部、２ｃ…表示部、２ｄ…データ記憶部、３…リーダ・ライタ装置、３ａ…データ受信部、３ｂ…データ送信部、３ｃ…データ制御部、３ｄ…データ通信部、３ｅ…データ記憶部、３ｆ…コイルアンテナ、４…非接触識別タグ、４ａ…データ受信部、４ｂ…データ送信部、４ｃ…データ制御部、４ｄ…データ記憶部、４ｅ…駆動電力生成部、４ｆ…コイルアンテナ
【図１】
2005184761.tif 000003
【図２】
2005184761.tif 000004
【図３】
2005184761.tif 000005
【図４】
2005184761.tif 000006
【図５】
2005184761.tif 000007
【図６】
2005184761.tif 000008
【図７】
2005184761.tif 000009
【図８】
2005184761.tif 000010
【図９】
2005184761.tif 000011
【図１０】
2005184761.tif 000012
【図１１】
2005184761.tif 000013