(57)【要約】  通信ユニット同士が直接または他の通信ユニットを経由して接続するアドホックネットワーク等のネットワークにおける通信装置が実行するデータの更新方法である。ファームデータの送信元のゲートウェイが、無線品質を含む評価値において低いものが優先されるように隣接する所定数の親通信ユニットを選択して更新ファームデータを転送してデータ更新を実行させる。更新を実行させられた親通信ユニットは、同様に最終宛先までの到達可能性に関する経路品質を示す評価値において相対的に低いものが優先されるように前記データ更新が未更新の他の隣接する所定数の子通信ユニットを選択して更新ファームデータを転送してデータ更新を実行させる。以下、子通信ユニットから、孫通信ユニット、ひ孫通信ユニットというように同様の選択を行ない、更新ファームデータによるデータ転送処理を繰り返す。
2011121671.tif 000002
【特許請求の範囲】
【請求項１】
無線ネットワークを構成する通信ユニットであって、
１ホップで接続可能な隣接通信ユニット毎に、該隣接通信ユニットにおける所定のプログラムの設定状況、及び、前記通信ユニットと該隣接通信ユニット間の無線品質に関する情報が記憶される記憶部と、
前記所定のプログラムの設定状況及び無線品質に関する情報に基づき、前記通信ユニットと隣接通信ユニット間におけるネットワークの前記無線品質を含む評価値において、複数の該隣接通信ユニット間で該評価値が相対的に低く、かつ、該所定のプログラムが未設定の隣接通信ユニットを選択する選択手段と、
前記選択された隣接通信ユニットに対して前記所定のプログラムを送信する送信手段、
を備えたことを特徴とする通信ユニット。
【請求項２】
前記記憶部は、さらに、前記隣接通信ユニットが存在する位置情報が記憶され、
前記選択手段は、複数の前記隣接通信ユニットの前記位置情報に基づき、既に選択した隣接通信ユニットを起点にして、他の複数の隣接通信ユニットの中で、該既選択の隣接通信ユニットとの距離が相対的に大きく前記プログラムが未設定である隣接通信ユニットを選択する、
ことを特徴とする請求項１に記載の通信ユニット。
【請求項３】
前記送信手段は、前記選択された隣接通信ユニットの数に応じて、該選択された隣接通信ユニットに対する前記プログラムの送信方式を、ユニキャスト送信とマルチキャスト送信に切り替える、
を更に備えることを特徴とする請求項１に記載の通信ユニット。
【請求項４】
前記通信ユニットは、
前記選択手段は、前記プログラムが未設定の隣接通信ユニットの内で所定数を選択し、
前記送信手段は、前記所定数に選択されなかった隣接通信ユニットに対しては、前記プログラムをユニキャスト送信する、
ことを特徴とする請求項１に記載のプログラム送信方法。
【請求項５】
前記記憶部は、前記隣接通信ユニットの前記位置情報として、前記無線ネットワーク内に前記プログラムを最初に送信する通信ユニットを起点とした座標情報が記憶される、
ことを特徴とする請求項２に記載の通信ユニット。
【請求項６】
前記通信ユニットは、前記無線ネットワーク内に前記プログラムを最初に送信する通信ユニットであり、
前記選択手段は、前記評価値において低い順に、前記通信ユニットを中心として３６０度の方位角の中で、選択される前記隣接通信ユニットが相互に離れて配置される方位角となるように、前記プログラムが未設定である複数の隣接通信ユニットを選択する、
ことを特徴とする請求項２記載の通信ユニット。
【請求項７】
前記通信ユニットは、前記隣接通信ユニットのいずれかから、前記プログラムを受信する通信ユニットであり、
前記選択手段は、前記評価値において低い順に、前記無線ネットワーク内に前記プログラムを最初に送信した通信ユニットの位置に対して反対側の１８０度の方位角の中で、選択される前記隣接通信ユニットが相互に離れて配置されるような方位角となるように、前記プログラムが未設定である複数の隣接通信ユニットを選択する、
ことを特徴とする請求項２に記載の通信ユニット。
【請求項８】
無線ネットワークにおける通信ユニットが実行するプログラムの送信方法において、
前記通信ユニットが、
１ホップで接続可能な隣接通信ユニットから、該隣接通信ユニットにおける前記プログラムの設定状況、及び、前記通信ユニットと該隣接通信ユニット間の無線品質に関する情報を受信する受信ステップと、
前記プログラムの設定状況及び無線品質に関する情報に基づき、前記通信ユニットと隣接通信ユニット間におけるネットワークの前記無線品質を含む評価値において、複数の該隣接通信ユニット間で該評価値が相対的に低く、かつ、該プログラムが未設定の隣接通信ユニットを選択する選択ステップと、
前記選択された隣接通信ユニットに対して該プログラムを送信する送信ステップ、
を備えたことを特徴とするプログラム送信方法。
【請求項９】
前記通信ユニットは、
前記受信ステップで、前記隣接通信ユニットから、さらに、該隣接通信ユニットが存在する位置情報を受信し、
前記選択ステップで、複数の隣接通信ユニットの前記位置情報に基づき、既に選択した隣接通信ユニットを起点にして、他の複数の隣接通信ユニットの中で、該既選択の隣接通信ユニットとの距離が相対的に大きく前記プログラムが未設定である隣接通信ユニットを選択する、
ことを特徴とする請求項８に記載のプログラム送信方法。
【請求項１０】
前記通信ユニットは、
前記送信ステップで、前記選択された隣接通信ユニットの数に応じて、該未設定の隣接通信ユニットに対する前記プログラムの送信方式を、ユニキャスト送信とマルチキャスト送信に切り替える、
ことを特徴とする請求項８に記載のプログラム送信方法。
【請求項１１】
前記通信ユニットは、
前記受信ステップで、前記隣接通信ユニットから、受信する前記位置情報として、前記無線ネットワーク内に前記プログラムを最初に送信する通信ユニットを起点とした座標情報を受信する、
ことを特徴とする請求項９に記載のプログラム送信方法。
【請求項１２】
前記通信ユニットは、前記無線ネットワーク内に前記プログラムを最初に送信する通信ユニットであり、
前記選択ステップで、前記評価値において低い順に、前記通信ユニットを中心として３６０度の方位角の中で、選択される前記隣接通信ユニットが相互に離れて配置される方位角となるように、前記プログラムが未設定である複数の隣接通信ユニットを選択する、
ことを特徴とする請求項９記載のプログラム送信方法。
【請求項１３】
前記通信ユニットは、前記隣接通信ユニットのいずれかから、前記プログラムを受信する通信ユニットであり、
前記選択ステップで、前記評価値において低い順に、前記無線ネットワーク内に前記プログラムを最初に送信した通信ユニットの位置に対して反対側の１８０度の方位角の中で、選択される前記隣接通信ユニットが相互に離れて配置されるような方位角となるように、前記プログラムが未設定である複数の隣接通信ユニットを選択する、
ことを特徴とする請求項９に記載のプログラム送信方法。
【請求項１４】
無線ネットワークにおける通信ユニットを制御するプログラムを記憶した記憶媒体であって、
前記プログラムがコンピュータに、
１ホップで接続可能な隣接通信ユニットから、該隣接通信ユニットにおける所定のプログラムの設定状況、及び、前記通信ユニットと該隣接通信ユニット間の無線品質に関する情報を受信する受信機能と、
前記所定のプログラムの設定状況及び無線品質に関する情報に基づき、前記通信ユニットと隣接通信ユニット間におけるネットワークの前記無線品質を含む評価値において、複数の該隣接通信ユニット間で該評価値が相対的に低く、かつ、該所定のプログラムが未設定の隣接通信ユニットを選択する選択機能と、
前記選択された隣接通信ユニットに対して前記所定のプログラムを送信する送信機能、
を実行させる記憶媒体。
【請求項１５】
前記コンピュータが、
前記送信機能で、前記選択された隣接通信ユニットの数に応じて、該未設定の隣接通信ユニットに対する前記プログラムの送信方式を、ユニキャスト送信とマルチキャスト送信に切り替える、
ことを特徴とする請求項１４に記載の記憶媒体。
【請求項１６】
前記コンピュータが
前記受信機能で、前記隣接通信ユニットから、さらに、該隣接通信ユニットが存在する位置情報を受信し、
前記選択機能で、複数の隣接通信ユニットの前記位置情報に基づき、既に選択した隣接通信ユニットを起点にして、他の複数の隣接通信ユニットの中で、該既選択の隣接通信ユニットとの距離が相対的に大きく前記所定のプログラムが未設定である隣接通信ユニットを選択する、
ことを特徴とする請求項１４に記載の記憶媒体。
【請求項１７】
前記コンピュータが制御する前記通信ユニットは、前記無線ネットワーク内に前記プログラムを最初に送信する通信ユニットであり、
前記コンピュータは、
前記選択機能で、前記評価値において低い順に、前記通信ユニットを中心として３６０度の方位角の中で、選択される前記隣接通信ユニットが相互に離れて配置される方位角となるように、前記所定のプログラムが未設定である複数の隣接通信ユニットを選択する、
ことを特徴とする請求項１６に記載の記憶媒体。
【請求項１８】
前記コンピュータが制御する前記通信ユニットは、前記隣接通信ユニットのいずれかから、前記所定のプログラムを受信する通信ユニットであり、
前記コンピュータは、
前記選択機能で、前記評価値において低い順に、前記無線ネットワーク内に前記プログラムを最初に送信した通信ユニットの位置に対して反対側の１８０度の方位角の中で、選択される前記隣接通信ユニットが相互に離れて配置されるような方位角となるように、前記所定のプログラムが未設定である複数の隣接通信ユニットを選択する、
ことを特徴とする請求項１６に記載の記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
無線通信ネットワークにおける各通信ユニットのファームウェアの更新方法、通信ユニット、およびプログラムに関する。
【背景技術】
【０００２】
ルータやアクセスポイント、基地局といったネットワーク接続装置を使わずに通信ユニット同士が直接または他の通信ユニットを経由して無線で接続するアドホック無線ネットワークが知られている。【０００３】
アドホック無線ネットワークの環境において、数多くの通信ユニットに対して、例えば機能を向上させるために、それらを動作するためのファームウェアを更新する必要がある。例えば、住宅エリアにおける数多くの電気使用量の検針器（約１，０００台、以下「通信ユニット」と表記する）のファームウェアを更新することが求められている。【０００４】
ファームウェア更新方法としては従来、ブロードキャスト転送による通信ユニットへのファームウェアダウンロードを実施し、ファームウェア更新を行っていた。例えば、上述の検針器である通信ユニットのエリアを管轄するゲートウェイ（各検針器からの検針情報を収集するサーバ、以下「ＧＷ」と表記する）からブロードキャスト配信によるファームウェアデータの分割送信を実施し、ファームウェア更新を行っていた。このようなＧＷは、例えば街路の電柱に設置される。【０００５】
図１は、１つの従来技術としての、ブロードキャスト配信によるファーム更新方式の説明図である。まず、第１ホップとして、ファームウェアの送信元であるゲートウェイマシン１０２から、その周囲の通信ユニット１０１−１に対してブロードキャスト転送が実施される。次に、第２ホップとして、第１ホップの受信を行った各通信ユニット１０１−１の各々から、周囲の全ての通信ユニット１０１−２に対してブロードキャスト転送が実施される。図示はしていないが、さらに第３ホップとして、第２ホップの受信を行った各通信ユニット１０１−２の各々から、周囲の全ての通信ユニットに対してブロードキャスト転送が実施される。【０００６】
また、他の従来技術として、配信順番を司るツリーサーバに次の配信先を問合せすることにより、配信すべきサーバを決定して段階的な配信を行う技術が知られている（例えば特許文献１）。【０００７】
さらに、他の従来技術として、送信元を中心として距離、受信電力値、送信タイミングを元に領域を分けてブロードキャストを行うことでパケット衝突を抑止し、効率的にパケット転送を行う従来技術が知られている（例えば特許文献２）。【０００８】
加えて、他の従来技術として、ＭＰＲと呼ばれる特殊なノードが、マルチキャスト経路テーブルを生成し、その経路テーブルに従って各ノードからのパケットを指定のノードにマルチキャストする従来技術が知られている（例えば特許文献３）。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００５−２５６２２号公報
【特許文献２】特開２００５−８６６４３号公報
【特許文献３】特開２００９−７１５７５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかし、従来技術によるブロードキャスト方式は、以下の問題点を有していた。
まず、従来技術では、ゲートウェイマシン１０２から周囲の通信ユニット１０１−１、１０１−２、・・・に対して、第１、第２、第３ホップというように段階的にブロードキャスト転送が行われる。そして、各段階（ホップ）で、全ての通信ユニット１０１−１、１０１−２、・・・がブロードキャスト転送を実施していた。このため、細実線（第１ホップ）、細破線（第２ホップ）、一点鎖線（第３ホップ）というように、トラヒックが爆発的に増大していることがわかる。この結果、無線ネットワーク網に多大なパケットが生成され輻輳状態を引き起こす。この輻輳状態が起きると、ファームウェアデータ自体が欠落してしまう可能性があり、正常にファーム更新が出来ない事態となる。【００１１】
また、ファームウェア更新ではファームウェアデータを分割して配信する。この場合例えば、ファームウェアデータを５，０００回に分割してブロードキャスト配信した場合にかかる時間を算出すると、１ブロードキャスト配信に３０秒かかるので、
５，０００（回）×３０（秒）＝４２時間≒２日間
を要することになる。そのためその間に停電等の突発的な事故や落雷等の自然災害が発生すると、再度最初から開始しなければならなくなる。すなわち、図１の従来技術では、ファームウェアのデータ更新にかかる時間の増大を招いてしまうという問題点を有していた。【００１２】
上述の第１の従来技術における網のトラヒック増大という問題点を避けるために、ブロードキャスト配信をユニキャスト配信にする技術が考えられる。しかし、単純にこれを行った場合、ＧＷからシリアルでユニキャスト処理すると、
１，０００（台数）×５，０００（回）×１００ｍｓ=約６日間
となってしまう。この結果、さらに時間がかかってしまうという問題点を有している。【００１３】
他の従来技術においても、ファームウェアデータの更新にあたり、時間がかかり、また、ネットワークの負荷が増大するという問題があった。
そこで、本発明の課題は、ファームウェアの更新において、パケットの輻輳状態とかかる時間の増大と、ネットワーク負荷の増大を抑制することである。
【課題を解決するための手段】
【００１４】
態様の一例では、無線ネットワークを構成する通信ユニットであって、１ホップで接続可能な隣接通信ユニット毎に、該隣接通信ユニットにおける所定のプログラムの設定状況、及び、前記通信ユニットと該隣接通信ユニット間の無線品質に関する情報が記憶される記憶部と、前記所定のプログラムの設定状況及び無線品質に関する情報に基づき、前記通信ユニットと隣接通信ユニット間におけるネットワークの前記無線品質を含む評価値において、複数の該隣接通信ユニット間で該評価値が相対的に低く、かつ、該所定のプログラムが未設定の隣接通信ユニットを選択する選択手段と、前記選択された隣接通信ユニットに対して前記所定のプログラムを送信する送信手段、を備えたことを特徴とする通信ユニットを提供する。【００１５】
また、態様の他の例として無線ネットワークにおける通信ユニットが実行するプログラムの送信方法において、前記通信ユニットが、１ホップで接続可能な隣接通信ユニットから、該隣接通信ユニットにおける前記プログラムの設定状況、及び、前記通信ユニットと該隣接通信ユニット間の無線品質に関する情報を受信する受信ステップと、前記プログラムの設定状況及び無線品質に関する情報に基づき、前記通信ユニットと隣接通信ユニット間におけるネットワークの前記無線品質を含む評価値において、複数の該隣接通信ユニット間で該評価値が相対的に低く、かつ、該プログラムが未設定の隣接通信ユニットを選択する選択ステップと、前記選択された隣接通信ユニットに対して該プログラムを送信する送信ステップ、を備えたことを特徴とするプログラム送信方法を提供する。
【発明の効果】
【００１６】
ファームウェアのデータ更新において、パケットの輻輳状態とかかる時間の増大を抑制することが可能となる。さらに、無線ネットワークの負荷を小さくすることが可能となる。
【図面の簡単な説明】
【００１７】
【図１】従来のブロードキャスト配信によるファーム更新方式の説明図である。
【図２】実施形態のネットワーク構成図である。
【図３】本実施形態による段階ユニキャストファーム更新方式の処理例を示すシーケンス図である。
【図４】実施形態による段階ユニキャストファーム更新方式でのファーム更新台数の例を示す図である。
【図５】無線品質の良い親を選択した例の説明図である。
【図６】無線品質の悪い親を選択した例の説明図である。
【図７】ＧＷでの経路情報テーブルのデータ構成例を示す図である。
【図８】実施形態による親ユニットの選択処理の説明図である。
【図９】親ユニットの経路情報テーブルのデータ構成例と変換後座標を示す図である。
【図１０】実施形態による子ユニットの選択処理の説明図である。
【図１１】実施形態によるユニット選択イメージを示す図である。
【図１２】ゲートウェイの構成図である。
【図１３】通信ユニットの構成図である。
【図１４】アドホックＦＰＧＡの構成図である。
【図１５】ＧＷのファーム更新処理を示すフローチャートである。
【図１６】通信ユニットのファーム更新処理を示すフローチャートである。
【図１７】データ解析・制御部の他の実施形態の構成図である。
【図１８】データ解析・制御部のさらに他の実施形態の説明図である。
【図１９】データ解析・制御部のさらに他の実施形態の構成図である。
【図２０】ファーム更新を並列処理で実行する実施形態の説明図（１／２）である。
【図２１】ファーム更新を並列処理で実行する実施形態の説明図（２／２）である。
【図２２】実施形態での電波伝搬イメージを示す図である。
【図２３】本実施形態のシステムを実現可能なハードウェアシステムの構成図である。
【発明を実施するための形態】
【００１８】
以下、本発明を実施するための形態について図面を参照しながら詳細に説明する。
本実施形態では、配信元のゲートウェイからのブロードキャストのデータ配信をやめ、通信ユニットに対して段階的にユニキャスト送信（またはマルチキャスト送信）のデータ配信を行う方式をとる。例えば、１０００台の通信ユニットに対してファーム配信を行う場合、ある条件にて選定した通信ユニットを親通信ユニット２０１−１として選択し、親通信ユニット２０１−１へデータ配信を行う。親通信ユニット２０１−１は自ユニットのファーム更新処理が終わると、自律で選定した子通信ユニット２０１−２に対してデータ配信を行う。同様の処理を行うことで子通信ユニット２０１−２、孫通信ユニット２０１−３と段階的に自律で配信を繰り返すことで１０００台のユニットのファーム配信を行う。孫通信ユニット２０１−３以降も同様に配信を繰り返す。これにより、データ配信時間の短縮、および無線ネットワークの負荷軽減を実現する。
【００１９】
図２は、本実施形態のネットワーク構成図である。
ゲートウェイ（Ｇａｔｅｗａｙ、以下「ＧＷ」と表記する）２０２は、ファームデータの配信元である。親通信ユニット２０１−１は、ＧＷ２０２から１ホップの位置関係にあり、ＧＷ２０２からファームデータの更なる配信を指示される最初の通信ユニットである。子通信ユニット２０１−２は、親通信ユニット２０１−１から１ホップの位置関係にあり、親通信ユニット２０１−１からファームデータの配信を２番目に指示される通信ユニットである。孫通信ユニット２０１−３も同様で、子通信ユニット２０１−２から１ホップの位置関係にあり、子通信ユニット２０１−２からファームデータの配信を３番目に指示される通信ユニットである。以下、図示していないが、ひ孫通信ユニットなども同様に存在し得る。その他の通信ユニット２０１は、ＧＷ２０２、親通信ユニット２０１−１、子通信ユニット２０１−２などから直接ファームデータの更新を受ける通信ユニットである。
【００２０】
図２において、ＧＷ２０２、親通信ユニット２０１−１、子通信ユニット２０１−２、孫通信ユニット２０１−３はそれぞれ、一定の距離間隔の範囲内で配信対象の通信ユニットを自律的に選択する。親通信ユニット２０１−１、子通信ユニット２０１−２、孫通信ユニット２０１−３を総称して、通信ユニット２０１と表記する。
【００２１】
上述の距離間隔の範囲は、ホップ数（以下「ＨＯＰ数」と表記する）１で届く範囲（以下この通信ユニット２０１を「隣接ユニット２０１」と呼ぶ）である。
ＧＷ２０２／通信ユニット２０１共に、それぞれが所持している経路情報テーブル（ＧＷ２０２を含む周囲の通信ユニット２０１の装置ＩＤ、無線品質（評価値）、ＨＯＰ数）に、ＧＷ２０２を（０，０）基点とした（Ｘ，Ｙ）座標情報を追加する。これにより、自通信ユニット２０１に対する他の隣接ユニット２０１の相対位置が認識可能になる。そして、位置的に離れたユニットの選択が可能となる。
【００２２】
本実施形態による段階ユニキャストファーム更新方式の処理を、図３のシーケンス図とともに説明する。図３は、ＧＷ２０２、親通信ユニット２０１−１（図中「親ユニット＃１」などと記載）、子通信ユニット２０１−２（図中「子ユニット＃１」などと記載）、孫通信ユニット（図中「孫ユニット＃１」などと記載）、ひ孫通信ユニット（図中「ひ孫ユニット＃１」などと記載）、および玄孫通信ユニット（図中「玄孫ユニット」などと記載）の間の通信処理の関係を示す図である。
【００２３】
（ステップＳ１）親／子／孫／ひ孫の対象となる各通信ユニット２０１の選択方法（対象となる各通信ユニット２０１の数は、４台か２台が理想だが台数は限定しない）。以下のステップ１−１から１−５の選択処理を実行する。
【００２４】
（ステップＳ１−１）ＧＷ２０２は自分の隣接ユニット２０１（１ホップで届く通信ユニット２０１）の中で、無線品質が悪くお互いのユニットが位置的に離れている４ユニットを、親通信ユニット２０１−１として選択する（図３のＳ１−１）。図３では、親ユニット＃１と、親ユニット＃２〜＃４として記載されているものが、ＧＷ２０２から親通信ユニット２０１−１として選択された４つの通信ユニット２０１である。
【００２５】
（ステップＳ１−２）親通信ユニット２０１−１（計４台）は各々、自分の隣接ユニット２０１の中で無線品質の悪くお互いのユニットが位置的に離れている４ユニットを、子通信ユニット２０１−２として選択する（図３のＳ１−２）。図３では、子ユニット＃１と、子ユニット＃２〜＃４として記載されているものが、１つの親通信ユニット２０１−１から子通信ユニット２０１−２として選択された４つの通信ユニット２０１である。
【００２６】
（ステップＳ１−３）子通信ユニット２０１−２の（計１６台）は各々、自分の隣接ユニット２０１の中で無線品質の悪くお互いのユニットが位置的に離れている４ユニットを、孫通信ユニット２０１−３として選択する（図３のＳ１−３）。図３では、孫ユニット＃１と、孫ユニット＃２〜＃４として記載されているものが、１つの子通信ユニット２０１−２から孫通信ユニット２０１−３として選択された４つの通信ユニット２０１である。
【００２７】
（ステップＳ１−４）孫通信ユニット２０１−３（計６４台）は各々、自分の隣接ユニット２０１の中で無線品質の悪くお互いのユニットが位置的に離れている４ユニットを、ひ孫通信ユニット（図２では図示しない）として選択する（図３のＳ１−４）。図３では、ひ孫ユニット＃１と、ひ孫ユニット＃２〜＃４として記載されているものが、１つの孫通信ユニット２０１−３からひ孫通信ユニットとして選択された４つの通信ユニット２０１である。
【００２８】
（ステップＳ１−５）ひ孫通信ユニット（計２５６台）は各々、玄孫通信ユニット（図２では図示しない）の選択は行わず、各々が１台の玄孫に対しファームデータを転送し更新させる（図３のＳ１−５）。
【００２９】
（ステップＳ２）通信ユニット２０１は位置固定であり、ＧＷ２０２／通信ユニット２０１は、隣接する通信ユニット２０１の位置を把握している（図３のＳ２）。
【００３０】
（ステップＳ３）ＧＷ２０２は、親通信ユニット２０１−１を選択し（図３のＳ１−１）、それらに対してユニキャストでファームデータを転送する（図３のＳ３）。
【００３１】
（ステップＳ４）ファームデータの受信が完了した親通信ユニット２０１−１は、自分の子通信ユニット２０１−２を選択し（図３のＳ１−２）、それらに対してユニキャストでファームデータを転送する（図３のＳ４）。
【００３２】
（ステップＳ５）親通信ユニット２０１−１は、子通信ユニット２０１−２として選択しようとしたユニットが既に別の親から選択されていれば、次の候補を子通信ユニット２０１−２として選択する（図３のＳ５）。具体的には、既に選択済みの通信ユニット２０１は、新たな親通信ユニット２０１−１から未更新か否かの問い合わせを受信した際に、ＮＡＣＫ（更新中または更新済み）を返す。それを受信した親通信ユニット２０１−１は、その通信ユニット２０１が選択済みであることを認識する。
【００３３】
（ステップＳ６）選択から漏れた通信ユニット２０１に対しては、各親通信ユニット２０１−１が、選択した子通信ユニット２０１−２に対する更新動作の後、ユニキャストでファームデータを転送し更新させる。
【００３４】
（ステップＳ７）以下同様にして、選択された子通信ユニット２０１−２、孫通信ユニット２０１−３および、ひ孫通信ユニット（図２では図示せず）が、それぞれの世代で通信ユニット２０１を選択し、ユニキャストでファームデータを転送して、ファーム更新を行う。
【００３５】
図３に示した処理シーケンス例では、約１０００台の通信ユニット２０１に関して、親、子、孫、ひ孫、玄孫の各々の各世代の通信ユニット２０１が、各世代での選択からもれた通信ユニット２０１に対し、１台あたり５台のファーム更新を行っている。図４に、本実施形態による段階ユニキャストファーム更新方式でのファーム更新台数の例を示す。選択された送信元としての、ＧＷ２０２、親通信ユニット２０１−１、子通信ユニット２０１−２、孫通信ユニット２０１−３、およびひ孫通信ユニットのそれぞれについて、本実施形態による段階的ユニキャスト方式によって、それぞれが選択された台数、段階的ユニキャストの対象とはされずに直接更新の対象とされた選択もれ台数の例が示されている。さらに、ファーム更新の合計台数の例が示されている。ここでは、各々の世代で、選択からもれた通信ユニット２０１として、１台あたり５台をファーム更新すると仮定している。
【００３６】
まず、ＧＷ２０２は１台であり、そこでの選択もれ台数は５台である。
親通信ユニット２０１−１として選択された台数は、４台である。その４台での選択もれ台数は４×５＝２０台である。
【００３７】
子通信ユニット２０１−２として選択された台数は、親４台×４＝１６台である。その１６台での選択もれ台数は１６×５＝８０台である。
孫通信ユニット２０１−３として選択された台数は、子１６台×４＝６４台である。その６４台での選択もれ台数は６４×５＝３２０台である。
【００３８】
ひ孫通信ユニットとして選択された台数は、孫６４台×４＝２５６台である。その２５６台については、１台につき玄孫１台のファーム更新を行うため（ステップＳ１−５）、選択もれ台数は２５６×１＝２５６台である。
【００３９】
以上により、世代毎に選択されると同時にファーム更新をした台数は、各世代での選択された台数の総計３４０台である。また、選択もれとしてファーム更新された台数は６８１台である。この結果、３４０＝６８１＝１０２１台のファーム更新がなされることになる。
【００４０】
次に、上述した本実施形態による段階ユニキャストファーム更新方式の更に詳細な処理方式について以下に説明する。
【００４１】
（１）無線品質が悪く、お互いのユニットが位置的に離れているユニットの選択
図５は無線品質の良い親を選択した例の説明図、図６は無線品質の悪い親を選択した例の説明図である。図５の例は、ＧＷ２０２が無線品質の良い親通信ユニット２０１−１を選択した場合の通信経路を示している。図６の例は、ＧＷ２０２が無線品質の悪い親通信ユニット２０１−１を選択した場合の通信経路を示している。
【００４２】
図５に示されるように、無線品質の良い親通信ユニット２０１−１が選択されたと仮定した場合には、以下のような動作となる。まず、ユニキャストで親通信ユニット２０１−１がファーム更新される。その後、それぞれの親通信ユニット２０１−１が同様に、品質の良い子の通信ユニットのファーム更新を実施しようとする。しかし、ＧＷ２０２も、自分が親通信ユニット２０１−１として選択しなかった１ホップで届く範囲の残りの通信ユニット５０１のファーム更新を実施する。このため、１ホップ到達範囲内で電波干渉が発生することになる。図５では、５０２として示される範囲の破線のファーム更新経路と点線のファーム更新経路とで電波干渉が発生する。
【００４３】
一方、図６に示されるように、無線品質の悪い親通信ユニット２０１−１が選択されたと仮定した場合には、以下のような動作となる。まず、ユニキャストで親通信ユニット２０１−１がファーム更新される。その後、それぞれの親通信ユニット２０１−１が同様に、品質の悪い子の通信ユニットのファーム更新を実施しようとする。このときそれぞれの親通信ユニット２０１−１は、点線６０２で囲まれた範囲外にある子通信ユニット２０１−２を選択する制御方式を採用する。これにより、ＧＷ２０２において親通信ユニット２０１−１の選択から漏れた通信ユニット６０１については、ＧＷ２０２のみからファーム更新を実施させることが可能となる。これにより、１ホップ内到達範囲内での電波干渉を低減させることが可能となる。図６では、破線のファーム更新経路と点線のファーム更新経路とで電波干渉が発生しなくなる。
【００４４】
無線品質の悪い通信ユニット２０１の判定方法は例えば、後述する経路情報テーブルに基づいて、評価値が相対的に低い、例えばＨＯＰ数が１で評価値が最も低いものを選択する処理として実現できる。ここで、評価値が相対的に低いということは、例えばその通信ユニット２０１がＧＷ２０２や親通信ユニット２０１−１等から最も遠くに位置しているか、最も電波が届きにくいところに位置していることを示しているため、送信元へ与える電波干渉が少ないといえる。
【００４５】
このように、本実施形態では、無線品質が悪い通信ユニット２０１を優先してファーム更新を行うことで、その後の段階ユニキャストによるファームデータの配信に与える電波干渉を低減させることが可能となる。位置的に離れて選択された各通信ユニット２０１が各々の電波干渉の少ないエリアでファーム更新を行うことで、無線ネットワークの負荷を分散化することができるのが特徴である。
【００４６】
（２）経路情報テーブルへの座標情報の追加
経路情報テーブルは、最終宛先となる通信ユニット２０１と次の宛先となる通信ユニット２０１の経路情報を格納しているテーブルであり、各通信ユニット２０１が保持する。図７は、ＧＷ２０２での経路情報テーブルのデータ構成例を示す図である。この例では、経路情報テーブルは、装置ＩＤ、評価値、隣接ノード、ＨＯＰ数（ホップ数）、座標（ｘ，ｙ）の各データの格納フィールドを有している。
【００４７】
装置ＩＤで識別される最終宛先一つに対し、経路情報は、経路情報テーブルの各行として、最大３個まで管理される。
隣接ノードは、宛先装置ＩＤの通信ユニット２０１に向けてパケットを送出するための隣接ユニットの装置ＩＤである。ＨＯＰ数は、宛先装置ＩＤの通信ユニット２０１までに中継される通信ユニット２０１の数（中継ユニット数）である。
【００４８】
各経路情報は、評価値によって評価されている。評価値は、通信ユニット２０１がお互いに隣接ノード等の情報を交換し合うパケットであるＨＥＬＬＯパケットによって得られる、無線品質、すなわち最終宛先までの到達可能性を表す経路品質を示している。評価値は、ＨＯＰ数、隣接ユニットとの受信信号強度、その経路の通信実績に基づいて計算される。
【００４９】
本実施形態では、この経路情報テーブルに、図７に示される「座標」情報が追加されている。この座標は、ＧＷ２０２を原点としたＸ−Ｙ平面座標上での、装置ＩＤが示す宛先通信ユニット２０１の位置を示す。
【００５０】
親／子／孫の各通信ユニット２０１の以降の選択時には、この座標を相対的に変換する座標変換を実施することで、相対位置を認識する。
この座標は、段階ユニキャストを実現させるための通信ユニット２０１の選択手段となる。
【００５１】
座標は、ＧＷ２０２を原点としたＸ−Ｙ平面座標で表され、そのエリアの通信ユニット２０１の密集度に応じて、座標の目盛りの単位を５ｍ、１０ｍ等と決定する。
この座標は通信ユニット２０１を住宅に取り付ける際、装置固有情報として入力後、ＨＥＬＬＯパケットのやり取りによって経路情報テーブルに反映される。
【００５２】
（３）通信ユニット２０１による未更新の通信ユニット２０１のファーム更新
既存の通信ユニット２０１は、ＧＷ２０２のように他の通信ユニット２０１をファーム更新する機能がない。このため、本実施形態によるファーム更新機能を実現にするために、通信ユニット２０１にファーム更新実施機能を具備する。ファームウェアデータは、不揮発性メモリに書込む必要があるため、書込み前か後かのどちらを選択可能である。
【００５３】
＜不揮発性メモリへの書込み前に、ファームデータを更新する方式＞
選択された通信ユニット２０１は、全てのファーム更新データを受信すると、揮発性メモリに格納したファーム更新データを読み出して、配信対象の通信ユニット２０１を選んで送信する。
【００５４】
＜不揮発性メモリへの書込みの後に自律リセットしてから、
ファームデータを更新する方法＞
選択された通信ユニット２０１は、全てのファーム更新データを受信した時点で不揮発性メモリ（フラッシュメモリ等）にファーム更新データ書き込む際に、更新フラグ有効を示す識別子も書き込む。自律リセットによる再起動後、不揮発性メモリから更新フラグを読み出して有効であれば、不揮発性メモリから起動中のファームデータを読み出して、配信対象の通信ユニット２０１を選んで配信する。
【００５５】
本実施形態による前述したステップＳ１−１（図３参照）の親通信ユニット２０１−１の選択処理について、図８の説明図を用いて更に詳細に説明する。図８は、ＧＷ２０２を中心として、親通信ユニット２０１−１が選択されるときのｘｙ座標による位置関係を示している。
【００５６】
通信ユニット２０１は、実際には図８に示されるように、ＧＷ２０２を中心として、３６０°全方向に点在している。
そこで、ＧＷ２０２が親通信ユニット２０１−１を選択する際も、ＧＷ２０２を中心として３６０°全方向を網羅するユニット選択が行われる。すなわち、ユニット同士が位置的に離れている通信ユニット２０１を選択するために、ＧＷ２０２をＸ−Ｙ座標の原点と考え、３６０°を９０°間隔で４つに区切ることができる位置（例えば０°、９０°、１８０°、２７０°）の近い位置に存在する通信ユニット２０１が、経路情報テーブルから選択される。なお、図８では、１ホップで到達可能な範囲が半径５の円で示されている。
【００５７】
（ステップＳ１−１−１）ＧＷ２０２の経路情報テーブル（図７参照）から、評価値の低いものから優先されるように通信ユニット２０１を選択する。すなわち評価値が最も低くＨＯＰ数が１である通信ユニット２０１を選択する。図７の経路情報テーブルから、評価値が６０と最も低い隣接ノード“Ａ１０００４”が選択され、その座標が（０，５）と求まる。
【００５８】
（ステップＳ１−１−２）次に、座標（０，５）と点対称の座標（０，−５）に対し、この座標に最も近くＨＯＰ数が１の装置ＩＤを有する通信ユニット２０１を、ＧＷ２０２の経路情報テーブルから検索する。図７の経路情報テーブルから、座標（０，−５）に一番近い隣接ノードの座標は図８に示される座標（−１，−５）なので、装置ＩＤ“Ａ１０００６”の通信ユニット２０１が選択される。
【００５９】
（ステップＳ１−１−３）次に、座標（０，５）から９０°および−９０°回転した座標を、下記数１式により求める。
【００６０】
［数１］
ｓ=ｘｃｏｓα−ｙｓｉｎα            ｓ：回転後のｘ座標
ｔ=ｘｓｉｎα＋ｙｃｏｓα            ｔ：回転後のｙ座標
よって、それぞれ９０°回転時は（−５，０）、−９０°回転時は（５，０）の各座標を求めることができ、図７のＧＷ２０２の経路情報テーブルからこれにもっとも近い座標を検索すると、図８に示されるように、（−４，−１）および（５，１）となる。この結果、それぞれ装置ＩＤ“Ａ１０００３”、“Ａ１０００８”の各通信ユニット２０１が選択される。なお、装置ＩＤ“Ａ１０００３”は“Ａ１０００９”と比べて評価値が低いので、“Ａ１０００３”が選択される。
【００６１】
続いて、本実施形態による前述したステップＳ１−２（図３参照）の子通信ユニット２０１−２の選択処理について、図９の親通信ユニット２０１−１の経路情報テーブルのデータ構成例と図１０の説明図を用いて更に詳細に説明する。図９の例では、図７の例と同様に、経路情報テーブルは、装置ＩＤ、評価値、隣接ノード、ＨＯＰ数（ホップ数）、座標（ｘ，ｙ）の各データの格納フィールドを有している。また、座標（ｘ，ｙ）から自装置である親通信ユニット２０１−１を原点とした変換後座標（ｘ，ｙ）も同時に示されている。また、図１０は、親通信ユニット２０１−１を中心として子通信ユニット２０１−２が選択されるときのｘｙ座標による位置関係を示している。
【００６２】
親通信ユニット２０１−１の選択時には３６０°全方向を網羅できるような選択方法としたが、子通信ユニット２０１−２の選択からは親通信ユニット２０１−１を中心として１８０°方向を網羅できるような選択を行う。すなわち、ユニット同士が位置的に離れている通信ユニット２０１を選択するために、親通信ユニット２０１−１を中心として０°、６０°、１２０°、１８０°の近い位置に存在する通信ユニット２０１を、親の経路情報テーブルから選択する。
【００６３】
（ステップＳ１−２−１）親の経路情報テーブルにある座標は、ＧＷ２０２を原点としたものであるため、親通信ユニット２０１−１に選択された通信ユニット２０１は、自分が原点に位置した場合の座標に座標変換する必要がある。つまり、「変換前の座標−相対座標＝変換後の座標」で変換する。例えば、親通信ユニット２０１−１の座標が（０，５）で、親通信ユニット２０１−１の経路情報テーブルの装置ＩＤ“Ａ１０１１１”の座標が（１，８）とすると、変換後の座標は、（１，８）−（０，５）=（１，３）となる。
【００６４】
（ステップＳ１−２−２）親通信ユニット２０１−１を原点（０，０）とした変換後の座標において、０°の（５，０）と１８０°の（−５，０）に近い装置ＩＤを、親の経路情報テーブルから検索する。図９の例では、図１０に示されるように、変換後座標（５，１）の装置ＩＤ“Ａ１０１１２”と変換後座標（−４，１）の装置ＩＤ“Ａ１０１１６”が選択される。
【００６５】
（ステップＳ１−２−３）次に、ユニット同士が位置的に離れている通信ユニット２０１を選択するために、変換後座標（５，１）から６０°および１２０°回転した座標を、前述の数１式により求める。α=６０°の場合、ｃｏｓ６０°=１／２、ｓｉｎ６０°=SQRT（３／２）より、座標（１．６３４・・・，４．８３・・・）に近い変換後座標を、図９の経路情報テーブルから検索する。その結果、図１０に示されるように、変換後座標（４，３）を有する装置ＩＤ“Ａ１０１１４”を選択する。なお、SQRT（ｘ）は、ｘに対する平方根演算を示す。また、α=１２０°の場合、ｃｏｓ１２０°=−１／２、ｓｉｎ１２０°=SQRT（３／２）より、座標（−３．３６６・・・，４．３３・・・）に近い変換後座標を、図９の経路情報テーブルから検索する。その結果、図１０に示されるように、変換後座標（−４，３）を有する装置ＩＤ“Ａ１０１１７”を選択する。
【００６６】
以下同様にして、孫通信ユニット２０１−３の選択を行うと、図１１の本実施形態によるユニット選択イメージのように、ＧＷ２０２を中心とし、内から外へ全方向を網羅することができるような通信ユニット２０１を段階的に選択できる。そして、それらに対して図３で示したように段階的に、ユニキャストによるファームデータの転送を実施することが可能となる。これにより、ＧＷ２０２から無線品質の悪い例えばＧＷから最も離れた１つの親通信ユニットが選択される。さらに、互いに最も離れた３つの親ユニットが選択される。これにより４つの親通信ユニット間の電波干渉が抑制される。親通信ユニットはさらに外側の通信ユニットであって、無線品質の悪い例えば親ユニットから最も離れかつ互いに最も離れた子の通信ユニットが選択される。これにより、子の通信ユニット間及び子と親の通信ユニットの電波干渉も抑制される。
【００６７】
図１２は、図２のＧＷ（ゲートウェイ）２０２の構成図である。ＧＷ２０２は、ＬＡＮ等を終端するＬ２ＳＷ（レイヤ２スイッチ）１２０１、通信処理を実行するアドホックＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）１２０２、アドホックネットワークを終端する複数の通信部１２０３を備える。また、全体の制御を実行するＣＰＵ１２０４、特には図示しないフラッシュメモリに記憶されＣＰＵ１２０４によって実行されるファームウェア１２０５およびミドルウェア１２０６を備える。
【００６８】
ＬＡＮ等を介した特には図示しないサーバとの通信は、Ｌ２ＳＷ１２０１によって終端される。無線通信による通信ユニット２０１（図２参照）との通信は、それぞれ通信ポートを備える複数の通信部１２０３によって終端され、送受信フレームの符号化または復号の処理が実行される。この通信部１２０３は例えば、ＰＨＹ（ＰＨＹｓｉｃａｌ  Ｌａｙｅｒ  Ｄｅｖｉｃｅ）によって構成される。Ｌ２ＳＷ１２０１または通信ユニット２０１を介して送受信されるフレームデータは、アドホックＦＰＧＡ１２０２にて処理される。ここでは、ルーティングテーブルや経路情報テーブルに基づくフレームデータのルーティングの処理や、フレームデータ中の上位レイヤ情報をＣＰＵ１２０４との間で通信する処理等が実行される。ＣＰＵ１２０４は、ＧＷ２０２の全体の処理を制御するプロセッサであり、特には図示しないフラッシュメモリに記憶されたファームウェア１２０５に基づいて基本動作が実行される。また、フラッシュメモリやディスク記憶装置に記憶されたミドルウェア１２０６によって上位レイヤの処理を実行する。
【００６９】
図１３は、図２の通信ユニット２０１の構成図である。通信ユニット２０１の構成は、図１２のＧＷ２０２の構成に対して、ＬＡＮを終端するＬ２ＳＷ１２０１の機能が無いだけで、その他の機能は同様である。図１３において、アドホックＦＰＧＡ１２０２と通信部１２０３は、それぞれ図１２のＧＷ２０２の場合と同じものを使用できる。また、ＣＰＵ１３０１は、通信ユニット２０１の全体の処理を制御するプロセッサであり、特には図示しないフラッシュメモリに記憶されたファームウェア１３０２に基づいて基本動作が実行される。また、フラッシュメモリやディスク記憶装置に記憶されたミドルウェア１３０３によって上位レイヤの処理を実行する。本実施形態では、サーバからＧＷ２０２を経由して転送されるファームデータに基づいて、このファームウェア１３０２が更新されることになる。
【００７０】
図１４は、図１２または図１３のアドホックＦＰＧＡ１２０２の構成図である。アドホックＦＰＧＡ１２０２は、データの受信処理を実行するデータ受信部１４０２、データの送信処理を実行するデータ送信部１４０３、および送受信データの解析および制御を実施するデータ解析・制御部１４０１を備える。データ解析・制御部１４０１は、図１２のＬ２ＳＷ１２０１や図１２または図１３の通信部１２０３に対してデータ受信部１４０２およびデータ送信部１４０３が送受信するフレームデータを解析し、ルーティングや上位レイヤとの通信等を制御するフィールドプログラマブルゲートアレイである。
【００７１】
図１５は、図１２に示されるＧＷ２０２内のアドホックＦＰＧＡ１２０２内の、図１４に示されるデータ解析・制御部１４０１によって実行される、ファーム更新処理を示すフローチャートである。
【００７２】
まず、特には図示しないサーバを経由して、保守者からファーム更新指示が受信される（ステップＳ１５０１）。
次に、基点となる親通信ユニット（図１５中で「親ユニット」と表記）２０１−１が経路情報テーブル（図１５中で「経路テーブル」と表記）１５０７から選択され、その座標Ａが取得される（ステップＳ１５０２）。ここで、基点とは、ＧＷ２０２の経路情報テーブルにおいて（例えば図７参照）、評価値が最も低くＨＯＰ数が１である親通信ユニット２０１−１を指す。この処理は、前述したステップＳ１−１−１の処理に対応する。
【００７３】
次に、座標Ａと点対称の座標Ｂが求められ、その座標に一番近い通信ユニット２０１が経路情報テーブル１５０７から選択される（ステップＳ１５０３）。この処理は、前述したステップＳ１−１−２の処理に対応する。
【００７４】
次に、座標Ａから９０°および−９０°回転した座標Ｃ，Ｄが、前述した数１式により求められ、その座標に一番近い通信ユニット２０１が経路情報テーブル（例えば図７参照）から選択される（ステップＳ１５０４）。この処理は、前述したステップＳ１−１−３の処理に対応する。
【００７５】
続いて、座標Ａ，Ｂ，Ｃ，Ｄの各通信ユニット２０１に対して、ファーム更新が実行される。具体的には、ユニキャストでファームデータが転送される（ステップＳ１５０５）。この処理は、前述したステップＳ３（図３参照）の処理に対応する。
【００７６】
さらに、経路情報テーブルにおいて、ＧＷ２０２からみてＨＯＰ数が１である経路情報のうち、ステップＳ１５０２からＳ１５０４によって選択されなかった座標Ａ，Ｂ，Ｃ，Ｄ以外の座標の経路情報に対応する各通信ユニット２０１に対して、ユニキャストでファームデータを転送し更新させる（ステップＳ１５０６）。この処理は、残術したステップＳ６（図３参照）の処理に対応する。
【００７７】
そして、経路情報テーブル上で、ＧＷ２０２からみてＨＯＰ数が１の範囲にある経路情報に対応する通信ユニット２０１全てに対してファーム更新が完了されたことが確認された上で、ＧＷ２０２でのファーム更新処理を完了する（ステップＳ１５０７）。
【００７８】
図１６は、図１３に示される通信ユニット２０１内のアドホックＦＰＧＡ１２０２内の、図１４に示されるデータ解析・制御部１４０１によって実行される、ファーム更新処理を示すフローチャートである。
【００７９】
ＧＷ２０２から親通信ユニット（図１６中で「親ユニット」と表記）２０１−１として選ばれ、かつファーム更新が完了した通信ユニット２０１は、以下の子通信ユニット２０１−２の選択処理を開始する（ステップＳ１６０１）。
【００８０】
まず、経路情報テーブル（図１６中で「経路テーブル」と表記）中の各座標が、自分を原点とした座標に座標変換される（ステップＳ１６０２）。この処理は、前述したステップＳ１−２−１の処理に対応する。
【００８１】
次に、親通信ユニット２０１−１を原点とした変換後の座標において、０°および１８０°の各座標に近い座標Ｅ，Ｆを有する各装置ＩＤの通信ユニット２０１が、親の経路情報テーブルから検索される（ステップＳ１６０３）。この処理は、前述したステップＳ１−２−２の処理に対応する。
【００８２】
次に、変換後座標から６０°および１２０°回転した座標に近い座標Ｇ，Ｈを有する各装置ＩＤの通信ユニット２０１が、親の経路情報テーブルから検索される（ステップＳ１６０４）。この処理は、前述したステップＳ１−２−３の処理に対応する。
【００８３】
続いて、座標Ｅ，Ｆ，Ｇ，Ｈの各通信ユニット２０１に対して、ファーム更新が実行される。具体的には、ユニキャストでファームデータが転送される（ステップＳ１６０５）。この処理は、前述したステップＳ７（Ｓ４）（図３参照）の処理に対応する。
【００８４】
さらに、経路情報テーブルにおいて、親通信ユニット２０１−１からみてＨＯＰ数が１である経路情報のうち、ステップＳ１６０３およびＳ１６０４によって選択されなかった座標Ｅ，Ｆ，Ｇ，Ｈ以外の座標の経路情報に対応する各通信ユニット２０１に対して、ユニキャストでファームデータを転送し更新させる（ステップＳ１６０６）。この処理は、前述したステップＳ７（Ｓ６）（図３参照）の処理に対応する。
【００８５】
そして、経路情報テーブル上で、親通信ユニット２０１−１からみてＨＯＰ数が１の範囲にある経路情報に対応する通信ユニット２０１全てに対してファーム更新が完了されたことが確認された上で、選択された親通信ユニット２０１−１でのファーム更新処理を完了する（ステップＳ１６０７）。
【００８６】
図１７は、図１４のデータ解析・制御部１４０１の他の実施形態の構成図である。この実施形態におけるデータ解析・制御部１４０１は、Ｈｅｌｌｏパケット制御部１７０１、未更新ユニット制御部１７０２、基点ユニット選択制御部１７０３、アドホックインタフェース１７０４、Ｔａｂｌｅ検索部１７０５、基点ユニットレジスタ１７０６、経路情報テーブル１７０７、および未更新ユニット管理レジスタ１７０８を備える。
【００８７】
Ｈｅｌｌｏパケット制御部１７０１は、周囲の通信ユニット２０１（図２参照）とＨｅｌｌｏパケットの交換を行う制御部である。Ｈｅｌｌｏパケット制御部１７０１は、周囲の通信ユニット２０１との間で、Ｈｅｌｌｏパケットを授受することにより、周囲の通信ユニット２０１の無線品質を評価し、また、周囲の通信ユニット２０１の座標位置を管理／検出する。そして、最終宛先までの経路品質、ＨＯＰ数、隣接ユニットに対する受信信号強度、その経路の通信実績等から求まる評価値と、その装置ＩＤに対して固定の座標情報を、各装置ＩＤ毎に、図７または図９等と同等の経路情報テーブル１７０７としてテーブル化する。
【００８８】
未更新ユニット制御部１７０２は、経路情報テーブル１７０７に存在する通信ユニット２０１がファーム更新済みか否かを管理する制御部である。
未更新ユニット制御部１７０２は、Ｔａｂｌｅ検索部１７０５にＨＯＰ数１の装置ＩＤを要求する。
【００８９】
Ｔａｂｌｅ検索部１７０５は、経路情報テーブル１７０７を検索して、その要求に対する結果を未更新ユニット制御部１７０２に応答する。
未更新ユニット制御部１７０２は、得られた応答を未更新ユニット管理レジスタ１７０８に反映し、項１から順番にその装置ＩＤに対しファーム更新済みか否かの問合せをアドホックインタフェース１７０４に対して行う。
【００９０】
アドホックインタフェース１７０４は、その装置ＩＤに対してファーム更新済みか否かの問合せを行い、その結果を未更新ユニット制御部１７０２に応答する。未更新ユニット制御部１７０２は、その応答を未更新ユニット管理レジスタ１７０８に書き込む。
【００９１】
基点ユニット選択制御部１７０３は、無線品質が悪くＧＷ２０２から位置的に離れた未更新の通信ユニット２０１を選択／更新する制御部である。
基点ユニット選択制御部１７０３は、Ｔａｂｌｅ検索部１７０５にＨＯＰ数１でかつ評価値が最も低い装置ＩＤを要求する。
【００９２】
Ｔａｂｌｅ検索部１７０５は、経路情報テーブル１７０７を検索し、その要求に対する結果を基点ユニット選択制御部１７０３に応答する。基点ユニット選択制御部１７０３は、得られた応答を基点ユニットレジスタ１７０６に反映する。
【００９３】
基点ユニットレジスタ１７０６に格納された装置ＩＤに対し、ファームアップ等の処理が完了すると、基点ユニット選択制御部１７０３は、Ｔａｂｌｅ検索部１７０５にＨＯＰ数１でかつ評価値が二番目に低い装置ＩＤを要求する。
【００９４】
以下同様に、無線品質の悪い通信ユニット２０１を検索して、基点ユニットレジスタ１７０６を更新し処理を実行する。
図１４のデータ解析・制御部１４０１のさらに他の実施形態について以下に説明する。
【００９５】
ＧＷ２０２および通信ユニット２０１は、ファーム更新処理の高速化を図るため、ユニキャストまたはマルチキャストによるファーム更新方式を選択することができる。
図１８は、ＧＷ２０２を取り囲むように通信ユニット２０１が密集してグループＡ，Ｂ，Ｃなどが形成される様子を示している。ＧＷ２０２を中心としたＨＯＰ数１の到達範囲内に通信ユニット２０１が密集している部分（グループＡとグループＢとグループＣ）が存在する場合、グループＡとＢにはマルチキャストでファーム更新を実施したほうが、更新時間の短縮化が図れる。
【００９６】
図１９は、上述の考え方に基づくデータ解析・制御部のさらに他の実施形態の構成図である。図１９において、セレクタ部１９０１は、図１４のデータ解析・制御部１４０１内に設けられ、経路情報テーブルが保有する座標情報に基づいて、経路情報テーブル上の装置ＩＤを、お互いの座標位置が近いものをグループ化して、マルチキャスト制御部１９０３Ａ〜１９０３Ｃ、およびユニキャスト制御部１９０３Ｄに振り分ける。
【００９７】
セレクタ部１９０１では、図７または図９等と同等の経路情報テーブル１９０２に存在する座標情報から、図１８に示されるような全ての通信ユニット２０１の位置関係がわかるマップを生成し、密集箇所を特定する。その密集箇所内に通信ユニット数が例えば１０以上であるとマルチキャスト対象と判断し、グループ化して、図１４のデータ解析・制御部１４０１内に実装されるマルチキャスト制御部１９０３Ａ〜１９０３Ｃへ、装置ＩＤを引き渡す。マルチキャスト制御部１９０３Ａ〜１９０３Ｃは、グループ毎にマルチキャストによるファーム更新を実行する。
【００９８】
また、セレクタ部１９０１は、マルチキャスト対象と判断しなかった装置ＩＤについては、ユニキャスト制御部１９０３Ｄに引き渡す。ユニキャスト制御部１９０３Ｄは、各装置ＩＤの通信ユニットに対して、ユニキャストによるファーム更新を実行する。
【００９９】
上述の各実施形態において、ＧＷ２０２や通信ユニット２０１は、段階的ユニキャストまたはマルチキャストによるファームデータの転送処理を自律的に並列して実行することができる。この並列処理の動作について、図２０および図２１を用いて以下に説明する。なお、図２０と図２１は相互に連続する処理として表記されている。
【０１００】
（ステップＳ２００１）ＧＷ２０２は、親ａユニットのファーム更新を開始する。
【０１０１】
（ステップＳ２００２）ＧＷ２０２は、親ｂユニットのファーム更新を開始する。これと並列して、親ａユニットは、子ａ１ユニットのファーム更新を開始する。
【０１０２】
（ステップＳ２００３）ＧＷ２０２は、親ｃユニットのファーム更新を開始する。これと並列して、親ａユニットは、子ａ２ユニットのファーム更新を開始する。これらと並列して、親ｂユニットは、子ｂ１ユニットのファーム更新を開始する。これらと並列して、子ａ１ユニットは、孫ａ１１ユニットのファーム更新を開始する。
【０１０３】
（ステップＳ２００４）ＧＷ２０２は、親ｄユニットのファーム更新を開始する。これと並列して、親ａユニットは、子ａ３ユニットのファーム更新を開始する。これらと並列して、親ｂユニットは、子ｂ２ユニットのファーム更新を開始する。これらと並列して、親ｃユニットは、子ｃ１ユニットのファーム更新を開始する。これらと並列して、子ａ１ユニットは、孫ａ１２ユニットのファーム更新を開始する。これらと並列して、子ａ２ユニットは、孫ａ２１ユニットのファーム更新を開始する。これらと並列して、子ｂ１ユニットは、孫ｂ１１ユニットのファーム更新を開始。これらと並列して、孫ａ１１は、ひ孫ａ１１１ユニットのファーム更新を開始する。
【０１０４】
（ステップＳ２００５）ＧＷ２０２は、選択にもれた通信ユニット２０１のファーム更新を開始する。以下同様である。
【０１０５】
以上説明した各実施形態によれば、無線ネットワークの負荷を小さくすることが可能となる。より具体的には、無線リソースの節約や電波干渉の低減を実現することができる。
【０１０６】
前述した実施形態では、経路情報テーブルからＨＯＰ数１（隣接ノード）で最も無線品質が悪く（＝無線干渉が小さく）、お互いに離れた位置にある通信ユニット２０１が選択される。そして、それらに対して、ユニキャストによるファームデータの転送が段階的に実行される。この結果、ファームデータの転送が実行される通信ユニット２０１が、位置的（距離範囲的）かつ時間的に離されることで、電波干渉が位置／時間で分散化され、無線ネットワーク全体に流れるパケットを抑制（負荷を低減）することが可能となる。
【０１０７】
図２２は、実施形態での電波伝搬イメージを示す図である。ＧＷ２０２の電波伝搬範囲が白い円で示され、各親通信ユニット２０１−１（図２２中で「親ユニット」と表記）の電波伝搬範囲が塗りつぶされた円で示されている。ＧＷ２０２の電波伝搬範囲２２０１と各親通信ユニット２０１−１の電波伝搬範囲２２０２は、位置的に異なる。また、各親通信ユニット２０１−１の電波伝搬範囲２２０２は、伝搬時間が異なるようになるため、時間的にも異なる。このようにして、無線ネットワークの負荷を小さくすることができる。
【０１０８】
また、各実施形態によれば、ＧＷ２０２および各通信ユニット２０１が、次の通信ユニット２０１を自律的に選択しながら、並列して段階的ユニキャストまたはマルチキャストによるファームデータの転送を実行することができる。これにより、ファームウェアのデータ更新にかかる時間の増大を、ブロードキャストで更新する場合に比較して、大幅に短縮することが可能となる。
【０１０９】
従来のブロードキャストによるファーム更新の場合、更新時間は、例えば下記のように計算される。
５０００パケット×３０秒／（６０秒）=２５００分（４１．６６時間）
【０１１０】
一方、本実施形態によるファーム更新の時間は、例えば下記のように計算することができる。
１台あたりのユニキャスト時間
：５０００パケット×０．１秒／（６０秒）=８．３分
８．３分×４台=約３２分
３２分×５段階=１６０分（２．６６時間）
【０１１１】
この計算例のように、従来のブロードキャスト方式に対して、本実施形態では、約１／２０の時間で、ファーム更新が可能となる。
【０１１２】
さらに、図１８および図１９で説明したように、選択された４台の親や子に対して、ユニキャストではなくマルチキャストによるファーム更新応答を行った場合には、
８．３分×５段階=４２分
となり、従来のブロードキャスト方式に対して、本実施形態では、約１／６０の時間でファーム更新が可能となる。
【０１１３】
また、上述した各実施形態によれば、ファーム更新の漏れがなく、全通信ユニットに対して確実にファームデータの更新を実行することが可能となる。すなわち、ファームデータ等のパケットの到達性が向上する。
【０１１４】
さらに、上述した各実施形態によれば、通信ユニットの増設や取り外し、場所変更が発生しても、各通信ユニットが自律的にファームデータ等の更新のためのユニット選択を実施するため、保守作業にかかるコストの発生を抑制することが可能となる。
【０１１５】
加えて、上述した各実施形態によれば、ＭＰＲのような特殊な中継ノードは必要でなく、万一中継ノード（実施形態における親通信ユニット２０１−１や子通信ユニット２０１−２等）が故障したとしても、それに変わる別のノードが自律で選択される。また、次のファームデータ等の転送先を選択する際も、特殊なパケットは必要ないため、ネットワークの負荷増大を招くことはない。
【０１１６】
以上説明したように、本実施形態によれば以下の効果を奏する。
ファームウェアのデータ更新において、パケットの輻輳状態とかかる時間の増大を抑制することが可能となる。さらに、無線ネットワークの負荷を小さくすることが可能となる。
【０１１７】
通信ユニットの増設や取り外し、場所変更が発生しても、各通信ユニットが自律的にファームデータ等の更新のためのユニット選択を実施し、また特殊な中継ノードも不要なため、保守作業にかかるコストの発生を抑制することが可能となる。
更新データの転送のために特殊なパケットが不要なため、ネットワークの負荷増大を回避することが可能となる。
【０１１８】
図２３は、上述した各実施形態のシステムを実現できるコンピュータのハードウェア構成の一例を示す図である。
図２３に示されるコンピュータは、ＣＰＵ２３０１、メモリ２３０２、入出力装置２３０３、外部記憶装置２３０５、可搬記録媒体２３０９が挿入される可搬記録媒体駆動装置２３０６、および通信ネットワーク２３０７を有し、これらがバス２３０８によって相互に接続された構成を有する。同図に示される構成は上記システムを実現できるコンピュータの一例であり、そのようなコンピュータはこの構成に限定されるものではない。
【０１１９】
ＣＰＵ２３０１は、当該コンピュータ全体の制御を行う。メモリ２３０２は、プログラムの実行、データ更新等の際に、外部記憶装置２３０５（或いは可搬記録媒体２３０９）に記憶されているプログラムまたはデータを一時的に格納するＲＡＭ等のメモリである。ＣＵＰ２３０１は、プログラムをメモリ２３０２に読み出して実行することにより、全体の制御を行う。
【０１２０】
入出力装置２３０３は、ユーザによるキーボードやマウス等による入力操作を検出し、その検出結果をＣＰＵ２３０１に通知し、ＣＰＵ２３０１の制御によって送られてくるデータを表示装置や印刷装置に出力する。
【０１２１】
外部記憶装置２３０５は、例えばハードディスク記憶装置である。主に各種データやプログラムの保存に用いられる。
可搬記録媒体駆動装置２３０６は、光ディスクやＳＤＲＡＭ、コンパクトフラッシュ（登録商標）等の可搬記録媒体２３０９を収容するもので、外部記憶装置２３０５の補助の役割を有する。
【０１２２】
通信インターフェース２３０７は、例えばＬＡＮ（ローカルエリアネットワーク）またはＷＡＮ（ワイドエリアネットワーク）の通信回線を接続するための装置である。
各実施形態によるシステムは、各実施形態の機能を実現するＦＰＧＡの機能や動作フローチャートに対応する各制御プログラムを、ＣＰＵ２３０１が実行することで実現される。そのプログラムは、例えば外部記憶装置２３０５や可搬記録媒体２３０９に記録して配布してもよく、或いは通信インターフェース２３０７によりネットワークから取得できるようにしてもよい。＊＊＊などの各データは、例えば外部記憶装置２３０５またはメモリ２３０２上に記憶して運用される。また、メモリ２３０２上には、必要に応じて各制御プログラムを実行するためのワーク領域が展開される。
【０１２３】
以上説明した実施形態では、ファームデータの更新を例に説明を行ったが、更新データはファームデータに限られるものではなく、通信ユニットにおいて用いられる各種データであってもよい。
【０１２４】
以上説明した実施形態において、図１４のデータ解析・制御部１４０１は、第１〜第５の制御部１０１を構成する。図１２のＣＰＵ１２０４または図１３のＣＰＵ１３０１は、第４の制御部を構成する。図１５のＨｅｌｌｏパケット制御部１５０１は、第１および第３の制御部１０１を構成する。図１５の未更新ユニット制御部１５０２は、第２の制御部を構成する。図１５の基点ユニット選択制御部１５０３は、第５の制御部を構成する。
【符号の説明】
【０１２５】
２０１  通信ユニット
２０１−１  親通信ユニット
２０１−２  子通信ユニット
２０１−３  孫通信ユニット
２０２  ゲートウェイ（Ｇａｔｅｗａｙ、ＧＷ）
１２０１  Ｌ２ＳＷ（レイヤ２スイッチ）
１２０２  アドホックＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）
１２０３  通信部
１２０４、１３０１  ＣＰＵ
１２０５、１３０２  ファームウェア
１２０６、１３０３  ミドルウェア
１４０１  データ解析・制御部
１４０２  データ受信部
１４０３  データ送信部
１７０１  Ｈｅｌｌｏパケット制御部
１７０２  未更新ユニット制御部
１７０３  基点ユニット選択制御部
１７０４  アドホックインタフェース
１７０５  Ｔａｂｌｅ検索部
１７０６  基点ユニットレジスタ
１７０７、１９０２  経路情報テーブル
１７０８  未更新ユニット管理レジスタ
１９０１  セレクタ部
１９０３Ａ  グループＡのマルチキャスト制御部
１９０３Ｂ  グループＢのマルチキャスト制御部
１９０３Ｃ  グループＣのマルチキャスト制御部
１９０３Ｄ  グループＤのマルチキャスト制御部
【図１】
2011121671.tif 000003
【図２】
2011121671.tif 000004
【図３】
2011121671.tif 000005
【図４】
2011121671.tif 000006
【図５】
2011121671.tif 000007
【図６】
2011121671.tif 000008
【図７】
2011121671.tif 000009
【図８】
2011121671.tif 000010
【図９】
2011121671.tif 000011
【図１０】
2011121671.tif 000012
【図１１】
2011121671.tif 000013
【図１２】
2011121671.tif 000014
【図１３】
2011121671.tif 000015
【図１４】
2011121671.tif 000016
【図１５】
2011121671.tif 000017
【図１６】
2011121671.tif 000018
【図１７】
2011121671.tif 000019
【図１８】
2011121671.tif 000020
【図１９】
2011121671.tif 000021
【図２０】
2011121671.tif 000022
【図２１】
2011121671.tif 000023
【図２２】
2011121671.tif 000024
【図２３】
2011121671.tif 000025
【手続補正書】
【提出日】平成24年7月31日(2012.7.31)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
無線ネットワークを構成する通信ユニットであって、
１ホップで接続可能な隣接通信ユニット毎に、該隣接通信ユニットにおける所定のプログラムの設定状況、及び、前記通信ユニットと該隣接通信ユニット間の無線品質に関する情報が記憶される記憶部と、
前記所定のプログラムの設定状況及び無線品質に関する情報に基づき、前記通信ユニットと隣接通信ユニット間におけるネットワークの前記無線品質を含む評価値において、複数の該隣接通信ユニット間で該評価値が相対的に低く、かつ、該所定のプログラムが未設定の隣接通信ユニットを選択する選択手段と、
前記選択された隣接通信ユニットに対して前記所定のプログラムを送信する送信手段、
を備えたことを特徴とする通信ユニット。
【請求項２】
前記記憶部は、さらに、前記隣接通信ユニットが存在する位置情報が記憶され、
前記選択手段は、複数の前記隣接通信ユニットの前記位置情報に基づき、既に選択した隣接通信ユニットを起点にして、他の複数の隣接通信ユニットの中で、該既選択の隣接通信ユニットとの距離が相対的に大きく前記プログラムが未設定である隣接通信ユニットを選択する、
ことを特徴とする請求項１に記載の通信ユニット。
【請求項３】
前記送信手段は、前記選択された隣接通信ユニットの数に応じて、該選択された隣接通信ユニットに対する前記プログラムの送信方式を、ユニキャスト送信とマルチキャスト送信に切り替える、
を更に備えることを特徴とする請求項１に記載の通信ユニット。
【請求項４】
前記通信ユニットは、
前記選択手段は、前記プログラムが未設定の隣接通信ユニットの内で所定数を選択し、
前記送信手段は、前記所定数に選択されなかった隣接通信ユニットに対しては、前記プログラムをユニキャスト送信する、
ことを特徴とする請求項１に記載のプログラム送信方法。
【請求項５】
前記記憶部は、前記隣接通信ユニットの前記位置情報として、前記無線ネットワーク内に前記プログラムを最初に送信する通信ユニットを起点とした座標情報が記憶される、
ことを特徴とする請求項２に記載の通信ユニット。
【請求項６】
前記通信ユニットは、前記無線ネットワーク内に前記プログラムを最初に送信する通信ユニットであり、
前記選択手段は、前記評価値において低い順に、前記通信ユニットを中心として３６０度の方位角の中で、選択される前記隣接通信ユニットが相互に離れて配置される方位角となるように、前記プログラムが未設定である複数の隣接通信ユニットを選択する、
ことを特徴とする請求項２記載の通信ユニット。
【請求項７】
前記通信ユニットは、前記隣接通信ユニットのいずれかから、前記プログラムを受信する通信ユニットであり、
前記選択手段は、前記評価値において低い順に、前記無線ネットワーク内に前記プログラムを最初に送信した通信ユニットの位置に対して反対側の１８０度の方位角の中で、選択される前記隣接通信ユニットが相互に離れて配置されるような方位角となるように、前記プログラムが未設定である複数の隣接通信ユニットを選択する、
ことを特徴とする請求項２に記載の通信ユニット。
【請求項８】
無線ネットワークにおける通信ユニットが実行するプログラムの送信方法において、
前記通信ユニットが、
１ホップで接続可能な隣接通信ユニットから、該隣接通信ユニットにおける前記プログラムの設定状況、及び、前記通信ユニットと該隣接通信ユニット間の無線品質に関する情報を受信する受信ステップと、
前記プログラムの設定状況及び無線品質に関する情報に基づき、前記通信ユニットと隣接通信ユニット間におけるネットワークの前記無線品質を含む評価値において、複数の該隣接通信ユニット間で該評価値が相対的に低く、かつ、該プログラムが未設定の隣接通信ユニットを選択する選択ステップと、
前記選択された隣接通信ユニットに対して該プログラムを送信する送信ステップ、
を備えたことを特徴とするプログラム送信方法。
【請求項９】
無線ネットワークにおける通信ユニットを制御するプログラムを記憶した記憶媒体であって、
前記プログラムがコンピュータに、
１ホップで接続可能な隣接通信ユニットから、該隣接通信ユニットにおける所定のプログラムの設定状況、及び、前記通信ユニットと該隣接通信ユニット間の無線品質に関する情報を受信する受信機能と、
前記所定のプログラムの設定状況及び無線品質に関する情報に基づき、前記通信ユニットと隣接通信ユニット間におけるネットワークの前記無線品質を含む評価値において、複数の該隣接通信ユニット間で該評価値が相対的に低く、かつ、該所定のプログラムが未設定の隣接通信ユニットを選択する選択機能と、
前記選択された隣接通信ユニットに対して前記所定のプログラムを送信する送信機能、
を実行させる記憶媒体。
【請求項１０】
前記コンピュータが
前記受信機能で、前記隣接通信ユニットから、さらに、該隣接通信ユニットが存在する位置情報を受信し、
前記選択機能で、複数の隣接通信ユニットの前記位置情報に基づき、既に選択した隣接通信ユニットを起点にして、他の複数の隣接通信ユニットの中で、該既選択の隣接通信ユニットとの距離が相対的に大きく前記所定のプログラムが未設定である隣接通信ユニットを選択する、
ことを特徴とする請求項９に記載の記憶媒体。
【請求項１１】
前記コンピュータが制御する前記通信ユニットは、前記隣接通信ユニットのいずれかから、前記所定のプログラムを受信する通信ユニットであり、
前記コンピュータは、
前記選択機能で、前記評価値において低い順に、前記無線ネットワーク内に前記プログラムを最初に送信した通信ユニットの位置に対して反対側の１８０度の方位角の中で、選択される前記隣接通信ユニットが相互に離れて配置されるような方位角となるように、前記所定のプログラムが未設定である複数の隣接通信ユニットを選択する、
ことを特徴とする請求項１０に記載の記憶媒体。
【国際調査報告】
2011121671.tif 000026
2011121671.tif 000027