リーダ・ライタのコマンド制御方法、プログラム、リーダ・ライタ、およびコンピュータ
【課題】通信状況の変化にかかわらず、通信対象である電子タグとの実効通信速度を最大に保つようにして、効率的な無線通信を実現することができるリーダ・ライタのコマンド制御技術を提供する。
【解決手段】無線システムにおいて、過去の電子タグとの通信結果から、確率・統計に基づく計算から未来における通信状況に関する通信対象の電子タグ個数や通信エラーの発生率を推測し、この推測を元に、単位時間当りの電子タグとの通信できる数が最大になるよう輻輳制御を行い、また、その他のリーダ・ライタのコマンド制御に関しては、通信エラーの発生率が低く、かつ時間変動が小さくなるようにリーダ・ライタの設定パラメータを選択する。
【解決手段】無線システムにおいて、過去の電子タグとの通信結果から、確率・統計に基づく計算から未来における通信状況に関する通信対象の電子タグ個数や通信エラーの発生率を推測し、この推測を元に、単位時間当りの電子タグとの通信できる数が最大になるよう輻輳制御を行い、また、その他のリーダ・ライタのコマンド制御に関しては、通信エラーの発生率が低く、かつ時間変動が小さくなるようにリーダ・ライタの設定パラメータを選択する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、電子タグとリーダ・ライタとの無線通信におけるリーダ・ライタのコマンド制御技術に関し、特に、コマンド制御方法、このコマンド制御方法を実行させるためのプログラム、このコマンド制御方法を実行するリーダ・ライタ、およびコンピュータに適用して有効な技術に関する。
【背景技術】
【0002】
電子タグと、この電子タグと無線通信を行う無線機器であるリーダ・ライタとで構成される無線通信システムがある。この無線通信システムにおけるリーダ・ライタは、複数の電子タグと、いくつかのコマンドを用いて通信できる。このような複数の電子タグとの通信において、2個以上の電子タグが同時にリーダ・ライタと通信する場合があり、このとき通信信号が重なり、言い換えるとデータが衝突し、データが破損することがある。このデータの衝突をコリジョンと呼ぶ。このため、2個以上の電子タグと同時に通信する場合は、コリジョンを回避する方法が必要となる。この制御を輻輳制御と呼び、複数の電子タグと通信できるリーダ・ライタは輻輳制御の機能を実装している。また、リーダ・ライタは、輻輳制御に関するコマンド以外に、電子タグ間との通信における伝送速度や、使用する無線周波数帯や、変調方式や、複数のアンテナが使用可能な場合はその中のどれかを選択するコマンドを実装していることもある。なお、以降コリジョンと衝突は同義語として扱う。
【0003】
電子タグとリーダ・ライタ間の無線通信における輻輳制御方法としては、Aloha方式や、Binary Tree方式がある。以下Aloha方式を用いた輻輳制御方法の一例について説明する。
【0004】
まず、本説明におけるAloha方式の輻輳制御方法の概要を説明する。リーダ・ライタは、初めに各電子タグに乱数を割り当てる。各電子タグは、リーダ・ライタが発行するコマンドの回数で同期を取りながら、電子タグ自身に割り当てられた乱数とリーダ・ライタのコマンド発行回数が一致したとき、電子タグはリーダ・ライタに応答する。一般的に各電子タグに割り当てられた乱数は異なる値となるため、複数の電子タグが同時に応答することがなくなり、コリジョンを防ぐことができる。同じ乱数を持つ電子タグが複数発生した場合はコリジョンが発生するが、この場合は、乱数を割り当てるプロセスからやり直す。上記過程を繰り返すことにより、リーダ・ライタはすべての通信対象となっている電子タグと通信することができる。
【0005】
実際のリーダ・ライタと電子タグとの通信手順は複雑であるが、以降詳細説明を行う。図3はリーダ・ライタのコマンド名とその機能説明図であり、図5は電子タグとリーダ・ライタにおけるコマンドシーケンスのモデル図であり、図12は複数の電子タグとリーダ・ライタ間の通信の概要である。
【0006】
図3はリーダ・ライタのコマンド名とその機能説明図であり、リーダ・ライタは4つのコマンドを備えている。1つ目は活性化コマンドであり、このコマンドを電子タグが受信することにより電子タグが活性化され、以降このコマンド以外のリーダ・ライタのコマンドに対してレスポンスできるようになる。2つ目は乱数生成コマンドであり、このコマンドを電子タグが受信することにより、電子タグは乱数を生成する。この乱数生成コマンドの内部パラメータで、電子タグの乱数値の上限値を決める。なお、この上限値がタイムスロット数であり、タイムスロット数は電子タグの衝突の発生頻度と関連する。3つ目は応答要求コマンドであり、このコマンドを受信した回数と、電子タグ内部の乱数が一致したとき、電子タグは自身のIDをリーダ・ライタに送信する。4つ目はリーダ・ライタ制御コマンドであり、リーダ・ライタ自身を制御するコマンドである。具体的には、使用する伝送速度や無線チャネル等を決定する。
【0007】
図5は電子タグとリーダ・ライタにおけるコマンドシーケンスのモデル図であるが、モデル図のとおり、リーダ・ライタが電子タグを起動させる活性化コマンドを発行すると、電子タグは活性化され、これ以降リーダ・ライタから送信されるコマンドを受信し、リーダ・ライタへ応答可能となる。活性化した電子タグにリーダ・ライタが乱数生成コマンドを発行すると、活性化した各電子タグは乱数を生成し、この乱数、あるいは乱数の一部をタイムスロット番号に割り当てる。
【0008】
ここで、タイムスロット番号とは、電子タグがリーダ・ライダに対して応答するタイミングを指定する番号のことである。このタイムスロット番号の上限値を、タイムスロット数の大きさと呼び、以下タイムスロット数と呼ぶことにする。このタイムスロット数は、エアインタフェースの仕様によっては、固定の場合も、動的な場合もあり、一般的には、乱数生成コマンドのパラメータに含まれる。
【0009】
乱数生成コマンド発行後、リーダ・ライタは応答要求コマンドを発行する。このコマンドと電子タグのタイミングが一致した場合電子タグが応答するが、タイミングを合わせる方法として、主にスロットマーカ方式と、タイムスロット方式がある。
【0010】
スロットマーカ方式では、応答要求コマンドの中にタイムスロット番号がパラメータに含まれており、この応答要求コマンド内部のタイムスロット番号と電子タグ内部の乱数より生成されたタイムスロット番号と一致する場合、電子タグがリーダ・ライタに応答する。
【0011】
一方、タイムスロット方式では、電子タグは、乱数生成コマンド発行後の応答要求コマンドをカウントし、このカウント数と電子タグ内部の乱数より生成されたタイムスロット番号と一致する場合、電子タグがリーダ・ライタに応答する。
【0012】
結局、細かな違いはあるものの、スロットマーカ方式とタイムスロット方式の基本動作は同じである。どちらの方式も、タイムスロット数は、生成する乱数の大きさ(bit数)とこの乱数からタイムスロット番号に割り当てる大きさ(bit数)によって決まる。
【0013】
図12は、Aloha方式における、複数の電子タグとリーダ・ライタ間の通信のイメージ図であり、リーダ・ライタ1個に対し、電子タグが3個の場合である。また、タイムスロット数は4である。図12のケースでは、3つの電子タグのうち、(3)のタイムスロット番号で、同じタイムスロット番号を生成した230と232の2つの電子タグが、同時に応答したためコリジョンを起こしている。コリジョンを検知した場合、リーダ・ライタは全ての電子タグと通信するため、再度乱数生成コマンドを発行し、以降応答要求コマンドを繰り返し発行する。
【0014】
なお本説明では、輻輳制御の説明のため、活性化コマンド、乱数生成コマンド、応答要求コマンドの3つの輻輳制御のためのコマンドを用いたが、電子タグとリーダ・ライタのエアインタフェースの仕様によっては、活性化コマンドと乱数生成コマンドの機能が一つに合わさったコマンドが用意されることもあり得る。また、乱数生成コマンドと応答要求コマンドが一つに組み合わさったコマンドが用意されることもあり得る。また、応答要求コマンド発行後に、電子タグのID確認のため確認要求コマンドを発行する仕様であるエアインタフェースもあり得る。
【0015】
以上が電子タグとリーダ・ライタのエアインタフェースに使用されるAloha方式の基本的動作原理の説明である。
【0016】
もう一つの輻輳制御方式であるBinary Tree方式は、電子タグのIDのビット列をマッチングする方式である。電子タグのIDのビット列の一部とリーダ・ライタから発行されるコマンド内部のビット列がマッチングしたとき電子タグは応答する。Binary Tree方式の一部には、IDとのマッチングをかけるビット列のサイズを変更することができ、このサイズがAloha方式でのタイムスロット数に対応する。したがって、複数の電子タグがあり、これらのIDがランダムに散っている場合、Binary Tree方式におけるリーダ・ライタと複数の電子タグの通信は、Aloha方式と類似したものとなる。
【発明の開示】
【発明が解決しようとする課題】
【0017】
上記輻輳制御方法は、電子タグのコリジョンを回避する手段を与えるが、電子タグとの効率的な無線通信方法を与えるわけではない。なお、ここで電子タグとリーダ・ライタにおける無線通信の効率化とは、単位時間あたりに通信できる電子タグの個数を向上させることである。一般的に、電子タグとリーダ・ライタが通信する状況では、通信時間が限られているため、効率的な無線通信方法が望まれている。
【0018】
効率的な無線通信を実現するには、単位時間当たりの電子タグからの受信成功回数の期待値が最大となるリーダ・ライタのコマンド群を予測し、このコマンド群を発行する必要があるが、このためには、電子タグと通信している各時刻において、通信対象となっている電子タグの個数を把握しておくこと、実際に通信可能な状態になっている電子タグの個数を把握しておくこと、コリジョンに起因するものではない、個々の電子タグとの通信エラーの発生確率を把握しておくこと、リーダ・ライタのアンテナや、伝送速度や無線チャネルといったリーダ・ライタ自身の設定値と、電子タグとの通信の成功率の値、及び、その時間変化に関する相関関係を把握しておくことが必要である。以下にその理由を説明する。
【0019】
まず、通信対象となっている電子タグの個数の把握についてであるが、1つの理由は、複数の電子タグの通信の終了を把握するためであり、もう一つの理由は、電子タグの個数と輻輳制御におけるタイムスロット数の組み合わせによって、無線通信の効率が変わるからである。
【0020】
図13は、電子タグの個数が50個のときの、タイムスロット数と、1タイムスロット当たりの通信が成功する確率、衝突(コリジョン)が発生する確率、電子タグからの応答がない確率をグラフ化したものである。図13のグラフは、通信対象となっている電子タグの全てと通信可能で、伝播路におけるレベル変動による通信データの破損が生じない理想的な環境であることを仮定している。図13のグラフは、縦軸が確率の値で、横軸はタイムスロット数(電子タグの個数)である。なお、横軸は対数軸である。
【0021】
図13のグラフから、電子タグの個数とタイムスロット数が等しいとき通信成功する確率が最大となることがわかる。また、電子タグ個数がタイムスロット数に比べ大きいと衝突発生する確率が、一方、電子タグ個数がタイムスロット数に比べ小さいと応答がない確率が増加することがわかる。これは、電子タグ個数がタイムスロット数に比べ大きいと、同じタイムスロット番号を持つ電子タグの数が増え、衝突する頻度が増えることを意味する。一方、電子タグ個数がタイムスロット数に比べ小さいときは、同じタイムスロット番号を持つ電子タグの数は減り衝突する確率は低下するが、どの電子タグにも使用されないタイムスロット番号が発生する。この結果、1つのタイムスロットにおける応答しない確率が増加する。なお、上記のことは、電子タグ個数が変わっても成り立つことである。
【0022】
以上が、無線通信の効率が、電子タグの個数と輻輳制御におけるタイムスロット数に依存する理由である。
【0023】
次に、実際に通信可能な状態になっている電子タグの個数を把握しておくことの必要性についてであるが、図13のグラフでは通信対象となっている電子タグの全てと通信可能であることを仮定しているが、実際の環境では、リーダ・ライタの通信エリア等の関係から、通信対象となっている電子タグの全てと通信できるわけではない。
【0024】
仮に他の電子タグが存在しない状況でもリーダ・ライタと通信できない電子タグは、輻輳制御に影響を与えないため、無線通信の効率は、実際に通信可能な状態になっている電子タグの個数と輻輳制御におけるタイムスロット数に依存することになる。このため、実際に通信可能な状態になっている電子タグの個数を把握しておく必要がある。
【0025】
3番目に、個々の電子タグとの通信エラーの発生確率を把握しておくことの必要性についてであるが、この理由は下記のとおりである。
【0026】
図13の説明においては無線通信における理想的な環境であることを仮定したが、一般的には、伝播路におけるレベル変動による通信データの破損が生じる。特に電子タグは障害物に囲まれるような状況で使用されるため、レベル変動による通信データの破損が生じやすいと考えられる。
【0027】
このレベル変動による通信データの破損は、電子タグからリーダ・ライタへの応答時に発生した場合は、リーダ・ライタは電子タグからの通信データに破損を検出することになるため、これとコリジョンによるデータ破損とを判別することが極めて困難なものにする。一方、リーダ・ライタから電子タグへの送信時に発生した場合は、電子タグからの応答がなくなる原因となり、タイムスロットに割り当てられた電子タグが無かったため応答がなかったのかを判別することをきわめて困難なものにする。このような環境においては、図13のグラフは成り立たず、通信対象となっている電子タグの個数に近い値であるスロット数を選択することが、必ずしも通信効率向上に繋がらなくなる。
【0028】
しかし、上記のことは、あらかじめ個々の電子タグとの通信エラーの発生確率を把握することができれば対処することができる。なぜなら、1タイムスロット当りの電子タグとの通信が成功する確率に、個々の電子タグとの通信エラーの発生確率を輻輳制御における衝突、応答なしの確率を組み込むことにより、電子タグの個数とスロット数の最適値を修正できるからである。これが、コリジョンに起因するものではない、個々の電子タグとの通信エラーの発生確率を把握しておくことの必要性である。
【0029】
最後に、リーダ・ライタ自身の設定値と、電子タグとの通信の成功率の値、及び、その時間変化に関する相関関係を把握しておくことが必要についてであるが、この理由は下記のとおりである。
【0030】
リーダ・ライタと電子タグ間の通信において、これらの周囲の伝播環境が時間的に変化することがある。例えば、電子タグが利用される条件の中には、移動する物品に電子タグが貼り付けられ、この状態でリーダ・ライタが電子タグと通信するような場合である。この場合、時間に依存して、リーダ・ライタは、電子タグと通信できたりできなかったりするが、場合によっては、通信できる時間が短いため、ある一定以上の通信速度でないと、通信終了前に、通信が途切れることもありうる。リーダ・ライタの一部には通信速度が可変なものがあるが、リーダ・ライタは上記のようなケースを想定して、通信速度を選択する必要がある。
【0031】
また、リーダ・ライタと電子タグ間の通信においては、通信対象となっている電子タグの全てが通信できる状況にあるわけではなく、そのうちの一部とのみ通信できる場合がある。このような場合に対処できるよう、リーダ・ライタの一部には、複数のアンテナが接続され、これらを切替え可能なものや、アンテナの向きを変化させるなどして、電波の領域を変更できるものがある。これらのリーダ・ライタは、電波領域を変えることにより、通信対象となっている電子タグ全てとの通信を試みるが、電波の領域によっては、電子タグと通信できないこともあり得る。したがって、リーダ・ライタは、電子タグとの通信が良好なアンテナやアンテナの向き等のリーダ・ライタの設定値を把握しておく必要がある。
【0032】
特に、上記の件は、通信対象である電子タグが移動する状況ではより重要となる。なぜなら、時間とともに自然に通信領域が変化するからである。この場合、リーダ・ライタはこの変化に合わせてアンテナ等を切り替えるなどして、電波の領域を変更し、電子タグとの通信を良好に保つ必要がある。このとき、効率的な無線通信のために、どのアンテナを使用するかだけではなく、切り替えるタイミングも重要となる。なぜなら、切り替えるタイミングが遅いと電子タグと通信できなくなる時間が増え、一方、切り替えるタイミングが早いと切替時に発生する時間のロスが増えるからである。
【0033】
以上が、使用するアンテナや伝送速度といったリーダ・ライタ自身の設定値と、電子タグとの通信の成功率の値、及び、その時間変化に関する相関関係を把握することの必要性であり、リーダ・ライタはこれらを把握した上で最適な設定値を最適なタイミングで選択する必要がある。
【0034】
以上のことから、効率的な無線通信を実現するために、電子タグと通信している各時刻において、通信対象となっている電子タグの個数を把握し、実際に通信可能な状態になっている電子タグの個数を把握し、コリジョンに起因するものではない、個々の電子タグとの通信エラーの発生確率を把握し、リーダ・ライタのアンテナや、伝送速度や無線チャネルといったリーダ・ライタ自身の設定値と、電子タグとの通信の成功率の値、及び、その時間変化に関する相関関係を把握し、これらを把握した上で、単位時間当たりの電子タグからの受信成功回数の期待値が最大となるリーダ・ライタのコマンド群を予測して、このコマンド群を発行することが課題である。
【0035】
そこで、本発明の目的は、これらの課題を解決し、通信状況の変化にかかわらず、通信対象である電子タグとの実効通信速度を最大に保つようにして、効率的な無線通信を実現することができるリーダ・ライタのコマンド制御技術を提供することにある。
【0036】
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【0037】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
【0038】
本発明は、電子タグと、この電子タグの通信制御を行うリーダ・ライタとの通信における動的なリーダ・ライタのコマンド制御方法に関し、以下のような特徴を有するものである。さらには、これらのリーダ・ライタのコマンド制御方法における各手順をコンピュータに実行させるためのプログラム、リーダ・ライタのコマンド制御方法における各手順を実行するリーダ・ライタ、リーダ・ライタのコマンド制御方法における各手順を実行するコンピュータなどにも適用するものである。
【0039】
(1)第1の発明は、動的なリーダ・ライタのコマンド制御において、確率統計論的な手法により、電子タグとリーダ・ライタの過去の通信データから現在の通信状況を推測し、この推測結果を元に、統計確率論的な手法を用いて、電子タグとの通信効率が最も良いコマンド群を予測し、これを選択しコマンドとして発行することを特徴とする。
【0040】
(2)第2の発明は、1度通信コネクションの確立した電子タグと、リーダ・ライタが輻輳制御なしに直接通信することにより、輻輳制御による通信エラー等を排除し、純粋に電子タグとリーダ・ライタ間の環境による通信エラー等の通信状況を把握することを特徴とする。
【0041】
(3)第3の発明は、あらかじめIDの判明しているいくつかの電子タグを、IDのわからない電子タグ集団に混ぜておき、このIDの判明している電子タグとリーダ・ライタが輻輳制御なしに直接通信することにより、輻輳制御による通信エラー等を排除し、純粋に電子タグとリーダ・ライタ間の環境による通信エラー等に関する通信状況を把握することを特徴とする。
【0042】
(4)第4の発明は、環境による通信エラー等が発生しない、あるいは、無視できるほど発生率の低い、理想的な通信環境において、リーダ・ライタが発行するコマンドのパラメータで決まるタイムスロット数と、電子タグの応答結果から、リーダ・ライタが通信している電子タグの個数を推定することを特徴とする。
【0043】
(5)第5の発明は、コリジョンによるものではなく環境等による通信エラーが発生する通信環境において、一般的に、時刻や電子タグごとで異なる値となる環境要因による通信エラーが発生する確率を、ある平均的な値に置き換え、この置き換えによる誤差が少ないと仮定することにより、リーダ・ライタのコマンドで制御するタイムスロット全体における、電子タグとの通信が成功する回数と応答データが破損して通信が失敗する回数と電子タグが応答しない回数の期待値を、タイムスロット数と通信対象の電子タグの個数と、コリジョンに起因するものではない、個々の電子タグとリーダ・ライタ間の通信に関する、送受信に成功する確率、応答データが破損して通信が失敗する確率、電子タグが応答しない確率を5つの変数とする3つの関数として確率計算から導出し、この関数に、実際にリーダ・ライタが観測したデータ破損の発生回数や、電子タグからの応答が無かった回数を代入して方程式を作り、これらの方程式を解くことにより、リーダ・ライタが通信している電子タグの個数と、電子タグとリーダ・ライタ間の環境等により発生する通信エラーの確率を推測することを特徴とする。
【0044】
(6)第6の発明は、リーダ・ライタと通信している電子タグの個数をある適当な数値に決め、また、各時刻、各電子タグにおける環境要因による通信エラー等が発生する確率をある適当な数値に決め、これらの数値のもと、電子タグから実際に観測した応答結果を出力する確率を、タイムスロット全体における、各スロットで起こりうる電子タグの通信の可否に関する応答パターンの全てを考慮して算出し、適当に決めた電子タグの個数や環境要因による通信エラーが発生する確率の数値を変更した上で、上記の電子タグから実際に観測した応答結果を出力する確率を算出する作業を繰り返し行い、この作業を繰り返した結果、実際に観測した電子タグからの応答結果を最も出力しやすい、すなわち、最尤となる電子タグの個数や環境要因により通信エラーが発生する確率を、実際の数値であると推測することを特徴とする。
【0045】
(7)第7の発明は、過去の累積したリーダ・ライタと電子タグとの通信結果から算出した、通信可能な電子タグの個数や通信エラーの発生する確率の時間推移に関するデータ配列達を、統計解析用のデータ配列群としてデータベースに格納しておき、これをクラスター分析によりいくつかの類似したグループに分けておき、クラスター分析により分類されたクラスターの中から、通信可能な電子タグの個数や通信エラーの発生する確率の平均値の時間推移が、電子タグと通信しているリーダ・ライタの過去の通信結果に関する時間推移と最も類似したものを選択し、この選択したクラスターの通信可能な電子タグの個数や通信エラーの発生する確率の平均値を、現在のリーダ・ライタが通信している電子タグの個数や、通信エラーの発生する確率の推測値とすることを特徴とする。
【0046】
(8)第8の発明は、リーダ・ライタのアンテナや、伝送速度や無線チャネルといったリーダ・ライタ自身の設定値を決めるリーダ・ライタのコマンドを発行するとき、クラスター分析により分類された各クラスターの中から、対象となっているリーダ・ライタが出現する割合が高いものをいくつか選択し、これらのクラスターの中から、電子タグとの通信が良好なもの、すなわち、通信エラーの発生率が低く、かつ、時間による変動の少ないものを選択し、このクラスターにおいてリーダ・ライタの設定パラメータとして出現回数の多いパラメータを選択することにより、無線通信の効率化を図ることを特徴とする。
【0047】
(9)第9の発明は、カメラや重量計等により電子タグの貼り付けられた対象物の個数を計測し、この計測結果から電子タグの個数を推定する装置によって、通信対象となる電子タグの個数を推定し、この推定値から、輻輳制御におけるタイムスロット数の大きさの上限を決めることを特徴とする。
【発明の効果】
【0048】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【0049】
本発明によれば、電子タグと、リーダ・ライタの無線通信において、無線通信状況を推測し、この推測した無線通信状況に合わせて、最適なリーダ・ライタのコマンドを動的に変更しながら発行することにより、効率的な無線通信を実現することができる。
【発明を実施するための最良の形態】
【0050】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【0051】
以下においては、主にリーダ・ライタのコマンド制御方法、およびこのコマンド制御方法における各手順を実行するリーダ・ライタについて説明するが、本発明は、コマンド制御方法における各手順をコンピュータに実行させるためのプログラムや、リーダ・ライタのコマンド制御方法における各手順を実行するコンピュータなどにも適用可能である。
【0052】
なお、以下の説明においては、通信対象となっている電子タグは、リーダ・ライタと通信成功すると、以降のリーダ・ライタのコマンドに応答しなくなることを想定する。
【0053】
(第1の実施の形態)
図1は、本発明の第1の実施の形態の電子タグとリーダ・ライタにより構成される無線システムの構成例を示す概念図である。この図1における無線システムは、リーダ・ライタ100と、複数個(図では4個の例)の電子タグ200〜203から構成される。リーダ・ライタ100は、リーダ・ライタ100のアンテナ110から電波を放出することにより、電子タグ200〜203にコマンドを送信する。逆にリーダ・ライタ100は、電子タグ200〜203からの応答データをアンテナ110により受信する。
【0054】
図2は、リーダ・ライタのハードウェア構成を示すブロック図である。図2において、リーダ・ライタ100のハードウェア構成は、コマンド制御部120、無線インタフェース部121、受信結果解析部122、通信状況推測部123、メモリ部124、外部インタフェース部125から構成される。
【0055】
コマンド制御部120は、リーダ・ライタが発行するコマンドを制御し、制御結果を、メモリ部124に格納する。無線インタフェース部121は、コマンド制御部120からのリーダ・ライタのコマンドデータを受けて、このコマンドデータを無線出力する。また、無線インタフェース部121は、電子タグからの無線により送られる信号を受信する。受信結果解析部122は、無線インタフェース部121から送られる受信データと、メモリ部124に格納されている発行済みのコマンドから、電子タグの受信データの整合性の判別や、データの内容を解析する。通信状況推測部123は、受信結果解析部122から受けた電子タグからの受信結果と、メモリ部124に格納されている過去のコマンド履歴、及び、過去の電子タグからの受信結果の履歴、および、外部インタフェース部125からの参考データを元に、電子タグとの現在の通信状況を推測する。
【0056】
外部インタフェース部125は、メモリ部124に格納されている、リーダ・ライタのコマンド履歴、電子タグからの生の受信データ、通信状況推測の推測値の履歴を外部に出力する。一方、外部からの情報をメモリ部124に格納する。メモリ部124は、コマンド制御部124のコマンド履歴、受信結果解析部122の電子タグの受信データ履歴、通信状況推測部123の推測結果の履歴、外部インタフェース部125からの外部情報を格納する。コマンド制御部120は、通信状況推測部123からリーダ・ライタと電子タグ間の通信状況推測結果を受けて、また、メモリ部124から過去のコマンド履歴を受けて、さらに、外部インタフェース部125からの外部情報を参考にして、電子タグとの通信が最適化されるよう、新規のコマンドを発行する。
【0057】
図3は、リーダ・ライタのコマンド名とその機能に関する説明図であり、前述の背景技術で説明したとおりである。図4はリーダ・ライタのコマンド制御の基本的なフローチャートである。図5は、リーダ・ライタの輻輳制御に関するコマンドシーケンス図であり、図4のフローチャートにおける処理F002からF005のループ処理の一部を抜き出したものである。
【0058】
以下本発明にかかる通信状況推測部とコマンド制御部の動作例を、図4のフローチャートに沿って説明する。
【0059】
まず、環境による通信エラー等が発生しない、あるいは、無視できるほど発生率の低い、理想的な通信環境である場合の動作例について説明する。
【0060】
コマンド制御部120は、最初にリーダ・ライタ制御コマンドを発行し、リーダ・ライタが使用する無線チャネルや伝送速度を決定する(ステップF001)。なお、使用する無線チャネルは確保可能なものを適当に選択すればよく、伝送速度は帯域が確保できるならば伝送速度の高いものを選べばよい。次に活性化コマンドを発行し、電子タグをリーダ・ライタのコマンドに反応できるようにする(ステップF002)。電子タグを活性後、乱数生成コマンドを発行する(ステップF003)。このとき、コマンド制御部120は、タイムスロット数を決める必要があるが、初回のコマンド発行時は適当な数値、例えば50くらいを選べばよい。乱数生成コマンド発行後、コマンド制御部120は応答要求コマンドを発行し、電子タグから応答があった場合は、無線インタフェース部121を通じて、受信結果解析部122でデータの整合性をチェックする(ステップF004,F005)。この後、コマンド制御部120はタイムスロット数回(n>)、ステップF004とF005を繰り返す(ステップI001)。
【0061】
コマンド制御部120は、ステップF004からF005をタイムスロット数回実行した後、次に再度乱数生成コマンドを発行するか否かを、ステップF003からF005のループ処理の過程における電子タグからの応答の有り無しで判断する(ステップI002)。応答があった場合は、再度乱数生成コマンドを発行し、応答が無かった場合は、活性化コマンドを受信できなかった電子タグの存在を想定して再度活性化コマンドを発行し、それでも応答が無かった場合は、ステップF001に戻りリーダ・ライタの設定値を変えて、ステップF002からF005の処理を行う。なお、ステップI003の閾値1は、活性化コマンドを再送するタイミングを指定し、ステップI004の閾値2は通信を終了する条件を決める。完全に通信エラーが発生しない理想的な通信状況ならば、閾値1と閾値2は共に1で良く、少しのエラー発生率であるならば、通信時間の許容範囲で適当に決めればよい。
【0062】
以下、ステップI002で、電子タグの応答があった場合で2回目以降のF003からF005の処理について説明する。
【0063】
まず、リーダ・ライタは、通信状況推測部123にて、電子タグ個数の推定をおこなう。推定方法は下記のとおりである。
【0064】
i番目(iは正の整数)に発行した乱数発生コマンドにおける、リーダ・ライタとの通信が済んでない、乱数発生コマンドに反応する電子タグの個数niとし、乱数発生コマンドが指定するタイムスロット数の大きさをmiとする。また、このときの、1タイムスロット当たりにおける、電子タグからの応答が成功する確率をPSi、タグからの応答が無い確率をPFiとすると、計算によりそれぞれ、(1)式、(2)式の関係が成り立つ。
【0065】
【数1】
【0066】
【数2】
したがって、乱数発生コマンド後、タイムスロット数の回数、応答要求コマンドを発行したときの、電子タグと通信に成功したタイムスロットの回数をnSi、応答がなかったタイムスロットの回数をnFiとすると、i番目に乱数発生コマンドを発行した際、そのコマンドを実際に受信できた電子タグ個数の推定値nEiは、(1)式、(2)式から、(3)式、(4)式が近似的に成り立つと考えられる。
【0067】
【数3】
【0068】
【数4】
したがって、(4)式から、電子タグ個数の推定値nEiが求まる。等号が成立しない場合は、最も両辺の差の絶対値が小さくなるものを選択すれば良い。なお、電子タグ個数の推定値nEiの求め方は、(3)式と(4)式の両辺の差の絶対値が、それぞれ最も同時に小さくなるものを選択しても良い。
【0069】
電子タグ個数の推定値nEiが求まったので、次に乱数発生コマンドを発行したとき、通信対象となる電子タグ個数の推定値は、前回のリーダ・ライタコマンド群の通信結果から、nSi個の電子タグと通信できたことを考慮すると、(nEi−nSi)個と推定できる。
【0070】
したがって、次に乱数生成コマンドを発行するときのスロット数mi+1は、電子タグ個数の推定値(nEi−nSi)と(1)式から、単位時間当たりの電子タグの応答成功回数が最大となるよう選択すればよい。
【0071】
具体的には、時間因子を特に考慮しなくて良いならば、(1)式から、1タイムスロット当たりにおける電子タグからの応答が成功する確率PSは(1)式の微分計算をすると、m=nつまり、タイムスロット数と電子タグ個数が等しくなるとき最大なり、このとき(5)式のようになる(次式においては、一般的に成り立つため、添え字iを省略した。また、eはネピアの自然数である。)。
【0072】
【数5】
以上のことから、コマンド制御部120は、i+1番目にステップF003にて乱数生成コマンドを発行するときのスロット数mi+1の値を、i番目のステップF003からF005のループ処理の電子タグの応答結果から算出した現在の電子タグ個数の推定値(nEi−nSi)を選択する。
【0073】
なお、実際には、各コマンドによりビット長や、リーダ・ライタ間の送受信タイミングが異なるため、次に乱数生成コマンドを発行するときのスロット数は電子タグ個数の推定値そのものにはならないが、これらは、エアインタフェースや、リーダ・ライタ固有の数値なので、上記方法と同様の計算から算出できる。
【0074】
以降の輻輳制御に関するステップF003からF005の処理においては、上記操作を繰り返す。
【0075】
次に、環境による通信エラー等が発生し得る環境を想定し、この対策を実施した場合の3つの動作例について説明する。
【0076】
まず、環境による通信エラー等が発生し得る環境を想定した場合の3つの動作例すべてにおいて、初回のステップF001からF005の処理については、理想的な通信環境である場合の動作例と同様である。
【0077】
初回のステップF001からF005の処理終了後、コマンド制御部120は、次に再度乱数生成コマンドを発行するか否かを、ステップF003からF005のループ処理の過程における電子タグからの応答の有り無しで判断する(ステップI002)。応答があった場合は、再度乱数生成コマンドを発行し、応答が無かった場合は、活性化コマンドを受信できなかった電子タグの存在を想定して再度活性化コマンドを発行し、それでも応答が無かった場合は、ステップF001に戻りリーダ・ライタの設定値を変えて、ステップF002からF005の処理を行う。なお、ステップI003の閾値1は、活性化コマンドを再送するタイミングを指定し、ステップI004の閾値2は通信を終了する条件を決める。閾値1と閾値2は、通信エラーが発生する状況を想定しているため、下記の方法でそれぞれの値を決定する。
【0078】
まず、閾値1であるが、1つの決定方法は通信時間の許容範囲内でできるだけ大きい値を指定する方法で、もう1つの方法は、通信対象となっている電子タグの全個数の推定値Lとしたとき、Lが1以上の場合は、閾値1も1増加させる。すなわち、Lが1以下にならない限り、ステップF002からF005のループ処理を実行し、1より小さくなったら通信対象となっている電子タグが存在しないと判断してF002からF005のループ処理を終了する。
【0079】
なお、この全電子タグ個数Lの算出方法であるが、これは、活性化コマンドを受信できた電子タグ個数をNとし、活性化コマンドを受信できる電子タグの発生確率をRとしたとき、この活性化コマンドを受信できる電子タグの発生確率Rが、個々の電子タグの乱数生成コマンドを受信成功する確率の平均値をQSとしたとき、近似的にR=QSが成り立つとみなすことにより、全電子タグ個数Lは、RとNの値がわかれば、次の関係式、L×R=Nより算出できる。なお、R、実際にはQSと、Nの算出方法は後述する。
【0080】
次に、閾値2であるが、これも、閾値1と同様の方法で決定する。
【0081】
以下、ステップI002で、電子タグの応答があった場合で2回目以降のステップF003からF005の処理について説明する。
【0082】
まず、環境による通信エラー等が発生し得る環境を想定し、この対策を実施した場合の3つの動作例のうち、2つの例について説明する。
【0083】
今回も理想的な通信環境と同様に、1タイムスロット当たりの、電子タグからの応答が成功する確率と、タグからの応答が無い確率を、リーダ・ライタの通信状況推測部123にて推定し、この推定値を受けて、コマンド制御部120がコマンド制御を行う。
【0084】
まず、リーダ・ライタは、通信状況推測部123にて、電子タグ個数と通信エラーの発生確率の推定をおこなう。推定方法は下記のとおりである。
【0085】
i番目に発行した乱数発生コマンドにおける、リーダ・ライタとの通信が済んでない、乱数発生コマンドに反応する電子タグの個数niとし、乱数発生コマンドが指定するタイムスロット数の大きさをmiとする。また、このときの、1タイムスロット当たりにおける、電子タグからの応答が成功する確率をPSi、電子タグからの応答が無い確率をPFiとする。
【0086】
さらに、全電子タグ個数、より正確には、活性化コマンドを受信できた電子タグ個数をNとし、乱数生成コマンドを発行した際、個々の電子タグがコマンドを受信成功する確率をQSiとし、タイムスロットが割り振られた電子タグが応答要求コマンドに対して、コリジョンが起きなければ応答に成功する確率をqSiとし、応答しない確率をqFiとする。
【0087】
なお、確率qSi、qFiは、応答要求コマンド、また、個々の電子タグごとで異なるので、一般的には、qSi=qSi(α,j)、qFi=qFi(α,j)である。ここで、αは電子タグを区別するための番号であり、jは乱数生成コマンド発行後の、j番目の要求コマンドに対するものであることを意味する。また、確率QSiに関しても同様で、一般的には、QSi=QSj(i≠j)は成立しない。しかし、このような状況では、計算することが極めて困難であるため、次の仮定を行なう。
【0088】
「qSi=qSi(α,j)、qFi=qFi(α,j)、及び、QSiは、個々の電子タグによらず、ある平均的な値として扱え、少なくとも2回の乱数生成コマンドを発行する期間においては一定である。」
上記仮定においては、3回のタイムスロットにおいては、i、α、jを外すことができ
、また、QSiに関しては、iを外すことができる。したがって、以下省略し、この仮定の下、1タイムスロットあたりの電子タグからの応答が成功する確率PSi、電子タグからの応答が無い確率PFiは、それぞれ、(6)式、(7)式のようにかける。
【0089】
【数6】
【0090】
【数7】
環境による通信エラー等が発生し得る環境を想定し、この対策を実施した場合の3つの動作例のうち1つ目の例では、リーダ・ライタは、ステップF003の乱数生成コマンド発行前に、直接IDを指定することにより、通信コネクションに成功し電子タグのIDを把握した電子タグのいくつかと再度個別に通信するか、もしくは、あらかじめIDの判明した電子タグを通信対象となっている電子タグ集団の中にいくつか配置しておき、これらの電子タグのいくつかと個別に通信を行う。
【0091】
このときの応答結果である、個別の電子タグに通信した全回数に対する電子タグの応答に成功した回数の比率を、コリジョンが起きなければ応答に成功する確率qSの値とみなし、個別の電子タグに通信した全回数に対する電子タグの応答が無かった回数の比率を、コリジョンが起きなければ応答しない確率qFの値とみなす。
【0092】
また、i番目の乱数発生コマンド後、タイムスロット数の回数分応答要求コマンドを発行したときの、電子タグと通信に成功したタイムスロットの回数をnSi、応答がなかったタイムスロットの回数をnFiとすると、i番目に乱数発生コマンドを発行した際、そのコマンドを実際に受信できた電子タグ個数の推定値nEiは、(6)式、(7)式から、(8)式、(9)式が近似的に成り立つと考えられる。
【0093】
【数8】
【0094】
【数9】
よって、(8)式から、上記連立方程式において唯一の未知数である電子タグ個数の推定値nEiが求まる。等号が成立しない場合は、最も両辺の差の絶対値が小さくなるものを選択すれば良い。なお、電子タグ個数の推定値nEiの求め方は、(8)式と(9)式の両辺の差の絶対値が、それぞれ最も同時に小さくなるものを選択しても良い。
【0095】
電子タグ個数の推定値nEiが求まったので、次に乱数発生コマンドを発行したとき、通信対象となる電子タグ個数の推定値は、前回のリーダ・ライタコマンド群の通信結果から、nSi個の電子タグと通信できたことを考慮すると、(nEi−nSi)個と推定できる。
【0096】
以上のことから、次に乱数生成コマンドを発行するときのスロット数mi+1は、電子タグ個数の推定値(nEi−nSi)と(6)式から、単位時間当たりの電子タグの応答成功回数が最大となるよう選択すればよく、コマンド制御部120は、これを計算してi+1番目のステップF003にてタイムスロット数をmi+1の値として乱数生成コマンドを発行する。
【0097】
なお、時間因子を特に考慮しなくて良いならば、コマンド制御部120が乱数生成コマンド時に指定するスロット数mi+1の具体的な値は、(6)式から、1タイムスロット当たりにおける電子タグからの応答が成功する確率PSの最大となる条件である、(1−qF)×(nEi−nSi)となる。
【0098】
しかし、実際には、各コマンドによりビット長や、リーダ・ライタ間の送受信タイミングが異なるため、次に乱数生成コマンドを発行するときのスロット数は電子タグ個数の推定値そのものにはならないが、これらは、エアインタフェースや、リーダ・ライタ固有の数値なので、上記方法と同様の計算から算出できる。
【0099】
以降の輻輳制御に関するステップF003からF005の処理においては、上記操作を繰り返す。
【0100】
環境による通信エラー等が発生し得る環境を想定し、この対策を実施した場合の3つの動作例のうち2つ目の例では、下記仮定において、平均値として扱える期間を、少なくとも3回の乱数生成コマンドを発行する期間においては成立することを前提とする。
【0101】
「qSi=qSi(α,j)、qFi=qFi(α,j)、及び、QSiは、個々の電子タグによらず、ある平均的な値として扱え、少なくとも2回の乱数生成コマンドを発行する期間においては一定である。」
この前提のもと、コマンド制御部120は、ステップF003からF005の一連の処理における最初の2回は、乱数生成コマンド発行時に、タイムスロット数として適当な値、例えば50等を選択する。
【0102】
2回目以降の輻輳制御に関するステップF003からF005の処理については下記のとおりである。
【0103】
まず、リーダ・ライタは、通信状況推測部にて、電子タグ個数と通信エラーの発生確率の推定をおこなう。推定方法は下記のとおりである。
【0104】
i番目の乱数発生コマンド後、タイムスロット数の回数、応答要求コマンドを発行したときの、電子タグと通信に成功したタイムスロットの回数をnSi、応答がなかったタイムスロットの回数をnFiとすると、i番目と(i+1)番目に乱数生成コマンドを発行した際、そのコマンドを実際に受信できた電子タグ個数の推定値nEiとnEi+1は、(6)式、(7)式から、(10)式〜(13)式が近似的に成り立つ。
【0105】
【数10】
【0106】
【数11】
【0107】
【数12】
【0108】
【数13】
(10)式〜(13)式において、左辺は実測値とタイムスロット数を代入するため、また、右辺のタイムスロット数miとmi+1はリーダ・ライタのコマンドパラメータで既知であるため、未知数は4つであり、これら4つの方程式から4つの未知数qS、qF、nEi、nEi+1を求めることができる。なお、等号が成立しない場合は、4式で同時に、両辺の差の絶対値が最も小さくなるものを選択すれば良い。
【0109】
推定値qS、qF、nEi、nEi+1が求まったので、次に乱数生成コマンドを発行したとき、通信対象となる電子タグ個数の推定値は、前々回と前回のリーダ・ライタコマンド群の通信結果から、(nSi+nSi+1)個の電子タグと通信できたので、(N−nSi−nSi+1)×QS個、と推定できる。なお、NとQSは、nEi=N×QS,nEi+1=(N−nEi)×QSから算出できる。
【0110】
したがって、コマンド制御部は、ステップF003の処理における、i+2番目の乱数発生コマンドを発行するとき、タイムスロット数mi+2を、電子タグ個数の推定値(N−nSi−nSi+1)×QSと(6)式から、単位時間当たりの電子タグの応答成功回数が最大となるよう選択する。
【0111】
具体的には、時間因子を特に考慮しなくて良いならば、(6)式から、1タイムスロット当たりにおける電子タグからの応答が成功する確率PSの最大となる条件、すなわち、
mi+2=(N−nSi−nSi+1)×QS×(1−qF)
をタイムスロット数として選択する。
【0112】
なお、実際には、各コマンドによりビット長や、リーダ・ライタ間の送受信タイミングが異なるため、次に乱数生成コマンドを発行するときのスロット数は、電子タグ個数の推定値そのものにはならないが、これらは、エアインタフェースや、リーダ・ライタ固有の数値なので、上記方法と同様の計算から算出できる。
【0113】
次に、環境による通信エラー等が発生し得る環境を想定し、この対策を実施した場合の3つの動作例のうち3つ目の例について以下に説明する。
【0114】
2回目以降のステップF003からF005の処理において、ステップF003の乱数生成コマンド発行前に、リーダ・ライタは、通信状況推測部123にて、EMアルゴリズムを用いることにより、電子タグ個数と通信エラーの発生確率の時間推移の推定をおこなう。推定方法は下記のとおりである。
【0115】
本来、活性化コマンドを受信できた電子タグ個数、乱数生成コマンドを発行した際、個々の電子タグがコマンドを受信成功する確率、タイムスロットが割り振られた電子タグが応答要求コマンドに対して、コリジョンが起きなければ応答に成功する確率、応答するが、コリジョンが無くてもデータが破損する確率、応答しない確率がわかっていれば、タイムスロット全体における電子タグの応答結果の組み合わせ、以下、これを、出力シンボル系列yと呼ぶと、この生成確率は、直接計算することは困難であるが、モンテカルロシミュレーションといった数値計算により算出することができる。
【0116】
そこで、通信状況推測部123では、受信できた電子タグ個数や通信エラーの発生確率等を適当な値に設定し、この条件のもと実際に観測された出力シンボル系列yを実現する確率を求め、次に受信できた電子タグ個数や通信エラーの発生確率等の値を適当に変更して、再度観測された出力シンボル系列yを実現する確率を求め、より実現する確率の高い、受信できた電子タグ個数や通信エラーの発生確率等の値を選択し、これを繰り返すことにより推測値の精度を高める。
【0117】
具体的には、活性化コマンドを受信できた電子タグ個数、乱数生成コマンドを発行した際、個々の電子タグが、コマンドを受信成功する確率、タイムスロットが割り振られた電子タグが応答要求コマンドに対して、コリジョンが起きなければ応答に成功する確率、応答するが、コリジョンが無くてもデータが破損する確率、応答しない確率をモデルパラメータθとして、EMアルゴリズムによりθの最尤推定値を求める。
【0118】
まず、出力シンボル系列yの生成確率P(y)は、次式で与えられる。
【0119】
【数14】
ここで、xは、出力シンボル系列yの背後にある完全な確率変数である。これは、例えば、出力シンボル系列yが電子タグの応答があったか、なかったかといった単純な観測値であるのに対して、xはどの電子タグが応答したかといった、観測では不明な条件をもデータとしてもつ。
【0120】
次に、EMアルゴリズムで用いる関数Qを(15)式のように定義する。
【0121】
【数15】
以下、通信状況推測部のEMアルゴリズムによる動作例を、図6のフローチャートに沿って説明する。
【0122】
まず、モデルパラメータθ0を適当にきめる(ステップS001)。次に、別のモデルパラメータθを適当にきめ、θ0とθと観測された出力シンボル系列yを(15)式に代入し、これを計算する(ステップS002)。モデルパラメータθの値を変えていき、関数Qが最大となるθ*を求め、これを新しいモデルパラメータとする(ステップS003)。関数Qが収束するまで、ステップS002とステップS003の計算を繰り返す(ステップS004)。上記アルゴリズムにより、最尤推定値θが求まる。通信状況推測部123は、電子タグの個数や通信のエラー発生率といった電子タグとの通信状況の推測値をθから得る。
【0123】
コマンド制御部120は、ステップF003の乱数生成コマンド発行時に、タイムスロット数を決定する際、最尤推定値θから得たコリジョンが起きなければ応答に成功する確率、応答するがコリジョンが無くてもデータが破損する確率、応答しない確率の各平均値を、次のステップF003からF005の一連の処理において発生する確率とみなし、これらの数値のもと、全ての電子タグが応答成功する回数を算出し、この中で、単位当りの応答成功回数が最も大きいタイムスロット数mを選択する。
【0124】
なお、上記EMアルゴリズムの推定において、計算量を減らすため、後述する、輻輳制御における第2の実施の形態と同様、乱数生成コマンドを発行した際、個々の電子タグがコマンドを受信成功する確率、タイムスロットが割り振られた電子タグが応答要求コマンドに対して、コリジョンが起きなければ応答に成功する確率、応答するが、コリジョンが無くてもデータが破損する確率、応答しない確率を、それぞれ、ある平均的な値に置き換えても良い。
【0125】
また、推定における計算量を減らすため、活性化コマンドを受信できた電子タグ個数、タイムスロットが割り振られた電子タグが応答要求コマンドに対して応答しない確率に関して、これらの対数に対して等間隔にサンプリングしても良い。この理由は、(1)式において、nが十分大きいとき、x=nn/mとおくと、(1)式は、(16)式のように書ける。
【0126】
【数16】
したがって、PSに関して等間隔にサンプリングすると、x軸に関しては指数的に変化する。このため、電子タグ個数の対数に関して等間隔にサンプリングしても、PSに対する精度が落ちなくて済む。一方、対数に関して等間隔にサンプリングするため、つまり、指数的にサンプリングするため、サンプリング量は極めて少なくて済む。また、タイムスロットが割り振られた電子タグが応答要求コマンドに対して応答しない確率は、(1)式においての極大値の条件がm=nであったのに対し、(6)式では、m=n(1−qF)となっている。これと、先ほどと同様な議論から(1−qF)の対数に関してサンプリングすることにより、少ないサンプル数で、推定精度の低下を防ぐことができる。
【0127】
なお、通信エラー等が発生し得る環境を想定し、この対策を実施した場合の3つの動作例に関する輻輳制御方法を適用しつづけると、時に局所的な最適状態になることがある。これを防ぐためには、ある適当なタイミングで、最適ではないタイムスロットを設定することである。具体的には、(1)式、(2)式から、最適と推測されるタイムスロット数の数倍(4倍から8倍)のタイムスロットを発行すればよい。
【0128】
また、本3つの動作例においては、コマンド制御、及び、電子タグとの通信状況の推測をリーダ・ライタが行ったが、リーダ・ライタの外部に接続されるコンピュータが、コマンド制御、または、電子タグとの通信状況を推測しても良い。さらに、これらの動作をコンピュータに実行させるためのプログラムにも適用できる。
【0129】
したがって、本実施の形態によれば、前記のような構成および処理により、電子タグと、リーダ・ライタの無線通信において、無線通信状況を推測し、この推測した無線通信状況に合わせて、最適なリーダ・ライタのコマンドを動的に変更しながら発行することにより、効率的な無線通信を実現することができる。
【0130】
(第2の実施の形態)
図7は、本発明の第2の実施の形態の電子タグとリーダ・ライタとサーバとデータベースにより構成される無線システムの構成例を示す概念図である。この図7における無線システムは、リーダ・ライタ100,102と、複数個(図では8個の例)の電子タグ210〜213,220〜223と、リーダ・ライタ制御サーバ300と、送受信履歴格納DB400から構成される。
【0131】
本実施の形態では、複数のアンテナ111,112、113,114が接続された複数のリーダ・ライタ101,102が、リーダ・ライタ制御サーバ300を介して、共通の送受信履歴格納DB400に電子タグ210〜213,220〜223との通信結果を記録する。送受信履歴格納DB400の情報を相互に参照可能とすることで、リーダ・ライタは、その他のリーダ・ライタの通信記録を利用して、コマンド制御を最適化する。
【0132】
以下に、本構成例について説明する。
【0133】
図7におけるリーダ・ライタ101は、このリーダ・ライタ101のアンテナ111と112を用いて、電子タグ210〜213、あるいは、電子タグ220〜223と電波によりデータを送受信する。また、リーダ・ライタ102は、このリーダ・ライタ102のアンテナ113と114を用いて、電子タグ210〜213、あるいは、電子タグ220〜223と電波によりデータを送受信する。500から503、510から513は電子タグの貼付対象物であり、500から503は同類であり、510から513は同類だが、500から503と510から513は異なる物質である。
【0134】
送受信履歴格納DB400は、複数のリーダ・ライタ101,102と複数の電子タグ210〜213,220〜223の送受信に関する記録を保存する。リーダ・ライタ制御サーバ300は、リーダ・ライタ101,102、及び、受信履歴格納DB400を制御するサーバであり、リーダ・ライタ101,102から受信した通信に関するデータと受信履歴格納DB400から取り出した過去における1個以上のリーダ・ライタと電子タグ集団との通信に関するデータを統計分析する。その統計データを送受信履歴格納DB400に格納する。また、統計分析されたリーダ・ライタと電子タグ間の通信に関するデータから有用な統計データを抽出し、リーダ・ライタに送信する。
【0135】
図8は、リーダ・ライタ制御サーバのハードウェア構成を示すブロック図である。図8において、リーダ・ライタ制御サーバ300のハードウェア構成は、クラスター分析部401、主成分分析部402、メモリ部403、リーダ・ライタコマンド制御指示部404、リーダ・ライタ通信記録解析部405、リーダ・ライタ接続インタフェース部406、データベース接続インタフェース部407から構成される。
【0136】
クラスター分析部401は、送受信履歴格納DB400とのデータベース接続インタフェース部407から、過去の通信記録を取得し、これをクラスター分析により電子タグとの通信状況に関するデータ配列群をクラスタリングする。ここで、通信状況に関するデータ配列とは、リーダ・ライタと電子タグ間の通信結果に関する時間推移、リーダ・ライタが通信結果を元に推測した、通信している電子タグの個数や通信成功確率や通信エラー発生確率などの時間推移を記録したデータ配列である。主成分分析部402は、クラスター分析部401により分類された各クラスターにおける、電子タグとの通信時の使用したアンテナ等、通信制御パラメータに関するデータ配列の中から、頻度の高い順にデータをまとめておく。メモリ部403は、クラスター分析部401と主成分分析部402の解析結果を記録する。
【0137】
リーダ・ライタ接続インタフェース部406はリーダ・ライタとの接続インタフェースである。リーダ・ライタ通信記録解析部405は、対象としているリーダ・ライタと電子タグ間の通信記録と送受信履歴格納DB400の情報と、メモリ部403に記録されたクラスター分析と主成分分析の解析結果から、現在のリーダ・ライタと電子タグ間におけるクラスターをいくつか選択する。リーダ・ライタコマンド制御指示部404は、リーダ・ライタ通信記録解析部405の結果を受けて、選択されたクラスターの中で、現在のリーダ・ライタの通信に参考になるクラスターを選択し、このクラスターにおけるリーダ・ライタ制御パラメータとグループ内での平均化された通信に関するデータ配列を、リーダ・ライタにリーダ・ライタ接続インタフェース部406を通じて送信する。
【0138】
図9は、リーダ・ライタ制御サーバのクラスター分析部におけるフローチャートである。図10は、リーダ・ライタ通信記録解析部とリーダ・ライタコマンド制御指示部におけるフローチャートである。
【0139】
クラスター分析部401では、通信状況に関するデータ配列群を、以下の基準で配列を分断し部分配列を作成する。この基準ごとに、部分配列に関してクラスタリングする。部分配列の分断する基準は、1つは、図4におけるステップF001からF005までのループ処理において発生する、ある電子タグ集団に関する通信全体の通信状況に関するデータ配列を、1つの部分配列とする。2つ目は、図4におけるステップF002からF005までのループ処理において発生する通信状況に関するデータ配列を、部分配列の分断基準とする。3つ目は、ステップF003からF005までのループ処理において発生する通信状況に関するデータ配列を、部分配列の分断基準とする。
【0140】
したがって、1つのデータ配列群から、3つの分断基準を元に作成された、3つの部分データ配列群に対してそれぞれ、クラスター分析して類似したもの同士を1つのクラスターにまとめていく。以下に3種類の部分データ配列群に対するクラスター分析の実行手順を、図9のフローチャートに沿って説明する。
【0141】
まず、クラスター分析部401は、分断後の個々のデータ配列を1つのクラスターとして扱う(ステップS005)。次に、非類似度行列から、最も類似性の高い2つのクラスターを融合して、1つのクラスターを作成する(ステップS006)。新規に作成したクラスターと他のクラスターとの非類似度行列を計算し、非類似度行列を更新する(ステップS007)。クラスターをまとめた結果、クラスターが一つになったら終了し、1つでなければステップ6を繰り返す(ステップS008,S009)。ここで、図9のステップS006とS007における非類似度の計算方法には、ユークリッド平方距離によるウォード法を用いる。なお、他の非類似度の計算方法でも良い。
【0142】
主成分分析部402では、クラスター分析部401において分類された各グループにおいて、通信状況に関するデータ配列を発生させたときの、リーダ・ライタの各種制御パラメータや、リーダ・ライタと電子タグ間の通信における環境パラメータ、例えば、電子タグの貼付対象物の情報を格納したデータ配列群について、出現頻度の高い順にまとめておく。
【0143】
以上が、リーダ・ライタ制御サーバ300のクラスター分析による統計処理方法である。次に、本発明にかかるリーダ・ライタ制御サーバ300の、リーダ・ライタからリーダ・ライタの通信データを受信し、受信データをもとにリーダ・ライタが必要とする統計データを選択し、これをリーダ・ライタに送信するまでの一連の動作例を、図10のフローチャートに沿って説明する。
【0144】
まず、リーダ・ライタ通信記録解析部405で、リーダ・ライタと電子タグ集団との通信に関するデータを、対象としているリーダ・ライタからリーダ・ライタ接続インタフェース部406を通じて取得する(ステップF011)。
【0145】
リーダ・ライタ通信記録解析部405は、この通信に関するデータから、対象としているリーダ・ライタの現在のコマンド制御が、どのループ処理の階層における制御なのかを判定する。ここで、ループ処理の階層とは、図4のフローチャートにおけるループ処理の開始位置が、処理ステップF001なのか、それともF002なのか、それともF003なのかである。リーダ・ライタ制御サーバ300はループ処理の階層の判定後、メモリ部403から、クラスター分析の結果を取得する。ここで、クラスター分析の結果は、通信状況に関する部分配列の基準から3種類存在するが、リーダ・ライタ通信記録解析部405は、リーダ・ライタの現在のコマンド制御から判定した階層以上のループ処理における部分配列に関するクラスター分析の結果を選択する(ステップF012)。
【0146】
また、リーダ・ライタ通信記録解析部405は、対象となっているリーダ・ライタの通信記録の送受信履歴格納DB400への登録回数を分析し、登録回数により処理を振り分ける(ステップF013,I005)。登録回数が多い場合は、クラスター分析により分類したクラスターに関して、中分類のクラスターを採用する。この中分類のクラスターの中で、対象としているリーダ・ライタの出現回数の多いクラスターを、上位からいくつか抽出する(ステップF014)。一方、登録回数が少ない場合は、中分類のクラスターを採用すると、類似したクラスターの存在する可能性が低いことと、統計データとしての信頼性が低いため、大分類のクラスターを1つ採用する(ステップF015)。
【0147】
リーダ・ライタコマンド制御指示部404では、リーダ・ライタ通信記録解析部405の結果と、リーダ・ライタのコマンド制御の状況に応じて、リーダ・ライタへ送信するデータの内容を決める。
【0148】
リーダ・ライタコマンド制御指示部404は、対象としているリーダ・ライタのコマンド制御が輻輳制御に関するものである場合、タイムスロット数の制御を行うので、この制御に必要な、通信状況に関するデータ配列、例えば、電子タグからの応答が成功する確率や、電子タグからの応答が無い確率の時間推移の推定に役立つクラスターを採用する(ステップI006,F016)。
【0149】
具体的には、対象としているリーダ・ライタの現在までの通信状況に関するデータ配列と、採用された各クラスター内で平均化した通信状況に関するデータ配列の類似度を評価し、最も類似性の高いクラスターを採用する。ここで、類似度の評価には、例えば、2つの配列のユークリッド距離の大小関係で評価すればよい。
【0150】
一方、対象としているリーダ・ライタのコマンド制御が輻輳制御に関するものではない場合、リーダ・ライタコマンド制御指示部404は、リーダ・ライタ、および、通信環境に関する静的なパラメータの出現回数が高く、かつ、クラスター内で平均化した通信状況データ配列が安定しているクラスターを採用する(ステップF017)。ここで、安定した通信状況データ配列とは、送受信時のデータエラーの発生確率が低く、かつ、これらの確率の時間変動が小さい、通信状況に関するデータ配列のことである。
【0151】
クラスターが決まったら、リーダ・ライタコマンド制御指示部404は、このクラスターにおけるリーダ・ライタ制御パラメータとグループ内での平均化された通信に関するデータ配列を、リーダ・ライタにリーダ・ライタ接続インタフェース部406を通じて送信する(ステップF018)。
【0152】
以上で、一連の処理が終了する。
【0153】
リーダ・ライタ、および、通信環境に関する静的なパラメータの出現回数が高いクラスターを採用する理由は、統計データとしての信頼性を高めるためである。なお、静的なパラメータとは、リーダ・ライタ自身では変更することのできないパラメータのことである。例えば、リーダ・ライタに関する静的なパラメータに関しては、リーダ・ライタ自身であり、一方、通信環境に関する静的なパラメータには、例えば電子タグの貼付対象物や、通信対象となっている電子タグのアンテナ形状などである。ただし、電子タグの貼付対象物や電子タグのアンテナ形状等は、あらかじめ登録されているか、あるいは、リーダ・ライタと電子タグが通信したとき、電子タグのIDとこれらのパラメータが紐づいている場合使用できる。
【0154】
クラスター内で平均化した通信状況データ配列が安定しているクラスターを採用する理由は、クラスターを採用する目的が、安定した通信を実現するリーダ・ライタの設定パラメータを選択することにあるからである。具体的には、通信状況のデータ配列が安定しているクラスターのリーダ・ライタの設定パラメータに関するデータ配列から、発生頻度が高いものを選択する。この方法で、通信が安定しているため効率的な無線通信の実現が容易と考えられる、無線チャネルやリーダ・ライタのアンテナ、リーダ・ライタ制御コマンドや活性化コマンドの発行タイミングを決めるループ回数の閾値などを、リーダ・ライタが選択できるよう情報を与える。
【0155】
リーダ・ライタは、リーダ・ライタ制御サーバ300から選択したクラスターの統計データを受信し、この統計データを元に、リーダ・ライタのコマンド制御を行う。例えば、輻輳制御ならば、リーダ・ライタのこれまでの通信状況のデータ配列とクラスターの通信状況データ配列の平均値とを比較し、類似性を評価し、クラスターの通信状況データ配列の平均値において最もマッチングした部分配列を抜き出し、その抜き出した部分配列以降の部分配列を、未来におけるリーダ・ライタの通信状況データ配列であると仮定して、ステップF003の乱数生成コマンド発行時のタイムスロット数を指定する。
【0156】
なお、クラスター内部における通信状況データ配列は、時間推移によるリーダ・ライタと電子タグとの送受信の結果のみではなく、コマンド発行回数による送受信の結果でもよい。また、これらのデータ配列を、フーリエ変換したものでもよい。また、このフーリエ係数に関して、ある閾値以下のフーリエ係数を削除して、データ圧縮しても良い。
【0157】
また、リーダ・ライタ制御サーバ300、または、送受信履歴格納DB400の機能をリーダ・ライタに実装してもよい。
【0158】
また、リーダ・ライタと電子タグとの送受信結果は時間と共に増大していくため、いつかデータベースの容量が足りなくなる。これを防ぐために、クラスター分析用の通信状況に関するデータ配列群に関しては、最も類似性の強い2つのデータ配列を抽出し、これらの平均値をとり、これを1つのデータ配列とする。ただし、このデータ配列が2つのデータ配列から作成されたことを表す統計情報を残しておく。この作業を繰り返すことにより、データの増大による容量オーバーを防ぐ。
【0159】
したがって、本実施の形態によれば、前記のような構成および処理により、前記第1の実施の形態と同様に、無線通信状況を推測し、この推測した無線通信状況に合わせて、最適なリーダ・ライタのコマンドを動的に変更しながら発行することにより、効率的な無線通信を実現することができる。
【0160】
(第3の実施の形態)
図11は、本発明の第3の実施の形態の電子タグとリーダ・ライタとリーダ・ライタの通信対象となっている電子タグの個数を観測する外部装置により構成される無線システムの構成例を示す概念図である。この図11における無線システムは、リーダ・ライタ103と、電子タグ集団700と、リーダ・ライタ制御サーバ301と、物品重量情報管理DB410、重量計600から構成される。
【0161】
本実施の形態では、リーダ・ライタ103は、このリーダ・ライタ103のアンテナ115を用いて、物に貼り付けられた電子タグ集団700と電波によりデータを送受信する。また、リーダ・ライタ制御サーバ301は、リーダ・ライタ103、物品重量情報管理DB410、電子タグの個数を観測する外部装置である重量計600と接続し、これらを制御する。
【0162】
物品重量情報管理DB410には、物品の個品に関する重量を格納しておき、また、電子タグのIDと電子タグ貼付対象物である物品とを紐付けておく。リーダ・ライタ103は、重量計600の上に乗っている電子タグ集団700の電子タグの一つと通信し、IDを取得すると、これをリーダ・ライタ制御サーバ301に送信する。リーダ・ライタ制御サーバ301は、このIDを検索キーとして、物品重量情報管理DB410から貼付対象物の重さ情報を取得する。次にリーダ・ライタ制御サーバ301は、重量計600を用いて電子タグ集団700とその貼付対象物全体の重さを計量する。この全体の重さを、物品重量情報管理DB410から取得した単品の重さで割ることにより、リーダ・ライタ制御サーバ301は、電子タグ集団700の個数を推定する。リーダ・ライタ制御サーバ301はこの電子タグ個数の推定値をリーダ・ライタ103に送信する。リーダ・ライタ103は、この受信データである電子タグ個数の推定値を、ステップF003の乱数生成コマンドにおけるタイムスロット数の上限とする。
【0163】
なお、前記重量計600は、電子タグの個数を観測する外部装置の一例であり、カメラを用いた画像分析による手法により電子タグの個数を推定してもよい。また、電子タグ集団のある電子タグのメモリに、電子タグ個数を書き込んでおき、リーダ・ライタはその情報から電子タグの個数を把握してもよい。
【0164】
また、外部装置から把握した電子タグ個数は、タイムスロット数の上限値としてだけではなく、電子タグとの通信終了条件に用いてもよい。
【0165】
したがって、本実施の形態によれば、前記のような構成および処理により、前記第1の実施の形態と同様に、無線通信状況を推測し、この推測した無線通信状況に合わせて、最適なリーダ・ライタのコマンドを動的に変更しながら発行することにより、効率的な無線通信を実現することができる。
【0166】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【0167】
本発明は、電子タグとリーダ・ライタとの無線通信におけるリーダ・ライタのコマンド制御技術に関し、特に、コマンド制御方法、このコマンド制御方法を実行させるためのプログラム、このコマンド制御方法を実行するリーダ・ライタ、およびコンピュータに利用可能である。特に、通信環境の変化が激しく、かつ高速な通信が要求されるゲートアンテナでの複数の電子タグの一括読取といった状況で、環境変化に応じて最適なコマンド制御を行うことにより、高速な通信を実現可能にする。
【図面の簡単な説明】
【0168】
【図1】本発明の第1の実施の形態の電子タグとリーダ・ライタにより構成される無線システムの構成例を示す概念図である。
【図2】本発明の第1の実施の形態の無線システムにおいて、リーダ・ライタのハードウェア構成を示すブロック図である。
【図3】本発明の第1の実施の形態の無線システムにおいて、リーダ・ライタのコマンド名とその機能説明図である。
【図4】本発明の第1の実施の形態の無線システムにおいて、リーダ・ライタのコマンド制御に関するフローチャートである。
【図5】本発明の第1の実施の形態の無線システムにおいて、リーダ・ライタの輻輳制御に関するコマンドシーケンス図である。
【図6】本発明の第1の実施の形態の無線システムにおいて、EMアルゴリズムのフローチャートである。
【図7】本発明の第2の実施の形態の電子タグとリーダ・ライタとサーバとデータベースにより構成される無線システムの構成例を示す概念図である。
【図8】本発明の第2の実施の形態の無線システムにおいて、リーダ・ライタ制御サーバのハードウェア構成を示すブロック図である。
【図9】本発明の第2の実施の形態の無線システムにおいて、クラスター分析部におけるフローチャートである。
【図10】本発明の第2の実施の形態の無線システムにおいて、リーダ・ライタ通信記録解析部とリーダ・ライタコマンド制御指示部におけるフローチャートである。
【図11】本発明の第3の実施の形態の電子タグとリーダ・ライタとリーダ・ライタの通信対象となっている電子タグの個数を観測する外部装置により構成される無線システムの構成例を示す概念図である。
【図12】一般的なAloha方式における、複数の電子タグとリーダ・ライタ間の通信の概要図である。
【図13】一般的な、電子タグ個数が50個のときの、タイムスロット数と、タイムスロット当たりの通信成功する確率、衝突が発生する確率、電子タグからの応答がない確率をグラフ化したものである。
【符号の説明】
【0169】
100,101,102,103,104…リーダ・ライタ
110,111,112,113,114,115…アンテナ
120…コマンド制御部
121…無線インタフェース部
122…受信結果解析部
123…通信状況推測部
124…メモリ部
125…外部インタフェース部
200〜203,210〜213,220〜223,230〜232…電子タグ
300,301…リーダ・ライタ制御サーバ
400…送受信履歴格納DB
410…物品重量情報管理DB
401…クラスター分析部
402…主成分分析部
403…メモリ部
404…リーダ・ライタコマンド制御指示部
405…リーダ・ライタ通信記録解析部
406…リーダ・ライタ接続インタフェース部
407…データベース接続インタフェース部
500〜503,510〜513…貼付対象物
600…重量計
700…電子タグ集団
800,805…応答要求コマンド
801〜804…乱数生成コマンド
810〜812…電子タグからの応答
【技術分野】
【0001】
本発明は、電子タグとリーダ・ライタとの無線通信におけるリーダ・ライタのコマンド制御技術に関し、特に、コマンド制御方法、このコマンド制御方法を実行させるためのプログラム、このコマンド制御方法を実行するリーダ・ライタ、およびコンピュータに適用して有効な技術に関する。
【背景技術】
【0002】
電子タグと、この電子タグと無線通信を行う無線機器であるリーダ・ライタとで構成される無線通信システムがある。この無線通信システムにおけるリーダ・ライタは、複数の電子タグと、いくつかのコマンドを用いて通信できる。このような複数の電子タグとの通信において、2個以上の電子タグが同時にリーダ・ライタと通信する場合があり、このとき通信信号が重なり、言い換えるとデータが衝突し、データが破損することがある。このデータの衝突をコリジョンと呼ぶ。このため、2個以上の電子タグと同時に通信する場合は、コリジョンを回避する方法が必要となる。この制御を輻輳制御と呼び、複数の電子タグと通信できるリーダ・ライタは輻輳制御の機能を実装している。また、リーダ・ライタは、輻輳制御に関するコマンド以外に、電子タグ間との通信における伝送速度や、使用する無線周波数帯や、変調方式や、複数のアンテナが使用可能な場合はその中のどれかを選択するコマンドを実装していることもある。なお、以降コリジョンと衝突は同義語として扱う。
【0003】
電子タグとリーダ・ライタ間の無線通信における輻輳制御方法としては、Aloha方式や、Binary Tree方式がある。以下Aloha方式を用いた輻輳制御方法の一例について説明する。
【0004】
まず、本説明におけるAloha方式の輻輳制御方法の概要を説明する。リーダ・ライタは、初めに各電子タグに乱数を割り当てる。各電子タグは、リーダ・ライタが発行するコマンドの回数で同期を取りながら、電子タグ自身に割り当てられた乱数とリーダ・ライタのコマンド発行回数が一致したとき、電子タグはリーダ・ライタに応答する。一般的に各電子タグに割り当てられた乱数は異なる値となるため、複数の電子タグが同時に応答することがなくなり、コリジョンを防ぐことができる。同じ乱数を持つ電子タグが複数発生した場合はコリジョンが発生するが、この場合は、乱数を割り当てるプロセスからやり直す。上記過程を繰り返すことにより、リーダ・ライタはすべての通信対象となっている電子タグと通信することができる。
【0005】
実際のリーダ・ライタと電子タグとの通信手順は複雑であるが、以降詳細説明を行う。図3はリーダ・ライタのコマンド名とその機能説明図であり、図5は電子タグとリーダ・ライタにおけるコマンドシーケンスのモデル図であり、図12は複数の電子タグとリーダ・ライタ間の通信の概要である。
【0006】
図3はリーダ・ライタのコマンド名とその機能説明図であり、リーダ・ライタは4つのコマンドを備えている。1つ目は活性化コマンドであり、このコマンドを電子タグが受信することにより電子タグが活性化され、以降このコマンド以外のリーダ・ライタのコマンドに対してレスポンスできるようになる。2つ目は乱数生成コマンドであり、このコマンドを電子タグが受信することにより、電子タグは乱数を生成する。この乱数生成コマンドの内部パラメータで、電子タグの乱数値の上限値を決める。なお、この上限値がタイムスロット数であり、タイムスロット数は電子タグの衝突の発生頻度と関連する。3つ目は応答要求コマンドであり、このコマンドを受信した回数と、電子タグ内部の乱数が一致したとき、電子タグは自身のIDをリーダ・ライタに送信する。4つ目はリーダ・ライタ制御コマンドであり、リーダ・ライタ自身を制御するコマンドである。具体的には、使用する伝送速度や無線チャネル等を決定する。
【0007】
図5は電子タグとリーダ・ライタにおけるコマンドシーケンスのモデル図であるが、モデル図のとおり、リーダ・ライタが電子タグを起動させる活性化コマンドを発行すると、電子タグは活性化され、これ以降リーダ・ライタから送信されるコマンドを受信し、リーダ・ライタへ応答可能となる。活性化した電子タグにリーダ・ライタが乱数生成コマンドを発行すると、活性化した各電子タグは乱数を生成し、この乱数、あるいは乱数の一部をタイムスロット番号に割り当てる。
【0008】
ここで、タイムスロット番号とは、電子タグがリーダ・ライダに対して応答するタイミングを指定する番号のことである。このタイムスロット番号の上限値を、タイムスロット数の大きさと呼び、以下タイムスロット数と呼ぶことにする。このタイムスロット数は、エアインタフェースの仕様によっては、固定の場合も、動的な場合もあり、一般的には、乱数生成コマンドのパラメータに含まれる。
【0009】
乱数生成コマンド発行後、リーダ・ライタは応答要求コマンドを発行する。このコマンドと電子タグのタイミングが一致した場合電子タグが応答するが、タイミングを合わせる方法として、主にスロットマーカ方式と、タイムスロット方式がある。
【0010】
スロットマーカ方式では、応答要求コマンドの中にタイムスロット番号がパラメータに含まれており、この応答要求コマンド内部のタイムスロット番号と電子タグ内部の乱数より生成されたタイムスロット番号と一致する場合、電子タグがリーダ・ライタに応答する。
【0011】
一方、タイムスロット方式では、電子タグは、乱数生成コマンド発行後の応答要求コマンドをカウントし、このカウント数と電子タグ内部の乱数より生成されたタイムスロット番号と一致する場合、電子タグがリーダ・ライタに応答する。
【0012】
結局、細かな違いはあるものの、スロットマーカ方式とタイムスロット方式の基本動作は同じである。どちらの方式も、タイムスロット数は、生成する乱数の大きさ(bit数)とこの乱数からタイムスロット番号に割り当てる大きさ(bit数)によって決まる。
【0013】
図12は、Aloha方式における、複数の電子タグとリーダ・ライタ間の通信のイメージ図であり、リーダ・ライタ1個に対し、電子タグが3個の場合である。また、タイムスロット数は4である。図12のケースでは、3つの電子タグのうち、(3)のタイムスロット番号で、同じタイムスロット番号を生成した230と232の2つの電子タグが、同時に応答したためコリジョンを起こしている。コリジョンを検知した場合、リーダ・ライタは全ての電子タグと通信するため、再度乱数生成コマンドを発行し、以降応答要求コマンドを繰り返し発行する。
【0014】
なお本説明では、輻輳制御の説明のため、活性化コマンド、乱数生成コマンド、応答要求コマンドの3つの輻輳制御のためのコマンドを用いたが、電子タグとリーダ・ライタのエアインタフェースの仕様によっては、活性化コマンドと乱数生成コマンドの機能が一つに合わさったコマンドが用意されることもあり得る。また、乱数生成コマンドと応答要求コマンドが一つに組み合わさったコマンドが用意されることもあり得る。また、応答要求コマンド発行後に、電子タグのID確認のため確認要求コマンドを発行する仕様であるエアインタフェースもあり得る。
【0015】
以上が電子タグとリーダ・ライタのエアインタフェースに使用されるAloha方式の基本的動作原理の説明である。
【0016】
もう一つの輻輳制御方式であるBinary Tree方式は、電子タグのIDのビット列をマッチングする方式である。電子タグのIDのビット列の一部とリーダ・ライタから発行されるコマンド内部のビット列がマッチングしたとき電子タグは応答する。Binary Tree方式の一部には、IDとのマッチングをかけるビット列のサイズを変更することができ、このサイズがAloha方式でのタイムスロット数に対応する。したがって、複数の電子タグがあり、これらのIDがランダムに散っている場合、Binary Tree方式におけるリーダ・ライタと複数の電子タグの通信は、Aloha方式と類似したものとなる。
【発明の開示】
【発明が解決しようとする課題】
【0017】
上記輻輳制御方法は、電子タグのコリジョンを回避する手段を与えるが、電子タグとの効率的な無線通信方法を与えるわけではない。なお、ここで電子タグとリーダ・ライタにおける無線通信の効率化とは、単位時間あたりに通信できる電子タグの個数を向上させることである。一般的に、電子タグとリーダ・ライタが通信する状況では、通信時間が限られているため、効率的な無線通信方法が望まれている。
【0018】
効率的な無線通信を実現するには、単位時間当たりの電子タグからの受信成功回数の期待値が最大となるリーダ・ライタのコマンド群を予測し、このコマンド群を発行する必要があるが、このためには、電子タグと通信している各時刻において、通信対象となっている電子タグの個数を把握しておくこと、実際に通信可能な状態になっている電子タグの個数を把握しておくこと、コリジョンに起因するものではない、個々の電子タグとの通信エラーの発生確率を把握しておくこと、リーダ・ライタのアンテナや、伝送速度や無線チャネルといったリーダ・ライタ自身の設定値と、電子タグとの通信の成功率の値、及び、その時間変化に関する相関関係を把握しておくことが必要である。以下にその理由を説明する。
【0019】
まず、通信対象となっている電子タグの個数の把握についてであるが、1つの理由は、複数の電子タグの通信の終了を把握するためであり、もう一つの理由は、電子タグの個数と輻輳制御におけるタイムスロット数の組み合わせによって、無線通信の効率が変わるからである。
【0020】
図13は、電子タグの個数が50個のときの、タイムスロット数と、1タイムスロット当たりの通信が成功する確率、衝突(コリジョン)が発生する確率、電子タグからの応答がない確率をグラフ化したものである。図13のグラフは、通信対象となっている電子タグの全てと通信可能で、伝播路におけるレベル変動による通信データの破損が生じない理想的な環境であることを仮定している。図13のグラフは、縦軸が確率の値で、横軸はタイムスロット数(電子タグの個数)である。なお、横軸は対数軸である。
【0021】
図13のグラフから、電子タグの個数とタイムスロット数が等しいとき通信成功する確率が最大となることがわかる。また、電子タグ個数がタイムスロット数に比べ大きいと衝突発生する確率が、一方、電子タグ個数がタイムスロット数に比べ小さいと応答がない確率が増加することがわかる。これは、電子タグ個数がタイムスロット数に比べ大きいと、同じタイムスロット番号を持つ電子タグの数が増え、衝突する頻度が増えることを意味する。一方、電子タグ個数がタイムスロット数に比べ小さいときは、同じタイムスロット番号を持つ電子タグの数は減り衝突する確率は低下するが、どの電子タグにも使用されないタイムスロット番号が発生する。この結果、1つのタイムスロットにおける応答しない確率が増加する。なお、上記のことは、電子タグ個数が変わっても成り立つことである。
【0022】
以上が、無線通信の効率が、電子タグの個数と輻輳制御におけるタイムスロット数に依存する理由である。
【0023】
次に、実際に通信可能な状態になっている電子タグの個数を把握しておくことの必要性についてであるが、図13のグラフでは通信対象となっている電子タグの全てと通信可能であることを仮定しているが、実際の環境では、リーダ・ライタの通信エリア等の関係から、通信対象となっている電子タグの全てと通信できるわけではない。
【0024】
仮に他の電子タグが存在しない状況でもリーダ・ライタと通信できない電子タグは、輻輳制御に影響を与えないため、無線通信の効率は、実際に通信可能な状態になっている電子タグの個数と輻輳制御におけるタイムスロット数に依存することになる。このため、実際に通信可能な状態になっている電子タグの個数を把握しておく必要がある。
【0025】
3番目に、個々の電子タグとの通信エラーの発生確率を把握しておくことの必要性についてであるが、この理由は下記のとおりである。
【0026】
図13の説明においては無線通信における理想的な環境であることを仮定したが、一般的には、伝播路におけるレベル変動による通信データの破損が生じる。特に電子タグは障害物に囲まれるような状況で使用されるため、レベル変動による通信データの破損が生じやすいと考えられる。
【0027】
このレベル変動による通信データの破損は、電子タグからリーダ・ライタへの応答時に発生した場合は、リーダ・ライタは電子タグからの通信データに破損を検出することになるため、これとコリジョンによるデータ破損とを判別することが極めて困難なものにする。一方、リーダ・ライタから電子タグへの送信時に発生した場合は、電子タグからの応答がなくなる原因となり、タイムスロットに割り当てられた電子タグが無かったため応答がなかったのかを判別することをきわめて困難なものにする。このような環境においては、図13のグラフは成り立たず、通信対象となっている電子タグの個数に近い値であるスロット数を選択することが、必ずしも通信効率向上に繋がらなくなる。
【0028】
しかし、上記のことは、あらかじめ個々の電子タグとの通信エラーの発生確率を把握することができれば対処することができる。なぜなら、1タイムスロット当りの電子タグとの通信が成功する確率に、個々の電子タグとの通信エラーの発生確率を輻輳制御における衝突、応答なしの確率を組み込むことにより、電子タグの個数とスロット数の最適値を修正できるからである。これが、コリジョンに起因するものではない、個々の電子タグとの通信エラーの発生確率を把握しておくことの必要性である。
【0029】
最後に、リーダ・ライタ自身の設定値と、電子タグとの通信の成功率の値、及び、その時間変化に関する相関関係を把握しておくことが必要についてであるが、この理由は下記のとおりである。
【0030】
リーダ・ライタと電子タグ間の通信において、これらの周囲の伝播環境が時間的に変化することがある。例えば、電子タグが利用される条件の中には、移動する物品に電子タグが貼り付けられ、この状態でリーダ・ライタが電子タグと通信するような場合である。この場合、時間に依存して、リーダ・ライタは、電子タグと通信できたりできなかったりするが、場合によっては、通信できる時間が短いため、ある一定以上の通信速度でないと、通信終了前に、通信が途切れることもありうる。リーダ・ライタの一部には通信速度が可変なものがあるが、リーダ・ライタは上記のようなケースを想定して、通信速度を選択する必要がある。
【0031】
また、リーダ・ライタと電子タグ間の通信においては、通信対象となっている電子タグの全てが通信できる状況にあるわけではなく、そのうちの一部とのみ通信できる場合がある。このような場合に対処できるよう、リーダ・ライタの一部には、複数のアンテナが接続され、これらを切替え可能なものや、アンテナの向きを変化させるなどして、電波の領域を変更できるものがある。これらのリーダ・ライタは、電波領域を変えることにより、通信対象となっている電子タグ全てとの通信を試みるが、電波の領域によっては、電子タグと通信できないこともあり得る。したがって、リーダ・ライタは、電子タグとの通信が良好なアンテナやアンテナの向き等のリーダ・ライタの設定値を把握しておく必要がある。
【0032】
特に、上記の件は、通信対象である電子タグが移動する状況ではより重要となる。なぜなら、時間とともに自然に通信領域が変化するからである。この場合、リーダ・ライタはこの変化に合わせてアンテナ等を切り替えるなどして、電波の領域を変更し、電子タグとの通信を良好に保つ必要がある。このとき、効率的な無線通信のために、どのアンテナを使用するかだけではなく、切り替えるタイミングも重要となる。なぜなら、切り替えるタイミングが遅いと電子タグと通信できなくなる時間が増え、一方、切り替えるタイミングが早いと切替時に発生する時間のロスが増えるからである。
【0033】
以上が、使用するアンテナや伝送速度といったリーダ・ライタ自身の設定値と、電子タグとの通信の成功率の値、及び、その時間変化に関する相関関係を把握することの必要性であり、リーダ・ライタはこれらを把握した上で最適な設定値を最適なタイミングで選択する必要がある。
【0034】
以上のことから、効率的な無線通信を実現するために、電子タグと通信している各時刻において、通信対象となっている電子タグの個数を把握し、実際に通信可能な状態になっている電子タグの個数を把握し、コリジョンに起因するものではない、個々の電子タグとの通信エラーの発生確率を把握し、リーダ・ライタのアンテナや、伝送速度や無線チャネルといったリーダ・ライタ自身の設定値と、電子タグとの通信の成功率の値、及び、その時間変化に関する相関関係を把握し、これらを把握した上で、単位時間当たりの電子タグからの受信成功回数の期待値が最大となるリーダ・ライタのコマンド群を予測して、このコマンド群を発行することが課題である。
【0035】
そこで、本発明の目的は、これらの課題を解決し、通信状況の変化にかかわらず、通信対象である電子タグとの実効通信速度を最大に保つようにして、効率的な無線通信を実現することができるリーダ・ライタのコマンド制御技術を提供することにある。
【0036】
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【0037】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
【0038】
本発明は、電子タグと、この電子タグの通信制御を行うリーダ・ライタとの通信における動的なリーダ・ライタのコマンド制御方法に関し、以下のような特徴を有するものである。さらには、これらのリーダ・ライタのコマンド制御方法における各手順をコンピュータに実行させるためのプログラム、リーダ・ライタのコマンド制御方法における各手順を実行するリーダ・ライタ、リーダ・ライタのコマンド制御方法における各手順を実行するコンピュータなどにも適用するものである。
【0039】
(1)第1の発明は、動的なリーダ・ライタのコマンド制御において、確率統計論的な手法により、電子タグとリーダ・ライタの過去の通信データから現在の通信状況を推測し、この推測結果を元に、統計確率論的な手法を用いて、電子タグとの通信効率が最も良いコマンド群を予測し、これを選択しコマンドとして発行することを特徴とする。
【0040】
(2)第2の発明は、1度通信コネクションの確立した電子タグと、リーダ・ライタが輻輳制御なしに直接通信することにより、輻輳制御による通信エラー等を排除し、純粋に電子タグとリーダ・ライタ間の環境による通信エラー等の通信状況を把握することを特徴とする。
【0041】
(3)第3の発明は、あらかじめIDの判明しているいくつかの電子タグを、IDのわからない電子タグ集団に混ぜておき、このIDの判明している電子タグとリーダ・ライタが輻輳制御なしに直接通信することにより、輻輳制御による通信エラー等を排除し、純粋に電子タグとリーダ・ライタ間の環境による通信エラー等に関する通信状況を把握することを特徴とする。
【0042】
(4)第4の発明は、環境による通信エラー等が発生しない、あるいは、無視できるほど発生率の低い、理想的な通信環境において、リーダ・ライタが発行するコマンドのパラメータで決まるタイムスロット数と、電子タグの応答結果から、リーダ・ライタが通信している電子タグの個数を推定することを特徴とする。
【0043】
(5)第5の発明は、コリジョンによるものではなく環境等による通信エラーが発生する通信環境において、一般的に、時刻や電子タグごとで異なる値となる環境要因による通信エラーが発生する確率を、ある平均的な値に置き換え、この置き換えによる誤差が少ないと仮定することにより、リーダ・ライタのコマンドで制御するタイムスロット全体における、電子タグとの通信が成功する回数と応答データが破損して通信が失敗する回数と電子タグが応答しない回数の期待値を、タイムスロット数と通信対象の電子タグの個数と、コリジョンに起因するものではない、個々の電子タグとリーダ・ライタ間の通信に関する、送受信に成功する確率、応答データが破損して通信が失敗する確率、電子タグが応答しない確率を5つの変数とする3つの関数として確率計算から導出し、この関数に、実際にリーダ・ライタが観測したデータ破損の発生回数や、電子タグからの応答が無かった回数を代入して方程式を作り、これらの方程式を解くことにより、リーダ・ライタが通信している電子タグの個数と、電子タグとリーダ・ライタ間の環境等により発生する通信エラーの確率を推測することを特徴とする。
【0044】
(6)第6の発明は、リーダ・ライタと通信している電子タグの個数をある適当な数値に決め、また、各時刻、各電子タグにおける環境要因による通信エラー等が発生する確率をある適当な数値に決め、これらの数値のもと、電子タグから実際に観測した応答結果を出力する確率を、タイムスロット全体における、各スロットで起こりうる電子タグの通信の可否に関する応答パターンの全てを考慮して算出し、適当に決めた電子タグの個数や環境要因による通信エラーが発生する確率の数値を変更した上で、上記の電子タグから実際に観測した応答結果を出力する確率を算出する作業を繰り返し行い、この作業を繰り返した結果、実際に観測した電子タグからの応答結果を最も出力しやすい、すなわち、最尤となる電子タグの個数や環境要因により通信エラーが発生する確率を、実際の数値であると推測することを特徴とする。
【0045】
(7)第7の発明は、過去の累積したリーダ・ライタと電子タグとの通信結果から算出した、通信可能な電子タグの個数や通信エラーの発生する確率の時間推移に関するデータ配列達を、統計解析用のデータ配列群としてデータベースに格納しておき、これをクラスター分析によりいくつかの類似したグループに分けておき、クラスター分析により分類されたクラスターの中から、通信可能な電子タグの個数や通信エラーの発生する確率の平均値の時間推移が、電子タグと通信しているリーダ・ライタの過去の通信結果に関する時間推移と最も類似したものを選択し、この選択したクラスターの通信可能な電子タグの個数や通信エラーの発生する確率の平均値を、現在のリーダ・ライタが通信している電子タグの個数や、通信エラーの発生する確率の推測値とすることを特徴とする。
【0046】
(8)第8の発明は、リーダ・ライタのアンテナや、伝送速度や無線チャネルといったリーダ・ライタ自身の設定値を決めるリーダ・ライタのコマンドを発行するとき、クラスター分析により分類された各クラスターの中から、対象となっているリーダ・ライタが出現する割合が高いものをいくつか選択し、これらのクラスターの中から、電子タグとの通信が良好なもの、すなわち、通信エラーの発生率が低く、かつ、時間による変動の少ないものを選択し、このクラスターにおいてリーダ・ライタの設定パラメータとして出現回数の多いパラメータを選択することにより、無線通信の効率化を図ることを特徴とする。
【0047】
(9)第9の発明は、カメラや重量計等により電子タグの貼り付けられた対象物の個数を計測し、この計測結果から電子タグの個数を推定する装置によって、通信対象となる電子タグの個数を推定し、この推定値から、輻輳制御におけるタイムスロット数の大きさの上限を決めることを特徴とする。
【発明の効果】
【0048】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【0049】
本発明によれば、電子タグと、リーダ・ライタの無線通信において、無線通信状況を推測し、この推測した無線通信状況に合わせて、最適なリーダ・ライタのコマンドを動的に変更しながら発行することにより、効率的な無線通信を実現することができる。
【発明を実施するための最良の形態】
【0050】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【0051】
以下においては、主にリーダ・ライタのコマンド制御方法、およびこのコマンド制御方法における各手順を実行するリーダ・ライタについて説明するが、本発明は、コマンド制御方法における各手順をコンピュータに実行させるためのプログラムや、リーダ・ライタのコマンド制御方法における各手順を実行するコンピュータなどにも適用可能である。
【0052】
なお、以下の説明においては、通信対象となっている電子タグは、リーダ・ライタと通信成功すると、以降のリーダ・ライタのコマンドに応答しなくなることを想定する。
【0053】
(第1の実施の形態)
図1は、本発明の第1の実施の形態の電子タグとリーダ・ライタにより構成される無線システムの構成例を示す概念図である。この図1における無線システムは、リーダ・ライタ100と、複数個(図では4個の例)の電子タグ200〜203から構成される。リーダ・ライタ100は、リーダ・ライタ100のアンテナ110から電波を放出することにより、電子タグ200〜203にコマンドを送信する。逆にリーダ・ライタ100は、電子タグ200〜203からの応答データをアンテナ110により受信する。
【0054】
図2は、リーダ・ライタのハードウェア構成を示すブロック図である。図2において、リーダ・ライタ100のハードウェア構成は、コマンド制御部120、無線インタフェース部121、受信結果解析部122、通信状況推測部123、メモリ部124、外部インタフェース部125から構成される。
【0055】
コマンド制御部120は、リーダ・ライタが発行するコマンドを制御し、制御結果を、メモリ部124に格納する。無線インタフェース部121は、コマンド制御部120からのリーダ・ライタのコマンドデータを受けて、このコマンドデータを無線出力する。また、無線インタフェース部121は、電子タグからの無線により送られる信号を受信する。受信結果解析部122は、無線インタフェース部121から送られる受信データと、メモリ部124に格納されている発行済みのコマンドから、電子タグの受信データの整合性の判別や、データの内容を解析する。通信状況推測部123は、受信結果解析部122から受けた電子タグからの受信結果と、メモリ部124に格納されている過去のコマンド履歴、及び、過去の電子タグからの受信結果の履歴、および、外部インタフェース部125からの参考データを元に、電子タグとの現在の通信状況を推測する。
【0056】
外部インタフェース部125は、メモリ部124に格納されている、リーダ・ライタのコマンド履歴、電子タグからの生の受信データ、通信状況推測の推測値の履歴を外部に出力する。一方、外部からの情報をメモリ部124に格納する。メモリ部124は、コマンド制御部124のコマンド履歴、受信結果解析部122の電子タグの受信データ履歴、通信状況推測部123の推測結果の履歴、外部インタフェース部125からの外部情報を格納する。コマンド制御部120は、通信状況推測部123からリーダ・ライタと電子タグ間の通信状況推測結果を受けて、また、メモリ部124から過去のコマンド履歴を受けて、さらに、外部インタフェース部125からの外部情報を参考にして、電子タグとの通信が最適化されるよう、新規のコマンドを発行する。
【0057】
図3は、リーダ・ライタのコマンド名とその機能に関する説明図であり、前述の背景技術で説明したとおりである。図4はリーダ・ライタのコマンド制御の基本的なフローチャートである。図5は、リーダ・ライタの輻輳制御に関するコマンドシーケンス図であり、図4のフローチャートにおける処理F002からF005のループ処理の一部を抜き出したものである。
【0058】
以下本発明にかかる通信状況推測部とコマンド制御部の動作例を、図4のフローチャートに沿って説明する。
【0059】
まず、環境による通信エラー等が発生しない、あるいは、無視できるほど発生率の低い、理想的な通信環境である場合の動作例について説明する。
【0060】
コマンド制御部120は、最初にリーダ・ライタ制御コマンドを発行し、リーダ・ライタが使用する無線チャネルや伝送速度を決定する(ステップF001)。なお、使用する無線チャネルは確保可能なものを適当に選択すればよく、伝送速度は帯域が確保できるならば伝送速度の高いものを選べばよい。次に活性化コマンドを発行し、電子タグをリーダ・ライタのコマンドに反応できるようにする(ステップF002)。電子タグを活性後、乱数生成コマンドを発行する(ステップF003)。このとき、コマンド制御部120は、タイムスロット数を決める必要があるが、初回のコマンド発行時は適当な数値、例えば50くらいを選べばよい。乱数生成コマンド発行後、コマンド制御部120は応答要求コマンドを発行し、電子タグから応答があった場合は、無線インタフェース部121を通じて、受信結果解析部122でデータの整合性をチェックする(ステップF004,F005)。この後、コマンド制御部120はタイムスロット数回(n>)、ステップF004とF005を繰り返す(ステップI001)。
【0061】
コマンド制御部120は、ステップF004からF005をタイムスロット数回実行した後、次に再度乱数生成コマンドを発行するか否かを、ステップF003からF005のループ処理の過程における電子タグからの応答の有り無しで判断する(ステップI002)。応答があった場合は、再度乱数生成コマンドを発行し、応答が無かった場合は、活性化コマンドを受信できなかった電子タグの存在を想定して再度活性化コマンドを発行し、それでも応答が無かった場合は、ステップF001に戻りリーダ・ライタの設定値を変えて、ステップF002からF005の処理を行う。なお、ステップI003の閾値1は、活性化コマンドを再送するタイミングを指定し、ステップI004の閾値2は通信を終了する条件を決める。完全に通信エラーが発生しない理想的な通信状況ならば、閾値1と閾値2は共に1で良く、少しのエラー発生率であるならば、通信時間の許容範囲で適当に決めればよい。
【0062】
以下、ステップI002で、電子タグの応答があった場合で2回目以降のF003からF005の処理について説明する。
【0063】
まず、リーダ・ライタは、通信状況推測部123にて、電子タグ個数の推定をおこなう。推定方法は下記のとおりである。
【0064】
i番目(iは正の整数)に発行した乱数発生コマンドにおける、リーダ・ライタとの通信が済んでない、乱数発生コマンドに反応する電子タグの個数niとし、乱数発生コマンドが指定するタイムスロット数の大きさをmiとする。また、このときの、1タイムスロット当たりにおける、電子タグからの応答が成功する確率をPSi、タグからの応答が無い確率をPFiとすると、計算によりそれぞれ、(1)式、(2)式の関係が成り立つ。
【0065】
【数1】
【0066】
【数2】
したがって、乱数発生コマンド後、タイムスロット数の回数、応答要求コマンドを発行したときの、電子タグと通信に成功したタイムスロットの回数をnSi、応答がなかったタイムスロットの回数をnFiとすると、i番目に乱数発生コマンドを発行した際、そのコマンドを実際に受信できた電子タグ個数の推定値nEiは、(1)式、(2)式から、(3)式、(4)式が近似的に成り立つと考えられる。
【0067】
【数3】
【0068】
【数4】
したがって、(4)式から、電子タグ個数の推定値nEiが求まる。等号が成立しない場合は、最も両辺の差の絶対値が小さくなるものを選択すれば良い。なお、電子タグ個数の推定値nEiの求め方は、(3)式と(4)式の両辺の差の絶対値が、それぞれ最も同時に小さくなるものを選択しても良い。
【0069】
電子タグ個数の推定値nEiが求まったので、次に乱数発生コマンドを発行したとき、通信対象となる電子タグ個数の推定値は、前回のリーダ・ライタコマンド群の通信結果から、nSi個の電子タグと通信できたことを考慮すると、(nEi−nSi)個と推定できる。
【0070】
したがって、次に乱数生成コマンドを発行するときのスロット数mi+1は、電子タグ個数の推定値(nEi−nSi)と(1)式から、単位時間当たりの電子タグの応答成功回数が最大となるよう選択すればよい。
【0071】
具体的には、時間因子を特に考慮しなくて良いならば、(1)式から、1タイムスロット当たりにおける電子タグからの応答が成功する確率PSは(1)式の微分計算をすると、m=nつまり、タイムスロット数と電子タグ個数が等しくなるとき最大なり、このとき(5)式のようになる(次式においては、一般的に成り立つため、添え字iを省略した。また、eはネピアの自然数である。)。
【0072】
【数5】
以上のことから、コマンド制御部120は、i+1番目にステップF003にて乱数生成コマンドを発行するときのスロット数mi+1の値を、i番目のステップF003からF005のループ処理の電子タグの応答結果から算出した現在の電子タグ個数の推定値(nEi−nSi)を選択する。
【0073】
なお、実際には、各コマンドによりビット長や、リーダ・ライタ間の送受信タイミングが異なるため、次に乱数生成コマンドを発行するときのスロット数は電子タグ個数の推定値そのものにはならないが、これらは、エアインタフェースや、リーダ・ライタ固有の数値なので、上記方法と同様の計算から算出できる。
【0074】
以降の輻輳制御に関するステップF003からF005の処理においては、上記操作を繰り返す。
【0075】
次に、環境による通信エラー等が発生し得る環境を想定し、この対策を実施した場合の3つの動作例について説明する。
【0076】
まず、環境による通信エラー等が発生し得る環境を想定した場合の3つの動作例すべてにおいて、初回のステップF001からF005の処理については、理想的な通信環境である場合の動作例と同様である。
【0077】
初回のステップF001からF005の処理終了後、コマンド制御部120は、次に再度乱数生成コマンドを発行するか否かを、ステップF003からF005のループ処理の過程における電子タグからの応答の有り無しで判断する(ステップI002)。応答があった場合は、再度乱数生成コマンドを発行し、応答が無かった場合は、活性化コマンドを受信できなかった電子タグの存在を想定して再度活性化コマンドを発行し、それでも応答が無かった場合は、ステップF001に戻りリーダ・ライタの設定値を変えて、ステップF002からF005の処理を行う。なお、ステップI003の閾値1は、活性化コマンドを再送するタイミングを指定し、ステップI004の閾値2は通信を終了する条件を決める。閾値1と閾値2は、通信エラーが発生する状況を想定しているため、下記の方法でそれぞれの値を決定する。
【0078】
まず、閾値1であるが、1つの決定方法は通信時間の許容範囲内でできるだけ大きい値を指定する方法で、もう1つの方法は、通信対象となっている電子タグの全個数の推定値Lとしたとき、Lが1以上の場合は、閾値1も1増加させる。すなわち、Lが1以下にならない限り、ステップF002からF005のループ処理を実行し、1より小さくなったら通信対象となっている電子タグが存在しないと判断してF002からF005のループ処理を終了する。
【0079】
なお、この全電子タグ個数Lの算出方法であるが、これは、活性化コマンドを受信できた電子タグ個数をNとし、活性化コマンドを受信できる電子タグの発生確率をRとしたとき、この活性化コマンドを受信できる電子タグの発生確率Rが、個々の電子タグの乱数生成コマンドを受信成功する確率の平均値をQSとしたとき、近似的にR=QSが成り立つとみなすことにより、全電子タグ個数Lは、RとNの値がわかれば、次の関係式、L×R=Nより算出できる。なお、R、実際にはQSと、Nの算出方法は後述する。
【0080】
次に、閾値2であるが、これも、閾値1と同様の方法で決定する。
【0081】
以下、ステップI002で、電子タグの応答があった場合で2回目以降のステップF003からF005の処理について説明する。
【0082】
まず、環境による通信エラー等が発生し得る環境を想定し、この対策を実施した場合の3つの動作例のうち、2つの例について説明する。
【0083】
今回も理想的な通信環境と同様に、1タイムスロット当たりの、電子タグからの応答が成功する確率と、タグからの応答が無い確率を、リーダ・ライタの通信状況推測部123にて推定し、この推定値を受けて、コマンド制御部120がコマンド制御を行う。
【0084】
まず、リーダ・ライタは、通信状況推測部123にて、電子タグ個数と通信エラーの発生確率の推定をおこなう。推定方法は下記のとおりである。
【0085】
i番目に発行した乱数発生コマンドにおける、リーダ・ライタとの通信が済んでない、乱数発生コマンドに反応する電子タグの個数niとし、乱数発生コマンドが指定するタイムスロット数の大きさをmiとする。また、このときの、1タイムスロット当たりにおける、電子タグからの応答が成功する確率をPSi、電子タグからの応答が無い確率をPFiとする。
【0086】
さらに、全電子タグ個数、より正確には、活性化コマンドを受信できた電子タグ個数をNとし、乱数生成コマンドを発行した際、個々の電子タグがコマンドを受信成功する確率をQSiとし、タイムスロットが割り振られた電子タグが応答要求コマンドに対して、コリジョンが起きなければ応答に成功する確率をqSiとし、応答しない確率をqFiとする。
【0087】
なお、確率qSi、qFiは、応答要求コマンド、また、個々の電子タグごとで異なるので、一般的には、qSi=qSi(α,j)、qFi=qFi(α,j)である。ここで、αは電子タグを区別するための番号であり、jは乱数生成コマンド発行後の、j番目の要求コマンドに対するものであることを意味する。また、確率QSiに関しても同様で、一般的には、QSi=QSj(i≠j)は成立しない。しかし、このような状況では、計算することが極めて困難であるため、次の仮定を行なう。
【0088】
「qSi=qSi(α,j)、qFi=qFi(α,j)、及び、QSiは、個々の電子タグによらず、ある平均的な値として扱え、少なくとも2回の乱数生成コマンドを発行する期間においては一定である。」
上記仮定においては、3回のタイムスロットにおいては、i、α、jを外すことができ
、また、QSiに関しては、iを外すことができる。したがって、以下省略し、この仮定の下、1タイムスロットあたりの電子タグからの応答が成功する確率PSi、電子タグからの応答が無い確率PFiは、それぞれ、(6)式、(7)式のようにかける。
【0089】
【数6】
【0090】
【数7】
環境による通信エラー等が発生し得る環境を想定し、この対策を実施した場合の3つの動作例のうち1つ目の例では、リーダ・ライタは、ステップF003の乱数生成コマンド発行前に、直接IDを指定することにより、通信コネクションに成功し電子タグのIDを把握した電子タグのいくつかと再度個別に通信するか、もしくは、あらかじめIDの判明した電子タグを通信対象となっている電子タグ集団の中にいくつか配置しておき、これらの電子タグのいくつかと個別に通信を行う。
【0091】
このときの応答結果である、個別の電子タグに通信した全回数に対する電子タグの応答に成功した回数の比率を、コリジョンが起きなければ応答に成功する確率qSの値とみなし、個別の電子タグに通信した全回数に対する電子タグの応答が無かった回数の比率を、コリジョンが起きなければ応答しない確率qFの値とみなす。
【0092】
また、i番目の乱数発生コマンド後、タイムスロット数の回数分応答要求コマンドを発行したときの、電子タグと通信に成功したタイムスロットの回数をnSi、応答がなかったタイムスロットの回数をnFiとすると、i番目に乱数発生コマンドを発行した際、そのコマンドを実際に受信できた電子タグ個数の推定値nEiは、(6)式、(7)式から、(8)式、(9)式が近似的に成り立つと考えられる。
【0093】
【数8】
【0094】
【数9】
よって、(8)式から、上記連立方程式において唯一の未知数である電子タグ個数の推定値nEiが求まる。等号が成立しない場合は、最も両辺の差の絶対値が小さくなるものを選択すれば良い。なお、電子タグ個数の推定値nEiの求め方は、(8)式と(9)式の両辺の差の絶対値が、それぞれ最も同時に小さくなるものを選択しても良い。
【0095】
電子タグ個数の推定値nEiが求まったので、次に乱数発生コマンドを発行したとき、通信対象となる電子タグ個数の推定値は、前回のリーダ・ライタコマンド群の通信結果から、nSi個の電子タグと通信できたことを考慮すると、(nEi−nSi)個と推定できる。
【0096】
以上のことから、次に乱数生成コマンドを発行するときのスロット数mi+1は、電子タグ個数の推定値(nEi−nSi)と(6)式から、単位時間当たりの電子タグの応答成功回数が最大となるよう選択すればよく、コマンド制御部120は、これを計算してi+1番目のステップF003にてタイムスロット数をmi+1の値として乱数生成コマンドを発行する。
【0097】
なお、時間因子を特に考慮しなくて良いならば、コマンド制御部120が乱数生成コマンド時に指定するスロット数mi+1の具体的な値は、(6)式から、1タイムスロット当たりにおける電子タグからの応答が成功する確率PSの最大となる条件である、(1−qF)×(nEi−nSi)となる。
【0098】
しかし、実際には、各コマンドによりビット長や、リーダ・ライタ間の送受信タイミングが異なるため、次に乱数生成コマンドを発行するときのスロット数は電子タグ個数の推定値そのものにはならないが、これらは、エアインタフェースや、リーダ・ライタ固有の数値なので、上記方法と同様の計算から算出できる。
【0099】
以降の輻輳制御に関するステップF003からF005の処理においては、上記操作を繰り返す。
【0100】
環境による通信エラー等が発生し得る環境を想定し、この対策を実施した場合の3つの動作例のうち2つ目の例では、下記仮定において、平均値として扱える期間を、少なくとも3回の乱数生成コマンドを発行する期間においては成立することを前提とする。
【0101】
「qSi=qSi(α,j)、qFi=qFi(α,j)、及び、QSiは、個々の電子タグによらず、ある平均的な値として扱え、少なくとも2回の乱数生成コマンドを発行する期間においては一定である。」
この前提のもと、コマンド制御部120は、ステップF003からF005の一連の処理における最初の2回は、乱数生成コマンド発行時に、タイムスロット数として適当な値、例えば50等を選択する。
【0102】
2回目以降の輻輳制御に関するステップF003からF005の処理については下記のとおりである。
【0103】
まず、リーダ・ライタは、通信状況推測部にて、電子タグ個数と通信エラーの発生確率の推定をおこなう。推定方法は下記のとおりである。
【0104】
i番目の乱数発生コマンド後、タイムスロット数の回数、応答要求コマンドを発行したときの、電子タグと通信に成功したタイムスロットの回数をnSi、応答がなかったタイムスロットの回数をnFiとすると、i番目と(i+1)番目に乱数生成コマンドを発行した際、そのコマンドを実際に受信できた電子タグ個数の推定値nEiとnEi+1は、(6)式、(7)式から、(10)式〜(13)式が近似的に成り立つ。
【0105】
【数10】
【0106】
【数11】
【0107】
【数12】
【0108】
【数13】
(10)式〜(13)式において、左辺は実測値とタイムスロット数を代入するため、また、右辺のタイムスロット数miとmi+1はリーダ・ライタのコマンドパラメータで既知であるため、未知数は4つであり、これら4つの方程式から4つの未知数qS、qF、nEi、nEi+1を求めることができる。なお、等号が成立しない場合は、4式で同時に、両辺の差の絶対値が最も小さくなるものを選択すれば良い。
【0109】
推定値qS、qF、nEi、nEi+1が求まったので、次に乱数生成コマンドを発行したとき、通信対象となる電子タグ個数の推定値は、前々回と前回のリーダ・ライタコマンド群の通信結果から、(nSi+nSi+1)個の電子タグと通信できたので、(N−nSi−nSi+1)×QS個、と推定できる。なお、NとQSは、nEi=N×QS,nEi+1=(N−nEi)×QSから算出できる。
【0110】
したがって、コマンド制御部は、ステップF003の処理における、i+2番目の乱数発生コマンドを発行するとき、タイムスロット数mi+2を、電子タグ個数の推定値(N−nSi−nSi+1)×QSと(6)式から、単位時間当たりの電子タグの応答成功回数が最大となるよう選択する。
【0111】
具体的には、時間因子を特に考慮しなくて良いならば、(6)式から、1タイムスロット当たりにおける電子タグからの応答が成功する確率PSの最大となる条件、すなわち、
mi+2=(N−nSi−nSi+1)×QS×(1−qF)
をタイムスロット数として選択する。
【0112】
なお、実際には、各コマンドによりビット長や、リーダ・ライタ間の送受信タイミングが異なるため、次に乱数生成コマンドを発行するときのスロット数は、電子タグ個数の推定値そのものにはならないが、これらは、エアインタフェースや、リーダ・ライタ固有の数値なので、上記方法と同様の計算から算出できる。
【0113】
次に、環境による通信エラー等が発生し得る環境を想定し、この対策を実施した場合の3つの動作例のうち3つ目の例について以下に説明する。
【0114】
2回目以降のステップF003からF005の処理において、ステップF003の乱数生成コマンド発行前に、リーダ・ライタは、通信状況推測部123にて、EMアルゴリズムを用いることにより、電子タグ個数と通信エラーの発生確率の時間推移の推定をおこなう。推定方法は下記のとおりである。
【0115】
本来、活性化コマンドを受信できた電子タグ個数、乱数生成コマンドを発行した際、個々の電子タグがコマンドを受信成功する確率、タイムスロットが割り振られた電子タグが応答要求コマンドに対して、コリジョンが起きなければ応答に成功する確率、応答するが、コリジョンが無くてもデータが破損する確率、応答しない確率がわかっていれば、タイムスロット全体における電子タグの応答結果の組み合わせ、以下、これを、出力シンボル系列yと呼ぶと、この生成確率は、直接計算することは困難であるが、モンテカルロシミュレーションといった数値計算により算出することができる。
【0116】
そこで、通信状況推測部123では、受信できた電子タグ個数や通信エラーの発生確率等を適当な値に設定し、この条件のもと実際に観測された出力シンボル系列yを実現する確率を求め、次に受信できた電子タグ個数や通信エラーの発生確率等の値を適当に変更して、再度観測された出力シンボル系列yを実現する確率を求め、より実現する確率の高い、受信できた電子タグ個数や通信エラーの発生確率等の値を選択し、これを繰り返すことにより推測値の精度を高める。
【0117】
具体的には、活性化コマンドを受信できた電子タグ個数、乱数生成コマンドを発行した際、個々の電子タグが、コマンドを受信成功する確率、タイムスロットが割り振られた電子タグが応答要求コマンドに対して、コリジョンが起きなければ応答に成功する確率、応答するが、コリジョンが無くてもデータが破損する確率、応答しない確率をモデルパラメータθとして、EMアルゴリズムによりθの最尤推定値を求める。
【0118】
まず、出力シンボル系列yの生成確率P(y)は、次式で与えられる。
【0119】
【数14】
ここで、xは、出力シンボル系列yの背後にある完全な確率変数である。これは、例えば、出力シンボル系列yが電子タグの応答があったか、なかったかといった単純な観測値であるのに対して、xはどの電子タグが応答したかといった、観測では不明な条件をもデータとしてもつ。
【0120】
次に、EMアルゴリズムで用いる関数Qを(15)式のように定義する。
【0121】
【数15】
以下、通信状況推測部のEMアルゴリズムによる動作例を、図6のフローチャートに沿って説明する。
【0122】
まず、モデルパラメータθ0を適当にきめる(ステップS001)。次に、別のモデルパラメータθを適当にきめ、θ0とθと観測された出力シンボル系列yを(15)式に代入し、これを計算する(ステップS002)。モデルパラメータθの値を変えていき、関数Qが最大となるθ*を求め、これを新しいモデルパラメータとする(ステップS003)。関数Qが収束するまで、ステップS002とステップS003の計算を繰り返す(ステップS004)。上記アルゴリズムにより、最尤推定値θが求まる。通信状況推測部123は、電子タグの個数や通信のエラー発生率といった電子タグとの通信状況の推測値をθから得る。
【0123】
コマンド制御部120は、ステップF003の乱数生成コマンド発行時に、タイムスロット数を決定する際、最尤推定値θから得たコリジョンが起きなければ応答に成功する確率、応答するがコリジョンが無くてもデータが破損する確率、応答しない確率の各平均値を、次のステップF003からF005の一連の処理において発生する確率とみなし、これらの数値のもと、全ての電子タグが応答成功する回数を算出し、この中で、単位当りの応答成功回数が最も大きいタイムスロット数mを選択する。
【0124】
なお、上記EMアルゴリズムの推定において、計算量を減らすため、後述する、輻輳制御における第2の実施の形態と同様、乱数生成コマンドを発行した際、個々の電子タグがコマンドを受信成功する確率、タイムスロットが割り振られた電子タグが応答要求コマンドに対して、コリジョンが起きなければ応答に成功する確率、応答するが、コリジョンが無くてもデータが破損する確率、応答しない確率を、それぞれ、ある平均的な値に置き換えても良い。
【0125】
また、推定における計算量を減らすため、活性化コマンドを受信できた電子タグ個数、タイムスロットが割り振られた電子タグが応答要求コマンドに対して応答しない確率に関して、これらの対数に対して等間隔にサンプリングしても良い。この理由は、(1)式において、nが十分大きいとき、x=nn/mとおくと、(1)式は、(16)式のように書ける。
【0126】
【数16】
したがって、PSに関して等間隔にサンプリングすると、x軸に関しては指数的に変化する。このため、電子タグ個数の対数に関して等間隔にサンプリングしても、PSに対する精度が落ちなくて済む。一方、対数に関して等間隔にサンプリングするため、つまり、指数的にサンプリングするため、サンプリング量は極めて少なくて済む。また、タイムスロットが割り振られた電子タグが応答要求コマンドに対して応答しない確率は、(1)式においての極大値の条件がm=nであったのに対し、(6)式では、m=n(1−qF)となっている。これと、先ほどと同様な議論から(1−qF)の対数に関してサンプリングすることにより、少ないサンプル数で、推定精度の低下を防ぐことができる。
【0127】
なお、通信エラー等が発生し得る環境を想定し、この対策を実施した場合の3つの動作例に関する輻輳制御方法を適用しつづけると、時に局所的な最適状態になることがある。これを防ぐためには、ある適当なタイミングで、最適ではないタイムスロットを設定することである。具体的には、(1)式、(2)式から、最適と推測されるタイムスロット数の数倍(4倍から8倍)のタイムスロットを発行すればよい。
【0128】
また、本3つの動作例においては、コマンド制御、及び、電子タグとの通信状況の推測をリーダ・ライタが行ったが、リーダ・ライタの外部に接続されるコンピュータが、コマンド制御、または、電子タグとの通信状況を推測しても良い。さらに、これらの動作をコンピュータに実行させるためのプログラムにも適用できる。
【0129】
したがって、本実施の形態によれば、前記のような構成および処理により、電子タグと、リーダ・ライタの無線通信において、無線通信状況を推測し、この推測した無線通信状況に合わせて、最適なリーダ・ライタのコマンドを動的に変更しながら発行することにより、効率的な無線通信を実現することができる。
【0130】
(第2の実施の形態)
図7は、本発明の第2の実施の形態の電子タグとリーダ・ライタとサーバとデータベースにより構成される無線システムの構成例を示す概念図である。この図7における無線システムは、リーダ・ライタ100,102と、複数個(図では8個の例)の電子タグ210〜213,220〜223と、リーダ・ライタ制御サーバ300と、送受信履歴格納DB400から構成される。
【0131】
本実施の形態では、複数のアンテナ111,112、113,114が接続された複数のリーダ・ライタ101,102が、リーダ・ライタ制御サーバ300を介して、共通の送受信履歴格納DB400に電子タグ210〜213,220〜223との通信結果を記録する。送受信履歴格納DB400の情報を相互に参照可能とすることで、リーダ・ライタは、その他のリーダ・ライタの通信記録を利用して、コマンド制御を最適化する。
【0132】
以下に、本構成例について説明する。
【0133】
図7におけるリーダ・ライタ101は、このリーダ・ライタ101のアンテナ111と112を用いて、電子タグ210〜213、あるいは、電子タグ220〜223と電波によりデータを送受信する。また、リーダ・ライタ102は、このリーダ・ライタ102のアンテナ113と114を用いて、電子タグ210〜213、あるいは、電子タグ220〜223と電波によりデータを送受信する。500から503、510から513は電子タグの貼付対象物であり、500から503は同類であり、510から513は同類だが、500から503と510から513は異なる物質である。
【0134】
送受信履歴格納DB400は、複数のリーダ・ライタ101,102と複数の電子タグ210〜213,220〜223の送受信に関する記録を保存する。リーダ・ライタ制御サーバ300は、リーダ・ライタ101,102、及び、受信履歴格納DB400を制御するサーバであり、リーダ・ライタ101,102から受信した通信に関するデータと受信履歴格納DB400から取り出した過去における1個以上のリーダ・ライタと電子タグ集団との通信に関するデータを統計分析する。その統計データを送受信履歴格納DB400に格納する。また、統計分析されたリーダ・ライタと電子タグ間の通信に関するデータから有用な統計データを抽出し、リーダ・ライタに送信する。
【0135】
図8は、リーダ・ライタ制御サーバのハードウェア構成を示すブロック図である。図8において、リーダ・ライタ制御サーバ300のハードウェア構成は、クラスター分析部401、主成分分析部402、メモリ部403、リーダ・ライタコマンド制御指示部404、リーダ・ライタ通信記録解析部405、リーダ・ライタ接続インタフェース部406、データベース接続インタフェース部407から構成される。
【0136】
クラスター分析部401は、送受信履歴格納DB400とのデータベース接続インタフェース部407から、過去の通信記録を取得し、これをクラスター分析により電子タグとの通信状況に関するデータ配列群をクラスタリングする。ここで、通信状況に関するデータ配列とは、リーダ・ライタと電子タグ間の通信結果に関する時間推移、リーダ・ライタが通信結果を元に推測した、通信している電子タグの個数や通信成功確率や通信エラー発生確率などの時間推移を記録したデータ配列である。主成分分析部402は、クラスター分析部401により分類された各クラスターにおける、電子タグとの通信時の使用したアンテナ等、通信制御パラメータに関するデータ配列の中から、頻度の高い順にデータをまとめておく。メモリ部403は、クラスター分析部401と主成分分析部402の解析結果を記録する。
【0137】
リーダ・ライタ接続インタフェース部406はリーダ・ライタとの接続インタフェースである。リーダ・ライタ通信記録解析部405は、対象としているリーダ・ライタと電子タグ間の通信記録と送受信履歴格納DB400の情報と、メモリ部403に記録されたクラスター分析と主成分分析の解析結果から、現在のリーダ・ライタと電子タグ間におけるクラスターをいくつか選択する。リーダ・ライタコマンド制御指示部404は、リーダ・ライタ通信記録解析部405の結果を受けて、選択されたクラスターの中で、現在のリーダ・ライタの通信に参考になるクラスターを選択し、このクラスターにおけるリーダ・ライタ制御パラメータとグループ内での平均化された通信に関するデータ配列を、リーダ・ライタにリーダ・ライタ接続インタフェース部406を通じて送信する。
【0138】
図9は、リーダ・ライタ制御サーバのクラスター分析部におけるフローチャートである。図10は、リーダ・ライタ通信記録解析部とリーダ・ライタコマンド制御指示部におけるフローチャートである。
【0139】
クラスター分析部401では、通信状況に関するデータ配列群を、以下の基準で配列を分断し部分配列を作成する。この基準ごとに、部分配列に関してクラスタリングする。部分配列の分断する基準は、1つは、図4におけるステップF001からF005までのループ処理において発生する、ある電子タグ集団に関する通信全体の通信状況に関するデータ配列を、1つの部分配列とする。2つ目は、図4におけるステップF002からF005までのループ処理において発生する通信状況に関するデータ配列を、部分配列の分断基準とする。3つ目は、ステップF003からF005までのループ処理において発生する通信状況に関するデータ配列を、部分配列の分断基準とする。
【0140】
したがって、1つのデータ配列群から、3つの分断基準を元に作成された、3つの部分データ配列群に対してそれぞれ、クラスター分析して類似したもの同士を1つのクラスターにまとめていく。以下に3種類の部分データ配列群に対するクラスター分析の実行手順を、図9のフローチャートに沿って説明する。
【0141】
まず、クラスター分析部401は、分断後の個々のデータ配列を1つのクラスターとして扱う(ステップS005)。次に、非類似度行列から、最も類似性の高い2つのクラスターを融合して、1つのクラスターを作成する(ステップS006)。新規に作成したクラスターと他のクラスターとの非類似度行列を計算し、非類似度行列を更新する(ステップS007)。クラスターをまとめた結果、クラスターが一つになったら終了し、1つでなければステップ6を繰り返す(ステップS008,S009)。ここで、図9のステップS006とS007における非類似度の計算方法には、ユークリッド平方距離によるウォード法を用いる。なお、他の非類似度の計算方法でも良い。
【0142】
主成分分析部402では、クラスター分析部401において分類された各グループにおいて、通信状況に関するデータ配列を発生させたときの、リーダ・ライタの各種制御パラメータや、リーダ・ライタと電子タグ間の通信における環境パラメータ、例えば、電子タグの貼付対象物の情報を格納したデータ配列群について、出現頻度の高い順にまとめておく。
【0143】
以上が、リーダ・ライタ制御サーバ300のクラスター分析による統計処理方法である。次に、本発明にかかるリーダ・ライタ制御サーバ300の、リーダ・ライタからリーダ・ライタの通信データを受信し、受信データをもとにリーダ・ライタが必要とする統計データを選択し、これをリーダ・ライタに送信するまでの一連の動作例を、図10のフローチャートに沿って説明する。
【0144】
まず、リーダ・ライタ通信記録解析部405で、リーダ・ライタと電子タグ集団との通信に関するデータを、対象としているリーダ・ライタからリーダ・ライタ接続インタフェース部406を通じて取得する(ステップF011)。
【0145】
リーダ・ライタ通信記録解析部405は、この通信に関するデータから、対象としているリーダ・ライタの現在のコマンド制御が、どのループ処理の階層における制御なのかを判定する。ここで、ループ処理の階層とは、図4のフローチャートにおけるループ処理の開始位置が、処理ステップF001なのか、それともF002なのか、それともF003なのかである。リーダ・ライタ制御サーバ300はループ処理の階層の判定後、メモリ部403から、クラスター分析の結果を取得する。ここで、クラスター分析の結果は、通信状況に関する部分配列の基準から3種類存在するが、リーダ・ライタ通信記録解析部405は、リーダ・ライタの現在のコマンド制御から判定した階層以上のループ処理における部分配列に関するクラスター分析の結果を選択する(ステップF012)。
【0146】
また、リーダ・ライタ通信記録解析部405は、対象となっているリーダ・ライタの通信記録の送受信履歴格納DB400への登録回数を分析し、登録回数により処理を振り分ける(ステップF013,I005)。登録回数が多い場合は、クラスター分析により分類したクラスターに関して、中分類のクラスターを採用する。この中分類のクラスターの中で、対象としているリーダ・ライタの出現回数の多いクラスターを、上位からいくつか抽出する(ステップF014)。一方、登録回数が少ない場合は、中分類のクラスターを採用すると、類似したクラスターの存在する可能性が低いことと、統計データとしての信頼性が低いため、大分類のクラスターを1つ採用する(ステップF015)。
【0147】
リーダ・ライタコマンド制御指示部404では、リーダ・ライタ通信記録解析部405の結果と、リーダ・ライタのコマンド制御の状況に応じて、リーダ・ライタへ送信するデータの内容を決める。
【0148】
リーダ・ライタコマンド制御指示部404は、対象としているリーダ・ライタのコマンド制御が輻輳制御に関するものである場合、タイムスロット数の制御を行うので、この制御に必要な、通信状況に関するデータ配列、例えば、電子タグからの応答が成功する確率や、電子タグからの応答が無い確率の時間推移の推定に役立つクラスターを採用する(ステップI006,F016)。
【0149】
具体的には、対象としているリーダ・ライタの現在までの通信状況に関するデータ配列と、採用された各クラスター内で平均化した通信状況に関するデータ配列の類似度を評価し、最も類似性の高いクラスターを採用する。ここで、類似度の評価には、例えば、2つの配列のユークリッド距離の大小関係で評価すればよい。
【0150】
一方、対象としているリーダ・ライタのコマンド制御が輻輳制御に関するものではない場合、リーダ・ライタコマンド制御指示部404は、リーダ・ライタ、および、通信環境に関する静的なパラメータの出現回数が高く、かつ、クラスター内で平均化した通信状況データ配列が安定しているクラスターを採用する(ステップF017)。ここで、安定した通信状況データ配列とは、送受信時のデータエラーの発生確率が低く、かつ、これらの確率の時間変動が小さい、通信状況に関するデータ配列のことである。
【0151】
クラスターが決まったら、リーダ・ライタコマンド制御指示部404は、このクラスターにおけるリーダ・ライタ制御パラメータとグループ内での平均化された通信に関するデータ配列を、リーダ・ライタにリーダ・ライタ接続インタフェース部406を通じて送信する(ステップF018)。
【0152】
以上で、一連の処理が終了する。
【0153】
リーダ・ライタ、および、通信環境に関する静的なパラメータの出現回数が高いクラスターを採用する理由は、統計データとしての信頼性を高めるためである。なお、静的なパラメータとは、リーダ・ライタ自身では変更することのできないパラメータのことである。例えば、リーダ・ライタに関する静的なパラメータに関しては、リーダ・ライタ自身であり、一方、通信環境に関する静的なパラメータには、例えば電子タグの貼付対象物や、通信対象となっている電子タグのアンテナ形状などである。ただし、電子タグの貼付対象物や電子タグのアンテナ形状等は、あらかじめ登録されているか、あるいは、リーダ・ライタと電子タグが通信したとき、電子タグのIDとこれらのパラメータが紐づいている場合使用できる。
【0154】
クラスター内で平均化した通信状況データ配列が安定しているクラスターを採用する理由は、クラスターを採用する目的が、安定した通信を実現するリーダ・ライタの設定パラメータを選択することにあるからである。具体的には、通信状況のデータ配列が安定しているクラスターのリーダ・ライタの設定パラメータに関するデータ配列から、発生頻度が高いものを選択する。この方法で、通信が安定しているため効率的な無線通信の実現が容易と考えられる、無線チャネルやリーダ・ライタのアンテナ、リーダ・ライタ制御コマンドや活性化コマンドの発行タイミングを決めるループ回数の閾値などを、リーダ・ライタが選択できるよう情報を与える。
【0155】
リーダ・ライタは、リーダ・ライタ制御サーバ300から選択したクラスターの統計データを受信し、この統計データを元に、リーダ・ライタのコマンド制御を行う。例えば、輻輳制御ならば、リーダ・ライタのこれまでの通信状況のデータ配列とクラスターの通信状況データ配列の平均値とを比較し、類似性を評価し、クラスターの通信状況データ配列の平均値において最もマッチングした部分配列を抜き出し、その抜き出した部分配列以降の部分配列を、未来におけるリーダ・ライタの通信状況データ配列であると仮定して、ステップF003の乱数生成コマンド発行時のタイムスロット数を指定する。
【0156】
なお、クラスター内部における通信状況データ配列は、時間推移によるリーダ・ライタと電子タグとの送受信の結果のみではなく、コマンド発行回数による送受信の結果でもよい。また、これらのデータ配列を、フーリエ変換したものでもよい。また、このフーリエ係数に関して、ある閾値以下のフーリエ係数を削除して、データ圧縮しても良い。
【0157】
また、リーダ・ライタ制御サーバ300、または、送受信履歴格納DB400の機能をリーダ・ライタに実装してもよい。
【0158】
また、リーダ・ライタと電子タグとの送受信結果は時間と共に増大していくため、いつかデータベースの容量が足りなくなる。これを防ぐために、クラスター分析用の通信状況に関するデータ配列群に関しては、最も類似性の強い2つのデータ配列を抽出し、これらの平均値をとり、これを1つのデータ配列とする。ただし、このデータ配列が2つのデータ配列から作成されたことを表す統計情報を残しておく。この作業を繰り返すことにより、データの増大による容量オーバーを防ぐ。
【0159】
したがって、本実施の形態によれば、前記のような構成および処理により、前記第1の実施の形態と同様に、無線通信状況を推測し、この推測した無線通信状況に合わせて、最適なリーダ・ライタのコマンドを動的に変更しながら発行することにより、効率的な無線通信を実現することができる。
【0160】
(第3の実施の形態)
図11は、本発明の第3の実施の形態の電子タグとリーダ・ライタとリーダ・ライタの通信対象となっている電子タグの個数を観測する外部装置により構成される無線システムの構成例を示す概念図である。この図11における無線システムは、リーダ・ライタ103と、電子タグ集団700と、リーダ・ライタ制御サーバ301と、物品重量情報管理DB410、重量計600から構成される。
【0161】
本実施の形態では、リーダ・ライタ103は、このリーダ・ライタ103のアンテナ115を用いて、物に貼り付けられた電子タグ集団700と電波によりデータを送受信する。また、リーダ・ライタ制御サーバ301は、リーダ・ライタ103、物品重量情報管理DB410、電子タグの個数を観測する外部装置である重量計600と接続し、これらを制御する。
【0162】
物品重量情報管理DB410には、物品の個品に関する重量を格納しておき、また、電子タグのIDと電子タグ貼付対象物である物品とを紐付けておく。リーダ・ライタ103は、重量計600の上に乗っている電子タグ集団700の電子タグの一つと通信し、IDを取得すると、これをリーダ・ライタ制御サーバ301に送信する。リーダ・ライタ制御サーバ301は、このIDを検索キーとして、物品重量情報管理DB410から貼付対象物の重さ情報を取得する。次にリーダ・ライタ制御サーバ301は、重量計600を用いて電子タグ集団700とその貼付対象物全体の重さを計量する。この全体の重さを、物品重量情報管理DB410から取得した単品の重さで割ることにより、リーダ・ライタ制御サーバ301は、電子タグ集団700の個数を推定する。リーダ・ライタ制御サーバ301はこの電子タグ個数の推定値をリーダ・ライタ103に送信する。リーダ・ライタ103は、この受信データである電子タグ個数の推定値を、ステップF003の乱数生成コマンドにおけるタイムスロット数の上限とする。
【0163】
なお、前記重量計600は、電子タグの個数を観測する外部装置の一例であり、カメラを用いた画像分析による手法により電子タグの個数を推定してもよい。また、電子タグ集団のある電子タグのメモリに、電子タグ個数を書き込んでおき、リーダ・ライタはその情報から電子タグの個数を把握してもよい。
【0164】
また、外部装置から把握した電子タグ個数は、タイムスロット数の上限値としてだけではなく、電子タグとの通信終了条件に用いてもよい。
【0165】
したがって、本実施の形態によれば、前記のような構成および処理により、前記第1の実施の形態と同様に、無線通信状況を推測し、この推測した無線通信状況に合わせて、最適なリーダ・ライタのコマンドを動的に変更しながら発行することにより、効率的な無線通信を実現することができる。
【0166】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【0167】
本発明は、電子タグとリーダ・ライタとの無線通信におけるリーダ・ライタのコマンド制御技術に関し、特に、コマンド制御方法、このコマンド制御方法を実行させるためのプログラム、このコマンド制御方法を実行するリーダ・ライタ、およびコンピュータに利用可能である。特に、通信環境の変化が激しく、かつ高速な通信が要求されるゲートアンテナでの複数の電子タグの一括読取といった状況で、環境変化に応じて最適なコマンド制御を行うことにより、高速な通信を実現可能にする。
【図面の簡単な説明】
【0168】
【図1】本発明の第1の実施の形態の電子タグとリーダ・ライタにより構成される無線システムの構成例を示す概念図である。
【図2】本発明の第1の実施の形態の無線システムにおいて、リーダ・ライタのハードウェア構成を示すブロック図である。
【図3】本発明の第1の実施の形態の無線システムにおいて、リーダ・ライタのコマンド名とその機能説明図である。
【図4】本発明の第1の実施の形態の無線システムにおいて、リーダ・ライタのコマンド制御に関するフローチャートである。
【図5】本発明の第1の実施の形態の無線システムにおいて、リーダ・ライタの輻輳制御に関するコマンドシーケンス図である。
【図6】本発明の第1の実施の形態の無線システムにおいて、EMアルゴリズムのフローチャートである。
【図7】本発明の第2の実施の形態の電子タグとリーダ・ライタとサーバとデータベースにより構成される無線システムの構成例を示す概念図である。
【図8】本発明の第2の実施の形態の無線システムにおいて、リーダ・ライタ制御サーバのハードウェア構成を示すブロック図である。
【図9】本発明の第2の実施の形態の無線システムにおいて、クラスター分析部におけるフローチャートである。
【図10】本発明の第2の実施の形態の無線システムにおいて、リーダ・ライタ通信記録解析部とリーダ・ライタコマンド制御指示部におけるフローチャートである。
【図11】本発明の第3の実施の形態の電子タグとリーダ・ライタとリーダ・ライタの通信対象となっている電子タグの個数を観測する外部装置により構成される無線システムの構成例を示す概念図である。
【図12】一般的なAloha方式における、複数の電子タグとリーダ・ライタ間の通信の概要図である。
【図13】一般的な、電子タグ個数が50個のときの、タイムスロット数と、タイムスロット当たりの通信成功する確率、衝突が発生する確率、電子タグからの応答がない確率をグラフ化したものである。
【符号の説明】
【0169】
100,101,102,103,104…リーダ・ライタ
110,111,112,113,114,115…アンテナ
120…コマンド制御部
121…無線インタフェース部
122…受信結果解析部
123…通信状況推測部
124…メモリ部
125…外部インタフェース部
200〜203,210〜213,220〜223,230〜232…電子タグ
300,301…リーダ・ライタ制御サーバ
400…送受信履歴格納DB
410…物品重量情報管理DB
401…クラスター分析部
402…主成分分析部
403…メモリ部
404…リーダ・ライタコマンド制御指示部
405…リーダ・ライタ通信記録解析部
406…リーダ・ライタ接続インタフェース部
407…データベース接続インタフェース部
500〜503,510〜513…貼付対象物
600…重量計
700…電子タグ集団
800,805…応答要求コマンド
801〜804…乱数生成コマンド
810〜812…電子タグからの応答
【特許請求の範囲】
【請求項1】
電子タグと前記電子タグの通信制御を行うリーダ・ライタとの通信における動的なリーダ・ライタのコマンド制御方法であって、
前記電子タグと前記リーダ・ライタ間の過去の通信データから、前記電子タグと前記リーダ・ライタ間の現在の通信状況を推測する第1の工程と、
新規に発行可能な複数のリーダ・ライタのコマンド群の中から、前記第1の工程で得た推測結果を元に、単位時間当たりの前記電子タグからの受信成功回数の期待値が最大となる前記リーダ・ライタのコマンド群を予測し、このコマンド群を前記リーダ・ライタが新規に発行するコマンド群として選択する第2の工程と、を有することを特徴とするリーダ・ライタのコマンド制御方法。
【請求項2】
請求項1記載のリーダ・ライタのコマンド制御方法において、
前記第1の工程は、
通信に成功したため電子タグのIDを把握した電子タグのいくつかと再度個別に通信し、このときの電子タグからの応答結果から、
通信対象となっている電子タグ集団の中の個々の電子タグが、リーダ・ライタのコマンドに対して、応答に成功する確率、データ破損により応答に失敗する確率、応答しない確率を推定することを含むことを特徴とするリーダ・ライタのコマンド制御方法。
【請求項3】
請求項1記載のリーダ・ライタのコマンド制御方法において、
前記第1の工程は、
リーダ・ライタの通信対象となる電子タグ集団の中に、あらかじめIDが既知の電子タグをいくつか配置しておき、これらの電子タグのいくつかと個別に通信しておき、このときの電子タグの応答結果から、
通信対象となっている電子タグ集団の中の個々の電子タグが、リーダ・ライタのコマンドに対して、応答に成功する確率、データ破損により応答に失敗する確率、応答しない確率を推定することを含むことを特徴とするリーダ・ライタのコマンド制御方法。
【請求項4】
請求項1記載のリーダ・ライタのコマンド制御方法において、
前記第1の工程は、
通信対象の電子タグの個数が不明な状況で、リーダ・ライタが複数電子タグと通信するための輻輳制御用コマンドを発行するとき、
リーダ・ライタのコマンドで制御するタイムスロット全体における、電子タグとの通信が成功する回数と応答データが破損して通信が失敗する回数と電子タグが応答しない回数の期待値を、タイムスロット数と通信対象の電子タグの個数を変数とする3つの関数として確率計算から導出しておき、
過去の通信結果から、タイムスロット全体における電子タグとの通信が成功する回数と電子タグの応答データが破損して通信が失敗する回数と電子タグが応答しない回数を計測しておき、これら3つの計測値と輻輳制御用コマンドのパラメータで決まるタイムスロット数を、前記3つの関数に代入して連立方程式を解くことにより、
通信対象となっている電子タグの未知な個数を推定することを含むことを特徴とするリーダ・ライタのコマンド制御方法。
【請求項5】
請求項1記載のリーダ・ライタのコマンド制御方法において、
前記第1の工程は、
通信対象の電子タグの個数が不明で、かつ、コリジョンに起因するものではない個々の電子タグとの通信における通信エラーが発生する状況で、リーダ・ライタが複数の電子タグと通信するための輻輳制御用コマンドを発行するとき、
コリジョンに起因するものではない、個々の電子タグとリーダ・ライタ間の通信に関する、送受信に成功する確率、応答データが破損して通信が失敗する確率、電子タグが応答しない確率を、一般的には、各電子タグ・各時刻において異なる値を、ある一定期間の間、ある平均的な値に、それぞれ置き換えることとし、
リーダ・ライタのコマンドで制御するタイムスロット全体における、電子タグとの通信が成功する回数と応答データが破損して通信が失敗する回数と電子タグが応答しない回数の期待値を、
タイムスロット数と通信対象の電子タグの個数と、コリジョンに起因するものではない、個々の電子タグとリーダ・ライタ間の通信に関する、送受信に成功する確率、応答データが破損して通信が失敗する確率、電子タグが応答しない確率を5つの変数とする3つの関数として確率計算から導出しておき、
輻輳制御のためタイムスロットを割り当てるリーダ・ライタのコマンドを発行し、各タイムスロットにおいて実際に観測される電子タグの応答が成功する回数と電子タグの応答データが破損する回数と電子タグが応答しない回数を計測し、これらの計測値と、輻輳制御用コマンドのパラメータで決まるタイムスロット数を、前記3つの関数に代入して連立方程式を解くことにより、
未知の通信対象の電子タグの個数と、コリジョンに起因するものではない個々の電子タグとの通信エラーの発生確率を推定することを含むことを特徴とするリーダ・ライタのコマンド制御方法。
【請求項6】
請求項1記載のリーダ・ライタのコマンド制御方法において、
前記第1の工程は、
電子タグとの通信結果の履歴とリーダ・ライタの発行コマンド履歴から、EMアルゴリズムを用いることにより、現在の通信対象の電子タグの個数と、通信可能状態となっている電子タグの個数を推測し、
現在のコリジョンに起因するものではない、個々の電子タグとリーダ・ライタ間の通信に関する、送受信に成功する確率、応答データが破損して通信が失敗する確率、電子タグが応答しない確率に、それぞれEMアルゴリズムから求めた過去の最尤度の値を当てはめることを含むことを特徴とするリーダ・ライタのコマンド制御方法。
【請求項7】
請求項1記載のリーダ・ライタのコマンド制御方法において、
前記第1の工程は、
ある1つのリーダ・ライタの過去の電子タグとの通信結果、あるいは、複数のリーダ・ライタに関する過去の電子タグとの通信結果から、
通信対象である電子タグの個数と、通信可能状態となっている電子タグの個数と、コリジョンに起因するものではない、個々の電子タグとリーダ・ライタ間の通信に関する、送受信に成功する確率、応答データが破損して通信が失敗する確率、電子タグが応答しない確率の時間推移を格納した数値データの配列を、クラスター分析用統計データ配列群としてデータベースにあらかじめ格納しておき、
同時に、クラスター分析用統計データを出力したときの、リーダ・ライタの設置位置や型名、使用したアンテナといったリーダ・ライタに関する各種パラメータと、リーダ・ライタが発行したコマンド及びコマンドの内部パラメータ、そして、通信に成功した電子タグの情報から電子タグに紐付けられた物品の内容が判明した場合はその物品内容を、状態判別用統計データ配列群として、クラスター分析用統計データ配列に紐づけた状態でデータベースにあらかじめ格納しておき、
前記クラスター分析用統計データ配列群をクラスター分析によりクラスタリングし、各クラスターにおけるクラスター分析用統計データ配列群の平均値と標準偏差を算出し、一方、各クラスターにおける個々のリーダ・ライタの出現頻度をあらかじめ算出しておき、
各クラスターの中で、対象となっているリーダ・ライタが出現する割合が高く、かつ、状態判別用統計データ配列群内で、このリーダ・ライタが使用している設定値の出現頻度が高いクラスターをいくつか選択し、
この選択された複数のクラスターの中から、クラスター分析用統計データ配列の各パラメータの統計的な平均値が、対象となっているリーダ・ライタの送受信履歴と最も適合しているクラスターを選択し、
この選択したクラスターの、電子タグの個数と、通信可能状態となっている電子タグの個数と、コリジョンに起因するものではない、個々の電子タグとリーダ・ライタ間の通信に関する、送受信に成功する確率、応答データが破損して通信が失敗する確率、電子タグが応答しない確率のそれぞれの平均値を、
現在のリーダ・ライタの通信対象の電子タグの個数と、通信可能状態となっている電子タグの個数と、コリジョンに起因するものではない、個々の電子タグとリーダ・ライタ間の通信に関する、送受信に成功する確率、応答データが破損して通信が失敗する確率、電子タグが応答しない確率の値とみなすこと含むことを特徴とするリーダ・ライタのコマンド制御方法。
【請求項8】
請求項7記載のリーダ・ライタのコマンド制御方法において、
前記第2の工程は、
リーダ・ライタのアンテナや、伝送速度や無線チャネルといったリーダ・ライタ自身の設定値を決めるリーダ・ライタのコマンドを発行するとき、
前記クラスター分析により分類された各クラスターの中から、対象となっているリーダ・ライタが出現する割合が高いものをいくつか選択し、
この選択された複数のクラスターの中から、クラスター分析用統計データの配列群における、通信可能状態となっている電子タグの個数の時間変動が小さく、その時間平均値が大きいもので、かつ、応答データが破損して通信が失敗する確率、電子タグが応答しない確率の時間変動が小さく、その時間平均値が小さいクラスターを1つ選択し、
前記選択したクラスターにおいて、発生頻度が最も高いリーダ・ライタ自身の設定を決めるリーダ・ライタのコマンド、及びコマンドパラメータを、クラスター分析用統計データ配列群に紐づいた状態判別用統計データ配列群から選択することを含むことを特徴とするリーダ・ライタのコマンド制御方法。
【請求項9】
請求項1記載のリーダ・ライタのコマンド制御方法において、
前記第2の工程は、
リーダ・ライタの通信対象となっている電子タグの個数を観測する外部装置により、電子タグの個数を推測し、
この推測した電子タグの個数から、タイムスロット数の上限を決定することを含むことを特徴とするリーダ・ライタのコマンド制御方法。
【請求項10】
請求項1〜9のいずれか1項に記載のリーダ・ライタのコマンド制御方法における各手順をコンピュータに実行させることを特徴とするプログラム。
【請求項11】
請求項1〜9のいずれか1項に記載のリーダ・ライタのコマンド制御方法における各手順を実行することを特徴とするリーダ・ライタ。
【請求項12】
請求項1〜9のいずれか1項に記載のリーダ・ライタのコマンド制御方法における各手順を実行することを特徴とするコンピュータ。
【請求項1】
電子タグと前記電子タグの通信制御を行うリーダ・ライタとの通信における動的なリーダ・ライタのコマンド制御方法であって、
前記電子タグと前記リーダ・ライタ間の過去の通信データから、前記電子タグと前記リーダ・ライタ間の現在の通信状況を推測する第1の工程と、
新規に発行可能な複数のリーダ・ライタのコマンド群の中から、前記第1の工程で得た推測結果を元に、単位時間当たりの前記電子タグからの受信成功回数の期待値が最大となる前記リーダ・ライタのコマンド群を予測し、このコマンド群を前記リーダ・ライタが新規に発行するコマンド群として選択する第2の工程と、を有することを特徴とするリーダ・ライタのコマンド制御方法。
【請求項2】
請求項1記載のリーダ・ライタのコマンド制御方法において、
前記第1の工程は、
通信に成功したため電子タグのIDを把握した電子タグのいくつかと再度個別に通信し、このときの電子タグからの応答結果から、
通信対象となっている電子タグ集団の中の個々の電子タグが、リーダ・ライタのコマンドに対して、応答に成功する確率、データ破損により応答に失敗する確率、応答しない確率を推定することを含むことを特徴とするリーダ・ライタのコマンド制御方法。
【請求項3】
請求項1記載のリーダ・ライタのコマンド制御方法において、
前記第1の工程は、
リーダ・ライタの通信対象となる電子タグ集団の中に、あらかじめIDが既知の電子タグをいくつか配置しておき、これらの電子タグのいくつかと個別に通信しておき、このときの電子タグの応答結果から、
通信対象となっている電子タグ集団の中の個々の電子タグが、リーダ・ライタのコマンドに対して、応答に成功する確率、データ破損により応答に失敗する確率、応答しない確率を推定することを含むことを特徴とするリーダ・ライタのコマンド制御方法。
【請求項4】
請求項1記載のリーダ・ライタのコマンド制御方法において、
前記第1の工程は、
通信対象の電子タグの個数が不明な状況で、リーダ・ライタが複数電子タグと通信するための輻輳制御用コマンドを発行するとき、
リーダ・ライタのコマンドで制御するタイムスロット全体における、電子タグとの通信が成功する回数と応答データが破損して通信が失敗する回数と電子タグが応答しない回数の期待値を、タイムスロット数と通信対象の電子タグの個数を変数とする3つの関数として確率計算から導出しておき、
過去の通信結果から、タイムスロット全体における電子タグとの通信が成功する回数と電子タグの応答データが破損して通信が失敗する回数と電子タグが応答しない回数を計測しておき、これら3つの計測値と輻輳制御用コマンドのパラメータで決まるタイムスロット数を、前記3つの関数に代入して連立方程式を解くことにより、
通信対象となっている電子タグの未知な個数を推定することを含むことを特徴とするリーダ・ライタのコマンド制御方法。
【請求項5】
請求項1記載のリーダ・ライタのコマンド制御方法において、
前記第1の工程は、
通信対象の電子タグの個数が不明で、かつ、コリジョンに起因するものではない個々の電子タグとの通信における通信エラーが発生する状況で、リーダ・ライタが複数の電子タグと通信するための輻輳制御用コマンドを発行するとき、
コリジョンに起因するものではない、個々の電子タグとリーダ・ライタ間の通信に関する、送受信に成功する確率、応答データが破損して通信が失敗する確率、電子タグが応答しない確率を、一般的には、各電子タグ・各時刻において異なる値を、ある一定期間の間、ある平均的な値に、それぞれ置き換えることとし、
リーダ・ライタのコマンドで制御するタイムスロット全体における、電子タグとの通信が成功する回数と応答データが破損して通信が失敗する回数と電子タグが応答しない回数の期待値を、
タイムスロット数と通信対象の電子タグの個数と、コリジョンに起因するものではない、個々の電子タグとリーダ・ライタ間の通信に関する、送受信に成功する確率、応答データが破損して通信が失敗する確率、電子タグが応答しない確率を5つの変数とする3つの関数として確率計算から導出しておき、
輻輳制御のためタイムスロットを割り当てるリーダ・ライタのコマンドを発行し、各タイムスロットにおいて実際に観測される電子タグの応答が成功する回数と電子タグの応答データが破損する回数と電子タグが応答しない回数を計測し、これらの計測値と、輻輳制御用コマンドのパラメータで決まるタイムスロット数を、前記3つの関数に代入して連立方程式を解くことにより、
未知の通信対象の電子タグの個数と、コリジョンに起因するものではない個々の電子タグとの通信エラーの発生確率を推定することを含むことを特徴とするリーダ・ライタのコマンド制御方法。
【請求項6】
請求項1記載のリーダ・ライタのコマンド制御方法において、
前記第1の工程は、
電子タグとの通信結果の履歴とリーダ・ライタの発行コマンド履歴から、EMアルゴリズムを用いることにより、現在の通信対象の電子タグの個数と、通信可能状態となっている電子タグの個数を推測し、
現在のコリジョンに起因するものではない、個々の電子タグとリーダ・ライタ間の通信に関する、送受信に成功する確率、応答データが破損して通信が失敗する確率、電子タグが応答しない確率に、それぞれEMアルゴリズムから求めた過去の最尤度の値を当てはめることを含むことを特徴とするリーダ・ライタのコマンド制御方法。
【請求項7】
請求項1記載のリーダ・ライタのコマンド制御方法において、
前記第1の工程は、
ある1つのリーダ・ライタの過去の電子タグとの通信結果、あるいは、複数のリーダ・ライタに関する過去の電子タグとの通信結果から、
通信対象である電子タグの個数と、通信可能状態となっている電子タグの個数と、コリジョンに起因するものではない、個々の電子タグとリーダ・ライタ間の通信に関する、送受信に成功する確率、応答データが破損して通信が失敗する確率、電子タグが応答しない確率の時間推移を格納した数値データの配列を、クラスター分析用統計データ配列群としてデータベースにあらかじめ格納しておき、
同時に、クラスター分析用統計データを出力したときの、リーダ・ライタの設置位置や型名、使用したアンテナといったリーダ・ライタに関する各種パラメータと、リーダ・ライタが発行したコマンド及びコマンドの内部パラメータ、そして、通信に成功した電子タグの情報から電子タグに紐付けられた物品の内容が判明した場合はその物品内容を、状態判別用統計データ配列群として、クラスター分析用統計データ配列に紐づけた状態でデータベースにあらかじめ格納しておき、
前記クラスター分析用統計データ配列群をクラスター分析によりクラスタリングし、各クラスターにおけるクラスター分析用統計データ配列群の平均値と標準偏差を算出し、一方、各クラスターにおける個々のリーダ・ライタの出現頻度をあらかじめ算出しておき、
各クラスターの中で、対象となっているリーダ・ライタが出現する割合が高く、かつ、状態判別用統計データ配列群内で、このリーダ・ライタが使用している設定値の出現頻度が高いクラスターをいくつか選択し、
この選択された複数のクラスターの中から、クラスター分析用統計データ配列の各パラメータの統計的な平均値が、対象となっているリーダ・ライタの送受信履歴と最も適合しているクラスターを選択し、
この選択したクラスターの、電子タグの個数と、通信可能状態となっている電子タグの個数と、コリジョンに起因するものではない、個々の電子タグとリーダ・ライタ間の通信に関する、送受信に成功する確率、応答データが破損して通信が失敗する確率、電子タグが応答しない確率のそれぞれの平均値を、
現在のリーダ・ライタの通信対象の電子タグの個数と、通信可能状態となっている電子タグの個数と、コリジョンに起因するものではない、個々の電子タグとリーダ・ライタ間の通信に関する、送受信に成功する確率、応答データが破損して通信が失敗する確率、電子タグが応答しない確率の値とみなすこと含むことを特徴とするリーダ・ライタのコマンド制御方法。
【請求項8】
請求項7記載のリーダ・ライタのコマンド制御方法において、
前記第2の工程は、
リーダ・ライタのアンテナや、伝送速度や無線チャネルといったリーダ・ライタ自身の設定値を決めるリーダ・ライタのコマンドを発行するとき、
前記クラスター分析により分類された各クラスターの中から、対象となっているリーダ・ライタが出現する割合が高いものをいくつか選択し、
この選択された複数のクラスターの中から、クラスター分析用統計データの配列群における、通信可能状態となっている電子タグの個数の時間変動が小さく、その時間平均値が大きいもので、かつ、応答データが破損して通信が失敗する確率、電子タグが応答しない確率の時間変動が小さく、その時間平均値が小さいクラスターを1つ選択し、
前記選択したクラスターにおいて、発生頻度が最も高いリーダ・ライタ自身の設定を決めるリーダ・ライタのコマンド、及びコマンドパラメータを、クラスター分析用統計データ配列群に紐づいた状態判別用統計データ配列群から選択することを含むことを特徴とするリーダ・ライタのコマンド制御方法。
【請求項9】
請求項1記載のリーダ・ライタのコマンド制御方法において、
前記第2の工程は、
リーダ・ライタの通信対象となっている電子タグの個数を観測する外部装置により、電子タグの個数を推測し、
この推測した電子タグの個数から、タイムスロット数の上限を決定することを含むことを特徴とするリーダ・ライタのコマンド制御方法。
【請求項10】
請求項1〜9のいずれか1項に記載のリーダ・ライタのコマンド制御方法における各手順をコンピュータに実行させることを特徴とするプログラム。
【請求項11】
請求項1〜9のいずれか1項に記載のリーダ・ライタのコマンド制御方法における各手順を実行することを特徴とするリーダ・ライタ。
【請求項12】
請求項1〜9のいずれか1項に記載のリーダ・ライタのコマンド制御方法における各手順を実行することを特徴とするコンピュータ。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2008−124849(P2008−124849A)
【公開日】平成20年5月29日(2008.5.29)
【国際特許分類】
【出願番号】特願2006−307412(P2006−307412)
【出願日】平成18年11月14日(2006.11.14)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】
【公開日】平成20年5月29日(2008.5.29)
【国際特許分類】
【出願日】平成18年11月14日(2006.11.14)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】
[ Back to top ]