(57)【特許請求の範囲】
【請求項１】
ネットワークに参加する複数のノードのアドレス変化に追従してノード管理情報を更新する制御装置であって、
前記制御装置は、
前記ネットワークの通信プロトコルを制御する通信制御部と、
前記通信制御部の情報と前記ネットワークに参加する前記複数のノードの情報とを前記ノード管理情報として管理する本体制御部とを備え、
前記本体制御部は、
前記ノード管理情報と、
前記ネットワークに参加する前記複数のノードから隣接テーブルを取得するＬＱＩサーチ実行部と、
前記通信制御部からアソシエートデバイス情報を読出して前記ノード管理情報を更新するアソシエートサーチ実行部とを備え、
前記通信制御部は、
前記アソシエートデバイス情報と、
前記ＬＱＩサーチ実行部の要求に基づいて、前記ネットワークに参加する前記複数のノードへ、前記隣接テーブルを取得要求するためのパケットを送信する送信手段と、
前記取得要求に応答して前記ノードから送られる前記隣接テーブルを受信するための受信手段と、を備え、
前記ノード管理情報には、前記ネットワークに参加する前記複数のノードのアドレス情報が含まれるように構成されており、
前記本体制御部における前記ＬＱＩサーチ実行部は、
受信した前記隣接テーブルを集計して、前記ノード管理情報に含まれない未知のアドレスを検出した場合に、当該アドレスを宛先アドレスとするパケットを送信することによって、前記アソシエートデバイス情報が更新されるように構成されている、制御装置。
【請求項２】
前記本体制御部における前記アソシエートサーチ実行部は、
前記アソシエートデバイス情報を読出し、前記ノード管理情報と比較した結果に基づき、既存ノードのアドレス変化を検出すれば、前記ノード管理情報における前記既存ノードのアドレス情報を更新するように構成されている、請求項１に記載の制御装置。
【請求項３】
前記ノード管理情報には、前記ネットワークに参加する前記複数のノードの前記ネットワークへの参加または離脱を示す生存情報が含まれるように構成されている、請求項１または２に記載の制御装置。
【請求項４】
前記本体制御部における前記アソシエートサーチ実行部は、
既存ノードのアドレス変化を検出、または、新規ノードが前記ネットワークに参加したことを検出、または、既存ノードが前記ネットワークから離脱したことを検出すれば、当該検出結果を外部アプリケーションに通知するように構成されている、請求項２または請求項３に記載の制御装置。
【請求項５】
請求項１〜４のいずれかに記載の制御装置と、
ネットワークを介して前記制御装置と通信する複数のノードとを備える、通信ネットワークシステム。
【請求項６】
制御装置が、ネットワークに参加する複数のノードのアドレス変化に追従してノード管理情報を更新するノード情報管理方法であって、
前記制御装置は、
前記ネットワークの通信プロトコルを制御する通信制御部と、
前記通信制御部の情報と前記ネットワークに参加する前記複数のノードの情報とを前記ノード管理情報として管理する本体制御部とを備え、
前記ノード管理情報には、前記ネットワークに参加する前記複数のノードのアドレス情報が含まれるように構成されており、
前記ノード情報管理方法は、
前記本体制御部が、前記ネットワークに参加する前記複数のノードから隣接テーブルを取得するステップと、
前記本体制御部が、前記通信制御部からアソシエートデバイス情報を読出して前記ノード管理情報を更新するステップと、
前記通信制御部が、前記本体制御部の要求に基づいて、前記ネットワークに参加する前記複数のノードへ、前記隣接テーブルを取得要求するためのパケットを送信するステップと、
前記通信制御部が、前記取得要求に応答して前記ノードから送られる前記隣接テーブルを受信するステップと、
前記本体制御部が、受信された前記隣接テーブルを集計して、前記ノード管理情報に含まれない未知のアドレスを検出した場合に、前記通信制御部を介して当該アドレスを宛先アドレスとするパケットを送信することによって、前記アソシエートデバイス情報を更新するステップとを備える、ノード情報管理方法。
【請求項７】
前記ノード管理情報を更新するステップは、
前記本体制御部が、前記アソシエートデバイス情報を読出し、前記ノード管理情報と比較した結果に基づき、既存ノードのアドレス変化を検出すれば、前記ノード管理情報における前記既存ノードのアドレス情報を更新するステップを含む、請求項６に記載のノード情報管理方法。
【請求項８】
前記ノード管理情報を更新するステップは、
前記本体制御部が、既存ノードのアドレス変化を検出、または、新規ノードが前記ネットワークに参加したことを検出、または、既存ノードが前記ネットワークから離脱したことを検出すれば、当該検出結果を外部アプリケーションに通知するステップを含む、請求項６または７に記載のノード情報管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は制御装置、通信システム、ノード情報管理方法、およびノード情報管理プログラムに関し、特に、複数のノードに割当てられるアドレスなどの情報を管理する制御装置、通信システム、ノード情報管理方法、およびノード情報管理プログラムに関する。
【背景技術】
【０００２】
従来、複数の消費電力測定器（以下、「タップ」とも称する）と、複数の消費電力測定器を制御するための制御装置と、ディスプレイを備えた電子機器とを備える通信システムが知られている。各タップは、宅内のコンセントに接続されるとともに、当該タップに接続された家電の瞬時消費電力値を測定する。さらに、各タップは瞬時消費電力を累積して積算電力量を蓄える。
【０００３】
このような通信システムにおいては、各タップは、当該タップに接続された家電の瞬時消費電力値や積算電力量などの電力情報を制御装置に送信することが行なわれている。制御装置は、一定時間毎に各タップの電力情報を収集し、当該制御装置に保存する。また、制御装置は、各タップの電力情報をディスプレイを備えた電子機器等に転送する。ディスプレイを備えた電子機器等は、家電の瞬時消費電力値や積算電力量などの電力情報をユーザに視認させるためにディスプレイに表示する。
【０００４】
このような通信システムにおいては、制御装置やディスプレイを備えた電子機器等は、各タップに対してパケットを送信する。例えば、制御装置の電力情報収集プログラムは、電力情報を収集するとき、各タップに対して電力情報を読出すための読出し要求パケットを送信し、その応答パケットを受信することで電力情報を収集する。
【０００５】
このような通信システムにおいては、各タップ（ノード）と制御装置との間で通信するために、何らかの通信方式が使われる。一般的な通信方式によると、各タップと制御装置が同一ネットワーク上に存在する機器にするために、それらの使用を開始するにあたって、ペアリング処理が必要である。ペアリング処理を実施することにより、タップを制御装置のネットワークに参加させることができる。ネットワークに参加することを、ジョインともいう。ここで、制御装置のネットワークとは、制御装置が形成したネットワーク、もしくは、制御装置が現在参加しているネットワークの事を意味する。
【０００６】
本発明において、ノードとはネットワーク上に存在する通信装置の意味で用いられる。制御装置は１つのノードである。各タップもそれぞれ１つのノードである。
【０００７】
ペアリング処理を行なうと、参加するタップは、制御装置のネットワークに関する情報（以下、ネットワーク情報）を保存する。また、制御装置は、当該タップに関する情報（以下、ノード情報）を保存する。ここで、保存する事を登録するとも言う。
【０００８】
また、ペアリング処理とは反対操作のリーブ処理というものもある。リーブ処理とは、タップを制御装置のネットワークから離脱させることを言う。ネットワークから離脱するという事を、リーブするとも言う。リーブ処理を行なうと、離脱するタップは、当該タップに保存されているネットワーク情報を消去すると同時に、制御装置は、制御装置に保存されている当該タップに関する情報を消去する。
【０００９】
制御装置は、制御装置のネットワークに、いくつのノードが存在するか、どのようなノードが存在するか、を管理する。このようにノード情報を管理するためのプログラム（以下、ノード情報管理プログラム）が必要である。他のアプリケーション（電力情報収集プログラムなど）は、まず、ノード情報管理プログラムに問合せを行ない、ネットワークに存在するノードのノード情報を得る。そして、得られたノード情報を元に、ネットワークにタップが存在していることが分かれば、各タップに対して電力情報を得るための読出し要求パケットなどを送信する。
【００１０】
たとえば、上記通信システムとしてパーソナルエリアネットワークであるＺｉｇＢｅｅ（登録商標）を用いることができる。ＺｉｇＢｅｅに関する文献として、非特許文献１、２および３がある。
【００１１】
非特許文献２には、ＺｉｇＢｅｅの仕様が開示されている。非特許文献２には、たとえば、ＺｉｇＢｅｅで用いられるコマンド等が開示されている。以下、コーディネータ、ルータ、エンドデバイスという用語は、それぞれＺｉｇＢｅｅにおける論理デバイスの種別を表わすものとする。論理デバイスによってＺｉｇＢｅｅネットワークでの役割が異なる。本発明における、制御装置はコーディネータとして動作するものとする。タップはルータまたはエンドデバイスのいずれかとして動作するものとする。
【００１２】
非特許文献３にも、ＺｉｇＢｅｅの仕様が開示されている。非特許文献３には、たとえば、ＺｉｇＢｅｅの各種プロファイルで共通に用いられるクラスタ（機能）の定義、属性の定義、また属性情報の読出しや書込みをするためのコマンド等が開示されている。
【００１３】
上記通信システムにＺｉｇＢｅｅの規格を適用すると、各タップはあるクラスタにおける属性として電力情報を提供することができる。制御装置は、各タップに対して属性リード（Read Attribute）を送信し、タップから属性リード応答（Read Attribute Response）を受信することで電力情報を収集する。ＺｉｇＢｅｅの規格では、属性リードなどのコマンドを送信するときに、ショートアドレスを宛先アドレスに指定するのが一般的である。
【００１４】
また、非特許文献１（A.2 Stochastic Addressing）には、ＺｉｇＢｅｅ仕様におけるアドレス衝突解決（address conflict resolution）手法が説明されている。非特許文献１によれば、新しいノードがネットワークに参加するとき、当該ノードのショートアドレスが乱数で割当てられる。このとき、たまたますでに存在する他のノードと同じショートアドレスが割当てられることがあり（これをアドレス衝突と呼ぶ）、アドレス衝突が発生したときにそれを解消する手法がある。簡単に説明すると、各ノードは、アドレス衝突検出通知を受け取って、自身のショートアドレスが衝突した事が分かると、自身のショートアドレスを変更する。
【先行技術文献】
【非特許文献】
【００１５】
【非特許文献１】Ｄｒｅｗ  Ｇｉｓｌａｓｏｎ著「ＺＩＧＢＥＥ  ＷＩＲＥＬＥＳＳ  ＮＥＴＷＯＲＫＩＮＧ」（米国）、Ｎｅｗｎｅｓ、２００８年９月４日、ｐ．２１９およびｐ．３９１
【非特許文献２】ＺｉｇＢｅｅ  Ａｌｌｉａｎｃｅ「ＺＩＧＢＥＥ  ＳＰＥＣＩＦＩＣＡＴＩＯＮ  ＺｉｇＢｅｅ  Ｄｏｃｕｍｅｎｔ０５３４７４ｒ１７」、ＺｉｇＢｅｅ  Ｓｔａｎｄａｒｄｓ  Ｏｒｇａｎｉｚａｔｉｏｎ、2008年1月17日
【非特許文献３】ＺｉｇＢｅｅ  Ａｌｌｉａｎｃｅ「ＺＩＧＢＥＥ  ＣＬＵＳＴＥＲ  ＬＩＢＲＡＲＹ  ＳＰＥＣＩＦＩＣＡＴＩＯＮ Ｄｏｃｕｍｅｎｔ  ０７５１２３ｒ０２ＺＢ」、ＺｉｇＢｅｅ  Ｓｔａｎｄａｒｄｓ  Ｏｒｇａｎｉｚａｔｉｏｎ、2008年5月29日
【発明の概要】
【発明が解決しようとする課題】
【００１６】
上述したように、電力情報収集プログラムなどのアプリケーションは、ノード情報管理プログラムに対して問合せを行ない、ネットワークに存在するノード情報を得る。そのノード情報には、ノードの種別（例えば当該ノードがタップであるかどうかが分かる）と、ノードのショートアドレスが少なくとも含まれる。よって、電力情報収集プログラムなどのアプリケーションは、ネットワーク上に存在するタップを見つけることができ、当該タップのショートアドレスを宛先アドレスに指定して属性リードを送信して、電力情報を得ることができる。
【００１７】
一方で、ＺｉｇＢｅｅＰＲＯの仕様によれば、アドレス衝突が発生した場合などに、ノードのショートアドレスが変更されうる。ショートアドレスが変更されたとき、ノード情報管理プログラムは、その変更を確実にノード情報に反映しなければならない。さもなければ、電力情報収集プログラムなどのアプリケーションは、ショートアドレスが変更されたタップに対してパケットを送信することができなくなる。従って、電力情報を得られなくなる。
【００１８】
それゆえに本発明の目的は、ノードのショートアドレスが変更されたときにも、その変更を確実にノード情報に反映させることができる制御装置、通信システム、ノード情報管理方法、およびノード情報管理プログラムを提供することである。
【課題を解決するための手段】
【００１９】
この発明のある局面に係る、ネットワークに参加する複数のノードのアドレス変化に追従してノード管理情報を更新する制御装置は、ネットワークの通信プロトコルを制御する通信制御部と、通信制御部の情報とネットワークに参加する複数のノードの情報とをノード管理情報として管理する本体制御部とを備える。
【００２０】
本体制御部は、ノード管理情報と、ネットワークに参加する複数のノードから隣接テーブルを取得するＬＱＩサーチ実行部と、通信制御部からアソシエートデバイス情報を読出してノード管理情報を更新するアソシエートサーチ実行部とを備える。
【００２１】
好ましくは、通信制御部は、アソシエートデバイス情報と、ＬＱＩサーチ実行部の要求に基づいて、ネットワークに参加する複数のノードへ、隣接テーブルを取得要求するためのパケットを送信する送信手段と、取得要求に応答してノードから送られる隣接テーブルを受信するための受信手段とを備える。
【００２２】
好ましくは、ノード管理情報には、ネットワークに参加する複数のノードのアドレス情報が含まれるように構成されており、本体制御部におけるＬＱＩサーチ実行部は、受信した隣接テーブルを集計して、ノード管理情報に含まれない未知のアドレスを検出した場合に、当該アドレスを宛先アドレスとするパケットを送信することによって、アソシエートデバイス情報が更新されるように構成されている。
【００２３】
好ましくは、本体制御部におけるアソシエートサーチ実行部は、アソシエートデバイス情報を読出し、ノード管理情報と比較した結果に基づき、既存ノードのアドレス変化を検出すれば、ノード管理情報における既存ノードのアドレス情報を更新するように構成されている。
【００２４】
好ましくは、ノード管理情報には、ネットワークに参加する複数のノードのネットワークへの参加または離脱を示す生存情報が含まれるように構成されている。
【００２５】
このましくは、本体制御部におけるアソシエートサーチ実行部は、アソシエートデバイス情報を読出し、ノード管理情報と比較した結果に基づき、新規ノードがネットワークに参加したことを検出すれば、ノード管理情報における新規ノードの生存情報を「参加」に更新するように構成されている。
【００２６】
好ましくは、本体制御部におけるアソシエートサーチ実行部は、アソシエートデバイス情報を読出し、ノード管理情報と比較した結果に基づき、既存ノードがネットワークから離脱したことを検出すれば、ノード管理情報における既存ノードの生存情報を「離脱」に更新するように構成されている。
【００２７】
好ましくは、本体制御部におけるアソシエートサーチ実行部は、既存ノードのアドレス変化を検出、または、新規ノードがネットワークに参加したことを検出、または、既存ノードがネットワークから離脱したことを検出すれば、当該検出結果を外部アプリケーションに通知するように構成されている。
【００２８】
好ましくは、制御装置における本体制御部は、ＬＱＩサーチ実行部とアソシエートサーチ実行部とが繰り返し実行されるように構成されている。
【００２９】
この発明のある局面に従うと、上記の制御装置と、ネットワークを介して当該制御装置と通信する複数のノードとを備える、通信ネットワークシステムが提供される。
【００３０】
この発明のさらに他の局面に従えば、ネットワークに参加する複数のノードのアドレス変化に追従してノード管理情報を更新するノード情報管理方法が提供される。ノード管理情報には、ネットワークに参加する複数のノードのアドレス情報が含まれるように構成されている。方法は、ネットワークに参加する複数のノードから隣接テーブルを取得するステップと、取得した隣接テーブルを集計して、ノード管理情報に含まれない未知のアドレスを検出した場合に、当該アドレスを宛先アドレスとするパケットを送信するステップと、ネットワークの通信プロトコルを制御する通信制御部からアソシエートデバイス情報を読出してノード管理情報を更新するステップとを備える。
【００３１】
この発明のさらに他の局面に従うと、上記の方法をコンピュータに実行させる、ノード情報管理プログラムが提供される。
【発明の効果】
【００３２】
本発明によれば、宛先となるノードをアドレスにより指定して通信する場合において、ノードそれぞれを異なるアドレスで管理することができる。
【図面の簡単な説明】
【００３３】
【図１】本発明の実施の形態に係るネットワークの概略構成を示した図である。
【図２】本発明の実施の形態に係る中継器の外観を表した図である。
【図３】本発明の実施の形態に係る中継器のブロック図である。
【図４】本発明の実施の形態に係るタップの外観斜視図である。
【図５】本発明の実施の形態に係るタップのハードウェア構成を表した図である。
【図６】本発明の実施の形態に係るタブレット端末のハードウェア構成を表した図である。
【図７】本発明の実施の形態に係るタップおよび中継器におけるソフトウェア構造を説明するための図である。
【図８】本発明の実施の形態に係る中継器における実装方法を説明するための図である。
【図９】本発明の実施の形態に係るアソシエートデバイスリストの構成図である。
【図１０】本発明の実施の形態に係るＺｉｇＢｅｅノード管理情報を概念的に表す図である。
【図１１】本発明の実施の形態に係るアドレス衝突を説明するための図である。
【図１２】本発明の実施の形態に係るアドレス衝突を説明するための図である。
【図１３】本発明の実施の形態に係るアドレス衝突を説明するための図である。
【図１４】本発明の実施の形態に係るアドレス衝突を説明するための図である。
【図１５】本発明の実施の形態に係る隣接テーブルを説明するための図である。
【図１６】本発明の実施の形態に係るショートアドレスの変更を説明する図である。
【図１７】本発明の実施の形態に係るアソシエートサーチのフローチャートである。
【図１８】本発明の実施の形態に係るＬＱＩサーチのフローチャートである。
【図１９】本発明の実施の形態に係る中継器のＺｉｇＢｅｅマネージャが実行する処理を示す図である。
【図２０】本発明の実施の形態に係る中継器の機能構成を示す図である。
【図２１】本発明の実施の形態に係るネットワークの他の概略構成を示した図である。
【図２２】本発明の実施の形態に係る他のタブレット端末のブロック図である。
【発明を実施するための形態】
【００３４】
以下、図面を参照しつつ、本発明の実施の形態に係るネットワークについて説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【００３５】
なお、ＺｉｇＢｅｅ仕様には、バージョン（スタックプロファイル）がいくつかあるが、本実施の形態では、スタックプロファイルが０ｘ０２である、ＺｉｇＢｅｅＰＲＯを前提とする。また、本実施の形態では、デバイスとノードを同等の意味で使用する。
【００３６】
＜Ａ．ネットワークの概要＞
図１は、本発明の実施の形態に係るネットワークの概略構成を示した図である。図１を参照して、本発明の実施の形態に係るシステムにはネットワークＺとネットワークＥから構成される。ネットワークＺは、低速無線通信ネットワーク（本例においてはＺｉｇＢｅｅを想定）を示す。ネットワークＥは、高速通信ネットワーク（本例においては、Ｅｔｈｅｒｎｅｔ（登録商標）、または、ＷｉＦｉ（登録商標：Wireless  Fidelity）、またはそれらの組み合わせを想定）を示す。なお、本例においては上記の方式を用いたネットワークについて説明するが特に上記に限るものではない。例えば、ネットワークＺにＺ−ＷＡＶＥ（登録商標）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、特定小電力無線などを用いることができる。また例えば、ネットワークＥにＰＬＣ（Power  Line  Communications：電力線通信）などを用いることも可能である。
【００３７】
ネットワークＺには、中継器１００１と、複数のタップ１００４ａ，１００４ｂ，１００４ｃ等が存在するものとする。ネットワークＥには、中継器１００１と、ワイヤレスブロードバンドルータ１００２と、パーソナルコンピュータ１００３等が存在するものとする。タブレット端末１００８が含まれていてもよい。中継器１００１はネットワークＺとネットワークＥの両方のネットワークに含まれる。また、中継器１００１はＨＴＴＰ（Hyper  Text  Transfer  Protocol）サーバ機能を有する。複数のタップ１００４ａ，１００４ｂ，１００４ｃには、それぞれ、複数の家電機器（一例として、エアーコンディショナ１００５，冷蔵庫１００６，テレビ１００７など）が接続されている。
【００３８】
なお、本実施の形態における「中継器」という用語は、先に述べた「制御装置」と同じ装置の意味で用いている。一般的な呼び方として、制御装置の他に、ゲートウェイ（Gateway）、収集装置、コンセントレータ（Concentrator）などと言うこともある。本実施の形態における「中継器」は、ネットワークＺとネットワークＥの異なるネットワーク間を中継する機能（プロトコル変換しないで中継する機能（＝ブリッジ）と、プロトコル変換して中継する機能（＝ゲートウェイ）の両方を含む）、複数のタップから電力情報データを収集する機能、およびネットワークＺ上に存在するノードを管理する機能、を持つ。どの機能をフォーカスするかによって、当該制御装置の呼び方は変わる。
【００３９】
エアーコンディショナ１００５の電源プラグ１０５１は、タップ１００４ａのソケットに差し込まれている。同様に、冷蔵庫１００６の電源プラグ１０６１は、タップ１００４ｂのソケットに差し込まれている。また、テレビ１００７の電源プラグ１０７１は、タップ１００４ｃのソケットに差し込まれている。
【００４０】
タップ１００４ａ、１００４ｂ、１００４ｃは、それぞれ、宅内に設置されたコンセント１０１５，１０１６，１０１７に取り付けられている。これにより、タップ１００４ａ，１００４ｂ、１００４ｃは、給電される。
【００４１】
タップ１００４ａ、１００４ｂ、１００４ｃは、各々に接続される各家電の消費電力を測定する消費電力測定器である。たとえば、タップ１００４ａは、エアーコンディショナ１００５の消費電力を測定する。タップ１００４ａ、１００４ｂ、１００４ｃの各々は、測定した消費電力を中継器１００１に送信することができる。なお、以下では、説明の便宜上、タップ１００４ａ，１００４ｂ，１００４ｃを区別することなく表わす場合には、「タップ１００４」と表記する。
【００４２】
中継器１００１および複数のタップ１００４の各々は、低速無線通信モジュールを備える。中継器１００１と複数のタップ１００４とにより、低速無線通信ネットワークＺ（以下、単に「ネットワークＺ」とも称する）を構成している。また、中継器１００１は、Ｅｔｈｅｒｎｅｔによりワイヤレスブロードバンドルータ１００２に接続されている。中継器１００１は、ネットワークＺとネットワークＥとのブリッジ（媒体変換装置）あるいはゲートウェイ（プロトコル変換装置）として機能する。中継器１００１は、複数のタップ１００４との間で低速度の無線通信を行なう。
【００４３】
ワイヤレスブロードバンドルータ１００２は、インターネットに接続されていてもよい。パーソナルコンピュータ１００３は、ＥｔｈｅｒｎｅｔまたはＷｉＦｉにより、ワイヤレスブロードバンドルータ１００２に接続される。
【００４４】
パーソナルコンピュータ１００３は、ブラウザ（ＨＴＴＰクライアント）が動作する一般的なパソコンである。パーソナルコンピュータ１００３は、パーソナルコンピュータ１００３のブラウザ（ＨＴＴＰクライアント）を経由して中継器１００１のＨＴＴＰサーバと通信する。中継器１００１のＨＴＴＰサーバは、設定用ＣＧＩプログラムを呼び出すことによって、中継器自身の設定情報を取得し、また、設定できるようになっている。このようにして、パーソナルコンピュータ１００３は、中継器１００１のさまざま設定を行なうことができる。このＨＴＴＰサーバとブラウザ（ＨＴＴＰクライアント）の働きによって、貧弱な入力装置しか持たない中継器１００１でも、複雑な設定を行なうことができる。
【００４５】
タブレット端末１００８は、ワイヤレスブロードバンドルータ１００２を介して、中継器１００１と通信を行なう。タブレット端末１００８は、ＷｉＦｉにより、ワイヤレスブロードバンドルータ１００２に接続される。
【００４６】
タブレット端末１００８は、消費電力に関する各種の表示を行なうことができる。タブレット端末１００８は、たとえば、各家電の消費電力を表示できる。また、タブレット端末１００８も、パーソナルコンピュータ１００３と同様に、ブラウザ（ＨＴＴＰクライアント）を動作させることができる。よって、タブレット端末１００８は、ブラウザ（ＨＴＴＰクライアント）を経由して、中継器１００１のＨＴＴＰサーバと通信し、中継器１００１を設定できるようになっている。
【００４７】
以下では、ネットワークＺとして、家電向けの短距離無線通信規格の一つであるＺｉｇＢｅｅを用いた例について説明する。
【００４８】
＜Ｂ．中継器１００１の構成＞
図２は、中継器１００１の外観を表した図である。図２（Ａ）は、中継器１００１の斜視図である。図２（Ｂ）は、中継器１００１の側面図である。図２（Ｃ）は、中継器１００１の他の側面の要部拡大図である。
【００４９】
図２（Ａ）を参照して、中継器１００１は、発光部１１０３と、アンテナ１１０７とを備える。発光部１１０３は、中継器１００１の動作状態等を表示するための３つのＬＥＤ（Light Emitting Diode）１１０３ａ，１１０３ｂ，１１０３ｃにより構成される。
【００５０】
ＬＥＤ１１０３ａは、中継器１００１の電源がオン・オフの状態を示すための発光素子（電源ＬＥＤ）である。ＬＥＤ１１０３ｂは、タップ１００４との通信状態を表示するための発光素子（タップＬＥＤ）である。ＬＥＤ１１０３ｃは、ワイヤレスブロードバンドルータ１００２との通信状態を表示するための発光素子（ルータＬＥＤ）である。
【００５１】
アンテナ１１０７は、各タップ１００４ａ，１００４ｂ，１００４ｃと通信するために用いられる。
【００５２】
図２（Ｂ）を参照して、中継器１００１は、発光部１１０３が設けられた表面とは反対側の表面に、プッシュボタン１１０８をさらに備える。プッシュボタン１１０８は、中継器１００１をジョイン許可状態（ジョインモード）、または、リーブモードに遷移させるためのボタンである。
【００５３】
図２（Ｃ）を参照して、中継器１００１は、発光部１１０３が設けられた表面およびプッシュボタン１１０８が設けられた表面とは異なる表面に、スライドスイッチ１１０９をさらに備える。スライドスイッチ１１０９は、ユーザの操作によりスライドする。スライドスイッチ１１０９は、ＪＯＩＮ位置、ＮＯＰ（No  Operation）位置、およびＬＥＡＶＥ位置のうちのいずれか１つの位置をとることができる。なお、スライドスイッチ１１０９は、プッシュボタン１１０８が押されたときに、中継器をジョイン許可状態、あるいはリーブモードのいずれかを選択するために用いられる。スライドスイッチ１１０９は、通常の使用時にはＮＯＰ位置に設定される。
【００５４】
図３は、中継器１００１のブロック図である。図３を参照して、中継器１００１は、制御部１１０１と、発光部１１０３と、高速通信インターフェイス部１１０４と、電源部１１０５と、無線ＲＦ（Radio  Frequency）内蔵通信コントローラ部１１０６と、アンテナ１１０７と、プッシュボタン１１０８と、スライドスイッチ１１０９と、図示しないリセットスイッチとを備える。
【００５５】
無線ＲＦ内蔵通信コントローラ部１１０６は、ＣＰＵ（Central  Processing  Unit）１１６１と、ＲＯＭ（Read  Only  Memory）１１６２と、ＲＡＭ（Random  Access  Memory）１１６３と、ＧＰＩＯ（General  Purpose  Input/Output）１１６４と、無線ＲＦ部１１６５と、制御部１１０１との間で通信するためのＵＡＲＴ（Universal  Asynchronous  Receiver  Transmitter）１１６６とを含む。
【００５６】
なお、本実施例では、無線ＲＦ内蔵通信コントローラ部１１０６は、ＺｉｇＢｅｅコーディネータとして動作するものとして説明する。他の実施の形態として、無線ＲＦ内蔵通信コントローラ部１１０６は、ＺｉｇＢｅｅルータとして動作させてもよい。その場合、ネットワークＺ上に存在する他の通信機器から常に受信可能であるように設定しておく。
【００５７】
また、ＲＯＭ１１６２と、ＲＡＭ１１６３と、ＵＡＲＴ１１６６と、ＧＰＩＯ１１６４と、無線ＲＦ部１１６５とは、それぞれ、ＣＰＵ１１６１に接続されている。
【００５８】
無線ＲＦ内蔵通信コントローラ部１１０６は、アンテナ１１０７と接続されている。無線ＲＦ内蔵通信コントローラ部１１０６は、ネットワークＺ上に存在する通信機器との間の通信を制御する。なお、ＲＯＭ１１６２は、ＮＶＲＡＭ（不揮発ＲＡＭ）で構成されるのが一般的である。
【００５９】
制御部１１０１は、ＣＰＵ１１６１に比べて高性能なＣＰＵを備えており、またメモリも豊富である。当該構成によって、中継器１００１は、高度な情報処理を実現できる。
【００６０】
高速通信インターフェイス部１１０４は、ワイヤレスブロードバンドルータ１００２との間でＥｔｈｅｒｎｅｔまたはＷｉＦｉを用いた通信を行なうためのインターフェイスである。電源部１１０５は、制御部１１０１と無線ＲＦ内蔵通信コントローラ部１１０６とに電力を供給する。
【００６１】
制御部１１０１は、発光部１１０３と、高速通信インターフェイス部１１０４と、電源部１１０５と、無線ＲＦ内蔵通信コントローラ部１１０６と、プッシュボタン１１０８と、スライドスイッチ１１０９とに接続されている。制御部１１０１は、中継器１００１の全体的な動作を制御する。制御部１１０１は、プッシュボタン１１０８およびスライドスイッチ１１０９からの入力を受け付ける。また、制御部１１０１は、発光部１１０３に出力指示を出す。
【００６２】
次に、ユーザがペアリングを行なうときの操作の概要について説明する。まず、ユーザが、スライドスイッチ１１０９をＮＯＰ位置からＪＯＩＮ位置にスライドさせる。その後、ユーザは、プッシュボタン１１０８を押す。これにより、予め定められた時間（たとえば６０秒間）、中継器１００１がジョイン許可状態となる。なお、この間、制御部１１０１は、発光部１１０３を予め定められた状態で発光させる。そして、中継器１００１がジョイン許可状態で、ユーザがタップ１００４をコンセントに差すこと等により、中継器１００１とタップ１００４とのペアリングが行なわれる。
【００６３】
＜Ｃ．タップ１００４の構成＞
図４は、タップ１００４の斜視図である。図４を参照して、タップ１００４は、プラグ差込用のソケット２１０１と、プラグ２１０２と、ＬＥＤ２１０５と、設定ボタン２１０６とを備える。タップの使用時には、ユーザは、家電の電源プラグをソケット２１０１に差し込むとともに、宅内に設置されたコンセントにプラグ２１０２を差し込む（図１参照）。なお、ソケット２１０１の形状は、接続される家電の電源プラグの形状に応じて決まる。
【００６４】
図５は、タップ１００４のハードウェア構成を表した図である。図５を参照して、タップ１００４は、ソケット２１０１と、プラグ２１０２と、シャント抵抗２１０３と、電源部２１０４と、ＬＥＤ２１０５と、設定ボタン２１０６と、アンテナ２１０７と、電力センサ部２１１０と、無線ＲＦ内蔵通信コントローラ部２１２０と、配線２１３１と、配線２１３２と、配線２１３３とを備える。
【００６５】
電力センサ部２１１０は、電圧入力ＡＤＣ部２１１１と、電流入力ＡＤＣ部２１１２と、乗算器２１１３と、デジタル／周波数変換部２１１４とを含む。無線ＲＦ内蔵通信コントローラ部２１２０は、ＣＰＵ２１２１と、ＲＯＭ２１２２と、ＲＡＭ２１２３と、ＧＰＩＯ２１２４と、無線ＲＦ部２１２５とを含む。
【００６６】
配線２１３２と配線２１３３とは、シャント抵抗２１０３により接続されている。シャント抵抗２１０３は電流を測定するために使われる微小な（数百マイクロΩ）抵抗である。
【００６７】
ソケット２１０１とプラグ２１０２とは、配線２１３１〜２１３３およびシャント抵抗２１０３で接続されている。配線２１３１は、プラグ２１０２の一方の端子およびソケット２１０１の一方の端子に接続されている。配線２１３２は、プラグ２１０２の他方の端子とシャント抵抗２１０３の一方の端部とに接続されている。配線２１３３は、ソケット２１０１の他方の端子とシャント抵抗２１０３の他方の端部とに接続されている。
【００６８】
電源部２１０４は、配線２１３２に接続されている。電源部２１０４は、交流を直流に変換する。電源部２１０４は、変換により得られた直流電力を電力センサ部２１１０と無線ＲＦ内蔵通信コントローラ部２１２０とに与える。
【００６９】
電圧入力ＡＤＣ部２１１１は、配線２１３１と、配線２１３２とに接続されている。電圧入力ＡＤＣ部２１１１は、配線２１３１と配線２１３２との間の電圧（電位差）を、デジタル信号にて乗算器２１１３に出力する。
【００７０】
電流入力ＡＤＣ部２１１２は、配線２１３２と、配線２１３３とに接続されている。電流入力ＡＤＣ部２１１２は、シャント抵抗２１０３に流れる電流の電流値を、デジタル信号にて乗算器２１１３に出力する。
【００７１】
乗算器２１１３は、電圧入力ＡＤＣ部２１１１からの出力と、電流入力ＡＤＣ部２１１２からの出力とを乗算し、当該乗算により得られたデジタル信号をデジタル／周波数変換部２１１４に出力する。
【００７２】
デジタル／周波数変換部２１１４は、入力されたデジタル信号を周波数信号に変換する。デジタル／周波数変換部２１１４は、変換により得られた周波数信号を、無線ＲＦ内蔵通信コントローラ部２１２０のＧＰＩＯに出力する。
【００７３】
ＣＰＵ２１２１は、ＧＰＩＯから取得した上記周波数信号をデータ変換する。無線ＲＦ部２１２５は、データ変換により得られた信号を、アンテナ２１０７を用いて中継器１００１に送信する。
【００７４】
ＲＯＭ２１２２には、ＣＰＵ２１２１が実行するプログラム等が格納されている。なお、ＲＯＭ２１２２は、ＮＶＲＡＭで構成されるのが一般的である。
【００７５】
ＬＥＤ２１０５は、タップ１００４のデータ処理状態を、点滅および／または点灯させる色等により表す。設定ボタン２１０６は、ユーザによるタップ１００４の初期設定等のために用いられる。
【００７６】
なお、本実施例では、無線ＲＦ内蔵通信コントローラ部２１２０は、ルータとして動作するものとして説明する。
【００７７】
＜Ｄ．タブレット端末１００８の構成＞
図６は、タブレット端末１００８のハードウェア構成を表した図である。図６を参照して、タブレット端末１００８は、ＣＰＵ４０１０と、タッチスクリーン４０２０と、時計４０３０と、メモリ４０４０と、ボタン４０５０と、通信インターフェイス４０６０と、スピーカ４０７０とを含む。タッチスクリーン４０２０は、ディスプレイ４０２１と、タッチパネル（タブレット）４０２２とで構成され、ディスプレイ４０２１の表面にタッチパネル４０２２が敷設されている。ただし、タブレット端末１００８は、タッチパネル４０２２を有していなくともよい。
【００７８】
メモリ４０４０は、各種のＲＡＭ、ＲＯＭ、フラッシュメモリ、ハードディスクなどによって実現される。メモリ４０４０は、ＣＰＵ４０１０によって実行される、ＯＳ、各種の制御プログラム、並びにＣＰＵ４０１０によって読み出されるテーブル等の各種データテーブルを格納する。たとえば、メモリ４０４０における不揮発性のメモリであるフラッシュメモリに、タップ１００４に対して設定（再設定）を行なうためのアプリケーションが格納されている。なお、当該アプリケーションは、ユーザからのリクエストに応じてタップ１００４の設定を行なう。
【００７９】
ＣＰＵ４０１０は、メモリ４０４０に記憶されている各種のプログラムを実行することによって、各種の情報処理などを実行する。ここでいうプログラムとは、ＣＰＵにより直接実行可能なプログラムだけでなく、ソースプログラム形式のプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
【００８０】
ディスプレイ４０２１は、ＣＰＵ４０１０によって制御されることによって、たとえば、各家電機器１００５〜１００７の消費電力を表示する。タッチパネル４０２２は、ユーザの指によるタッチ操作を検出して、タッチ座標などをＣＰＵ４０１０に入力する。ＣＰＵ４０１０は、タッチパネル４０２２を介して、ユーザからの命令を受け付ける。
【００８１】
ボタン４０５０は、タブレット端末１００８の表面に配置される。決定キー、方向キー、テンキーなどの複数のボタンがタブレット端末１００８に配置されても良い。ボタン４０５０は、ユーザからの命令を受け付ける。ボタン４０５０は、ユーザからの命令をＣＰＵ４０１０に入力する。
【００８２】
通信インターフェイス４０６０は、ＣＰＵ４０１０によって制御されることによって、ワイヤレスブロードバンドルータ１００２を介して、中継器１００１と通信する。通信インターフェイス４０６０は、上述したように、たとえばＷｉＦｉにより、ワイヤレスブロードバンドルータ１００２と通信する。
【００８３】
スピーカ４０７０は、ＣＰＵ４０１０からの命令に基づいて、音声を出力する。たとえば、ＣＰＵ４０１０は、音声データに基づいて、スピーカ４０７０に音声を出力させる。時計４０３０は、ＣＰＵ４０１０からの命令に基づいて、現在の日付や時刻をＣＰＵ４０１０に入力する。
【００８４】
ＣＰＵ４０１０は、メモリ４０４０に記憶されている各種のプログラムを実行することによって、各種の情報処理などを実行する。換言すれば、タブレット端末１００８における処理は、各ハードウェアおよびＣＰＵ４０１０により実行されるソフトウェアによって実現される。このようなソフトウェアは、メモリ４０４０に予め記憶されている場合がある。また、ソフトウェアは、記憶媒体に格納されて、プログラム製品として流通している場合もある。あるいは、ソフトウェアは、いわゆるインターネットに接続されている情報提供事業者によってダウンロード可能なプログラム製品として提供される場合もある。
【００８５】
このようなソフトウェアは、図示しない読取装置を利用することによってその記憶媒体から読み取られて、あるいは、通信インターフェイス４０６０を利用することによってダウンロードされて、メモリ４０４０に一旦格納される。ＣＰＵ４０１０は、ソフトウェアを実行可能なプログラムの形式でメモリ４０４０に格納してから、当該プログラムを実行する。
【００８６】
なお、記憶媒体としては、ＣＤ−ＲＯＭ（Compact  Disc  -  Read  Only  Memory）、ＤＶＤ−ＲＯＭ（Digital  Versatile  Disk  -  Read  Only  Memory）、ＵＳＢ（Universal  Serial  Bus）メモリ、メモリカード、ＦＤ（Flexible  Disk）、ハードディスク、磁気テープ、カセットテープ、ＭＯ（Magnetic  Optical  Disc）、ＭＤ（Mini  Disc）、ＩＣ（Integrated  Circuit）カード（メモリカードを除く）、光カード、マスクＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ（Electronically  Erasable  Programmable  Read-Only  Memory）などの、不揮発的にプログラムを格納する媒体（一時的ではない媒体）が挙げられる。
【００８７】
ここでいうプログラムとは、ＣＰＵにより直接実行可能なプログラムだけでなく、ソースプログラム形式のプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
【００８８】
＜Ｅ．実装例＞
図７は、タップ１００４および中継器１００１におけるソフトウェア構造を説明するための図である。
【００８９】
図７を参照して、タップ１００４（リモートノード）のソフトウェア構造は、ＺｉｇＢｅｅアプリケーション３４０１と、ＺｉｇＢｅｅプロトコルスタック３４０２とを含む。ＺｉｇＢｅｅアプリケーション３４０１は、電力測定用のマイコン（図示せず）から消費電力に関する情報を取得して、当該情報を予め定められたフォーマットに変換する。ＺｉｇＢｅｅアプリケーション３４０１は、他のＺｉｇＢｅｅノードからの属性リード要求に応じて、あるいは、設定されたレポート条件に従って自発的に消費電力に関する情報を送信する。ＺｉｇＢｅｅプロトコルスタック３４０２は、ＺｉｇＢｅｅ規格に従った通信プロトコルを担う。特に、タップ１００４は、ＺｉｇＢｅｅネットワークにおける論理デバイスのルータまたはエンドデバイスとして動作するものとする。また、ペアリングの結果、当該タップ１００４が参加するネットワークに関する情報をＮＶＲＡＭに保存する（図示しない）。
【００９０】
中継器１００１は、無線ＲＦ内蔵通信コントローラ部１１０６と制御部（本体基板）１１０１とに物理的に分かれて存在しており、それぞれでソフトウェア構成を持つ。
【００９１】
無線ＲＦ内蔵通信コントローラ部１１０６（ローカルノード）は、ＺｉｇＢｅｅアプリケーション３１１１と、ＺｉｇＢｅｅプロトコルスタック３１１２と、ＵＡＲＴ１１６６と、アソシエートデバイスリスト３１１０と、ネットワーク情報ベース他３１１３とを含む。
【００９２】
ＺｉｇＢｅｅアプリケーション３１１１は、上述した消費電力に関する情報をタップ１００４から受信する。また、無線ＲＦ内蔵通信コントローラ部１１０６は、ＵＡＲＴ１１６６を経由して、制御部１１０１との送受信を行う。制御部１１０１からの要求に応じたコマンドを実行する。
【００９３】
ＵＡＲＴ１１６６は、上述したように、制御部１１０１との間で通信するための非同期送受信インターフェイスである。
【００９４】
ＺｉｇＢｅｅプロトコルスタック３１１２は、ＺｉｇＢｅｅ規格に従った通信プロトコルを担う。特に、中継器１００１は、ＺｉｇＢｅｅネットワークにおける論理デバイスのコーディネータとして動作するものとする。ＺｉｇＢｅｅプロトコルスタック３１１２は、ＺｉｇＢｅｅネットワークを形成し、その結果ネットワーク情報をネットワーク情報ベース他３１１３に保存する。また、当該ローカルノードにアソシエートされているデバイスの情報をアソシエートデバイスリスト３１１０に保存する。ネットワーク情報ベース他３１１３とアソシエートデバイスリスト３１１０は、ＲＡＭで保持されるとともに、ＮＶＲＡＭにも保存されているので、電源を切って入れ直しても情報が失われることはない。電源起動直後に、ネットワーク情報ベース他３１１３とアソシエートデバイスリスト３１１０は、保存されたＮＶＲＡＭから読み込まれてＲＡＭに展開される。ペアリングの結果、ネットワークに参加されたデバイスに関する情報はまずアソシエートデバイスリスト３１１０に保存される。
【００９５】
中継器１００１の制御部１１０１（図３参照）は、ＺｉｇＢｅｅマネージャ３１２１と、ＺｉｇＢｅｅモニタライブラリ３１２２と、ＵＡＲＴ３１２３と、ＬＥＤ＆スイッチ制御３１２４と、ＵＤＰ／ＩＰ（User  Datagram  Protocol  /  Internet  Protocol）ポート（ポート番号は固定する）と、Ｅｔｈｅｒｎｅｔ３１２５と、ＺｉｇＢｅｅノード管理情報３１２６とを含む。ＺｉｇＢｅｅマネージャ３１２１は、制御部１１０１に格納されているアプリケーションの１つである。
【００９６】
なお、制御部１１０１に格納される他のアプリケーションとして、タップ１００４から電力情報を収集するための電力情報収集プログラム、また外部のＨＴＴＰクライアントから中継器を設定するためのＨＴＴＰサーバ、当該ＨＴＴＰサーバから呼び出しされる設定用ＣＧＩアプリなどがある（図８に示す）。
【００９７】
ＺｉｇＢｅｅマネージャ３１２１は、ネットワークＺ上に存在しうるＺｉｇＢｅｅのノードを管理する。具体的には、ＺｉｇＢｅｅマネージャ３１２１は、ローカルノードである無線ＲＦ内蔵通信コントローラ部１１０６と、ローカルノードと通信可能なリモートノード（タップ１００４などのＺｉｇＢｅｅノード）を管理する。
【００９８】
リモートノードが、ネットワークにジョインして、ローカルノードにアソシエートされている状態であれば、当該リモートノードの生存情報を「生存」として管理する。リモートノードが、ネットワークからリーブして、ローカルノードにアソシエートされていない状態であれば、当該リモートノードの生存情報を「行方不明」として管理する。ＺｉｇＢｅｅマネージャ３１２１は、定期的にアソシエートデバイスリスト３１１０を読み出すことによって、ＺｉｇＢｅｅノード管理情報３１２６を更新する。さらに、ＺｉｇＢｅｅマネージャ３１２１は、ＺｉｇＢｅｅのノードに変化があった場合には当該変化を検知し、当該変化を他のアプリケーションに通知する。
【００９９】
それ以外にも、ＺｉｇＢｅｅマネージャ３１２１は、ローカルノード及びリモートノードからＺｉｇＢｅｅノードとしての一般的な情報（ＩＥＥＥ（Institute  of  Electrical  and  Electronics  Engineers）アドレス、ショートアドレス、ＭＡＣ能力、論理タイプなど）を取得して、また、ローカルノードからローカルノードにアソシエートされているデバイスの一覧や現在のネットワーク情報（PanIDや論理チャンネルなど）を取得して、ノード情報として管理する。ＺｉｇＢｅｅマネージャ３１２１は、これらのＺｉｇＢｅｅノードの管理情報をＺｉｇＢｅｅノード管理情報３１２６に保存する。
【０１００】
図８は、中継器１００１における別のアプリケーションのソフトウェア構造を説明する図である。
【０１０１】
図８を参照して、中継器１００１の制御部１１０１は、ＨＴＴＰサーバ８０６と、ＴＣＰ／ＩＰ８０７と、Ｅｔｈｅｒｎｅｔ（ｅｔｈ０）８０８と、設定用ＣＧＩプログラム８０３と、ＵＤＰ／ＩＰ（User Datagram Protocol / Internet Protocol）ポート８０４（ポート番号は任意とする）と、Ｅｔｈｅｒｎｅｔ（ｅｔｈ０）８０５と、設定情報８０２と、電力情報収集プログラム８０９と、ＵＤＰ／ＩＰポート８１０（ポート番号は任意とする）と、Ｅｔｈｅｒｎｅｔ（ｅｔｈ０）８１１とを含む。
【０１０２】
電力情報収集プログラム８０９は、ＺｉｇＢｅｅマネージャ３１２１に問合せを行ない、ネットワークＺ上に存在するノードの情報を得る。得られたノード情報のうち、ネットワークＺ上にタップが存在していることが分かれば、各タップに対して電力情報を読み出すための要求パケットなどを送信する。電力情報収集プログラム８０９は、タップから読み出した電力情報を制御部１１０１内の不揮発性メモリ（図示しない）に保存する。
【０１０３】
ＨＴＴＰサーバ８０６は、外部のブラウザ（ＨＴＴＰクライアント）から中継器１００１を設定するための指示を受け付けて、設定用ＣＧＩプログラム８０３を呼び出す。
【０１０４】
設定用ＣＧＩプログラム８０３は、中継器上の各種プログラムに影響を及ぼす設定を変更して、設定情報８０２に保存する。また、設定用ＣＧＩプログラム８０３は、設定情報８０２に保存されている情報を読み出して、ＨＴＴＰサーバ８０６に応答を返す。
【０１０５】
当該ソフトウェア構造により、貧弱な入力装置しか持たない中継器１００１でも、複雑な設定を行なうことができる。
【０１０６】
＜Ｆ．アソシエートデバイスリストの構成＞
図９は、ＺｉｇＢｅｅプロトコルスタック３１１２が管理するアソシエートデバイスリスト３１１０を模式的に表す図である。図９は、アソシエートデバイスリスト３１１０に含まれるデータの一例である。図９を参照して、アソシエートデバイスリスト３１１０には、当該ローカルノードにアソシエートされている（関連付けられている）デバイスのアドレスインデックス、ショートアドレス、IEEEアドレス、ノード関係などが保存されている。
【０１０７】
アドレスインデックスとは、アソシエートデバイスリストにおける順番を示す。アドレスインデックスは、ＺｉｇＢｅｅプロトコルスタック３１１２が内部的に用いるだけである。
【０１０８】
ショートアドレス（ネットワークアドレスとも称される）とは、一つのＺｉｇＢｅｅネットワークにおいて、唯一性が保証される２バイトのアドレスである。ショートアドレスは、ノードがＺｉｇＢｅｅネットワークに参加したときに、親（コーディネータまたはルータ）によって動的に割当てられる。通常、ショートアドレスがいったん割当てられれば変更されることはないが、別の新規ノードが参加したときなどにアドレス衝突することがあり、アドレス衝突を解消するためにショートアドレスが変更されることがある。
【０１０９】
ＩＥＥＥアドレス（拡張アドレスとも称される）とは、ＥｔｈｅｒｎｅｔにおけるＭＡＣアドレスと同様に物理媒体の１つ１つに付与されるアドレスであって、全世界で唯一性が保証される８バイトのアドレスである。通常、意図的に変更されない限り不変である。
【０１１０】
ノード関係とは、当該ローカルノードから見たノードの関係などを示す。例えば、0x04は、子ノードであって、FFD(Full Function Device)であり、かつ、RX_ON_IDLE(アイドル時に受信可能)であることを示す。
【０１１１】
図９では、３つのノードがアソシエートされていることが示される。
＜Ｇ．ＺｉｇＢｅｅノード管理情報の構成＞
図１０は、ＺｉｇＢｅｅマネージャ３１２１が管理するＺｉｇＢｅｅノード管理情報３１２６におけるデータの格納の一態様を概念的に表わす図である。図１０を参照して、ＺｉｇＢｅｅノード管理情報３１２６は、ローカルノードの情報１１１０と、ノードの個数１１２０と、個々のノード情報１１３０とを含む。
【０１１２】
ローカルノードの情報１１１０は、ローカルノードに固有の情報と、ローカルノードが参加するネットワークの情報のことである。たとえば、ローカルノードのＩＥＥＥアドレスと、ショートアドレスと、デバイスタイプと、デバイス状態と、アソシエートされているデバイスの個数と、アソシエートされているデバイスのショートアドレスと、ジョイン許可状態と、コーディネータ・ＩＥＥＥアドレスと、コーディネータ・ショートアドレスと、PanIDと、論理チャンネルなどを含む。
【０１１３】
・ローカルノードの情報
ＩＥＥＥアドレス（拡張アドレスとも称される）とは、ＥｔｈｅｒｎｅｔにおけるＭＡＣアドレスと同様に物理媒体の１つ１つに付与されるアドレスであって、全世界で唯一性が保証される８バイトのアドレスである。通常、意図的に変更されない限り不変である。ここでは、当該ローカルノードのＩＥＥＥアドレスを格納する。
【０１１４】
ショートアドレス（ネットワークアドレスとも称される）とは、一つのＺｉｇＢｅｅネットワークにおいて、唯一性が保証される２バイトのアドレスである。ショートアドレスは、ノードがＺｉｇＢｅｅネットワークにジョインしたときに、親（コーディネータまたはルータ）によって動的に割り当てられる。通常、ショートアドレスがいったん割り当てられれば変更されることはないが、別の新規ノードがジョインしたときなどにアドレス衝突することがあって、その場合、アドレス衝突を防ぐためにショートアドレスが変更されることがある。また、ノードが別のＺｉｇＢｅｅネットワークにジョインすれば、別のショートアドレスが割り当てられる。このように、ショートアドレスは変更されうる。なお、コーディネータのショートアドレスは、ＺｉｇＢｅｅの規定によって０ｘ００００と決まっている。ここでは、当該ローカルノードのショートアドレスを格納する。
【０１１５】
デバイスタイプは、当該ローカルノードが担うことができる、ＺｉｇＢｅｅ論理デバイスを示した１バイトの値である。ＺｉｇＢｅｅ論理デバイスには、コーディネータと、ルータと、エンドデバイスと、がある。それぞれを１ビット（０ｘ０１，０ｘ０２、０ｘ０４）であらわして、当該デバイスが担うことができる論理デバイスをそれらの論理和で表現する。例えば、ルータとエンドデバイスのどちらにも成れるデバイスなら、そのデバイスタイプは「０ｘ０６」となる。なお、現在どのＺｉｇＢｅｅ論理デバイスとして動作しているかは、別途後述する論理タイプで示される。
【０１１６】
デバイス状態は、当該ローカルノードの現在の状態を表わす１バイトの値である。デバイス状態は、ＺｉｇＢｅｅの論理デバイスとして動作するとき状態、たとえば、初期化中、ＰＡＮに参加中、コーディネータとして起動した、などの状態を表す。
【０１１７】
アソシエートされているデバイスの個数は、当該ローカルノードに関連付けられている（アソシエートされている）デバイスの個数を表す１バイトの値である。
【０１１８】
アソシエートされているデバイスのショートアドレスは、当該ローカルノードに関連付けられている（アソシエートされている）デバイスのそれぞれのショートアドレスのことである。
【０１１９】
ジョイン許可状態は、当該ローカルノードが新たなノードを受け付け可能な状態であるか否かを表わす１ビットの値である。
【０１２０】
PanIDは、当該ローカルノードが現在参加しているネットワークの識別子を表す２バイトの値である。
【０１２１】
論理チャンネルは、当該ローカルノードが参加しているネットワークの現在のチャネルを表わす１バイトの値である。
【０１２２】
・ノードの個数
ノードの個数１１２０は、ローカルノードとリモートノードとの合計の個数である。たとえば、本実施の形態において上記の定義によれば、中継器１００１に含まれる無線ＲＦ内蔵通信コントローラ部１１０６がローカルノードに相当する。一方、図１のタップ１００４ａ，１００４ｂ，１００４ｃがリモートノードに相当する。したがって、図１に示した例では、ノードの個数は（１＋３より）「４」となる。
【０１２３】
・個々のノード情報
個々のノード情報１１３０は、ローカルノードと各リモートノードの情報である。各ノ―ドから得られる情報と、ＺｉｇＢｅｅマネージャ３１２１が管理のために付与する情報とがある。ノード情報１１３０は、たとえば、識別子と、ＩＥＥＥアドレスと、ショートアドレスと、ＭＡＣ（Media  Access  Control）能力と、論理タイプと、生存情報と、電源情報などを含む。
【０１２４】
識別子とは、ノードを簡易的に識別できるようにするために、ＺｉｇＢｅｅマネージャ３１２１が付与する２バイトの値である。ＺｉｇＢｅｅマネージャ３１２１は新しいノードを見つけるごとに識別子をインクリメントして付与する。識別子はＩＥＥＥアドレスと１対１対応とする。つまり、同じＩＥＥＥアドレスのノードには同じ識別子が与えられる。逆に識別子からＩＥＥＥアドレスが一意に決定される。識別子＝０のノードは、ローカルノードであることを保証する。あるノードをネットワークから離脱させても、そのノードの識別子は残ったままである。識別子は再利用されない。
【０１２５】
ＭＡＣ能力とは、当該ノードが保有する性質を示した１バイトの値である。例えば、コーディネータに成れるかどうか、物理デバイス種別（ＦＦＤかＲＦＤか）、バッテリ電源か商用電源か、アイドル時に受信可能かどうか、などを示す。
【０１２６】
論理タイプとは、当該ノードが現在どのＺｉｇＢｅｅ論理デバイスとして機能しているかを示した１バイトの値である。コーディネータならば０ｘ００、ルータならば０ｘ０１、エンドデバイスならば０ｘ０２となる。
【０１２７】
生存情報とは、当該ノードがローカルノードに関連付けられている（アソシエートされている）かどうかを示す１ビットの値である。当該ノードがローカルノードに関連付けられているならば、生存情報＝Trueとなり、当該ノードが「生存」しているという意味を表わす。一方、当該ノードがローカルノードに関連付けられていないならば、生存情報＝Falseとなり、当該ノードが「行方不明」であることを意味する。当該ノードが電源オフになっても、当該ノードは「行方不明」にはならないことに注意する。生存情報は、あくまでも、当該ノードがローカルノードに関連付けらているかどうかを示す。
【０１２８】
また、ＺｉｇＢｅｅマネージャ３１２１は、ＬＥＤ＆スイッチ制御３１２４を監視している。より詳細には、ＺｉｇＢｅｅマネージャ３１２１は、プッシュボタン１１０８およびスライドスイッチ１１０９からの入力を監視し、ペアリング機能（ジョイン許可状態）およびリーブモードを制御する機能を持ち、その中継器の状態に応じて、ＬＥＤ１１０３（正確にはＬＥＤ１１０３ｃ）の発光を制御する。ＺｉｇＢｅｅマネージャ３１２１は、サーバの形態をとっており、固定のＵＤＰポート番号を開けて、他の機器からアクセスを受け付けて、ＺｉｇＢｅｅ上位プロトコルと中継器発見プロトコルを提供する。
【０１２９】
モニタライブラリ３１２２は、直接、ＵＡＲＴ３１２３とデータの遣り取りをすることにより、無線ＲＦ内蔵通信コントローラ部１１０６と通信をする。モニタライブラリ３１２２は、ＵＡＲＴ３１２３を通じてデータを無線ＲＦ内蔵通信コントローラ部１１０６と送受信する。なお、モニタライブラリ３１２２が発信するコマンドは、無線ＲＦ内蔵通信コントローラ部１１０６に対するものもあれば、タップ１００４に対するものもある。
【０１３０】
さらに、ＺｉｇＢｅｅマネージャ３１２１は、ＺｉｇＢｅｅノードの状態に変化があった場合には当該ノード状態変化を検出して、当該ノード状態変化を他のアプリケーションに通知する機能を持つ。
【０１３１】
ＺｉｇＢｅｅマネージャ３１２１は、ＺｉｇＢｅｅノードの状態に変化があった場合には当該ノード状態変化を検出して、当該ノード状態変化を他のアプリケーションに通知する機能を持つ。具体的には、ＺｉｇＢｅｅマネージャ３１２１は、以下のようなノード状態の変化を検出して、他のアプリケーションに通知する。
・“joined”（ノードがネットワークにジョインした）
・“removed” （ノードがネットワークからリーブした）
・“address-changed” （ノードのショートアドレスが変化した）
・“powered” （ノードの電源が投入された）
・“button-pressed”（ノードのボタンが押された）
・“unplugged”（ノードの電源が抜かれた）
＜Ｈ．アドレス衝突時の説明＞
図１１〜図１４を参照して、ＺｉｇＢｅｅＰＲＯにおいて、アドレス衝突時にどのようにアドレス衝突が検出され、解消されるかを説明する。ＺｉｇＢｅｅＰＲＯにおいては、親となるノードが新しく参加する子ノードに対して乱数でアドレスを割当てる（Stochastic Addressing）。これらは、ＺｉｇＢｅｅプロトコルスタックにて行われる処理である。
【０１３２】
まず、図１１を参照して説明する。
（１）あるコーディネータにノードＡ、ノードＢ、ノードＣがアソシエートされているものとする（そのコーディネータのアソシエートデバイスリストにノードＡ、ノードＢ、ノードＣのノード情報が登録されている）。
【０１３３】
（２）ここで、ノードＸが新しく参加して、ノードＢにアソシエートされたとする（ノードＢはＺｉｇＢｅｅルータとして動作している）。ノードＸには、たまたまノードＡと同じショートアドレス（=0x1234）が割当てられたとする。ノードＸは参加したことを通知するため、"Device Annce"（以下、デバイスアンスとも呼ぶ）をブロードキャストで送信する。デバイスアンスには、当該ノードのＩＥＥＥアドレス、ショートアドレスおよびＭＡＣ能力が含まれる。
【０１３４】
次に、図１２を参照して説明する。
（３）ノードＸのデバイスアンスを受信した各ノードは、アドレスが衝突したことを検出する（異なるＩＥＥＥアドレスである２ノードが同一のショートアドレスを持つ）と、各ノードはアドレス衝突検出通知をブロードキャストで送信する。具体的には、Network Status(Status.Code=0x0D, Dest.Addr=0x1234)を送信する。図１２では、コーディネータ、ノードＡおよびノードＣがそれぞれアドレス衝突を検出して、アドレス衝突検出通知を送信する。（すべてのノードが、アドレス衝突検出通知を送信するとは限らない。）
最後に、図１３を参照して説明する。
【０１３５】
（４）ノードがルータ動作のとき、アドレス衝突検出通知を受信した各ノードは、自身のショートアドレスが衝突したと判断すると、自身のショートアドレスを変更して、再度デバイスアンスをブロードキャストで送信する。ノードがエンドデバイス動作のとき、そのノードの親が再度ショートアドレスを割当てる。コーディネータは、ノードＡからのデバイスアンスを受信すると、アソシエートデバイスリストを更新する。
【０１３６】
図１３にあるように、既存のノードＡと新規に参加したノードＸとの両方において、ショートアドレスが変更される。ショートアドレスが変更された結果、また別のノードと衝突することもあり得るが、その場合は上記のプロトコルが繰り返される。さらなる衝突がなければ、これで終わる。
【０１３７】
このように、ＺｉｇＢｅｅＰＲＯにおけるアドレス衝突解決の手法は、単純でありながら強力であると言える。ただ問題点があるとすれば、ブロードキャスト送信が多く発生することである。一度アドレス衝突が発生すれば、少なくとも４回のブロードキャスト送信が発生する。ここでのブロードキャスト送信は、ブロードキャスト半径が３０なので、各ルータが中継して再送信される。一時的に、ネットワーク上にブロードキャストのパケットが飛び交うことになる。
【０１３８】
また、アドレス衝突が発生すると、既存ノードと新しく参加したノードとが、それぞれ独立してショートアドレスを変更する。ショートアドレスが変更されたノードは、デバイスアンスをブロードキャストで送信するが、それは１回だけである。このとき、たまたまネットワーク環境が悪いと、コーディネータはデバイスアンスを取りこぼすことがありえる。コーディネータは、デバイスアンスを取りこぼすと、子ノードのショートアドレスが変更されたことに気づかないので、アソシエートデバイスリストをすぐに更新できないことになる。
【０１３９】
さて、親（コーディネータまたはルータ）が、新しく参加するノードにショートアドレスを割当てるとき、その親に登録されているデバイス（アソシエートされているデバイス）のショートアドレスを避けてアドレスを割当てようとする。よって、親が唯一であれば（ジョイン許可するノードが唯一であれば）、アドレス衝突は発生しないと考えられる。ところが、あるケースでは親が唯一であってもアドレス衝突が発生しうる。
【０１４０】
図１４を参照して、親が唯一であるときでもアドレス衝突が発生することを説明する。図１４は、図１１からノードＣが不完全にリーブされた後の状態を示す。図１４において、唯一の親とはコーディネータのことである。不完全にリーブされた状態とは、親からは子ノードに関する情報が消えているが、子ノードには親のネットワーク情報が残っている状態のことである。子ノードの電源が抜かれているときに、親から当該子ノードをリーブさせるとこのような状態になる。不完全にリーブされた子ノードは、親のネットワーク情報とともに自身のショートアドレスも保持されたままとなる。
【０１４１】
このとき、ノードＸが新しく参加してコーディネータにアソシエートされたとする。コーディネータは、たまたまノードＣと同じショートアドレス（=0x9abc）を割当てることがありえる。この状態でノードＣの電源を再度入れると、アドレス衝突が発生する。このように、親が唯一であってもアドレス衝突は発生しうる。アドレス衝突が発生すれば、それを解消しようとして、アドレス衝突したノードのショートアドレスが変更される。
【０１４２】
それ以外にも、子ノードの論理デバイスが変わるときに（例えばルータからエンドデバイスに切り替わったとき）、アドレスが変更されることがある。
【０１４３】
＜Ｉ．アソシエートデバイスリスト更新の説明＞
さて、ある子ノードのショートアドレスが変更されたとき、親ノードはアソシエートデバイスリストをすぐに更新すべきであるが、どのタイミングでアソシエートデバイスリストを更新するかを説明する。アソシエートデバイスリストを更新するタイミングは少なくとも、以下の（１）、（２）および（３）の３つある。これらは、ＺｉｇＢｅｅプロトコルスタック３１１２にて実施される処理である。
【０１４４】
（１）デバイスアンスを受信したとき
先に述べたように、子ノードは自身のショートアドレスを変更すると、デバイスアンスを送信する。親ノードは子ノードからデバイスアンスを受信できればアソシエートデバイスリストを更新する。デバイスアンスは、ブロードキャスト送信されるが、ブロードキャスト半径が３０なので、親ノードと子ノードが１ホップで届かない距離にあっても、到達しうる。ただし、先に述べたように、デバイスアンスは変化があったときの１回しか送信されない。たまたまこのタイミングでネットワーク環境が悪いと、親ノードはデバイスアンスを取りこぼすことがありえる。
【０１４５】
（２）リンクステータスを受信したとき
ＺｉｇＢｅｅＰＲＯにおいては、各ノードは定期的に（約１５秒に１回）NWK Link Status（以下、リンクステータス）を通知している。非特許文献１（A.7 Symmetric Routes and Link Status）を参照のこと。
【０１４６】
リンクステータスとは、各ノードが隣接ノードに対して、当該ノードが受信可能なノードのリンク品質を通知するためのパケットである。隣接するノードというのは、１ホップで届くノードのことである。リンクステータスを定期的に通知するのは、ルーティング経路を決定するとき、非対称的なリンク（asymmetric link）を避けるためにある。なお、非対象的なリンクとは、片方向の通信は良好であるが、その逆方向の通信は困難であるリンク（経路）のことである。無線ではしばしばこのようなリンクが存在する。ＺｉｇＢｅｅＰＲＯにおいては、非対象的なリンクを避けるようにルーティング経路が決定される。つまり、任意の２ノード（ノードＡとノードＢ）間の通信において、ノードＡからノードＢへの通信と、ノードＢからノードＡへの通信の両方において同じルーティング経路となるように決定される。
【０１４７】
リンクステータスはブロードキャストで送信されるが、ブロードキャスト半径が１なので、１ホップしか届かない。親ノードは子ノードのリンクステータスを受信できれば、アソシエートデバイスリストを更新する。親ノードと子ノードが１ホップで届く位置に存在すれば、親ノードはアソシエートデバイスリストを更新できる。また、リンクステータスは各ノードから定期的に発信されるので、親ノードはリンクステータスを取りこぼしても、それ以降のリンクステータスを受信できるであろう。
【０１４８】
しかし、親ノードと子ノードが２ホップ以上離れた位置に存在すれば、親ノードは子ノードのリンクステータスを受信できず、アソシエートデバイスリストを更新できない。
【０１４９】
また、各ノードは、当該ノードから１ホップで届く位置にあるノードの情報をNeighbor table（以下、隣接テーブルと呼ぶ）として管理している。隣接テーブルには、当該ノードに隣接するノードのＩＥＥＥアドレス、ショートアドレス、ＬＱＩ（Link Quality Index＝リンク品質指数）などが含まれる。各ノードは、隣接ノードからリンクステータスなどを受信すると、隣接テーブルを最新の状態に更新する。
【０１５０】
また、コーディネータなどの任意ノードは、各ノードに対して、当該ノードにおける隣接テーブルの内容（周辺ノードとそれに対するリンク品質指数など）を問合せることができる。問合せには、後述するＬＱＩ問合せコマンド（Mgmt_Lqi_req）を使う。
【０１５１】
（３）ルートリプライを受信したとき
ＺｉｇＢｅｅにおいては、各ノードは最終宛先ノードへパケットを送信するためのルーティング経路情報を「ルーティングテーブル」に保持する。ルーティングテーブルに保持されていない最終宛先ノードに対してパケットを送信しようとするときは、パケット送信に先立ち、ルート探索が行われる。詳細な説明は省くが、ルート探索では、Route Requestを送信して、Route Reply（以下、ルートリプライ）を受信する。ここで、親ノードは、子ノードからルートリプライを受信するとアソシエートデバイスリストを更新する。
【０１５２】
＜Ｊ．隣接テーブルの説明＞
図１５は本実施の形態に係る隣接テーブルの一部を抜粋して示す図である。図１５には、あるノードのＲＡＭ２１２３に格納される隣接テーブル２１４２が例示される。
【０１５３】
図１５を参照して、隣接テーブル２１４２には当該ノードにおける隣接ノード（１ホップで届くノード）の一覧情報が含まれる。
【０１５４】
ノード情報には、少なくとも、Extended PanID（拡張PanID）、Extended address（ＩＥＥＥアドレス）、Network Address（ショートアドレス）、Device Type（論理デバイス）、LQI（リンク品質指数）が含まれる。
【０１５５】
隣接テーブル２１４２には、この他にも、RxOnWhenIdle（アイドル時に受信可能か）、Relationship（ノード関係）などが含まれるが、図１５では図示を略している。
【０１５６】
また、Extended address（ＩＥＥＥアドレス）は、当該アドレスを取得できない場合には、"ff:ff:ff:ff:ff:ff:ff:ff"を示す（未知であることを示す）。
【０１５７】
図１５によると、当該ノードには隣接ノードが３台あり、内１台はコーディネータであることが分かる。他の２台はルータであることが分かる。
【０１５８】
すべてのノードは、図１５のような隣接テーブル２１４２（周辺ノード情報）を保持し、管理している。また、コーディネータなどの任意ノードは、ＬＱＩ問合せコマンド（Mgmt_Lqi_req）を使って、各ノードに対して、隣接テーブル２１４２の内容を問合せることができる。
【０１５９】
なお、本実施の形態では、隣接テーブル２１４２はＲＡＭ（ただし、ＮＶＲＡＭ（Non Volatile RAM）ではない）に格納される。また、隣接テーブル２１４２を保持し、管理するのはルータとコーディネータだけである。エンドデバイスは隣接テーブルを管理していない。
【０１６０】
＜Ｋ．隣接テーブルの更新＞
図１６は、ショートアドレスの変更隣接テーブルの更新を模式的に説明する図である。これは、ＺｉｇＢｅｅプロトコルスタック３４０２などで実施される処理である。
【０１６１】
図１６を参照して、タップ１００４ａ（ショートアドレス＝0x845f）に着目すると、隣接ノードには、タップ１００４ｂ（ショートアドレス＝0x3e9d）と、タップ１００４ｃ（ショートアドレス＝0x1715）がある。しかしながら、中継器１００１内の無線ＲＦ内蔵通信コントローラ部１１０６（ショートアドレス=0x0000）とは隣接ノードではない。（１ホップでは届かない距離にある。）
ここでタップ１００４ａのショートアドレスが0xee9bに変更されたとする。この場合、タップ１００４ｃ（ショートアドレス＝0x1715）は、デバイスアンスを受信したときか、リンクステータスを受信したときに、自己の隣接テーブル２１４２を更新できる。
【０１６２】
先ほど述べたように、デバイスアンスは１回だけしか発信されないので、タップ１００４ｃは、デバイスアンスを取りこぼす可能性はある。しかしながら、リンクステータスは定期的に発信されるので、タップ１００４ｃは、高い確率でリンクステータスを受信でき、よって、隣接テーブル２１４２を更新することができる。図１６では、タップ１００４ａとタップ１００４ｃは１ホップで届く範囲に存在するので、タップ１００４ｃはタップ１００４ａから発信されるリンクステータスを受信することできる。
【０１６３】
図１５の隣接テーブル２１４２で説明すると、上記の更新により、ショートアドレス0x845fは0xee9bに変更される（図１５の隣接テーブル２１４２の上から４行目を参照）。
【０１６４】
中継器１００１内の無線ＲＦ内蔵通信コントローラ部１１０６（ショートアドレス=0x0000）から見れば、タップ１００４ａは１ホップで届かない位置に存在している。このような場合、デバイスアンスを取りこぼすと、アソシエートデバイスリストを更新できなくなる。タップ１００４ａから定期的に発信されるリンクステータスも受信できないためである。
【０１６５】
上記のままであれば、アソシエートデバイスリスト３１１０はいつまでも更新されない恐れがある。そこで、中継器１００１上のＺｉｇＢｅｅマネージャ３１２１（ノード情報管理プログラム）は、以下のことを行う。
・     ＺｉｇＢｅｅマネージャ３１２１は、タップ１００４ｃなどにＬＱＩ問合せを行う。
・     ＺｉｇＢｅｅマネージャ３１２１は、タップ１００４ｃなどの隣接テーブルを取得する。取得した隣接テーブルから、未知のショートアドレス（0xee9b）を見つける。（ＺｉｇＢｅｅノード管理情報３１２６に載っていないショートアドレスがあれば未知であると判断する。）
・     ＺｉｇＢｅｅマネージャ３１２１は、未知のショートアドレスを宛先アドレスにして、何らかのパケットをネットワークＺに送信する。
・     ルーティングテーブルに保持されていない最終宛先ノードに対してパケットを送信しようとしたので、ＺｉｇＢｅｅプロトコル３１１２によってルート探索が行われ、ショートアドレス（0xee9b）からルートリプライを受信する。その結果、ＺｉｇＢｅｅプロトコル３１１２は、アソシエートデバイスリスト３１１０を更新できる。
【０１６６】
＜Ｌ．ノード管理プログラムの説明＞
中継器１００１上のＺｉｇＢｅｅマネージャ３１２１（ノード情報管理プログラム）は、ノード情報を管理するために以下の（１）と（２）を行なう。
【０１６７】
（１）定期的にローカルノードからアソシエートデバイスリスト３１１０を取得し、取得したアソシエートデバイスリスト３１１０を用いてＺｉｇＢｅｅノード管理情報３１２６を更新する（これをアソシエートサーチと称する）。
【０１６８】
図１７を参照して、アソシエートサーチ処理について説明する。図１７は、ＺｉｇＢｅｅマネージャ３１２１によって実行される処理の一部を表すフローチャートである。
【０１６９】
ステップＳ１８１０にて、ＺｉｇＢｅｅマネージャ３１２１は、ローカルノードのアソシエートデバイスリストを取得する。具体的には、ＺｉｇＢｅｅマネージャ３１２１は、アソシエートされているデバイスの個数と、アソシエートされているそれぞれのデバイスのデバイス情報（ショートアドレス、ノード関係、IEEEアドレス）と、を得ることができる。
【０１７０】
ステップＳ１８２０にて、ＺｉｇＢｅｅマネージャ３１２１は、アソシエートデバイスリストと、ＺｉｇＢｅｅマネージャ３１２１の管理するノード情報（１４２０および１４３０）とを比較する。
【０１７１】
アソシエートデバイスリストと、ＺｉｇＢｅｅマネージャ３１２１の管理するノード情報（１４２０および１４３０）との間に齟齬があれば、ステップＳ１８３０にて、ＺｉｇＢｅｅマネージャ３１２１は、ノード管理情報を更新する。
【０１７２】
具体的には、以下のような処理がある。
（ａ）
アソシエートデバイスリストで得られたノードのうち、ＺｉｇＢｅｅマネージャ３１２１の管理するノード情報には存在しないノードがあれば、ＺｉｇＢｅｅマネージャ３１２１は、新規ノードが参加（ジョイン）されたことを検出する。
【０１７３】
ＺｉｇＢｅｅマネージャ３１２１は、ＺｉｇＢｅｅマネージャ３１２１の管理するノード情報に、新規ノードを追加して、生存情報を生存にセットする。
【０１７４】
この場合、ＺｉｇＢｅｅマネージャ３１２１は、さらなる探索（リモートサーチ）を実施して、当該リモートノードからさらなる情報（MAC能力、論理タイプなど）を得る。
【０１７５】
（ｂ）
アソシエートデバイスリストで得られたノードのうち、ＺｉｇＢｅｅマネージャ３１２１の管理するノード情報には存在するが、ショートアドレスが異なる場合、ＺｉｇＢｅｅマネージャ３１２１は、既存ノードのショートアドレスが変更されたことを検出する。この場合、ＺｉｇＢｅｅマネージャ３１２１は、さらなる探索（リモートサーチ）を実施して、当該リモートノードからさらなる情報（MAC能力、論理タイプなど）を得る。
【０１７６】
（ｃ）
ＺｉｇＢｅｅマネージャ３１２１の管理するノード情報には存在するが、アソシエートデバイスリストには存在しないノードがある場合、ＺｉｇＢｅｅマネージャ３１２１は、既存ノードが離脱（リーブ）されたことを検出する。ＺｉｇＢｅｅマネージャ３１２１は、当該リモートノードの生存情報を「行方不明」にセットする。
【０１７７】
なお、ＺｉｇＢｅｅマネージャ３１２１は、（ａ）、（ｂ）、（ｃ）のいずれかを検出すれば、ノード情報に変化があったものとして、当該変化を他のアプリケーションに通知する。
【０１７８】
以上により、ＺｉｇＢｅｅマネージャ３１２１は、アソシエートサーチを終了する。
（２）定期的にすべての生存リモートノードに対してＬＱＩ問合せを行ない、未知のショートアドレスを見つければ、そのショートアドレスを宛先アドレスにして何らかのパケット（例えば、IEEE_addr_req）を送信する（これをＬＱＩサーチと称する）。
【０１７９】
未知のショートアドレスに対して、何らかのパケットを送信しようとするとき、パケット送信に先立ち、ルート探索が行われる。その結果、当該未知のショートアドレスを持つノードからルートリプライを受信することができる。ルートリプライを受信することによって、ローカルノードのアソシエートデバイスリスト３１１０が最新情報に更新される。
【０１８０】
よって、アソシエートサーチとＬＱＩサーチとを定期的に実施することで適切にノード情報を管理することができる。
【０１８１】
＜Ｍ．ＬＱＩサーチ＞
図１８は、ＬＱＩサーチの処理を表すフローチャートである。図１８を参照してＬＱＩサーチを説明する。
【０１８２】
まず、ステップＳ３において、ＺｉｇＢｅｅマネージャ３１２１は、すべての生存リモートノードに対して、ＬＱＩ問合せのパケットを送信する。なお、ＬＱＩ問合せパケットとは、ＺｉｇＢｅｅ規格にあるMgmt_Lqi_reqのことである。
【０１８３】
ステップＳ５において、ＺｉｇＢｅｅマネージャ３１２１は、リモートノードからＬＱＩ問合せの応答パケットを受信する。（ステップＳ３のＬＱＩ問合せに対する応答パケット）なお、ＬＱＩ問合せの応答パケットとは、ＺｉｇＢｅｅ規格にあるMgmt_Lqi_rspのことである。ＬＱＩ問合せの応答パケットには、当該パケット送信元ノードの隣接テーブル２１４２の情報が含まれる。
【０１８４】
ステップＳ７において、ＺｉｇＢｅｅマネージャ３１２１は、リモートノードからＬＱＩ問合せの応答パケットを受信すると、当該応答パケットに含まれるショートアドレスを集計する。１以上のリモートノードからＬＱＩ問合せの応答パケットを受信するので、重複するショートアドレスを削除する。
【０１８５】
ステップＳ９において、ＺｉｇＢｅｅマネージャ３１２１は、未知のショートアドレスがあるか否かを判定する。具体的には、ステップＳ７において集計されたショートアドレスの中に、ＺｉｇＢｅｅノード管理情報３１２６に存在しないショートアドレスがあるかどうかを判定する。
【０１８６】
未知のショートアドレスがないと判定されると（ステップＳ９でＮＯ）、ＬＱＩサーチは終了する。
【０１８７】
未知のショートアドレスがあると判定されると（ステップＳ９でＹＥＳ）、ステップＳ１１において、ＺｉｇＢｅｅマネージャ３１２１は、未知のショートアドレスを宛先アドレスにして何らかのパケットを送信する。例えば、ショートアドレスをキーにしてＩＥＥＥアドレスを取得するため要求パケット（IEEE_addr_req）を送信する。なお、IEEE_addr_reqに限らず、未知のショートアドレスを宛先アドレスにするようなパケットを送信すればよい。
【０１８８】
無線ＲＦ内蔵通信コントローラ部１１０６（ＺｉｇＢｅｅプロトコルスタック３１１２）は、上述の要求パケットをネットワークＺに送信するが、最終宛先アドレスが未知な（ルーティングテーブルに保持されていない）ので、パケット送信に先立ち、ルート探索が行われる。ルート探索では、Route Request パケットを送信して、Route Reply （ルートリプライ）を受信する。しかるのち、ルーティング経路が決定され、上述の要求パケットは最終宛先アドレスのノードに届けられることになる。なお、Route Reply （ルートリプライ）を受信することで、ローカルノードのアソシエートデバイスリスト３１１０が更新されうる。
【０１８９】
以上により、ＬＱＩサーチは終了する。
上述のＬＱＩサーチにより、アソシエートデバイスリスト３１１０は、ノードのショートアドレスが変更された場合に、確実に最新の情報に反映される。また、上述のアソシエートサーチにより、ＺｉｇＢｅｅノード管理情報３１２６は、アソシエートデバイスリスト３１１０と齟齬がないように更新されるので、同様に最新の情報に反映される。
【０１９０】
＜Ｎ．中継器１００１の概略処理＞
図１９は、本発明の実施の形態に係る中継器１００１のＺｉｇＢｅｅマネージャ３１２１が実行する処理を示す図である。図１９を参照して、ＺｉｇＢｅｅマネージャ３１２１は、ＺｉｇＢｅｅノード管理情報３１２６を、最新の情報に更新するために、全体処理Ｔ１を実施する。全体処理Ｔ１はＬＱＩサーチＴ１１と、アソシエートサーチＴ１２を含む。
ＬＱＩサーチＴ１１、アソシエートサーチＴ１２については先に説明した通りである。
【０１９１】
本実施の形態では、中継器１００１のＺｉｇＢｅｅマネージャ３１２１は、ＬＱＩサーチＴ１１を実行してからアソシエートサーチＴ１２を実行する。これら処理は定期的に繰返し実行される。例えば、３分間隔でＬＱＩサーチＴ１１とアソシエートサーチＴ１２とを実行するものとする。あるいは、ＬＱＩサーチＴ１１とアソシエートサーチＴ１２とを別々のタイミングで実施してもよい。例えば、１０分間隔でＬＱＩサーチＴ１１を実行し、３分間隔でアソシエートサーチＴ１２を実行する。
【０１９２】
＜Ｏ．各部の機能構成＞
（制御部１１０１の機能）
図２０は、制御装置（中継器）１００１の機能構成を示す図である。図２０を参照して、制御装置（中継器）１００１は、本体制御部（制御部）１１０１と、通信制御部（無線ＲＦ内蔵通信コントローラ部）１１０６と備える。本体制御部（制御部）１１０１は、ノード管理情報（ＺｉｇＢｅｅノード管理情報）３１２６と、ＬＱＩサーチ実行部１１と、アソシエートサーチ実行部１２とを備える。通信制御部（無線ＲＦ内蔵通信コントローラ部）１１０６は、アソシエートデバイス情報（アソシエートデバイスリスト３１１０）と、送信部１５と、受信部１６とを備える。
【０１９３】
本体制御部（制御部）１１０１は、ネットワークＺ上に存在するノード情報を管理する。通信制御部（無線ＲＦ内蔵通信コントローラ部）１１０６は、ネットワークＺの通信プロトコルを制御する。通信制御部（無線ＲＦ内蔵通信コントローラ部）１１０６は、送信部１５と受信部１６を用いて、ネットワークＺ上に存在する複数のノード（タップ）１００４と通信する。
【０１９４】
本体制御部（制御部）１１０１と、通信制御部（無線ＲＦ内蔵通信コントローラ部）１１０６とは、非同期通信Ｉ／Ｆ（ＵＡＲＴ）３１２３で接続されている（図２０には図示しない）。本体制御部（制御部）１１０１は、通信制御部（無線ＲＦ内蔵通信コントローラ部）１１０６に書き込みする（送信する）ことによって、ネットワークＺ上の任意のノード（タップ）１００４へパケットを送信できる。また逆に、通信制御部（無線ＲＦ内蔵通信コントローラ部）１１０６から読み出す（受信する）ことによって、ネットワークＺ上のノード（タップ）１００４から応答パケットを受信できる。
【０１９５】
ノード管理情報（ＺｉｇＢｅｅノード管理情報）３１２６には、通信制御部（無線ＲＦ内蔵通信コントローラ部）１１０６とネットワークＺ上に存在する複数のノード（タップ）１００４の情報が含まれる。具体的には、ネットワークＺにおけるアドレス（ショートアドレス）情報が含まれる。さらには、ネットワークＺへの参加または離脱を示す生存情報が含まれる。
【０１９６】
本体制御部（制御部）１１０１は、ＬＱＩサーチ実行部１１（ＬＱＩサーチ）とアソシエートサーチ実行部１２（アソシエートサーチ）を繰り返し実行する。
【０１９７】
（１）ＬＱＩサーチ
本体制御部（制御部）１１０１は、ノード管理情報（ＺｉｇＢｅｅノード管理情報）３１２６を参照して、ネットワークＺに参加している複数のノード（タップ）１００４の各々に対して隣接テーブルを要求する問合せパケットを送信する。
【０１９８】
本体制御部（制御部）１１０１は、複数のノード（タップ）１００４から隣接テーブルを受信して集計する。その集計された隣接テーブルの中に、ノード管理情報（ＺｉｇＢｅｅノード管理情報）３１２６には含まれない未知のアドレスがあるかどうかを調べる。そして未知のアドレスがあれば、そのアドレスを宛先アドレスとしてパケットを送信する。
【０１９９】
上述のＬＱＩサーチを実施することにより、本体制御部（制御部）１１０１は、ネットワークＺに参加している既存ノードのアドレスが変化した場合に、その変化を確実にアソシエートデバイス情報（アソシエートデバイスリスト）３１１０に反映させることができる。
【０２００】
（２）アソシエートサーチ
本体制御部（制御部）１１０１は、アソシエートデバイス情報（アソシエートデバイスリスト）３１１０を読み出し、ノード管理情報（ＺｉｇＢｅｅノード管理情報）３１２６と齟齬がないかを比較する。齟齬があれば、ノード管理情報（ＺｉｇＢｅｅノード管理情報）３１２６を最新の情報に更新する。
【０２０１】
上述のＬＱＩサーチとアソシエートサーチを繰り返し実行することにより、本体制御部（制御部）１１０１は、ネットワークＺ上に存在するノードの変化を検出して、ノード管理情報（ＺｉｇＢｅｅノード管理情報）３１２６を最新の情報に反映させることができる。より具体的には、
（ａ）新規ノードがネットワークＺに参加したこと
（ｂ）既存ノードのアドレス（ショートアドレス）が変化したこと
（ｃ）既存ノードがネットワークＺから離脱したこと
の変化を検出する。また、これらの変化を他のアプリケーションに通知するように構成することも可能である。
【０２０２】
図７に示す各部の機能は、メモリに予め格納されたプログラムをＣＰＵが読出し、実行することにより実現されると想定する。なお、これら機能は、プログラムのみならず、プログラムと高速通信インターフェイス部１１０４などの通信回路との組合わせにより実現することもできる。
【０２０３】
＜Ｐ．実施の形態の効果＞
上述した実施の形態によって、ノードのショートアドレスが変更されたときにも、その変更を確実にノード情報に反映させることができるようなノード情報管理プログラムを備えた制御装置を提供することができる。
【０２０４】
＜Ｑ．変形例＞
（ＱＱ１．第１の変形例）
次に、中継器１００１の代替構成について説明する。図２１は、ネットワークＺの制御装置としてタブレット端末を用いた場合における、ネットワークの概略構成を示した図である。具体的には、図２１は、中継器１００１、パーソナルコンピュータ１００３、およびタブレット端末１００８の代わりに、タブレット端末１００９を用いたネットワークＺの構成を示した図である。
【０２０５】
図２１を参照して、ネットワークＺは、タブレット端末１００９と、ワイヤレスブロードバンドルータ１００２と、複数のタップ１００４ａ，１００４ｂ，１００４ｃと、複数の家電機器（エアーコンディショナ１００５，冷蔵庫１００６，テレビ１００７など）とを備える。また、タブレット端末１００９と、複数のタップ１００４と、複数の家電機器１００５〜１００７とにより、低速無線通信ネットワークＺを構成する。タブレット端末１００９は、ワイヤレスブロードバンドルータ１００２とＷｉＦｉ等の高速無線通信により接続される。
【０２０６】
図２２は、タブレット端末１００９のブロック図である。タブレット端末１００９は、制御部１９０１と、操作部１９０２と、表示部１９０３と、高速通信インターフェイス部１９０４と、電源部１９０５と、低速無線通信モジュール１９０６と、アンテナ１９０７とを備える。
【０２０７】
操作部１９０２は、操作キー、タッチセンサ等の入力デバイスである。表示部１９０３は、液晶ディスプレイ等の出力デバイスである。高速通信インターフェイス部１９０４は、ワイヤレスブロードバンドルータ１００２との間で無線通信を行なうためのインターフェイスである。電源部１９０５は、制御部１９０１と低速無線通信モジュール１９０６とに電力を供給する。
【０２０８】
制御部１９０１は、操作部１９０２、表示部１９０３と、高速通信インターフェイス部１９０４と、電源部１９０５と、低速無線通信モジュール１９０６とに接続されている。制御部１９０１は、タブレット端末１００９の全体的な動作を制御する。制御部１９０１は、操作部１９０２からの入力を受け付ける。また、制御部１９０１は、表示部１９０３に出力指示を出す。
【０２０９】
より詳しくは、制御部１９０１は、ＣＰＵと、ＲＡＭと、ＲＯＭと、ＵＡＲＴと、ＧＰＩＯとで構成される。ＲＡＭと、ＲＯＭと、ＵＡＲＴと、ＧＰＩＯとは、それぞれ、ＣＰＵに接続されている。
【０２１０】
低速無線通信モジュール１９０６は、アンテナ１１０７と接続されている。低速無線通信モジュール１９０６は、低速無線通信ネットワークＺにおける消費電力測定器との間の通信を制御する。低速無線通信モジュール１９０６は、ＣＰＵと、ＲＡＭと、ＲＯＭと、ＵＡＲＴと、ＧＰＩＯと、無線ＲＦ（Radio Frequency）部で構成される。ＲＡＭと、ＲＯＭと、ＵＡＲＴと、ＧＰＩＯとは、それぞれ、ＣＰＵに接続されている。
【０２１１】
タブレット端末１００９は、以上のような構成を有することにより、中継器１００１とパーソナルコンピュータ１００３とタブレット端末１００８を用いた構成の場合と同様の効果を奏する。
【０２１２】
（ＲＲ２．第２の変形例）
上記においては、パーソナルエリアネットワークとしてＺｉｇＢｅｅを例に挙げて説明し、プロトコルもこれに準じたものを説明したが、これに限定されるものではない。パーソナルエリアネットワークとして、マルチホップをサポートするような他の通信方式にも適用することができる。
【０２１３】
＜他の実施の形態＞
本発明における中継器１００１が行なう通信によるタップのショートアドレスを含む情報の収集方法は、プログラムとして提供することもできる。このようなプログラムは、コンピュータ（無線ＲＦ内蔵通信コントローラ部１１０６）に付属するＣＤ−ＲＯＭ、ＲＯＭ、ＲＡＭおよびメモリカードなどのコンピュータ読取り可能な記録媒体にて記録させて、プログラム製品として提供することもできる。あるいは、コンピュータに内蔵する記録媒体にて記録させて、プログラムを提供することもできる。また、ネットワークＺまたはＥを介したダウンロードによって、プログラムを提供することもできる。
【０２１４】
提供されるプログラム製品は、各種記録媒体などのプログラム格納部にインストールされてＣＰＵにより読出されて実行される。なお、プログラム製品は、プログラム自体と、プログラムが記録された記録媒体とを含む。
【０２１５】
今回開示された実施の形態は例示であって、上記内容のみに制限されるものではない。本発明の範囲は特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０２１６】
１００  コーディネータ、１００１  中継器、１００２  ワイヤレスブロードバンドルータ、１００３  パーソナルコンピュータ、１００４  タップ、１００５〜１００７  家電機器、１００８，１００９  タブレット端末、１１０１，１９０１  制御部、Ｚ，Ｅ  ネットワーク。
【図１】
0005996905.tif 000002
【図２】
0005996905.tif 000003
【図３】
0005996905.tif 000004
【図４】
0005996905.tif 000005
【図５】
0005996905.tif 000006
【図６】
0005996905.tif 000007
【図７】
0005996905.tif 000008
【図８】
0005996905.tif 000009
【図９】
0005996905.tif 000010
【図１０】
0005996905.tif 000011
【図１１】
0005996905.tif 000012
【図１２】
0005996905.tif 000013
【図１３】
0005996905.tif 000014
【図１４】
0005996905.tif 000015
【図１５】
0005996905.tif 000016
【図１６】
0005996905.tif 000017
【図１７】
0005996905.tif 000018
【図１８】
0005996905.tif 000019
【図１９】
0005996905.tif 000020
【図２０】
0005996905.tif 000021
【図２１】
0005996905.tif 000022
【図２２】
0005996905.tif 000023