近年、無線通信を利用して、環境計測・監視・制御などを行うシステムが増加している。この環境計測・監視・制御などを行う無線通信システムでは、対象エリアが比較的広い、又は、対象エリア内に無線通信の障害物が多々存在する場合が多い。このような場合、対象エリアをカバーするためには、受信器と送信器の設置位置や電波状況等の環境により直接通信できなくても、他のデバイスを中継して通信を行うことができる無線通信ネットワークを利用することが有利である。
この種の無線通信ネットワークとして、ジグビー(Zigbee(登録商標))プロトコルを利用した無線通信ネットワークが考えられている(例えば、特許文献1、特許文献2参照)。以下、このジグビープロトコルを利用した無線通信ネットワークをジグビーネットワークと呼ぶ。
ジグビーネットワークは、ツリー構造の無線通信ネットワークであり、次のような3種類のデバイスによって構成される。
〔デバイスA(ノードA)〕
コーディネータと呼ばれ、ネットワークの基層(最上位)に唯一存在し、下位デバイスと接続通信でき、ネットワーク内の全てのデバイスに対して命令するとともに、各デバイス固有の情報および各デバイスから送られてくる情報の収集を統括する。また、ネットワーク全体の総合親局の役割を果たすとともに、自己と親子の接続関係(以下、単に親子関係と呼ぶ)を結ぶデバイスにアドレスを付番する。
〔デバイスB(ノードB)〕
ルータと呼ばれ、コーディネータよりも下層に存在し、上位デバイスおよび下位デバイスと接続通信でき、コーディネータからの命令を受けるとともに、下位デバイス(ルータ、又はエンドデバイス)を接続することができ、それらデバイスに対しては局地的な親局の役割を果たす。また、自己と親子関係を結ぶデバイスにアドレスを付番する。
〔デバイスC(ノードC)〕
エンドデバイスと呼ばれ、ネットワークの末端(最下位)に存在し、上位デバイスと接続通信でき、他のデバイスの親局にはならない。例えば、空調制御システムでは、温度センサや湿度センサなどのセンサがエンドデバイスとされる。
なお、ジグビーネットワークの各デバイスには、接続可能な下位デバイスの最大個数Cmと、ツリー構造の階層の最深度(ツリー構造の最大階層)Lmがネットワークパラメータとして定められる。
図14にジグビーネットワークの単純な例を示す。同図において、1は最上位(第0層)に位置するコーディネータ、2−1,2−2はコーディネータ1の下層(第1層)に位置するルータ、2−3〜2−6はルータ2−1〜2−2の下層(第2層)に位置するルータ、3−1〜3−8はルータ2−3〜2−6の下層(第3層(最下位))に位置するエンドデバイスである。
この例において、コーディネータ1およびルータ2に接続可能な下位デバイスの最大個数CmはともにCm=2とされ、ツリー構造の最大階層LmはLm=3とされており、コーディネータ1の識別番号は#0、ルータ2−1〜2−6の識別番号は#1〜#6、エンドデバイス3−1〜3−8の識別番号は#7〜#14として設定されているものとする。これらの識別番号#0〜#14は、デバイス毎に固有に定められたものであり、変わることはない。また、このジグビーネットワークにおいて、コーディネータ1には、ネットワーク全体に対して付番可能なアドレスとしてアドレスブロックAD0〜AD14が定められ、このアドレスブロックのうち「AD0」が自己のアドレスとして割り当てられるものとする。
コーディネータ1に対して、ルータ2−1を接続する場合、ルータ2−1をコーディネータ1に近づけて電源をオンとする。すると、ルータ2−1からコーディネータ1へアソシエイト(参加申請)と呼ばれる接続要求(以下、アソシエイト接続要求と呼ぶ)が送られる。コーディネータ1は、ルータ2−1からのアソシエイト接続要求を受けて、ルータ2−1に対してアドレスAD1を割り当てるとともに、ルータ2−1の識別番号#1とルータ2−1に割り当てたアドレスAD1とを対応づけて親子関係有り(「○」)として接続情報テーブルT0に書き込む。また、ルータ2−1へ、下位のデバイスへ付番可能なアドレスとして、アドレスAD1を含むアドレスブロック「AD1〜AD7」を送る。
次に、ルータ2−2をコーディネータ1に近づけて電源をオンとすると、ルータ2−2からコーディネータ1へアソシエイト接続要求が送られる。コーディネータ1は、ルータ2−2からのアソシエイト接続要求を受けて、ルータ2−2に対してアドレスAD8を割り当てるとともに、ルータ2−2の識別番号#2とルータ2−2に割り当てたアドレスAD8とを対応づけて親子関係有りとして接続情報テーブルT0に書き込む。また、ルータ2−2へ、下位のデバイスへ付番可能なアドレスとして、アドレスAD8を含むアドレスブロック「AD8〜AD14」を送る。
ルータ2−3をルータ2−1に近づけて電源をオンとすると、ルータ2−3からルータ2−1へアソシエイト接続要求が送られる。ルータ2−1は、ルータ2−3からのアソシエイト接続要求を受けて、ルータ2−3に対してアドレスAD2を割り当てるとともに、ルータ2−3の識別番号#3とルータ2−3に割り当てたアドレスAD2とを対応づけて親子関係有りとして接続情報テーブルT1に書き込む。また、ルータ2−3へ、下位のデバイスへ付番可能なアドレスとして、アドレスAD2を含むアドレスブロック「AD2〜AD4」を送る。
エンドデバイス3−1をルータ2−3に近づけて電源をオンとすると、エンドデバイス3−1からルータ2−3へアソシエイト接続要求が送られる。ルータ2−3は、エンドデバイス3−1からのアソシエイト接続要求を受けて、エンドデバイス3−1に対してアドレスAD3を割り当てるとともに、エンドデバイス3−1の識別番号#7とエンドデバイス3−1に割り当てたアドレスAD3とを対応づけて親子関係有りとして接続情報テーブルT1に書き込む。以下、同様にして、各デバイスにアドレスが割り当てられる。
なお、上述において、例えばエンドデバイス3−1をルータ2−3に近づけて電源をオンとする動作は、エンドデバイス3−1(子デバイス)の電波到達圏内(直接接続圏内)にルータ2−3(親候補のデバイス)を位置させて電源をオンとする動作を意味するものであり、エンドデバイス3−1はその電波到達圏内の一番近い位置にある親候補のデバイスとしてルータ2−3と親子関係を結ぶ。他の子デバイスも同様にしてその電波到達圏内の一番近い位置にある親候補のデバイスと親子関係を結ぶ。
このジグビーネットワークでは、例えば、ルータ2−1(親デバイス)とルータ2−3(子デバイス)との間の伝送路に電波障害などが発生した場合、ルータ2−3からの情報がルータ2−1で受信できなくなる。例えば、図15(a)に示すように、ルータ2−2がルータ2−3の電波到達圏内の一番近い位置にあり、ルータ2−2が下位のデバイスとの親子関係を未だ結んでいないものとする。ここで、ルータ2−1とルータ2−3との間の伝送路に電波障害などが発生すると、ルータ2−3は、切断(電源オフ)、再接続(電源オン)を行う。ルータ2−3の電源がオフ(切断)とされると、ルータ2−3に割り当てられたアドレスAD2および接続情報テーブルT1の内容が消失する。続いて、ルータ2−3の電源がオン(再接続)とされると、ルータ2−3とルータ2−2との間で親子関係が結ばれる。
これにより、図15(b)に示すように、ルータ2−2の接続情報テーブルT1にルータ2−3との親子関係を示す接続情報が書き込まれ、ルータ2−3にルータ2−2から新たなアドレスAD9が割り当てられ、ルータ2−2がルータ2−3の新たな親デバイスとなる。また、エンドデバイス3−1および3−2も、ルータ2−3との通信が不可能となるため、切断、再接続を行い、ルータ2−3との間で再度親子関係を結ぶ。これにより、ルータ2−3の接続情報テーブルT1にエンドデバイス3−1および3−2との親子関係を示す接続情報が書き込まれ、ルータ2−3からエンドデバイス3−1および3−2に新たなアドレスAD10およびAD11が割り当てられる。このようにして、親デバイスと子デバイスとの間の伝送路に電波障害などが発生した場合、自動的にツリー構造の組み替えが行われる。
なお、図14には単純な例を示したが、実際には最上位のコーディネータ1と最下位のエンドデバイス3との間にはルータ2がさらに何層も位置し、ルータ2の数やエンドデバイス3の数も増大し、大規模なネットワークとされる。
特開2006−5928号公報
特開2006−42370号公報
上述したように、ジグビーネットワークにおいて、親デバイスは、自デバイスに接続した子デバイスに対してある範囲のアドレスを割り当て、子デバイスは、さらに自デバイスに接続した子デバイスに対して、割り当てられたアドレス範囲の中からあるアドレス範囲を割り当てる。この場合、アドレス範囲が有限であるため、ツリー構造の階層の深さは、アドレス総数とデバイスに接続することのできる下位のデバイス数をパラメータとした関数によって求まる有限の値までしかとることができない。そのため、現在ツリー階層n−1(n:ツリー構造の最大階層(ツリー構造の階層の最深度))に位置するデバイスが親デバイスから切断し、再接続する際に、元の親デバイス以上上の階層のデバイスに接続できずにツリー階層n−1に位置する他のデバイスに接続したような場合、そのデバイスの階層が最大階層nとなり、元々そのデバイスに接続されていた下位のデバイスが、そのデバイスに対して再接続することができなくなってしまうという問題が発生する。
例えば、図16(a)に示すように、ルータ2−1とルータ2−3および2−4との間に親子関係が結ばれており、ルータ2−3とエンドデバイス3−1および3−2との間に親子関係が結ばれているものとする。また、ルータ2−4は、下位のデバイスとの親子関係を未だ結んでおらず、ルータ2−3の電波到達圏内の一番近い位置にあるものとする。このような状態で、ルータ2−1とルータ2−3との間の伝送路に電波障害などが発生すると、ルータ2−3は、切断(電源オフ)、再接続(電源オン)を行う(図16(b))。
ルータ2−3の電源がオフ(切断)とされると、ルータ2−3に割り当てられたアドレスAD2および接続情報テーブルT1の内容が消失する。続いて、ルータ2−3の電源がオン(再接続)とされると、ルータ2−3とルータ2−4との間で親子関係が結ばれる。これにより、ルータ2−4の接続情報テーブルT1にルータ2−3との親子関係を示す接続情報が書き込まれ、ルータ2−3にルータ2−2から新たなアドレスAD6が割り当てられる。したがって、この場合、ルータ2−4がルータ2−3の新たな親デバイスとなる。ここで、ルータ2−3の階層は、ルータ2−4と親子関係を結んだことにより、それまでの第2層から第3層(最大階層)に下がる。このため、ルータ2−4からルータ2−3に下位デバイスへの付番可能なアドレスが割り当てられず、エンドデバイス3−1および3−2をルータ2−3に再接続することができなくなってしまう。
本発明は、このような課題を解決するためになされたもので、その目的とするところは、ツリー構造の組み替え時に、上位のデバイスと再接続することができないデバイスが発生することがない無線通信システムおよびデバイスを提供することにある。
こような課題を解決するために第1発明(請求項1に係る発明)は、最上位に位置する第1のデバイスと、最下位に位置する第2のデバイスと、この第1のデバイスと第2のデバイスとの間に位置する第3のデバイスとを少なくとも備えたツリー構造の無線通信システムにおいて、第3のデバイスに、ツリー構造中の予め定められる自己が位置すべき階層を所属階層として記憶する階層記憶手段と、ツリー構造中の自己が位置している現在の階層をチェックし、自己が位置している現在の階層が所属階層よりも下位の階層であった場合、所属階層よりも少なくとも1階層上のデバイスを新たな親デバイスの候補として接続要求を送る接続要求手段とを設けたものである。
第1発明において、例えば、第1のデバイスをコーディネータ、第2のデバイスをエンドデバイス、第3のデバイスをルータとするツリー構造の無線通信システムとし、コーディネータとエンドデバイスとの間にルータが2層設けられているものとする。すなわち、コーディネータ(第0層)の下位デバイスとして第1のルータ(第1層)が接続され、第1のルータの下位デバイスとして第2のルータ(第2層)が接続され、第2のルータの下位デバイスとしてエンドデバイス(第3層)が接続されているものとする。この場合、第2のルータは、ツリー構造中の自己が位置すべき階層(所属階層)として第2層を記憶している。
ここで、第1のルータと第2のルータとの間の伝送路に電波障害などが発生し、第2のルータが第2層に位置する他のルータ(第3のルータ)と親子関係を結んだとする。すると、第3のルータが第2のルータの親デバイスとなり、第2のルータの階層が第3層、エンドデバイスの階層が第4層となる。この無線通信システムにおいて、ツリー構造の最大階層(ツリー構造の階層の最深度)を「3」とすると、エンドデバイスはその階層が第4層となるため、第3層に位置する第2のルータとの再接続を行うことができない。
第2のルータは、第3のルータと親子関係を結ぶと、ツリー構造中の自己が位置している現在の階層をチェックする。この場合、第2のルータは、自己が位置している現在の階層を第3層であると認識する。そして、この自己が位置している現在の階層(第3層)と記憶している所属階層(第2層)とを比較する。この場合、自己が位置している現在の階層が所属階層よりも下位の階層であるので、第2のルータは、所属階層よりも少なくとも1階層上のデバイス(第1層或いは第0層のデバイス)を新たな親デバイスの候補として接続要求を送る。これにより、例えば第1層に位置する第4のルータと第2のルータとの間に親子関係が結ばれ、第2のルータの階層が第2層、エンドデバイスの階層が第3層となり、エンドデバイスを第2のルータと再接続させることができるようになる。
第2発明(請求項2に係る発明)は、最上位に位置する第1のデバイスと、最下位に位置する第2のデバイスと、この第1のデバイスと第2のデバイスとの間に位置する第3のデバイスとを少なくとも備えたツリー構造の無線通信システムにおいて、第3のデバイスに、ツリー構造中の現在の親デバイスとの接続前に位置していた階層を元の階層として記憶する階層記憶手段と、ツリー構造中の自己が位置している現在の階層をチェックし、自己が位置している現在の階層が元の階層よりも下位の階層であった場合、元の階層よりも少なくとも1階層上のデバイスを新たな親デバイスの候補として接続要求を送る接続要求手段とを設けたものである。
第2発明において、例えば、第1のデバイスをコーディネータ、第2のデバイスをエンドデバイス、第3のデバイスをルータとするツリー構造の無線通信システムとし、コーディネータ(第0層)の下位デバイスとして第1のルータ(第1層)が接続され、第1のルータの下位デバイスとして第2のルータ(第2層)が接続され、第2のルータの下位デバイスとしてエンドデバイス(第3層)が接続されているものとする。
ここで、第1のルータと第2のルータとの間の伝送路に電波障害などが発生し、第2のルータが第2層に位置する他のルータ(第3のルータ)と親子関係を結んだとする。すると、第3のルータが第2のルータの親デバイスとなり、第2のルータの階層が第3層、エンドデバイスの階層が第4層となる。この場合、第2のルータは、ツリー構造中の現在の親デバイス(第3のルータ)との接続前に位置していた階層、すなわち第1のルータと接続していた時の階層(第2層)を元の階層として記憶する。この無線通信システムにおいて、ツリー構造の最大階層(ツリー構造の階層の最深度)を「3」とすると、エンドデバイスはその階層が第4層となるため、第3層に位置する第2のルータとの再接続を行うことができない。
第2のルータは、第3のルータと親子関係を結ぶと、ツリー構造中の自己が位置している現在の階層をチェックする。この場合、第2のルータは、自己が位置している現在の階層を第3層であると認識する。そして、この自己が位置している現在の階層(第3層)と記憶している元の階層(第2層)とを比較する。この場合、自己が位置している現在の階層が元の階層よりも下位の階層であるので、第2のルータは、元の階層よりも少なくとも1階層上のデバイス(第1層或いは第0層のデバイス)を新たな親デバイスの候補として接続要求を送る。これにより、例えば第1層に位置する第4のルータと第2のルータとの間に親子関係が結ばれ、第2のルータの階層が第2層、エンドデバイスの階層が第3層となり、エンドデバイスを第2のルータと再接続させることができるようになる。
第3発明(請求項3に係る発明)は、最上位に位置する第1のデバイスと、最下位に位置する第2のデバイスと、この第1のデバイスと第2のデバイスとの間に位置する第3のデバイスとを少なくとも備えたツリー構造の無線通信システムにおいて、第3のデバイスに、ツリー構造中の自己が位置している現在の階層をチェックし、自己が位置している現在の階層よりも少なくとも2階層上のデバイスが存在する場合、そのデバイスを新たな親デバイスの候補として接続要求を送る接続要求手段を設けたものである。
第3発明において、例えば、第1のデバイスをコーディネータ、第2のデバイスをエンドデバイス、第3のデバイスをルータとするツリー構造の無線通信システムとし、コーディネータ(第0層)の下位デバイスとして第1のルータ(第1層)が接続され、第1のルータの下位デバイスとして第2のルータ(第2層)が接続され、第2のルータの下位デバイスとしてエンドデバイス(第3層)が接続されているものとする。
ここで、第1のルータと第2のルータとの間の伝送路に電波障害などが発生し、第2のルータが第2層に位置する他のルータ(第3のルータ)と親子関係を結んだとする。すると、第3のルータが第2のルータの親デバイスとなり、第2のルータの階層が第3層、エンドデバイスの階層が第4層となる。この無線通信システムにおいて、ツリー構造の最大階層(ツリー構造の階層の最深度)を「3」とすると、エンドデバイスはその階層が第4層となるため、第3層に位置する第2のルータとの再接続を行うことができない。
第2のルータは、第3のルータと親子関係を結ぶと、ツリー構造中の自己が位置している現在の階層をチェックする。この場合、第2のルータは、自己が位置している現在の階層を第3層であると認識する。そして、この自己が位置している現在の階層(第3層)よりも少なくとも2階層上のデバイス(第1層或いは第0層のデバイス)の存在の有無を確認し、2階層以上上のデバイスが存在すれば、そのデバイスを新たな親デバイスの候補として接続要求を送る。これにより、例えば第1層に位置する第4のルータと第2のルータとの間に親子関係が結ばれ、第2のルータの階層が第2層、エンドデバイスの階層が第3層となり、エンドデバイスを第2のルータと再接続させることができるようになる。
第4発明(請求項3に係る発明)は、最上位に位置する第1のデバイスと、最下位に位置する第2のデバイスと、この第1のデバイスと第2のデバイスとの間に位置する第3のデバイスとを少なくとも備えたツリー構造の無線通信システムにおいて、第3のデバイスに、自己を起点とするツリー構造内の最下位に位置するデバイスのそのツリー構造における階層を自己起点ツリー構造内最下位デバイスの階層として記憶する階層記憶手段と、第1のデバイスを起点とするツリー構造を基本ツリー構造とし、この基本ツリー構造中の自己が位置している現在の階層と自己起点ツリー構造内最下位デバイスの階層とから基本ツリー構造における自己起点ツリー構造内最下位デバイスの階層を判断し、この自己起点ツリー構造内最下位デバイスの階層が基本ツリー構造の最大階層を超えていた場合、その自己起点ツリー構造内最下位デバイスの階層が基本ツリー構造の最大階層を超えることがないデバイスを探索し、その探索したデバイスを新たな親デバイスの候補として接続要求を送る接続要求手段とを設けたものである。
第4発明において、例えば、第1のデバイスをコーディネータ、第2のデバイスをエンドデバイス、第3のデバイスをルータとするツリー構造の無線通信システムとし、コーディネータ(第0層)の下位デバイスとして第1のルータ(第1層)が接続され、第1のルータの下位デバイスとして第2のルータ(第2層)が接続され、第2のルータの下位デバイスとしてエンドデバイス(第3層)が接続されているものとする。この場合、第2のルータは、自己を起点とするツリー構造内の最下位に位置するデバイスのそのツリー構造内の階層(第1階層)を自己起点ツリー構造内最下位デバイスの階層として記憶する。
ここで、第1のルータと第2のルータとの間の伝送路に電波障害などが発生し、第2のルータが第2層に位置する他のルータ(第3のルータ)と親子関係を結んだとする。すると、第3のルータが第2のルータの親デバイスとなり、第2のルータの階層が第3層、エンドデバイスの階層が第4層となる。この無線通信システムにおいて、ツリー構造の最大階層(ツリー構造の階層の最深度)を「3」とすると、エンドデバイスはその階層が第4層となるため、第3層に位置する第2のルータとの再接続を行うことができない。
第2のルータは、第3のルータと親子関係を結ぶと、コーディネータを起点とする基本ツリー構造中の自己が位置している現在の階層(第3層)と自己起点ツリー構造内最下位デバイスの階層(第1階層)とからその基本ツリー構造における自己起点ツリー構造内最下位デバイスの階層を判断する。この場合、第2のルータは、基本ツリー構造中の自己が位置している現在の階層が第3層であり、自己起点ツリー構造内最下位デバイスの階層が第1階層なので、基本ツリー構造における自己起点ツリー構造内最下位デバイスの階層を第4層であると判断する。そして、この最下位デバイスの階層(第4層)と基本ツリー構造の最大階層(第3層)とを比較する。
この場合、自己起点ツリー構造内最下位デバイスの階層が基本ツリー構造の最大階層を超えているので、第2のルータは、自己起点ツリー構造内最下位デバイスの階層が基本ツリー構造の最大階層を超えることがないデバイス(第1層或いは第0層のデバイス)を探索し、その探索したデバイスを新たな親デバイスの候補として接続要求を送る。これにより、例えば第1層に位置する第4のルータと第2のルータとの間に親子関係が結ばれ、第2のルータの階層が第2層、エンドデバイス(最下位デバイス)の階層が第3層となり、エンドデバイスを第2のルータと再接続させることができるようになる。
なお、本発明は、無線通信システムとしてではなく、デバイス単体としても構成することができる。この場合、デバイスに、ツリー構造中の予め定められる自己が位置すべき階層を所属階層として記憶する階層記憶手段と、ツリー構造中の自己が位置している現在の階層をチェックし、自己が位置している現在の階層が所属階層よりも下位の階層であった場合、所属階層よりも少なくとも1階層上のデバイスを新たな親デバイスの候補として接続要求を送る接続要求手段とを設ける(第5発明(請求項5に係る発明))。また、デバイスに、ツリー構造中の現在の親デバイスとの接続前に位置していた階層を元の階層として記憶する階層記憶手段と、ツリー構造中の自己が位置している現在の階層をチェックし、自己が位置している現在の階層が元の階層よりも下位の階層であった場合、元の階層よりも少なくとも1階層上のデバイスを新たな親デバイスの候補として接続要求を送る接続要求手段とを設ける(第6発明(請求項6に係る発明))。
また、デバイスに、ツリー構造中の自己が位置している現在の階層をチェックし、自己が位置している現在の階層よりも少なくとも2階層上のデバイスが存在する場合、そのデバイスを新たな親デバイスの候補として接続要求を送る接続要求手段を設ける(第7発明(請求項7に係る発明))。また、デバイスに、自己を起点とするツリー構造内の最下位に位置するデバイスのそのツリー構造における階層を自己起点ツリー構造内最下位デバイスの階層として記憶する階層記憶手段と、第1のデバイスを起点とするツリー構造を基本ツリー構造とし、この基本ツリー構造中の自己が位置している現在の階層と自己起点ツリー構造内最下位デバイスの階層とから基本ツリー構造における自己起点ツリー構造内最下位デバイスの階層を判断し、この自己起点ツリー構造内最下位デバイスの階層が基本ツリー構造の最大階層を超えていた場合、その自己起点ツリー構造内最下位デバイスの階層が基本ツリー構造の最大階層を超えることがないデバイスを探索し、その探索したデバイスを新たな親デバイスの候補として接続要求を送る接続要求手段と設ける(第8発明(請求項8に係る発明))。
本発明(第1、第5発明)によれば、第3のデバイス(例えば、ルータ)に、ツリー構造中の自己が位置している現在の階層をチェックし、自己が位置している現在の階層が所属階層よりも下位の階層であった場合、所属階層よりも少なくとも1階層上のデバイスを新たな親デバイスの候補として接続要求を送るようにすることにより、例えば、第1層に位置する第1のルータと第2層に位置する第2のルータとの間の伝送路に電波障害が発生したような場合のツリー構造の組み替え時に、第2のルータを自己の所属階層(第2層)よりも1階層以上上のデバイス(第1層或いは第0層のデバイス)に接続されるようにして、ツリー構造の最大階層(ツリー構造の階層の最深度)を超えるデバイスをなくし、再接続することができないデバイスの発生を防ぐことが可能となる。
また、本発明(第2、第6発明)によれば、ツリー構造中の自己が位置している現在の階層をチェックし、自己が位置している現在の階層が元の階層よりも下位の階層であった場合、元の階層よりも少なくとも1階層上のデバイスを新たな親デバイスの候補として接続要求を送るようにすることにより、例えば、第1層に位置する第1のルータと第2層に位置する第2のルータとの間の伝送路に電波障害が発生したような場合のツリー構造の組み替え時に、第2のルータを元の階層(第2層)よりも1階層以上上のデバイス(第1層或いは第0層のデバイス)に接続されるようにして、ツリー構造の最大階層(ツリー構造の階層の最深度)を超えるデバイスをなくし、再接続することができないデバイスの発生を防ぐことが可能となる。
また、本発明(第3、第7発明)によれば、ツリー構造中の自己が位置している現在の階層をチェックし、自己が位置している現在の階層よりも少なくとも2階層上のデバイスが存在する場合、そのデバイスを新たな親デバイスの候補として接続要求を送るようにすることにより、例えば、第1層に位置する第1のルータと第2層に位置する第2のルータとの間の伝送路に電波障害が発生したような場合のツリー構造の組み替え時に、第2のルータが第2層に位置する他のルータに再接続されたとしても、現在の階層(第3層)よりも2階層以上上ののデバイス(第1層或いは第0層のデバイス)に接続されるようにして、ツリー構造の最大階層(ツリー構造の階層の最深度)を超えるデバイスをなくし、再接続することができないデバイスの発生を防ぐことが可能となる。
また、本発明(第4、第8発明)によれば、第1のデバイスを起点とする基本ツリー構造中の自己が位置している現在の階層と自己を起点とするツリー構造内の最下位のデバイス(自己起点ツリー構造内最下位デバイス)のそのツリー構造における階層とから基本ツリー構造における自己起点ツリー構造内最下位デバイスの階層を判断し、この自己起点ツリー構造内最下位デバイスの階層が基本ツリー構造の最大階層を超えていた場合、その自己起点ツリー構造内最下位デバイスの階層が基本ツリー構造の最大階層を超えることがないデバイスを探索し、その探索したデバイスを新たな親デバイスの候補として接続要求を送るようにすることにより、例えば、第1層に位置する第1のルータと第2層に位置する第2のルータとの間の伝送路に電波障害が発生したような場合のツリー構造の組み替え時に、第2のルータを起点とするツリー構造内の最下位のデバイスの階層が基本ツリー構造の最大階層(ツリー構造の階層の最深度)を超えることがないようにして、再接続することができないデバイスの発生を防ぐことが可能となる。
以下、本発明を図面に基づいて詳細に説明する。
図1はこの発明に係る無線通信システムの一例を示す概略図である。この無線通信システムは、ジグビーネットワークを利用した単純な例であり、最上位(第0層)に位置するコーディネータ10と、最下位(第3層)に位置するエンドデバイス30と、コーディネータ10とエンドデバイス30との間(第1層、第2層)に位置するルータ20とによって構成される。
この例においても、コーディネータ10およびルータ20に接続可能な下位デバイスの最大個数CmはともにCm=2とされ、ツリー構造の最大階層(ツリー構造の階層の最深度)LmはLm=3とされているものとする。また、コーディネータ10の識別番号は#0、ルータ20−1〜20−6の識別番号は#1〜#6、エンドデバイス30−1〜30−8の識別番号は#7〜#14として設定されており、コーディネータ10には、ネットワーク全体に対して付番可能なアドレスとしてアドレスブロックAD0〜AD14が定められ、このアドレスブロックのうち「AD0」が自己のアドレスとして割り当てられるものとする。
この無線通信システムにおいても、図14に示したジグビーネットワークと同様に、コーディネータ10に対して、ルータ20−1を接続する場合、ルータ20−1をコーディネータ10に近づけて電源をオンとする。すると、ルータ20−1からコーディネータ10へアソシエイト接続要求が送られ、コーディネータ10との間で親子関係が結ばれる。これにより、ルータ20−1へアドレスAD1が割り当てられ、コーディネータ10の接続情報テーブルT0にルータ20−1に割り当てたアドレスAD1と識別番号#1との対応関係が書き込まれる。
同様にして、コーディネータ10とルータ20−2との間、ルータ20−1とルータ20−3および20−4との間、ルータ20−2とルータ20−5および20−6との間、ルータ20−3とエンドデバイス30−1および30−2との間、ルータ20−4とエンドデバイス30−3および30−4との間、ルータ20−5とエンドデバイス30−5および30−6との間、ルータ20−6とエンドデバイス30−7および30−8との間で親子関係が結ばれる。
これにより、ルータ20−2へアドレスAD8が割り当てられ、コーディネータ10の接続情報テーブルT0にルータ20−2に割り当てたアドレスAD8と識別番号#2との対応関係が書き込まれる。また、ルータ20−3,20−4にアドレスAD2,AD5が割り当てられ、ルータ20−1の接続情報テーブルT1にルータ20−3,20−4に割り当てたアドレスAD2,AD5と識別番号#3,#4との対応関係が書き込まれる。また、ルータ20−5,20−6にアドレスAD9,AD12が割り当てられ、ルータ20−2の接続情報テーブルT1にルータ20−5,20−6に割り当てたアドレスAD9,AD12と識別番号#5,#6との対応関係が書き込まれる。
また、エンドデバイス30−1,30−2にアドレスAD3,AD4が割り当てられ、ルータ20−3の接続情報テーブルT1にエンドデバイス30−1,30−2に割り当てたアドレスAD3,AD4と識別番号#7,#8との対応関係が書き込まれる。また、エンドデバイス30−3,30−4にアドレスAD6,AD7が割り当てられ、ルータ20−4の接続情報テーブルT1にエンドデバイス30−3,30−4に割り当てたアドレスAD6,AD7と識別番号#9,#10との対応関係が書き込まれる。
また、エンドデバイス30−5,30−6にアドレスAD10,AD11が割り当てられ、ルータ20−5の接続情報テーブルT1にエンドデバイス30−5,30−6に割り当てたアドレスAD10,AD11と識別番号#11,#12との対応関係が書き込まれる。また、エンドデバイス30−7,30−8にアドレスAD13,AD14が割り当てられ、ルータ20−6の接続情報テーブルT1にエンドデバイス30−7,30−8に割り当てたアドレスAD13,AD14と識別番号#13,#14との対応関係が書き込まれる。
この無線通信システムにおいて、ルータ20およびエンドデバイス30は、上位のデバイスに定期的に接続確認要求を送信する接続確認要求送信機能を備えている。また、コーディネータ10およびルータ20は、下位のデバイスから定期的に送られてくる接続確認要求を受信する毎に、その接続確認要求の受信に成功したことを知らせる接続確認応答を返送する接続確認応答返送機能を有している。
また、ルータ20およびエンドデバイス30は、接続確認要求の受信に成功したことを知らせる上位のデバイスからの接続確認応答が途絶えた場合、切断(電源オフ)、再接続(電源オン)を行う切断再接続機能を有している。また、ルータ20は、本実施の形態特有の機能として、ツリー構造維持機能を備えている。このツリー構造維持機能については後述する。
図2にコーディネータ10の概略的なブロック図を示す。コーディネータ10は、処理部10Aと、RAM10Bと、EEPROM10Cと、RF回路(無線送受信回路)10Dとを備えている。処理部10Aは、上述した接続確認応答返送機能の他、基本的な機能として、ネットワーク宣言機能、親ノード機能、通信機能(ノード間通信機能、通信中継機能)などを備えている。これらの機能は、処理部10Aが実行するプログラムに従う処理動作として得られる。なお、EEPROM10Cにはコーディネータ10の識別番号が格納され、RAM10Bにはネットワーク全体に対して付番可能なアドレスブロック、コーディネータ10に対して割り当てられるアドレス、接続情報テーブルT0などが格納される。
図3にルータ20の概略的なブロック図を示す。ルータ20は、処理部20Aと、RAM20Bと、EEPROM20Cと、RF回路20Dとを備えている。処理部20Aは、上述した接続確認要求送信機能、接続確認応答返送機能、切断再接続機能、ツリー構造維持機能の他、基本的な機能として、親ノード機能、通信機能(ノード間通信機能、通信中継機能)などを備えている。これらの機能は、処理部20Aが実行するプログラムに従う処理動作として得られる。なお、EEPROM20Cにはルータ20の識別番号が格納され、RAM20Bにはルータ20に対して割り当てられるアドレス、上位のデバイスから送られてくる下位のデバイスに対して付番可能なアドレスブロック、接続情報テーブルT1などが格納される。
図4にエンドデバイス30の概略的なブロック図を示す。エンドデバイス30は、処理部30Aと、RAM30Bと、EEPROM30Cと、RF回路30Dとを備えている。処理部30Aは、上述した接続確認要求送信機能、切断再接続機能の他、基本的な機能として、子ノード機能、通信機能(ノード間通信機能)などを備えている。これらの機能は、処理部30Aが実行するプログラムに従う処理動作として得られる。なお、EEPROM30Cには、エンドデバイス30の識別番号などが格納される。RAM30Bには、エンドデバイス30に対して割り当てられるアドレスなどが格納される。
〔ルータ間の接続確認〕
ルータ20は、親子関係を結んでいる上位のルータ20に対し、接続確認要求を定期的に送信する。例えば、図1に示したルータ20−1とルータ20−3との間で説明すると、下位のルータ20−3から上位のルータ20−1へ接続確認要求が定期的に送られる(図5(a)参照)。ルータ20−1は、ルータ20−3からの接続確認要求を受信する毎に、接続確認要求の受信に成功したことを知らせる接続確認応答をルータ20−3に返送する。
なお、図5(a)において、コーディネータ10はルータ20−1および20−2と親子関係を結んでおり、ルータ20−1はルータ20−3および20−4と親子関係を結んでおり、ルータ20−3はエンドデバイス30−1および30−2と親子関係を結んでいるが、ルータ20−2および20−4は下位のデバイスとの親子関係を未だ結んでおらず、何れもルータ20−3の電波到達圏内にあるものとする。但し、ルータ20−2よりもルータ20−4の方がルータ20−3に近く、電波条件が良いものとする。
〔ルータ間の伝送路に電波障害などが発生した場合〕
図5(a)において、ルータ20−1と20−3との間の伝送路に電波障害などが発生すると、ルータ20−3からのルータ20−1への接続確認要求が途絶える(図5(b))。この場合、ルータ20−1は、ルータ20−3からの接続確認要求を受信することができず、その接続確認要求に対する接続確認応答を返送しない。
一方、ルータ20−3は、ルータ20−1への接続確認要求を送信した後、ルータ20−1からの接続確認応答を待ち、ルータ20−1からの接続確認応答が途絶えたことを検出して、切断(電源オフ)、再接続(電源オン)を行う。
図6にこの場合のルータ20−3における処理動作を示す。ルータ20−3は、リトライ数を0としたうえ(ステップS1)、ルータ20−1へ接続確認要求を送信する(ステップS2)。そして、この接続確認要求に対してルータ20−1から返送されてくる接続確認応答を待ち(ステップS3)、接続確認応答を受信すると(ステップS4のYES)、一定時間の経過を待って(ステップS7)、ルータ20−1へ次の接続確認要求を送信する(ステップS2)。以下同様の処理動作を繰り返す。
このような処理動作中、ルータ20−1からの接続確認応答が受信されなくなると(ステップS4のNO)、リトライ回数に1をプラスし(ステップS5)、一定時間の経過を待って(ステップS7)、ルータ20−1へ次の接続確認要求を送信する(ステップS2)。そして、リトライ回数が所定回数Nx以上となると(ステップS6のYES)、ルータ20−1からの接続確認応答が途絶えたと判断して、切断(電源オフ)、再接続(電源オン)を行う(ステップS8)。
ルータ20−3の電源がオフ(切断)とされると、ルータ20−3に割り当てられたアドレスAD2および接続情報テーブルT1の内容が消失する。ルータ20−3の電源がオン(再接続)とされると、ルータ20−3とルータ20−4との間で親子関係が結ばれる(図7参照)。これにより、ルータ20−4の接続情報テーブルT1にルータ20−3との親子関係を示す接続情報が書き込まれ、ルータ20−3にルータ20−4から新たなアドレスAD6が割り当てられ、ルータ20−4がルータ20−3の新たな親デバイスとなる。
ここで、ルータ20−3の階層は、ルータ20−4と親子関係を結んだことにより、それまでの第2層から第3層(最大階層)に下がる。このため、ルータ20−4からルータ20−3に下位デバイスへ付番可能なアドレスが割り当てられず、エンドデバイス30−1および30−2をルータ20−3に再接続することができないという事態が発生し、エンドデバイス30−1および30−2を最下位のデバイスとするツリー構造を維持することができなくなる。
〔ツリー構造の維持機能:実施の形態1〕
先ず、ルータ20が有するツリー構造の維持機能の第1例(実施の形態1)として、所属階層を用いる例(実施の形態1)を説明する。この実施の形態1では、ルータ20に、ツリー構造中の予め定められる自己が位置すべき階層を所属階層として記憶させておく。この所属階層は、エンジニアリングの段階で人が決定する。 例えば、図5(a)に示したツリー構造中のルータ20−3について言えば、ルータ20−3に自己の所属階層を第2層として記憶させておく。
この実施の形態1において、ルータ20−3は、ルータ20−4と再接続されると(図8に示すステップ101のYES(図7))、ツリー構造中の自己が位置している現在の階層をチェックし、自己が位置している現在の階層と自己が位置すべき所属階層とを比較する(ステップ102)。この場合、現在の階層は第3層、自己が位置すべき所属階層は第2層であるので、現在の階層が所属階層よりも下位の階層(深い階層)であると判断し(ステップ102のNO)、電波到達圏内に存在するデバイスに対して、そのデバイスが位置している現在の階層を問い合わせる(ステップ103)。
なお、ジグビーネットワークにおいて、デバイスに割り当てられるアドレスはそのデバイスが位置している現在の階層の情報を含んでいる。したがって、ルータ20−3は、自己に割り当てられたアドレスAD6より、自己の現在の階層が第3層であることを認識する。他のデバイスも同様にして自己の現在の階層を認識する。また、電波到達圏内に存在するデバイスに対する現在の階層の問い合わせは、各デバイスのアドレスが分かっている場合にはユニキャストによって個別に問い合わせるものとしてもよいし、分からない場合にはマルチキャストによって問い合わせるようにしてもよい。また、メッセージの中継数を1に限定しておくことで、問い合わせを受信するデバイスは問い合わせを送信するデバイスから直接通信できる圏内に限られることになり、問い合わせを送信するデバイスの直接接続が保証される。
そして、ルータ20−3は、電波到達圏内に存在するデバイスから取得した現在の階層より、自己の所属階層よりも1階層以上上のデバイス(ルータ或いはコーディネータ)が存在するか否かを確認する(ステップ104)。自己の所属階層よりも1階層以上上のデバイスの存在が確認されない場合には(ステップ104のNO)、一定時間待機した後(ステップ105)、ステップ102へ戻って同様動作を繰り返す。
自己の所属階層よりも1階層以上上のデバイスの存在が確認された場合(ステップ104のYES)、ルータ20−3は、そのデバイスの中で最も電波条件のよいデバイスに直接接続要求を送る(ステップ106)。この場合、ルータ20−3は、自己の所属階層(第2層)よりも1階層以上上のデバイスで、かつ最も電波条件のよいデバイスとして、第1層に位置するルータ20−2の存在を確認し、このルータ20−2に直接接続要求を送る(図9(a)参照)。ルータ20−2は、ルータ20−3からの直接接続要求を受けて、接続を許可するデバイス(接続許可デバイス)としてルータ20−3の識別番号#3を登録する。また、ルータ20−3の識別番号#3と対応づけて、ルータ20−3に割り当てるべきアドレス(この例では、アドレスAD9)を決定する。これにより、ルータ30−3を接続許可デバイスとする接続情報がルータ20−2内に作成される。これをダイレクトジョイン(Direct-Join)と呼ぶ。
次に、ルータ20−3は、自己の電源をオフとする(ステップ107)。この電源のオフにより、ルータ20−3に割り当てられているアドレスAD6が消去され、ルータ20−4の接続情報テーブルT1からルータ20−3との親子関係を示す情報が削除され(図9(b)参照)、ルータ20−3とルータ20−4との親子関係が解消される。
そして、ルータ20−3は、オーファンと呼ばれる再接続要求(以下、オーファン接続要求と呼ぶ)を電波到達圏内に位置する親候補のデバイスへ送る(ステップ108:図10(a)参照)。ルータ20−2は、このルータ20−3からのオーファン接続要求を受けて、ルータ20−3を接続許可デバイスとする接続情報が作成されているか否かをチェックする。この場合、ルータ20−3を接続許可デバイスとする接続情報が作成されているので、ルータ20−2は、その接続情報からルータ20−3の識別番号#3に対応するアドレスAD9を読み出し、ルータ20−3に割り当てる。また、ルータ20−2は、下位のデバイスへ付番可能なアドレスとして、アドレスブロックAD9を含むアドレスブロック「AD9〜AD11」をルータ20−3へ送る。
このようにして、ルータ20−2とルータ20−3との間で新たな親子関係が結ばれ、ルータ20−2がルータ20−3の新たな親デバイスとなる。これにより、図10(b)に示されるように、ルータ20−3の階層が第2層となる。また、エンドデバイス3−1および3−2からの再接続の要求に応えて、エンドデバイス3−1および3−2にルータ20−3からアドレスAD10およびAD11が割り当てられ、ルータ2−3とエンドデバイス3−1および3−2との間に親子関係が結ばれ、エンドデバイス3−1および3−2の階層が第3層となる。
ルータ20−3は、ルータ20−2とのオーファンによる接続に成功すると(ステップ109のYES)、一定時間の経過を待って(ステップ105)、ステップ102へ戻る。この場合、ルータ20−3は、現在の階層が所属階層以上上の階層となったことを確認して(ステップ102のYES)、一連の動作を終了する。
なお、ルータ20−2とのオーファンによる接続に成功しなかった場合には(ステップ109のNO)、電波到達圏内の他のデバイスにアソシエイト接続要求を送り(ステップ110)、そのデバイスとの接続を図る。この場合、ルータ20−4にアソシエイト接続要求が送られ、ルータ20−4との接続が図られる。そして、アソシエイト接続の成功を確認した後(ステップ111のYES)、一定時間の経過を待って(ステップ105)、ステップ102へ戻る。以下、現在の階層が所属階層以上上の階層となるまで、同様動作を繰り返す。
〔ツリー構造の維持機能:実施の形態2〕
次に、ルータ20が有するツリー構造の維持機能の第2例(実施の形態2)として、再接続前の元の階層を用いる例(実施の形態2)を説明する。この実施の形態2では、ルータ20に、再接続時、現在の親デバイスとの接続前に位置していたツリー構造中の階層を元の階層として記憶させる。例えば、図7に示したツリー構造中のルータ20−3について言えば、現在の親デバイスであるルータ20−4との接続前に位置していた階層、すなわちルータ20−1と接続していた時の階層(第2層)を元の階層として記憶させる。
この実施の形態2において、ルータ20−3は、ルータ20−4と再接続されると(図11に示すステップ201のYES(図7))、ツリー構造中の自己が位置している現在の階層をチェックし、自己が位置している現在の階層と再接続前に位置していた元の階層とを比較する(ステップ202)。この場合、現在の階層は第3層、元の階層は第2層であるので、現在の階層が元の階層よりも下位の階層(深い階層)であると判断し(ステップ202のNO)、電波到達圏内に存在するデバイスに対して、そのデバイスが位置している現在の階層を問い合わせる(ステップ203)。
そして、ルータ20−3は、電波到達圏内に存在するデバイスから取得した現在の階層より、元の階層よりも1階層以上上のデバイス(ルータ或いはコーディネータ)が存在するか否かを確認する(ステップ204)。元の階層よりも1階層以上上のデバイスの存在が確認されない場合には(ステップ204のNO)、一定時間待機した後(ステップ205)、ステップ202へ戻り、同様動作を繰り返す。
元の階層よりも1階層以上上のデバイスの存在が確認された場合(ステップ204のYES)、ルータ20−3は、そのデバイスの中で最も電波条件のよいデバイスに直接接続要求を送る(ステップ206)。この場合、ルータ20−3は、元の階層(第2層)よりも1階層以上上のデバイスで、かつ最も電波条件のよいデバイスとして、第1層に位置するルータ20−2の存在を確認し、このルータ20−2に直接接続要求を送る(図9(a)参照)。ルータ20−2は、ルータ20−3からの直接接続要求を受けて、接続許可デバイスとしてルータ20−3の識別番号#3を登録する。また、ルータ20−3の識別番号#3と対応づけて、ルータ20−3に割り当てるべきアドレス(この例では、アドレスAD9)を決定する。これにより、ルータ20−3を接続許可デバイスとする接続情報がルータ20−2内に作成される。
次に、ルータ20−3は、自己の電源をオフとする(ステップ207)。この電源のオフにより、ルータ20−3に割り当てられているアドレスAD6が消去され、ルータ20−4の接続情報テーブルT1からルータ20−3との親子関係を示す情報が削除され(図9(b)参照)、ルータ20−3とルータ20−4との親子関係が解消される。
そして、ルータ20−3はオーファン接続要求を電波到達圏内に位置する親候補のデバイスへ送る(ステップ208:図10(a)参照)。ルータ20−2は、このルータ20−3からのオーファン接続要求を受けて、ルータ20−3を接続許可デバイスとする接続情報が作成されているか否かをチェックする。この場合、ルータ20−3を接続許可デバイスとする接続情報が作成されているので、ルータ20−2は、その接続情報からルータ20−3の識別番号#3に対応するアドレスAD9を読み出し、ルータ20−3に割り当てる。また、ルータ20−2は、下位のデバイスへ付番可能なアドレスとして、アドレスブロックAD9を含むアドレスブロック「AD9〜AD11」をルータ20−3へ送る。
このようにして、ルータ20−2とルータ20−3との間で新たな親子関係が結ばれ、ルータ20−2がルータ20−3の新たな親デバイスとなる。これにより、図10(b)に示されるように、ルータ20−3の階層が第2層となる。また、エンドデバイス3−1および3−2からの再接続の要求に応えて、エンドデバイス3−1および3−2にルータ20−3からアドレスAD10およびAD11が割り当てられ、ルータ2−3とエンドデバイス3−1および3−2との間に親子関係が結ばれ、エンドデバイス3−1および3−2の階層が第3層となる。
ルータ20−3は、ルータ20−2とのオーファンによる接続に成功すると(ステップ209のYES)、一定時間の経過を待って(ステップ205)、ステップ202へ戻る。この場合、ルータ20−3は、現在の階層が元の階層以上上の階層となったことを確認して(ステップ202のYES)、一連の動作を終了する。
なお、ルータ20−2とのオーファンによる接続に成功しなかった場合には(ステップ209のNO)、電波到達圏内の他のデバイスにアソシエイト接続要求を送り(ステップ210)、そのデバイスとの接続を図る。この場合、ルータ20−4にアソシエイト接続要求が送られ、ルータ20−4との接続が図られる。そして、アソシエイト接続の成功を確認した後(ステップ211のYES)、一定時間の経過を待って(ステップ205)、ステップ202へ戻る。以下、現在の階層が元の階層以上上の階層となるまで、同様動作を繰り返す。
〔ツリー構造の維持機能:実施の形態3〕
次に、ルータ20が有するツリー構造の維持機能の第3例(実施の形態3)として、現在位置している階層よりも2階層以上上のデバイスの存在を確認する例を説明する。
この実施の形態3において、ルータ20−3は、ルータ20−4と再接続されると(図12に示すステップ301のYES(図7))、電波到達圏内に存在するデバイスに対して、そのデバイスが位置している現在の階層を問い合わせる(ステップ302)。
そして、電波到達圏内に存在するデバイスから取得した現在の階層より、自己が位置している現在の階層よりも2階層以上上のデバイス(ルータ或いはコーディネータ)が存在するか否かを確認する(ステップ303)。自己が位置している現在の階層よりも2階層以上上のデバイスの存在が確認されない場合には(ステップ303のNO)、一定時間待機した後(ステップ304)、ステップ302へ戻って同様動作を繰り返す。
自己が位置している現在の階層よりも2階層以上上のデバイスの存在が確認された場合(ステップ303のYES)、ルータ20−3は、そのデバイスの中で最も電波条件のよいデバイスに直接接続要求を送る(ステップ305)。この場合、ルータ20−3は、自己が位置している現在の階層(第3層)よりも2階層以上上のデバイスで、かつ最も電波条件のよいデバイスとして、第1層に位置するルータ20−2の存在を確認し、このルータ20−2に直接接続要求を送る(図9(a)参照)。ルータ20−2は、ルータ20−3からの直接接続要求を受けて、接続許可デバイスとしてルータ20−3の識別番号#3を登録する。また、ルータ20−3の識別番号#3と対応づけて、ルータ20−3に割り当てるべきアドレス(この例では、アドレスAD9)を決定する。これにより、ルータ20−3を接続許可デバイスとする接続情報がルータ20−2内に作成される。
次に、ルータ20−3は、自己の電源をオフとする(ステップ306)。この電源のオフにより、ルータ20−3に割り当てられているアドレスAD6が消去され、ルータ20−4の接続情報テーブルT1からルータ20−3との親子関係を示す情報が削除され(図9(b)参照)、ルータ20−3とルータ20−4との親子関係が解消される。
そして、ルータ20−3はオーファン接続要求を電波到達圏内に位置する親候補のデバイスへ送る(ステップ307:図10(a)参照)。ルータ20−2は、このルータ20−3からのオーファン接続要求を受けて、ルータ20−3を接続許可デバイスとする接続情報が作成されているか否かをチェックする。この場合、ルータ20−3を接続許可デバイスとする接続情報が作成されているので、ルータ20−2は、その接続情報からルータ20−3の識別番号#3に対応するアドレスAD9を読み出し、ルータ20−3に割り当てる。また、ルータ20−2は、下位のデバイスへ付番可能なアドレスとして、アドレスブロックAD9を含むアドレスブロック「AD9〜AD11」をルータ20−3へ送る。
このようにして、ルータ20−2とルータ20−3との間で新たな親子関係が結ばれ、ルータ20−2がルータ20−3の新たな親デバイスとなる。これにより、図10(b)に示されるように、ルータ20−3の階層が第2層となる。また、エンドデバイス3−1および3−2からの再接続の要求に応えて、エンドデバイス3−1および3−2にルータ20−3からアドレスAD10およびAD11が割り当てられ、ルータ2−3とエンドデバイス3−1および3−2との間に親子関係が結ばれ、エンドデバイス3−1および3−2の階層が第3層となる。
ルータ20−3は、ルータ20−2とのオーファンによる接続に成功すると(ステップ308のYES)、一定時間の経過を待って(ステップ304)、ステップ302へ戻る。また、ルータ20−2とのオーファンによる接続に成功しなかった場合(ステップ308のNO)、電波到達圏内の他のデバイスにアソシエイト接続要求を送り(ステップ309)、そのデバイスとの接続を図る。この場合、ルータ20−4にアソシエイト接続要求が送られ、ルータ20−4との接続が図られる。そして、アソシエイト接続の成功を確認して(ステップ310のYES)、ステップ302へ戻る。以下、同様動作を繰り返す。
これにより、ルータ20−3は、ツリー構造中の自己が位置している現在の階層を定期的にチェックし、現在位置している階層よりも2階層以上上のデバイスが存在する場合、そのデバイスを新たな親デバイスの候補として接続要求を送るという動作を繰り返す。したがって、ルータ20−3は、可能な限り上位の層に位置し、ツリー構造の階層が無駄に深くなることがない。
〔ツリー構造の維持機能:実施の形態4〕
次に、ルータ20が有するツリー構造の維持機能の第4例(実施の形態4)として、自己を起点とするツリー構造内の最下位に位置するデバイスの階層を用いる例を説明する。
この実施の形態4では、ルータ20に、自己を起点とするツリー構造内の最下位に位置するデバイス(以下、自己起点ツリー構造内最下位デバイスと呼ぶ)のそのツリー構造における階層を記憶させておく。また、ルータ20に、コーディネータ10を起点とするツリー構造を基本ツリー構造とし、この基本ツリー構造の最大階層(ツリー構造の階層の最深度)を記憶させておく。
例えば、図5(a)に示したツリー構造中のルータ20−3について言えば、ルータ20−3を起点とするツリー構造内の最下位に位置するエンドデバイス30−1および30−2を自己起点ツリー構造内最下位デバイスとし、この自己起点ツリー構造内最下位デバイスのそのツリー構造における階層(第1階層)を自己起点ツリー構造内最下位デバイスの階層として記憶させておく。また、基本ツリー構造の最大階層Lm(この例では、Lm=3)をルータ20−3に記憶させておく。
この実施の形態4において、ルータ20−3は、ルータ20−4と再接続されると(図13に示すステップ401のYES(図7))、コーディネータ10を起点とする基本ツリー構造中の自己が位置している現在の階層(第3層)と自己起点ツリー構造内最下位デバイスの階層(第1階層)とから、基本ツリー構造における自己起点ツリー構造内最下位デバイスの階層を判断する(ステップ402)。この場合、ルータ20−3は、基本ツリー構造中の自己が位置している現在の階層が第3層であり、自己起点ツリー構造内最下位デバイスの階層が第1階層なので、基本ツリー構造における自己起点ツリー構造内最下位デバイスの階層を第4層であると判断する。
そして、ルータ20−3は、基本ツリー構造における自己起点ツリー構造内最下位デバイスの階層と基本ツリー構造の最大階層とを比較する(ステップ403)。この場合、基本ツリー構造における自己起点ツリー構造内最下位デバイスの階層は第4層、基本ツリー構造の最大階層は「3」であるので、基本ツリー構造における自己起点ツリー構造内最下位デバイスの階層が基本ツリー構造の最大階層よりも下位の階層(深い階層)であると判断し(ステップ403のNO)、電波到達圏内に存在するデバイスに対して、そのデバイスが位置している現在の階層を問い合わせる(ステップ404)。
そして、ルータ20−3は、電波到達圏内に存在するデバイスから取得した現在の階層より、そのデバイスにルータ20−3を接続した場合に自己起点ツリー構造内最下位デバイスの階層が基本ツリー構造の最大階層を超えることがないデバイス(ルータ或いはコーディネータ)を探索する(ステップ405)。自己起点ツリー構造内最下位デバイスの階層が最大階層を超えることがないデバイスがなかった場合には(ステップ405のNO)、一定時間待機した後(ステップ406)、ステップ402へ戻って同様動作を繰り返す。
自己起点ツリー構造内最下位デバイスの階層が最大階層を超えることがないデバイスがあった場合(ステップ405のYES)、ルータ20−3は、そのデバイスの中で最も電波条件のよいデバイスに直接接続要求を送る(ステップ407)。この場合、ルータ20−3は、自己起点ツリー構造内最下位デバイスの階層が最大階層を超えることがないデバイスで、かつ最も電波条件のよいデバイスとして、第1階層に位置するルータ20−2の存在を確認し、このルータ20−2に直接接続要求を送る(図9(a)参照)。ルータ20−2は、ルータ20−3からの直接接続要求を受けて、接続許可デバイスとしてルータ20−3の識別番号#3を登録する。また、ルータ20−3の識別番号#3と対応づけて、ルータ20−3に割り当てるべきアドレス(この例では、アドレスAD9)を決定する。これにより、ルータ20−3を接続許可デバイスとする接続情報がルータ20−2内に作成される。
次に、ルータ20−3は、自己の電源をオフとする(ステップ408)。この電源のオフにより、ルータ20−3に割り当てられているアドレスAD6が消去され、ルータ20−4の接続情報テーブルT1からルータ20−3との親子関係を示す情報が削除され(図9(b)参照)、ルータ20−3とルータ20−4との親子関係が解消される。
そして、ルータ20−3はオーファン接続要求を電波到達圏内に位置する親候補のデバイスへ送る(ステップ409:図10(a)参照)。ルータ20−2は、このルータ20−3からのオーファン接続要求を受けて、ルータ20−3を接続許可デバイスとする接続情報が作成されているか否かをチェックする。この場合、ルータ20−3を接続許可デバイスとする接続情報が作成されているので、ルータ20−2は、その接続情報からルータ20−3の識別番号#3に対応するアドレスAD9を読み出し、ルータ20−3に割り当てる。また、ルータ20−2は、下位のデバイスへ付番可能なアドレスとして、アドレスブロックAD9を含むアドレスブロック「AD9〜AD11」をルータ20−3へ送る。
このようにして、ルータ20−2とルータ20−3との間で新たな親子関係が結ばれ、ルータ20−2がルータ20−3の新たな親デバイスとなる。これにより、図10(b)に示されるように、ルータ20−3の階層が第2層となる。また、エンドデバイス3−1および3−2からの再接続の要求に応えて、エンドデバイス3−1および3−2にルータ20−3からアドレスAD10およびAD11が割り当てられ、ルータ2−3とエンドデバイス3−1および3−2との間に親子関係が結ばれ、エンドデバイス3−1および3−2の階層が第3層となる。
ルータ20−3は、ルータ20−2とのオーファンによる接続に成功すると(ステップ410のYES)、一定時間の経過を待って(ステップ406)、ステップ402へ戻る。この場合、基本ツリー構造における自己起点ツリー構造内最下位デバイスの階層が基本ツリー構造の最大階層以上上の階層となったことを確認して(ステップ403のYES)、一連の動作を終了する。
なお、ルータ20−2とのオーファンによる接続に成功しなかった場合(ステップ410のNO)、電波到達圏内の他のデバイスにアソシエイト接続要求を送り(ステップ411)、そのデバイスとの接続を図る。この場合、ルータ20−4にアソシエイト接続要求が送られ、ルータ20−4との接続が図られる。そして、アソシエイト接続の成功を確認して(ステップ412のYES)、ステップ402へ戻る。以下、基本ツリー構造における自己起点ツリー構造内最下位デバイスの階層が基本ツリー構造の最大階層以上上の階層となるまで、同様動作を繰り返す。
この実施の形態4では、実施の形態1,2,3よりも新しい親デバイスになり得る候補が広がるので、新しい親デバイスが見つかる可能性が高くなる。
10…コーディネータ、10A…処理部、10B…ROM、10C…EEPROM、10D…RF回路、20(20−1〜20−6)…ルータ、20A…処理部、20B…ROM、20C…EEPROM、20D…RF回路、30(30−1〜30−8)…エンドデバイス、30A…処理部、30B…ROM、30C…EEPROM、30D…RF回路、T0,T1…接続情報テーブル。