(57)【特許請求の範囲】
【請求項１】
収容中の通信収容装置と通信接続すると共に、収容候補の通信収容装置と通信接続可能な通信部と、
前記収容中の通信収容装置から前記収容中の通信収容装置が通信接続する通信装置の接続台数を収集すると共に、前記収容候補の通信収容装置から前記収容候補の通信収容装置が通信接続する通信装置の接続台数を収集する収集部と、
前記収集された前記収容中の通信収容装置側の接続台数と前記収容候補の通信収容装置側の接続台数との差分に基づき、前記収容中の通信収容装置から前記収容候補の通信収容装置に移動する移動対象の通信装置の移動対象台数を算出する算出部と、
前記移動対象台数と、前記収容中の通信収容装置側の接続台数と、乱数とに基づき、前記移動対象に該当したか否かを判定する判定部と、
前記移動対象に該当した場合に、前記収容中の通信収容装置から前記収容候補の通信収容装置への切替接続を前記収容候補の通信収容装置に要求する制御部と
を有することを特徴とする通信装置。
【請求項２】
前記算出部は、
前記差分を１以下の係数で乗算して前記移動対象台数を算出することを特徴とする請求項１に記載の通信装置。
【請求項３】
前記算出部は、
前記収容中の通信収容装置に接続するまでのホップ数の漸増に応じて前記係数を漸増させることを特徴とする請求項２に記載の通信装置。
【請求項４】
前記算出部は、
中継する通信装置の台数の漸増に応じて前記係数を漸減させることを特徴とする請求項２に記載の通信装置。
【請求項５】
前記算出部は、
前記収集部で前回収集した接続台数に関わる前回の差分と、前記収集部で前回直後の今回収集した接続台数に関わる今回の差分との変化量が変化量閾値未満の場合に、前記係数を増加させることを特徴とする請求項２に記載の通信装置。
【請求項６】
複数の通信装置と、前記複数の通信装置を収容する複数の通信収容装置とを有する通信システムであって、
前記複数の通信収容装置の内、前記通信装置が通信接続する収容中の通信収容装置及び前記通信装置が通信接続可能な収容候補の通信収容装置は、
通信接続する通信装置の接続台数を各通信装置に報知する報知部
を有し、
前記複数の通信装置のそれぞれは、
前記収容中の通信収容装置から報知された前記収容中の通信収容装置側の接続台数を収集すると共に、前記収容候補の通信収容装置から報知された前記収容候補の通信収容装置側の接続台数を収集する収集部と、
前記収集された前記収容中の通信収容装置側の接続台数と前記収容候補の通信収容装置側の接続台数との差分に基づき、前記収容中の通信収容装置から前記収容候補の通信収容装置に移動する移動対象の通信装置の移動対象台数を算出する算出部と、
前記移動対象台数と、前記収容中の通信収容装置側の接続台数と、乱数とに基づき、前記移動対象に該当したか否かを判定する判定部と、
前記移動対象に該当した場合に、前記収容中の通信収容装置から前記収容候補の通信収容装置への切替接続を前記収容候補の通信収容装置に要求する制御部と
を有することを特徴とする通信システム。
【請求項７】
複数の通信装置と、前記複数の通信装置を収容する複数の通信収容装置とを有する通信システムの切替制御方法であって、
前記複数の通信装置のそれぞれは、
通信接続される収容中の通信収容装置から前記収容中の通信収容装置が通信接続する通信装置の接続台数を収集すると共に、通信接続可能な収容候補の通信収容装置から前記収容候補の通信収容装置が通信接続する通信装置の接続台数を収集し、
収集された前記収容中の通信収容装置側の接続台数と前記収容候補の通信収容装置側の接続台数との差分に基づき、前記収容中の通信収容装置から前記収容候補の通信収容装置に移動する移動対象の通信装置の移動対象台数を算出し、
前記移動対象台数と、前記収容中の通信収容装置側の接続台数と、乱数とに基づき、移動対象に該当したか否かを判定し、
前記移動対象に該当した場合に、前記収容中の通信収容装置から前記収容候補の通信収容装置への切替接続を前記収容候補の通信収容装置に要求する
各処理を実行することを特徴とする切替制御方法。
【請求項８】
通信する通信インタフェースと、プロセッサとを有する通信装置で実行される切替制御プログラムであって、
前記プロセッサに、
通信接続される収容中の通信収容装置から前記収容中の通信収容装置が通信接続する通信装置の接続台数を収集すると共に、通信接続可能な収容候補の通信収容装置から前記収容候補の通信収容装置が通信接続する通信装置の接続台数を収集し、
収集された前記収容中の通信収容装置側の接続台数と前記収容候補の通信収容装置側の接続台数との差分に基づき、前記収容中の通信収容装置から前記収容候補の通信収容装置に移動する移動対象の通信装置の移動対象台数を算出し、
前記移動対象台数と、前記収容中の通信収容装置側の接続台数と、乱数とに基づき、前記移動対象に該当したか否かを判定し、
前記移動対象に該当した場合に、前記収容中の通信収容装置から前記収容候補の通信収容装置への切替接続を前記収容候補の通信収容装置に要求する
各処理を実行させることを特徴とする切替制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、通信システム、切替制御方法及び切替制御プログラムに関する。
【背景技術】
【０００２】
近年、各通信ユニットが自律的にルーティングを行ってマルチホップ方式でデータを無線送信する自律型マルチホップ方式の通信システムが広く知られている。自律型マルチホップ方式の通信システムでは、各通信ユニットが１ホップで接続される隣接ユニットと経路情報を定期的に交換して経路情報を更新する。そして、各通信ユニットは、更新された経路情報に基づき送信元の通信ユニットから最終宛先の通信ユニットまで１又は複数の通信ユニットを中継してデータを送信する。
【０００３】
また、自律型マルチホップ方式の通信システムは、通信ユニットと、中継ユニットと、ゲートウェイ（以下、単にＧＷと称する）とを有する。ＧＷは、有線ネットワークと接続すると共に、自律型マルチホップ方式の通信システム内の任意の通信ユニットや中継ユニットを収容する。また、自律型マルチホップ方式のシステムは、有線ネットワークに対して冗長構成で接続すべく、複数のＧＷを備える。
【０００４】
各通信ユニットは、複数のＧＷ宛の経路情報を備える。経路情報には、各ＧＷの経路の優先度を示す評価値が含まれる。そして、各通信ユニットには、経路情報内の評価値に基づき、通常の運用に使用する主ＧＷと、主ＧＷ障害時や主ＧＷ切替時に使用する副ＧＷとがある。
【０００５】
ＧＷ、通信ユニット及び中継ユニットは、Ｈｅｌｌｏフレームの無線電波品質やデータ送信の成功実績に応じて経路情報内の評価値を更新する。ＧＷ、通信ユニット及び中継ユニットは、例えば、Ｈｅｌｌｏフレームを隣接ユニットとの間で定期的に交換する。そして、ＧＷ、通信ユニット及び中継ユニットは、交換されたフレーム内の経路情報に基づきリンクテーブル及びルーティングテーブルを生成する。リンクテーブルは、隣接ユニットのアドレス及び通信品質を管理している。また、ルーティングテーブルは、最終宛先のユニット毎に中継先の隣接ユニット及び隣接ユニットの経路に関する評価値を管理している。ＧＷ、通信ユニット及び中継ユニットは、ルーティングテーブル内の評価値に基づき、評価値が良好な中継先経由で宛先ユニットに対してデータを送信する。
【０００６】
また、ＧＷ、通信ユニット及び中継ユニットは、Ｈｅｌｌｏフレーム受信時の無線電波品質やデータ送信の成功実績に応じてルーティングテーブル内の評価値を更新する。そして、データ送信の成功回数に応じて評価値が高くなる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００５−７９８２７号公報
【特許文献２】特開２００４−３５００５２号公報
【特許文献３】特開２００９−２６７５３２号公報
【特許文献４】特開２０１１−９９６７号公報
【特許文献５】特開２０１１−９９６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
従来の通信システムでは、各通信ユニットの電源投入に応じて、各通信ユニットが隣接するＧＷに順次接続する。しかしながら、複数のＧＷを周辺に配置したにもかかわらず、例えば、１台のＧＷに接続が集中して通信ユニットの接続台数に偏りが生じる。その結果、例えば、接続台数に偏りが生じたＧＷに対して無線通信が集中した場合、無線輻輳が生じる。
【０００９】
また、ＧＷでは、接続台数の偏りで接続する通信ユニットの経路情報を管理するテーブル内に空きがなくなった場合に、当該ＧＷ近傍に新規の通信ユニットが配置されたとしても、当該新規の通信ユニットの経路情報が登録できなくなる。
【００１０】
また、ＧＷは、運用後に障害や保守等で接続する全通信ユニットを別のＧＷに切替えることもできるが、全てＧＷ主導の処理であるため、ＧＷ自体に処理負担がかかる。
【００１１】
一つの側面では、各ＧＷの接続台数を調整できる通信装置等を提供することを目的とする。
【課題を解決するための手段】
【００１２】
開示の態様は、収容中の通信収容装置と通信接続すると共に、収容候補の通信収容装置と通信接続可能な通信部を有する。更に、開示の態様は、前記収容中の通信収容装置から前記収容中の通信収容装置が通信接続する通信装置の接続台数を収集すると共に、前記収容候補の通信収容装置から前記収容候補の通信収容装置が通信接続する通信装置の接続台数を収集する収集部を有する。開示の態様は、収集された前記収容中の通信収容装置側の接続台数と前記収容候補の通信収容装置側の接続台数との差分に基づき、前記収容中の通信収容装置から前記収容候補の通信収容装置に移動する移動対象の通信装置の移動対象台数を算出する算出部を有する。更に、開示の態様は、前記移動対象台数と、前記収容中の通信収容装置側の接続台数と、乱数とに基づき、前記移動対象に該当したか否かを判定する判定部を有する。更に、開示の態様は、前記移動対象に該当した場合に、前記収容中の通信収容装置から前記収容候補の通信収容装置への切替接続を前記収容候補の通信収容装置に要求する制御部を有する。
【発明の効果】
【００１３】
開示の態様では、通信収容装置に接続される通信装置側の自律的な動作で各通信収容装置の接続台数を調整できる。
【図面の簡単な説明】
【００１４】
【図１】図１は、本実施例の通信システムの一例を示す説明図である。
【図２】図２は、ＧＷのハードウェア構成の一例を示すブロック図である。
【図３】図３は、ＧＷの機能構成の一例を示すブロック図である。
【図４】図４は、リンクテーブルのテーブル構成の一例を示す説明図である。
【図５】図５は、ルーティングテーブルのテーブル構成（ＬＤ１〜ＬＤ３）の一例を示す説明図である。
【図６】図６は、フレーム転送テーブルのテーブル構成の一例を示す説明図である。
【図７】図７は、Ｈｅｌｌｏフレームの一例を示す説明図である。
【図８】図８は、通信ユニットのハードウェア構成の一例を示すブロック図である。
【図９】図９は、通信ユニットの機能構成の一例を示すブロック図である。
【図１０】図１０は、リンクテーブル及びルーティングテーブルの更新の一例を示す説明図である。
【図１１】図１１は、リンクテーブル及びルーティングテーブルの更新の一例を示す説明図である。
【図１２】図１２は、ルーティングテーブルの使用の一例を示す説明図である。
【図１３】図１３は、ルーティングテーブルの更新の一例を示す説明図である。
【図１４】図１４は、ＧＷ切替選択処理に関わる通信ユニット側のプロセッサの処理動作の一例を示すフローチャートである。
【図１５】図１５は、収容中ＧＷと収容候補ＧＷとの接続台数の収束の一例を示す説明図である。
【図１６Ａ】図１６Ａは、判定アルゴリズム１でシミュレーションした接続台数の収束推移の一例を示す説明図である。
【図１６Ｂ】図１６Ｂは、判定アルゴリズム２でシミュレーションした接続台数の収束推移の一例を示す説明図である。
【図１６Ｃ】図１６Ｃは、判定アルゴリズム３でシミュレーションした接続台数の収束推移の一例を示す説明図である。
【図１６Ｄ】図１６Ｄは、判定アルゴリズム４でシミュレーションした接続台数の収束推移の一例を示す説明図である。
【図１７】図１７は、切替制御プログラムを実行する通信機器の一例を示す説明図である。
【発明を実施するための形態】
【００１５】
以下、図面に基づいて、本願の開示する通信装置、通信システム、切替制御方法及び切替制御プログラムの実施例を詳細に説明する。尚、本実施例により、開示技術が限定されるものではない。
【実施例】
【００１６】
図１は、本実施例の通信システムの一例を示す説明図である。図１に示す通信システム１は、有線ネットワークシステム（以下、単に有線システムと称する）２と、マルチホップネットワークシステム（以下、単にマルチホップシステムと称する）３とを有する。有線システム２は、例えば、ＷＡＮ（Wide  Area  Network）で構築し、通信システム１全体を監視するサーバ４を有する。また、マルチホップシステム３は、自律型マルチホップ方式のアドホック通信ネットワークで構築し、通信ユニット５と、中継ユニット６と、ゲートウェイ（以下、単にＧＷと称する）７とを有する。尚、通信ユニット５及び中継ユニット６は、通信装置である。
【００１７】
通信ユニット５、中継ユニット６及びＧＷ７は、自律型マルチホップ方式の無線通信でデータを送信する。ＧＷ７は、マルチホップシステム３内の通信ユニット５及び中継ユニット６等と自律型マルチホップ方式の無線で通信すると共に、有線システム２内のサーバ４と有線で通信する。
【００１８】
図１に示す通信システム１は、例えば、家庭内の電力量をサーバ４側で収集して管理するシステムである。通信ユニット５は、例えば、家庭内に配置された、図示せぬ電力計に接続するユニットである。そして、サーバ４は、通信ユニット５を通じて各家庭内に配置された電力計から電力量を収集し、収集された家庭内の電力量を管理することになる。各通信ユニット５は、電力計から収集された電力量を定期的にＧＷ７経由でサーバ４に送信する。更に、サーバ４は、例えば、通信ユニット５を制御する制御データをＧＷ７経由で各通信ユニット５に送信する。尚、本システム内の電力計は、家庭内に固定配置されるため、例えば、通信ユニット５も固定配置されたものとなる。
【００１９】
図２は、ＧＷ７のハードウェア構成の一例を示すブロック図である。図２に示すＧＷ７は、ネットワークインタフェース１１と、無線インタフェース１２と、補助記憶装置１３と、メモリ１４と、プロセッサ１５とを有する。ネットワークインタフェース１１は、有線システム２と接続する通信インタフェースである。無線インタフェース１２は、マルチホップシステム３と接続するインタフェースである。補助記憶装置１３は、後述するルーティングテーブルやリンクテーブル等の経路情報に関わる各種情報を記憶する、例えば、フラッシュメモリである。メモリ１４は、各種プログラムの各種情報を記憶するものである。プロセッサ１５は、ＧＷ７全体を制御するものである。
【００２０】
図３は、ＧＷ７の機能構成の一例を示すブロック図である。プロセッサ１５は、メモリ１４に格納されたプログラムに基づき各種プロセスとなる機能を構成する。図３に示すプロセッサ１５は、ネットワーク通信部２１と、無線通信部２２と、フレーム解析部２３と、データ生成部２４と、データ取得部２５と、設定情報取得部２６と、ＧＷ情報生成部２７と、経路制御部２８と、記憶部２９と、制御部３０とを機能する。ネットワーク通信部２１は、ネットワークインタフェース１１を通じて有線システム２との有線通信を制御する。無線通信部２２は、無線インタフェース１２を通じてマルチホップシステム３との無線通信を制御する。
【００２１】
フレーム解析部２３は、無線インタフェース１２を通じてマルチホップシステム３内の通信ユニット５、中継ユニット６及びＧＷ７のフレームを解析する。データ生成部２４は、データを生成する。データ取得部２５は、データを取得する。設定情報取得部２６は、設定情報を取得する。経路制御部２８は、自律型マルチホップ方式の通信経路を制御する。ＧＷ情報生成部２７は、自ＧＷ７の負荷、例えば、収容ユニット台数及び転送トラフィック量等を含むＧＷ情報を生成する。記憶部２９は、後述するリンクテーブル３１、ルーティングテーブル３２及びフレーム転送テーブル３３等の各種テーブルを管理するものである。制御部３０は、無線通信部２２を通じて、定期的に自ＧＷ７が収容する収容ユニット台数、すなわち接続台数を通信ユニット５や中継ユニット６に報知する。
【００２２】
図４は、リンクテーブル３１のテーブル構成の一例を示す説明図である。図４に示すリンクテーブル３１は、隣接送信元（ＬＳ：Local  Source）３１Ａ毎の復路の重み値３１Ｂ、往路の重み値３１Ｃ及び双方向の重み値３１Ｄを管理するものである。隣接送信元（ＬＳ）は、Ｈｅｌｌｏフレームを送信した隣接ユニットのＩＰ／ＭＡＣアドレスである。復路の重み値３１Ｂは、隣接送信元（ＬＳ）との復路の信号品質に関わる値である。往路の重み値３１Ｃは、隣接送信元（ＬＳ）との往路の信号品質に関わる値である。双方向の重み値３１Ｄは、隣接送信元（ＬＳ）との間の双方向の信号品質に関わる値である。
【００２３】
図５は、ルーティングテーブル３２のテーブル構成の一例を示す説明図である。図５に示すルーティングテーブル３２は、最終宛先（ＧＤ：Global  Destination）３２Ａ毎に隣接宛先（ＬＤ：Local  Destination）３２Ｂ及び評価値３２Ｃを管理するものである。最終宛先３２Ａは、データの最終宛先のＩＰ／ＭＡＣアドレスである。隣接宛先３２Ｂは、データを最終宛先に送信する際の中継する隣接ユニットのＩＰ／ＭＡＣアドレスである。評価値３２Ｃは、データを中継する経路の優先順位を決定するのに使用するものである。尚、評価値３２Ｃは、数値が小さくなるに連れて評価が高く、優先順位も高くなるものとする。ルーティングテーブル３２は、最終宛先３２Ａ毎に、優先順位、例えば、第１位〜第３位の隣接宛先（ＬＤ１〜ＬＤ３）３２Ｂ及び、隣接宛先３２Ｂ毎の評価値３２Ｃを管理するものである。
【００２４】
図６は、フレーム転送テーブル３３のテーブル構成の一例を示す説明図である。図６に示すフレーム転送テーブル３３は、転送フレームの識別情報（ＦＩＤ：Frame  Identification）３３Ａ毎に、送信元（ＧＳ:Global  Source）３３Ｂ、フラグ３３Ｃ及び隣接送信元（ＬＳ）３３Ｄを管理するものである。更に、フレーム転送テーブル３３は、ＦＩＤ３３Ａ毎に、隣接宛先１（ＬＤ１）３３Ｅ、隣接宛先２（ＬＤ２）３３Ｆ、隣接宛先３（ＬＤ３）３３Ｇ及び最新隣接宛先（ＬＡＳＴ）３３Ｈを管理するものである。ＦＩＤ３３Ａは、転送フレームを識別するＩＤである。送信元（ＧＳ）３３Ｂは、転送フレームの送信元を識別するＩＰ／ＭＡＣアドレスである。フラグ３３Ｃは、転送フレームの転送を試したカウント値である。
【００２５】
隣接送信元（ＬＳ）３３Ｄは、転送フレームを中継した送信元の隣接ユニットのＩＰ／ＭＡＣアドレスである。隣接宛先１（ＬＤ１）３３Ｅは、転送フレームを最終宛先に転送する際に使用する優先順位が第１位の隣接宛先ユニットのＩＰ／ＭＡＣアドレスである。隣接宛先２（ＬＤ２）３３Ｆは、転送フレームを最終宛先に転送する際に使用する優先順位が第２位の隣接宛先ユニットのＩＰ／ＭＡＣアドレスである。隣接宛先３（ＬＤ３）３３Ｇは、転送フレームを最終宛先に転送する際に使用する優先順位が第３位の隣接宛先ユニットのＩＰ／ＭＡＣアドレスである。最新隣接宛先３３Ｈは、転送フレームを最終宛先に転送する際に最後に使用した隣接宛先ユニットのＩＰ／ＭＡＣアドレスである。尚、最新隣接宛先３３Ｈは、例えば、隣接宛先（ＬＤ１〜ＬＤ３）の何れか一つである。
【００２６】
ＧＷ７の制御部３０は、Ｈｅｌｌｏフレーム内にＧＷ到達ホップ数及び接続台数を付加する。図７は、Ｈｅｌｌｏフレームの構成の一例を示す説明図である。図７に示すＨｅｌｌｏフレーム９０は、ＰＨＹヘッダ９１と、ＭＡＣ（Media  Access  Control  Access）ヘッダ９２と、ＩＰ（Internet  Protocol）ヘッダ９３と、ＵＤＰ（User  Data  Program）ヘッダ９４とを有する。Ｈｅｌｌｏフレーム９０は、アドホックヘッダ９５と、ペイロード９６と、ＦＣＳ（Frame  Check  Sequence）９７とを有する。ＰＨＹヘッダ９１は、物理層のアドレスである。ＭＡＣヘッダ９２は、データリンク層のアドレスである。ＩＰヘッダ９３は、ネットワーク層のアドレスである。ＵＤＰヘッダ９４は、トランスポート層のアドレスである。アドホックヘッダ９５は、アドホック通信のヘッダである。
【００２７】
アドホックヘッダ９５は、パケット長９５Ａと、シーケンス番号９５Ｂと、タイプ９５Ｃと、ＴＴＬ（Time  to  Live）９５Ｄと、ホップ数９５Ｅとを有する。パケット長９５Ａは、ペイロード内のパケットの長さを示すものである。シーケンス番号９５Ｂは、コネクションを識別する情報である。ＴＴＬ９５Ｄは、パケットの有効期間を示すものである。タイプ９５Ｃは、データフレームやＨｅｌｌｏフレームを識別するものである。
【００２８】
また、ペイロード９６内には、ＧＷ到達ホップ数９６Ａ及び接続台数９６Ｂが付加されている。ＧＷ到達ホップ数９６Ａは、Ｈｅｌｌｏフレームを受信した通信ユニット５から当該Ｈｅｌｌｏフレームを発信したＧＷ７に到達するまでのホップ数である。更に、接続台数９６Ｂは、Ｈｅｌｌｏフレームを発信したＧＷ７が収容する通信ユニット５等の接続台数である。尚、通信ユニット５は、ＧＷ７からＨｅｌｌｏフレームを受信した場合、ペイロード９６内の接続台数９６Ｂ及びＧＷ到達ホップ数９６Ａを収集する。そして、通信ユニット５は、隣接宛先がある場合、ペイロード９６内のＧＷ到達ホップ数９６Ａを＋１更新する。そして、通信ユニット５は、更新されたＧＷ到達ホップ数９６Ａと、接続台数９６ＢとをＨｅｌｌｏフレームに付加してＨｅｌｌｏフレームを次の隣接宛先ユニット５に送信する。そして、各通信ユニット５は、隣接宛先がある場合、ＧＷ到達ホップ数９６Ａを更新しながら、次の隣接宛先にＨｅｌｌｏフレームを順次送信する。その結果、ＧＷ７は、末端の通信ユニット５まで接続台数９６Ｂを含むＨｅｌｌｏフレームを送信できる。
【００２９】
図８は、通信ユニット５のハードウェア構成の一例を示すブロック図である。図８に示す通信ユニット５は、外部装置入力部５１と、無線インタフェース５２と、補助記憶装置５３と、メモリ５４と、プロセッサ５５とを有する。外部装置入力部５１は、例えば、電力量を計測する電力計等の外部装置と接続するインタフェースである。無線インタフェース５２は、マルチホップシステム３と無線接続するインタフェースである。補助記憶装置５３は、各種情報を記憶するフラッシュメモリである。メモリ５４は、例えば、切替制御プログラム等の各種プログラムの情報を記憶するメモリである。プロセッサ５５は、通信ユニット５全体を制御する。尚、中継ユニット６のハードウェア構成は、図８に示す通信ユニット５とほぼ同一の構成であり、例えば、外部装置入力部５１を除いた構成である。
【００３０】
図９は、通信ユニット５の機能構成の一例を示すブロック図である。図９に示すプロセッサ５５は、メモリ５４に格納されたプログラムに基づき各種プロセスとなる機能を構成する。図９に示すプロセッサ５５は、無線通信部６１と、フレーム解析部６２と、データ生成部６３と、データ取得部６４と、設定情報取得部６５と、経路制御部６６と、記憶部６７と、制御部６８とを機能する。無線通信部６１は、無線インタフェース５２を通じてマルチホップシステム３との無線通信を制御する。
【００３１】
フレーム解析部６２は、無線インタフェース５２を通じてマルチホップシステム３内のＧＷ７、通信ユニット５や中継ユニット６のフレームを解析する。データ生成部６３は、データを生成する。データ取得部６４は、データを取得する。設定情報取得部６５は、設定情報を取得する。経路制御部６６は、自律型マルチホップ方式の通信経路を制御する。経路制御部６６は、ルーティングテーブル３２を参照し、最終宛先３２Ａの第１位の隣接宛先（ＬＤ１）のユニットで最終宛先のデータを中継する。記憶部６７は、図４に示すリンクテーブル３１、図５に示すルーティングテーブル３２及び図６に示すフレーム転送テーブル３３を管理するものである。記憶部６７は、主ＧＷアドレス領域に主ＧＷ７のＩＰ／ＭＡＣアドレス、副ＧＷアドレス領域に副ＧＷ７のＩＰ／ＭＡＣアドレスを対応付けて管理する。尚、主ＧＷ７は、通信ユニット５が運用時に使用するＧＷ７であり、副ＧＷ７は、例えば、主ＧＷ７の障害時や保守時に使用するＧＷ７である。
【００３２】
制御部６８は、収集部６８Ａと、算出部６８Ｂと、判定部６８Ｃと、切替制御部６８Ｄとを有する。収集部６８Ａは、無線通信部６１を通じて、例えば、収容中ＧＷ７Ａを含む周辺ＧＷ７からＨｅｌｌｏフレームを定期的に受信する。尚、Ｈｅｌｌｏフレームは、各ＧＷ７から、例えば、１０分周期で送信されるものである。そして、収集部６８Ａは、受信したＨｅｌｌｏフレーム内の接続台数９６Ｂ及びＧＷ到達ホップ数９６Ａを定期的に収集する。更に、収集部６８Ａは、例えば、ＧＷ到達ホップ数９６Ａが収容先として許容できる範囲内の場合、当該ＧＷ到達ホップ数９６Ａが付加されたＨｅｌｌｏフレームを発信したＧＷ７を収容候補ＧＷ７Ｂと判定する。尚、収容中ＧＷ７Ａは、一例として、通信ユニット５が無線接続するＧＷ７等がある。また、収容候補ＧＷ７Ｂは、一例として、通信ユニット５と無線接続可能な未接続のＧＷ７であって、収容中ＧＷ７Ａから切替接続可能なＧＷ７等がある。
【００３３】
算出部６８Ｂは、収容中ＧＷ７Ａの接続台数ＧＷ１から収容候補ＧＷ７Ｂの接続台数ＧＷ２を差し引いた差分（ＧＷ１−ＧＷ２）を算出する。算出部６８Ｂは、差分（ＧＷ１−ＧＷ２）が差分閾値Ｌを超えた場合、差分（ＧＷ１−ＧＷ２）に整数「１」以下の係数ｋを乗算することで主ＧＷ７Ａから副ＧＷ７Ｂに移動する移動対象の通信ユニット５の移動対象台数Ｔを算出する。移動対象台数は、Ｔ＝（ＧＷ１−ＧＷ２）×ｋである。例えば、収容中ＧＷ７Ａの接続台数ＧＷ１を６００台、収容候補ＧＷ７Ｂの接続台数ＧＷ２を１００台、係数ｋを０．１、差分閾値Ｌを２００台とする。この場合、算出部６８Ｂは、差分（６００−１００）が差分閾値Ｌを超えたので、移動対象台数Ｔが（６００−１００）×０．１＝５０となる。
【００３４】
判定部６８Ｃは、移動対象台数Ｔと、収容中ＧＷ７Ａの接続台数（ＧＷ１）と、乱数とに基づき、自ユニットが移動対象に該当したか否かを判定する。尚、移動対象とは、収容中ＧＷ７Ａから収容候補ＧＷ７Ｂに切替接続する移動対象の通信ユニット５である。つまり、判定部６８Ｃは、収容中ＧＷ７Ａ内の６００台（ＧＷ１）から自分が５０台（移動対象台数）の移動対象に該当したか否かを判定するものである。
【００３５】
判定部６８Ｃの判定アルゴリズムは、差分（ＧＷ１−ＧＷ２）が差分閾値Ｌ以上の場合に、移動対象に該当したか否かを判定するアルゴリズムである。尚、判定アルゴリズムは、例えば、ＩＦ（（ＧＷ１−ＧＷ２）＞Ｌ）｛Ｔ＝ＩＮＴ（（ＧＷ１−ＧＷ２）＊ｋ）Ｐ＝Ｉｎｔ（ＧＷ１＊Ｒｎｄ（）＋１）ＩＦ（Ｐ＜＝Ｔ）｛移動対象｝ｅｌｓｅ｛移動対象外｝｝である。
【００３６】
切替制御部６８Ｄは、自ユニットが移動対象に該当した場合、収容中ＧＷ７Ａから収容候補ＧＷ７Ｂに切替えて接続する。つまり、切替制御部６８Ｄは、収容候補ＧＷ７Ｂに対して接続を要求し、収容中ＧＷ７Ａに対して切断を要求する。そして、切替制御部６８Ｄは、主ＧＷアドレス領域に収容候補ＧＷ７ＢのＩＰ／ＭＡＣアドレスを、副ＧＷアドレス領域に収容中ＧＷ７ＡのＩＰ／ＭＡＣアドレスを登録して記憶部６７を更新する。その結果、切替制御部６８Ｄは、収容中ＧＷ７Ａから収容候補ＧＷ７Ｂへの切替が完了したことになる。
【００３７】
図１０は、リンクテーブル３１及びルーティングテーブル３２の更新の一例を示す説明図である。尚、説明の便宜上、通信ユニット５Ｂは、定期的にＨｅｌｌｏフレームを自分の無線エリア内で無線送信する。無線エリア内のユニット、例えば、ＧＷ７Ａ、通信ユニット５Ｃ及び５Ｆは、通信ユニット５ＢからＨｅｌｌｏフレームを受信する。その結果、通信ユニット５は、Ｈｅｌｌｏフレームを受信した際のＲＳＳＩに基づき、Ｈｅｌｌｏフレームを送信したユニットとの間の復路の重み値３１Ｂを算出する。尚、ＲＳＳＩは、無線環境に大きく左右されるものである。
【００３８】
例えば、Ｈｅｌｌｏフレームを受信した通信ユニット５Ｃは、ＬＳ３１Ａが“５Ｂ”及び復路の重み値３１Ｂが“２０”のリンクテーブル３１を生成する。更に、通信ユニット５Ｃは、ＧＤ３２Ａが“５Ｂ”、ＬＤ３２Ｂが“５Ｂ”、評価値３２Ｃが“Ｅ”のルーティングテーブル３２を生成する。また、Ｈｅｌｌｏフレームを受信した通信ユニット５Ｆは、ＬＳ３１Ａが“５Ｂ”及び、復路の重み値３１Ｂが“１５”のリンクテーブル３１を生成する。更に、通信ユニット５Ｆは、ＧＤ３２Ａが“５Ｂ”、ＬＤ３２Ｂが“５Ｂ”、評価値３２Ｃが“Ｅ”のルーティングテーブル３２を生成する。尚、評価値“Ｅ”は未評価を示す。
【００３９】
また、Ｈｅｌｌｏフレームを受信したＧＷ７Ａは、ＬＳ３１Ａが“５Ｂ”及び、復路の重み値３１Ｂが“１０”のリンクテーブル３１を生成する。更に、ＧＷ７Ａは、ＧＤ３２Ａが“５Ｂ”、ＬＤ３２Ｂが“５Ｂ”、評価値３２Ｃが“Ｅ”のルーティングテーブル３２を生成する。
【００４０】
図１１は、リンクテーブル３１及びルーティングテーブル３２の更新の一例を示す説明図である。図１１に示す通信ユニット５Ｃは、Ｈｅｌｌｏフレームを自分の無線エリア内に無線送信する。この際、通信ユニット５Ｃは、隣接する通信ユニット５Ｂの経路情報を管理しているため、通信ユニット５Ｂに関わる経路情報を含むＨｅｌｌｏフレームを送信する。その結果、無線エリア内の隣接するユニット、例えば、通信ユニット５Ｂ、５Ｄ及び５Ｅは、通信ユニット５ＣからのＨｅｌｌｏフレームを受信する。
【００４１】
Ｈｅｌｌｏフレームを受信した通信ユニット５Ｂは、ＬＳ３１Ａが“５Ｃ”、復路、往路及び双方向の重み値３１Ｂ〜３１Ｄが“２０”のリンクテーブル３１を生成する。尚、通信ユニット５は、往路のＲＳＳＩに基づき往路の重み値３１Ｃを算出すると共に、先に取得した復路の重み値３１Ｂと往路の重み値３１Ｃに基づき双方向の重み値３１Ｄを算出する。更に、通信ユニット５Ｂは、ＧＤ３２Ａが“５Ｃ”、ＬＤ３２Ｂが“５Ｃ”、評価値３２Ｃが“２５”のルーティングテーブル３２を生成する。
【００４２】
また、Ｈｅｌｌｏフレームを受信した通信ユニット５Ｄは、ＬＳ３１Ａが“５Ｃ”、復路の重み値３１Ｂが“３０”のリンクテーブル３１を生成する。更に、通信ユニット５Ｄは、ＧＤ３２Ａが“５Ｃ”、ＬＤ３２Ｂが“５Ｃ”、評価値３２Ｃが“Ｅ”の他に、ＧＤ３２Ａが“５Ｂ”、ＬＤ３２Ｂが“５Ｃ”、評価値３２Ｃが“Ｅ”のルーティングテーブル３２を生成する。また、Ｈｅｌｌｏフレームを受信した通信ユニット５Ｅは、ＬＳ３１Ａが“５Ｃ”、復路の重み値３１Ｂが“２０”のリンクテーブル３１を生成する。通信ユニット５Ｅは、ＧＤ３２Ａが“５Ｃ”、ＬＤ３２Ｂが“５Ｃ”及び評価値３２Ｃが“Ｅ”の他に、ＧＤ３２Ａが“５Ｂ”、ＬＤ３２Ｂが“５Ｃ”及び評価値３２Ｃが“Ｅ”のルーティングテーブル３２を生成する。
【００４３】
つまり、ＧＷ７、通信ユニット５及び中継ユニット６は、隣接ユニットからのＨｅｌｌｏフレームを受信し、受信されたＨｅｌｌｏフレームに基づき、ルーティングテーブル３２及びリンクテーブル３１の内容を更新する。ＧＷ７、通信ユニット５及び中継ユニット６は、ルーティングテーブル３２及びリンクテーブル３１の内容に基づきマルチホップシステム３内の通信経路をルーティングする。
【００４４】
図１２は、ルーティングテーブル３２の使用の一例を示す説明図である。尚、説明の便宜上、通信ユニット５Ｃは、最終宛先（ＧＤ）３２Ａ毎に最大３個までの第１位〜第３位の隣接宛先（ＬＤ）３２Ｂ及び評価値３２Ｃを管理するものである。図１２に示す例では、例えば、最終宛先（ＧＤ）３２Ａが“５Ｂ”の場合、隣接宛先（ＬＤ）３２Ｂが“５Ｂ”、“５Ｄ”及び“５Ｅ”である。その評価値３２Ｃは“５”、“５０”及び“６０”である。通信ユニット５Ｃが最終宛先（ＧＤ）３２Ａの“５Ｂ”に対してデータを送信する場合、ルーティングテーブル３２を参照し、評価値３２Ｃが最良、すなわち小さい“５”の隣接宛先“５Ｂ”のルートを選択する。その結果、通信ユニット５Ｃは、“５Ｂ”の通信ユニット５にデータを送信する。
【００４５】
図１３は、ルーティングテーブル３２の更新の一例を示す説明図である。尚、説明の便宜上、通信ユニット５Ｂは、通信ユニット５Ｃに対してＧＷ７Ａからのデータを通信ユニット５Ｃに中継する。更に、通信ユニット５Ｃは、データに対する応答の“ＡＣＫ”を通信ユニット５Ｂに送信する。尚、通信ユニット５Ｂは、最終宛先（ＧＤ）３２Ａの通信ユニット５Ｇに対して隣接宛先３２Ｂの“５Ｃ”、”５Ｆ”及び“７Ａ”のルーティングテーブル３２を管理している。
【００４６】
通信ユニット５Ｂは、ＧＷ７Ａから通信ユニット５Ｇ宛のデータを受信し、ルーティングテーブル３２の評価値３２Ｃを参照し、隣接宛先３２Ｂの通信ユニット５Ｃを中継先に決定し、隣接宛先３２Ｂである通信ユニット５Ｃにデータを送信する。その結果、通信ユニット５Ｂは、当該転送フレームの最新隣接宛先３３Ｈを“５Ｃ”としてフレーム転送テーブル３３に更新登録する。
【００４７】
更に、通信ユニット５Ｂは、転送フレームに対する応答（ＡＣＫ）を通信ユニット５Ｃから受信した場合、隣接宛先３２Ｂの“５Ｃ”に該当する評価値３２Ｃを“１０”に高めて、ルーティングテーブル３２の内容を更新する。つまり、ルーティングテーブル３２は、Ｈｅｌｌｏフレームを受信した際のＲＳＳＩだけでなく、データ転送の実績に応じて評価値３２Ｃを動的に更新する。
【００４８】
次に本実施例の通信システム１の動作について説明する。図１４は、ＧＷ切替選択処理に関わる通信ユニット５側のプロセッサ５５の処理動作の一例を示すフローチャートである。図１４に示すＧＷ切替選択処理は、各ＧＷ７の接続台数に基づき、自ユニットが移動対象に該当したか否かを判定し、移動対象に該当した場合、自ユニットを収容候補ＧＷ７Ｂに切替接続する処理である。
【００４９】
図１４においてプロセッサ５５の制御部６８内の収集部６８Ａは、周辺ＧＷ７、例えば、収容中ＧＷ７Ａ及び収容候補ＧＷ７Ｂから接続台数（ＧＷ１，ＧＷ２）を定期的に受信したか否かを判定する（ステップＳ１１）。尚、収集部６８Ａは、接続台数９６Ｂ及びＧＷ到達ホップ数９６Ａが付加されたＨｅｌｌｏフレームを定期的に受信した場合に、ＧＷ到達ホップ数９６Ａに基づき収容候補ＧＷ７Ｂを選定するものである。制御部６８内の算出部６８Ｂは、収容中ＧＷ７Ａ及び収容候補ＧＷ７Ｂの接続台数を受信した場合（ステップＳ１１肯定）、収容中ＧＷ７Ａの接続台数から収容候補ＧＷ７Ｂの接続台数を差し引いて差分（ＧＷ１−ＧＷ２）を算出する。更に、算出部６８Ｂは、その差分（ＧＷ１−ＧＷ２）が差分閾値Ｌを超えたか否かを判定する（ステップＳ１２）。算出部６８Ｂは、差分が差分閾値Ｌを超えた場合（ステップＳ１２肯定）、収容候補ＧＷ７Ｂの通信条件を満たすか否かを判定する（ステップＳ１３）。尚、通信条件とは、収容候補ＧＷ７Ｂ内に通信ユニット５を収容接続する際の許容ホップ数やＲＳＳＩ等を満たすか否かを示す条件である。
【００５０】
算出部６８Ｂは、収容候補ＧＷ７Ｂの通信条件を満たした場合（ステップＳ１３肯定）、収容中ＧＷ７Ａの移動対象台数を算出する（ステップＳ１４）。尚、算出部６８Ａは、ＩＮＴ（ＧＷ１−ＧＷ２）＊ｋで移動対象台数Ｔを算出する。
【００５１】
更に、判定部６８Ｃは、収容中ＧＷ７Ａの接続台数（ＧＷ１）と、乱数とに基づき乱数値Ｐを算出する（ステップＳ１５）。尚、判定部６８Ｃは、ＩＮＴ（ＧＷ１）＊Ｒａｎｄ（）＋１）で乱数値Ｐを算出する。そして、判定部６８Ｃは、ステップＳ１４の移動対象台数Ｔ及びステップＳ１５の乱数値Ｐに基づき、自ユニットが移動対象に該当したか否かを判定する（ステップＳ１６）。尚、判定部６８Ｃは、乱数値Ｐ≦移動対象Ｔの場合、自ユニットが移動対象に該当したものと判定する。また、判定部６８Ｃは、乱数値Ｐ≦移動対象Ｔでない場合、自ユニットが移動対象に該当しなかったものと判定する。
【００５２】
制御部６８内の切替制御部６８Ｄは、自ユニットが移動対象に該当した場合（ステップＳ１６肯定）、収容候補ＧＷ７Ｂに対して接続要求する（ステップＳ１７）。切替制御部６８Ｄは、収容候補ＧＷ７Ｂから接続要求に対する応答を受信したか否かを判定する（ステップＳ１８）。切替制御部６８Ｄは、接続要求に対する応答を受信した場合（ステップＳ１８肯定）、収容中ＧＷ７Ａに切断要求する（ステップＳ１９）。切替制御部６８Ｄは、主ＧＷ７Ａから切断要求に対する応答を受信したか否かを判定する（ステップＳ２０）。
【００５３】
切替制御部６８Ｄは、切断要求に対する応答を受信した場合（ステップＳ２０肯定）、主ＧＷアドレス領域に切替前の収容候補ＧＷ７Ｂのアドレスを、副ＧＷアドレス領域に切替前の収容中ＧＷ７Ａのアドレスを登録する（ステップＳ２１）。そして、切替制御部６８Ｄは、図１４に示す処理動作を終了する。その結果、通信ユニット５は、収容中ＧＷ７Ａから収容候補ＧＷ７Ｂに切替接続する。
【００５４】
更に、切替制御部６８Ｄは、収容候補ＧＷ７Ｂから接続要求に対する応答を受信していない場合（ステップＳ１８否定）、収容候補ＧＷ７Ｂへの接続要求から一定時間経過したか否かを判定する（ステップＳ２２）。切替制御部６８Ｄは、接続要求から一定時間経過した場合（ステップＳ２２肯定）、収容候補ＧＷ７Ｂに対して接続要求すべく、ステップＳ１７に移行する。尚、例えば、収容候補ＧＷ７Ｂに対する接続要求を所定回数実行し、当該接続要求に対する応答が受信できない場合に、処理を中断して、ステップＳ１１に移行するようにしても良い。また、切替制御部６８Ｄは、収容候補ＧＷ７Ｂへの接続要求から一定時間を経過していない場合（ステップＳ２２否定）、接続要求に対する応答を受信したか否かを判定すべく、ステップＳ１８に移行する。
【００５５】
また、切替制御部６８Ｄは、収容中ＧＷ７Ａから切断要求に対する応答を受信していない場合（ステップＳ２０否定）、収容中ＧＷ７Ａへの切断要求から一定時間経過したか否かを判定する（ステップＳ２３）。切替制御部６８Ｄは、切断要求から一定時間を経過した場合（ステップＳ２３肯定）、収容中ＧＷ７Ａに対して切断要求すべく、ステップＳ１９に移行する。また、切替制御部６８Ｄは、収容中ＧＷ７Ａへの切断要求から一定時間を経過していない場合（ステップＳ２３否定）、切断要求に対する応答を受信したか否かを判定すべく、ステップＳ２０に移行する。
【００５６】
また、収集部６８Ａは、収容中ＧＷ７Ａ及び収容候補ＧＷ７Ｂの接続台数を受信していない場合（ステップＳ１１否定）、接続台数の受信を継続監視すべく、ステップＳ１１に移行する。また、算出部６８Ｂは、接続台数の差分（ＧＷ１−ＧＷ２）が差分閾値Ｌを超えていない場合（ステップＳ１２否定）、接続台数の受信を継続監視すべく、ステップＳ１１に移行する。また、算出部６８Ｂは、収容候補ＧＷ７Ｂの通信条件を満たさない場合（ステップＳ１３否定）、既存の収容中ＧＷ７の経路を維持したまま（ステップＳ２４）、接続台数の受信を継続監視すべく、ステップＳ１１に移行する。尚、算出部６８Ｂは、既存の収容中ＧＷ７Ａの経路を維持したまま、他の収容候補ＧＷ７Ｂがある場合には、当該他の収容候補ＧＷ７Ｂの接続台数を用いてステップＳ１２に移行するようにしても良い。また、判定部６８Ｃは、自ユニットが移動対象に該当しなかった場合（ステップＳ１６否定）、次の接続台数の受信を継続監視すべく、ステップＳ１１に移行する。
【００５７】
図１４に示すＧＷ切替選択処理では、収容中ＧＷ７Ａ側の通信ユニット５で差分（ＧＷ１−ＧＷ２）が差分閾値Ｌを超えた場合、差分に係数ｋを乗算して収容中ＧＷ７の移動対象台数Ｔを算出する。更に、通信ユニット５は、収容中ＧＷ７Ａの接続台数（ＧＷ１）及び乱数に基づき乱数値Ｐを算出する。そして、通信ユニット５は、乱数値Ｐが移動対象台数Ｔ以下の場合、移動対象に該当したと判定する。そして、通信ユニット５は、移動対象に該当した場合、収容中ＧＷ７Ａから収容候補ＧＷ７Ｂに切替接続する。そして、ＧＷ切替選択処理を繰り返すことで、収容中ＧＷ７Ａの接続台数と収容候補ＧＷ７Ｂの接続台数との差が差分閾値Ｌ以下に徐々に収束する。その結果、収容中ＧＷ７Ａ及び収容候補ＧＷ７Ｂの接続台数を均等化できる。
【００５８】
尚、ステップＳ１１の処理では、収集部６８Ａが受信した各Ｈｅｌｌｏフレーム内のＧＷ到達ホップ数９６Ａに基づき収容候補ＧＷ７Ｂを判定した。しかしながら、収容候補ＧＷ７Ａを特定することなく、収容中ＧＷ７Ａ以外のＧＷ７から受信した全てのＨｅｌｌｏフレームを収容候補ＧＷ７Ｂからのものとみなしても良く。この場合、制御部６８は、ステップＳ１３の処理で通信条件を満たすか否かの判定結果に基づき、真の収容候補ＧＷ７Ｂと判定できる。
【００５９】
図１５は、収容中ＧＷ７Ａと収容候補ＧＷ７Ｂとの接続台数の収束の一例を示す説明図である。図１５に示す収容中ＧＷ７Ａの接続台数（ＧＷ１）を６００台、収容候補ＧＷ７Ｂの接続台数（ＧＷ２）を１００台、差分閾値Ｌを２００台、係数ｋを０．１とする。そして、収容中ＧＷ７Ａに接続する通信ユニット５は、ＧＷ切替選択処理を１回実行することで、例えば、収容中ＧＷ７Ａの接続台数（ＧＷ１）が５５０台、収容候補ＧＷ７Ｂの接続台数（ＧＷ２）が１５０台に移行する。そして、ＧＷ切替選択処理を複数回繰り返し、収容中ＧＷ７に接続する通信ユニット５が、収容候補ＧＷ７Ｂに徐々に切替接続する。その結果、収容中ＧＷ７Ａの接続台数と収容候補ＧＷ７Ｂの接続台数との差分を差分閾値Ｌ以下に徐々に収束する。
【００６０】
本実施例では、収容中ＧＷ７Ａ配下の通信ユニット５が自律的に移動対象に該当するか否かを判定する。通信ユニット５は、移動対象に該当すると判定した場合、収容候補ＧＷ７Ａから収容候補ＧＷ７Ｂに切替接続し、収容中ＧＷ７Ａの接続台数と収容候補ＧＷ７Ｂの接続台数との差分を差分閾値Ｌ内に収束する。その結果、収容中ＧＷ７Ａ及び収容候補ＧＷ７Ｂの接続台数の差が差分閾値Ｌ以下に徐々に収束して接続台数を均等化するため、収容中ＧＷ７Ａの接続台数集中による無線輻輳の発生を防止できる。
【００６１】
また、本実施例では、収容中ＧＷ７Ａ及び収容候補ＧＷ７Ｂの接続台数が均等化して収容中ＧＷ７Ａ及び収容候補ＧＷ７Ｂでテーブル管理する通信ユニット５の経路情報の数も均等化できる。その結果、収容中ＧＷ７Ａは、近傍に新規の通信ユニット５が配置された場合でも、テーブル内に空きがあるため、新規の通信ユニット５が登録できる。
【００６２】
また、本実施例では、無線経路中の障害物等で無線経路が偏ったとしても、移動対象に該当した収容中ＧＷ７Ａの各通信ユニット５が自律的に収容候補ＧＷ７Ｂに切替接続するため、無線経路の偏りを軽減できる。
【００６３】
また、本実施例では、収容中ＧＷ７Ａ及び収容候補ＧＷ７Ｂの接続台数の差分を一気に均等化するのではなく、移動対象台数Ｔ以内で、かつ乱数を使用して移動対象に該当した通信ユニット５のみを収容候補ＧＷ７Ｂに切替接続して徐々に均等化した。その結果、障害物等で無線経路が遮断されて直ちに復旧するような状況下でも、復旧の接続台数の変動による通信システム１の不安定化を確実に防止できる。
【００６４】
また、本実施例では、移動対象台数Ｔを算出する際に、収容中ＧＷ７Ａ及び収容候補ＧＷ７Ｂの接続台数の差分に乗算する係数ｋを調整したので、収容中ＧＷ７Ａから収容候補ＧＷ７Ｂに移動する移動対象の移動対象台数Ｔを簡単に調整できる。しかも、係数ｋを変えて移動対象台数Ｔを調整して、収容中ＧＷ７Ａ及び収容候補ＧＷ７Ｂの接続台数の変化量を調整できる。その結果、急激な接続台数の変動で通信システム１が不安定になるような事態を回避できる。
【００６５】
また、上記実施例では、収容中ＧＷ７Ａの接続台数から収容候補ＧＷ７Ｂの接続台数を差し引き、差分（ＧＷ１−ＧＷ２）が差分閾値Ｌを超えた場合にのみ、収容中ＧＷ７Ａの通信ユニット５から移動対象に該当したか否かを判定した。その結果、収容中ＧＷ７Ａの各通信ユニット５は、差分が小さい場合、通信ユニット５を収容候補ＧＷ７Ｂに切替接続する不要な処理を抑制できる。
【００６６】
また、上記実施例では、各ＧＷ７が、Ｈｅｌｌｏフレームを１０分間周期で送信し、ＨｅｌｌｏフレームがＧＷ７配下の末端の通信ユニット５に到達するまでには若干の遅延が生じ、各通信ユニット５側でのＨｅｌｌｏフレーム取得に時間差が生じる。しかしながら、本システムで使用する通信ユニット５は、例えば、家庭内の電力計に固定配置される場合が多く、各Ｈｅｌｌｏフレームの取得時間差の間に、接続台数が変動することも少ない。しかも、前述した通り、収容中ＧＷ７Ａ内の移動対象に該当した通信ユニット５は、収容候補ＧＷ７Ｂに徐々に切替接続する。その結果、各Ｈｅｌｌｏフレームの取得時間差による接続台数に変動が生じたとしても、接続台数の変動で通信システム１が不安定になるような事態を回避できる。
【００６７】
尚、上記実施例では、（ＧＷ１−ＧＷ２）＊ｋで移動対象台数Ｔを算出した。この場合、判定アルゴリズム１は、ＩＦ（（ＧＷ１−ＧＷ２）＞Ｌ）｛Ｔ＝ＩＮＴ（（ＧＷ１−ＧＷ２）＊ｋ）Ｐ＝Ｉｎｔ（ＧＷ１＊Ｒｎｄ（）＋１）ＩＦ（Ｐ＜＝Ｔ）｛移動対象｝ｅｌｓｅ｛移動対象外｝｝となる。そこで、判定アルゴリズム１を使用したＧＷ切替選択処理でシミュレーションした。図１６Ａは、判定アルゴリズム１でシミュレーションした接続台数の収束推移の一例を示す説明図である。図１６Ａは、収容中ＧＷ７Ａの接続台数を５５０台、収容候補ＧＷ７Ｂの接続台数を１５０台、差分閾値Ｌを１００台、係数ｋを０．１とする。そして、例えば、５回目のＧＷ切替選択処理で、収容中ＧＷ７Ａの接続台数は３９５台、収容候補ＧＷ７Ｂの接続台数は３０５台に収束するという結果が得られた。ただし、乱数での移動対象台数が、合計でＴになった場合のシミュレーション結果である。
【００６８】
また、差分（ＧＷ１−ＧＷ２）の１／２に係数ｋを乗算して移動対象台数Ｔを算出しても良い。この場合、判定アルゴリズム２は、ＩＦ（（ＧＷ１−ＧＷ２）＞Ｌ）｛Ｔ＝ＩＮＴ（（ＧＷ１−ＧＷ２）／２＊ｋ）Ｐ＝Ｉｎｔ（ＧＷ１＊Ｒｎｄ（）＋１）ＩＦ（Ｐ＜＝Ｔ）｛移動対象｝ｅｌｓｅ｛移動対象外｝｝となる。そこで、判定アルゴリズム２を使用したＧＷ切替選択処理でシミュレーションした。図１６Ｂは、判定アルゴリズム２でシミュレーションした接続台数の収束推移の一例を示す説明図である。図１６Ｂは、収容中ＧＷ７Ａの接続台数を４７５台、収容候補ＧＷ７Ｂの接続台数を２２５台、差分閾値Ｌを１００台、係数ｋを０．５とする。そして、例えば、３回目のＧＷ切替選択処理で、収容中ＧＷ７Ａの接続台数は３８１台、収容候補ＧＷ７Ｂの接続台数は３１９台に収束するという結果が得られた。
【００６９】
また、差分（ＧＷ１−ＧＷ２）の１／２に、主ＧＷ１の接続台数に対する副ＧＷ７Ｂの接続台数の割合及び係数ｋを乗算して移動対象台数Ｔを算出しても良い。この場合、判定アルゴリズム３は、ＩＦ（（ＧＷ１−ＧＷ２）＞Ｌ）｛Ｔ＝ＩＮＴ（（ＧＷ１−ＧＷ２）／２＊（ＧＷ２／ＧＷ１）＊ｋ）Ｐ＝Ｉｎｔ（ＧＷ１＊Ｒｎｄ（）＋１）ＩＦ（Ｐ＜＝Ｔ）｛移動対象｝ｅｌｓｅ｛移動対象外｝｝となる。そこで、判定アルゴリズム３を使用したＧＷ切替選択処理でシミュレーションした。図１６Ｃは、判定アルゴリズム３でシミュレーションした接続台数の収束推移の一例を示す説明図である。図１６Ｃは、収容中ＧＷ７Ａの接続台数を４９５台、収容候補ＧＷ７Ｂの接続台数を２０５台、差分閾値Ｌを１００台、係数ｋを０．５とする。そして、例えば、２回目のＧＷ切替選択処理で、収容中ＧＷ７Ａの接続台数は３９６台、収容候補ＧＷ７Ｂの接続台数は３０４台に収束するという結果が得られた。
【００７０】
また、各副ＧＷ７Ｂの接続台数を受信し、差分（ＧＷ−ＧＷ２）の１／２と対象副ＧＷの割合に係数ｋを乗算して移動対象台数Ｔを算出しても良い。この場合、判定アルゴリズム４は、ＩＦ（（ＧＷ１−ＧＷ２）＞Ｌ）｛ＩＦ（（ＧＷ１−ＧＷ２）／２＜ＧＷ２）｛Ｔ＝ＩＮＴ（（ＧＷ１−ＧＷ２）／２／ＧＷ２＊ｋ）｝ｅｌｓｅ｛Ｔ＝ＩＮＴ（ＧＷ２＊ｋ）｝Ｐ＝Ｉｎｔ（ＧＷ１＊Ｒｎｄ（）＋１）ＩＦ（Ｐ＜＝Ｔ）｛移動対象｝ｅｌｓｅ｛移動対象外｝｝となる。そこで、判定アルゴリズム４を使用したＧＷ切替選択処理でシミュレーションした。図１６Ｄは、判定アルゴリズム４でシミュレーションした接続台数の収束推移の一例を示す説明図である。図１６Ｄは、収容中ＧＷ７Ａの接続台数を４００台、収容候補ＧＷ７Ｂの接続台数を３００台、差分閾値Ｌを１００台、係数ｋを０．８とする。そして、例えば、２回目のＧＷ切替選択処理で、収容中ＧＷ７Ａの接続台数は３６１台、収容候補ＧＷ７Ｂの接続台数は３３９台に収束するという結果が得られた。
【００７１】
また、上記実施例では、説明の便宜上、収容中の通信収容装置として一台の収容中ＧＷ７Ａ、収容候補の通信収容装置として一台の収容候補ＧＷ７Ｂを例に挙げて説明した。しかしながら、収容候補ＧＷ７Ｂは、一台に限定されるものではなく、複数台であっても良い。また、収容中ＧＷ７Ａを主ＧＷ、収容候補ＧＷ７Ｂを主ＧＷ７と従属関係のある副ＧＷ７としても良い。
【００７２】
また、上記実施例では、移動対象として通信ユニット５を例示したが、通信ユニット５に限定されるものではなく、中継ユニット６でも良い。
【００７３】
また、上記実施例では、収容中ＧＷ７Ａに接続する全通信ユニット５を同一係数ｋの当選確率で移動対象に該当したか否かを判定した。しかし、収容中ＧＷ７Ａに接続された通信ユニット５は、Ｈｅｌｌｏフレーム内のＧＷ到達ホップ数９６Ａに基づき、収容中ＧＷ７Ａまでのホップ数の漸増に応じて通信ユニット５の当選確率を高めるべく、係数ｋを漸増させるようにしても良い。その結果、収容中ＧＷ７Ａ内の通信ユニット５の内、ホップ数の少ない通信ユニット５から切替える場合に比較して、収容中ＧＷ７Ａから遠く、ホップ数の多い通信ユニット５から優先的に切替えた方が切替影響を小さくして通信システム１の安定化が図れる。
【００７４】
また、上記実施例では、収容中ＧＷ７Ａに接続された通信ユニット５の内、中継する通信ユニット５の台数の漸増に応じて係数ｋを漸増させるようにしても良い。その結果、収容中ＧＷ７Ａ内の通信ユニット５の内、中継数の多い通信ユニット５から切替える場合に比較して、中継数の少ない通信ユニット５から優先的に切替えた方が切替影響を小さくして通信システム１の安定化が図れる。
【００７５】
また、上記実施例では、各ＧＷ７が主ＧＷとして収容中の通信ユニット５及び、副ＧＷとして収容可能な通信ユニット５のアドレスを管理しておき、各ＧＷ７が、自分の接続台数をユニキャストでアドレスを把握している各通信ユニット５に通知しても良い。その結果、各通信ユニット５は、主ＧＷの接続台数及び副ＧＷの接続台数を収集できる。
【００７６】
また、上記実施例では、Ｈｅｌｌｏフレーム内にＧＷ到達ホップ数９６Ａ及び接続台数９６Ｂの他に、ＧＷ７側でＨｅｌｌｏフレームを発信した時刻を付加しても良い。この場合、通信ユニット５は、収容中ＧＷ７Ａ及び収容候補ＧＷ７Ｂから得たＨｅｌｌｏフレーム内の時刻情報の差が許容できる範囲の場合にのみ、収容中ＧＷ７Ａの接続台数から収容候補ＧＷ７Ｂの接続台数を差し引く差分（ＧＷ１−ＧＷ２）を算出しても良い。
【００７７】
また、上記実施例では、ＧＷ到達ホップ数９６Ａの代わりに、ＲＳＳＩやデータ送信の成功実績を加味した評価値をＨｅｌｌｏフレーム内に付加しても良い。この場合、各通信ユニット５内の収集部６８Ａは、受信したＨｅｌｌｏフレーム内の評価値に基づき収容候補ＧＷ７Ｂを判定しても良い。
【００７８】
また、上記実施例では、Ｈｅｌｌｏフレームに接続台数９６ＢやＧＷ到達ホップ数９６Ａ等を付加するようにしたが、Ｈｅｌｌｏフレーム以外の配信フレームに接続台数９６ＢやＧＷ到達ホップ数９６Ａ等を付加しても良い。
【００７９】
また、上記実施例では、収集部６８Ａで前回収集した接続台数ＧＷ１に関わる前回の差分と、収集部６８Ａで前回直後の今回収集した接続台数に関わる今回の差分との変化量が一定の変化量閾値未満の場合に、係数ｋを増加させる。例えば、本実施例の通信ユニット５の他に、ＧＷ切替選択処理が実行できない他の通信ユニットが通信システム１内に混在した場合、接続台数内に他の通信ユニットの台数も含まれるため、前回の差分と今回の差分との変化量が著しく小さくなることも考えられる。そこで、この場合、前回の差分と今回の差分との変化量が変化量閾値未満の場合には係数ｋを増加して移動対象台数Ｔを増やすことで移動対象の当選確率を高めて変化量を増やすようにしても良い。尚、変化量が変化量閾値を超えた場合、その係数ｋを元の値に戻すものとする。
【００８０】
また、上記実施例では、アドホック通信として、自律型マルチホップ方式の無線通信を採用した通信システム１を例示して説明したが、無線通信に限定されるものではなく、赤外線通信や有線通信等にも適用可能である。
【００８１】
また、図示した各部の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各部の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。
【００８２】
更に、各装置で行われる各種処理機能は、ＣＰＵ（Central  Processing  Unit）（又はＭＰＵ（Micro  Processing  Unit）、ＭＣＵ（Micro  Controller  Unit）等のマイクロ・コンピュータ）上で、その全部又は任意の一部を実行するようにしても良い。また、各種処理機能は、ＣＰＵ（又はＭＰＵ、ＭＣＵ等のマイクロ・コンピュータ）で解析実行するプログラム上、又はワイヤードロジックによるハードウェア上で、その全部又は任意の一部を実行するようにしても良いことは言うまでもない。
【００８３】
ところで、本実施例で説明した各種の処理は、予め用意されたプログラムを通信機器で実行することで実現できる。そこで、以下では、上記実施例と同様の機能を有するプログラムを実行する通信機器の一例を説明する。図１７は、切替制御プログラムを実行する通信機器の一例を示す説明図である。
【００８４】
図１７に示す切替制御プログラムを実行する通信機器１００は、通信インタフェース１１１と、ＲＡＭ(Random  Access  Memory)１１２と、ＲＯＭ（Read  Only  Memory）１１３と、プロセッサ１１４とを有する。通信インタフェース１１１は、自律型マルチホップ方式で無線通信する。プロセッサ１１４は、通信機器１００全体を制御する。
【００８５】
そして、ＲＯＭ１１３には、上記実施例と同様の機能を発揮する切替制御プログラムが予め記憶されている。尚、ＲＯＭ１１３ではなく、図示せぬドライブで読取可能な記録媒体に切替制御プログラムが記録されていても良い。また、記録媒体としては、例えば、ＣＤ−ＲＯＭ、ＤＶＤディスク、ＵＳＢメモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ等でも良い。切替制御プログラムとしては、図１７に示すように、収集プログラム１１３Ａ、算出プログラム１１３Ｂ、判定プログラム１１３Ｃ及び切替制御プログラム１１３Ｄである。尚、プログラム１１３Ａ〜１１３Ｄについては、適宜統合又は分散してもよい。
【００８６】
そして、プロセッサ１１４が、プログラム１１３Ａ〜１１３ＤをＲＯＭ１１３から読み出し、読み出された各プログラムを実行する。そして、プロセッサ１１４は、図１７に示すように、各プログラム１１３Ａ〜１１３Ｄを、収集プロセス１１４Ａ、算出プロセス１１４Ｂ、判定プロセス１１４Ｃ及び切替制御プロセス１１４Ｄとして機能することになる。
【００８７】
プロセッサ１１４は、通信接続される収容中の通信収容装置から収容中の通信収容装置が接続する通信機器の接続台数を収集すると共に、通信接続可能な収容候補の通信収容装置から収容候補の通信収容装置が通信接続する通信機器の接続台数を収集する。更に、プロセッサ１１４は、収集された収容中の通信収容装置側の接続台数と収容候補の通信収容装置側の接続台数との差分に基づき、収容中の通信収容装置から収容候補の通信収容装置に移動する移動対象の通信機器の移動対象台数を算出する。更に、プロセッサ１１４は、移動対象台数と、収容中の通信収容装置側の接続台数と、乱数とに基づき、移動対象に該当したか否かを判定する。更に、プロセッサ１１４は、移動対象に該当した場合に、収容中の通信収容装置から収容候補の通信収容装置への切替接続を収容候補の通信収容装置に要求する。その結果、通信収容装置に接続される通信機器側の自律的な動作で、各通信収容装置の接続台数を調整できる。
【００８８】
以上、本実施例を含む実施の形態に関し、更に以下の付記を開示する。
【００８９】
（付記１）収容中の通信収容装置と通信接続すると共に、収容候補の通信収容装置と通信接続可能な通信部と、
前記収容中の通信収容装置から前記収容中の通信収容装置が通信接続する通信装置の接続台数を収集すると共に、前記収容候補の通信収容装置から前記収容候補の通信収容装置が通信接続する通信装置の接続台数を収集する収集部と、
前記収集された前記収容中の通信収容装置側の接続台数と前記収容候補の通信収容装置側の接続台数との差分に基づき、前記収容中の通信収容装置から前記収容候補の通信収容装置に移動する移動対象の通信装置の移動対象台数を算出する算出部と、
前記移動対象台数と、前記収容中の通信収容装置側の接続台数と、乱数とに基づき、前記移動対象に該当したか否かを判定する判定部と、
前記移動対象に該当した場合に、前記収容中の通信収容装置から前記収容候補の通信収容装置への切替接続を前記収容候補の通信収容装置に要求する制御部と
を有することを特徴とする通信装置。
【００９０】
（付記２）前記算出部は、
前記差分を１以下の係数で乗算して前記移動対象台数を算出することを特徴とする付記１に記載の通信装置。
【００９１】
（付記３）前記算出部は、
前記差分が差分閾値を超えた場合に、当該差分に基づき、前記移動対象台数を算出することを特徴とする付記１又は２に記載の通信装置。
【００９２】
（付記４）前記算出部は、
前記収容中の通信収容装置に接続するまでのホップ数の漸増に応じて前記係数を漸増させることを特徴とする付記２に記載の通信装置。
【００９３】
（付記５）前記算出部は、
中継する通信装置の台数の漸増に応じて前記係数を漸減させることを特徴とする付記２に記載の通信装置。
【００９４】
（付記６）前記算出部は、
前記収集部で前回収集した接続台数に関わる前回の差分と、前記収集部で前回直後の今回収集した接続台数に関わる今回の差分との変化量が変化量閾値未満の場合に、前記係数を増加させることを特徴とする付記２に記載の通信装置。
【００９５】
（付記７）複数の通信装置と、前記複数の通信装置を収容する複数の通信収容装置とを有する通信システムであって、
前記複数の通信収容装置の内、前記通信装置が通信接続する収容中の通信収容装置及び前記通信装置が通信接続可能な収容候補の通信収容装置は、
通信接続する通信装置の接続台数を各通信装置に報知する報知部
を有し、
前記複数の通信装置のそれぞれは、
前記収容中の通信収容装置から報知された前記収容中の通信収容装置側の接続台数を収集すると共に、前記収容候補の通信収容装置から報知された前記収容候補の通信収容装置側の接続台数を収集する収集部と、
前記収集された前記収容中の通信収容装置側の接続台数と前記収容候補の通信収容装置側の接続台数との差分に基づき、前記収容中の通信収容装置から前記収容候補の通信収容装置に移動する移動対象の通信装置の移動対象台数を算出する算出部と、
前記移動対象台数と、前記収容中の通信収容装置側の接続台数と、乱数とに基づき、前記移動対象に該当したか否かを判定する判定部と、
前記移動対象に該当した場合に、前記収容中の通信収容装置から前記収容候補の通信収容装置への切替接続を前記収容候補の通信収容装置に要求する制御部と
を有することを特徴とする通信システム。
【００９６】
（付記８）複数の通信装置と、前記複数の通信装置を収容する複数の通信収容装置とを有する通信システムの切替制御方法であって、
前記複数の通信装置のそれぞれは、
通信接続される収容中の通信収容装置から前記収容中の通信収容装置が通信接続する通信装置の接続台数及び、通信接続可能な収容候補の通信収容装置から前記収容候補の通信収容装置が通信接続する通信装置の接続台数を収集し、
収集された前記収容中の通信収容装置側の接続台数と前記収容候補の通信収容装置側の接続台数との差分に基づき、前記収容中の通信収容装置から前記収容候補の通信収容装置に移動する移動対象の通信装置の移動対象台数を算出し、
前記移動対象台数と、前記収容中の通信収容装置側の接続台数と、乱数とに基づき、移動対象に該当したか否かを判定し、
前記移動対象に該当した場合に、前記収容中の通信収容装置から前記収容候補の通信収容装置への切替接続を前記収容候補の通信収容装置に要求する
各処理を実行することを特徴とする切替制御方法。
【００９７】
（付記９）通信する通信インタフェースと、プロセッサとを有する通信装置で実行される切替制御プログラムであって、
前記プロセッサに、
通信接続される収容中の通信収容装置から前記収容中の通信収容装置が通信接続する通信装置の接続台数及び、通信接続可能な収容候補の通信収容装置から前記収容候補の通信収容装置が通信接続する通信装置の接続台数を収集し、
収集された前記収容中の通信収容装置側の接続台数と前記収容候補の通信収容装置側の接続台数との差分に基づき、前記収容中の通信収容装置から前記収容候補の通信収容装置に移動する移動対象の通信装置の移動対象台数を算出し、
前記移動対象台数と、前記収容中の通信収容装置側の接続台数と、乱数とに基づき、前記移動対象に該当したか否かを判定し、
前記移動対象に該当した場合に、前記収容中の通信収容装置から前記収容候補の通信収容装置への切替接続を前記収容候補の通信収容装置に要求する
各処理を実行させることを特徴とする切替制御プログラム。
【符号の説明】
【００９８】
１  通信システム
５  通信ユニット
７  ＧＷ
７Ａ  収容中ＧＷ
７Ｂ  収容候補ＧＷ
２２  無線通信部
３０  制御部
６１  無線通信部
６８Ａ  収集部
６８Ｂ  算出部
６８Ｃ  判定部
６８Ｄ  切替制御部
１００  通信機器
１１１  通信インタフェース
１１２  ＲＡＭ
１１３  ＲＯＭ
１１４  プロセッサ
１１４Ａ  収集プロセス
１１４Ｂ  算出プロセス
１１４Ｃ  判定プロセス
１１４Ｄ  切替制御プロセス
【図１】
0005831334.tif 000002
【図２】
0005831334.tif 000003
【図３】
0005831334.tif 000004
【図４】
0005831334.tif 000005
【図５】
0005831334.tif 000006
【図６】
0005831334.tif 000007
【図７】
0005831334.tif 000008
【図８】
0005831334.tif 000009
【図９】
0005831334.tif 000010
【図１０】
0005831334.tif 000011
【図１１】
0005831334.tif 000012
【図１２】
0005831334.tif 000013
【図１３】
0005831334.tif 000014
【図１４】
0005831334.tif 000015
【図１５】
0005831334.tif 000016
【図１６Ａ】
0005831334.tif 000017
【図１６Ｂ】
0005831334.tif 000018
【図１６Ｃ】
0005831334.tif 000019
【図１６Ｄ】
0005831334.tif 000020
【図１７】
0005831334.tif 000021