(57)【要約】【課題】通信状況の変化にかかわらず、通信対象である電子タグとの実効通信速度を最大に保つようにして、効率的な無線通信を実現することができるリーダ・ライタのコマンド制御技術を提供する。【解決手段】無線システムにおいて、過去の電子タグとの通信結果から、確率・統計に基づく計算から未来における通信状況に関する通信対象の電子タグ個数や通信エラーの発生率を推測し、この推測を元に、単位時間当りの電子タグとの通信できる数が最大になるよう輻輳制御を行い、また、その他のリーダ・ライタのコマンド制御に関しては、通信エラーの発生率が低く、かつ時間変動が小さくなるようにリーダ・ライタの設定パラメータを選択する。【選択図】図４
2008124849.tif 000002
【特許請求の範囲】
【請求項１】
電子タグと前記電子タグの通信制御を行うリーダ・ライタとの通信における動的なリーダ・ライタのコマンド制御方法であって、
前記電子タグと前記リーダ・ライタ間の過去の通信データから、前記電子タグと前記リーダ・ライタ間の現在の通信状況を推測する第１の工程と、
新規に発行可能な複数のリーダ・ライタのコマンド群の中から、前記第１の工程で得た推測結果を元に、単位時間当たりの前記電子タグからの受信成功回数の期待値が最大となる前記リーダ・ライタのコマンド群を予測し、このコマンド群を前記リーダ・ライタが新規に発行するコマンド群として選択する第２の工程と、を有することを特徴とするリーダ・ライタのコマンド制御方法。
【請求項２】
請求項１記載のリーダ・ライタのコマンド制御方法において、
前記第１の工程は、
通信に成功したため電子タグのＩＤを把握した電子タグのいくつかと再度個別に通信し、このときの電子タグからの応答結果から、
通信対象となっている電子タグ集団の中の個々の電子タグが、リーダ・ライタのコマンドに対して、応答に成功する確率、データ破損により応答に失敗する確率、応答しない確率を推定することを含むことを特徴とするリーダ・ライタのコマンド制御方法。
【請求項３】
請求項１記載のリーダ・ライタのコマンド制御方法において、
前記第１の工程は、
リーダ・ライタの通信対象となる電子タグ集団の中に、あらかじめＩＤが既知の電子タグをいくつか配置しておき、これらの電子タグのいくつかと個別に通信しておき、このときの電子タグの応答結果から、
通信対象となっている電子タグ集団の中の個々の電子タグが、リーダ・ライタのコマンドに対して、応答に成功する確率、データ破損により応答に失敗する確率、応答しない確率を推定することを含むことを特徴とするリーダ・ライタのコマンド制御方法。
【請求項４】
請求項１記載のリーダ・ライタのコマンド制御方法において、
前記第１の工程は、
通信対象の電子タグの個数が不明な状況で、リーダ・ライタが複数電子タグと通信するための輻輳制御用コマンドを発行するとき、
リーダ・ライタのコマンドで制御するタイムスロット全体における、電子タグとの通信が成功する回数と応答データが破損して通信が失敗する回数と電子タグが応答しない回数の期待値を、タイムスロット数と通信対象の電子タグの個数を変数とする３つの関数として確率計算から導出しておき、
過去の通信結果から、タイムスロット全体における電子タグとの通信が成功する回数と電子タグの応答データが破損して通信が失敗する回数と電子タグが応答しない回数を計測しておき、これら３つの計測値と輻輳制御用コマンドのパラメータで決まるタイムスロット数を、前記３つの関数に代入して連立方程式を解くことにより、
通信対象となっている電子タグの未知な個数を推定することを含むことを特徴とするリーダ・ライタのコマンド制御方法。
【請求項５】
請求項１記載のリーダ・ライタのコマンド制御方法において、
前記第１の工程は、
通信対象の電子タグの個数が不明で、かつ、コリジョンに起因するものではない個々の電子タグとの通信における通信エラーが発生する状況で、リーダ・ライタが複数の電子タグと通信するための輻輳制御用コマンドを発行するとき、
コリジョンに起因するものではない、個々の電子タグとリーダ・ライタ間の通信に関する、送受信に成功する確率、応答データが破損して通信が失敗する確率、電子タグが応答しない確率を、一般的には、各電子タグ・各時刻において異なる値を、ある一定期間の間、ある平均的な値に、それぞれ置き換えることとし、
リーダ・ライタのコマンドで制御するタイムスロット全体における、電子タグとの通信が成功する回数と応答データが破損して通信が失敗する回数と電子タグが応答しない回数の期待値を、
タイムスロット数と通信対象の電子タグの個数と、コリジョンに起因するものではない、個々の電子タグとリーダ・ライタ間の通信に関する、送受信に成功する確率、応答データが破損して通信が失敗する確率、電子タグが応答しない確率を５つの変数とする３つの関数として確率計算から導出しておき、
輻輳制御のためタイムスロットを割り当てるリーダ・ライタのコマンドを発行し、各タイムスロットにおいて実際に観測される電子タグの応答が成功する回数と電子タグの応答データが破損する回数と電子タグが応答しない回数を計測し、これらの計測値と、輻輳制御用コマンドのパラメータで決まるタイムスロット数を、前記３つの関数に代入して連立方程式を解くことにより、
未知の通信対象の電子タグの個数と、コリジョンに起因するものではない個々の電子タグとの通信エラーの発生確率を推定することを含むことを特徴とするリーダ・ライタのコマンド制御方法。
【請求項６】
請求項１記載のリーダ・ライタのコマンド制御方法において、
前記第１の工程は、
電子タグとの通信結果の履歴とリーダ・ライタの発行コマンド履歴から、ＥＭアルゴリズムを用いることにより、現在の通信対象の電子タグの個数と、通信可能状態となっている電子タグの個数を推測し、
現在のコリジョンに起因するものではない、個々の電子タグとリーダ・ライタ間の通信に関する、送受信に成功する確率、応答データが破損して通信が失敗する確率、電子タグが応答しない確率に、それぞれＥＭアルゴリズムから求めた過去の最尤度の値を当てはめることを含むことを特徴とするリーダ・ライタのコマンド制御方法。
【請求項７】
請求項１記載のリーダ・ライタのコマンド制御方法において、
前記第１の工程は、
ある１つのリーダ・ライタの過去の電子タグとの通信結果、あるいは、複数のリーダ・ライタに関する過去の電子タグとの通信結果から、
通信対象である電子タグの個数と、通信可能状態となっている電子タグの個数と、コリジョンに起因するものではない、個々の電子タグとリーダ・ライタ間の通信に関する、送受信に成功する確率、応答データが破損して通信が失敗する確率、電子タグが応答しない確率の時間推移を格納した数値データの配列を、クラスター分析用統計データ配列群としてデータベースにあらかじめ格納しておき、
同時に、クラスター分析用統計データを出力したときの、リーダ・ライタの設置位置や型名、使用したアンテナといったリーダ・ライタに関する各種パラメータと、リーダ・ライタが発行したコマンド及びコマンドの内部パラメータ、そして、通信に成功した電子タグの情報から電子タグに紐付けられた物品の内容が判明した場合はその物品内容を、状態判別用統計データ配列群として、クラスター分析用統計データ配列に紐づけた状態でデータベースにあらかじめ格納しておき、
前記クラスター分析用統計データ配列群をクラスター分析によりクラスタリングし、各クラスターにおけるクラスター分析用統計データ配列群の平均値と標準偏差を算出し、一方、各クラスターにおける個々のリーダ・ライタの出現頻度をあらかじめ算出しておき、
各クラスターの中で、対象となっているリーダ・ライタが出現する割合が高く、かつ、状態判別用統計データ配列群内で、このリーダ・ライタが使用している設定値の出現頻度が高いクラスターをいくつか選択し、
この選択された複数のクラスターの中から、クラスター分析用統計データ配列の各パラメータの統計的な平均値が、対象となっているリーダ・ライタの送受信履歴と最も適合しているクラスターを選択し、
この選択したクラスターの、電子タグの個数と、通信可能状態となっている電子タグの個数と、コリジョンに起因するものではない、個々の電子タグとリーダ・ライタ間の通信に関する、送受信に成功する確率、応答データが破損して通信が失敗する確率、電子タグが応答しない確率のそれぞれの平均値を、
現在のリーダ・ライタの通信対象の電子タグの個数と、通信可能状態となっている電子タグの個数と、コリジョンに起因するものではない、個々の電子タグとリーダ・ライタ間の通信に関する、送受信に成功する確率、応答データが破損して通信が失敗する確率、電子タグが応答しない確率の値とみなすこと含むことを特徴とするリーダ・ライタのコマンド制御方法。
【請求項８】
請求項７記載のリーダ・ライタのコマンド制御方法において、
前記第２の工程は、
リーダ・ライタのアンテナや、伝送速度や無線チャネルといったリーダ・ライタ自身の設定値を決めるリーダ・ライタのコマンドを発行するとき、
前記クラスター分析により分類された各クラスターの中から、対象となっているリーダ・ライタが出現する割合が高いものをいくつか選択し、
この選択された複数のクラスターの中から、クラスター分析用統計データの配列群における、通信可能状態となっている電子タグの個数の時間変動が小さく、その時間平均値が大きいもので、かつ、応答データが破損して通信が失敗する確率、電子タグが応答しない確率の時間変動が小さく、その時間平均値が小さいクラスターを１つ選択し、
前記選択したクラスターにおいて、発生頻度が最も高いリーダ・ライタ自身の設定を決めるリーダ・ライタのコマンド、及びコマンドパラメータを、クラスター分析用統計データ配列群に紐づいた状態判別用統計データ配列群から選択することを含むことを特徴とするリーダ・ライタのコマンド制御方法。
【請求項９】
請求項１記載のリーダ・ライタのコマンド制御方法において、
前記第２の工程は、
リーダ・ライタの通信対象となっている電子タグの個数を観測する外部装置により、電子タグの個数を推測し、
この推測した電子タグの個数から、タイムスロット数の上限を決定することを含むことを特徴とするリーダ・ライタのコマンド制御方法。
【請求項１０】
請求項１〜９のいずれか１項に記載のリーダ・ライタのコマンド制御方法における各手順をコンピュータに実行させることを特徴とするプログラム。
【請求項１１】
請求項１〜９のいずれか１項に記載のリーダ・ライタのコマンド制御方法における各手順を実行することを特徴とするリーダ・ライタ。
【請求項１２】
請求項１〜９のいずれか１項に記載のリーダ・ライタのコマンド制御方法における各手順を実行することを特徴とするコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子タグとリーダ・ライタとの無線通信におけるリーダ・ライタのコマンド制御技術に関し、特に、コマンド制御方法、このコマンド制御方法を実行させるためのプログラム、このコマンド制御方法を実行するリーダ・ライタ、およびコンピュータに適用して有効な技術に関する。
【背景技術】
【０００２】
電子タグと、この電子タグと無線通信を行う無線機器であるリーダ・ライタとで構成される無線通信システムがある。この無線通信システムにおけるリーダ・ライタは、複数の電子タグと、いくつかのコマンドを用いて通信できる。このような複数の電子タグとの通信において、２個以上の電子タグが同時にリーダ・ライタと通信する場合があり、このとき通信信号が重なり、言い換えるとデータが衝突し、データが破損することがある。このデータの衝突をコリジョンと呼ぶ。このため、２個以上の電子タグと同時に通信する場合は、コリジョンを回避する方法が必要となる。この制御を輻輳制御と呼び、複数の電子タグと通信できるリーダ・ライタは輻輳制御の機能を実装している。また、リーダ・ライタは、輻輳制御に関するコマンド以外に、電子タグ間との通信における伝送速度や、使用する無線周波数帯や、変調方式や、複数のアンテナが使用可能な場合はその中のどれかを選択するコマンドを実装していることもある。なお、以降コリジョンと衝突は同義語として扱う。
【０００３】
電子タグとリーダ・ライタ間の無線通信における輻輳制御方法としては、Ａｌｏｈａ方式や、Ｂｉｎａｒｙ  Ｔｒｅｅ方式がある。以下Ａｌｏｈａ方式を用いた輻輳制御方法の一例について説明する。
【０００４】
まず、本説明におけるＡｌｏｈａ方式の輻輳制御方法の概要を説明する。リーダ・ライタは、初めに各電子タグに乱数を割り当てる。各電子タグは、リーダ・ライタが発行するコマンドの回数で同期を取りながら、電子タグ自身に割り当てられた乱数とリーダ・ライタのコマンド発行回数が一致したとき、電子タグはリーダ・ライタに応答する。一般的に各電子タグに割り当てられた乱数は異なる値となるため、複数の電子タグが同時に応答することがなくなり、コリジョンを防ぐことができる。同じ乱数を持つ電子タグが複数発生した場合はコリジョンが発生するが、この場合は、乱数を割り当てるプロセスからやり直す。上記過程を繰り返すことにより、リーダ・ライタはすべての通信対象となっている電子タグと通信することができる。
【０００５】
実際のリーダ・ライタと電子タグとの通信手順は複雑であるが、以降詳細説明を行う。図３はリーダ・ライタのコマンド名とその機能説明図であり、図５は電子タグとリーダ・ライタにおけるコマンドシーケンスのモデル図であり、図１２は複数の電子タグとリーダ・ライタ間の通信の概要である。
【０００６】
図３はリーダ・ライタのコマンド名とその機能説明図であり、リーダ・ライタは４つのコマンドを備えている。１つ目は活性化コマンドであり、このコマンドを電子タグが受信することにより電子タグが活性化され、以降このコマンド以外のリーダ・ライタのコマンドに対してレスポンスできるようになる。２つ目は乱数生成コマンドであり、このコマンドを電子タグが受信することにより、電子タグは乱数を生成する。この乱数生成コマンドの内部パラメータで、電子タグの乱数値の上限値を決める。なお、この上限値がタイムスロット数であり、タイムスロット数は電子タグの衝突の発生頻度と関連する。３つ目は応答要求コマンドであり、このコマンドを受信した回数と、電子タグ内部の乱数が一致したとき、電子タグは自身のＩＤをリーダ・ライタに送信する。４つ目はリーダ・ライタ制御コマンドであり、リーダ・ライタ自身を制御するコマンドである。具体的には、使用する伝送速度や無線チャネル等を決定する。
【０００７】
図５は電子タグとリーダ・ライタにおけるコマンドシーケンスのモデル図であるが、モデル図のとおり、リーダ・ライタが電子タグを起動させる活性化コマンドを発行すると、電子タグは活性化され、これ以降リーダ・ライタから送信されるコマンドを受信し、リーダ・ライタへ応答可能となる。活性化した電子タグにリーダ・ライタが乱数生成コマンドを発行すると、活性化した各電子タグは乱数を生成し、この乱数、あるいは乱数の一部をタイムスロット番号に割り当てる。
【０００８】
ここで、タイムスロット番号とは、電子タグがリーダ・ライダに対して応答するタイミングを指定する番号のことである。このタイムスロット番号の上限値を、タイムスロット数の大きさと呼び、以下タイムスロット数と呼ぶことにする。このタイムスロット数は、エアインタフェースの仕様によっては、固定の場合も、動的な場合もあり、一般的には、乱数生成コマンドのパラメータに含まれる。
【０００９】
乱数生成コマンド発行後、リーダ・ライタは応答要求コマンドを発行する。このコマンドと電子タグのタイミングが一致した場合電子タグが応答するが、タイミングを合わせる方法として、主にスロットマーカ方式と、タイムスロット方式がある。
【００１０】
スロットマーカ方式では、応答要求コマンドの中にタイムスロット番号がパラメータに含まれており、この応答要求コマンド内部のタイムスロット番号と電子タグ内部の乱数より生成されたタイムスロット番号と一致する場合、電子タグがリーダ・ライタに応答する。
【００１１】
一方、タイムスロット方式では、電子タグは、乱数生成コマンド発行後の応答要求コマンドをカウントし、このカウント数と電子タグ内部の乱数より生成されたタイムスロット番号と一致する場合、電子タグがリーダ・ライタに応答する。
【００１２】
結局、細かな違いはあるものの、スロットマーカ方式とタイムスロット方式の基本動作は同じである。どちらの方式も、タイムスロット数は、生成する乱数の大きさ（ｂｉｔ数）とこの乱数からタイムスロット番号に割り当てる大きさ（ｂｉｔ数）によって決まる。
【００１３】
図１２は、Ａｌｏｈａ方式における、複数の電子タグとリーダ・ライタ間の通信のイメージ図であり、リーダ・ライタ１個に対し、電子タグが３個の場合である。また、タイムスロット数は４である。図１２のケースでは、３つの電子タグのうち、（３）のタイムスロット番号で、同じタイムスロット番号を生成した２３０と２３２の２つの電子タグが、同時に応答したためコリジョンを起こしている。コリジョンを検知した場合、リーダ・ライタは全ての電子タグと通信するため、再度乱数生成コマンドを発行し、以降応答要求コマンドを繰り返し発行する。
【００１４】
なお本説明では、輻輳制御の説明のため、活性化コマンド、乱数生成コマンド、応答要求コマンドの３つの輻輳制御のためのコマンドを用いたが、電子タグとリーダ・ライタのエアインタフェースの仕様によっては、活性化コマンドと乱数生成コマンドの機能が一つに合わさったコマンドが用意されることもあり得る。また、乱数生成コマンドと応答要求コマンドが一つに組み合わさったコマンドが用意されることもあり得る。また、応答要求コマンド発行後に、電子タグのＩＤ確認のため確認要求コマンドを発行する仕様であるエアインタフェースもあり得る。
【００１５】
以上が電子タグとリーダ・ライタのエアインタフェースに使用されるＡｌｏｈａ方式の基本的動作原理の説明である。
【００１６】
もう一つの輻輳制御方式であるＢｉｎａｒｙ  Ｔｒｅｅ方式は、電子タグのＩＤのビット列をマッチングする方式である。電子タグのＩＤのビット列の一部とリーダ・ライタから発行されるコマンド内部のビット列がマッチングしたとき電子タグは応答する。Ｂｉｎａｒｙ  Ｔｒｅｅ方式の一部には、ＩＤとのマッチングをかけるビット列のサイズを変更することができ、このサイズがＡｌｏｈａ方式でのタイムスロット数に対応する。したがって、複数の電子タグがあり、これらのＩＤがランダムに散っている場合、Ｂｉｎａｒｙ  Ｔｒｅｅ方式におけるリーダ・ライタと複数の電子タグの通信は、Ａｌｏｈａ方式と類似したものとなる。
【発明の開示】
【発明が解決しようとする課題】
【００１７】
上記輻輳制御方法は、電子タグのコリジョンを回避する手段を与えるが、電子タグとの効率的な無線通信方法を与えるわけではない。なお、ここで電子タグとリーダ・ライタにおける無線通信の効率化とは、単位時間あたりに通信できる電子タグの個数を向上させることである。一般的に、電子タグとリーダ・ライタが通信する状況では、通信時間が限られているため、効率的な無線通信方法が望まれている。
【００１８】
効率的な無線通信を実現するには、単位時間当たりの電子タグからの受信成功回数の期待値が最大となるリーダ・ライタのコマンド群を予測し、このコマンド群を発行する必要があるが、このためには、電子タグと通信している各時刻において、通信対象となっている電子タグの個数を把握しておくこと、実際に通信可能な状態になっている電子タグの個数を把握しておくこと、コリジョンに起因するものではない、個々の電子タグとの通信エラーの発生確率を把握しておくこと、リーダ・ライタのアンテナや、伝送速度や無線チャネルといったリーダ・ライタ自身の設定値と、電子タグとの通信の成功率の値、及び、その時間変化に関する相関関係を把握しておくことが必要である。以下にその理由を説明する。
【００１９】
まず、通信対象となっている電子タグの個数の把握についてであるが、１つの理由は、複数の電子タグの通信の終了を把握するためであり、もう一つの理由は、電子タグの個数と輻輳制御におけるタイムスロット数の組み合わせによって、無線通信の効率が変わるからである。
【００２０】
図１３は、電子タグの個数が５０個のときの、タイムスロット数と、１タイムスロット当たりの通信が成功する確率、衝突（コリジョン）が発生する確率、電子タグからの応答がない確率をグラフ化したものである。図１３のグラフは、通信対象となっている電子タグの全てと通信可能で、伝播路におけるレベル変動による通信データの破損が生じない理想的な環境であることを仮定している。図１３のグラフは、縦軸が確率の値で、横軸はタイムスロット数（電子タグの個数）である。なお、横軸は対数軸である。
【００２１】
図１３のグラフから、電子タグの個数とタイムスロット数が等しいとき通信成功する確率が最大となることがわかる。また、電子タグ個数がタイムスロット数に比べ大きいと衝突発生する確率が、一方、電子タグ個数がタイムスロット数に比べ小さいと応答がない確率が増加することがわかる。これは、電子タグ個数がタイムスロット数に比べ大きいと、同じタイムスロット番号を持つ電子タグの数が増え、衝突する頻度が増えることを意味する。一方、電子タグ個数がタイムスロット数に比べ小さいときは、同じタイムスロット番号を持つ電子タグの数は減り衝突する確率は低下するが、どの電子タグにも使用されないタイムスロット番号が発生する。この結果、１つのタイムスロットにおける応答しない確率が増加する。なお、上記のことは、電子タグ個数が変わっても成り立つことである。
【００２２】
以上が、無線通信の効率が、電子タグの個数と輻輳制御におけるタイムスロット数に依存する理由である。
【００２３】
次に、実際に通信可能な状態になっている電子タグの個数を把握しておくことの必要性についてであるが、図１３のグラフでは通信対象となっている電子タグの全てと通信可能であることを仮定しているが、実際の環境では、リーダ・ライタの通信エリア等の関係から、通信対象となっている電子タグの全てと通信できるわけではない。
【００２４】
仮に他の電子タグが存在しない状況でもリーダ・ライタと通信できない電子タグは、輻輳制御に影響を与えないため、無線通信の効率は、実際に通信可能な状態になっている電子タグの個数と輻輳制御におけるタイムスロット数に依存することになる。このため、実際に通信可能な状態になっている電子タグの個数を把握しておく必要がある。
【００２５】
３番目に、個々の電子タグとの通信エラーの発生確率を把握しておくことの必要性についてであるが、この理由は下記のとおりである。
【００２６】
図１３の説明においては無線通信における理想的な環境であることを仮定したが、一般的には、伝播路におけるレベル変動による通信データの破損が生じる。特に電子タグは障害物に囲まれるような状況で使用されるため、レベル変動による通信データの破損が生じやすいと考えられる。
【００２７】
このレベル変動による通信データの破損は、電子タグからリーダ・ライタへの応答時に発生した場合は、リーダ・ライタは電子タグからの通信データに破損を検出することになるため、これとコリジョンによるデータ破損とを判別することが極めて困難なものにする。一方、リーダ・ライタから電子タグへの送信時に発生した場合は、電子タグからの応答がなくなる原因となり、タイムスロットに割り当てられた電子タグが無かったため応答がなかったのかを判別することをきわめて困難なものにする。このような環境においては、図１３のグラフは成り立たず、通信対象となっている電子タグの個数に近い値であるスロット数を選択することが、必ずしも通信効率向上に繋がらなくなる。
【００２８】
しかし、上記のことは、あらかじめ個々の電子タグとの通信エラーの発生確率を把握することができれば対処することができる。なぜなら、１タイムスロット当りの電子タグとの通信が成功する確率に、個々の電子タグとの通信エラーの発生確率を輻輳制御における衝突、応答なしの確率を組み込むことにより、電子タグの個数とスロット数の最適値を修正できるからである。これが、コリジョンに起因するものではない、個々の電子タグとの通信エラーの発生確率を把握しておくことの必要性である。
【００２９】
最後に、リーダ・ライタ自身の設定値と、電子タグとの通信の成功率の値、及び、その時間変化に関する相関関係を把握しておくことが必要についてであるが、この理由は下記のとおりである。
【００３０】
リーダ・ライタと電子タグ間の通信において、これらの周囲の伝播環境が時間的に変化することがある。例えば、電子タグが利用される条件の中には、移動する物品に電子タグが貼り付けられ、この状態でリーダ・ライタが電子タグと通信するような場合である。この場合、時間に依存して、リーダ・ライタは、電子タグと通信できたりできなかったりするが、場合によっては、通信できる時間が短いため、ある一定以上の通信速度でないと、通信終了前に、通信が途切れることもありうる。リーダ・ライタの一部には通信速度が可変なものがあるが、リーダ・ライタは上記のようなケースを想定して、通信速度を選択する必要がある。
【００３１】
また、リーダ・ライタと電子タグ間の通信においては、通信対象となっている電子タグの全てが通信できる状況にあるわけではなく、そのうちの一部とのみ通信できる場合がある。このような場合に対処できるよう、リーダ・ライタの一部には、複数のアンテナが接続され、これらを切替え可能なものや、アンテナの向きを変化させるなどして、電波の領域を変更できるものがある。これらのリーダ・ライタは、電波領域を変えることにより、通信対象となっている電子タグ全てとの通信を試みるが、電波の領域によっては、電子タグと通信できないこともあり得る。したがって、リーダ・ライタは、電子タグとの通信が良好なアンテナやアンテナの向き等のリーダ・ライタの設定値を把握しておく必要がある。
【００３２】
特に、上記の件は、通信対象である電子タグが移動する状況ではより重要となる。なぜなら、時間とともに自然に通信領域が変化するからである。この場合、リーダ・ライタはこの変化に合わせてアンテナ等を切り替えるなどして、電波の領域を変更し、電子タグとの通信を良好に保つ必要がある。このとき、効率的な無線通信のために、どのアンテナを使用するかだけではなく、切り替えるタイミングも重要となる。なぜなら、切り替えるタイミングが遅いと電子タグと通信できなくなる時間が増え、一方、切り替えるタイミングが早いと切替時に発生する時間のロスが増えるからである。
【００３３】
以上が、使用するアンテナや伝送速度といったリーダ・ライタ自身の設定値と、電子タグとの通信の成功率の値、及び、その時間変化に関する相関関係を把握することの必要性であり、リーダ・ライタはこれらを把握した上で最適な設定値を最適なタイミングで選択する必要がある。
【００３４】
以上のことから、効率的な無線通信を実現するために、電子タグと通信している各時刻において、通信対象となっている電子タグの個数を把握し、実際に通信可能な状態になっている電子タグの個数を把握し、コリジョンに起因するものではない、個々の電子タグとの通信エラーの発生確率を把握し、リーダ・ライタのアンテナや、伝送速度や無線チャネルといったリーダ・ライタ自身の設定値と、電子タグとの通信の成功率の値、及び、その時間変化に関する相関関係を把握し、これらを把握した上で、単位時間当たりの電子タグからの受信成功回数の期待値が最大となるリーダ・ライタのコマンド群を予測して、このコマンド群を発行することが課題である。
【００３５】
そこで、本発明の目的は、これらの課題を解決し、通信状況の変化にかかわらず、通信対象である電子タグとの実効通信速度を最大に保つようにして、効率的な無線通信を実現することができるリーダ・ライタのコマンド制御技術を提供することにある。
【００３６】
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００３７】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
【００３８】
本発明は、電子タグと、この電子タグの通信制御を行うリーダ・ライタとの通信における動的なリーダ・ライタのコマンド制御方法に関し、以下のような特徴を有するものである。さらには、これらのリーダ・ライタのコマンド制御方法における各手順をコンピュータに実行させるためのプログラム、リーダ・ライタのコマンド制御方法における各手順を実行するリーダ・ライタ、リーダ・ライタのコマンド制御方法における各手順を実行するコンピュータなどにも適用するものである。
【００３９】
（１）第１の発明は、動的なリーダ・ライタのコマンド制御において、確率統計論的な手法により、電子タグとリーダ・ライタの過去の通信データから現在の通信状況を推測し、この推測結果を元に、統計確率論的な手法を用いて、電子タグとの通信効率が最も良いコマンド群を予測し、これを選択しコマンドとして発行することを特徴とする。
【００４０】
（２）第２の発明は、１度通信コネクションの確立した電子タグと、リーダ・ライタが輻輳制御なしに直接通信することにより、輻輳制御による通信エラー等を排除し、純粋に電子タグとリーダ・ライタ間の環境による通信エラー等の通信状況を把握することを特徴とする。
【００４１】
（３）第３の発明は、あらかじめＩＤの判明しているいくつかの電子タグを、ＩＤのわからない電子タグ集団に混ぜておき、このＩＤの判明している電子タグとリーダ・ライタが輻輳制御なしに直接通信することにより、輻輳制御による通信エラー等を排除し、純粋に電子タグとリーダ・ライタ間の環境による通信エラー等に関する通信状況を把握することを特徴とする。
【００４２】
（４）第４の発明は、環境による通信エラー等が発生しない、あるいは、無視できるほど発生率の低い、理想的な通信環境において、リーダ・ライタが発行するコマンドのパラメータで決まるタイムスロット数と、電子タグの応答結果から、リーダ・ライタが通信している電子タグの個数を推定することを特徴とする。
【００４３】
（５）第５の発明は、コリジョンによるものではなく環境等による通信エラーが発生する通信環境において、一般的に、時刻や電子タグごとで異なる値となる環境要因による通信エラーが発生する確率を、ある平均的な値に置き換え、この置き換えによる誤差が少ないと仮定することにより、リーダ・ライタのコマンドで制御するタイムスロット全体における、電子タグとの通信が成功する回数と応答データが破損して通信が失敗する回数と電子タグが応答しない回数の期待値を、タイムスロット数と通信対象の電子タグの個数と、コリジョンに起因するものではない、個々の電子タグとリーダ・ライタ間の通信に関する、送受信に成功する確率、応答データが破損して通信が失敗する確率、電子タグが応答しない確率を５つの変数とする３つの関数として確率計算から導出し、この関数に、実際にリーダ・ライタが観測したデータ破損の発生回数や、電子タグからの応答が無かった回数を代入して方程式を作り、これらの方程式を解くことにより、リーダ・ライタが通信している電子タグの個数と、電子タグとリーダ・ライタ間の環境等により発生する通信エラーの確率を推測することを特徴とする。
【００４４】
（６）第６の発明は、リーダ・ライタと通信している電子タグの個数をある適当な数値に決め、また、各時刻、各電子タグにおける環境要因による通信エラー等が発生する確率をある適当な数値に決め、これらの数値のもと、電子タグから実際に観測した応答結果を出力する確率を、タイムスロット全体における、各スロットで起こりうる電子タグの通信の可否に関する応答パターンの全てを考慮して算出し、適当に決めた電子タグの個数や環境要因による通信エラーが発生する確率の数値を変更した上で、上記の電子タグから実際に観測した応答結果を出力する確率を算出する作業を繰り返し行い、この作業を繰り返した結果、実際に観測した電子タグからの応答結果を最も出力しやすい、すなわち、最尤となる電子タグの個数や環境要因により通信エラーが発生する確率を、実際の数値であると推測することを特徴とする。
【００４５】
（７）第７の発明は、過去の累積したリーダ・ライタと電子タグとの通信結果から算出した、通信可能な電子タグの個数や通信エラーの発生する確率の時間推移に関するデータ配列達を、統計解析用のデータ配列群としてデータベースに格納しておき、これをクラスター分析によりいくつかの類似したグループに分けておき、クラスター分析により分類されたクラスターの中から、通信可能な電子タグの個数や通信エラーの発生する確率の平均値の時間推移が、電子タグと通信しているリーダ・ライタの過去の通信結果に関する時間推移と最も類似したものを選択し、この選択したクラスターの通信可能な電子タグの個数や通信エラーの発生する確率の平均値を、現在のリーダ・ライタが通信している電子タグの個数や、通信エラーの発生する確率の推測値とすることを特徴とする。
【００４６】
（８）第８の発明は、リーダ・ライタのアンテナや、伝送速度や無線チャネルといったリーダ・ライタ自身の設定値を決めるリーダ・ライタのコマンドを発行するとき、クラスター分析により分類された各クラスターの中から、対象となっているリーダ・ライタが出現する割合が高いものをいくつか選択し、これらのクラスターの中から、電子タグとの通信が良好なもの、すなわち、通信エラーの発生率が低く、かつ、時間による変動の少ないものを選択し、このクラスターにおいてリーダ・ライタの設定パラメータとして出現回数の多いパラメータを選択することにより、無線通信の効率化を図ることを特徴とする。
【００４７】
（９）第９の発明は、カメラや重量計等により電子タグの貼り付けられた対象物の個数を計測し、この計測結果から電子タグの個数を推定する装置によって、通信対象となる電子タグの個数を推定し、この推定値から、輻輳制御におけるタイムスロット数の大きさの上限を決めることを特徴とする。
【発明の効果】
【００４８】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【００４９】
本発明によれば、電子タグと、リーダ・ライタの無線通信において、無線通信状況を推測し、この推測した無線通信状況に合わせて、最適なリーダ・ライタのコマンドを動的に変更しながら発行することにより、効率的な無線通信を実現することができる。
【発明を実施するための最良の形態】
【００５０】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００５１】
以下においては、主にリーダ・ライタのコマンド制御方法、およびこのコマンド制御方法における各手順を実行するリーダ・ライタについて説明するが、本発明は、コマンド制御方法における各手順をコンピュータに実行させるためのプログラムや、リーダ・ライタのコマンド制御方法における各手順を実行するコンピュータなどにも適用可能である。
【００５２】
なお、以下の説明においては、通信対象となっている電子タグは、リーダ・ライタと通信成功すると、以降のリーダ・ライタのコマンドに応答しなくなることを想定する。
【００５３】
（第１の実施の形態）
図１は、本発明の第１の実施の形態の電子タグとリーダ・ライタにより構成される無線システムの構成例を示す概念図である。この図１における無線システムは、リーダ・ライタ１００と、複数個（図では４個の例）の電子タグ２００〜２０３から構成される。リーダ・ライタ１００は、リーダ・ライタ１００のアンテナ１１０から電波を放出することにより、電子タグ２００〜２０３にコマンドを送信する。逆にリーダ・ライタ１００は、電子タグ２００〜２０３からの応答データをアンテナ１１０により受信する。
【００５４】
図２は、リーダ・ライタのハードウェア構成を示すブロック図である。図２において、リーダ・ライタ１００のハードウェア構成は、コマンド制御部１２０、無線インタフェース部１２１、受信結果解析部１２２、通信状況推測部１２３、メモリ部１２４、外部インタフェース部１２５から構成される。
【００５５】
コマンド制御部１２０は、リーダ・ライタが発行するコマンドを制御し、制御結果を、メモリ部１２４に格納する。無線インタフェース部１２１は、コマンド制御部１２０からのリーダ・ライタのコマンドデータを受けて、このコマンドデータを無線出力する。また、無線インタフェース部１２１は、電子タグからの無線により送られる信号を受信する。受信結果解析部１２２は、無線インタフェース部１２１から送られる受信データと、メモリ部１２４に格納されている発行済みのコマンドから、電子タグの受信データの整合性の判別や、データの内容を解析する。通信状況推測部１２３は、受信結果解析部１２２から受けた電子タグからの受信結果と、メモリ部１２４に格納されている過去のコマンド履歴、及び、過去の電子タグからの受信結果の履歴、および、外部インタフェース部１２５からの参考データを元に、電子タグとの現在の通信状況を推測する。
【００５６】
外部インタフェース部１２５は、メモリ部１２４に格納されている、リーダ・ライタのコマンド履歴、電子タグからの生の受信データ、通信状況推測の推測値の履歴を外部に出力する。一方、外部からの情報をメモリ部１２４に格納する。メモリ部１２４は、コマンド制御部１２４のコマンド履歴、受信結果解析部１２２の電子タグの受信データ履歴、通信状況推測部１２３の推測結果の履歴、外部インタフェース部１２５からの外部情報を格納する。コマンド制御部１２０は、通信状況推測部１２３からリーダ・ライタと電子タグ間の通信状況推測結果を受けて、また、メモリ部１２４から過去のコマンド履歴を受けて、さらに、外部インタフェース部１２５からの外部情報を参考にして、電子タグとの通信が最適化されるよう、新規のコマンドを発行する。
【００５７】
図３は、リーダ・ライタのコマンド名とその機能に関する説明図であり、前述の背景技術で説明したとおりである。図４はリーダ・ライタのコマンド制御の基本的なフローチャートである。図５は、リーダ・ライタの輻輳制御に関するコマンドシーケンス図であり、図４のフローチャートにおける処理Ｆ００２からＦ００５のループ処理の一部を抜き出したものである。
【００５８】
以下本発明にかかる通信状況推測部とコマンド制御部の動作例を、図４のフローチャートに沿って説明する。
【００５９】
まず、環境による通信エラー等が発生しない、あるいは、無視できるほど発生率の低い、理想的な通信環境である場合の動作例について説明する。
【００６０】
コマンド制御部１２０は、最初にリーダ・ライタ制御コマンドを発行し、リーダ・ライタが使用する無線チャネルや伝送速度を決定する（ステップＦ００１）。なお、使用する無線チャネルは確保可能なものを適当に選択すればよく、伝送速度は帯域が確保できるならば伝送速度の高いものを選べばよい。次に活性化コマンドを発行し、電子タグをリーダ・ライタのコマンドに反応できるようにする（ステップＦ００２）。電子タグを活性後、乱数生成コマンドを発行する（ステップＦ００３）。このとき、コマンド制御部１２０は、タイムスロット数を決める必要があるが、初回のコマンド発行時は適当な数値、例えば５０くらいを選べばよい。乱数生成コマンド発行後、コマンド制御部１２０は応答要求コマンドを発行し、電子タグから応答があった場合は、無線インタフェース部１２１を通じて、受信結果解析部１２２でデータの整合性をチェックする（ステップＦ００４，Ｆ００５）。この後、コマンド制御部１２０はタイムスロット数回（ｎ＞）、ステップＦ００４とＦ００５を繰り返す（ステップＩ００１）。
【００６１】
コマンド制御部１２０は、ステップＦ００４からＦ００５をタイムスロット数回実行した後、次に再度乱数生成コマンドを発行するか否かを、ステップＦ００３からＦ００５のループ処理の過程における電子タグからの応答の有り無しで判断する（ステップＩ００２）。応答があった場合は、再度乱数生成コマンドを発行し、応答が無かった場合は、活性化コマンドを受信できなかった電子タグの存在を想定して再度活性化コマンドを発行し、それでも応答が無かった場合は、ステップＦ００１に戻りリーダ・ライタの設定値を変えて、ステップＦ００２からＦ００５の処理を行う。なお、ステップＩ００３の閾値１は、活性化コマンドを再送するタイミングを指定し、ステップＩ００４の閾値２は通信を終了する条件を決める。完全に通信エラーが発生しない理想的な通信状況ならば、閾値１と閾値２は共に１で良く、少しのエラー発生率であるならば、通信時間の許容範囲で適当に決めればよい。
【００６２】
以下、ステップＩ００２で、電子タグの応答があった場合で２回目以降のＦ００３からＦ００５の処理について説明する。
【００６３】
まず、リーダ・ライタは、通信状況推測部１２３にて、電子タグ個数の推定をおこなう。推定方法は下記のとおりである。
【００６４】
ｉ番目（ｉは正の整数）に発行した乱数発生コマンドにおける、リーダ・ライタとの通信が済んでない、乱数発生コマンドに反応する電子タグの個数ｎiとし、乱数発生コマンドが指定するタイムスロット数の大きさをｍiとする。また、このときの、１タイムスロット当たりにおける、電子タグからの応答が成功する確率をＰSi、タグからの応答が無い確率をＰFiとすると、計算によりそれぞれ、（１）式、（２）式の関係が成り立つ。
【００６５】
【数１】
2008124849.tif 000003
【００６６】
【数２】
2008124849.tif 000004
したがって、乱数発生コマンド後、タイムスロット数の回数、応答要求コマンドを発行したときの、電子タグと通信に成功したタイムスロットの回数をｎSi、応答がなかったタイムスロットの回数をｎFiとすると、ｉ番目に乱数発生コマンドを発行した際、そのコマンドを実際に受信できた電子タグ個数の推定値ｎEiは、（１）式、（２）式から、（３）式、（４）式が近似的に成り立つと考えられる。
【００６７】
【数３】
2008124849.tif 000005
【００６８】
【数４】
2008124849.tif 000006
したがって、（４）式から、電子タグ個数の推定値ｎEiが求まる。等号が成立しない場合は、最も両辺の差の絶対値が小さくなるものを選択すれば良い。なお、電子タグ個数の推定値ｎEiの求め方は、（３）式と（４）式の両辺の差の絶対値が、それぞれ最も同時に小さくなるものを選択しても良い。
【００６９】
電子タグ個数の推定値ｎEiが求まったので、次に乱数発生コマンドを発行したとき、通信対象となる電子タグ個数の推定値は、前回のリーダ・ライタコマンド群の通信結果から、ｎSi個の電子タグと通信できたことを考慮すると、（ｎEi−ｎSi）個と推定できる。
【００７０】
したがって、次に乱数生成コマンドを発行するときのスロット数ｍi+1は、電子タグ個数の推定値（ｎEi−ｎSi）と（１）式から、単位時間当たりの電子タグの応答成功回数が最大となるよう選択すればよい。
【００７１】
具体的には、時間因子を特に考慮しなくて良いならば、（１）式から、１タイムスロット当たりにおける電子タグからの応答が成功する確率ＰSは（１）式の微分計算をすると、ｍ＝ｎつまり、タイムスロット数と電子タグ個数が等しくなるとき最大なり、このとき（５）式のようになる（次式においては、一般的に成り立つため、添え字ｉを省略した。また、ｅはネピアの自然数である。）。
【００７２】
【数５】
2008124849.tif 000007
以上のことから、コマンド制御部１２０は、ｉ＋１番目にステップＦ００３にて乱数生成コマンドを発行するときのスロット数ｍi+1の値を、ｉ番目のステップＦ００３からＦ００５のループ処理の電子タグの応答結果から算出した現在の電子タグ個数の推定値（ｎEi−ｎSi）を選択する。
【００７３】
なお、実際には、各コマンドによりビット長や、リーダ・ライタ間の送受信タイミングが異なるため、次に乱数生成コマンドを発行するときのスロット数は電子タグ個数の推定値そのものにはならないが、これらは、エアインタフェースや、リーダ・ライタ固有の数値なので、上記方法と同様の計算から算出できる。
【００７４】
以降の輻輳制御に関するステップＦ００３からＦ００５の処理においては、上記操作を繰り返す。
【００７５】
次に、環境による通信エラー等が発生し得る環境を想定し、この対策を実施した場合の３つの動作例について説明する。
【００７６】
まず、環境による通信エラー等が発生し得る環境を想定した場合の３つの動作例すべてにおいて、初回のステップＦ００１からＦ００５の処理については、理想的な通信環境である場合の動作例と同様である。
【００７７】
初回のステップＦ００１からＦ００５の処理終了後、コマンド制御部１２０は、次に再度乱数生成コマンドを発行するか否かを、ステップＦ００３からＦ００５のループ処理の過程における電子タグからの応答の有り無しで判断する（ステップＩ００２）。応答があった場合は、再度乱数生成コマンドを発行し、応答が無かった場合は、活性化コマンドを受信できなかった電子タグの存在を想定して再度活性化コマンドを発行し、それでも応答が無かった場合は、ステップＦ００１に戻りリーダ・ライタの設定値を変えて、ステップＦ００２からＦ００５の処理を行う。なお、ステップＩ００３の閾値１は、活性化コマンドを再送するタイミングを指定し、ステップＩ００４の閾値２は通信を終了する条件を決める。閾値１と閾値２は、通信エラーが発生する状況を想定しているため、下記の方法でそれぞれの値を決定する。
【００７８】
まず、閾値１であるが、１つの決定方法は通信時間の許容範囲内でできるだけ大きい値を指定する方法で、もう１つの方法は、通信対象となっている電子タグの全個数の推定値Ｌとしたとき、Ｌが１以上の場合は、閾値１も１増加させる。すなわち、Ｌが１以下にならない限り、ステップＦ００２からＦ００５のループ処理を実行し、１より小さくなったら通信対象となっている電子タグが存在しないと判断してＦ００２からＦ００５のループ処理を終了する。
【００７９】
なお、この全電子タグ個数Ｌの算出方法であるが、これは、活性化コマンドを受信できた電子タグ個数をＮとし、活性化コマンドを受信できる電子タグの発生確率をＲとしたとき、この活性化コマンドを受信できる電子タグの発生確率Ｒが、個々の電子タグの乱数生成コマンドを受信成功する確率の平均値をＱSとしたとき、近似的にＲ＝ＱSが成り立つとみなすことにより、全電子タグ個数Ｌは、ＲとＮの値がわかれば、次の関係式、Ｌ×Ｒ＝Ｎより算出できる。なお、Ｒ、実際にはＱSと、Ｎの算出方法は後述する。
【００８０】
次に、閾値２であるが、これも、閾値１と同様の方法で決定する。
【００８１】
以下、ステップＩ００２で、電子タグの応答があった場合で２回目以降のステップＦ００３からＦ００５の処理について説明する。
【００８２】
まず、環境による通信エラー等が発生し得る環境を想定し、この対策を実施した場合の３つの動作例のうち、２つの例について説明する。
【００８３】
今回も理想的な通信環境と同様に、１タイムスロット当たりの、電子タグからの応答が成功する確率と、タグからの応答が無い確率を、リーダ・ライタの通信状況推測部１２３にて推定し、この推定値を受けて、コマンド制御部１２０がコマンド制御を行う。
【００８４】
まず、リーダ・ライタは、通信状況推測部１２３にて、電子タグ個数と通信エラーの発生確率の推定をおこなう。推定方法は下記のとおりである。
【００８５】
ｉ番目に発行した乱数発生コマンドにおける、リーダ・ライタとの通信が済んでない、乱数発生コマンドに反応する電子タグの個数ｎiとし、乱数発生コマンドが指定するタイムスロット数の大きさをｍiとする。また、このときの、１タイムスロット当たりにおける、電子タグからの応答が成功する確率をＰSi、電子タグからの応答が無い確率をＰFiとする。
【００８６】
さらに、全電子タグ個数、より正確には、活性化コマンドを受信できた電子タグ個数をＮとし、乱数生成コマンドを発行した際、個々の電子タグがコマンドを受信成功する確率をＱSiとし、タイムスロットが割り振られた電子タグが応答要求コマンドに対して、コリジョンが起きなければ応答に成功する確率をｑSiとし、応答しない確率をｑFiとする。
【００８７】
なお、確率ｑSi、ｑFiは、応答要求コマンド、また、個々の電子タグごとで異なるので、一般的には、ｑSi＝ｑSi（α，ｊ）、ｑFi＝ｑFi（α，ｊ）である。ここで、αは電子タグを区別するための番号であり、ｊは乱数生成コマンド発行後の、ｊ番目の要求コマンドに対するものであることを意味する。また、確率ＱSiに関しても同様で、一般的には、ＱSi＝ＱSj（ｉ≠ｊ）は成立しない。しかし、このような状況では、計算することが極めて困難であるため、次の仮定を行なう。
【００８８】
「ｑSi＝ｑSi（α，ｊ）、ｑFi＝ｑFi（α，ｊ）、及び、ＱSiは、個々の電子タグによらず、ある平均的な値として扱え、少なくとも２回の乱数生成コマンドを発行する期間においては一定である。」
上記仮定においては、３回のタイムスロットにおいては、ｉ、α、ｊを外すことができ
、また、ＱSiに関しては、ｉを外すことができる。したがって、以下省略し、この仮定の下、１タイムスロットあたりの電子タグからの応答が成功する確率ＰSi、電子タグからの応答が無い確率ＰFiは、それぞれ、（６）式、（７）式のようにかける。
【００８９】
【数６】
2008124849.tif 000008
【００９０】
【数７】
2008124849.tif 000009
環境による通信エラー等が発生し得る環境を想定し、この対策を実施した場合の３つの動作例のうち１つ目の例では、リーダ・ライタは、ステップＦ００３の乱数生成コマンド発行前に、直接ＩＤを指定することにより、通信コネクションに成功し電子タグのＩＤを把握した電子タグのいくつかと再度個別に通信するか、もしくは、あらかじめＩＤの判明した電子タグを通信対象となっている電子タグ集団の中にいくつか配置しておき、これらの電子タグのいくつかと個別に通信を行う。
【００９１】
このときの応答結果である、個別の電子タグに通信した全回数に対する電子タグの応答に成功した回数の比率を、コリジョンが起きなければ応答に成功する確率ｑSの値とみなし、個別の電子タグに通信した全回数に対する電子タグの応答が無かった回数の比率を、コリジョンが起きなければ応答しない確率ｑFの値とみなす。
【００９２】
また、ｉ番目の乱数発生コマンド後、タイムスロット数の回数分応答要求コマンドを発行したときの、電子タグと通信に成功したタイムスロットの回数をｎSi、応答がなかったタイムスロットの回数をｎFiとすると、ｉ番目に乱数発生コマンドを発行した際、そのコマンドを実際に受信できた電子タグ個数の推定値ｎEiは、（６）式、（７）式から、（８）式、（９）式が近似的に成り立つと考えられる。
【００９３】
【数８】
2008124849.tif 000010
【００９４】
【数９】
2008124849.tif 000011
よって、（８）式から、上記連立方程式において唯一の未知数である電子タグ個数の推定値ｎEiが求まる。等号が成立しない場合は、最も両辺の差の絶対値が小さくなるものを選択すれば良い。なお、電子タグ個数の推定値ｎEiの求め方は、（８）式と（９）式の両辺の差の絶対値が、それぞれ最も同時に小さくなるものを選択しても良い。
【００９５】
電子タグ個数の推定値ｎEiが求まったので、次に乱数発生コマンドを発行したとき、通信対象となる電子タグ個数の推定値は、前回のリーダ・ライタコマンド群の通信結果から、ｎSi個の電子タグと通信できたことを考慮すると、（ｎEi−ｎSi）個と推定できる。
【００９６】
以上のことから、次に乱数生成コマンドを発行するときのスロット数ｍi+1は、電子タグ個数の推定値（ｎEi−ｎSi）と（６）式から、単位時間当たりの電子タグの応答成功回数が最大となるよう選択すればよく、コマンド制御部１２０は、これを計算してｉ＋１番目のステップＦ００３にてタイムスロット数をｍi+1の値として乱数生成コマンドを発行する。
【００９７】
なお、時間因子を特に考慮しなくて良いならば、コマンド制御部１２０が乱数生成コマンド時に指定するスロット数ｍi+1の具体的な値は、（６）式から、１タイムスロット当たりにおける電子タグからの応答が成功する確率ＰSの最大となる条件である、（１−ｑF）×（ｎEi−ｎSi）となる。
【００９８】
しかし、実際には、各コマンドによりビット長や、リーダ・ライタ間の送受信タイミングが異なるため、次に乱数生成コマンドを発行するときのスロット数は電子タグ個数の推定値そのものにはならないが、これらは、エアインタフェースや、リーダ・ライタ固有の数値なので、上記方法と同様の計算から算出できる。
【００９９】
以降の輻輳制御に関するステップＦ００３からＦ００５の処理においては、上記操作を繰り返す。
【０１００】
環境による通信エラー等が発生し得る環境を想定し、この対策を実施した場合の３つの動作例のうち２つ目の例では、下記仮定において、平均値として扱える期間を、少なくとも３回の乱数生成コマンドを発行する期間においては成立することを前提とする。
【０１０１】
「ｑSi＝ｑSi（α，ｊ）、ｑFi＝ｑFi（α，ｊ）、及び、ＱSiは、個々の電子タグによらず、ある平均的な値として扱え、少なくとも２回の乱数生成コマンドを発行する期間においては一定である。」
この前提のもと、コマンド制御部１２０は、ステップＦ００３からＦ００５の一連の処理における最初の２回は、乱数生成コマンド発行時に、タイムスロット数として適当な値、例えば５０等を選択する。
【０１０２】
２回目以降の輻輳制御に関するステップＦ００３からＦ００５の処理については下記のとおりである。
【０１０３】
まず、リーダ・ライタは、通信状況推測部にて、電子タグ個数と通信エラーの発生確率の推定をおこなう。推定方法は下記のとおりである。
【０１０４】
ｉ番目の乱数発生コマンド後、タイムスロット数の回数、応答要求コマンドを発行したときの、電子タグと通信に成功したタイムスロットの回数をｎSi、応答がなかったタイムスロットの回数をｎFiとすると、ｉ番目と（ｉ＋１）番目に乱数生成コマンドを発行した際、そのコマンドを実際に受信できた電子タグ個数の推定値ｎEiとｎEi+1は、（６）式、（７）式から、（１０）式〜（１３）式が近似的に成り立つ。
【０１０５】
【数１０】
2008124849.tif 000012
【０１０６】
【数１１】
2008124849.tif 000013
【０１０７】
【数１２】
2008124849.tif 000014
【０１０８】
【数１３】
2008124849.tif 000015
（１０）式〜（１３）式において、左辺は実測値とタイムスロット数を代入するため、また、右辺のタイムスロット数ｍiとｍi+1はリーダ・ライタのコマンドパラメータで既知であるため、未知数は４つであり、これら４つの方程式から４つの未知数ｑS、ｑF、ｎEi、ｎEi+1を求めることができる。なお、等号が成立しない場合は、４式で同時に、両辺の差の絶対値が最も小さくなるものを選択すれば良い。
【０１０９】
推定値ｑS、ｑF、ｎEi、ｎEi+1が求まったので、次に乱数生成コマンドを発行したとき、通信対象となる電子タグ個数の推定値は、前々回と前回のリーダ・ライタコマンド群の通信結果から、（ｎSi＋ｎSi+1）個の電子タグと通信できたので、（Ｎ−ｎSi−ｎSi+1）×ＱS個、と推定できる。なお、ＮとＱSは、ｎEi＝Ｎ×ＱS，ｎEi+1＝（Ｎ−ｎEi）×ＱSから算出できる。
【０１１０】
したがって、コマンド制御部は、ステップＦ００３の処理における、ｉ＋２番目の乱数発生コマンドを発行するとき、タイムスロット数ｍi+2を、電子タグ個数の推定値（Ｎ−ｎSi−ｎSi+1）×ＱSと（６）式から、単位時間当たりの電子タグの応答成功回数が最大となるよう選択する。
【０１１１】
具体的には、時間因子を特に考慮しなくて良いならば、（６）式から、１タイムスロット当たりにおける電子タグからの応答が成功する確率ＰSの最大となる条件、すなわち、
ｍi+2＝（Ｎ−ｎSi−ｎSi+1）×ＱS×（１−ｑF）
をタイムスロット数として選択する。
【０１１２】
なお、実際には、各コマンドによりビット長や、リーダ・ライタ間の送受信タイミングが異なるため、次に乱数生成コマンドを発行するときのスロット数は、電子タグ個数の推定値そのものにはならないが、これらは、エアインタフェースや、リーダ・ライタ固有の数値なので、上記方法と同様の計算から算出できる。
【０１１３】
次に、環境による通信エラー等が発生し得る環境を想定し、この対策を実施した場合の３つの動作例のうち３つ目の例について以下に説明する。
【０１１４】
２回目以降のステップＦ００３からＦ００５の処理において、ステップＦ００３の乱数生成コマンド発行前に、リーダ・ライタは、通信状況推測部１２３にて、ＥＭアルゴリズムを用いることにより、電子タグ個数と通信エラーの発生確率の時間推移の推定をおこなう。推定方法は下記のとおりである。
【０１１５】
本来、活性化コマンドを受信できた電子タグ個数、乱数生成コマンドを発行した際、個々の電子タグがコマンドを受信成功する確率、タイムスロットが割り振られた電子タグが応答要求コマンドに対して、コリジョンが起きなければ応答に成功する確率、応答するが、コリジョンが無くてもデータが破損する確率、応答しない確率がわかっていれば、タイムスロット全体における電子タグの応答結果の組み合わせ、以下、これを、出力シンボル系列ｙと呼ぶと、この生成確率は、直接計算することは困難であるが、モンテカルロシミュレーションといった数値計算により算出することができる。
【０１１６】
そこで、通信状況推測部１２３では、受信できた電子タグ個数や通信エラーの発生確率等を適当な値に設定し、この条件のもと実際に観測された出力シンボル系列ｙを実現する確率を求め、次に受信できた電子タグ個数や通信エラーの発生確率等の値を適当に変更して、再度観測された出力シンボル系列ｙを実現する確率を求め、より実現する確率の高い、受信できた電子タグ個数や通信エラーの発生確率等の値を選択し、これを繰り返すことにより推測値の精度を高める。
【０１１７】
具体的には、活性化コマンドを受信できた電子タグ個数、乱数生成コマンドを発行した際、個々の電子タグが、コマンドを受信成功する確率、タイムスロットが割り振られた電子タグが応答要求コマンドに対して、コリジョンが起きなければ応答に成功する確率、応答するが、コリジョンが無くてもデータが破損する確率、応答しない確率をモデルパラメータθとして、ＥＭアルゴリズムによりθの最尤推定値を求める。
【０１１８】
まず、出力シンボル系列ｙの生成確率Ｐ（ｙ）は、次式で与えられる。
【０１１９】
【数１４】
2008124849.tif 000016
ここで、ｘは、出力シンボル系列ｙの背後にある完全な確率変数である。これは、例えば、出力シンボル系列ｙが電子タグの応答があったか、なかったかといった単純な観測値であるのに対して、ｘはどの電子タグが応答したかといった、観測では不明な条件をもデータとしてもつ。
【０１２０】
次に、ＥＭアルゴリズムで用いる関数Ｑを（１５）式のように定義する。
【０１２１】
【数１５】
2008124849.tif 000017
以下、通信状況推測部のＥＭアルゴリズムによる動作例を、図６のフローチャートに沿って説明する。
【０１２２】
まず、モデルパラメータθ0を適当にきめる（ステップＳ００１）。次に、別のモデルパラメータθを適当にきめ、θ0とθと観測された出力シンボル系列ｙを（１５）式に代入し、これを計算する（ステップＳ００２）。モデルパラメータθの値を変えていき、関数Ｑが最大となるθ*を求め、これを新しいモデルパラメータとする（ステップＳ００３）。関数Ｑが収束するまで、ステップＳ００２とステップＳ００３の計算を繰り返す（ステップＳ００４）。上記アルゴリズムにより、最尤推定値θが求まる。通信状況推測部１２３は、電子タグの個数や通信のエラー発生率といった電子タグとの通信状況の推測値をθから得る。
【０１２３】
コマンド制御部１２０は、ステップＦ００３の乱数生成コマンド発行時に、タイムスロット数を決定する際、最尤推定値θから得たコリジョンが起きなければ応答に成功する確率、応答するがコリジョンが無くてもデータが破損する確率、応答しない確率の各平均値を、次のステップＦ００３からＦ００５の一連の処理において発生する確率とみなし、これらの数値のもと、全ての電子タグが応答成功する回数を算出し、この中で、単位当りの応答成功回数が最も大きいタイムスロット数ｍを選択する。
【０１２４】
なお、上記ＥＭアルゴリズムの推定において、計算量を減らすため、後述する、輻輳制御における第２の実施の形態と同様、乱数生成コマンドを発行した際、個々の電子タグがコマンドを受信成功する確率、タイムスロットが割り振られた電子タグが応答要求コマンドに対して、コリジョンが起きなければ応答に成功する確率、応答するが、コリジョンが無くてもデータが破損する確率、応答しない確率を、それぞれ、ある平均的な値に置き換えても良い。
【０１２５】
また、推定における計算量を減らすため、活性化コマンドを受信できた電子タグ個数、タイムスロットが割り振られた電子タグが応答要求コマンドに対して応答しない確率に関して、これらの対数に対して等間隔にサンプリングしても良い。この理由は、（１）式において、ｎが十分大きいとき、ｘ＝ｎｎ／ｍとおくと、（１）式は、（１６）式のように書ける。
【０１２６】
【数１６】
2008124849.tif 000018
したがって、ＰSに関して等間隔にサンプリングすると、ｘ軸に関しては指数的に変化する。このため、電子タグ個数の対数に関して等間隔にサンプリングしても、ＰSに対する精度が落ちなくて済む。一方、対数に関して等間隔にサンプリングするため、つまり、指数的にサンプリングするため、サンプリング量は極めて少なくて済む。また、タイムスロットが割り振られた電子タグが応答要求コマンドに対して応答しない確率は、（１）式においての極大値の条件がｍ＝ｎであったのに対し、（６）式では、ｍ＝ｎ（１−ｑF）となっている。これと、先ほどと同様な議論から（１−ｑF）の対数に関してサンプリングすることにより、少ないサンプル数で、推定精度の低下を防ぐことができる。
【０１２７】
なお、通信エラー等が発生し得る環境を想定し、この対策を実施した場合の３つの動作例に関する輻輳制御方法を適用しつづけると、時に局所的な最適状態になることがある。これを防ぐためには、ある適当なタイミングで、最適ではないタイムスロットを設定することである。具体的には、（１）式、（２）式から、最適と推測されるタイムスロット数の数倍（４倍から８倍）のタイムスロットを発行すればよい。
【０１２８】
また、本３つの動作例においては、コマンド制御、及び、電子タグとの通信状況の推測をリーダ・ライタが行ったが、リーダ・ライタの外部に接続されるコンピュータが、コマンド制御、または、電子タグとの通信状況を推測しても良い。さらに、これらの動作をコンピュータに実行させるためのプログラムにも適用できる。
【０１２９】
したがって、本実施の形態によれば、前記のような構成および処理により、電子タグと、リーダ・ライタの無線通信において、無線通信状況を推測し、この推測した無線通信状況に合わせて、最適なリーダ・ライタのコマンドを動的に変更しながら発行することにより、効率的な無線通信を実現することができる。
【０１３０】
（第２の実施の形態）
図７は、本発明の第２の実施の形態の電子タグとリーダ・ライタとサーバとデータベースにより構成される無線システムの構成例を示す概念図である。この図７における無線システムは、リーダ・ライタ１００，１０２と、複数個（図では８個の例）の電子タグ２１０〜２１３，２２０〜２２３と、リーダ・ライタ制御サーバ３００と、送受信履歴格納ＤＢ４００から構成される。
【０１３１】
本実施の形態では、複数のアンテナ１１１，１１２、１１３，１１４が接続された複数のリーダ・ライタ１０１，１０２が、リーダ・ライタ制御サーバ３００を介して、共通の送受信履歴格納ＤＢ４００に電子タグ２１０〜２１３，２２０〜２２３との通信結果を記録する。送受信履歴格納ＤＢ４００の情報を相互に参照可能とすることで、リーダ・ライタは、その他のリーダ・ライタの通信記録を利用して、コマンド制御を最適化する。
【０１３２】
以下に、本構成例について説明する。
【０１３３】
図７におけるリーダ・ライタ１０１は、このリーダ・ライタ１０１のアンテナ１１１と１１２を用いて、電子タグ２１０〜２１３、あるいは、電子タグ２２０〜２２３と電波によりデータを送受信する。また、リーダ・ライタ１０２は、このリーダ・ライタ１０２のアンテナ１１３と１１４を用いて、電子タグ２１０〜２１３、あるいは、電子タグ２２０〜２２３と電波によりデータを送受信する。５００から５０３、５１０から５１３は電子タグの貼付対象物であり、５００から５０３は同類であり、５１０から５１３は同類だが、５００から５０３と５１０から５１３は異なる物質である。
【０１３４】
送受信履歴格納ＤＢ４００は、複数のリーダ・ライタ１０１，１０２と複数の電子タグ２１０〜２１３，２２０〜２２３の送受信に関する記録を保存する。リーダ・ライタ制御サーバ３００は、リーダ・ライタ１０１，１０２、及び、受信履歴格納ＤＢ４００を制御するサーバであり、リーダ・ライタ１０１，１０２から受信した通信に関するデータと受信履歴格納ＤＢ４００から取り出した過去における１個以上のリーダ・ライタと電子タグ集団との通信に関するデータを統計分析する。その統計データを送受信履歴格納ＤＢ４００に格納する。また、統計分析されたリーダ・ライタと電子タグ間の通信に関するデータから有用な統計データを抽出し、リーダ・ライタに送信する。
【０１３５】
図８は、リーダ・ライタ制御サーバのハードウェア構成を示すブロック図である。図８において、リーダ・ライタ制御サーバ３００のハードウェア構成は、クラスター分析部４０１、主成分分析部４０２、メモリ部４０３、リーダ・ライタコマンド制御指示部４０４、リーダ・ライタ通信記録解析部４０５、リーダ・ライタ接続インタフェース部４０６、データベース接続インタフェース部４０７から構成される。
【０１３６】
クラスター分析部４０１は、送受信履歴格納ＤＢ４００とのデータベース接続インタフェース部４０７から、過去の通信記録を取得し、これをクラスター分析により電子タグとの通信状況に関するデータ配列群をクラスタリングする。ここで、通信状況に関するデータ配列とは、リーダ・ライタと電子タグ間の通信結果に関する時間推移、リーダ・ライタが通信結果を元に推測した、通信している電子タグの個数や通信成功確率や通信エラー発生確率などの時間推移を記録したデータ配列である。主成分分析部４０２は、クラスター分析部４０１により分類された各クラスターにおける、電子タグとの通信時の使用したアンテナ等、通信制御パラメータに関するデータ配列の中から、頻度の高い順にデータをまとめておく。メモリ部４０３は、クラスター分析部４０１と主成分分析部４０２の解析結果を記録する。
【０１３７】
リーダ・ライタ接続インタフェース部４０６はリーダ・ライタとの接続インタフェースである。リーダ・ライタ通信記録解析部４０５は、対象としているリーダ・ライタと電子タグ間の通信記録と送受信履歴格納ＤＢ４００の情報と、メモリ部４０３に記録されたクラスター分析と主成分分析の解析結果から、現在のリーダ・ライタと電子タグ間におけるクラスターをいくつか選択する。リーダ・ライタコマンド制御指示部４０４は、リーダ・ライタ通信記録解析部４０５の結果を受けて、選択されたクラスターの中で、現在のリーダ・ライタの通信に参考になるクラスターを選択し、このクラスターにおけるリーダ・ライタ制御パラメータとグループ内での平均化された通信に関するデータ配列を、リーダ・ライタにリーダ・ライタ接続インタフェース部４０６を通じて送信する。
【０１３８】
図９は、リーダ・ライタ制御サーバのクラスター分析部におけるフローチャートである。図１０は、リーダ・ライタ通信記録解析部とリーダ・ライタコマンド制御指示部におけるフローチャートである。
【０１３９】
クラスター分析部４０１では、通信状況に関するデータ配列群を、以下の基準で配列を分断し部分配列を作成する。この基準ごとに、部分配列に関してクラスタリングする。部分配列の分断する基準は、１つは、図４におけるステップＦ００１からＦ００５までのループ処理において発生する、ある電子タグ集団に関する通信全体の通信状況に関するデータ配列を、１つの部分配列とする。２つ目は、図４におけるステップＦ００２からＦ００５までのループ処理において発生する通信状況に関するデータ配列を、部分配列の分断基準とする。３つ目は、ステップＦ００３からＦ００５までのループ処理において発生する通信状況に関するデータ配列を、部分配列の分断基準とする。
【０１４０】
したがって、１つのデータ配列群から、３つの分断基準を元に作成された、３つの部分データ配列群に対してそれぞれ、クラスター分析して類似したもの同士を１つのクラスターにまとめていく。以下に３種類の部分データ配列群に対するクラスター分析の実行手順を、図９のフローチャートに沿って説明する。
【０１４１】
まず、クラスター分析部４０１は、分断後の個々のデータ配列を１つのクラスターとして扱う（ステップＳ００５）。次に、非類似度行列から、最も類似性の高い２つのクラスターを融合して、１つのクラスターを作成する（ステップＳ００６）。新規に作成したクラスターと他のクラスターとの非類似度行列を計算し、非類似度行列を更新する（ステップＳ００７）。クラスターをまとめた結果、クラスターが一つになったら終了し、１つでなければステップ６を繰り返す（ステップＳ００８，Ｓ００９）。ここで、図９のステップＳ００６とＳ００７における非類似度の計算方法には、ユークリッド平方距離によるウォード法を用いる。なお、他の非類似度の計算方法でも良い。
【０１４２】
主成分分析部４０２では、クラスター分析部４０１において分類された各グループにおいて、通信状況に関するデータ配列を発生させたときの、リーダ・ライタの各種制御パラメータや、リーダ・ライタと電子タグ間の通信における環境パラメータ、例えば、電子タグの貼付対象物の情報を格納したデータ配列群について、出現頻度の高い順にまとめておく。
【０１４３】
以上が、リーダ・ライタ制御サーバ３００のクラスター分析による統計処理方法である。次に、本発明にかかるリーダ・ライタ制御サーバ３００の、リーダ・ライタからリーダ・ライタの通信データを受信し、受信データをもとにリーダ・ライタが必要とする統計データを選択し、これをリーダ・ライタに送信するまでの一連の動作例を、図１０のフローチャートに沿って説明する。
【０１４４】
まず、リーダ・ライタ通信記録解析部４０５で、リーダ・ライタと電子タグ集団との通信に関するデータを、対象としているリーダ・ライタからリーダ・ライタ接続インタフェース部４０６を通じて取得する（ステップＦ０１１）。
【０１４５】
リーダ・ライタ通信記録解析部４０５は、この通信に関するデータから、対象としているリーダ・ライタの現在のコマンド制御が、どのループ処理の階層における制御なのかを判定する。ここで、ループ処理の階層とは、図４のフローチャートにおけるループ処理の開始位置が、処理ステップＦ００１なのか、それともＦ００２なのか、それともＦ００３なのかである。リーダ・ライタ制御サーバ３００はループ処理の階層の判定後、メモリ部４０３から、クラスター分析の結果を取得する。ここで、クラスター分析の結果は、通信状況に関する部分配列の基準から３種類存在するが、リーダ・ライタ通信記録解析部４０５は、リーダ・ライタの現在のコマンド制御から判定した階層以上のループ処理における部分配列に関するクラスター分析の結果を選択する（ステップＦ０１２）。
【０１４６】
また、リーダ・ライタ通信記録解析部４０５は、対象となっているリーダ・ライタの通信記録の送受信履歴格納ＤＢ４００への登録回数を分析し、登録回数により処理を振り分ける（ステップＦ０１３，Ｉ００５）。登録回数が多い場合は、クラスター分析により分類したクラスターに関して、中分類のクラスターを採用する。この中分類のクラスターの中で、対象としているリーダ・ライタの出現回数の多いクラスターを、上位からいくつか抽出する（ステップＦ０１４）。一方、登録回数が少ない場合は、中分類のクラスターを採用すると、類似したクラスターの存在する可能性が低いことと、統計データとしての信頼性が低いため、大分類のクラスターを１つ採用する（ステップＦ０１５）。
【０１４７】
リーダ・ライタコマンド制御指示部４０４では、リーダ・ライタ通信記録解析部４０５の結果と、リーダ・ライタのコマンド制御の状況に応じて、リーダ・ライタへ送信するデータの内容を決める。
【０１４８】
リーダ・ライタコマンド制御指示部４０４は、対象としているリーダ・ライタのコマンド制御が輻輳制御に関するものである場合、タイムスロット数の制御を行うので、この制御に必要な、通信状況に関するデータ配列、例えば、電子タグからの応答が成功する確率や、電子タグからの応答が無い確率の時間推移の推定に役立つクラスターを採用する（ステップＩ００６，Ｆ０１６）。
【０１４９】
具体的には、対象としているリーダ・ライタの現在までの通信状況に関するデータ配列と、採用された各クラスター内で平均化した通信状況に関するデータ配列の類似度を評価し、最も類似性の高いクラスターを採用する。ここで、類似度の評価には、例えば、２つの配列のユークリッド距離の大小関係で評価すればよい。
【０１５０】
一方、対象としているリーダ・ライタのコマンド制御が輻輳制御に関するものではない場合、リーダ・ライタコマンド制御指示部４０４は、リーダ・ライタ、および、通信環境に関する静的なパラメータの出現回数が高く、かつ、クラスター内で平均化した通信状況データ配列が安定しているクラスターを採用する（ステップＦ０１７）。ここで、安定した通信状況データ配列とは、送受信時のデータエラーの発生確率が低く、かつ、これらの確率の時間変動が小さい、通信状況に関するデータ配列のことである。
【０１５１】
クラスターが決まったら、リーダ・ライタコマンド制御指示部４０４は、このクラスターにおけるリーダ・ライタ制御パラメータとグループ内での平均化された通信に関するデータ配列を、リーダ・ライタにリーダ・ライタ接続インタフェース部４０６を通じて送信する（ステップＦ０１８）。
【０１５２】
以上で、一連の処理が終了する。
【０１５３】
リーダ・ライタ、および、通信環境に関する静的なパラメータの出現回数が高いクラスターを採用する理由は、統計データとしての信頼性を高めるためである。なお、静的なパラメータとは、リーダ・ライタ自身では変更することのできないパラメータのことである。例えば、リーダ・ライタに関する静的なパラメータに関しては、リーダ・ライタ自身であり、一方、通信環境に関する静的なパラメータには、例えば電子タグの貼付対象物や、通信対象となっている電子タグのアンテナ形状などである。ただし、電子タグの貼付対象物や電子タグのアンテナ形状等は、あらかじめ登録されているか、あるいは、リーダ・ライタと電子タグが通信したとき、電子タグのＩＤとこれらのパラメータが紐づいている場合使用できる。
【０１５４】
クラスター内で平均化した通信状況データ配列が安定しているクラスターを採用する理由は、クラスターを採用する目的が、安定した通信を実現するリーダ・ライタの設定パラメータを選択することにあるからである。具体的には、通信状況のデータ配列が安定しているクラスターのリーダ・ライタの設定パラメータに関するデータ配列から、発生頻度が高いものを選択する。この方法で、通信が安定しているため効率的な無線通信の実現が容易と考えられる、無線チャネルやリーダ・ライタのアンテナ、リーダ・ライタ制御コマンドや活性化コマンドの発行タイミングを決めるループ回数の閾値などを、リーダ・ライタが選択できるよう情報を与える。
【０１５５】
リーダ・ライタは、リーダ・ライタ制御サーバ３００から選択したクラスターの統計データを受信し、この統計データを元に、リーダ・ライタのコマンド制御を行う。例えば、輻輳制御ならば、リーダ・ライタのこれまでの通信状況のデータ配列とクラスターの通信状況データ配列の平均値とを比較し、類似性を評価し、クラスターの通信状況データ配列の平均値において最もマッチングした部分配列を抜き出し、その抜き出した部分配列以降の部分配列を、未来におけるリーダ・ライタの通信状況データ配列であると仮定して、ステップＦ００３の乱数生成コマンド発行時のタイムスロット数を指定する。
【０１５６】
なお、クラスター内部における通信状況データ配列は、時間推移によるリーダ・ライタと電子タグとの送受信の結果のみではなく、コマンド発行回数による送受信の結果でもよい。また、これらのデータ配列を、フーリエ変換したものでもよい。また、このフーリエ係数に関して、ある閾値以下のフーリエ係数を削除して、データ圧縮しても良い。
【０１５７】
また、リーダ・ライタ制御サーバ３００、または、送受信履歴格納ＤＢ４００の機能をリーダ・ライタに実装してもよい。
【０１５８】
また、リーダ・ライタと電子タグとの送受信結果は時間と共に増大していくため、いつかデータベースの容量が足りなくなる。これを防ぐために、クラスター分析用の通信状況に関するデータ配列群に関しては、最も類似性の強い２つのデータ配列を抽出し、これらの平均値をとり、これを１つのデータ配列とする。ただし、このデータ配列が２つのデータ配列から作成されたことを表す統計情報を残しておく。この作業を繰り返すことにより、データの増大による容量オーバーを防ぐ。
【０１５９】
したがって、本実施の形態によれば、前記のような構成および処理により、前記第１の実施の形態と同様に、無線通信状況を推測し、この推測した無線通信状況に合わせて、最適なリーダ・ライタのコマンドを動的に変更しながら発行することにより、効率的な無線通信を実現することができる。
【０１６０】
（第３の実施の形態）
図１１は、本発明の第３の実施の形態の電子タグとリーダ・ライタとリーダ・ライタの通信対象となっている電子タグの個数を観測する外部装置により構成される無線システムの構成例を示す概念図である。この図１１における無線システムは、リーダ・ライタ１０３と、電子タグ集団７００と、リーダ・ライタ制御サーバ３０１と、物品重量情報管理ＤＢ４１０、重量計６００から構成される。
【０１６１】
本実施の形態では、リーダ・ライタ１０３は、このリーダ・ライタ１０３のアンテナ１１５を用いて、物に貼り付けられた電子タグ集団７００と電波によりデータを送受信する。また、リーダ・ライタ制御サーバ３０１は、リーダ・ライタ１０３、物品重量情報管理ＤＢ４１０、電子タグの個数を観測する外部装置である重量計６００と接続し、これらを制御する。
【０１６２】
物品重量情報管理ＤＢ４１０には、物品の個品に関する重量を格納しておき、また、電子タグのＩＤと電子タグ貼付対象物である物品とを紐付けておく。リーダ・ライタ１０３は、重量計６００の上に乗っている電子タグ集団７００の電子タグの一つと通信し、ＩＤを取得すると、これをリーダ・ライタ制御サーバ３０１に送信する。リーダ・ライタ制御サーバ３０１は、このＩＤを検索キーとして、物品重量情報管理ＤＢ４１０から貼付対象物の重さ情報を取得する。次にリーダ・ライタ制御サーバ３０１は、重量計６００を用いて電子タグ集団７００とその貼付対象物全体の重さを計量する。この全体の重さを、物品重量情報管理ＤＢ４１０から取得した単品の重さで割ることにより、リーダ・ライタ制御サーバ３０１は、電子タグ集団７００の個数を推定する。リーダ・ライタ制御サーバ３０１はこの電子タグ個数の推定値をリーダ・ライタ１０３に送信する。リーダ・ライタ１０３は、この受信データである電子タグ個数の推定値を、ステップＦ００３の乱数生成コマンドにおけるタイムスロット数の上限とする。
【０１６３】
なお、前記重量計６００は、電子タグの個数を観測する外部装置の一例であり、カメラを用いた画像分析による手法により電子タグの個数を推定してもよい。また、電子タグ集団のある電子タグのメモリに、電子タグ個数を書き込んでおき、リーダ・ライタはその情報から電子タグの個数を把握してもよい。
【０１６４】
また、外部装置から把握した電子タグ個数は、タイムスロット数の上限値としてだけではなく、電子タグとの通信終了条件に用いてもよい。
【０１６５】
したがって、本実施の形態によれば、前記のような構成および処理により、前記第１の実施の形態と同様に、無線通信状況を推測し、この推測した無線通信状況に合わせて、最適なリーダ・ライタのコマンドを動的に変更しながら発行することにより、効率的な無線通信を実現することができる。
【０１６６】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【０１６７】
本発明は、電子タグとリーダ・ライタとの無線通信におけるリーダ・ライタのコマンド制御技術に関し、特に、コマンド制御方法、このコマンド制御方法を実行させるためのプログラム、このコマンド制御方法を実行するリーダ・ライタ、およびコンピュータに利用可能である。特に、通信環境の変化が激しく、かつ高速な通信が要求されるゲートアンテナでの複数の電子タグの一括読取といった状況で、環境変化に応じて最適なコマンド制御を行うことにより、高速な通信を実現可能にする。
【図面の簡単な説明】
【０１６８】
【図１】本発明の第１の実施の形態の電子タグとリーダ・ライタにより構成される無線システムの構成例を示す概念図である。
【図２】本発明の第１の実施の形態の無線システムにおいて、リーダ・ライタのハードウェア構成を示すブロック図である。
【図３】本発明の第１の実施の形態の無線システムにおいて、リーダ・ライタのコマンド名とその機能説明図である。
【図４】本発明の第１の実施の形態の無線システムにおいて、リーダ・ライタのコマンド制御に関するフローチャートである。
【図５】本発明の第１の実施の形態の無線システムにおいて、リーダ・ライタの輻輳制御に関するコマンドシーケンス図である。
【図６】本発明の第１の実施の形態の無線システムにおいて、ＥＭアルゴリズムのフローチャートである。
【図７】本発明の第２の実施の形態の電子タグとリーダ・ライタとサーバとデータベースにより構成される無線システムの構成例を示す概念図である。
【図８】本発明の第２の実施の形態の無線システムにおいて、リーダ・ライタ制御サーバのハードウェア構成を示すブロック図である。
【図９】本発明の第２の実施の形態の無線システムにおいて、クラスター分析部におけるフローチャートである。
【図１０】本発明の第２の実施の形態の無線システムにおいて、リーダ・ライタ通信記録解析部とリーダ・ライタコマンド制御指示部におけるフローチャートである。
【図１１】本発明の第３の実施の形態の電子タグとリーダ・ライタとリーダ・ライタの通信対象となっている電子タグの個数を観測する外部装置により構成される無線システムの構成例を示す概念図である。
【図１２】一般的なＡｌｏｈａ方式における、複数の電子タグとリーダ・ライタ間の通信の概要図である。
【図１３】一般的な、電子タグ個数が５０個のときの、タイムスロット数と、タイムスロット当たりの通信成功する確率、衝突が発生する確率、電子タグからの応答がない確率をグラフ化したものである。
【符号の説明】
【０１６９】
１００，１０１，１０２，１０３，１０４…リーダ・ライタ
１１０，１１１，１１２，１１３，１１４，１１５…アンテナ
１２０…コマンド制御部
１２１…無線インタフェース部
１２２…受信結果解析部
１２３…通信状況推測部
１２４…メモリ部
１２５…外部インタフェース部
２００〜２０３，２１０〜２１３，２２０〜２２３，２３０〜２３２…電子タグ
３００，３０１…リーダ・ライタ制御サーバ
４００…送受信履歴格納ＤＢ
４１０…物品重量情報管理ＤＢ
４０１…クラスター分析部
４０２…主成分分析部
４０３…メモリ部
４０４…リーダ・ライタコマンド制御指示部
４０５…リーダ・ライタ通信記録解析部
４０６…リーダ・ライタ接続インタフェース部
４０７…データベース接続インタフェース部
５００〜５０３，５１０〜５１３…貼付対象物
６００…重量計
７００…電子タグ集団
８００，８０５…応答要求コマンド
８０１〜８０４…乱数生成コマンド
８１０〜８１２…電子タグからの応答
【図１】
2008124849.tif 000019
【図２】
2008124849.tif 000020
【図３】
2008124849.tif 000021
【図４】
2008124849.tif 000022
【図５】
2008124849.tif 000023
【図６】
2008124849.tif 000024
【図７】
2008124849.tif 000025
【図８】
2008124849.tif 000026
【図９】
2008124849.tif 000027
【図１０】
2008124849.tif 000028
【図１１】
2008124849.tif 000029
【図１２】
2008124849.tif 000030
【図１３】
2008124849.tif 000031