(57)【要約】【課題】無線通信帯域を有効利用し、センサノードの電力消費を必要最小限に抑えてファームウェアを更新できるようにしたセンサノードシステムを提供すること。【解決手段】無線区間の最上位の中継ノードが、下位中継ノードまたはセンサノードにダウンロードすべきファームウェアを複数のブロックに分割し、それぞれが１つのファームウェアブロックを含む複数のファームウェアパケットを生成し、下位の複数の中継ノードに、上記ファームウェアおよび受信ノードの属性情報を含むメタ情報パケットを送信した後、データ送信要求を応答してきた下位中継ノードに対して、上記一連のファームウェアパケットを順次に送信する。下位の各中継ノードは、上位中継ノードから受信した上記メタ情報パケットおよび複数のファームウェアパケットを一時的に保存しておき、更に下位のノード群に対して、上記メタ情報パケットを送信し、データ送信要求を応答してきた下位ノードに対して、上記一連のファームウェアパケットを送信する。【選択図】図６
2008288978.tif 000002
【特許請求の範囲】
【請求項１】
無線通信部を備えた複数のセンサノードが、上位中継ノードと下位中継ノードとからなる階層化された複数の無線中継ノードを介して、通信ネットワークに接続されたセンサネットシステムにおいて、
無線区間の最上位の中継ノードが、
下位中継ノードまたはセンサノードのうちの何れかにダウンロードすべきファームウェアを複数のブロックに分割し、それぞれが１つのファームウェアブロックを含む複数のファームウェアパケットと、上記ファームウェアおよび受信ノードに関する属性情報を含むメタ情報パケットとを生成するパケット生成部と、
下位の複数の中継ノードに上記メタ情報パケットを送信し、データ送信要求を応答してきた下位中継ノードに対して、上記パケット生成部で生成された一連のファームウェアパケットを順次に送信するためのパケット送信制御部とを備え、
下位の各中継ノードが、
上位中継ノードから受信した上記メタ情報パケットおよび複数のファームウェアパケットを一時的に保存するための受信パケット記憶部と、
更に下位の中継ノードまたはセンサノードからなる下位ノード群に対して、上記メタ情報パケットを送信し、データ送信要求を応答してきた下位ノードに対して、上記一連のファームウェアパケットを送信するパケット送信制御部とを備えたことを特徴とするセンサネットシステム。
【請求項２】
前記各中継ノードが、前記一連のファームウェアパケットを送信した後で、前記下位ノードにパケット送信完了を通知することを特徴とする請求項１に記載のセンサネットシステム。
【請求項３】
前記各中継ノードが、それぞれの無線通信領域で下位ノードとなる下位中継ノードまたはセンサノードのアドレス情報と対応付けてファームウェア送信制御情報を示す複数のテーブルエントリからなるノードテーブルを備え、前記パケット送信制御部が、上記ノードテーブルに登録された下位ノードを対象として、前記メタ情報パケットおよびファームウェアパケットを送信することを特徴とする請求項１に記載のセンサネットシステム。
【請求項４】
前記各センサノードが、
前記メタ情報パケットが示す属性情報と照合すべきノードパラメータを保持したノードパラメータ記憶部と、
上記メタ情報パケットが示す属性情報と上記ノードパラメータ記憶部が示すノードパラメータとを照合して、上記メタ情報パケットで送信を予告されたファームウェアの自ノードへのダウンロード要否を判定し、前記メタ情報パケットの送信元となる中継ノードに対して、自ノードにダウンロードすべきファームウェアが送信予告された場合はデータ送信要求を応答し、ダウンロード不要なファームウェアが送信予告された場合はデータ受信拒否を応答するメタ情報判定部とを備えたことを特徴とする請求項１〜請求項３の何れかに記載のセンサネットシステム。
【請求項５】
前記各中継ノードが、前記メタ情報パケットに対する前記各下位ノードからの応答結果を前記ノードテーブルに記憶しておき、データ受信拒否を応答してきた下位ノードには前記ファームウェアパケットの送信を抑制し、データ送信要求を応答してきた下位ノードに対して、上記ノードテーブルが示すファームウェア送信制御情報に従って、前記ファームウェアパケットを送信することを特徴とする請求項４に記載のセンサネットシステム。
【請求項６】
前記ノードテーブルのファームウェア送信制御情報が、前記ファームウェアパケット毎の送信有無を示すフラグ情報を含むことを特徴とする請求項５に記載のセンサネットシステム。
【請求項７】
前記各センサノードが、受信した一連のファームウェアパケットから新たなファームウェアを組み立て、該ファームウェアをメモリにロードし、上記ファームウェアパケットの送信元となる中継ノードに対して、ファームウェア更新完了を通知するファームウェア更新部を備えたことを特徴とする請求項４に記載のセンサネットシステム。
【請求項８】
前記各中継ノードが、
前記メタ情報パケットが示す属性情報と照合すべきノードパラメータを保持したノードパラメータ記憶部と、
上記メタ情報パケットが示す属性情報と上記ノードパラメータ記憶部が示すノードパラメータとを照合し、前記受信パケット記憶部に保存されたファームウェアパケットで構成される新たなファームウェアの自ノードへのダウンロード要否を判定するメタ情報判定部と、
前記受信パケット記憶部に保存された一連のファームウェアパケットから新たなファームウェアを組み立て、該ファームウェアをメモリにロードするファームウェア更新部とを備えることを特徴とする請求項１〜請求項７の何れかに記載のセンサネットシステム。
【請求項９】
前記各中継ノードのメタ情報判定部が、前記新たなファームウェアの自ノードへのダウンロード要否に関係なく、前記メタ情報パケットの送信元となった上位ノードにデータ送信要求を応答することを特徴とする請求項８に記載のセンサネットシステム。
【請求項１０】
前記各中継ノードが、前記ファームウェアパケットの送信先となった全ての下位ノードから、一連のファームウェアパケットの受信完了通知またはファームウェア更新完了通知を受信した時、上位ノードに対してファームウェアの更新完了を通知することを特徴とする請求項１〜請求項９の何れかに記載のセンサネットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、センサネットシステムに関し、更に詳しくは、無線通信機能を備えた複数種類のセンサノードと、階層化された複数の無線中継ノードとからなるセンサネットシステムに関する。
【背景技術】
【０００２】
従来、電子機器の制御プログラムを更新する場合に、電子機器に構成情報記憶部を設けておき、電子機器の制御部が、通信部（通信インタフェース）を介して外部機器（ホスト）から新たな制御プログラムのヘッダ情報（ファイルＩＤ）を取得し、ヘッダ情報中の機能情報を上記構成情報記憶部に記憶してある構成情報と比較してプログラム更新の可否を判定し、判定結果に従って、プログラム記憶部にある所定の制御プログラムを更新するようにした機器制御装置が提案されている（例えば、特許文献１参照）。
【０００３】
【特許文献１】特開２００３−７６５６５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
近年、それぞれが無線通信機能を備えた複数のセンサノード（センサ端末）を無線中継ノードを介して通信ネットワークに接続した無線型のセンサネットシステムが注目されている。センサノード（センサ端末）は、実装されるセンサの種類によって、温度、湿度のような環境情報、ＴＶカメラで撮影した監視映像、人の脈拍や体温、対話相手など、実世界における様々な情報をセンシングすることができる。また、無線型のセンサネットシステムでは、各センサノードで検知したセンシング情報を無線中継ノードを経由して、通信ネットワークに接続された監視センタまたは管理サーバに転送することができるため、ユビキタス社会に向けた様々な応用が検討されている。
【０００５】
無線型のセンサノードは、マイクロプロセッサ機能とメモリを備えており、マイクロプロセッサが、メモリに用意されたプログラムを実行して、センシング情報の収集と、センシング情報の上位装置への送信を行っている。メモリには、センサノードの用途に応じたアプリケーションプログラムの他に、適用される無線通信プロトコルに応じたミドルウェアプログラムが用意される。これらのプログラム（ファームウェア）は、実装後に不具合が見つかった場合や、機能の変更、新機能の追加が必要となった時、バージョンアップされたファームウェアへの置換え（更新）作業が必要となる。
【０００６】
センサノードのような端末に実装されたプログラムの更新方法としては、（１）ノード端末をシリアルインタフェースを介してパソコンに接続し、パソコン上で動作する専用ツールで、パソコンからノード端末に新たなプログラムをロードする方法と、（２）無線で各ノード端末に新たなプログラムをロードする方法とがある。
【０００７】
特許文献１に示された制御装置は、方法（１）に適用可能な従来技術と見ることができるが、プログラム更新対象となる電子機器と、新プログラムを供給する外部装置（ホスト装置）とを専用の通信インタフェースで１対１の関係で接続した状態で、プログラムの更新処理を実行しているため、分散配置された多数のノードセンサがプログラム更新対象となるセンサノードシステムには適していない。
【０００８】
センサノードシステムにおけるプログラム更新には、無線を使用した方法（２）が望ましいが、各センサノードが、階層化された複数の無線中継ノードを介して通信ネットワークに接続された構成のセンサノードシステムの場合、上位装置から各センサノードへのプログラム（ファームウェア）の送信に工夫が必要となる。
【０００９】
センサネットワークでは、各センサノードは、例えば、ＩＥＥＥ  ８０２．１５．４の無線通信規格に従って、中継ノードと通信している。この場合、無線区間の通信帯域を有効に利用し、且つ、各センサノードが備える内蔵電池の消耗をできるだけ少なくするためには、ファームウェアをダウンロードする際に、各センサノードにおける無駄な通信処理をなくす必要がある。
【００１０】
例えば、無線区間での帯域を有効利用するために、各中継ノードから不特定多数のセンサノードに対して、特定タイプのセンサノードにダウンロードすべきファームウェアをブロードキャストすればよいが、この方法では、アップデートの対象外となるセンサノードが、自分には関係のない大量のファームウェア情報を受信処理することになるため、電池の消耗回避の点で問題となる。
【００１１】
一方、送信されたファームウェアの受信ノードを特定するためには、例えば、ファームウェア用のパケットをマルチキャストすればよいが、この場合、ファームウェアの送信元となるサーバにおいて、多種、多数のセンサノードについて、マルチキャストアドレスと
マルチキャストメンバとなるセンサノード識別子との関係を管理しておく必要があり、サーバ側の保守作業が容易でない。
【００１２】
本発明の目的は、無線区間での通信帯域を有効に利用し、センサノード側での電力消費を必要最小限に抑えてファームウェアの更新を可能にしたセンサノードシステムを提供することにある。
【課題を解決するための手段】
【００１３】
上記目的を達成するため、本発明は、無線通信部を備えた複数のセンサノードが、上位中継ノードと下位中継ノードとからなる階層化された複数の無線中継ノードを介して、通信ネットワークに接続されたセンサネットシステムにおいて、
無線区間の最上位の中継ノードが、下位中継ノードまたはセンサノードのうちの何れかにダウンロードすべきファームウェアを複数のブロックに分割し、それぞれが１つのファームウェアブロックを含む複数のファームウェアパケットと、上記ファームウェアおよび受信ノードに関する属性情報を含むメタ情報パケットとを生成するパケット生成部と、下位の複数の中継ノードに上記メタ情報パケットを送信し、データ送信要求を応答してきた下位中継ノードに対して、上記パケット生成部で生成された一連のファームウェアパケットを順次に送信するためのパケット送信制御部とを備え、
下位の各中継ノードが、上位中継ノードから受信した上記メタ情報パケットおよび複数のファームウェアパケットを一時的に保存するための受信パケット記憶部と、更に下位の中継ノードまたはセンサノードからなる下位ノード群に対して、上記メタ情報パケットを送信し、データ送信要求を応答してきた下位ノードに対して、上記一連のファームウェアパケットを送信するパケット送信制御部とを備えたことを特徴とする。
【００１４】
ここで、最上位の中継ノードは、例えば、通信ネットワークまたは管理サーバに接続されたゲートウェイノードであり、下位中継ノードは、無線サービスエリアに離間配置されたルータノードである。下位中継ノードは、センサノード群とダイレクトに通信するものもあれば、更に下位のルータノードと通信するものもある。後者の場合、各ルータノードは、上位のルータノードと同様の動作を繰り返して、更に下位の中継ノードまたはセンサノードからなる下位ノード群に対して、メタ情報パケットとファームウェアパケットを送信する。
【００１５】
更に詳述すると、本発明のセンサネットシステムでは、各中継ノードが、それぞれの無線通信領域で下位ノードとなる下位中継ノードまたはセンサノードのアドレス情報と対応付けてファームウェア送信制御情報を示す複数のテーブルエントリからなるノードテーブルを備え、上述したパケット送信制御部が、上記ノードテーブルに登録された下位ノードを対象として、メタ情報パケットおよびファームウェアパケットを送信することを特徴とする。
【００１６】
本発明のセンサネットシステムでは、各センサノードが、メタ情報パケットが示す属性情報と照合すべきノードパラメータを保持したノードパラメータ記憶部と、上記メタ情報パケットが示す属性情報と上記ノードパラメータ記憶部が示すノードパラメータとを照合して、上記メタ情報パケットで送信を予告されたファームウェアの自ノードへのダウンロード要否を判定し、上記メタ情報パケットの送信元となる中継ノードに対して、自ノードにダウンロードすべきファームウェアが送信予告された場合はデータ送信要求を応答し、ダウンロード不要なファームウェアが送信予告された場合はデータ受信拒否を応答するメタ情報判定部とを備えたことを特徴とする。
【００１７】
また、本発明のセンサネットシステムでは、各中継ノードが、メタ情報パケットが示す属性情報と照合すべきノードパラメータを保持したノードパラメータ記憶部と、上記メタ情報パケットが示す属性情報と上記ノードパラメータ記憶部が示すノードパラメータとを照合し、前記受信パケット記憶部に保存されたファームウェアパケットで構成される新たなファームウェアの自ノードへのダウンロード要否を判定するメタ情報判定部と、上述した受信パケット記憶部に保存された一連のファームウェアパケットから新たなファームウェアを組み立て、該ファームウェアをメモリにロードするファームウェア更新部とを備えたことを特徴とする。
【００１８】
尚、各中継ノードのメタ情報判定部は、新たなファームウェアの自ノードへのダウンロード要否に関係なく、メタ情報パケットの送信元となった上位ノードにデータ送信要求を応答する。最上位の中継ノードは、新たなファームウェアが自ノード用の場合、これを下位ノードに中継する必要はない。
【発明の効果】
【００１９】
本発明によれば、各中継ノードは、自分がダイレクトに通信できる下位ノード（子ノード）に対してのみメタ情報パケットを送信し、データ送信要求を応答してきた下位ノード（子ノード）に対してのみ、一連のファームウェアパケットを送信すればよい。また、センサノードは、メタ情報パケットで送信予告されたファームウェアの受信要否を判定し、もし、受信不要なファームウェアであれば、データ受信拒否を応答することによって、一連のファームウェアパケットの受信処理を回避できるため、電池の消耗を最小限に抑えることができる。ファームウェアの規模が大きければ、中継ノードから送信されるファームウェアパケットの個数が増加するが、本発明では、中継ノードとセンサノードとの間では、センサノード側で必要とするファームウェアパケットのみが送信されているため、無線区間の通信帯域が有効利用される。
【発明を実施するための最良の形態】
【００２０】
以下、図面を参照して、本発明の実施例について説明する。
図１は、本発明が適用されるセンサネットシステムの１例を示す。
センサネットシステムは、それぞれ通信ネットワークＮＷに接続された監視センタ装置１０、センサネット管理サーバ１１および無線型ゲートウェイノード２０と、互いに離散して配置された複数の無線型ルータノード３０（３０Ａ〜３０Ｄ、３０Ｃ１、３０Ｃ２）と、これらのルータノード３０と交信する複数の無線型センサノード４０（４０−１〜４０−Ｎ）とからなっている。ここでは、ゲートウェイノード２０が、ネットワークＮＷを介してセンサネット管理サーバ１１に接続されているが、ゲートウェイノード２０とセンサネット管理サーバ１１は、専用の回線で接続されていてもよい。
【００２１】
上記センサネットシステムにおいて、各センサノード４０は、ゲートウェイノード２０を最上位の中継ノードとし、ルータノード３０を下位中継ノードとする階層化された無線中継網を介して、通信ネットワークＮＷに接続される。センサノード４０には、据置き型のセンサノードＳＳ（ＳＳ１〜ＳＳ６）と、移動型のセンサノードＭＳＳ（ＭＳＳ１〜ＭＳＳ５）とがあり、据置き型のノードＳＳとしては、例えば、温度センサや湿度センサを備えた環境情報計測用のセンサノードと、カメラを備えた監視映像送信用のセンサノードが含まれる。また、移動型ノードＭＳＳには、例えば、ユーザの脈拍や活動量の計測する腕時計型のセンサノードや、ユーザの位置や行動を検出するための名札型のセンサノードがある。
【００２２】
図示したセンサネットシステムでは、各センサノード４０は、無線によって、最寄のルータノード３０と交信し、ルータノード３０とゲートウエイノード２０を経由して、センシング情報をセンサネット管理サーバ１１あるいは監視センタ装置１０に送信する。
ルータノード３０には、例えば、ノード３０Ａ、３０Ｂのように、ゲートウエイノード２０から受信した下り方向のパケットをセンサノード４０にダイレクトに転送し、センサノード４０から受信した上り方向のパケットをゲートウエイノード２０にダイレクトに転送するものと、例えば、ノード３０Ｃ、３０Ｃ１、３０Ｃ２のように階層化され、上り方向または下り方向の受信パケットを他のルータノードを経由して、宛先に転送するものとがある。
【００２３】
センサネット管理サーバ１１は、センサノード４０から送信されたセンシング情報の管理機能と、後述するように、ゲートウェイノード２０、ルータノード３０およびセンサノード４０のファームウェアを更新するための機能を備えている。
【００２４】
図２は、ゲートウェイノード２０の１実施例を示すブロック図である。
ゲートウェイノード２０は、ネットワークＮＷに接続するための回線インタフェース２１と、ルータノード３０と交信するための無線通信部２２と、プロセッサ２３と、プログラムメモリ２４と、データメモリ２５とからなり、これらの要素は内部バスによって相互接続されている。センサネットシステムでは、無線通信部２２は、例えば、ＩＥＥＥ８０２．１５．４や、ＺｉｇＢｅｅなどの無線通信規格に従って、他のノード装置とデータパケットを交信する。
【００２５】
データメモリ２５には、ノードパラメータ記憶部２６と、後述するノードテーブル２７と、ファームウェア記憶部２８、ルーティングテーブル２９が形成され、プログラムメモリ２４には、プロセッサ２３によって実行される本発明に関係するプログラムとして、ノードテーブル管理部２４１、パケット生成部２４２、ファームウェア更新部２４３、パケット送信制御部２４４、その他のプログラム２４５が用意されている。
【００２６】
ノードテーブル２７には、図３に示すように、ゲートウェイノード２０に無線で接続される複数のルータノードのＭＡＣアドレスを示す複数のテーブルエントリＥＮ１、ＥＮ２、ＥＮ３、・・・が登録されている。各テーブルエントリは、エントリ番号２７０およびルータノードＭＡＣアドレス２７１と対応して、後述するメタ情報パケットの送信状況を示すメタ情報送信フラグ２７２と、ファームウェアパケット送信フラグ２７３と、ステータス２７４が、ファームウェア送信制御情報として記憶されている。
【００２７】
本実施例では、ゲートウェイノード２０は、センサネット管理サーバ１１から、特定のルータノード３０または特定のセンサノード４０にダウンロードすべきファームウェア（プログラム）とファームウェア属性情報を受信した時、受信したファームウェアをファームウェア記憶部２８に一旦保存し、ファームウェアを複数のデータブロックに分割して、無線区間に適合した一連のファームウェアパケットとして、ノードテーブル２７に登録された各ルータノードに送信する。            
この場合、ゲートウェイノード２０は、ファームウェアパケットの送信に先立って、例えば、ファームウェアパケットを受信すべきノードのタイプ、ファームウェアのバージョン番号などのファームウェア属性情報と、必要に応じてファームウェアパケットの個数などの受信制御情報を含む制御パケットを各ルータノードに送信する。以下の説明では、上記制御パケットのように、ファームウェアパケットに先立って送信される制御パケットをメタ情報パケットと呼ぶ。
【００２８】
各ルータノード３０は、ゲートウェイノード２０から受信したメタ情報パケットを解析して、メタ情報パケットで送信予告されたファームウェアの自ノードへのダウンロード要否を判定する。各ルータノード３０は、送信予告されたファームウェアを下位のノード（センサノードまたは下位ルータノード）に転送する必要があるため、自ノードにダウンロードすべきものか否かには関係なく、データ送信を要求する応答パケットをゲートウェイノード２０に返送する。ゲートウェイノード２０のパケット送信制御部２４４は、メタ情報パケットに応答して、データ送信要求を返送してきたルータノードに対して、一連のファームウェアパケットを送信する。
【００２９】
ノードテーブル２７において、メタ情報送信フラグ２７２は、ノードアドレス２７１が示すルータノードへの上記メタ情報パケットの送信に有無を示している。また、ファームウェアパケット送信フラグ２７３は、ファームウェアから生成されたｎ個のファームウェアパケットＰ（１）〜Ｐ（ｎ）について、ノードアドレス２７１が示すルータノード３０への送信の有無を示している。
【００３０】
ゲートウェイノード２０は、最後のファームウェアパケットＰ（ｎ）を送信した後、パケット送信完了通知を送信して、ルータノード３０からの応答を待つ。ルータノード３０からファームウェアの更新完了を示す応答パケットを受信すると、ゲートウェイノード２０は、ステータス２７４に、ファームウェア更新完了を示すコードを設定して、上記ルータノードへのファームウェアダウンロード処理を終了する。
尚、パケット送信完了通知に対して、所定時間内に応答しなかったルータノードのステータス２７４には、ファームウェアダウンロードが失敗したことを示すコードが設定される。
【００３１】
ノードテーブル管理部２４１は、ノードテーブル２７におけるテーブルエントリの登録／削除と、上述したフラグ２７２、２７３およびステータス２７４を更新するためのプログラムであり、パケット生成部２４２は、ファームウェア記憶部２７から読み出したファームウェアを無線区間のｎ個のファームウェアパケットに変換するためのプログラム、パケット送信制御部２４４は、ノードテーブル２７を参照して、データ送信要求を返送してきた全てのルータノードに一連のファームウェアパケットを送信し、全てのルータノードへのファームウェアダウンロードが完了した時点で、上位装置であるセンサネット管理サーバ１１にファームウェアの更新完了を通知するプログラムである。
【００３２】
尚、ノードテーブル管理部２４１は、例えば、ルーティングテーブル２９を参照して、自ノードとダイレクトに通信できるルータノードのＭＡＣアドレスを検索して、ノードテーブル２７に登録すべきテーブルエントリを生成する。また、このゲートウェイノード２０のノードテーブル２７には、ルータノードだけでなく、センサノードを含めてもよい。すなわち、センサノードもパケット送信制御部２４４がファームウェアパケットを送信する対象になり得る。
【００３３】
ファームウェア更新部２４３は、センサネット管理サーバ１１から配信されたファームウェア属性情報（メタ情報）から、受信したファームウェアが自ノードにダウンロードすべきものか否かを判定し、ダウンロードすべきファームウェアであれば、ファームウェア更新処理（メモリ２４にその他のプログラム２４５として記憶されている既存の特定のファームウェアと新ファームウェアとの置き換え）を行うためのプログラムである。受信したファームウェアが自ノードにダウンロードすべきものか否かの判断は、センサネット管理サーバ１１から受信したメタ情報と、ノードパラメータ記憶部２６に記憶された自ノードの属性情報、例えば、ノードタイプ、既存ファームウェアの識別情報およびバージョン番号などと比較することによって行われる。
【００３４】
図４は、ルータノード３０の１実施例を示すブロック図である。
ルータノード３０は、ゲートウェイノード２０、センサノード４０または他のルータノードと交信するための無線通信部３１と、プロセッサ３２と、プログラムメモリ３３と、データメモリ３４とからなり、これらの要素は内部バスによって相互接続されている。無線通信部３１は、例えば、ＩＥＥＥ８０２．１５．４や、ＺｉｇＢｅｅなどの無線通信規格に従って、他のノード装置とデータパケットを交信する。
【００３５】
データメモリ３４には、ノードパラメータ記憶部３５と、ノードテーブル３６と、受信パケット記憶部３７と、ファームウェア記憶部３８が形成され、プログラムメモリ３３には、プロセッサ３２によって実行される本発明に関係するプログラムとして、ノードテーブル管理部３３１、メタ情報判定部３３２、ファームウェア更新部３３３、パケット送信制御部３３４、その他のプログラム３３５が用意されている。
【００３６】
ルータノード３０のノードテーブル３６には、図３に示したゲートウェイノード２０が備えるノードテーブル２７と同様の情報項目２７１〜２７４からなる複数のテーブルエントリが登録されている。
例えば、図１のルータノード３０Ａ、３０Ｂ、３０Ｃ１、３０Ｃ２のように、複数のセンサノードとダイレクトに交信するルータノードが備えるノードテーブル３６の場合、各テーブルエントリのノードアドレス２７１には、センサノードのＭＡＣアドレスが登録され、各センサノードへのメタ情報パケットの送信状況を示すメタ情報送信フラグ２７２と、ファームウェアパケット送信フラグ２７３と、ステータス２７４とが記憶される。
【００３７】
図１のルータノード３０Ｃのように、ルータノードが、階層化された下位の複数のルータノードと交信する上位ルータノードの場合、各テーブルエントリのノードアドレス２７１には、下位のルータノードのＭＡＣアドレスが登録され、各ルータノードへのメタ情報パケットの送信状況を示すメタ情報送信フラグ２７２と、ファームウェアパケット送信フラグ２７３と、ステータス２７４とが記憶されている。もし、上位ルータノードが、下位ルータノード以外に、センサノードも収容している場合、ノードテーブル３６には、下位ルータノードのＭＡＣアドレスをもつテーブルエントリと、センサノードのＭＡＣアドレスをもつテーブルエントリとが混在した形で、複数のテーブルエントリが登録される。
【００３８】
ルータノード３０は、ゲートウェイノード２０または上位ルータノードからメタ情報パケットを受信すると、メタ情報判定部３３２が、受信したメタ情報とノードパラメータ記憶部３５に保持されたノードパラメータを照合し、メタ情報パケットで送信予告されたファームウェアが自ノードにダウンロードすべきものか否かを判定する。但し、ルータノード３０の場合、メタ情報パケットで送信予告されたファームウェアを更に下位のノード（下位ルータノードまたはセンサノード）に転送する必要があるため、予告されたファームウェアが自ノードにダウンロードすべきものか否かの判定結果には関係なく、データ送信を要求する応答パケットを上位ルータノードに返送する。
【００３９】
ルータノード３０は、メタ情報パケットと、その後に受信した一連のファームウェアパケットを受信パケット記憶部３７に一旦保存する。一連のファームウェアパケットの保存が完了すると、ルータノード３０のパケット送信制御部３３４は、ノードテーブル３６が示す下位ノード（下位ルータノードまたはセンサノード）に対して、受信パケット記憶部３７から読み出したメタ情報パケットとファームウェアパケットを転送する。
【００４０】
ファームウェアパケットの送信は、ゲートウェイノード２０が行ったのと同様、最初に送信したメタ情報パケットに応答して、データ送信要求を返送してきたノードに対して行われる。あるいは、ルータノード３０は、メタ情報パケットと一連のファームウェアパケットの全てのパケット受信を完了する前に、下位ノード（下位ルータまたはセンサノード）に対して、受信できたパケットから順次直後に転送してもよい。
【００４１】
メタ情報パケットが、例えば、図１に示した上位ルータノード３０Ｃから下位ルータノード３０Ｃ１（または３０Ｃ２）に送信された場合も、下位ルータノード３０Ｃ１は、メタ情報パケットで送信予告されたファームウェアが自ノードにダウンロードすべきものか否かには関係なく、上位ルータノードに対してデータ送信要求を応答する。
【００４２】
メタ情報パケットが、ルータノード３０からセンサノード４０に送信された場合、センサノード４０は、受信したメタ情報パケットを解析して、送信予告されたファームウェアが自ノードで受信すべきファームウェアであれば、データ送信を要求する応答パケットをルータノード３０に返送し、受信する必要のないファームウェアであれば、データ受信を拒否する応答パケットをルータノード３０に返送する。ルータノード３０のパケット送信制御部３３４は、メタ情報パケットに応答して、データ送信要求を返送してきたセンサノードに対してのみ、一連のファームウェアパケットを送信する。
【００４３】
ルータノード３０は、最後のファームウェアパケットＰ（ｎ）の送信が完了すると、パケット送信完了通知を送信して、下位ノードからの応答を待つ。下位ノードからファームウェアの更新完了を示す応答パケットを受信すると、ルータノード３０は、ノードテーブル３６のステータス２７４に、ファームウェア更新完了を示すコードを設定して、上記下位ノードへのファームウェアのダウンロード処理を終了する。
【００４４】
下位ノードがセンサノードで、メタ情報パケットに対してデータ受信拒否応答を送信した場合、このセンサノードのステータス２７４には、ファームウェアダウンロードの対象外となったことを示すコードが設定される。また、下位ノードが、パケット送信完了通知に対して所定時間内に応答しなかった場合、このノードのステータス２７４には、ファームウェアダウンロードが異常終了（ダウンロードに失敗）したことを示すコードが設定される。
【００４５】
ノードテーブル管理部３３１は、ノードテーブル３６におけるテーブルエントリの登録／削除と、上述したフラグ２７２、２７３およびステータス２７４を更新するためのプログラムであり、メタ情報判定部３３２は、メタ情報パケットが示すメタ情報と、ノードパラメータ記憶部３５に記憶された自ノードの属性情報とを比較して、受信したファームウェアが自ノードにダウンロードすべきものか否かを判定すると共に、上位ノードにデータ送信要求を応答するプログラムである。
【００４６】
ファームウェア更新部３３３は、受信したファームウェアが自ノードにダウンロードすべきファームウェアの場合に、メモリ３３にその他のプログラム３３５として記憶されている既存のファームウェアを受信したファームウェアパケットから組み立てられた新たなファームウェアで置き換えるためのプログラムであり、パケット送信制御部３３４は、ノードテーブル３６を参照して、データ送信要求を返送してきた下位ノードに一連のファームウェアパケットを送信し、全ての下位ノードへのファームウェアダウンロードが完了した時点で、上位装置であるゲートウェイ２０または上位ルータノード３０にファームウェアの更新完了を通知するプログラムである。
【００４７】
図５は、センサノード４０の１実施例を示すブロック図である。
センサノード４０は、ルータノード３０と交信するための無線通信部４１と、センサノードの機能に応じた種類のセンサ４２と、プロセッサ４３と、プログラムメモリ４４と、データメモリ４５とからなり、これらの要素は内部バスによって相互接続されている。無線通信部４１は、ＩＥＥＥ８０２．１５．４や、ＺｉｇＢｅｅなどの無線通信規格に従って、ルータノードとデータパケットを交信する。
【００４８】
データメモリ４５には、ノードパラメータ記憶部４６と受信パケット記憶部４７と、ファームウェア記憶部４８が形成され、プログラムメモリ４４には、プロセッサ４３によって実行される本発明に関係するプログラムとして、メタ情報判定部４４１、ファームウェア更新部４４２、その他のプログラム４４３が用意されている。
【００４９】
センサノード４０は、ルータノード３０からメタ情報パケットを受信すると、メタ情報判定部４４１を実行する。メタ情報判定部４４１は、メタ情報パケットが示すメタ情報と、ノードパラメータ記憶部４６に記憶された自ノードの属性情報とを比較し、送信予告されたファームウェアが自ノードにダウンロードすべきものであれば、データ送信を要求する応答パケットをルータノード３０に返送し、その後に受信する一連のファームウェアパケットを受信パケット記憶部４７に蓄積するためのプログラムである。もし、メタ情報パケットで送信予告されたファームウェアが自ノードに関係のないものであれば、メタ情報判定部４４１は、データ受信を拒否する応答パケットをルータノード３０に返送する。
【００５０】
ファームウェア更新部４４２は、受信パケット記憶部４７に記憶されたファームウェアパケットからファームウェアを組み立て、メモリ４４にその他のプログラム４４３として記憶されている既存の特定ファームウェアを新たなファームウェアで更新した後、ルータノード３０に更新完了を通知するためのプログラムである。
【００５１】
図６は、ゲートウェイノード２０からルータノード３０へのファームウェアの送信手順を示すシーケンス図である。図６では、簡単化のために、ゲートウェイノード２０と、２つのルータノード３０Ａ、３０Ｄの動作を示しているが、他のルータノード３０Ｂ、３０Ｃも同様に動作する。
【００５２】
ゲートウェイノード２０は、ノードテーブル２７に登録された複数のルータノードに対して、メタ情報パケットを送信する（ＳＱ１）。メタ情報パケットは、複数のルータノードに個別に送信してもよいが、複数のルータノード３０Ａ〜３０Ｄに１つのメタ情報パケットをブロードキャスト（またはマルチキャスト）してもよい。
【００５３】
メタ情報パケットを受信した各ルータノード３０（３０Ａ、３０Ｄ）は、メタ情報パケットを受信パケット記憶部３７に保存した後、メタ情報判定部３３２で、受信したメタ情報を解析し、送信予告されたファームウェアが自ノードでダウンロードすべきものか否かを判定する（ＳＱ２）。各ルータノード３０のメタ情報判定部３３２は、ファームウェアの自ノードへのダウンロード要否には関係なく、ゲートウェイノード２０にデータ送信要求を返送し、ゲートウェイノード２０からのファームウェアパケットの送信を待つ（ＳＱ３（Ａ）、ＳＱ３（Ｄ））。
【００５４】
ゲートウェイノード２０は、データ送信要求を応答してきた各ルータノードに対して、ノードテーブル２７を参照しながら（ＳＱ４）、一連のファームウェアパケットＰ（１）〜Ｐ（ｎ）を順次に送信する（ＳＱ５（Ａ）、ＳＱ５（Ｄ）〜ＳＱ８（Ａ）、ＳＱ８（Ｄ））。ゲートウェイノード２０は、最後のファームウェアパケットＰ（ｎ）に続いて、パケット送信完了を示す通知パケットを送信し（ＳＱ９（Ａ）、ＳＱ９（Ｄ））、各ルータノードからの応答を待つ。
【００５５】
各ルータノード３０は、ゲートウェイノード２０から受信したファームウェアパケットを順次に受信パケット記憶部３７に保存しておき、パケット送信完了通知を受信すると、メタ情報パケットが示したｎ個のファームウェアパケットが受信済みか否かをチェックした上で、ゲートウェイノード２０に受信完了通知を返送する（ＳＱ１０（Ａ）、ＳＱ１０（Ｂ））。この後、各ルータノード３０は、受信したファームウェアが自ノードにダウンロードすべきものであれば、受信したファームウェアパケットからファームウェアを組立て、既存のファームウェアを更新し（ＳＱ１１）、下位ノードに対して、メタ情報パケットとファームウェアパケットの転送処理３００を実行する。
【００５６】
図１に示した階層化されたルータノード群において、上位中継ノードとなるルータノード３０Ｃの場合、ファームウェアパケットの転送処理３００では、下位ルータノード３０Ｃ１、３０Ｃ２に対して、図６のゲートウェイノード２０と同様の手順で、受信パケット記憶部３７から読み出したメタ情報パケットを送信し（ＳＱ１）、データ送信要求を応答してきた下位ルータノードに対して、受信パケット記憶部３７から読み出した一連のファームウェアパケットを送信し、最後にパケット送信完了通知を送信する（ＳＱ５〜ＳＱ９）。この場合、下位ルータノードは、３０Ｃ１、３０Ｃ２は、図６のルータノード３０Ａ、３０Ｄと同様の動作を行う。
【００５７】
一方、図１に示したルータノード３０Ａ、３０Ｂの場合、ファームウェアパケットの転送処理３００では、図７で詳述するように、複数のセンサノード４０−１、４０−２、・・・を下位ノードとして、受信パケット記憶部３７から読み出したメタ情報パケットを送信し、データ送信要求を応答してきたセンサノードに対して、受信パケット記憶部３７から読み出した一連のファームウェアパケットと、パケット送信完了通知を送信する。
【００５８】
各ルータノード３０は、データパケット送信要求を応答してきた全ての下位ノードへのファームウェアパケットの転送処理３００を完了すると、ゲートウェイ２０に対して、更新完了通知を送信する（ＳＱ４０（Ａ）、ＳＱ４０（Ｄ））。ゲートウェイノード２０は、ルータノード３０から更新完了通知を受信すると、ノードテーブル２７の該当するテーブルエントリのステータス２７４を更新しておき、ファームウェアパケットの送信先となった全てのルータノード３０から更新完了通知を受信した時点で、上位装置（センサネット管理サーバ１１）に更新完了通知を送信し（ＳＱ４１）、今回のファームウェアの更新処理を終了する。但し、上位装置への更新完了通知の送信は、簡単化のために、ノードテーブル２７が示す全てのルータノード３０から受信完了通知を受信できた時点で行うようにしてもよい。
【００５９】
図７は、ルータノードからセンサノードへのファームウェアの送信手順を示すシーケンス図である。ここでは、図１に示したルータノード３０Ａから、センサノード４０−１（ＳＳ１）、４０−２（ＳＳ２）、４０−３（ＭＳＳ１）へのファームウェアの送信手順について説明する。
【００６０】
ルータノード３０Ａは、ノードテーブル３６に登録された複数のセンサノードに対して、メタ情報パケットを送信する（ＳＱ２１）。メタ情報パケットは、各センサノードに個別に送信しても、ブロードキャストしてもよい。この例では、メタ情報パケットで送信予告されたファームウェアは、据置き型のセンサノードＳＳ１、ＳＳ２にダウンロードすべきものであって、移動型のセンサノードＭＳＳ１には無関係のものであったと仮定する。
【００６１】
メタ情報パケットを受信した各センサノード４０（ＳＳ１、ＳＳ２、ＭＳＳ１）は、メタ情報を解析し、送信予告されたファームウェアが自ノードでダウンロードすべきものか否かを判定する（ＳＱ２２）。その結果、据置き型センサノードＳＳ１とＳＳ２が、ルータノード３０Ａに対して、ファームウェアパケットの送信を要求するデータ送信要求を返送する（ＳＱ２３（ＳＳ１）、ＳＱ２３（ＳＳ２））。一方、移動型センサノードＭＳＳ１は、ルータノード３０Ａに対して、ファームウェアパケットの受信拒否応答を返送し（ＳＱ２３（ＭＳＳ１））、受信パケットを廃棄する。
【００６２】
ルータノード３０Ａは、ノードテーブル３６において、データ受信拒否を応答してきたセンサノードＭＳＳ１のステータス２７４に更新対象外を示すコードを設定し（ＳＱ２４）、データ送信要求を応答してきたセンサノードＳＳ１、ＳＳ２に対して、一連のファームウェアパケットＰ（１）〜Ｐ（ｎ）を順次に送信する（ＳＱ２５（ＳＳ１）、ＳＱ２５（ＳＳ２）〜ＳＱ２８（ＳＳ１）、ＳＱ２８（ＳＳ２））。
【００６３】
但し、ノードテーブルに登録されている全てのセンサノードがデータ受信拒否を応答した場合（本例では、全てのセンサノードが移動型のものであった場合）、ルータノード３０Ａは、受信パケット記憶部３７に保存されているファームウェアパケットを下位ノード（センサノード）に送信する必要性が無くなる。この場合、ルータノード３０Ａは、受信パケット記憶部３７から不要となったメタ情報パケットとファームウェアパケットを消去して、センサノードへのファームウェアのダウンロード処理を終了する。
【００６４】
ルータノード３０Ａは、センサノードＳＳ１とＳＳ２に最後のファームウェアパケットＰ（ｎ）を送信すると（ＳＱ２８（ＳＳ１）、ＳＱ２８（ＳＳ２）））、パケット送信完了を示す通知パケットを送信して（ＳＱ２９（ＳＳ１）、ＳＱ２９（ＳＳ２））、センサノードからの応答を待つ。
【００６５】
センサノードＳＳ１、ＳＳ２は、ルータノード３０Ａから受信したファームウェアパケットを順次に受信パケット記憶部４７に記憶しておき、パケット送信完了通知を受信すると、受信パケット記憶部４７に記憶してあるファームウェアパケットからファームウェアを組立て、既存のファームウェアを更新する（ＳＱ３０）。センサノードＳＳ１、ＳＳ２は、この後、ファームウェアの更新完了通知をルータノード３０Ａに送信し（ＳＱ３１（ＳＳ１）、ＳＱ３１（ＳＳ２））、受信パケット記憶部４７に記憶してあるファームウェアパケットを消去して（ＳＱ３２）、ファームウェアの更新処理を終了する。
【００６６】
ルータノード３０Ａは、センサノードから更新完了通知を受信すると、ノードテーブル３６の該当するテーブルエントリのステータス２７４に更新完了を示すコードを設定し（ＳＱ３３）、ファームウェアパケットの送信先となった全てのセンサノードから更新完了通知を受信した時点で、上位ノード（この例では、ゲートウェイノード２０）に更新完了通知を送信して（ＳＱ４０）、今回のファームウェア更新処理を終了する。
【００６７】
図８は、移動型センサノード、例えば、ＭＳＳ１が、ルータノード３０Ａからファームウェアパケットを受信中（ＳＱ２６、・・・）に移動し、別のルータノード３０Ｂに位置登録（ＳＱ４０）した場合のファームウェアの送信手順を示すシーケンス図である。
【００６８】
ルータノード３０Ａは、最後のファームウェアパケットＰ（ｎ）を送信した後、パケット送信完了通知を送信して（ＳＱ２９）、センサノードＭＳＳ１からの応答を待つ。
本例の場合、センサノードＭＳＳ１は、上記パケット送信完了通知を受信する前に、ルータノード３０Ａの通信圏内から外れているため、破線で示すように、センサノードＭＳＳ１からルータノード３０Ａへの更新完了通知（ＳＱ３１）の送信がない。
【００６９】
ルータノード３０Ａは、パケット送信完了通知を送信してから所定時間内に更新完了通知を受信できなかった場合、ノードテーブル３６におけるセンサノードＭＳＳ１のステータス２７４に、ファームウェアダウンロードが異常終了（ダウンロードに失敗）したことを示すコードを設定して、センサノードＭＳＳ１へのファームウェア更新処理を終了する（ＳＱ３３）。
【００７０】
一方、センサノードＭＳＳ１の移動先となったルータノード３０Ｂは、センサノードＭＳＳ１が位置登録されると、ノードテーブル３６にセンサノードＭＳＳ１用の新たなテーブルエントリを追加し（ＳＱ４１）、周辺に位置する複数のルータノードに対して、センサノードＭＳＳ１についてのファームウェアダウンロード状況の報告要求をブロードキャストする（ＳＱ４２）。各ルータノードは、上記ファームウェアダウンロード状況報告要求を受信すると、自分のノードテーブル３６にセンサノードＭＳＳ１用のテーブルエントリが登録されているか否かをチェックする。
【００７１】
本例の場合、センサノードＭＳＳ１用のテーブルエントリは、ルータノード３０Ａのノードテーブル３６に存在しているため、ルータノード３０Ａからルータノード３０Ｂに、センサノードＭＳＳ１へのファームウェアダウンロードが異常終了になっていることが報告される（ＳＱ４３）。
【００７２】
ルータノード３０Ａは、ルータノード３０Ｂから、センサノードＭＳＳ１についてのファームウェアダウンロード状況報告要求を受信したことによって、センサノードＭＳＳ１が既にルータノード３０Ｂの通信圏内に移動したことが判る。そこで、ルータノード３０Ａは、ノードテーブル３６から、不要となったセンサノードＭＳＳ１用のテーブルエントリを削除し（ＳＱ４４）、もし、全てのセンサノードへのファームウェアダウンロードが終了していれば、上位ノードであるゲートウェイノード２０にファームウェア更新終了通知を送信する（ＳＱ４５）。
【００７３】
一方、ルータノード３０Ｂは、ルータノード３０Ａからの状況報告によって、センサノードＭＳＳ１へのファームウェアのダウンロードが異常終了していることが判明すると、センサノードＭＳＳ１にメタ情報パケットを送信して（ＳＱ５１）、センサノードＭＳＳ１からの応答を待つ。
【００７４】
センサノードＭＳＳ１は、上記メタ情報パケットを受信すると、受信したメタ情報とノードパラメータとを比較し、送信予告されたファームウェアが自ノードにダウンロードすべきものであると判断する（ＳＱ５２）。センサノードＭＳＳ１は、受信パケット記憶領域４７に残っている不要パケットを消去した後、ルータノード３０Ｂに、データ送信要求を返送する（ＳＱ５３）。これによって、ルータノード３０ＢからセンサノードＭＳＳ１に、一連のファームウェアパケットＰ（１）〜Ｐ（ｎ）が送信され（ＳＱ５５〜ＳＱ５８）、最後にパケット送信完了通知が送信される（ＳＱ５９）。パケット送信完了通知が送信された後のセンサノードＭＳＳ１とルータノード３０Ｂの動作は、図７で説明したセンサノードＳＳ１、ルータノード３０Ａの動作と同一である。
【００７５】
本実施例のように移動型のセンサノードを含む場合、各ルータノードは、ノードテーブルに登録された全てのセンサノードへのファームウェアパケットの転送処理が終了した後で、他のルータノードの通信エリアから移動してきた新たなセンサノードへのファームウェアダウンロードが必要となる可能性がある。従って、各ルータノードは、ノードテーブルに登録されている全てのセンサノードへのファームウェアパケットの転送を終了した後、所定時間が経過するのを待って、受信パケット記憶部から不要となったメタ情報パケットとファームウェアパケットを消去するようにしておくことが望ましい。
【図面の簡単な説明】
【００７６】
【図１】本発明が適用されるセンサネットシステムの１例を示す図。
【図２】ゲートウェイノード２０の１実施例を示すブロック図。
【図３】ゲートウェイノード２０が備えるノードテーブルの構成図。
【図４】ルータノード３０の１実施例を示すブロック図。
【図５】センサノード４０の１実施例を示すブロック図。
【図６】ゲートウェイノード２０からルータノード３０へのファームウェアの送信手順を示すシーケンス図。
【図７】ルータノードからセンサノードへのファームウェアの送信手順を示すシーケンス図
【図８】ファームウェアダウンロード中に移動したセンサノードＭＳＳ１へのファームウェアの送信手順を示すシーケンス図。
【符号の説明】
【００７７】
１０：監視センタ装置、１１:センサネット管理サーバ、２０：ゲートウェイノード、３０：ルータノード、４０：センサノード、２７、３６：ノードテーブル。
【図１】
2008288978.tif 000003
【図２】
2008288978.tif 000004
【図３】
2008288978.tif 000005
【図４】
2008288978.tif 000006
【図５】
2008288978.tif 000007
【図６】
2008288978.tif 000008
【図７】
2008288978.tif 000009
【図８】
2008288978.tif 000010