(57)【要約】  無線通信システム内の制御装置として動作するゲートウェイ１０１は、複数の無線周波数チャネルから同時に情報を受信することが可能である。ゲートウェイ１０１は、第１のチャネルが輻輳していると判断した場合、送信チャネルを第１のチャネルから別のチャネルに切り換えることをノード装置１１１〜１４３のうち少なくとも一部に対して命令するための切り換え命令情報を生成して送信する。無線通信システム内のノード装置１１１〜１４３の各々は、切り換え命令情報をゲートウェイ１０１から受信し、かつゲートウェイ１０１からのホップ数が１であると認識した第１の場合には、第１のチャネル以外の第２のチャネルを介してゲートウェイ１０１宛の情報を送信する。しかし、ノード装置１１１〜１４３の各々は、第１の場合以外の第２の場合には、第１のチャネルを介してゲートウェイ１０１宛の情報を送信する。
2012042624.tif 000002
【特許請求の範囲】
【請求項１】
制御装置と複数のノード装置を備える無線通信システムであって、
前記制御装置は、
複数の無線周波数チャネルから同時に情報を受信することが可能なように構成された第１の受信部と、
前記複数の無線周波数チャネルのうちの第１のチャネルが輻輳しているか否かを判断する判断部と
前記第１のチャネルが輻輳していると前記判断部が判断した場合、送信チャネルを前記第１のチャネルから別のチャネルに切り換えることを前記複数のノード装置のうち少なくとも一部に対して命令するための切り換え命令情報を生成する制御部と、
前記切り換え命令情報を送信する第１の送信部
を備え、
前記複数のノード装置の各々は、
前記制御装置または他のノード装置から前記第１のチャネルを介して情報を受信する第２の受信部と、
前記複数の無線周波数チャネルのうち前記送信チャネルとして指定されるチャネルを介して前記制御装置宛の情報を送信する第２の送信部と、
前記制御装置からのホップ数が１か否かを認識する認識部と、
前記第２の受信部が前記切り換え命令情報を前記制御装置から受信し、かつ、前記ホップ数は１であると前記認識部が認識した第１の場合には、前記第１のチャネル以外の第２のチャネルを選んで前記第２のチャネルを前記送信チャネルとして前記第２の送信部に指定し、前記第１の場合以外の第２の場合には、前記第１のチャネルを前記送信チャネルとして前記第２の送信部に指定するチャネル切り換え部
を備えることを特徴とする通信システム。
【請求項２】
前記判断部は、
前記複数のノード装置から前記制御装置への前記情報の送信についての予め決められたスケジュールと、前記複数のノード装置から前記制御装置へ前記情報が実際に送信された時刻との差、
前記複数のノード装置のうち、前記制御装置へ前記情報を送信することを前記制御装置に登録したノード装置の数、
前記制御装置における受信電力と、前記複数のノード装置から前記制御装置へ送信される前記情報の誤り率との組み合わせ
の少なくとも１つを利用して、前記第１のチャネルが輻輳しているか否かを判断する
ことを特徴とする請求項１に記載の通信システム。
【請求項３】
前記第１の場合において、前記チャネル切り換え部は、前記第２の送信部からの送信のたびに、
ランダムに、
ラウンドロビンアルゴリズムにしたがって、または
前記複数の無線周波数チャネルそれぞれの使用状況にしたがって、
前記複数の無線周波数チャネルのうちの１つを、新たに前記第２のチャネルとして選びなおす
ことを特徴とする請求項１または２に記載の通信システム。
【請求項４】
前記切り換え命令情報は、前記第２のチャネルを指定するチャネル指定情報を含み、
前記チャネル切り換え部は、前記チャネル指定情報にしたがって前記第２のチャネルを選ぶ
ことを特徴とする請求項１または２に記載の通信システム。
【請求項５】
前記切り換え命令情報は、前記複数の無線周波数チャネルのうちで前記第２のチャネルの候補からは除外される禁止チャネルを指定する禁止情報を含み、
前記チャネル切り換え部は、前記禁止情報にしたがって、前記禁止チャネル以外のチャネルを前記第２のチャネルとして選ぶ
ことを特徴とする請求項１から３のいずれか１項に記載の通信システム。
【請求項６】
前記判断部は、前記第１のチャネルが輻輳しているか否かの判断を繰り返し行い、
前記第１のチャネルが輻輳していると前記判断部が一旦判断した後に行う新たな判断において、輻輳が解消したと前記判断部が判断した場合に、前記制御部は、前記送信チャネルを前記第１のチャネル戻すことを命令する復帰命令情報を生成し、
前記第１の送信部は前記復帰命令情報も送信し、
前記複数のノード装置の各々の前記チャネル切り換え部は、前記第２の受信部が前記復帰命令情報を受信した場合、前記第２の送信部に対して指定する前記送信チャネルを、前記第１のチャネルに戻す
ことを特徴とする請求項１から５のいずれか１項に記載の通信システム。
【請求項７】
前記切り換え命令情報は、前記制御装置からの前記ホップ数が１である１台以上のノード装置をそれぞれ識別する識別情報を含み、
前記第２の受信部が前記切り換え命令情報を受信したとき、前記認識部は、前記認識部を備える前記ノード装置が前記識別情報により識別されるならば当該ノード装置は前記制御装置からの前記ホップ数が１であると認識する
ことを特徴とする請求項１から６のいずれか１項に記載の通信システム。
【請求項８】
複数のノード装置を含む無線通信システムにおいて用いられる制御装置であって、
複数の無線周波数チャネルから同時に情報を受信することが可能なように構成された受信部と、
前記複数の無線周波数チャネルのうちの第１のチャネルが輻輳しているか否かを判断する判断部と、
前記第１のチャネルが輻輳していると前記判断部が判断した場合に、前記複数のノード装置のうち前記制御装置からのホップ数が１である１台以上のノード装置に対して、前記制御装置に情報を送信するときに使用する送信チャネルを前記第１のチャネルから別のチャネルに切り換えるように命令するための、切り換え命令情報を生成する制御部と、
前記切り換え命令情報を送信する送信部
を備えることを特徴とする制御装置。
【請求項９】
前記受信部が受信した情報を用いて、前記ホップ数が１である前記１台以上のノード装置を認識し、認識した前記１台以上のノード装置を登録する登録処理部をさらに備え、
前記制御部は、前記切り換え命令情報に、前記登録処理部が登録した前記１台以上のノード装置をそれぞれ識別する識別情報を含める
ことを特徴とする請求項８に記載の制御装置。
【請求項１０】
ノード装置であって、
制御装置または他のノード装置から無線通信により第１のチャネルを介して情報を受信する受信部と、
前記第１のチャネルを含む複数の無線周波数チャネルのうち送信チャネルとして指定されるチャネルを介して前記制御装置宛の情報を送信する送信部と、
前記制御装置からのホップ数が１か否かを認識する認識部と、
前記送信チャネルを前記第１のチャネルから別のチャネルに切り換えることを命令する切り換え命令情報を前記制御装置から前記受信部が受信し、かつ、前記ホップ数は１であると前記認識部が認識した第１の場合には、前記送信部からの送信のたびに、前記第１のチャネル以外の第２のチャネルを新たに選んで、前記第２のチャネルを前記送信チャネルとして前記第２の送信部に指定し、前記第１の場合以外の第２の場合には、前記第１のチャネルを前記送信チャネルとして前記第２の送信部に指定するチャネル切り換え部
を備えることを特徴とするノード装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は無線通信技術に関する。
【背景技術】
【０００２】
複数の通信ノード装置を含む無線通信ネットワークにおけるマルチホップのデータ送信に関する様々な技術が研究されている。【０００３】
例えば、アドホックネットワークのノード間でデータ・パケットを伝送するための経路を選択する方法として、次のような方法が提案されている。当該方法は、ネットワークにおけるノード間のリンク安定性を表した基準を決定するステップと、送信元ノードと宛先ノードとの間の複数の候補伝送経路を生成する経路発見手順を開始するステップを含む。当該方法は、さらに、各候補経路に関連したノードの基準を利用して、複数の候補経路の中から伝送経路を選択するステップを含む。上記基準は、さらに、リンク時間（すなわち、ノードが近隣ノードとのリンクを持続する時間量である、リンク時間）と定義することが可能である。【０００４】
また、マルチホップ無線網において、アクセスポイントや収容可能な移動端末の数が増加した場合であっても、以下のような条件を満たすことを目的とした技術も提案されている。
・構成が簡単である。
・コストが大幅にアップすることがない。
・スループット特性の低下を防止して、通信性能を向上させることができる。
・通信性能の不公平性を解消することが可能である。【０００５】
具体的には、提案されている当該技術においては、複数の無線通信基地局間の無線通信では、１つの無線通信基地局における中継用の無線送信と中継用の無線受信とを、異なるインタフェースおよび周波数の異なったチャネルを用いて行う。そして、中継用の無線送信で使用するインタフェースにおけるチャネルは、受信する相手の無線通信基地局で使用する受信用インタフェースにおける周波数のチャネルに動的に合わせられる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−２２１７９０号公報
【特許文献２】特開２００８−１７２２８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ある種の無線通信システムでは、多数のノード装置が、ある１つの特定の装置宛に情報を送信する。すると、特定の装置から１ホップの範囲内では、通信が集中するので、輻輳が発生しやすい。【０００８】
また、特定の装置から１ホップの範囲内に第１と第２のノード装置があり、しかも第１と第２のノード装置は、互いが送信した無線信号を受信することができない場合がある。この場合、特定の装置を挟んで、第１と第２のノード装置の間に隠れ端末問題（hidden node problem）が発生し得る。第１と第２のノード装置の間の隠れ端末問題は、特定の装置から１ホップの範囲内での輻輳を発生または悪化させる原因となり得る。【０００９】
輻輳を防止または軽減する対策の１つは、複数の無線周波数チャネルの使用である。しかし、無線周波数チャネルは、有限のリソースである。よって、無線周波数チャネルを無制限に使用することは望ましくない。無線周波数チャネルを効率的に使用することが望ましい。【００１０】
そこで本発明は、無線通信システムにおいて、輻輳の軽減と無線周波数チャネルの効率的な使用の双方を実現することを目的とする。
【課題を解決するための手段】
【００１１】
一態様による通信システムは、制御装置と複数のノード装置を備える。
前記制御装置は、第１の受信部と判断部と制御部と第１の送信部を備える。第１の受信部は、複数の無線周波数チャネルから同時に情報を受信することが可能なように構成される。前記判断部は、前記複数の無線周波数チャネルのうちの第１のチャネルが輻輳しているか否かを判断する。前記制御部は、前記第１のチャネルが輻輳していると前記判断部が判断した場合、送信チャネルを前記第１のチャネルから別のチャネルに切り換えることを前記複数のノード装置のうち少なくとも一部に対して命令するための切り換え命令情報を生成する。前記第１の送信部は、前記切り換え命令情報を送信する。【００１２】
また、前記複数のノード装置の各々は、第２の受信部と第２の送信部と認識部とチャネル切り換え部を備える。前記第２の受信部は、前記制御装置または他のノード装置から前記第１のチャネルを介して情報を受信する。前記第２の送信部は、前記複数の無線周波数チャネルのうち前記送信チャネルとして指定されるチャネルを介して前記制御装置宛の情報を送信する。前記認識部は、前記制御装置からのホップ数が１か否かを認識する。前記チャネル切り換え部は、前記第２の受信部が前記切り換え命令情報を前記制御装置から受信し、かつ、前記ホップ数は１であると前記認識部が認識した第１の場合には、前記第１のチャネル以外の第２のチャネルを選んで前記第２のチャネルを前記送信チャネルとして前記第２の送信部に指定する。また、前記チャネル切り換え部は、前記第１の場合以外の第２の場合には、前記第１のチャネルを前記送信チャネルとして前記第２の送信部に指定する。
【発明の効果】
【００１３】
上記通信システム内の複数のノード装置の各々の第２の送信部が、第１のチャネルを介して制御装置宛の情報を送信すると、制御装置から１ホップの範囲内で、第１のチャネルが輻輳することがあり得る。【００１４】
輻輳が生じると、切り換え命令情報が生成されるので、制御装置からのホップ数が１の各ノード装置のチャネル切り換え部は、第１の場合の動作を行う。よって、制御装置からのホップ数が１の各ノード装置の第２の送信部は、制御装置宛の情報を第２のチャネルを介して送信するようになる。【００１５】
また、制御装置からのホップ数が１のノード装置が複数存在するとしても、上記のように、それらのノード装置各々のチャネル切り換え部がそれぞれ第２のチャネルを選ぶ。したがって、制御装置からのホップ数が１のノード装置が複数存在する場合、それらのノード装置それぞれにとっての第２のチャネルは必ずしも同じではない。【００１６】
異なる複数の第２のチャネルが使われることにより、複数の第２のチャネルに通信負荷が分散されるので、輻輳は軽減または解消される。また、制御装置からのホップ数が１のノード装置が、各々独立に第２のチャネルを選ぶことで、制御装置を挟んで起こり得る隠れ端末問題が解消することが多い。隠れ端末問題の解消は、輻輳の軽減または解消に寄与する。【００１７】
そして、上記通信システムによれば、制御装置の判断部が、第１のチャネルが輻輳していると判断しなければ、制御装置からのホップ数によらず各ノード装置のチャネル切り換え部は第２の場合の動作を行う。よって、輻輳が生じていない状況下で第１のチャネル以外のチャネルが必要以上に使用されることはなく、無線周波数チャネルの効率的な使用が実現される。
【図面の簡単な説明】
【００１８】
【図１】一実施形態における通信システムのネットワークトポロジ図である。
【図２】ゲートウェイの構成図である。
【図３】ノード装置の構成図である。
【図４】登録ノード情報の例を示す図である。
【図５】システムパラメタと輻輳情報の例を示す図である。
【図６】許容遅延時間について説明する図である。
【図７】送信モード情報、経路情報、スケジュール情報、個体情報、およびリンク情報の例を示す図である。
【図８】フレームの例を示す図（その１）である。
【図９】フレームの例を示す図（その２）である。
【図１０】ゲートウェイが行う処理のフローチャート（その１）である。
【図１１】ゲートウェイが行う処理のフローチャート（その２）である。
【図１２】ゲートウェイが行う処理のフローチャート（その３）である。
【図１３】ノード装置が行う処理のフローチャート（その１）である。
【図１４】ノード装置が行う処理のフローチャート（その２）である。
【図１５】ノード装置が行う処理のフローチャート（その３）である。
【図１６】ノード装置が行う処理のフローチャート（その４）である。
【図１７】ノード装置が行う処理のフローチャート（その５）である。
【発明を実施するための形態】
【００１９】
以下、実施形態について、図面を参照しながら詳細に説明する。説明の順序は次のとおりである。
【００２０】
まず、図１を参照して、一実施形態による通信システムの概要を説明する。次に、図２〜３を参照して、図１の通信システムに含まれるゲートウェイとノード装置それぞれの構成について説明する。その後、図４〜７を参照して、ゲートウェイとノード装置で使われる各種情報について説明する。さらに、図８〜９を参照して、通信システム内で送受信される各種フレームについて説明する。それから、図１０〜１７のフローチャートを参照して、ゲートウェイとノード装置の動作について説明する。最後に、図１〜１７に示した以外の実施形態についても説明する。
【００２１】
さて、図１は、一実施形態における通信システムのネットワークトポロジ図である。図１の通信システム１００は、１台のゲートウェイ１０１と複数のノード装置１１１〜１４３を含む無線通信システムである。ゲートウェイ１０１とノード装置１１１〜１４３により構築される図１のネットワークは、無線アドホックネットワークであってもよい。
【００２２】
ゲートウェイ１０１およびノード装置１１１〜１４３のそれぞれは、ネットワークトポロジにおけるノードに相当し、図１では円形で示されている。また、１ホップで通信しあうことの可能なノード間のリンクは、図１では実線または破線の直線により示されている。
【００２３】
具体的には、本実施形態の通信システム１００では、ゲートウェイ１０１が、ノード装置１１１〜１４３のそれぞれからデータを収集する。換言すれば、各ノード装置１１１〜１４３は、ゲートウェイ１０１宛のデータをそれぞれ送信する。図１の実線の直線は、データの収集に実際に使われるリンク（換言すれば、収集されるデータが経由する無線リンク）を示す。
【００２４】
例えば、ノード装置１１１が送信したデータは、直接ゲートウェイ１０１により受信される。また、ノード装置１２１が送信したデータは、ノード装置１１１により中継されてゲートウェイ１０１により受信される。したがって、図１では、ゲートウェイ１０１とノード装置１１１の間のリンクおよびノード装置１１１とノード装置１２１の間のリンクが、実線で表されている。
【００２５】
なお、収集されるデータは任意のデータでよい。例えば、各ノード装置１１１〜１４３は、センサと接続されていてもよく、センサが感知したデータをゲートウェイ１０１宛に送信してもよい。
【００２６】
また、通信システム１００内では、各種の制御情報も送信される。図１の破線の直線が示すリンクは、物理的には１ホップで通信しあうことのできるノード間のリンクであるが、データの収集には使われていないリンクである。
【００２７】
例えば、本実施形態では、ノード装置１２６は、物理的にゲートウェイ１０１と１ホップで通信しあうことができる通信可能エリア１０２の中にある。よって、ノード装置１２６は、ゲートウェイ１０１との間で制御情報（例えば後述のハローフレーム）を交換することができる。
【００２８】
しかし、ノード装置１２６は、制御情報以外のデータ（例えば上記のセンサが感知したデータ）をゲートウェイ１０１宛に送信するときは、直接ゲートウェイ１０１を宛先として指定しない。代わりに、ノード装置１２６は、最終的な宛先としてゲートウェイ１０１を指定するとともに、１ホップ目の直接的な宛先としてはノード装置１１３を指定して、データを送信する。そのため、ノード装置１２６から送信されたデータは、ノード装置１１３を経由してゲートウェイ１０１に届く。
【００２９】
したがって、図１においてノード装置１２６は、ノード装置１１３とは実線でつながれているが、ゲートウェイ１０１とは破線でつながれている。図１では、他のリンクも同様に、ゲートウェイ１０１を最終的な宛先とするデータの送信に実際に使われるか否かに応じて、実線または破線で示されている。
【００３０】
よって、図１によれば、ノード装置１１１〜１１３からは１ホップでデータがゲートウェイ１０１に届き、ノード装置１２１〜１２６からは２ホップでデータがゲートウェイ１０１に届く。また、ノード装置１３１〜１３９からは３ホップでデータがゲートウェイ１０１に届き、ノード装置１４１〜１４３からは４ホップでデータがゲートウェイ１０１に届く。
【００３１】
以下では説明の便宜上、通信システム１００内での最終的な宛先を「ＧＤ（Global Destination）」ともいい、１ホップ目の直接的な宛先を「ＬＤ（Local Destination）」ともいう。また、通信システム１００内でのおおもとの送信元を「ＧＳ（Global Source）」ともいい、隣接ノード装置間の１ホップの通信における送信元を「ＬＳ（Local Source）」ともいう。
【００３２】
例えば、ノード装置１２２からノード装置１１１を介してゲートウェイ１０１にデータがマルチホップ送信される場合、ＧＳは常にノード装置１２２でありＧＤは常にゲートウェイ１０１である。しかし、ＬＳとＬＤはホップごとに変化する。つまり、ノード装置１２２からノード装置１１１への送信では、ＬＳはノード装置１２２でありＬＤはノード装置１１１である。それに対し、ノード装置１１１からゲートウェイ１０１への送信では、ＬＳはノード装置１１１でありＬＤはゲートウェイ１０１である。
【００３３】
なお、図１における実線の直線の太さは、当該直線が示すリンクを介して送信されるデータの量を示す。データの量が多いほど、直線も太い。換言すれば、リンクの負荷が高いほど、直線も太い。
【００３４】
例えば、ノード装置１３３と１２３の間のリンクを示す直線よりも、ノード装置１２３と１１２の間のリンクを示す直線の方が太い。そして、ノード装置１２３と１１２の間のリンクを示す直線よりも、ノード装置１１２とゲートウェイ１０１の間のリンクを示す直線の方が太い。その理由は、次のとおりである。
【００３５】
ノード装置１３３がゲートウェイ１０１宛に送信するデータは、ノード装置１２３と１１２を経由してゲートウェイ１０１に届く。すなわち、ノード装置１２３は、データをノード装置１３３から受信し、ノード装置１１２に中継する。さらに、ノード装置１２３は、ノード装置１３４から受信したデータをノード装置１１２に中継する処理も行うし、ノード装置１２３自身がＧＳとなって、ゲートウェイ１０１をＧＤとするデータをノード装置１１２に送信する処理も行う。
【００３６】
したがって、ノード装置１３３と１２３の間のリンクを介して送信されるデータの量よりも、ノード装置１２３と１１２の間のリンクを介して送信されるデータの量の方が多い。よって、図１では、ノード装置１３３と１２３の間のリンクよりもノード装置１２３と１１２の間のリンクの方が、より太い直線で示されている。
【００３７】
同様に、ノード装置１２３と１１２の間のリンクを介して送信されるデータの量よりも、ノード装置１１２とゲートウェイ１０１の間のリンクを介して送信されるデータの量の方が多い。よって、ノード装置１２３と１１２の間のリンクよりもノード装置１１２とゲートウェイ１０１の間のリンクの方が、より太い直線で示されている。
【００３８】
以上のとおり、通信システム１００内の各ノード装置１１１〜１４３からゲートウェイ１０１がデータを収集する本実施形態では、ゲートウェイ１０１と、ゲートウェイ１０１から１ホップ目の各ノード装置１１１〜１１３との間のリンクの負荷が高い。したがって、通信システム１００内で最も輻輳が起きやすい箇所は、ゲートウェイ１０１と、ゲートウェイ１０１から１ホップ目の各ノード装置１１１〜１１３との間のリンクである。
【００３９】
また、ゲートウェイ１０１と、ゲートウェイ１０１から１ホップ目の各ノード装置１１１〜１１３との間のリンクでは、負荷の高さが直接的に輻輳を引き起こすおそれがあるだけでなく、隠れ端末問題に起因する輻輳が起こるおそれもある。
【００４０】
例えば、ノード装置１１１は、ノード装置１１３から送信される電波を受信することができない位置にある。そのため、ノード装置１１１は、ノード装置１１３がゲートウェイ１０１宛にデータを送信しているときに、ノード装置１１３とゲートウェイ１０１が通信中であると認識することができない。
【００４１】
したがって、ノード装置１１３がゲートウェイ１０１宛にデータを送信している最中に、ノード装置１１１がゲートウェイ１０１宛のデータの送信を始めてしまうことがあり得る。その結果、ゲートウェイ１０１においてコリジョンが生じることがあり得る。そして、コリジョンの結果として、データの再送が行われ、ゲートウェイ１０１とノード装置１１１の間のリンクの負荷、およびゲートウェイ１０１とノード装置１１３の間のリンクの負荷が、一層高まることがあり得る。
【００４２】
他方で、例えばゲートウェイ１０１から４ホップ目のノード装置１４１と、ゲートウェイ１０１から３ホップ目のノード装置１３８の間のリンクの負荷は低い。そのため、当該リンクでは輻輳が起きにくい。
【００４３】
本実施形態は、以上のような輻輳の起きやすさの違いに着目することで、通信が集中する範囲では複数の無線周波数チャネルに負荷を分散して輻輳を解消するとともに、上記範囲外では余計な無線周波数チャネルの消費を避けることを目的とする。なお、以下では「無線周波数チャネル」を単に「チャネル」という。
【００４４】
詳しくは後述するが、本実施形態では、通信システム１００内の各装置は、通常は、デフォルトチャネルとして予め決められた同じ１つのチャネルを用いて通信を行う。したがって、通信システム１００は、限られた資源であるチャネルを必要以上に使うことがなく、他の無線通信システムへの外乱となりにくい。
【００４５】
しかし、上記のとおり通信システム１００内では、輻輳の起きやすさが均一ではない。具体的には、ゲートウェイ１０１からのホップ数が１の範囲で特に輻輳が起こりやすい。
そこで、詳しくは後述するが、本実施形態では、ゲートウェイ１０１は、輻輳が生じたか否かを監視する。そして、ゲートウェイ１０１は、輻輳を検出すると、１ホップの範囲内にあるノード装置１１１〜１１３に対して、ゲートウェイ１０１へのデータの送信に使うチャネルを、デフォルトチャネルから別のチャネルに切り換えるよう命令する。
【００４６】
そして、ノード装置１１１〜１１３が命令にしたがってチャネルを切り換えることで、複数のチャネルに通信負荷が分散される。負荷分散の結果、輻輳は緩和または解消される。
【００４７】
なお、図１の例では、ゲートウェイ１０１から２ホップ目のノード装置１２６は、通信可能エリア１０２にあるので、ゲートウェイ１０１から送信される命令を受信することが可能である。しかし、ノード装置１２６は、「ノード装置１２６自身は、ゲートウェイ１０１から１ホップの範囲内ではない」と判断し、チャネルの切り換えを行わない。また、例えばノード装置１２３など、そもそも通信可能エリア１０２の外に位置するノード装置は、チャネルの切り換えを行わない。
【００４８】
よって、ゲートウェイ１０１以外のすべてのノード装置１１１〜１４３は、デフォルトチャネルでの通信を受信する受信機さえ備えていればよく、複数のチャネルからの受信のための複数の受信機を備える必要がない。そのため、本実施形態によれば、ゲートウェイ１０１以外のノード装置１１１〜１４３は、安価に製造することができる。
【００４９】
そして、通信システム１００内では、ゲートウェイ１０１よりも、ゲートウェイ１０１以外のノード装置１１１〜１４３の方が、圧倒的に数が多い。よって、ゲートウェイ１０１以外のノード装置１１１〜１４３の製造コストの削減は、通信システム１００全体の初期コストの削減に大いに貢献する。
【００５０】
また、ゲートウェイ１０１は、輻輳の解消を検出したら、１ホップ目のノード装置１１１〜１１３に対して、ゲートウェイ１０１への送信チャネルをデフォルトチャネルに戻すよう命令することが好ましい。なぜなら、輻輳が生じていない状況下では、有限のリソースであるチャネルの使用を抑制し、図１には不図示の外部の無線システムに与える外乱を抑制することが好ましいからである。
【００５１】
なお、図１に例示するように、ゲートウェイ１０１の近傍に干渉源２０１が存在することもあり得る。干渉源２０１は、例えば他の無線通信システムの端末機かもしれないし、電子レンジなどの装置かもしれない。
【００５２】
そして、例えば、干渉源２０１からの干渉の影響を受ける干渉エリア２０２に、ゲートウェイ１０１、ノード装置１１２、およびノード装置１１３が含まれることもあり得る。例えばこのような干渉源２０１の存在を検知した場合、ゲートウェイ１０１は、ノード装置１１１〜１１３へのチャネル切り換えの命令を発するに際して、干渉源２０１からの電波の周波数を避けるようにノード装置１１１〜１１３に通知することもできる。
【００５３】
さて、図２は、ゲートウェイ１０１の構成図である。また、図２はゲートウェイ１０１と他の装置との接続も示している。
図２に示すように、ゲートウェイ１０１は、図１に示した通信システム１００のネットワークとは独立したネットワーク２１１にも接続されている。ネットワーク２１１は、例えば、有線ＬＡＮ（Local Area Network）、無線ＬＡＮ、ＷＡＮ（Wide Area Network）、インターネット、またはそれらの組み合わせである。
【００５４】
ゲートウェイ１０１は、ネットワーク２１１を介してＮＴＰ（Network Time Protocol）サーバ２１２およびデータサーバ２１３と接続されている。なお、実施形態によっては、ゲートウェイ１０１は、ＮＴＰサーバ２１２を兼ねることもでき、データサーバ２１３を兼ねることもできる。
【００５５】
ゲートウェイ１０１は、ＮＴＰサーバ２１２と通信することで、時刻同期処理を行う。また、ゲートウェイ１０１は、通信システム１００内のノード装置１１１〜１４３から収集したデータを、データサーバ２１３に送信する。データサーバ２１３はゲートウェイ１０１から受信したデータを蓄積し、蓄積したデータを用いて、実施形態に応じた適宜の処理を行う。
【００５６】
また、ゲートウェイ１０１は、通信システム１００内のノード装置との通信のためのハードウェアとして、アンテナ３０１、スイッチ３０２、送信機３０３、分配機３０４、および異なる複数のチャネルに対応する複数の受信機３０５Ａ〜３０５Ｄを有する。ゲートウェイ１０１はさらに、各種処理を実行するＣＰＵ（Central Processing Unit）３０６と、各種情報を記憶するメモリ３０７と、ネットワーク２１１を介した通信のためのネットワークＩ／Ｆ（interface）３０８を有する。
【００５７】
本実施形態のゲートウェイ１０１は、時分割複信（Time Division Duplex；ＴＤＤ）方式により、送信と受信を時間に応じて切り換える。具体的には、アンテナ３０１は送信と受信の双方に使われる。また、スイッチ３０２は送信と受信を切り換える装置である。すなわち、スイッチ３０２は、時間に応じて、ゲートウェイ１０１が送信を行うことができるように送信機３０３とアンテナ３０１を接続するか、または、ゲートウェイ１０１が受信を行うことができるように分配機３０４とアンテナ３０１を接続する。
【００５８】
以下では説明の便宜上、通信システム１００において使われる４つのチャネルをチャネルＣｈＡ〜ＣｈＤとし、チャネルＣｈＡがデフォルトチャネルであるとする。
送信機３０３は、チャネルＣｈＡによる送信を行うための装置であり、変調器やＤ／Ａ（Digital-to-Analog）変換器などを含む。また、分配機３０４は、アンテナ３０１で受信された信号をチャネルごとに分離する装置である。
【００５９】
受信機３０５Ａは、分配機３０４で分離されたチャネルＣｈＡの信号を受信する装置であり、復調器やＡ／Ｄ（Analog-to-Digital）変換器などを含む。同様に、受信機３０５Ｂは、分配機３０４で分離されたチャネルＣｈＢの信号を受信する装置であり、復調器やＡ／Ｄ変換器などを含む。
【００６０】
また、受信機３０５Ｃは、分配機３０４で分離されたチャネルＣｈＣの信号を受信する装置であり、復調器やＡ／Ｄ変換器などを含む。そして、受信機３０５Ｄは、分配機３０４で分離されたチャネルＣｈＤの信号を受信する装置であり、復調器やＡ／Ｄ変換器などを含む。
【００６１】
ゲートウェイ１０１は、上記のように分配機３０４と受信機３０５Ａ〜３０５Ｄを備えているので、４つのチャネルＣｈＡ〜ＣｈＤの信号を同時に受信することが可能である。また、本実施形態では上記のようにゲートウェイ１０１が４つの受信機３０５Ａ〜３０５Ｄを有するが、ゲートウェイ１０１が有する受信機の数は、実施形態に応じて任意である。
【００６２】
メモリ３０７は、ワークエリアとして使われるＲＡＭ（Random Access Memory）と、不揮発性記憶装置を含む。不揮発性記憶装置としては、例えば、ＲＯＭ（Read Only Memory）またはフラッシュメモリなどが利用可能である。また、不揮発性記憶装置としては、コンピュータ読み取り可能な記憶媒体と、記憶媒体の駆動装置との組み合わせも利用可能である。記憶媒体の例は、半導体メモリカード、ハードディスクなどの磁気ディスク、ＣＤ（Compact Disc）やＤＶＤ（Digital Versatile Disk）などの光ディスク、および光磁気ディスクである。
【００６３】
メモリ３０７は、ＣＰＵ３０６が実行するプログラム３１１を格納する。具体的には、プログラム３１１は、不揮発性記憶装置に格納される。プログラム３１１は、不揮発性記憶装置にプレインストールされていてもよいし、ネットワーク２１１から不揮発性記憶装置にダウンロードされてもよい。そして、プログラム３１１は、ＣＰＵ３０６によって不揮発性記憶装置から読み出され、ＲＡＭ上にロードされ、実行される。
【００６４】
また、プログラム３１１は、例えば、ＣＰＵ３０６がゲートウェイ１０１を制御するためのファームウェアプログラムである。ＣＰＵ３０６は、プログラム３１１を実行することで、図２に示した後述の各部として動作する。
【００６５】
また、メモリ３０７の一部（例えばＲＡＭの一部）は、受信バッファ領域３１２として利用される。すなわち、受信機３０５Ａ〜３０５Ｄは、それぞれ受信したフレームを受信バッファ領域３１２に出力する。なおここで「フレーム」とは、本実施形態で使われるＰＤＵ（Protocol Data Unit）のことである。
【００６６】
本実施形態では、情報が、あるプロトコルのＰＤＵの形式で通信システム１００内で送受信される。上記の「あるプロトコル」は、実施形態に応じて任意に定義されてよい。フレームの形式の具体例は図８〜９とともに後述する。
【００６７】
また、本実施形態のフレームが定義されるレイヤよりも下位のレイヤのプロトコルとしては、公知のプロトコルが利用可能である。例えば、物理層とＭＡＣ（Media Access Control）副層のプロトコルとして、ＩＥＥＥ（Institute of Electrical and Electronics Engineers）８０２．１１シリーズまたは８０２．１５シリーズのプロトコルが利用されてもよい。
【００６８】
メモリ３０７は、さらに、図５に例示されるシステムパラメタ３１３、図４に例示される登録ノード情報３１４、および図５に例示される輻輳情報３１５を格納する。システムパラメタ３１３は、メモリ３０７内の不揮発性記憶装置に格納され、必要に応じてＲＡＭ上にコピーされる。登録ノード情報３１４と輻輳情報３１５は、ＲＡＭ上に格納されるのが好ましい。
【００６９】
システムパラメタ３１３は、通信システム１００の動作を規定する定数などを含む。登録ノード情報３１４は、ゲートウェイ１０１にデータを送信する通信システム１００内のノード装置に関する情報である。輻輳情報３１５は、ゲートウェイ１０１から１ホップの範囲内での輻輳をゲートウェイ１０１が検出したか否かを示す情報である。
【００７０】
詳しくは後述するが、ゲートウェイ１０１が輻輳を検出しない限り、ノード装置１１１〜１１３がデフォルトチャネルＣｈＡ以外のチャネルを用いてフレームを送信することはない。よって、ＣＰＵ３０６は、輻輳情報３１５を参照し、輻輳が検出されていないことを輻輳情報３１５が示す場合には受信機３０５Ｂ〜３０５Ｄへの電力供給を止めてもよい。それにより、ゲートウェイ１０１の省電力化が実現される。
【００７１】
さて、ＣＰＵ３０６は、プログラム３１１を実行することにより、受信処理部３２１として動作する。図２に示すように、受信処理部３２１は、タイプ判断部３２２とＲＳＳＩ（Received Signal Strength Indicator）計算部３２３とＦＣＳ（Frame Check Sequence）チェック部３２４と受信時刻取得部３２５を含む。
【００７２】
また、ＣＰＵ３０６は、プログラム３１１を実行することにより、データ処理部３２６、登録処理部３２７、輻輳判断部３２８、命令発行部３２９、同期処理部３３０、およびハローフレーム生成部３３２としても動作する。さらに、ＣＰＵ３０６は、時刻を表すタイマ３３１も、ハードウェア回路として含んでいる。
【００７３】
具体的には、受信機３０５Ａ〜３０５Ｄは、フレームを受信すると、受信したフレームを受信バッファ領域３１２に出力するとともに、フレームの受信を受信処理部３２１に通知する。受信処理部３２１は、通知を契機として各種の処理を行う。なお、受信機３０５Ａ〜３０５Ｄから受信処理部３２１への通知は、受信バッファ領域３１２内のフレームの先頭アドレスを含むので、受信処理部３２１は必要に応じてフレーム内の適宜のフィールドの値を受信バッファ領域３１２から読み出すことができる。
【００７４】
すなわち、タイプ判断部３２２は、受信されたフレームのタイプを受信バッファ領域３１２から読み出す。そして、タイプ判断部３２２は、タイプに応じた処理を行うよう、ＲＳＳＩ計算部３２３、ＦＣＳチェック部３２４、受信時刻取得部３２５、データ処理部３２６および登録処理部３２７に要求する。本実施形態で使われるタイプの例は、図８〜９とともに後述する。
【００７５】
また、ＲＳＳＩ計算部３２３は、タイプ判断部３２２からの要求を受けると、ＲＳＳＩを計算し、計算したＲＳＳＩを輻輳判断部３２８に出力する。ＲＳＳＩ計算部３２３は、例えば、受信電力を示すパラメタを受信機３０５Ａ〜３０５Ｄから受け取ってＲＳＳＩを計算することができる。ＲＳＳＩの具体的な計算方法は実施形態に応じて任意であり、ＲＳＳＩ計算部３２３はＲＳＳＩの公知の計算方法を利用することもできる。
【００７６】
ＦＣＳチェック部３２４は、タイプ判断部３２２からの要求を受けると、受信バッファ領域３１２からフレームを読み出して、ＦＣＳの計算に用いられる各フィールドのビット列からＦＣＳを計算する。そして、ＦＣＳチェック部３２４は、読み出したフレームに含まれるＦＣＳフィールドの値と、計算したＦＣＳの値を比較し、２つの値が一致するか否かを判断する。
【００７７】
２つの値が一致する場合、受信されたフレームは、エラーを含まないものと見なされる。逆に、２つの値が一致しない場合、受信されたフレームは、ビット反転などのエラーを含む。そこで、ＦＣＳチェック部３２４は、２つの値が一致するか否かの判断結果を、データ処理部３２６に出力する。また、ＦＣＳチェック部３２４は、最近受信された複数のフレームにおける誤り率を計算し、計算した誤り率を輻輳判断部３２８に出力する。
【００７８】
受信時刻取得部３２５は、タイプ判断部３２２からの要求を受けると、タイマ３３１を参照して現在時刻を取得する。取得された現在時刻は、本実施形態では近似的にフレームの受信時刻と見なされる。そして、受信時刻取得部３２５は、取得した受信時刻を、データ処理部３２６と登録処理部３２７と輻輳判断部３２８に出力する。
【００７９】
データ処理部３２６は、タイプ判断部３２２からの要求を受けると、受信されたフレームに含まれるデータを処理する。
例えば、データ処理部３２６は、ＦＣＳチェック部３２４から出力された判断結果から「エラーを含まない」と確認されたフレームを、受信バッファ領域３１２から読み出してもよい。そして、データ処理部３２６は、読み出したフレームのデータを、必要に応じて加工して、ネットワークＩ／Ｆ３０８とネットワーク２１１を介してデータサーバ２１３に送信してもよい。上記の加工の例は、受信時刻取得部３２５から出力された受信時刻の追加、フォーマット変換、圧縮、暗号化などである。
【００８０】
また、ＦＣＳチェック部３２４から出力された判断結果が、「受信されたフレームはエラーを含む」と示す場合は、データ処理部３２６は、受信されたフレームを受信バッファ領域３１２から削除してもよい。また、受信されたフレームがエラーを含む場合、実施形態によっては、データ処理部３２６は、フレームの再送を要求するための制御フレームを生成し、送信機３０３を介して制御フレームを送信してもよい。
【００８１】
また、登録処理部３２７は、タイプ判断部３２２からの要求を受けると、受信されたフレームのＧＳを示す値を受信バッファ領域３１２から読み出す。そして、登録処理部３２７は、ＧＳを示す値と、受信時刻取得部３２５から出力された受信時刻とを対応づけて登録ノード情報３１４に記録する。
【００８２】
また、輻輳判断部３２８は、ＲＳＳＩ計算部３２３、ＦＣＳチェック部３２４、および受信時刻取得部３２５それぞれからの出力と、システムパラメタ３１３とから、ゲートウェイ１０１からのホップ数が１の範囲内で輻輳が生じているか否かを判断する。輻輳判断部３２８による判断の詳細は、後述の図１０〜１２のフローチャートとともに説明する。輻輳判断部３２８は、判断結果を輻輳情報３１５に上書きする。
【００８３】
また、輻輳判断部３２８は、輻輳を検出した場合は、輻輳の検出を命令発行部３２９に通知する。すると、命令発行部３２９は、ゲートウェイ１０１から１ホップの範囲内にあるノード装置（図１の例ではノード装置１１１〜１１３）に対して、ゲートウェイ１０１への送信チャネルを切り換えるように命令するための切り換え命令情報を生成する。切り換え命令情報も、具体的にはフレームの形にフォーマットされる。なお、切り換え命令情報の生成にあたり、命令発行部３２９は、システムパラメタ３１３を参照してもよい。
【００８４】
命令発行部３２９は、切り換え命令情報のフレームを、送信機３０３に出力する。すると、切り換え命令情報のフレームは送信機３０３からスイッチ３０２とアンテナ３０１を介して送信され、通信可能エリア１０２内の各ノード装置１１１〜１１３、１２６に受信される。
【００８５】
また、詳しくは後述するが、本実施形態では、輻輳判断部３２８が時刻に基づく判断を行う。そのため、本実施形態では、通信システム１００内の各装置の時刻を同期させるための処理が行われる。
【００８６】
具体的には、同期処理部３３０は、システムパラメタ３１３に定められたスケジュールと、タイマ３３１が示す現在時刻にしたがって、ネットワークＩ／Ｆ３０８とネットワーク２１１を介してＮＴＰサーバ２１２にアクセスする。そして、同期処理部３３０は、タイマ３３１が示す時刻をＮＴＰにしたがって修正する。
【００８７】
また、同期処理部３３０は、タイマ３３１の修正後、通信システム１００内での同期のためのフレーム（以下、「同期フレーム」という）を生成し、送信機３０３に出力する。すると、同期フレームは送信機３０３からスイッチ３０２とアンテナ３０１を介して送信される。後述のように、通信システム１００内での同期は、同期フレームを用いて実現される。なお、同期フレームには、修正後のタイマ３３１が示す時刻に基づく時刻情報が含まれる。
【００８８】
また、フレームのタイプについて詳しくは後述するが、本実施形態では、「ハローフレーム」と呼ばれるタイプの一種の制御フレームが使われる。本実施形態でハローフレームが果たす機能の１つは、通信システム１００内で互いに１ホップで直接通信しあうことの可能な装置（すなわち隣接する装置）の認識を可能にすることである。また、ハローフレームが果たす別の機能は、ゲートウェイ１０１からのホップ数の認識を可能にすることである。
【００８９】
ハローフレーム生成部３３２は、システムパラメタ３１３に定められたスケジュールと、タイマ３３１が示す現在時刻にしたがって、ハローフレームを生成し、送信機３０３に出力する。すると、送信機３０３は、スイッチ３０２とアンテナ３０１を介してハローフレームを送信する。
【００９０】
なお、受信処理部３２１、データ処理部３２６、登録処理部３２７、輻輳判断部３２８、命令発行部３２９、同期処理部３３０およびハローフレーム生成部３３２の一部または全部は、ＣＰＵ３０６の代わりにハードウェア回路により実現されてもよい。ハードウェア回路としては、例えば、ＡＳＩＣ（Application Specific Integrated Circuit）が使われてもよいし、ＦＰＧＡ（Field Programmable Gate Array）などのリコンフィギュラブル回路が使われてもよい。
【００９１】
また、ゲートウェイ１０１は、不図示のＲＴＣ（Real Time Clock）を含んでいてもよい。ＲＴＣの示す時刻は、例えばゲートウェイ１０１の電源が切られるときに、タイマ３３１が示す時刻に基づいて、同期処理部３３０により修正されてもよい。
【００９２】
さて、図３は、図１の通信システム１００に含まれる各ノード装置の構成図である。本実施形態では、図１のノード装置１１１〜１４３の各々は、図３のノード装置４００と同様に構成されている。
【００９３】
図３に示すように、ノード装置４００は、アンテナ４０１、スイッチ４０２、送信機４０３、受信機４０４、ＣＰＵ４０５、およびメモリ４０６を有する。
本実施形態のノード装置４００は、ＴＤＤ方式により、送信と受信を時間に応じて切り換える。具体的には、アンテナ４０１は送信と受信の双方に使われる。また、スイッチ４０２は、時間に応じて、ノード装置４００が送信を行うことができるように送信機４０３とアンテナ４０１を接続するか、または、ノード装置４００が受信を行うことができるように受信機４０４とアンテナ４０１を接続する。
【００９４】
送信機４０３は、指定された送信チャネルによる送信を行うための装置であり、変調器やＤ／Ａ変換器などを含む。送信チャネルとして指定可能なチャネルは、本実施形態では、上述のチャネルＣｈＡ〜ＣｈＤである。送信チャネルの指定は、後述のチャネル指定部４２５により行われる。つまり、送信機４０３は、ファームウェアによるチャネル変更が可能な送信機である。
【００９５】
また、受信機４０４は、デフォルトチャネルＣｈＡの信号を受信する装置であり、復調器やＡ／Ｄ変換器などを含む。
メモリ４０６は、ワークエリアとして使われるＲＡＭと、不揮発性記憶装置を含む。不揮発性記憶装置としては、例えば、ＲＯＭまたはフラッシュメモリなどが利用可能である。また、不揮発性記憶装置としては、コンピュータ読み取り可能な記憶媒体と、記憶媒体の駆動装置との組み合わせも利用可能である。記憶媒体の例は、半導体メモリカード、ハードディスクなどの磁気ディスク、ＣＤやＤＶＤなどの光ディスク、および光磁気ディスクである。
【００９６】
メモリ４０６の一部（例えばＲＡＭの一部）は、送受信バッファ領域４１１として利用される。すなわち、受信機４０４は、受信したフレームを送受信バッファ領域４１１に出力する。また、ＣＰＵ４０５により実現される後述の各部は、送信対象のフレームを生成し、生成したフレームを送受信バッファ領域４１１に出力する。そして、送信機４０３が送受信バッファ領域４１１からフレームを読み出し、スイッチ４０２とアンテナ４０１を介してフレームを送信する。
【００９７】
さらに、メモリ４０６は、送信モード情報４１２、ホップ数情報４１３を含む経路情報４１４、スケジュール情報４１５、個体情報４１６、およびリンク情報４１７を格納する。なお、スケジュール情報４１５と個体情報４１６は、メモリ４０６内の不揮発性記憶装置に格納され、必要に応じてＲＡＭ上にコピーされる。また、送信モード情報４１２、経路情報４１４、およびリンク情報４１７は、ＲＡＭ上に格納されるのが好ましい。メモリ４０６が格納する各種情報の具体例は図７とともに後述するが、情報の概要を説明すれば下記のとおりである。
【００９８】
送信モード情報４１２は、ノード装置４００の「送信モード」を示す。本実施形態では、送信モードは、送信チャネルをデフォルトチャネルＣｈＡに固定する「通常モード」か、送信チャネルをゲートウェイ１０１へのフレームの送信のたびに選びなおす「輻輳モード」のいずれかである。
【００９９】
なお、「輻輳モード」の場合であっても、ゲートウェイ１０１以外の他のノード装置へのフレームの送信では、デフォルトチャネルＣｈＡが使われる。また、「輻輳モード」の場合であっても、マルチホップ送信の対象ではない各種制御フレームの送信では、デフォルトチャネルＣｈＡが使われる。
【０１００】
ホップ数情報４１３は、ゲートウェイ１０１とノード装置４００の間のホップ数が１であるか否かを、ノード装置４００が認識するための情報である。実施形態に応じて、ホップ数情報４１３は、ホップ数を示す数値そのものであってもよいし、ホップ数が１であるか否かを直接的または間接的に示す情報であってもよい。
【０１０１】
経路情報４１４は、ノード装置４００からゲートウェイ１０１への経路の少なくとも一部を管理するための情報である。なお、「経路の少なくとも一部」とは、具体的には、ノード装置４００からゲートウェイ１０１への経路のうち、ノード装置４００から、ノード装置４００に隣接する隣接ノード装置までのリンクである。
【０１０２】
例えば、ノード装置４００が図１のノード装置１１２の場合、ＧＤであるゲートウェイ１０１自体もノード装置１１２に隣接する。よって、経路情報４１４が表す上記の「経路の少なくとも一部」は、例えば、ノード装置１１２から、ノード装置１１２に隣接するゲートウェイ１０１へのリンクである。
【０１０３】
そして、当該リンクを含む経路上での、ゲートウェイ１０１とノード装置１１２の間のホップ数は１なので、経路情報４１４に含まれるホップ数情報４１３は、「ホップ数が１である」旨を示す。このように、ゲートウェイ１０１までのホップ数が１の場合、ＧＤとＬＤは一致する。
【０１０４】
また、ノード装置４００が図１のノード装置１２３の場合、経路情報４１４が表す上記の「経路の少なくとも一部」は、例えば、ノード装置１２３から、ノード装置１２３に隣接するノード装置１１２へのリンクである。そして、当該リンクを含む経路上での、ゲートウェイ１０１とノード装置１２３の間のホップ数は２なので、経路情報４１４に含まれるホップ数情報４１３は、「ホップ数が１ではない」旨を示す。
【０１０５】
スケジュール情報４１５は、ノード装置４００が各タイプのフレームを送信するスケジュールを示す。また、個体情報４１６は、ノード装置４００に固有の、ノード装置４００を識別する情報である。
【０１０６】
リンク情報４１７は、通信システム１００内においてノード装置４００に隣接する他の装置の識別情報を含む。例えば、ノード装置４００が図１のノード装置１２３の場合、ノード装置１２３にはノード装置１１１、１１２、１２２、１３３および１３４が隣接している。よって、ノード装置１２３のメモリ４０６には、ノード装置１１１、１１２、１２２、１３３および１３４の識別情報を含むリンク情報４１７が格納される。
【０１０７】
さて、メモリ４０６は、上記の各種情報のほかに、さらに、ＣＰＵ４０５が実行するプログラム４１８を格納する。具体的には、プログラム４１８は、不揮発性記憶装置に格納される。プログラム４１８は、不揮発性記憶装置にプレインストールされていてもよいし、通信システム１００のネットワークを介して不揮発性記憶装置にダウンロードされてもよい。そして、プログラム４１８は、ＣＰＵ４０５によって不揮発性記憶装置から読み出され、ＲＡＭ上にロードされ、実行される。
【０１０８】
また、プログラム４１８は、例えば、ＣＰＵ４０５がノード装置４００を制御するためのファームウェアプログラムである。ＣＰＵ４０５は、プログラム４１８を実行することで、以下に説明するように図３の各部として動作する。
【０１０９】
すなわち、ＣＰＵ４０５は、プログラム４１８を実行することにより、タイプ判断部４２１、干渉検出部４２２およびチャネル切り換え部４２３として動作する。チャネル切り換え部４２３は、モード変更部４２４とチャネル指定部４２５を含む。
【０１１０】
また、ＣＰＵ４０５は、プログラム４１８を実行することにより同期処理部４２６としても動作する。そして、ＣＰＵ４０５は、同期処理部４２６が時刻の修正を行う対象のタイマ４２７も、ハードウェア回路として含んでいる。
【０１１１】
さらに、ＣＰＵ４０５は、プログラム４１８を実行することにより、ホップ数認識部４２８、ハローフレーム生成部４２９、転送処理部４３０、データ処理部４３１、登録要求部４３２、およびリンク管理部４３３としても動作する。
【０１１２】
具体的には、受信機４０４は、フレームを受信すると、受信したフレームを送受信バッファ領域４１１に出力し、フレームの受信をタイプ判断部４２１に通知する。また、受信機４０４からタイプ判断部４２１への通知は、送受信バッファ領域４１１内のフレームの先頭アドレスを含む。よって、タイプ判断部４２１およびタイプ判断部４２１からの要求を受ける後述の各部は、必要に応じてフレーム内の適宜のフィールドの値を送受信バッファ領域４１１から読み出すことができる。
【０１１３】
すなわち、タイプ判断部４２１は、受信されたフレームのタイプを送受信バッファ領域４１１から読み出す。そして、タイプ判断部４２１は、タイプに応じて、モード変更部４２４、同期処理部４２６、ホップ数認識部４２８、転送処理部４３０またはリンク管理部４３３に、タイプに応じた処理を行うよう要求する。なお、タイプ判断部４２１は、要求とあわせて、受信されたフレームの送受信バッファ領域４１１内での先頭アドレスも、モード変更部４２４、同期処理部４２６、ホップ数認識部４２８、転送処理部４３０またはリンク管理部４３３に通知する。
【０１１４】
ところで、上記のとおりノード装置４００の受信機４０４は、デフォルトチャネルＣｈＡを介したフレームの受信さえできればよく、他のチャネルＣｈＢ〜ＣｈＤを介して送信されるフレームを受信する必要はない。しかし、受信機４０４が、チャネルＣｈＢ〜ＣｈＤの受信電力を検出する機能をさらに備えていてもよい。なお、受信電力の検出だけならば、フレームを受信するよりも簡素な回路で実現することができる。
【０１１５】
図３の干渉検出部４２２はなくてもよい。しかし、受信機４０４が、チャネルＣｈＢ〜ＣｈＤの受信電力を検出する機能を有する場合、ノード装置４００は、図３に示すように干渉検出部４２２を備えていてもよい。
【０１１６】
干渉検出部４２２は、デフォルトチャネル以外のチャネルＣｈＢ〜ＣｈＤそれぞれの受信電力を表すパラメタを受信機４０４から受け取り、チャネルＣｈＢ〜ＣｈＤにおける干渉の強さを検出する。そして、干渉検出部４２２は、検出結果をチャネル指定部４２５に出力する。
【０１１７】
チャネル切り換え部４２３は、送信チャネルを決定し、決定した送信チャネルを送信機４０３に指定する。本実施形態では、送信モード情報４１２の示す送信モードが通常モードの場合、送信チャネルは常にデフォルトチャネルＣｈＡである。また、送信モードが輻輳モードの場合、送信チャネルはフレームの送信のたびに決定される。
【０１１８】
そして、送信モードは、ノード装置４００とゲートウェイ１０１との間のホップ数が１であり、かつ、送信チャネルを切り換えるようにゲートウェイ１０１がノード装置４００に命令した場合に限り輻輳モードとなる。それ以外の場合、送信モードは通常モードである。また、ゲートウェイ１０１がノード装置４００に対して、送信チャネルをデフォルトチャネルに戻すよう命令した場合も、送信モードは通常モードとなる。
【０１１９】
具体的には、受信機４０４が受信したフレームのタイプが送信チャネルの切り換え命令の場合、タイプ判断部４２１は、モード変更部４２４に、切り換え命令の受信に応じた処理を行うよう要求する。すると、モード変更部４２４は、ホップ数認識部４２８を介してノード装置４００とゲートウェイ１０１との間のホップ数を認識する。そして、モード変更部４２４は、ホップ数が１であれば送信モードを輻輳モードに変更し、ホップ数が１でなければ送信モードを通常モードのままとする。
【０１２０】
また、受信機４０４が受信したフレームのタイプが、送信チャネルをデフォルトチャネルに戻すように命令する復帰命令の場合、タイプ判断部４２１は、モード変更部４２４に、復帰命令の受信に応じた処理を行うよう要求する。すると、モード変更部４２４は、送信モードを通常モードに設定する。
【０１２１】
以上のようにしてモード変更部４２４は送信モードを決定し、決定した送信モードを送信モード情報４１２としてメモリ４０６上に記録する。
また、チャネル指定部４２５は、送信モード情報４１２を参照する。そして、送信モードが通常モードであれば、チャネル指定部４２５は、送信機４０３に対して、送信チャネルとしてデフォルトチャネルＣｈＡを指定する。
【０１２２】
逆に、送信モードが輻輳モードの場合、チャネル指定部４２５は、デフォルトチャネルＣｈＡを送信チャネルとして選ぶべきか、それとも他のチャネルＣｈＢ〜ＣｈＤの中から送信チャネルを選ぶべきかを判断する。この判断は、ホップ数認識部４２８を介して「送信対象のフレームのＬＤがゲートウェイ１０１である」という条件が成立するか否かを認識することにより、行われる。上記条件は、ノード装置４００とゲートウェイ１０１の間のホップ数が１であることを含意する。
【０１２３】
そして、上記条件が成立する場合に、チャネル指定部４２５は、チャネルＣｈＢ〜ＣｈＤの中から送信チャネルをランダムに選択し、選択した送信チャネルを送信機４０３に指定する。逆に、上記条件が成立しなければ、チャネル指定部４２５は、デフォルトチャネルＣｈＡを送信チャネルとして指定する。
【０１２４】
また、受信機４０４が受信したフレームが同期フレームである場合、タイプ判断部４２１は、同期処理を行うよう同期処理部４２６に要求する。すると、同期処理部４２６は、送受信バッファ領域４１１からフレームを読み出し、フレームに含まれる時刻情報にしたがって、タイマ４２７が示す時刻を修正する。さらに、同期処理部４２６は、修正後のタイマ４２７が示す時刻に基づく時刻情報を含む同期フレームを生成し、同期フレームを送信機４０３に出力する。
【０１２５】
すると、送信機４０３は、同期処理部４２６から出力された同期フレームを、スイッチ４０２とアンテナ４０１を介して送信する。なお、送信機４０３は、同期処理部４２６から出力された同期フレームを送信する場合は、常にデフォルトチャネルＣｈＡを用いる。
【０１２６】
また、ホップ数認識部４２８は、受信機４０４が受信したフレームがハローフレームだった場合に、タイプ判断部４２１からの要求に応じて、ノード装置４００とゲートウェイ１０１の間のホップ数を認識する。つまり、ホップ数認識部４２８は、タイプ判断部４２１からの要求を受けて、送受信バッファ領域４１１に格納されたハローフレームを読み出してホップ数を認識し、認識したホップ数をホップ数情報４１３に記録する。
【０１２７】
また、ホップ数認識部４２８は、送受信バッファ領域４１１に格納されているフレームのヘッダを参照することで、ノード装置４００とゲートウェイ１０１の間のホップ数が１か否かを認識することもできる。ホップ数認識部４２８は、ヘッダから認識した結果を、モード変更部４２４とチャネル指定部４２５に通知することもできる。
【０１２８】
また、ゲートウェイ１０１と同様にノード装置４００も、適宜のスケジュールにしたがってハローフレームを送信する。具体的には、ハローフレーム生成部４２９は、スケジュール情報４１５に定められたスケジュールと、タイマ４２７が示す現在時刻にしたがって、ハローフレームを生成し、送信機４０３に出力する。すると、送信機４０３は、スイッチ４０２とアンテナ４０１を介してハローフレームを送信する。なお、送信機４０３は、ハローフレームを送信する場合は、常にデフォルトチャネルＣｈＡを用いる。
【０１２９】
転送処理部４３０は、特定のタイプのフレームに関して、フレームの直接の宛先（つまりＬＤ）を決定する。つまり、転送処理部４３０は、通信システム１００においてノード装置４００に隣接する装置の中から、ＬＤを選択する。
【０１３０】
なお、転送処理部４３０は、ＬＤの選択にあたり、送受信バッファ領域４１１に格納されているフレームの、最終的な宛先（つまりＧＤ）を示すフィールドの値を参照し、経路情報４１４を参照する。そして、転送処理部４３０は、選択したＬＤを、送受信バッファ領域４１１内のフレームの所定のフィールドに記録する。
【０１３１】
例えば、ノード装置４００が図１のノード装置１２４であるとする。この場合、ノード装置１２４がノード装置１３５から受信した特定のタイプのフレームに関して、ノード装置１２４の転送処理部４３０は、ＬＤとしてノード装置１１２を選択する。また、ノード装置１２４自身が生成した特定のタイプのフレームに関しても、ノード装置１２４の転送処理部４３０は、ＬＤとしてノード装置１１２を選択する。
【０１３２】
また、上記「特定のタイプのフレーム」とは、具体的には、通信システム１００の中でマルチホップ転送の対象となるタイプのフレームであり、具体的には「データフレーム」と「登録要求フレーム」を含む。データフレームと登録要求フレームの詳細は図９を参照して後述するが、概要を説明すると次のとおりである。
【０１３３】
データフレームは、ゲートウェイ１０１が収集する対象のデータ（例えば図１に関して例示したような、センサが感知したデータなど）を含むフレームである。また、登録要求フレームは、ゲートウェイ１０１がデータの収集を行うノード装置の１つとしてノード装置４００を登録ノード情報３１４に登録するよう、ノード装置４００がゲートウェイ１０１に要求するためのフレームである。
【０１３４】
本実施形態の転送処理部４３０は、受信機４０４がデータフレームまたは登録要求フレームを受信して送受信バッファ領域４１１に出力した場合は、タイプ判断部４２１からの要求を受けて、ＬＤを選択する。また、転送処理部４３０は、データ処理部４３１がデータフレームを生成して送受信バッファ領域４１１に出力した場合は、データ処理部４３１からの要求を受けて、ＬＤを選択する。さらに、転送処理部４３０は、登録要求部４３２が登録要求フレームを生成して送受信バッファ領域４１１に出力した場合は、登録要求部４３２からの要求を受けて、ＬＤを選択する。
【０１３５】
そして、転送処理部４３０は、上記のとおり、選択したＬＤを、送受信バッファ領域４１１内のフレームの所定のフィールドに記録する。さらに、転送処理部４３０は、チャネル指定部４２５に対して、チャネルの指定を行うよう要求する。転送処理部４３０は、チャネル指定部４２５を介して、または直接的に、送信機４０３に対して、送信対象のフレームの送受信バッファ領域４１１における先頭アドレスを通知する。
【０１３６】
すると、転送処理部４３０からの要求を契機として、チャネル指定部４２５は上述のようにデフォルトチャネルＣｈＡまたは他のチャネルＣｈＢ〜ＣｈＤを適宜選択して送信機４０３に指定する。また、送信機４０３は、転送処理部４３０からの通知を契機として、送受信バッファ領域４１１から送信対象のフレームを読み出し、チャネル指定部４２５により指定された送信チャネルを用いて、スイッチ４０２とアンテナ４０１を介して、フレームを送信する。
【０１３７】
また、本実施形態のデータ処理部４３１は、スケジュール情報４１５に定められたスケジュールと、タイマ４２７が示す現在時刻にしたがって、データフレームを生成して送受信バッファ領域４１１に出力する。そして、データ処理部４３１は、転送処理部４３０に対し、生成したフレームのＬＤを選択するよう要求する。なお、実施形態によっては、データ処理部４３１は、不定期にデータフレームを生成して送受信バッファ領域４１１に出力してもよい。
【０１３８】
また、実施形態によっては、ＧＤとしてゲートウェイ１０１以外のノード装置が指定されたデータフレームが利用されてもよい。例えば、ノード装置１３３が、ノード装置１３９をデータフレームのＧＤとして指定してもよい。その場合、ノード装置１３９のデータ処理部４３１は、受信したデータフレームのペイロードを適宜処理してもよい。
【０１３９】
また、本実施形態の登録要求部４３２は、スケジュール情報４１５に定められたスケジュールと、タイマ４２７が示す現在時刻にしたがって、登録要求フレームを生成して送受信バッファ領域４１１に出力する。そして、登録要求部４３２は、転送処理部４３０に対し、生成したフレームのＬＤを選択するよう要求する。
【０１４０】
ところで、受信機４０４が受信したフレームがハローフレームだった場合に、タイプ判断部４２１は、ホップ数情報４１３の更新をホップ数認識部４２８に要求するだけでなく、リンク情報４１７を更新するようリンク管理部４３３に要求する。
【０１４１】
リンク管理部４３３は、タイプ判断部４２１からの要求に応じて、送受信バッファ領域４１１を参照してハローフレームの送信元を認識する。なお、詳しくは後述するが、ハローフレームはマルチホップ送信されないので、ハローフレームの送信元とはＬＳでもありＧＳでもある。
【０１４２】
さらに、リンク管理部４３３は、リンク情報４１７がハローフレームの送信元の識別情報を含むか否かを確認する。リンク情報４１７がハローフレームの送信元の識別情報を含んでいなければ、リンク管理部４３３は、リンク情報４１７にハローフレームの送信元の識別情報を追加する。
【０１４３】
なお、タイプ判断部４２１、干渉検出部４２２およびチャネル切り換え部４２３の一部または全部は、ＣＰＵ３０６の代わりにハードウェア回路により実現されてもよい。同様に、同期処理部４２６、ホップ数認識部４２８、ハローフレーム生成部４２９、転送処理部４３０、データ処理部４３１、登録要求部４３２およびリンク管理部４３３の一部または全部も、ＣＰＵ３０６の代わりにハードウェア回路により実現されてもよい。上記ハードウェア回路としては、例えば、ＡＳＩＣが使われてもよいし、ＦＰＧＡなどのリコンフィギュラブル回路が使われてもよい。また、実施形態によっては、干渉検出部４２２は省略可能である。
【０１４４】
また、ノード装置４００は不図示のＲＴＣを含んでいてもよい。ＲＴＣの示す時刻は、例えばノード装置４００の電源が切られるときに、タイマ４２７が示す時刻に基づいて、同期処理部４２６により修正されてもよい。
【０１４５】
さて、図４は、登録ノード情報３１４の例を示す図である。登録ノード情報３１４は、具体的には図４の登録ノードテーブル３１４ａのような形式の情報でもよい。
登録ノードテーブル３１４ａは、ゲートウェイ１０１が通信システム１００内のどのノード装置４００からデータを収集するのかを表す。換言すれば、どのノード装置４００がゲートウェイ１０１にデータフレームを送信するのかということを、登録ノードテーブル３１４ａは表す。
【０１４６】
登録ノードテーブル３１４ａに含まれる各エントリは、ゲートウェイ１０１にデータを送信するノード装置４００に対応する。また、各エントリは、「ノードＩＤ（identification）」、「ＩＰ（Internet Protocol）アドレス」、「ＭＡＣアドレス」、「データ受信時刻」、「登録時刻」、「１ホップ」というフィールドを含む。
【０１４７】
ノードＩＤは、当該エントリに対応するノード装置４００を通信システム１００内で識別するための識別情報である。なお、以下では説明の便宜上、図１における参照番号の前に「ＩＤ」という文字列を付けたものをノードＩＤとする。例えば、ゲートウェイ１０１とノード装置１１１のノードＩＤは、それぞれ「ＩＤ１０１」と「ＩＤ１１１」であるとする。もちろん、ノードＩＤは実施形態に応じて任意である。
【０１４８】
ＩＰアドレスとＭＡＣアドレスは、当該エントリに対応するノード装置４００のＩＰアドレスとＭＡＣアドレスである。なお、ＩＰアドレスまたはＭＡＣアドレスをノードＩＤとして利用する実施形態も可能である。例えば、ＩＰアドレスとＭＡＣアドレスは、データサーバ２１３に送信されるデータの中に、付加情報として追加されてもよい。
【０１４９】
データ受信時刻は、当該エントリに対応するノード装置４００からのデータフレームをゲートウェイ１０１が受信した時刻である。また、登録時刻は、当該エントリに対応するノード装置４００からの登録要求フレームをゲートウェイ１０１が受信した時刻である。
【０１５０】
そして、１ホップフィールドの値は、当該エントリに対応するノード装置４００とゲートウェイ１０１との間のホップ数が１のときにＴｒｕｅであり、ホップ数が２以上のときにＦａｌｓｅである。
【０１５１】
例えば、図４には、図１の通信システム１００のうち、ノード装置１１１、１１２、１２５、１２６、および１３２に対応する５個のエントリが例示されている。なお、以下では説明の便宜上、登録ノードテーブル３１４ａにノードＩＤが登録されているノード装置４００を「登録ノード装置」ともいう。
【０１５２】
図４によれば、例えばノード装置１１１に対応するエントリでは、ノードＩＤはＩＤ１１１であり、ＩＰアドレスは１７２．１６．０．１１１であり、ＭＡＣアドレスは００：００：０Ｅ：１１：２２：６Ｆである。また、ノード装置１１１に対応するエントリは、ゲートウェイ１０１がノード装置１１１から２０１０年９月２９日１５時０分０．７２３秒にデータフレームを受信したことを示す。同様に、ノード装置１１１に対応するエントリは、ゲートウェイ１０１がノード装置１１１から２０１０年９月２９日９時３０分６．２０８秒に登録要求フレームを受信したことを示す。
【０１５３】
そして、ノード装置１１１、１１２、１２５、１２６、および１３２の中では、ノード装置１１１と１１２のみがゲートウェイ１０１からのホップ数が１である。よって、図４では、ノード装置１１１と１１２に対応する２つのエントリでは１ホップフィールドの値がＴｒｕｅだが、残りの３つのエントリでは１ホップフィールドの値がＦａｌｓｅである。
【０１５４】
なお、図１に示すように、ノード装置１２６は、物理的にはノード１０１から送信されたフレームを受信することが可能だが、実際のデータフレームの送信経路上でのノード１０１からのホップ数は２である。そのため、ノード装置１２６に対応するエントリにおける１ホップフィールドの値はＦａｌｓｅである。
【０１５５】
図５は、システムパラメタ３１３と輻輳情報３１５の例を示す図である。図５に示すシステムパラメタ３１３ａは、図３のシステムパラメタ３１３の具体例であり、以下のようなパラメタを含む。
【０１５６】
データ収集スケジュールは、登録ノード装置がデータフレームを送信するスケジュールを示す。本実施形態では、すべての登録ノード装置が一斉にデータフレームを送信する。そのため、ゲートウェイ１０１は短時間に多数のデータフレームを受信することになり、ゲートウェイ１０１から１ホップの範囲内で輻輳が発生しやすい。
【０１５７】
なお、図５に例示したデータ収集スケジュールは、「毎日１５時丁度にすべての登録ノード装置がデータフレームを送信する」というスケジュールを示す。例えば、図４の登録ノードテーブル３１４ａは、２０１０年９月２９日の１６時の状態であり、２０１０年９月２９日の収集におけるデータ受信時刻を示す。
【０１５８】
許容遅延時間は、データ収集スケジュールで決められた時刻から、ゲートウェイ１０１がすべての登録ノード装置から実際にそれぞれのデータフレームを受信し終わる時刻までの遅延時間として許容可能な最大の遅延時間を示す。図５の例では、許容遅延時間が５分である。つまり、図５のデータ収集スケジュールと許容遅延時間は、「１５時５分丁度までにすべての登録ノード装置からのデータの収集が完了しない場合、遅延時間は許容範囲外である」ということを示している。
【０１５９】
許容遅延時間の具体的な値は、実施形態に応じて適宜決められてよい。許容遅延時間は、例えば、通信システム１００に属する登録ノード装置の数、通信システム１００で使われる通信プロトコルの仕様（例えばビットレート）、などに応じて決められてもよい。あるいは、許容遅延時間は、通信システム１００内での各ノード装置４００が設置される物理的な位置、登録ノード装置からゲートウェイ１０１までのホップ数の最大値（またはホップ数の分布）、などに応じて決められてもよい。許容遅延時間は、予備実験またはシミュレーションに基づいて決められてもよい。
【０１６０】
また、本実施形態では、受信機３０５Ａ〜３０５Ｄの最低受信感度は同じ値である。よって、システムパラメタ３１３ａの最低受信感度として、例えば−９０ｄＢｍが設定される。最低受信感度は、受信機３０５Ａ〜３０５Ｄの仕様に応じた値を持つ。また、受信機３０５Ａ〜３０５Ｄの最低受信感度が異なる場合は、システムパラメタ３１３ａは、受信機３０５Ａ〜３０５Ｄそれぞれの最低受信感度を示す４つのパラメタを含んでもよい。
【０１６１】
また、登録ノード装置の数（換言すれば登録ノードテーブル３１４ａのエントリの数）が増えるにしたがって、ゲートウェイ１０１が受信するデータフレームの量も増大する。
他方、ゲートウェイ１０１の受信機３０５Ａの受信スループットは有限である。つまり、デフォルトチャネルＣｈＡを介してゲートウェイ１０１が単位時間あたりに受信可能なフレームの量には限りがある。また、ゲートウェイ１０１自体の性能（例えばＣＰＵ３０６の性能、メモリ３０７の容量、ネットワークＩ／Ｆ３０８の実効スループットなど）も有限である。
【０１６２】
よって、ゲートウェイ１０１が対処することが可能な登録ノード装置の最大数が、最大登録ノード数として設定される。最大登録ノード数は、少なくとも、デフォルトチャネルＣｈＡ用の受信機３０５Ａの受信スループットに基づいて決められることが好ましい。
【０１６３】
なお、最大登録ノード数は、例えばゲートウェイ１０１の仕様から決められてもよいし、予備実験に基づいて決められてもよい。図５の例では最大登録ノード数は１０００である。
【０１６４】
また、詳しくは後述するが、輻輳判断部３２８は、ＦＣＳチェック部３２４によってエラーが検出されるフレームの割合を用いて輻輳を検出する。臨界誤り率は、輻輳の検出において、エラーが検出されるフレームの割合と比較される閾値であり、図５の例では５０％である。臨界誤り率の具体的な値は、実施形態に応じて適宜決めることができる。
【０１６５】
そして、同期スケジュールは、同期処理部３３０が同期処理を行うスケジュールを規定する。図５の例では、同期スケジュールは、毎時２０分２５．０００秒と設定されている。
【０１６６】
また、ゲートウェイ１０１は４つのチャネルＣｈＡ〜ＣｈＤの信号を受信することができるので、受信可能チャネルとして、４つのチャネルＣｈＡ〜ＣｈＤが設定されている。さらに、デフォルトチャネルとしてチャネルＣｈＡが設定されている。
【０１６７】
また、ハローフレーム送信スケジュールは、ハローフレーム生成部３３２がハローフレームを送信するスケジュールを規定する。図５の例では、ハローフレーム送信スケジュールは、毎分２５．０００秒と設定されている。
【０１６８】
そして、図５に示す輻輳フラグ３１５ａは、図３の輻輳情報３１５の具体例であり、ＴｒｕｅまたはＦａｌｓｅの値を持つフラグである。本実施形態では、Ｔｒｕｅという値は、輻輳判断部３２８が輻輳を検出したことを示し、Ｆａｌｓｅという値は、輻輳判断部３２８が輻輳を検出しなかったことを示す。
【０１６９】
図６は、許容遅延時間について説明する図である。図５にはシステムパラメタ３１３ａの１つとして許容遅延時間が５分に設定される例を示したが、システムパラメタ３１３ａの許容遅延時間に設定される値は、図６のグラフ５００における閾値Ｔ０に相当する。
【０１７０】
グラフ５００に示すように、すべての登録ノード装置からのデータの収集にかかる時間Ｔが長いほど、通信システム１００全体としてのネットワーク負荷Ｌも高い。すなわち、ネットワーク負荷Ｌを時間Ｔの関数ｆにより表すと、Ｌ＝ｆ（Ｔ）のグラフは、近似的には、例えば直線５０２により表される。
【０１７１】
ところで、一般に輻輳はネットワーク負荷Ｌが高いほど生じやすい。そして、ネットワーク負荷Ｌは、例えば、平均ＭＡＣ効率（つまり、全時間に対する、無線媒体が使用されている時間の比率の、通信システム１００内での平均値）により表すことができる。例えば、平均ＭＡＣ効率が閾値Ｌ０を超えると、輻輳が生じやすい。
【０１７２】
しかしながら、通信システム１００全体でのネットワーク負荷Ｌそのものをゲートウェイ１０１が検出することは困難である。そこで、本実施形態では、輻輳判断部３２８が、時間Ｔの長さからネットワーク負荷Ｌの高さを間接的に認識し、時間Ｔが閾値Ｔ０を超えるか否かに応じて、輻輳が生じているか否かを検出する。具体的には、閾値Ｔ０は、Ｌ＝Ｌ０を示す直線５０１とＬ＝ｆ（Ｔ）を示す直線５０２の交点におけるＴ座標の値である。上記のとおり、閾値Ｔ０は、様々な要因に基づいて決められてよい。
【０１７３】
図７は、送信モード情報４１２、経路情報４１４、スケジュール情報４１５、個体情報４１６、およびリンク情報４１７の例を示す図である。
図７の送信モード情報４１２ａは、図４の送信モード情報４１２の具体例であり、通常モードを表す値または輻輳モードを表す値を持つ。送信モード情報４１２ａは、例えばフラグ変数でもよい。
【０１７４】
また、経路情報４１４ａは、ノード装置４００がノード装置１１２である場合の経路情報４１４の例である。経路情報４１４ａは、ＧＤとＬＤと評価値とホップ数の各フィールドを含むエントリを１つ以上含む。なお、本実施形態では、評価値は０．０以上１．０以下であり、０．０が最高の評価であり、１．０が最低の評価であるとする。
【０１７５】
具体的に、経路情報４１４ａの１つ目のエントリは、「ＩＤ１０１」というＧＤと、「ＩＤ１０１」というＬＤと、「０．０」という評価値と、「１」というホップ数を含む。この１つ目のエントリは、次の（Ａ１）〜（Ａ３）を表す。
【０１７６】
（Ａ１）ＧＤがゲートウェイ１０１であるフレームをノード装置１１２が送信する場合に、ＬＤとして転送処理部４３０が選択可能な候補の１つは、ゲートウェイ１０１である。
（Ａ２）ＧＤがゲートウェイ１０１の場合の、ゲートウェイ１０１のＬＤとしての評価は、０．０という値で表される最高の評価である。
（Ａ３）ゲートウェイ１０１をＬＤとして選択した場合に、経路情報４１４ａを保持するノード装置１１２から、ゲートウェイ１０１というＧＤまでのホップ数は、１である。
【０１７７】
また、経路情報４１４ａの２つ目のエントリは、「ＩＤ１０１」というＧＤと、「ＩＤ１１１」というＬＤと、「０．７」という評価値と、「２」というホップ数を含む。この２つ目のエントリは、次の（Ｂ１）〜（Ｂ３）を表す。
【０１７８】
（Ｂ１）ＧＤがゲートウェイ１０１であるフレームをノード装置１１２が送信する場合に、ＬＤとして転送処理部４３０が選択可能な候補の１つは、ノード装置１１１である。
（Ｂ２）ＧＤがゲートウェイ１０１の場合の、ノード装置１１１のＬＤとしての評価は、０．７という値で表される。つまり、ＧＤがゲートウェイ１０１の場合の、ＬＤとしての評価は、ゲートウェイ１０１よりもノード装置１１１の方がかなり低い。
（Ｂ３）ノード装置１１１をＬＤとして選択した場合に、経路情報４１４ａを保持するノード装置１１２からゲートウェイ１０１というＧＤまでのホップ数は、２である。
つまり、経路情報４１４ａは、ＧＤがゲートウェイ１０１であるフレームの送信経路が、少なくとも２つ存在することを示す。そして、経路情報４１４ａによれば、２番目のエントリが示す送信経路（つまり、ノード装置１１１を経由する迂回路）は、１番目のエントリが示す送信経路より評価が低い。
【０１７９】
したがって、転送処理部４３０は、より評価の高い送信経路を優先的に選択する。つまり、転送処理部４３０は、ＧＤがゲートウェイ１０１であるフレームに関しては、より評価の高いゲートウェイ１０１を優先的にＬＤとして選択する。
【０１８０】
なお、経路情報４１４ａにおいては、ホップ数フィールド自体がホップ数情報４１３として使われる。しかし、ＧＤフィールドとＬＤフィールドがホップ数情報４１３として使われてもよい。なぜなら、ＧＤフィールドとＬＤフィールドの値が等しいことは、ゲートウェイ１０１までのホップ数が１であることを示し、ＧＤフィールドとＬＤフィールドの値が等しくないことは、ゲートウェイ１０１までのホップ数が１ではないことを示すからである。
【０１８１】
また、ノード装置１２３は、経路情報４１４ａと同様の形式の経路情報４１４ｂを保持する。経路情報４１４ｂの１つ目のエントリは、次の（Ｃ１）〜（Ｃ３）を表す。
【０１８２】
（Ｃ１）ＧＤがゲートウェイ１０１であるフレームをノード装置１２３が送信する場合に、ＬＤとして転送処理部４３０が選択可能な候補の１つは、ノード装置１１２である。
（Ｃ２）ＧＤがゲートウェイ１０１の場合の、ノード装置１１２のＬＤとしての評価は、最高の評価である。
（Ｃ３）ノード装置１１２をＬＤとして選択した場合に、経路情報４１４ｂを保持するノード装置１２３からゲートウェイ１０１というＧＤまでのホップ数は、２である。
【０１８３】
また、経路情報４１４ｂの２つ目のエントリは、次の（Ｄ１）〜（Ｄ３）を表す。
【０１８４】
（Ｄ１）ＧＤがゲートウェイ１０１であるフレームをノード装置１２３が送信する場合に、ＬＤとして転送処理部４３０が選択可能な候補の１つは、ノード装置１２２である。
（Ｄ２）ＧＤがゲートウェイ１０１の場合の、ノード装置１２２のＬＤとしての評価は、０．９という値で表される、最低に近い評価である。
（Ｄ３）ノード装置１２２をＬＤとして選択した場合に、経路情報４１４ｂを保持するノード装置１２３からゲートウェイ１０１というＧＤまでのホップ数は、３である。
【０１８５】
なお、図７の例では、どのエントリもＧＤの値が「ＩＤ１０１」であるが、実施形態によっては、他のノード装置のノードＩＤをＧＤフィールドに持つエントリがあってもよい。
【０１８６】
さて、スケジュール情報４１５ａは、スケジュール情報４１５の具体例であり、３つのタイプのフレームそれぞれについての送信スケジュールを示す。
具体的には、スケジュール情報４１５ａに含まれる「データ送信スケジュール」は、データ処理部４３１がデータフレームを生成して送信機４０３がデータフレームを送信するスケジュールを示す。なお、ノード装置４００が保持するスケジュール情報４１５ａにおけるデータ送信スケジュールには、ゲートウェイ１０１が保持するシステムパラメタ３１３ａにおけるデータ収集スケジュールと同じスケジュールが設定される。
【０１８７】
また、スケジュール情報４１５ａに含まれる「ハローフレーム送信スケジュール」は、ハローフレーム生成部４２９がハローフレームを生成して送信機４０３がハローフレームを送信するスケジュールを示す。図７の例では、ハローフレーム送信スケジュールは、毎分２．０００秒と設定されている。
【０１８８】
さらに、スケジュール情報４１５ａに含まれる「登録要求スケジュール」は、登録要求部４３２が登録要求フレームを生成して送信機４０３が登録要求フレームを送信するスケジュールを示す。図７の例では、登録要求スケジュールは、毎日１０時３０分２５．０００秒と設定されている。
【０１８９】
さて、個体情報４１６ａは、ノード装置４００がノード装置１２３である場合の個体情報４１６の具体例である。個体情報４１６ａには、ノード装置１２３のノードＩＤとＩＰアドレスとＭＡＣアドレスが含まれる。
【０１９０】
また、リンク情報４１７ａは、ノード装置４００がノード装置１２３である場合のリンク情報４１７の具体例である。
【０１９１】
図１において、ノード装置１２３は５つのノード装置１１１、１１２、１２２、１３３および１３４と実線または破線で結ばれている。すなわち、ノード装置１２３は、ノード装置１１１、１１２、１２２、１３３および１３４と隣接しており、上記５つの隣接ノード装置と１ホップで通信することができる。そのため、リンク情報４１７ａには、上記５つの隣接ノード装置のノードＩＤが含まれる。
【０１９２】
図８〜９は、フレームの例を示す図である。本実施形態のフレームの形式は、一般に図８のフレーム６００のとおりである。フレーム６００は、ＧＤ、ＧＳ、ＬＤ、ＬＳ、タイプ、ペイロード、ＦＣＳというフィールドを含む。
【０１９３】
ＧＤ、ＧＳ、ＬＤ、およびＬＳの各フィールドは、フレーム６００のＧＤ、ＧＳ、ＬＤ、およびＬＳを、ノードＩＤにより示す。
【０１９４】
例えば、フレーム６００が図１のノード装置１３４で生成され、ノード装置１３４からノード装置１２３とノード装置１１２を経由してゲートウェイ１０１へと送信されるとする。この場合、フレーム６００のＧＤにはゲートウェイ１０１のノードＩＤである「ＩＤ１０１」が設定され、フレーム６００のＧＳにはノード装置１３４のＩＤである「ＩＤ１３４」が設定される。ＧＤとＧＳの値は、フレーム６００が通信システム１００内を転送されていく間、変化しない。
【０１９５】
他方、フレーム６００がノード装置１３４からノード装置１２３に送信されるときは、ＬＤには「ＩＤ１２３」が、ＬＳには「ＩＤ１３４」が設定される。その後、フレーム６００がノード装置１２３からノード装置１１２に送信されるときは、ＬＤには「ＩＤ１１２」が、ＬＳには「ＩＤ１２３」が設定される。最後に、フレーム６００がノード装置１１２からゲートウェイ１０１に送信されるときには、ＬＤには「ＩＤ１０１」が設定され、ＬＳには「ＩＤ１１２」が設定される。
【０１９６】
なお、本明細書では、「ＧＤフィールド」を単に「ＧＤ」と表すこともある。また、「ＧＤフィールドに指定された通信システム１００内のノード（ゲートウェイ１０１またはノード装置４００）自体」を単に「ＧＤ」と表すこともある。ＧＳ、ＬＤ、ＬＳについても同様の表記の簡略化を行うことがある。
【０１９７】
また、タイプフィールドは、フレーム６００のタイプを示す。本実施形態では、タイプを示す値として４つの値（以下では説明の便宜上、「Ｈｅｌｌｏ」、「Ｓｙｎｃ」、「Ｄａｔａ」、「Ｒｅｇ」と示す）が使われる。
【０１９８】
ペイロードには、フレーム６００のタイプに応じた適宜のデータが含まれる。また、ＦＣＳフィールドは、フレーム６００中の誤りを検出するためのフィールドである。例えば、ＧＤからペイロードまでの全フィールドからＣＲＣ（Cyclic Redundancy Check）が計算され、計算された値がＦＣＳフィールドに設定される。
【０１９９】
以上説明したフレーム６００の具体例の１つは、タイプとして「Ｈｅｌｌｏ」という値が指定されたフレーム６１０である。以下では説明の便宜上、フレーム６１０を「広義のハローフレーム６１０」という。広義のハローフレーム６１０には、具体的には、図８のハローフレーム６２０と、図８の切り換え命令フレーム６３０と、図９の復帰命令フレーム６４０の３種類がある。
【０２００】
広義のハローフレーム６１０は、１ホップの範囲内でだけブロードキャストされ、転送はされない。したがって、広義のハローフレーム６１０において、ＧＤには、ノードＩＤとしては無効な特殊な値（以下では説明の便宜上「Ｉｎｖａｌｉｄ」と示す）が設定される。また、ＧＳとＬＳの値は等しい。そして、ＬＤには、ブロードキャストを示す特殊な値（以下では説明の便宜上「ＢＣ」と示す）が設定される。そして、広義のハローフレーム６１０は、ペイロードとして制御情報を有する。例えば、「Ｉｎｖａｌｉｄ」と示した値は、具体的には全ビットが０の値でもよく、「ＢＣ」と示した値は、具体的には全ビットが１の値でもよい。
【０２０１】
ハローフレーム６２０は、広義のハローフレーム６１０の一例である。広義のハローフレーム６１０における制御情報の具体例として、ハローフレーム６２０は、「Ｈｅｌｌｏ」という値が設定されたサブタイプフィールドと、基準点フィールドと、ホップ数フィールドを有する。図７までの説明における「ハローフレーム」は、タイプとサブタイプの値がともに「Ｈｅｌｌｏ」であるフレームのことである。
【０２０２】
基準点フィールドには、通信システム１００内のいずれかのノードのノードＩＤが設定される。ホップ数フィールドは、基準点フィールドが示すノードから、ハローフレーム６２０のＧＳまでのホップ数を示す。
【０２０３】
例えば、ある時点でゲートウェイ１０１は、ゲートウェイ１０１自身のノードＩＤをＧＳとＬＳと基準点として設定したハローフレーム６２１を送信する。ゲートウェイ１０１からゲートウェイ１０１までのホップ数は０であるから、ハローフレーム６２１のホップ数フィールドの値は０である。
【０２０４】
すると、通信可能エリア１０２に含まれるノード装置１１１は、ハローフレーム６２１を受信する。もし、ノード装置１１１におけるリンク情報４１７が、ハローフレーム６２１のＬＳである「ＩＤ１０１」を含まなければ、ノード装置１１１は、リンク情報４１７に「ＩＤ１０１」を追加する。
【０２０５】
また、ノード装置１１１は、ＧＤが「ＩＤ１０１」であり、かつＬＤがハローフレーム６２１のＬＳの「ＩＤ１０１」と等しいエントリを経路情報４１４内で検索する。もしエントリが見つからなければ、ノード装置１１１は、ＧＤが「ＩＤ１０１」でＬＤが「ＩＤ１０１」のエントリを経路情報４１４に追加してもよい。あるいは、ノード装置１１１は、エントリを追加しなくてもよい。さらに、ノード装置１１１は、見つかったエントリまたは追加したエントリにおいて、ホップ数を１（すなわち、ハローフレーム６２１に設定されているホップ数に１を足した値）に設定する。
【０２０６】
なお、エントリを追加する場合、ノード装置１１１は、評価値の初期値を適宜設定する。評価値の初期値は、例えば、最高の評価を示す０．０と最低の評価を示す１．０の平均値０．５でもよい。
【０２０７】
その後、ノード装置１１１は、スケジュール情報４１５で決められた時刻になると、経路情報４１４においてＧＤが「ＩＤ１０１」のエントリのうち、最も高い評価のエントリを取得する。例えば、ノード装置１１１が取得したエントリのＬＤが「ＩＤ１０１」であったとすると（すなわち、ハローフレーム６２１の受信を契機にホップ数を１と設定したエントリを取得したとすると）、ノード装置１１１は、ハローフレーム６２２を生成し、送信する。
【０２０８】
図８に示すように、ハローフレーム６２２のＧＳとＬＳには、ノード装置１１１自身のノードＩＤが設定される。また、ハローフレーム６２２の基準点には、取得されたエントリのＧＤがコピーされる。そして、ハローフレーム６２２のホップ数には、取得されたエントリのホップ数の値である１（すなわち、ノード装置１１１がハローフレーム６２１の受信を契機に設定した値）が設定される。
【０２０９】
通信可能エリア１０２に含まれる他のノード装置１１２、１１３および１２６も、上記のノード装置１１１と同様に動作する。
つまり、もしノード装置１１２の経路情報４１４の中でＧＤが「ＩＤ１０１」のエントリのうち、最も高い評価のエントリのＬＤが「ＩＤ１０１」であれば、ノード装置１１２はハローフレーム６２３を送信する。同様に、もしノード装置１１３の経路情報４１４の中でＧＤが「ＩＤ１０１」のエントリのうち、最も高い評価のエントリのＬＤが「ＩＤ１０１」であれば、ノード装置１１３はハローフレーム６２４を送信する。そして、もしノード装置１２６の経路情報４１４の中でＧＤが「ＩＤ１０１」のエントリのうち、最も高い評価のエントリのＬＤが「ＩＤ１０１」であれば、ノード装置１２６はハローフレーム６２５を送信する。
【０２１０】
ハローフレーム６２３、６２４、および６２５は、いずれも、基準点としてハローフレーム６２１と同じく「ＩＤ１０１」が設定されており、ホップ数が１（ハローフレーム６２１のホップ数に１を足した値）に設定されている。
【０２１１】
また、ノード装置１１１が送信したハローフレーム６２２は、ノード装置１１１に隣接するゲートウェイ１０１で受信される。ハローフレーム６２２は、ハローフレーム６２２のＬＳであるノード装置１１１が、基準点であるゲートウェイ１０１から１ホップであることを示す。よって、ゲートウェイ１０１は、ハローフレーム６２２のＬＳであるノード装置１１１を、登録ノード情報３１４に、１ホップのノード装置として登録してもよい。
【０２１２】
また、ハローフレーム６２２は、ノード装置１１１に隣接する他のノード装置４００（具体的にはノード装置１１２、１２１、１２２、および１２３）でも受信される。そこで、ハローフレーム６２２を受信した各ノード装置４００は、経路情報４１４の中でＧＤが「ＩＤ１０１」のエントリのうち、最も高い評価のエントリのＬＤと、ハローフレーム６２２のＬＳを比較する。もし、最も高い評価のエントリのＬＤとハローフレーム６２２のＬＳが同じならば、ノード装置４００は、ノード装置４００自身からゲートウェイ１０１までのホップ数を２と認識する。なお、ここで２という値は、ハローフレーム６２２のホップ数に１を足した値である。
【０２１３】
そして、ハローフレーム６２２を受信したノード装置４００は、もし上記のようにしてノード装置４００自身からゲートウェイ１０１までのホップ数を２と認識した場合は、次にハローフレームを送信するとき、各フィールドを以下のように設定する。すなわち、ノード装置４００は、ＧＳとＬＳにはノード装置４００自身のノードＩＤを設定し、基準点にはハローフレーム６２２と同じく「ＩＤ１０１」を設定し、ホップ数には上記で認識した２という値を設定する。
【０２１４】
例えば、図１においてノード装置１１１と実線で結ばれているノード装置１２１と１２２は、上記のようにして、ゲートウェイ１０１までのホップ数を２と認識し、以後、ホップ数に２を設定したハローフレームを送信する。
【０２１５】
他方、例えば、ノード装置１１２の経路情報４１４ａでは、図７に示すように、ＧＤが「ＩＤ１０１」のエントリのうち、最も高い評価のエントリのＬＤは、「ＩＤ１０１」である。そして、「ＩＤ１０１」は、受信されたハローフレーム６２２のＬＳとは異なる。そのため、ノード装置１１２は、ハローフレーム６２２の受信後であっても、上述のハローフレーム６２３を送信する。つまり、ハローフレーム６２２の受信後であっても、ノード装置１１２は、ホップ数に２と設定したハローフレームを送信するわけではない。
【０２１６】
他のハローフレーム６２３〜６２５を受信した各ノード装置４００でも、上記と類似の処理が行われる。それにより、通信システム１００内の各ノード装置４００（具体的にはノード装置１１１〜１４３の各々）は、ゲートウェイ１０１までの実際のデータフレームの送信経路での、ノード装置４００自身からゲートウェイ１０１までのホップ数を認識する。つまり、ノード装置４００は、ＧＤがゲートウェイ１０１のフレームを送信するときにノード装置４００自身がＬＤとして選択する隣接ノード装置を経由する送信経路での、ノード装置４００自身からゲートウェイ１０１までのホップ数を認識する。
【０２１７】
したがって、経路情報４１４がまだ不安定な過渡的状況においては、ノード装置１２６が、偶然ハローフレーム６２５を送信する可能性もゼロではないが、経路情報４１４が安定すれば、ノード装置１２６は、ハローフレーム６２６を送信するようになる。
【０２１８】
すなわち、図１が安定後の状態を示すとすると、図１によればノード装置１２６は、ＧＤがゲートウェイ１０１のとき、ＬＤとしてノード装置１１３（つまり図１においてノード装置１２６と実線で結ばれたノード）を選択する。したがって、過渡的状況を脱してノード装置１２６における経路情報４１４が安定した段階では、経路情報４１４の中でＧＤが「ＩＤ１０１」のエントリのうち、最も高い評価のエントリのＬＤは「ＩＤ１１３」である。
【０２１９】
よって、図１のようにノード装置１２６がＬＤとしてノード装置１１３を選択するようになった安定状態においては、ノード装置１２６は、ホップ数に２と設定したハローフレーム６２６を送信する。なお、ノード装置１２６は、ノード装置１１３から受信するハローフレーム６２４のホップ数に１を足すことで、上記の２というホップ数を認識することができる。
【０２２０】
また、ノード装置１２６は通信可能エリア１０２の中にあるので、ゲートウェイ１０１はノード装置１２６からハローフレーム６２６を受信することができる。ゲートウェイ１０１は、受信したハローフレーム６２６のＬＳであるノード装置１２６を、「ゲートウェイ１０１からのホップ数が１ではないノード装置」として認識することができる。
【０２２１】
さて、切り換え命令フレーム６３０も、広義のハローフレーム６１０の一例である。広義のハローフレーム６１０における制御情報の具体例として、切り換え命令フレーム６３０は、切り換え命令を含む。切り換え命令フレーム６３１〜６３４の図に示すように、切り換え命令の形式は実施形態に応じて様々であってよい。また、１つの実施形態の中で切り換え命令の複数の形式が併用されてもよい。
【０２２２】
例えば、切り換え命令フレーム６３１は、切り換え命令として、切り換え命令を示す特定の値（以下では説明の便宜上「Ｓｗｉｔｃｈ」と示す）が設定されたサブタイプフィールドだけを含む。
【０２２３】
また、切り換え命令フレーム６３２〜６３４は、いずれも、「Ｓｗｉｔｃｈ」という値が設定されたサブタイプフィールドと、長さフィールドと、長さフィールドに設定された長さの詳細フィールドを含む。
【０２２４】
具体的には、切り換え命令フレーム６３２において、長さフィールドの値は「１７」であり、詳細フィールドの値は「ＩＤ１１１，ＩＤ１１２，ＩＤ１１３」である。切り換え命令フレーム６３２における詳細フィールドは、ゲートウェイ１０１から１ホップのノード装置４００のノードＩＤのリストを示す。
【０２２５】
また、切り換え命令フレーム６３３において、長さフィールドの値は「２５」であり、詳細フィールドの値は「Ｎｏｔ  ＣｈＣ，ＩＤ１１１，ＩＤ１１２，ＩＤ１１３」である。切り換え命令フレーム６３３における詳細フィールドは、チャネル指定部４２５が指定するチャネルの候補からは除外される禁止チャネルと、ゲートウェイ１０１から１ホップのノード装置４００のノードＩＤのリストを示す。つまり、切り換え命令フレーム６３３では、チャネルＣｈＣが禁止チャネルとして指定されている。
【０２２６】
例えば、図１の例のようにゲートウェイ１０１の近傍に干渉源２０１がある場合、禁止チャネルを指定する禁止情報（例えば「Ｎｏｔ  ＣｈＣ」と表される情報）を切り換え命令に含めることが好ましい。その理由は次のとおりである。
【０２２７】
例えば、干渉源２０１からの電波の周波数帯域がチャネルＣｈＣと重なっているとする。ゲートウェイ１０１は、干渉源２０１の正確な位置や干渉エリア２０２の範囲を認識することはできないかもしれない。しかし、ゲートウェイ１０１は、ＲＳＳＩ計算部３２３の計算結果から、「チャネルＣｈＣと重なる周波数帯域の電波を発する何らかの干渉源が、ゲートウェイ１０１の近傍に存在する」と推測することはできる。
【０２２８】
そして、干渉源がゲートウェイ１０１の近傍に存在する場合、ゲートウェイ１０１から１ホップで通信可能なノード装置１１１〜１１３も当該干渉源の影響を受けている蓋然性が高い。実際、図１のように、ゲートウェイ１０１から１ホップで通信が可能な通信可能エリア１０２と、干渉エリア２０２とが重なっているかもしれず、干渉エリア２０２にノード装置１１２と１１３が含まれることもあり得る。
【０２２９】
また、ノード装置１１１〜１１３が干渉エリア２０２に含まるか否かによらず、干渉源２０１が近傍にあれば、ゲートウェイ１０１が干渉源２０１からの影響を受けることに変わりはない。よって、ゲートウェイ１０１が、チャネルＣｈＣで送信されるフレームの受信に失敗する蓋然性は高い。
【０２３０】
そこで、ゲートウェイ１０１は、チャネルＣｈＣが干渉を受けていることを検出した場合には、チャネルＣｈＣを禁止チャネルとして指定する禁止情報を切り換え命令フレーム６３２に含めてもよい。すると、ゲートウェイ１０１は、ノード装置１１２や１１３に、チャネルＣｈＣを避けてゲートウェイ１０１にフレームを送信させることができる。
【０２３１】
上記のように干渉源２０１からの干渉がある場合、チャネルＣｈＣを介してフレームが送信されても、ゲートウェイ１０１が受信に成功する見込みは低い。よって、干渉源２０１が存在する場合に禁止情報を利用することは、効果的なチャネルの選択を可能にし、輻輳の軽減または解消に資する。
【０２３２】
ここで図８の説明に戻る。切り換え命令フレーム６３４において、長さフィールドの値は「２９」であり、詳細フィールドの値は「ＩＤ１１１＝ＣｈＢ，ＩＤ１１２＝ＣｈＣ，ＩＤ１１３＝ＣｈＤ」である。すなわち、切り換え命令フレーム６３４における詳細フィールドはリストであり、リストの個々の要素は、ゲートウェイ１０１から１ホップのノード装置４００のノードＩＤと、チャネルの指定とのペアである。
【０２３３】
ある実施形態では、切り換え命令フレーム６３４の受信を契機として、ノード装置１１１のチャネル指定部４２５は、チャネルＣｈＢを送信チャネルとして選ぶ。同様に、切り換え命令フレーム６３４の受信を契機として、ノード装置１１２のチャネル指定部４２５は、チャネルＣｈＣを送信チャネルとして選ぶ。また、切り換え命令フレーム６３４の受信を契機として、ノード装置１１３のチャネル指定部４２５は、チャネルＣｈＤを送信チャネルとして選ぶ。
【０２３４】
他の実施形態では、ノード装置１１１〜１１３各々のチャネル指定部４２５は、切り換え命令フレーム６３４の受信後は、フレームの送信のたびに送信チャネルをラウンドロビンアルゴリズムにしたがって選びなおしてもよい。そして、ノード装置１１１のチャネル指定部４２５は、切り換え命令フレーム６３４にしたがって、チャネルＣｈＢをラウンドロビンアルゴリズムの開始チャネルとして使用してもよい。
【０２３５】
同様に、ノード装置１１２のチャネル指定部４２５は、チャネルＣｈＣをラウンドロビンアルゴリズムの開始チャネルとして使用してもよい。また、ノード装置１１３のチャネル指定部４２５は、チャネルＣｈＤをラウンドロビンアルゴリズムの開始チャネルとして使用してもよい。
【０２３６】
なお、図８に示す切り換え命令フレーム６３１〜６３４は、いずれも、ゲートウェイ１０１から送信される切り換え命令フレーム６３０の例である。よって、切り換え命令フレーム６３１〜６３４のＧＳフィールドとＬＳフィールドには、「ＩＤ１０１」という値が設定されている。
【０２３７】
また、以下の説明では、「本実施形態においては、切り換え命令フレーム６３０として、切り換え命令フレーム６３１のような形式が採用される」と仮定する。しかし、他の実施形態では、切り換え命令フレーム６３２、６３３、または６３４のような形式が採用されてもよい。
【０２３８】
続いて、図９について説明する。図９の復帰命令フレーム６４０も、図８の広義のハローフレーム６１０の一例である。広義のハローフレーム６１０における制御情報の具体例として、復帰命令フレーム６４０は、復帰命令を含む。復帰命令は、ゲートウェイ１０１への送信に用いる送信チャネルを、デフォルトチャネル（本実施形態ではチャネルＣｈＡ）に戻すことを、ノード装置４００に命令するものである。
【０２３９】
例えば、復帰命令フレーム６４１は、復帰命令として、復帰命令を示す特定の値（以下では説明の便宜上「Ｒｅｓｔｏｒｅ」と示す）が設定されたサブタイプフィールドだけを含む。なお、復帰命令フレーム６４１はゲートウェイ１０１から送信される復帰命令フレーム６４０の例であるから、ＧＳフィールドとＬＳフィールドには、「ＩＤ１０１」という値が設定されている。
【０２４０】
さて、図８のフレーム６００のうち、タイプフィールドに「Ｓｙｎｃ」という値が指定されるフレームが、図９の同期フレーム６５０である。同期フレーム６５０は、通信システム１００内のゲートウェイ１０１と複数のノード装置４００の時刻を同期させるために使われる。
【０２４１】
同期フレーム６５０は、１ホップの範囲内でだけブロードキャストされ、転送はされない。したがって、同期フレーム６５０において、ＧＤには、ノードＩＤとしては無効な値である「Ｉｎｖａｌｉｄ」が設定される。また、ＧＳとＬＳの値は等しい。そして、ＬＤにはブロードキャストを示す特殊な値である「ＢＣ」が設定される。同期フレーム６５０は、ペイロードとして時刻情報を有する。
【０２４２】
同期フレーム６５１は、同期フレーム６５０の具体例である。同期フレーム６５１はゲートウェイ１０１から送信されるので、ＧＳとＬＳには「ＩＤ１０１」と設定されている。また、同期フレーム６５１は、２０１０年９月２９日１３時９分３２．０４５秒という時刻を示す時刻情報を含む。
【０２４３】
また、図８のフレーム６００のうち、タイプフィールドに「Ｄａｔａ」という値が指定されるフレームが、図９のデータフレーム６６０である。データフレーム６６０は、ペイロードとして、長さフィールドと、長さフィールドに設定された長さのアプリケーションデータフィールドを有する。アプリケーションデータフィールドに格納されたデータが、ゲートウェイ１０１により収集され、ＧＳフィールドが示すノードＩＤと対応づけられてデータサーバ２１３に蓄積される。
【０２４４】
例えば、図１のノード装置１４２に接続されたセンサが検出したデータが、アプリケーションデータとして使われるものとし、センサが検出したデータの長さが２５０であるとする。ノード装置１４２に接続されたセンサが検出したデータを含むデータフレーム６６０は、ノード装置１４２からノード装置１３９、１２６、１１３を経由して、ゲートウェイ１０１へと送信される。データフレーム６６１は、上記のマルチホップ送信の過程で、ノード装置１３９からノード装置１２６へ送信されるデータフレーム６６０の例である。
【０２４５】
したがって、データフレーム６６１においては、ＧＤフィールドにはゲートウェイ１０１のノードＩＤである「ＩＤ１０１」が設定されている。そして、ＧＳフィールドには、センサからの出力に基づいてアプリケーションデータを作成したノード装置１４２のノードＩＤである「ＩＤ１４２」が設定されている。また、ＬＤフィールドとＬＳフィールドには、それぞれ「ＩＤ１３９」と「ＩＤ１２６」が設定されている。そして、長さフィールドには「２５０」という値が設定されている。
【０２４６】
また、図８のフレーム６００のうち、タイプフィールドに「Ｒｅｇ」という値が指定されるフレームが、図９の登録要求フレーム６７０である。登録要求フレーム６７０は、個々のノード装置４００がゲートウェイ１０１に対して、当該ノード装置４００自身を「ゲートウェイ１０１宛にデータフレーム６６０を送信するノード装置４００」として登録するよう要求するために使われる。
【０２４７】
登録要求フレーム６７０は、データフレーム６６０と同様に、通信システム１００内をマルチホップ転送される対象となり得る。また、登録要求フレーム６７０は、ペイロードとして、ＩＰアドレスフィールドとＭＡＣアドレスフィールドを有する。ＩＰアドレスフィールドには、ＧＳフィールドに設定されたノードＩＤのノード装置４００のＩＰアドレスが設定される。また、ＭＡＣアドレスフィールドには、ＧＳフィールドに設定されたノードＩＤのノード装置４００のＭＡＣアドレスが設定される。
【０２４８】
例えば、図１のノード装置１３７が登録要求フレーム６７０を生成して送信すると、登録要求フレーム６７０は、データフレーム６６０と同様の経路を経由してゲートウェイ１０１へ転送される。すなわち、登録要求フレーム６７０は、ノード装置１３７からノード装置１２５と１１３を経由して、ゲートウェイ１０１へと送信される。登録要求フレーム６７１は、上記のマルチホップ送信の過程で、ノード装置１２５からノード装置１１３へ送信される登録要求フレーム６７０の例である。
【０２４９】
したがって、登録要求フレーム６７１においては、ＧＤフィールドにはゲートウェイ１０１のノードＩＤである「ＩＤ１０１」が、ＧＳフィールドにはノード装置１３７のノードＩＤである「ＩＤ１３７」が、それぞれ設定されている。また、ＬＤフィールドとＬＳフィールドには、それぞれ「ＩＤ１１３」と「ＩＤ１２５」が設定されている。そして、ＩＰアドレスフィールドには、ノード装置１３７のＩＰアドレスである「１７２．１６．０．１３７」が設定されている。また、ＭＡＣアドレスフィールドには、ノード装置１３７のＭＡＣアドレスである「００：００：０Ｅ：１１：２２：８９」が設定されている。
【０２５０】
続いて、図１０〜１２のフローチャートを参照して、ゲートウェイ１０１が行う処理について説明する。
【０２５１】
ゲートウェイ１０１に電源が入れられると、まずステップＳ１０１の初期化が実行される。
具体的には、同期処理部３３０がネットワークＩ／Ｆ３０８とネットワーク２１１を介してＮＴＰサーバ２１２にアクセスし、ＮＴＰにしたがってタイマ３３１の時刻を修正する。そして、同期処理部３３０は、修正後のタイマ３３１の時刻を含む同期フレーム６５０を生成し、送信機３０３に出力する。すると、送信機３０３は、スイッチ３０２とアンテナ３０１を介して同期フレーム６５０を送信する。
【０２５２】
ステップＳ１０１ではさらに、ハローフレーム生成部３３２が図８のハローフレーム６２１を生成し、送信機３０３に出力する。すると、送信機３０３は、スイッチ３０２とアンテナ３０１を介してハローフレーム６２１を送信する。
【０２５３】
また、システムパラメタ３１３ａに含まれる同期スケジュールとハローフレーム送信スケジュールは、予め決められた定数であってもよいが、ステップＳ１０１で現在時刻に基づいて適宜の値に初期化されてもよい。
【０２５４】
そして、初期化が完了すると、次のステップＳ１０２で、同期処理部３３０が、システムパラメタ３１３とタイマ３３１を参照して、前回の同期処理から所定時間が経過したか否かを判断する。なお、ステップＳ１０２での「所定時間」は、例えば図５のシステムパラメタ３１３ａのように同期スケジュールが１時間に１回と決められている例では、１時間である。
【０２５５】
そして、前回の同期処理から所定時間が経過している場合（すなわち、タイマ３３１が示す時刻が、同期スケジュールで決められた時刻に達している場合）、処理はステップＳ１０３に移行する。逆に、前回の同期処理からまだ所定時間が経過していない場合は、処理はステップＳ１０４に移行する。
【０２５６】
ステップＳ１０３で同期処理部３３０は、ネットワークＩ／Ｆ３０８とネットワーク２１１を介してＮＴＰサーバ２１２にアクセスし、ＮＴＰにしたがってタイマ３３１の時刻を修正する。そして、同期処理部３３０は、修正後のタイマ３３１の時刻にしたがって同期フレーム６５０を生成し、送信機３０３に出力する。すると、送信機３０３は、スイッチ３０２とアンテナ３０１を介して同期フレーム６５０を送信する。そして、処理はステップＳ１０４に移行する。
【０２５７】
ステップＳ１０４でハローフレーム生成部３３２は、システムパラメタ３１３とタイマ３３１を参照して、前回のハローフレームの送信から所定時間が経過したか否かを判断する。なお、ステップＳ１０４での「所定時間」は、例えば図５のシステムパラメタ３１３ａのようにハローフレーム送信スケジュールが１分に１回と決められている例では、１分である。
【０２５８】
そして、前回のハローフレームの送信から所定時間が経過している場合（すなわち、タイマ３３１が示す時刻が、ハローフレーム送信スケジュールで決められた時刻に達している場合）、処理はステップＳ１０５に移行する。逆に、前回のハローフレームの送信からまだ所定時間が経過していない場合は、処理はステップＳ１０６に移行する。
【０２５９】
ステップＳ１０５でハローフレーム生成部３３２は、基準点としてゲートウェイ１０１自身を指定し、ホップ数として０を指定したハローフレーム６２１を生成し、送信機３０３に出力する。すると、送信機３０３は、スイッチ３０２とアンテナ３０１を介してハローフレーム６２１を送信する。そして、処理はステップＳ１０６に移行する。
【０２６０】
ステップＳ１０６で受信処理部３２１は、受信機３０５Ａ〜３０５Ｄのいずれかから、フレームを受信したことを示す通知を受けたか否かを判断する。ゲートウェイ１０１が何らかのフレームを受信した場合は、受信処理部３２１は、受信機３０５Ａ〜３０５Ｄのいずれかから、フレームを受信したことを示す通知を受けているので、受信処理部３２１は「受信あり」と判断し、処理はステップＳ１０７に移行する。逆に、ゲートウェイ１０１が何のフレームも受信していない場合、受信処理部３２１は「受信なし」と判断し、処理はステップＳ１０２に戻る。
【０２６１】
ステップＳ１０７でタイプ判断部３２２は、フレームの受信を受信処理部３２１に通知した受信機（受信機３０５Ａ〜３０５Ｄのいずれか）から通知された先頭アドレスに基づいて、受信バッファ領域３１２から、受信されたフレームのタイプを読み出す。そして、タイプ判断部３２２は、読み出したタイプの値が「Ｒｅｇ」であるか否か（すなわち受信されたフレームが登録要求フレーム６７０であるか否か）を判断する。
【０２６２】
そして、タイプの値が「Ｒｅｇ」である場合、タイプ判断部３２２は、登録要求フレーム６７０の受信に伴う処理を行うよう登録処理部３２７に要求するとともに、受信時刻取得部３２５に受信時刻の取得を要求し、処理はステップＳ１０８に移行する。逆に、タイプの値が「Ｒｅｇ」以外の場合、処理はステップＳ１１０に移行する。
【０２６３】
ステップＳ１０８で受信時刻取得部３２５は、タイマ３３１を参照して、登録要求フレーム６７０の受信時刻として現在時刻を取得し、取得した受信時刻を登録処理部３２７に出力する。
【０２６４】
また、次のステップＳ１０９で登録処理部３２７は、登録要求フレーム６７０のＧＳであるノード装置４００を、登録ノードテーブル３１４ａに登録する。
例えば、ステップＳ１０６で受信が検出されたフレームが、図９の登録要求フレーム６７１であるとする。この場合、ＧＳフィールドの値は、ノード装置１３７を示す「ＩＤ１３７」である。そこで、ステップＳ１０９で登録処理部３２７は、登録ノードテーブル３１４ａにおいて、「ノードＩＤ」フィールドの値が「ＩＤ１３７」のエントリを検索する。検索の結果、エントリが見つかったら、登録処理部３２７はステップＳ１０９でさらに次の（Ｅ１）〜（Ｅ４）の処理を行う。なお、ステップＳ１０９では（Ｅ４）の処理が省略されてもよい。
【０２６５】
（Ｅ１）登録処理部３２７は、見つかったエントリの「ＩＰアドレス」フィールドに、受信された登録要求フレーム６７１のＩＰアドレスをコピーする。
（Ｅ２）登録処理部３２７は、見つかったエントリの「ＭＡＣアドレス」フィールドに、受信された登録要求フレーム６７１のＭＡＣアドレスをコピーする。
（Ｅ３）登録処理部３２７は、見つかったエントリの「登録時刻」フィールドに、受信時刻取得部３２５から出力された受信時刻を設定する。
（Ｅ４）登録処理部３２７は、受信された登録要求フレーム６７１においてＧＳとＬＳの値が等しいか否かを判定する。そして、２つの値が等しければ、登録処理部３２７は、見つかったエントリの「１ホップ」フィールドにＴｒｕｅという値を設定する。逆に、２つの値が異なれば、登録処理部３２７は、見つかったエントリの「１ホップ」フィールドにＦａｌｓｅという値を設定する。
【０２６６】
また、検索の結果、登録ノードテーブル３１４ａ内にエントリが見つからなかった場合、登録処理部３２７はステップＳ１０９でさらに登録ノードテーブル３１４ａに新たなエントリを作成する。そして、登録処理部３２７は、作成したエントリに関して、上記（Ｅ１）〜（Ｅ４）と同様の処理を行う。なお、新たなエントリが作成される場合も、上記と同様に（Ｅ４）の処理は省略可能である。
【０２６７】
以上のようにして、ステップＳ１０９における登録が完了すると、処理はステップＳ１０２に戻る。
【０２６８】
さて、ステップＳ１１０でタイプ判断部３２２は、ステップＳ１０７で読み出したタイプの値が「Ｈｅｌｌｏ」であるか否か（すなわち受信されたフレームが広義のハローフレーム６１０であるか否か）を判断する。なお、本実施形態においては、タイプの値が「Ｈｅｌｌｏ」の広義のハローフレーム６１０のうち、切り換え命令フレーム６３０と復帰命令フレーム６４０は、ゲートウェイ１０１自身が送信するフレームであって、ゲートウェイ１０１によって受信されることはない。したがって、タイプの値が「Ｈｅｌｌｏ」ならば、受信されたフレームはハローフレーム６２０であり、サブタイプの値も「Ｈｅｌｌｏ」である。
【０２６９】
よって、タイプの値が「Ｈｅｌｌｏ」の場合、タイプ判断部３２２は、ハローフレーム６２０の受信に伴う処理を行うよう登録処理部３２７に要求するとともに、受信時刻取得部３２５に受信時刻の取得を要求し、処理はステップＳ１１１に移行する。逆に、タイプの値が「Ｈｅｌｌｏ」以外の場合、処理はステップＳ１１５に移行する。
【０２７０】
ステップＳ１１１で受信時刻取得部３２５は、タイマ３３１を参照して、登録要求フレーム６７０の受信時刻として現在時刻を取得し、取得した受信時刻を登録処理部３２７に出力する。
【０２７１】
また、次のステップＳ１１２で登録処理部３２７は、受信されたハローフレーム６２０に指定されたホップ数が１であるか、それとも２以上であるかを判断する。そして、ホップ数が１のとき処理はステップＳ１１３に移行し、ホップ数が２以上のとき処理はステップＳ１１４に移行する。
【０２７２】
なお、説明の簡略化のため、図１０〜１２の説明においては、ハローフレーム６２０に基準点として設定されるのはゲートウェイ１０１のノードＩＤである「ＩＤ１０１」のみであると仮定する。
【０２７３】
もちろん、実施形態によっては、ゲートウェイ１０１以外のノード装置４００のノードＩＤが、ハローフレーム６２０に基準点として設定される場合があってもよい。例えば、ゲートウェイ１０１以外のノード装置４００がＧＤとして設定され得る実施形態では、ノード装置４００のノードＩＤが基準点として設定されたハローフレーム６２０が送信されることもある。しかし、そのようなハローフレーム６２０を利用するか否かということは、ゲートウェイ１０１からの１ホップの範囲内での輻輳に関わる諸々の制御とは関連がない。そのため、上記の仮定をおくことにより、本明細書では図１０〜１２の説明を簡略化する。
【０２７４】
上記の仮定によれば、受信されたハローフレーム６２０の基準点としてはゲートウェイ１０１自身のノードＩＤが指定されている。よって、ハローフレーム６２０に指定されたホップ数とは、ゲートウェイ１０１からのホップ数にほかならない。
【０２７５】
そこで、ステップＳ１１３で登録処理部３２７は、受信されたハローフレーム６２０のＬＳであるノード装置４００までのゲートウェイ１０１からのホップ数が１である旨を登録ノード情報３１４に登録する。また、登録処理部３２７は、ハローフレーム６２０を受信バッファ領域３１２から削除する。そして、処理はステップＳ１０２に戻る。
【０２７６】
なお、ステップＳ１１３の詳細は、例えば、次のとおりである。まず、登録処理部３２７は、受信されたハローフレーム６２０のＬＳと等しいノードＩＤを持つエントリを登録ノードテーブル３１４ａにおいて検索する。検索の結果エントリが見つかれば、登録処理部３２７は、見つかったエントリの１ホップフィールドにＴｒｕｅという値を設定する。なお、検索の結果エントリが見つからなければ、登録処理部３２７は、特に何もしない。
【０２７７】
また、ステップＳ１１４で登録処理部３２７は、受信されたハローフレーム６２０のＬＳであるノード装置４００までのゲートウェイ１０１からのホップ数が２以上である旨を登録ノード情報３１４に登録する。また、登録処理部３２７は、ハローフレーム６２０を受信バッファ領域３１２から削除する。
【０２７８】
ステップＳ１１４の詳細はステップＳ１１３と類似であり、相違点は、登録処理部３２７がＴｒｕｅという値ではなくＦａｌｓｅという値を設定することだけである。そして、処理はステップＳ１０２に戻る。
【０２７９】
さて、ステップＳ１１５でタイプ判断部３２２は、ステップＳ１０７で読み出したタイプの値が「Ｓｙｎｃ」であるか否か（すなわち受信されたフレームが同期フレーム６５０であるか否か）を判断する。そして、タイプの値が「Ｓｙｎｃ」の場合、処理はステップＳ１１６に移行する。また、タイプの値が「Ｓｙｎｃ」ではない場合、処理は図１１のステップＳ１１７に移行する。
【０２８０】
ステップＳ１１６でタイプ判断部３２２は、受信機３０５Ａ〜３０５Ｄのいずれかによって今回受信されたフレームを破棄する。なぜなら、本実施形態では、ゲートウェイ１０１における同期の結果に応じてノード装置４００が同期処理を行うが、ゲートウェイ１０１は、ノード装置４００における同期の結果に応じて同期処理を行ったりはしないからである。そのため、ノード装置４００からの同期フレーム６５０をゲートウェイ１０１が受信した場合、ゲートウェイ１０１は、不要な同期フレーム６５０をステップＳ１１６で破棄する。破棄の後、処理はステップＳ１０２に戻る。
【０２８１】
さて、図１１のステップＳ１１７で、タイプ判断部３２２は、ステップＳ１０７で読み出したタイプの値が「Ｄａｔａ」であるか否か（すなわち受信されたフレームがデータフレーム６６０であるか否か）を判断する。そして、タイプの値が「Ｄａｔａ」ではない場合、処理はステップＳ１１８に移行する。
【０２８２】
逆に、タイプの値が「Ｄａｔａ」である場合、タイプ判断部３２２は、次のように動作する。すなわち、タイプ判断部３２２は、ＲＳＳＩの計算をＲＳＳＩ計算部３２３に要求し、ＦＣＳのチェックをＦＣＳチェック部３２４に要求し、受信時刻の取得を受信時刻取得部３２５に要求する。また、タイプ判断部３２２は、データフレーム６６０の受信に伴う処理を行うよう、データ処理部３２６と登録処理部３２７に要求する。そして、処理はステップＳ１１９に移行する。
【０２８３】
ステップＳ１１８は例外処理のステップである。本実施形態において、図８〜９に示したタイプのみが使われる場合、ステップＳ１１８では、具体的には、ＣＰＵ３０６が、不正なタイプのフレームが受信された場合のエラー処理を行う。
【０２８４】
しかし、もちろん実施形態によっては、図８〜９に示した以外のタイプのフレームがさらに定義されていてもよい。その場合、ＣＰＵ３０６は、タイプ判断部３２２が判断したフレームのタイプに応じた適宜の処理を、ステップＳ１１８において行う。したがって、ステップＳ１１８の詳細は実施形態に応じて任意である。ステップＳ１１８の実行後、処理は図１０のステップＳ１０２に戻る。
【０２８５】
さて、ステップＳ１１９〜Ｓ１２１でＦＣＳチェック部３２４は、誤り率を計算するための前処理を行う。本実施形態では、ＦＣＳチェック部３２４は、誤り率を計算するために「受信カウンタ」と「エラーカウンタ」という２つのカウンタを持つ。また、ＦＣＳチェック部３２４は、過去のエラーカウンタ値を退避して記憶する。
【０２８６】
なお、上記のステップＳ１０１の説明では省略したが、例えばステップＳ１０１において、ＦＣＳチェック部３２４は、受信カウンタとエラーカウンタの値を０に初期化する。さらに、ステップＳ１０１でＦＣＳチェック部３２４は、過去のエラーカウンタ値を、まだエラーカウンタからの値のコピーが行われていないことを示す特別な値（例えば−１）に初期化する。
【０２８７】
また、以下では説明の便宜上、受信カウンタとエラーカウンタはともに、０から２５５まで数えることができる８ビットのカウンタであるとする。しかし、カウンタのビット数は、もちろん実施形態に応じて任意である。
【０２８８】
具体的には、ステップＳ１１９でＦＣＳチェック部３２４は、受信カウンタをインクリメントする。
【０２８９】
そして、次のステップＳ１２０でＦＣＳチェック部３２４は、受信カウンタの値が０か否かを判断する。受信カウンタの値が０のとき、処理はステップＳ１２１に移行し、受信カウンタの値が０でないとき、処理はステップＳ１２２に移行する。なお、受信カウンタの値が０の場合とは、受信カウンタの値が２５５のときにステップＳ１１９でインクリメントが行われた場合のことである。
【０２９０】
ステップＳ１２１でＦＣＳチェック部３２４は、エラーカウンタの値を過去のエラーカウンタ値として退避する。そして、受信カウンタの値が０に戻ったのに合わせるため、ＦＣＳチェック部３２４は、エラーカウンタをクリアする。その後、処理はステップＳ１２２に移行する。
【０２９１】
ステップＳ１２２でＲＳＳＩ計算部３２３は、ＲＳＳＩを計算し、計算したＲＳＳＩを輻輳判断部３２８に出力する。
【０２９２】
また、次のステップＳ１２３で受信時刻取得部３２５は、タイマ３３１を参照して、データフレーム６６０の受信時刻として現在時刻を取得する。受信時刻取得部３２５は、取得した時刻を登録処理部３２７と輻輳判断部３２８の双方に出力する。
【０２９３】
さらに、ステップＳ１２４で登録処理部３２７は、登録ノードテーブル３１４ａにおいて、受信されたデータフレーム６６０のＧＳとノードＩＤが一致するエントリを検索する。検索の結果、エントリが見つかった場合、登録処理部３２７は、見つかったエントリにおいて、受信時刻取得部３２５から出力された時刻を、データ受信時刻として設定する。
【０２９４】
逆に、検索の結果、エントリが見つからなかった場合、登録処理部３２７は、登録ノードテーブル３１４ａに新たなエントリを追加する。そして、登録処理部３２７は、追加したエントリにおいて、受信されたデータフレーム６６０のＧＳをノードＩＤに設定するとともに、受信時刻取得部３２５から出力された時刻をデータ受信時刻として設定する。
【０２９５】
以上のステップＳ１２４の処理により、登録済みのノード装置４００からデータフレーム６６０が届いた場合か、未登録のノード装置４００から登録要求の前に突然データフレーム６６０が届いた場合かによらず、適切に登録ノードテーブル３１４ａが更新される。
【０２９６】
そして、次のステップＳ１２５でＦＣＳチェック部３２４は、受信されたデータフレーム６６０を受信バッファ領域３１２から読み出し、ＧＤからアプリケーションデータまでの範囲からＦＣＳを計算する。また、ＦＣＳチェック部３２４は、計算したＦＣＳと、受信されたデータフレーム６６０に含まれるＦＣＳを比較することで、エラーの有無を確認する。
【０２９７】
続いて、ステップＳ１２６でＦＣＳチェック部３２４は、２つのＦＣＳが等しければ「エラーがない」と判断し、２つのＦＣＳが等しくなければ「エラーがある」と判断する。また、ＦＣＳチェック部３２４は、判断結果をデータ処理部３２６に通知する。そして、エラーがある場合、処理はステップＳ１２７に移行し、エラーがない場合、処理はステップＳ１２９に移行する。
【０２９８】
ステップＳ１２７でＦＣＳチェック部３２４は、受信されたデータフレーム６６０を破棄する（つまり、データフレーム６６０を受信バッファ領域３１２から削除する）。なお、データ処理部３２６は、ステップＳ１２６でのＦＣＳチェック部３２４からの通知により、「データ処理部３２６は、受信されたデータフレーム６６０を処理する必要がない」と認識することができる。
【０２９９】
そして、次のステップＳ１２８でＦＣＳチェック部３２４は、エラーカウンタをインクリメントする。その後、処理はステップＳ１３０に移行する。
他方、ステップＳ１２６でＦＣＳチェック部３２４から「エラーがない」という通知を受けたデータ処理部３２６は、ステップＳ１２９で、受信されたデータフレーム６６０に関する処理を行う。具体的には、データ処理部３２６は、データフレーム６６０のペイロードであるアプリケーションデータと、データフレーム６６０のＧＳフィールドの値を含むデータを生成する。そして、データ処理部３２６は、生成したデータを、ネットワークＩ／Ｆ３０８とネットワーク２１１を介してデータサーバ２１３に送信する。
【０３００】
なお、データ処理部３２６は、データフレーム６６０のＧＳと同じ値をノードＩＤとして持つ登録ノードテーブル３１４ａのエントリから、ＩＰアドレスとＭＡＣアドレスをさらに読み出してもよい。そして、データ処理部３２６は、データサーバ２１３に送信するためのデータに、さらに、読み出したＩＰアドレスとＭＡＣアドレスを含めてもよい。
【０３０１】
また、実施形態によっては、ゲートウェイ１０１がデータサーバ２１３を兼ねてもよい。その場合、ステップＳ１２９でデータ処理部３２６は、上記と同様にデータを生成し、生成したデータをメモリ３０７内の不図示のデータベースに蓄積する。
【０３０２】
また、データサーバ２１３へのデータの送信後、データ処理部３２６は、データフレーム６６０を受信バッファ領域３１２から削除する。そして処理はステップＳ１３０に移行する。
【０３０３】
ステップＳ１３０で輻輳判断部３２８は、現在の輻輳フラグ３１５ａの値を「前の輻輳フラグ」としてコピーする。詳しくはステップＳ１３９とともに後述するが、前の輻輳フラグを利用することで、輻輳判断部３２８は、輻輳からの回復を検出することができる。
【０３０４】
また、ステップＳ１３０に続いて、図１２に示すステップＳ１３１で、ＦＣＳチェック部３２４は、受信カウンタとエラーカウンタの値を用いて誤り率を計算する。誤り率の計算方法は実施形態に応じて任意でよい。
【０３０５】
例えば、ＦＣＳチェック部３２４は、過去のエラーカウンタ値が上記の特別な値（例えば−１）である場合は式（１）により、それ以外の場合は式（２）により、誤り率を計算してもよい。
rate=err/rcv                          (1)
rate=(err+errOld)/(rcv+256)            (2)
【０３０６】
なお、式（１）と（２）において、「ｒａｔｅ」は誤り率を示し、「ｅｒｒ」はエラーカウンタの値を示し、「ｒｃｖ」は受信カウンタの値を示し、「ｅｒｒＯｌｄ」は過去のエラーカウンタ値を示す。また、式（２）の２５６（＝２８）という値は、「２つのカウンタはともに８ビットのカウンタである」という上記の仮定に基づく。
【０３０７】
ＦＣＳチェック部３２４は、計算した誤り率を輻輳判断部３２８に出力する。そして、処理はステップＳ１３２に移行する。ステップＳ１３２〜Ｓ１３５は、輻輳判断部３２８が、ゲートウェイ１０１から１ホップの範囲内で輻輳が生じているか否かを判断するためのステップである。本実施形態では、以下の（Ｆ１）〜（Ｆ３）の条件がすべて成立するときに輻輳判断部３２８が輻輳を検出する。
【０３０８】
（Ｆ１）システムパラメタ３１３ａのデータ収集スケジュールに定められた時刻から、ゲートウェイ１０１がすべての登録ノード装置からそれぞれデータフレーム６６０を受信するまでにかかった時間が、システムパラメタ３１３ａの許容遅延時間を超えている。
（Ｆ２）登録ノード装置の数が、システムパラメタ３１３ａの最大登録ノード数を超えている。
（Ｆ３）ＲＳＳＩがシステムパラメタ３１３ａの最低受信感度以上であるにもかかわらず、ＦＣＳチェック部３２４によって検出される誤り率がシステムパラメタ３１３ａの臨界誤り率を超えている。
【０３０９】
なお、条件（Ｆ１）は本実施形態に特有の条件である。つまり、本実施形態では、すべての登録ノード装置が同じ時刻にデータフレーム６６０を送信しようとするので、図６を参照して説明したように、通信システム１００のネットワーク全体の負荷Ｌが、データの収集にかかる時間Ｔから推定可能である。そして、通信システム１００のネットワーク全体の負荷Ｌが高ければ、当然、通信システム１００内で最もトラフィックが集中する範囲（すなわちゲートウェイ１０１から１ホップの範囲）での負荷も高く、当該範囲での輻輳も生じやすい。
【０３１０】
それだけでなく、許容遅延時間（すなわち図６の閾値Ｔ０）が適切に定義されているという前提のもとでは、もしゲートウェイ１０１から１ホップの範囲で実際に輻輳が生じていれば、データの収集にかかる時間Ｔは、許容遅延時間を超えるであろう。
【０３１１】
つまり、ゲートウェイ１０１から１ホップの範囲で輻輳が生じると、ゲートウェイ１０１から１ホップ目のノード装置１１１〜１１３からゲートウェイ１０１へのデータフレーム６６０の送信が、なかなかすぐには成功しない。その結果、データの収集にかかる時間Ｔは、許容遅延時間を超えてしまう。
【０３１２】
なお、輻輳が発生した場合に、ノード装置１１１〜１１３からゲートウェイ１０１へのデータフレーム６６０の送信に時間がかかる理由は、例えば、下記の（Ｇ１）〜（Ｇ３）などである。
【０３１３】
（Ｇ１）コリジョンの発生により送信が失敗し、失敗の結果として、送信のリトライが発生する。
（Ｇ２）無線通信システムでは、所定時間内にＡＣＫ（acknowledgment）信号が受信されない場合に、コリジョンの発生と見なされるので、コリジョンの検知までに上記所定時間の待ち時間がかかる。
（Ｇ３）物理層のプロトコルによっては、リトライのたびに、バックオフ時間が次第に長く設定されるようになる。
【０３１４】
よって、本実施形態では、条件（Ｆ１）が成立することは、輻輳の発生をうかがわせる兆候の１つである。ただし、本実施形態では、条件（Ｆ１）は、輻輳が生じていることの十分条件とは見なされない。なぜなら、例えば、登録ノード装置の故障や、通信システム１００内での送信経路の偶然の変動などに起因して、輻輳が発生していなくても、条件（Ｆ１）が成立することがあり得るからである。
【０３１５】
例えば、ある１つの登録ノード装置が偶然故障していることがあり得る。すると、故障している当該登録ノード装置は、スケジュール情報４１５で定められたデータ送信スケジュールとは全く異なる時刻にデータフレーム６６０を送信することがあり得る。
【０３１６】
また、通信システム１００は、アドホックネットワークシステムでもよい。すると、通信システム１００では、各ノード装置４００からゲートウェイ１０１までの経路は、ハローフレーム６２０の交換などを通じて自律分散的に決定され得る。
【０３１７】
また、経路は、環境の変化に応じて動的に変化し得る。環境の変化の具体例は、ノード装置４００の追加もしくは削除、干渉源２０１の出現もしくは移動、遮蔽物の出現もしくは移動などである。
【０３１８】
したがって、ある時点で偶然、ある登録ノード装置からゲートウェイ１０１へ向かう経路にループができてしまうこともあり得る。そして、通信システム１００内で、ループしない経路が構築されるまでに、例えば５分間かかるかもしれない。すると、たとえ輻輳が発生していなくても、データ収集スケジュールに定められた時刻から、ゲートウェイ１０１がすべての登録ノード装置からデータを収集し終わる時刻までの遅延時間は、許容遅延時間を超えてしまうかもしれない。
【０３１９】
以上のとおりであるから、条件（Ｆ１）は、本実施形態では、輻輳の検出の必要条件として利用され、十分条件とは見なされない。
【０３２０】
また、例えば図１の通信システム１００に多数のノード装置４００が追加され、追加された各ノード装置４００が登録要求フレーム６７０をゲートウェイ１０１に送信した場合、登録ノード装置の数が最大登録ノード数を超えることがある。登録ノード装置の数が増えるほど、データ収集スケジュールで決められた時刻の直後の、ゲートウェイ１０１から１ホップの範囲内の通信量は増え、当該範囲内で輻輳が生じやすくなる。
【０３２１】
つまり、登録ノード装置の数が最大登録ノード数を超えると、ゲートウェイ１０１は、デフォルトチャネルＣｈＡ用の受信機３０５Ａだけでは、ゲートウェイ１０１から１ホップ目のノード装置からのデータフレーム６６０を受信しきれなくなる。よって、条件（Ｆ２）も、本実施形態では、輻輳の検出の必要条件の１つとして利用される。
【０３２２】
また、条件（Ｆ３）は、データ送信スケジュールが予め決められている本実施形態に限らず、様々な実施形態で有効な条件である。条件（Ｆ３）の意味を説明すれば、下記のとおりである。
【０３２３】
ＲＳＳＩが最低受信感度未満のときは、受信電力が不十分なため、そもそも「ゲートウェイ１０１がフレームを正しく受信することが可能である」という保証がない。よって、ＲＳＳＩが最低受信感度未満のときは、たとえＦＣＳチェック部３２４によって検出される誤り率が臨界誤り率を超えていたとしても、「受信電力不足によって雑音等の影響で誤りが生じている」と見なすのが妥当である。つまり、ＲＳＳＩが最低受信感度未満のときは、「輻輳が生じている」と見なすのは不適当である。
【０３２４】
他方、ＲＳＳＩが最低受信感度以上のとき、次の２つの場合があり得る。
（Ｈ１）受信環境が良好な場合。この場合、ＦＣＳチェック部３２４によって検出される誤り率は低い。
（Ｈ２）ゲートウェイ１０１から１ホップの範囲内のノード装置１１１〜１１３からの大量のフレーム送信に起因して、あるいはゲートウェイ１０１の近傍に干渉源２０１が存在することに起因して、輻輳が発生した場合。この場合、ＦＣＳチェック部３２４によって検出される誤り率は高い。
【０３２５】
よって、臨界誤り率が適切に設定されていれば、（Ｈ１）の場合と（Ｈ２）の場合が弁別可能である。したがって、本実施形態では、条件（Ｆ３）が輻輳の検出の必要条件の１つとして使われる。
【０３２６】
したがって、本実施形態の輻輳判断部３２８は、以上説明した条件（Ｆ１）〜（Ｆ３）がすべて成立するときにのみ輻輳を検出する。具体的には、図１２のステップＳ１３２は条件（Ｆ１）に関する判断のステップであり、ステップＳ１３３は条件（Ｆ２）に関する判断のステップであり、ステップＳ１３４〜Ｓ１３５は条件（Ｆ３）に関する判断のステップである。
【０３２７】
具体的には、ステップＳ１３２で輻輳判断部３２８は、システムパラメタ３１３ａを参照し、データ収集スケジュールで決められた時刻に許容遅延時間を足した時刻を計算する。そして、輻輳判断部３２８は、ステップＳ１２３で受信時刻取得部３２５が取得して輻輳判断部３２８に出力した、データフレーム６６０の受信時刻が、計算した時刻よりも遅いか否かを判断する。
【０３２８】
受信時刻が、計算された時刻よりも遅い場合、条件（Ｆ１）が成立するので、処理はステップＳ１３３に移行する。
【０３２９】
逆に、受信時刻が、計算された時刻と同じか計算された時刻よりも早い場合、条件（Ｆ１）が最終的に成立するか否かはまだ不明である。そのため、輻輳判断部３２８は「現時点では条件（Ｆ１）は成立していない」と判断する。そして、処理はステップＳ１３８に移行する。
【０３３０】
例えば、図４の例のように、ノード装置１３２からのデータフレーム６６０の受信時刻が１５時０分３５．２４７秒であるとする。この場合、その後、すべての登録ノードからのデータフレーム６６０の受信が許容遅延時間以内に終了すれば、最終的に「条件（Ｆ１）が不成立である」と確定する。しかし、例えばノード装置１４３からのデータフレーム６６０が１５時５分より後にゲートウェイ１０１に受信される場合もあり得る。このように、ノード装置１３２からのデータフレーム６６０が受信された時点では、条件（Ｆ１）が最終的に成立するか否かは未確定である。
【０３３１】
したがって、輻輳判断部３２８は、受信時刻が、計算された時刻と同じか計算された時刻よりも早い場合、上記のように「現時点では条件（Ｆ１）は成立していない」と判断する。
【０３３２】
また、ステップＳ１３３で輻輳判断部３２８は、登録ノードテーブル３１４ａのエントリ数を数え、エントリ数がシステムパラメタ３１３ａの最大登録ノード数を超えているか否かを判断する。エントリ数が最大登録ノード数を超えている場合、条件（Ｆ２）が成立するので処理はステップＳ１３４に移行する。逆に、エントリ数が最大登録ノード数以下の場合、条件（Ｆ２）は成立しないので処理はステップＳ１３８に移行する。
【０３３３】
そして、ステップＳ１３４で輻輳判断部３２８は、ステップＳ１２２でＲＳＳＩ計算部３２３から出力されたＲＳＳＩが、システムパラメタ３１３ａの最低受信感度以上であるか否かを判断する。ＲＳＳＩが最低受信感度以上のとき、条件（Ｆ３）が成立する可能性があるので、処理はステップＳ１３５に移行する。逆に、ＲＳＳＩが最低受信感度未満のとき、上記のとおり条件（Ｆ３）は成立しないので、処理はステップＳ１３８に移行する。
【０３３４】
ステップＳ１３５で輻輳判断部３２８は、ステップＳ１３１でＦＣＳチェック部３２４から出力された誤り率が、システムパラメタ３１３ａの臨界誤り率を超えているか否かを判断する。
【０３３５】
ステップＳ１３５が実行されるのは、ＲＳＳＩが最低受信感度以上のときなので、誤り率が臨界誤り率を超えていれば条件（Ｆ３）が成立する。また、ステップＳ１３５が実行されるのは、条件（Ｆ１）と（Ｆ２）が成立することが既にステップＳ１３２とＳ１３３で判明している場合である。
【０３３６】
よって、誤り率が臨界誤り率を超えていれば、輻輳判断部３２８は、「輻輳が発生している」と判断する。そして、処理はステップＳ１３６に移行する。
逆に、誤り率が臨界誤り率を超えていなければ、条件（Ｆ３）は成立しない。したがって、輻輳判断部３２８は「輻輳は発生していない」と判断する。そして、処理はステップＳ１３８に移行する。
【０３３７】
さて、ステップＳ１３６〜Ｓ１３７は、輻輳判断部３２８が輻輳を検出した場合に実行される。具体的には、ステップＳ１３６で輻輳判断部３２８は、輻輳フラグ３１５ａをＴｒｕｅに設定し、輻輳を検出したことを命令発行部３２９に通知する。
【０３３８】
そして、次のステップＳ１３７で命令発行部３２９は、切り換え命令フレーム６３０を生成し、送信機３０３に出力する。すると、送信機３０３が、スイッチ３０２とアンテナ３０１を介して切り換え命令フレーム６３０を送信する。
【０３３９】
なお、送信された切り換え命令フレーム６３０は、通信可能エリア１０２内のノード装置１１１、１１２、１１３、および１２６により受信される。また、図８を参照して説明したように、切り換え命令フレーム６３０の具体的な形式は実施形態に応じて様々である。切り換え命令フレーム６３０の送信後、処理は図１０のステップＳ１０２に戻る。
【０３４０】
さて、ステップＳ１３８〜Ｓ１４０は、輻輳判断部３２８が輻輳を検出しなかった場合に実行される。具体的には、ステップＳ１３８で輻輳判断部３２８は、輻輳フラグ３１５ａをＦａｌｓｅに設定する。
【０３４１】
そして、次のステップＳ１３９で輻輳判断部３２８は、ステップＳ１３０で値を設定した「前の輻輳フラグ」を参照する。現在の輻輳フラグ３１５ａの値がＦａｌｓｅであることに着目すると、前の輻輳フラグの値がＴｒｕｅの場合とは、すなわち輻輳が解消した場合である。また、前の輻輳フラグの値がＦａｌｓｅの場合とは、輻輳していない状態が持続している場合である。
【０３４２】
よって、前の輻輳フラグの値がＴｒｕｅのとき、輻輳判断部３２８は輻輳の解消を検出し、輻輳の解消を検出したことを命令発行部３２９に通知する。そして、処理はステップＳ１４０に移行する。他方、前の輻輳フラグの値がＦａｌｓｅの場合、処理は図１０のステップＳ１０２に戻る。
【０３４３】
また、ステップＳ１４０で命令発行部３２９は、復帰命令フレーム６４０を生成し、送信機３０３に出力する。すると、送信機３０３が、スイッチ３０２とアンテナ３０１を介して復帰命令フレーム６４０を送信する。
【０３４４】
なお、送信された復帰命令フレーム６４０は、通信可能エリア１０２内のノード装置１１１、１１２、１１３、および１２６により受信される。復帰命令フレーム６４０の送信後、処理は図１０のステップＳ１０２に戻る。
【０３４５】
以上のようにして、ゲートウェイ１０１は、輻輳の発生を監視し、輻輳が発生した場合は切り換え命令フレーム６３０を送信し、輻輳が解消した場合は復帰命令フレーム６４０を送信する。すなわち、ゲートウェイ１０１は、切り換え命令フレーム６３０と復帰命令フレーム６４０の送信により、ゲートウェイ１０１から１ホップの範囲内にあるノード装置４００の送信チャネルを間接的に制御する。
【０３４６】
その結果、通信負荷は、必要に応じて複数のチャネルに分散されるが、輻輳が発生しなければデフォルトチャネルのみが使われる。したがって、有限のリソースである無線通信チャネルが効率的に活用される。
【０３４７】
なお、より好ましくは、ステップＳ１３６の実行後、輻輳判断部３２８は、前の輻輳フラグを参照し、前の輻輳フラグの値がＦａｌｓｅである場合にのみ、ステップＳ１３７を実行するとよい。つまり、前の輻輳フラグの値がＴｒｕｅの場合とは、「既に輻輳が検出されており、まだなお輻輳が持続している」という場合なので、ステップＳ１３７は省略されることが好ましい。
【０３４８】
続いて、図１３〜１７のフローチャートを参照して、ノード装置４００が行う処理について説明する。まず概要を説明すると、下記のとおりである。なお、下記の概要の説明に登場しないステップは、条件分岐または例外処理のためのステップである。
【０３４９】
ノード装置４００は、まずステップＳ２０１〜Ｓ２０８で初期化を行う。ステップＳ２０９以降は、繰り返し実行される。
ステップＳ２０９〜Ｓ２２４でノード装置４００は、スケジュール情報４１５にしたがって適宜フレームを送信する。その後、ノード装置４００は、もしフレームを受信していれば、ステップＳ２２６以降の処理を適宜行う。
【０３５０】
すなわち、ノード装置４００は、同期フレーム６５０を受信した場合はステップＳ２２７〜Ｓ２２８を実行する。また、ノード装置４００は、通信システム１００内でのマルチホップ送信の対象であるデータフレーム６６０または登録要求フレーム６７０を受信した場合は、ステップＳ２３１〜Ｓ２３８を実行する。
【０３５１】
また、ノード装置４００は、切り換え命令フレーム６３０を受信した場合は、ステップＳ２４６〜Ｓ２４９を実行し、復帰命令フレーム６４０を受信した場合は、ステップＳ２４４を実行する。また、ノード装置４００は、ハローフレーム６２０を受信した場合は、ステップＳ２５２〜Ｓ２５７を実行する。
【０３５２】
以上概要を説明したノード装置４００の処理について、以下では詳細に説明する。
ノード装置４００に電源が入れられると、まずステップＳ２０１で、ノード装置４００は、同期フレーム６５０を受信するまで待機する。具体的は、同期処理部４２６が、タイプ判断部４２１から同期フレーム６５０の受信を通知されるまで、ノード装置４００は待機する。
【０３５３】
ノード装置４００に隣接する隣接ノード装置が同期フレーム６５０を送信すると、アンテナ４０１とスイッチ４０２を介して、受信機４０４が同期フレーム６５０を受信する。そして、受信機４０４は、受信した同期フレーム６５０を送受信バッファ領域４１１に出力する。
【０３５４】
また、受信機４０４は、フレームを受信したことと、受信したフレームの送受信バッファ領域４１１における先頭アドレスを、タイプ判断部４２１に通知する。すると、タイプ判断部４２１は、送受信バッファ領域４１１を参照して、受信されたフレームが同期フレーム６５０であることを認識する。そして、タイプ判断部４２１は、同期処理部４２６に対して、同期フレーム６５０が受信されたことと、同期フレーム６５０の送受信バッファ領域４１１における先頭アドレスを通知する。
【０３５５】
ノード装置４００に電源が入れられてから、以上のようにしてタイプ判断部４２１からの通知を受けるまで、同期処理部４２６はステップＳ２０１で待機する。そして、同期処理部４２６がタイプ判断部４２１からの通知を受けると、処理はステップＳ２０２に移行する。
【０３５６】
ステップＳ２０２で同期処理部４２６は、同期フレーム６５０に基づいてタイマ４２７を設定する。具体的には、まず、同期処理部４２６は、受信された同期フレーム６５０のペイロードに含まれる時刻情報を送受信バッファ領域４１１から読み出す。そして、同期処理部４２６は、読み出した時刻情報が示す時刻（以下「ｔ１」とする）に所定の時間（以下「Δｔ」とする）を足して得られる時刻を、タイマ４２７に設定する。
【０３５７】
例えば、時間Δｔは、同期フレーム６５０のサイズを伝送速度（transmission rate）で割った値である。本実施形態では同期フレーム６５０は固定長である。また、伝送速度は物理層の通信プロトコルの仕様に応じて決まる。よって、例えば、時間Δｔは、１ホップの伝送遅延時間を示す定数としてプログラム４１８に定義されていてもよく、同期処理部４２６は時間Δｔを認識することが可能である。
【０３５８】
あるいは、タイプ判断部４２１によるタイプの判断にかかる時間などを無視することができない場合などは、１ホップの伝送遅延時間に、タイプ判断部４２１の処理時間などの所定の時間を足した値が、時間Δｔとして定義されていてもよい。
【０３５９】
または、同期処理部４２６は次のようにして時間Δｔを認識してもよい。ノード装置４００に電源が入れられた直後から、タイマ４２７が動作し始めるので、受信機４０４は、タイマ４２７を参照して、フレームのプリアンブルを検出し始めた時刻と、同期フレーム６５０を受信し終わった時刻を認識してもよい。そして、受信機４０４は、２つの時刻の差分を時間Δｔとして同期処理部４２６に通知してもよい。
【０３６０】
ノード装置４００に電源が入れられた直後には、タイマ４２７が指す時刻自体は不正確かもしれないが、時間の長さを計測するのにタイマ４２７を利用することに支障はない。なお、もし、タイプ判断部４２１によるタイプの判断にかかる時間などを無視することができなければ、受信機４０４が同期フレーム６５０を受信し終わった時刻の代わりに、同期処理部４２６がタイプ判断部４２１から通知を受けた時刻が利用されてもよい。
【０３６１】
上記に例示したいずれかの方法により、同期処理部４２６は時間Δｔを認識することができる。よって、同期処理部４２６は、タイマ４２７に時刻（ｔ１＋Δｔ）を設定する。
そして、次のステップＳ２０３で同期処理部４２６は、新たな同期フレーム６５０を生成し、送信機４０３に出力する。すると、送信機４０３は、生成された新たな同期フレーム６５０を、スイッチ４０２とアンテナ４０１を介して送信する。
【０３６２】
なお、同期処理部４２６は、新たな同期フレーム６５０のＧＳとＬＳにノード装置４００自身のノードＩＤを設定する。また、同期処理部４２６は、新たな同期フレーム６５０のペイロードに、タイマ４２７に設定した時刻（ｔ１＋Δｔ）に所定の時間（以下「α」とする）を足した時刻を示す時刻情報を設定する。
【０３６３】
時間αは、ノード装置４００内部での処理にかかる時間（例えば同期処理部４２６が同期フレーム６５０を生成するのにかかる時間を含む）であり、例えば、定数としてプログラム４１８に定義されていてもよい。したがって、同期処理部４２６は、時間αを認識することが可能であり、時刻（ｔ１＋Δｔ＋α）を示す時刻情報を含む新たな同期フレーム６５０を生成することが可能である。
【０３６４】
同期フレーム６５０の送信後、ノード装置４００はステップＳ２０４でハローフレーム６２０が受信されるまで待機する。具体的には、転送処理部４３０とリンク管理部４３３が、タイプ判断部４２１からハローフレーム６２０の受信を通知されるまで、ノード装置４００は待機する。
【０３６５】
ノード装置４００に隣接する装置（具体的にはゲートウェイ１０１または他のノード装置）がハローフレーム６２０を送信すると、アンテナ４０１とスイッチ４０２を介して、受信機４０４がハローフレーム６２０を受信する。そして、受信機４０４は、受信したハローフレーム６２０を送受信バッファ領域４１１に出力する。
【０３６６】
また、受信機４０４は、フレームを受信したことと、受信したフレームの送受信バッファ領域４１１における先頭アドレスを、タイプ判断部４２１に通知する。すると、タイプ判断部４２１は、送受信バッファ領域４１１を参照して、受信されたフレームがハローフレーム６２０であることを認識する。そして、タイプ判断部４２１は、転送処理部４３０とリンク管理部４３３に対して、ハローフレーム６２０が受信されたことと、ハローフレーム６２０の送受信バッファ領域４１１における先頭アドレスを通知する。
【０３６７】
以上のようにして転送処理部４３０とリンク管理部４３３がタイプ判断部４２１からの通知を受けるまで、ノード装置４００はステップＳ２０４で待機する。そして、転送処理部４３０とリンク管理部４３３がタイプ判断部４２１からの通知を受けると、処理はステップＳ２０５に移行する。
【０３６８】
ステップＳ２０５で転送処理部４３０は、経路情報４１４に新規エントリを追加する。そして、転送処理部４３０は、受信されたハローフレーム６２０を送受信バッファ領域４１１から読み出して、読み出したハローフレーム６２０にしたがって新規エントリのフィールドに値を設定する。
【０３６９】
なお、以下では説明の便宜上、経路情報４１４が経路情報４１４ａおよび４１４ｂのような形式であるとする。また、ノード装置４００に電源が入れられた直後には、経路情報４１４は１つもエントリを持っていない。
【０３７０】
具体的には、転送処理部４３０は、受信されたハローフレーム６２０に基準点として設定されているノードＩＤを、新規エントリのＧＤにコピーする。また、転送処理部４３０は、新規エントリのＬＤに、受信されたハローフレーム６２０のＬＳの値をコピーする。また、転送処理部４３０は、新規エントリのホップ数に、受信されたハローフレーム６２０に指定されたホップ数に１を足して得られる値を設定する。なお、転送処理部４３０は、新規エントリの評価値に、所定のデフォルト値（例えば０．５）を設定する。
【０３７１】
以上のステップＳ２０５の処理により、ノード装置４００は、受信したハローフレーム６２０のＬＳである装置が、ハローフレーム６２０に基準点として設定されている装置宛のフレームのＬＤの候補となり得ることを認識することができるようになる。例えば、ノード装置１２５がハローフレーム６２４を受信した場合、ノード装置１２５は、「ノード装置１１３がゲートウェイ１０１宛のフレームのＬＤの候補となり得る」と認識することができるようになる。
【０３７２】
そして、次のステップＳ２０６でリンク管理部４３３は、リンク情報４１７に新規エントリを追加する。なお、リンク情報４１７も、ノード装置４００に電源が入れられた直後には、１つもエントリを持っていない。
【０３７３】
具体的には、リンク管理部４３３は、受信されたハローフレーム６２０のＬＳの値を、新規エントリに設定する。その結果、ノード装置４００は、ノード装置４００自身に隣接する装置（具体的にはゲートウェイ１０１または他のノード装置）が存在することを認識することができるようになるとともに、隣接する当該装置のノードＩＤを認識することもできるようになる。
【０３７４】
すると、次のステップＳ２０７でハローフレーム生成部４２９は、新たなハローフレーム６２０を生成して送信機４０３に出力する。具体的には、ハローフレーム生成部４２９は、新たなハローフレーム６２０のＬＳとＧＳにノード装置４００自身のノードＩＤを設定する。また、ハローフレーム生成部４２９は、ステップＳ２０５で作成された新規エントリを参照し、新たなハローフレーム６２０の基準点には新規エントリのＧＤの値をコピーし、新たなハローフレーム６２０のホップ数には新規エントリのホップ数の値をコピーする。なお、ステップＳ２０７は、例えば、ステップＳ２０６の処理を終えたリンク管理部４３３がハローフレーム生成部４２９に通知を送ることを契機として実行されてもよい。
【０３７５】
そして、次のステップＳ２０８では、送信モード情報４１２とスケジュール情報４１５が初期化される。例えば、ステップＳ２０４で初めてのハローフレーム６２０の受信を検出したタイプ判断部４２１が、ステップＳ２０８で初期化を行ってもよい。
【０３７６】
具体的には、送信モード情報４１２は、通常モードを示す値に初期化される。また、本実施形態では、スケジュール情報４１５のうちデータ送信スケジュールは、予め固定的に決められている。よって、本実施形態では、スケジュール情報４１５のうち、ハローフレーム送信スケジュールと登録要求スケジュールが、ステップＳ２０８で初期化される。
【０３７７】
例えば、タイプ判断部４２１は、タイマ４２７を参照して現在時刻を取得し、現在時刻から秒の部分を抽出し、抽出した秒の部分にしたがってハローフレーム送信スケジュールを設定してもよい。例えば、抽出された秒の部分が「２．０００秒」の場合、図７のスケジュール情報４１５ａのようにハローフレーム送信スケジュールが「毎分２．０００秒」と設定される。
【０３７８】
また、タイプ判断部４２１は、例えば乱数を使って、ランダムな時刻を登録要求スケジュールとして設定してもよい。乱数を用いることにより、通信システム１００内で多数の登録要求フレーム６７０が一斉に送信されることを防ぐことができ、登録要求フレーム６７０の送信に関して時間的な負荷分散が実現される。
【０３７９】
そして、以上のステップＳ２０１〜Ｓ２０８の初期化の後、ステップＳ２０９でハローフレーム生成部４２９は、前回のハローフレーム６２０の送信から所定時間が経過したか否かを判断する。例えば図７のスケジュール情報４１５ａのように、ハローフレーム送信スケジュールが１分間に１回の送信を示す場合、「所定時間」とは１分間のことである。もちろん、初めてステップＳ２０９が実行される場合には、ステップＳ２０７でハローフレーム６２０の送信が行われたばかりであるから、まだ所定時間は経過していない。
【０３８０】
もし、前回のハローフレーム６２０の送信から所定時間が既に経過していれば、処理はステップＳ２１０に移行する。逆に、前回のハローフレーム６２０の送信からまだ所定時間が経過していなければ、処理はステップＳ２１１に移行する。
【０３８１】
ステップＳ２１０でハローフレーム生成部４２９は、新たなハローフレーム６２０を生成し、送信機４０３に出力する。そして、送信機４０３は、スイッチ４０２とアンテナ４０１を介してハローフレーム６２０を送信する。
【０３８２】
例えば、ノード装置４００が図１のノード装置１２３であり、ステップＳ２１０が実行される時点におけるノード装置１２３の経路情報４１４が、図７の経路情報４１４ｂのとおりであるとする。また、本実施形態では、ＧＤとして指定されるのはゲートウェイ１０１に事実上限られるものとする。
【０３８３】
すると、ノード装置１２３のハローフレーム生成部４２９は、経路情報４１４ｂにおいてＧＤが「ＩＤ１０１」であるエントリのうち、最も評価の高い（すなわち最も評価値の小さい）エントリを選択する。そして、ハローフレーム生成部４２９は、選択したエントリのホップ数の値を、ステップＳ２１０で生成する新たなハローフレーム６２０のホップ数として設定する。また、ノード装置１２３のハローフレーム生成部４２９は、基準点に「ＩＤ１０１」を設定し、ＧＳとＬＳの双方にノード装置１２３自身のＩＤである「ＩＤ１２３」を設定する。
【０３８４】
例えば以上のようにしてステップＳ２１０で新たなハローフレーム６２０が送信されると、処理はステップＳ２１１に移行する。
【０３８５】
そして、ステップＳ２１１では、登録要求部４３２が、タイマ４２７とスケジュール情報４１５の登録要求スケジュールを参照して、登録要求フレーム６７０を送信する時刻になったか否かを判断する。もし、登録要求フレーム６７０を送信する時刻になっていれば、処理はステップＳ２１２に移行する。逆に、まだ登録要求フレーム６７０を送信する時刻になっていなければ、処理は図１４のステップＳ２１８に移行する。
【０３８６】
ステップＳ２１２〜Ｓ２１７は、登録要求フレーム６７０の送信に関するステップである。まず、ステップＳ２１２では、登録要求部４３２が、新たな登録要求フレーム６７０を生成して送受信バッファ領域４１１に出力し、ＬＤの決定を転送処理部４３０に要求する。そして、転送処理部４３０が登録要求フレーム６７０のＬＤを決定する。
【０３８７】
具体的には、登録要求部４３２は、新たな登録要求フレーム６７０において、ＧＤには「ＩＤ１０１」を設定し、ＧＳとＬＳにはノード装置４００自身のノードＩＤを設定する。また、登録要求部４３２は、タイプを「Ｒｅｇ」と設定する。さらに、登録要求部４３２は、個体情報４１６を参照し、個体情報４１６に記録されているノード装置４００自身のＩＰアドレスとＭＡＣアドレスを、登録要求フレーム６７０のＩＰアドレスとＭＡＣアドレスとして設定する。
【０３８８】
そして、登録要求部４３２は、登録要求フレーム６７０の送受信バッファ領域４１１内での先頭アドレスを転送処理部４３０に通知するとともに、登録要求フレーム６７０のＬＤを決定するよう転送処理部４３０に要求する。すると、転送処理部４３０は、送受信バッファ領域４１１から登録要求フレーム６７０のＧＤの値を読み出し、経路情報４１４において、読み出した値と同じ値がＧＤに設定されたエントリのうち最も評価の高いエントリを検索する。そして、転送処理部４３０は、検索の結果見つかったエントリのＬＤの値を、送受信バッファ領域４１１に格納されている登録要求フレーム６７０のＬＤフィールドに設定する。
【０３８９】
転送処理部４３０は、以上のようにしてＬＤを決定すると、チャネル指定部４２５に、登録要求フレーム６７０の送信の準備が完了したことを通知する。また、転送処理部４３０は、登録要求フレーム６７０の送受信バッファ領域４１１内での先頭アドレスをさらにチャネル指定部４２５に通知してもよい。すると、チャネル指定部４２５は後のステップにおいて適宜ホップ数認識部４２８や送信機４０３に先頭アドレスを通知することが可能となる。
【０３９０】
さて、転送処理部４３０からの通知を受けたチャネル指定部４２５は、次のステップＳ２１３で、ノード装置４００とゲートウェイ１０１の間のホップ数が１か否かを、ホップ数認識部４２８を介して認識する。すなわち、ホップ数認識部４２８は、送受信バッファ領域４１１を参照して、送信対象の登録要求フレーム６７０のＬＤの値を読み取り、ＬＤの値が、ゲートウェイ１０１のＩＤ（すなわち「ＩＤ１０１」）であるか否かを判断する。換言すれば、ホップ数認識部４２８は、ＧＤとＬＤが等しいか否かを判断する。
【０３９１】
読み取られたＬＤの値が「ＩＤ１０１」であれば、登録要求フレーム６７０は他のノード装置を経由せずに直接ゲートウェイ１０１に送信されるということであり、ノード装置４００とゲートウェイ１０１の間のホップ数は１である。そして、ホップ数が１の場合、送信モードによっては、ノード装置４００は、デフォルトチャネルＣｈＡ以外での送信を行う。よって、ＬＤの値が「ＩＤ１０１」のとき、ホップ数認識部４２８はホップ数が１であることをチャネル指定部４２５に通知し、処理は図１４のステップＳ２１４に移行する。
【０３９２】
逆に、読み取られたＬＤの値が「ＩＤ１０１」でなければ、登録要求フレーム６７０は他のノード装置を経由してゲートウェイ１０１に送信されるということであり、ノード装置４００とゲートウェイ１０１の間のホップ数は２以上である。そして、ホップ数が２以上の場合、上記のとおり常にデフォルトチャネルＣｈＡが使われる。よって、ＬＤの値が「ＩＤ１０１」でないとき、ホップ数認識部４２８はホップ数が２以上であることをチャネル指定部４２５に通知し、処理は図１４のステップＳ２１５に移行する。
【０３９３】
さて、ステップＳ２１４では、チャネル指定部４２５が送信モード情報４１２を参照し、送信モード情報４１２が輻輳モードを示しているか否かを判断する。もし、送信モード情報４１２が輻輳モードを示していれば、処理はステップＳ２１６に移行する。逆に、送信モード情報４１２が通常モードを示していれば、処理はステップＳ２１５に移行する。
【０３９４】
ステップＳ２１５でチャネル指定部４２５は、デフォルトチャネルＣｈＡを選び、選んだチャネルＣｈＡを送信チャネルとして送信機４０３に指定する。そして、処理はステップＳ２１７に移行する。なお、ステップＳ２１５においてチャネル指定部４２５は、さらに、送受信バッファ領域４１１における登録要求フレーム６７０の先頭アドレスを送信機４０３に通知することもできる。
【０３９５】
ステップＳ２１６でチャネル指定部４２５は、デフォルトチャネルＣｈＡ以外のチャネルＣｈＢ〜ＣｈＤの中から、１つのチャネルをランダムに選び、選んだチャネルを送信チャネルとして送信機４０３に指定する。そして、処理はステップＳ２１７に移行する。なお、ステップＳ２１６においてチャネル指定部４２５は、さらに、送受信バッファ領域４１１における登録要求フレーム６７０の先頭アドレスを送信機４０３に通知することもできる。
【０３９６】
実施形態によっては、チャネル指定部４２５は、デフォルトチャネルＣｈＡを含む４つのチャネルＣｈＡ〜ＣｈＤの中から１つのチャネルをランダムに選んでもよい。しかし、上記のようにチャネル指定部４２５は、ステップＳ２１６において、送信チャネルの候補からチャネルＣｈＡを除外することが好ましい。理由は次のとおりである。
【０３９７】
例えばノード装置４００がノード装置１１３であるとし、送信モードが輻輳モードであると仮定する。そして、送信モードが輻輳モードのときに、ランダムな選択の結果、たまたまノード装置１１３がチャネルＣｈＡを用いてゲートウェイ１０１宛のフレームを送信すると仮定する。
【０３９８】
すると、ノード装置１１３がチャネルＣｈＡを用いてゲートウェイ１０１宛のフレームを送信している間は、ノード装置１１３を介してゲートウェイ１０１へフレームを送信しようとするノード装置１２５と１２６は、フレームの送信ができない。なぜなら、ノード装置１２５と１２６は、送信のためにキャリアセンスを行い、その結果、チャネルＣｈＡが占有されていることを検出するからである。
【０３９９】
よって、ノード装置１２５と１２６は、ノード装置１１３が送信を終えるまで待たねばならない。そして、チャネルＣｈＡが空くのをノード装置１２５とノード装置１２６が待つ間にも、送信対象のフレームが続々とノード装置１２５と１２６に蓄積されるおそれがある。フレームの蓄積は輻輳を悪化させる要因となり得る。
【０４００】
よって、ノード装置１１３は、ノード装置１２５や１２６の送信を妨げないようにするために、送信モードが輻輳モードのときには送信チャネルの候補からチャネルＣｈＡを除外することが好ましい。
【０４０１】
ステップＳ２１７で送信機４０３は、チャネル指定部４２５が選んだチャネルを用いて、送受信バッファ領域４１１に格納されている登録要求フレーム６７０を、スイッチ４０２とアンテナ４０１を介して送信する。送信後、送信機４０３は送受信バッファ領域４１１から登録要求フレーム６７０を削除する。そして、処理はステップＳ２１８に移行する。
【０４０２】
続くステップＳ２１８〜Ｓ２２４は、データフレーム６６０の送信に関するステップである。まず、ステップＳ２１８では、データ処理部４３１がタイマ４２７とスケジュール情報４１５のデータ送信スケジュールを参照して、データフレーム６６０を送信する時刻になったか否かを判断する。もし、データフレーム６６０送信する時刻になっていれば、処理はステップＳ２１９に移行する。逆に、まだデータフレーム６６０を送信する時刻になっていなければ、処理はステップＳ２２５に移行する。
【０４０３】
そして、ステップＳ２１９では、データ処理部４３１が新たなデータフレーム６６０を生成して送受信バッファ領域４１１に出力し、ＬＤの決定を転送処理部４３０に要求する。そして、転送処理部４３０がデータフレーム６６０のＬＤを決定する。
【０４０４】
具体的には、データ処理部４３１は、新たなデータフレーム６６０において、ＧＤには「ＩＤ１０１」を設定し、ＧＳとＬＳにはノード装置４００自身のノードＩＤを設定する。また、データ処理部４３１は、タイプを「Ｄａｔａ」と設定する。さらに、データ処理部４３１は、適宜のアプリケーションデータを生成し、データフレーム６６０のペイロードに格納する。例えば、データ処理部４３１は不図示のセンサから値を読み取り、読み取った値をアプリケーションデータとして使ってもよい。
【０４０５】
そして、データ処理部４３１は、データフレーム６６０の送受信バッファ領域４１１内での先頭アドレスを転送処理部４３０に通知するとともに、データフレーム６６０のＬＤを決定するよう転送処理部４３０に要求する。すると、転送処理部４３０は、ステップＳ２１２と同様にして、データフレーム６６０のＧＤの値に基づいてＬＤを決定し、データフレーム６６０のＬＤフィールドに値を設定する。
【０４０６】
そして、転送処理部４３０は、チャネル指定部４２５に、データフレーム６６０の送信の準備が完了したことを通知する。また、転送処理部４３０は、データフレーム６６０の送受信バッファ領域４１１内での先頭アドレスをさらにチャネル指定部４２５に通知してもよい。
【０４０７】
さて、転送処理部４３０からの通知を受けたチャネル指定部４２５は、次のステップＳ２２０で、ノード装置４００とゲートウェイ１０１の間のホップ数が１か否かを、ホップ数認識部４２８を介して認識する。具体的には、ホップ数認識部４２８が、ステップＳ２１３と同様にしてデータフレーム６６０のＬＤの値を読み取る。
【０４０８】
そして、ＬＤの値が「ＩＤ１０１」ならば、ホップ数認識部４２８は、ホップ数が１であることをチャネル指定部４２５に通知し、処理はステップＳ２２１に移行する。逆に、読み取られたＬＤの値が「ＩＤ１０１」でなければ、ホップ数認識部４２８はホップ数が２以上であることをチャネル指定部４２５に通知し、処理はステップＳ２２２に移行する。
【０４０９】
そして、ステップＳ２２１では、チャネル指定部４２５が送信モード情報４１２を参照し、送信モード情報４１２が輻輳モードを示しているか否かを判断する。もし、送信モード情報４１２が輻輳モードを示していれば、処理はステップＳ２２３に移行する。逆に、送信モード情報４１２が通常モードを示していれば、処理はステップＳ２２２に移行する。
【０４１０】
ステップＳ２２２でチャネル指定部４２５は、デフォルトチャネルＣｈＡを選び、選んだチャネルＣｈＡを送信チャネルとして送信機４０３に指定する。そして、処理はステップＳ２２４に移行する。
【０４１１】
また、ステップＳ２２３でチャネル指定部４２５は、デフォルトチャネルＣｈＡ以外のチャネルＣｈＢ〜ＣｈＤの中から、１つのチャネルをランダムに選び、選んだチャネルを送信チャネルとして送信機４０３に指定する。そして、処理はステップＳ２２４に移行する。なお、ステップＳ２２２およびＳ２２３においても、Ｓ２１５およびＳ２１６と同様に、チャネル指定部４２５はさらに先頭アドレスを送信機４０３に通知することもできる。
【０４１２】
ステップＳ２２４で送信機４０３は、チャネル指定部４２５が選んだチャネルを用いて、送受信バッファ領域４１１に格納されているデータフレーム６６０を、スイッチ４０２とアンテナ４０１を介して送信する。送信後、送信機４０３は送受信バッファ領域４１１からデータフレーム６６０を削除する。そして、処理はステップＳ２２５に移行する。
【０４１３】
さて、ステップＳ２２５では、ノード装置４００が受信した未処理のフレームが送受信バッファ領域４１１にあるか否かが、例えばタイプ判断部４２１によって判断される。
例えば、受信機４０４は、フレームを受信すると送受信バッファ領域４１１に出力し、受信したフレームの送受信バッファ領域４１１内での先頭アドレスをタイプ判断部４２１に通知する。また、タイプ判断部４２１は、受信機４０４から通知を受けると、不図示のバックグラウンド処理を行う。
【０４１４】
上記バックグラウンド処理において、タイプ判断部４２１は、受信されたフレームのＬＤのフィールドの値を読み出す。そして、タイプ判断部４２１は、読み出した値がノード装置４００自身のノードＩＤでもなく、ブロードキャストアドレス（図８〜９における「ＢＣ」）でもない場合、受信されたフレームを送受信バッファ領域４１１から削除する。つまり、タイプ判断部４２１は、ノード装置４００自身とは無関係なフレームが受信された場合、無関係なフレームを送受信バッファ領域４１１から削除する。
【０４１５】
例えば以上のような、受信機４０４からタイプ判断部４２１への通知と、タイプ判断部４２１によるバックグラウンド処理の結果にしたがって、タイプ判断部４２１はステップＳ２２５の判断を実行することができる。
【０４１６】
ノード装置４００が受信した未処理のフレームが送受信バッファ領域４１１にある場合、処理はステップＳ２２６に移行する。逆に、ノード装置４００が受信した未処理のフレームが存在しない場合、処理は図１３のステップＳ２０９に戻る。
【０４１７】
ステップＳ２２６でタイプ判断部４２１は、送受信バッファ領域４１１を参照して、受信されたフレームのタイプを読み取り、タイプが「Ｓｙｎｃ」か否かを判断する。
タイプが「Ｓｙｎｃ」のとき、タイプ判断部４２１は同期処理部４２６に対して、同期フレーム６５０が受信されたことと、同期フレーム６５０の送受信バッファ領域４１１における先頭アドレスを通知する。そして、処理はステップＳ２２７に移行する。逆に、タイプが「Ｓｙｎｃ」ではないとき、処理は図１５のステップＳ２２９に移行する。
【０４１８】
ステップＳ２２７で同期処理部４２６は、ステップＳ２０２と同様にして、同期フレーム６５０に基づいてタイマ４２７を設定し、設定が済んだら同期フレーム６５０を送受信バッファ領域４１１から削除する。
【０４１９】
そして、次のステップＳ２２８で同期処理部４２６は、ステップＳ２０３と同様にして、新たな同期フレーム６５０を生成し、送信機４０３に出力する。すると、送信機４０３は、生成された新たな同期フレーム６５０を、スイッチ４０２とアンテナ４０１を介して送信する。
【０４２０】
なお、図１４では説明の簡略化のため省略したが、同期処理部４２６は、前回の同期フレーム６５０の送信から一定時間以上経過していない場合は、ステップＳ２２８で新たな同期フレーム６５０を生成しないことが望ましい。理由は次のとおりである。
【０４２１】
例えば、ゲートウェイ１０１が送信した第１の同期フレーム６５０をノード装置１１１と１１２がともに受信し、受信を契機としてノード装置１１１が第２の同期フレーム６５０を送信し、ノード装置１１２が第３の同期フレーム６５０を送信することがある。すると、ノード装置１１１と１１２は隣接しているので、第２の同期フレーム６５０はノード装置１１２でも受信され、第３の同期フレーム６５０はノード装置１１１でも受信される。
【０４２２】
通信システム１００が大量の同期フレーム６５０で「あふれかえる（flooded）」事態を防ぐためには、ノード装置１１１は、第３の同期フレーム６５０を受信したとき、第４の同期フレーム６５０を新たに送信しないようにすることが望まれる。同様に、ノード装置１１２は、第２の同期フレーム６５０を受信したとき、第５の同期フレーム６５０を新たに送信しないようにすることが望まれる。
【０４２３】
以上のとおり、ステップＳ２２８では、場合によっては新たな同期フレーム６５０の生成と送信が省略されることが望ましい。例えば、上記の「一定時間」は、隣接するノード装置間のＲＴＴ（Round Trip Time）に、適宜のマージンを足した時間でもよい。マージンは、スイッチ４０２の切り換え周期や、同期処理部４２６の処理時間などに基づいて決められることが好ましい。なお、ステップＳ２２８の後、処理は図１３のステップＳ２０９に戻る。
【０４２４】
さて、図１５のステップＳ２２９で、タイプ判断部４２１は、受信機４０４により受信されたフレームのＬＳを送受信バッファ領域４１１から読み出し、ＬＳの値がゲートウェイ１０１のノードＩＤ（すなわち「ＩＤ１０１」）であるか否かを判断する。そして、ＬＳの値が「ＩＤ１０１」ならば処理はステップＳ２３９に移行し、ＬＳの値が「ＩＤ１０１」でなければ処理はステップＳ２３０に移行する。なお、ステップＳ２２９の条件分岐の意味を説明すれば以下のとおりである。
【０４２５】
実施形態によってはゲートウェイ１０１がフレームの転送（つまり中継）を行ってもよいが、本実施形態では、ゲートウェイ１０１はフレームを転送しない。他方、ノード装置４００は、必要に応じてデータフレーム６６０や登録要求フレーム６７０を転送する。
【０４２６】
また、本実施形態のゲートウェイ１０１は、ハローフレーム６２０や同期フレーム６５０などの制御フレームを生成して送信するが、データフレーム６６０などの非制御フレームを通信システム１００内のいずれかのノード装置４００に宛てて送信することはない。他方、ノード装置４００は、非制御フレームを送信する。
【０４２７】
さらに、ハローフレーム６２０と同期フレーム６５０は、ゲートウェイ１０１からもノード装置４００からも送信されることがあるが、切り換え命令フレーム６３０と復帰命令フレーム６４０は、ゲートウェイ１０１からしか送信されることがない。
【０４２８】
以上のように、本実施形態では、ゲートウェイ１０１とノード装置４００の間に、実行する処理の点でも、送信するフレームのタイプおよびサブタイプの点でも、違いがある。そこで、本実施形態では、後の処理における条件分岐が複雑化するのを防ぐため、受信されたフレームのＬＳがゲートウェイ１０１であるか否かを、先にステップＳ２２９でタイプ判断部４２１が判断する。
【０４２９】
さて、上記のようにステップＳ２３０は、受信されたフレームのＬＳの値が「ＩＤ１０１」ではない場合に実行される。そこで、ステップＳ２３０でタイプ判断部４２１は、送受信バッファ領域４１１を参照して、受信されたフレームのタイプを読み取り、タイプが「Ｄａｔａ」または「Ｒｅｇ」であるか否かを判断する。すなわち、タイプ判断部４２１は、受信されたフレームが、マルチホップ送信される可能性のあるフレームなのか否かを判断する。
【０４３０】
そして、タイプが「Ｄａｔａ」または「Ｒｅｇ」のとき、タイプ判断部４２１は転送処理部４３０に対して、タイプを通知するとともに、受信されたフレームの送受信バッファ領域４１１における先頭アドレスを通知する。そして、処理はステップＳ２３１に移行する。逆に、タイプが「Ｄａｔａ」でもなく「Ｒｅｇ」でもないとき、処理は図１７のステップＳ２５０に移行する。
【０４３１】
ステップＳ２３１で転送処理部４３０は、送受信バッファ領域４１１を参照して、受信されたフレームのＧＤの値を読み出す。そして、転送処理部４３０は、読み出したＧＤの値とノード装置４００自身のノードＩＤ（「自ノードＩＤ」ともいう）が同じか否かを判断する。
【０４３２】
２つの値が同じとき、受信されたフレームの最終的な宛先は、ノード装置４００自身である。また、本実施形態では、登録要求フレーム６７０のＧＤとして指定され得るのは、ゲートウェイ１０１のみなので、２つの値が同じとき、受信されたフレームはデータフレーム６６０である。
【０４３３】
よって、２つの値が同じとき、転送処理部４３０は、受信されたデータフレーム６６０の送受信バッファ領域４１１における先頭アドレスをデータ処理部４３１に通知し、データフレーム６６０を処理するようデータ処理部４３１に要求する。そして、処理はステップＳ２３２に移行する。
【０４３４】
逆に、２つの値が異なるときは、転送処理部４３０は、受信されたフレームを転送するための処理を行う。そこで、処理はステップＳ２３３に移行する。
ステップＳ２３２でデータ処理部４３１は、送受信バッファ領域４１１を参照して、受信されたデータフレーム６６０のペイロードを読み取り、ペイロードを適宜処理する。その後、データ処理部４３１は、データフレーム６６０を送受信バッファ領域４１１から削除する。
【０４３５】
ペイロードの内容は実施形態に応じて任意である。例えば、ペイロードにプログラム４１８のアップデータが含まれる場合、データ処理部４３１は、プログラム４１８をアップデートしてもよい。ステップＳ２３２の実行後、処理は図１３のステップＳ２０９に戻る。
【０４３６】
また、ステップＳ２３３で転送処理部４３０は、ステップＳ２３１で読み出したＧＤの値に基づいて、受信されたフレームをどの隣接ノード装置に転送するかを決定する。すなわち、転送処理部４３０は、ＧＤの値に基づいて、新たにＬＤフィールドに設定する値を決定する。ステップＳ２３３で転送処理部４３０は、ステップＳ２１２と同様に経路情報４１４を参照してＬＤを決定する。
【０４３７】
そして、転送処理部４３０は、ＬＤとして決定したノードＩＤを、受信されて送受信バッファ領域４１１に格納されているフレームのＬＤフィールドに上書きする。また、転送処理部４３０は、受信されて送受信バッファ領域４１１に格納されているフレームのＬＳフィールドに、ノード装置４００自身のノードＩＤを上書きする。
【０４３８】
また、転送処理部４３０は、ＬＤとＬＳの上書きの後、ＦＣＳを計算する。そして、転送処理部４３０は、計算したＦＣＳの値を、受信されて送受信バッファ領域４１１に格納されているフレームのＦＣＳフィールドに上書きする。
【０４３９】
例えば、ノード装置４００がノード装置１２６であり、受信されたフレームが図９のデータフレーム６６１である場合、ノード装置１２６の転送処理部４３０は、ノード装置１１３のノードＩＤ「ＩＤ１１３」を新たなＬＤの値として決定する。そして、ノード装置１２６の転送処理部４３０は、データフレーム６６１のＬＤフィールドを「ＩＤ１１３」と上書きし、データフレーム６６１のＬＳフィールドを「ＩＤ１２６」と上書きする。
【０４４０】
そして、ステップＳ２３３におけるＬＤとＬＳとＦＣＳの上書きの後、転送処理部４３０は、チャネル指定部４２５に、データフレーム６６０または登録要求フレーム６７０の送信（具体的には転送のための送信）の準備が完了したことを通知する。また、転送処理部４３０は、データフレーム６６０または登録要求フレーム６７０の送受信バッファ領域４１１内での先頭アドレスをさらにチャネル指定部４２５に通知してもよい。
【０４４１】
すると、通知を受けたチャネル指定部４２５は、次のステップＳ２３４で、ノード装置４００とゲートウェイ１０１の間のホップ数が１か否かを、ホップ数認識部４２８を介して認識する。具体的には、ホップ数認識部４２８が、ステップＳ２１３と同様にしてデータフレーム６６０または登録要求フレーム６７０のＬＤの値を読み取る。
【０４４２】
そして、ＬＤの値が「ＩＤ１０１」ならば、ホップ数認識部４２８は、ホップ数が１であることをチャネル指定部４２５に通知し、処理はステップＳ２３５に移行する。逆に、ＬＤの値が「ＩＤ１０１」でなければ、ホップ数認識部４２８は、ホップ数が２以上であることをチャネル指定部４２５に通知し、処理はステップＳ２３６に移行する。
【０４４３】
そして、ステップＳ２３５では、チャネル指定部４２５が送信モード情報４１２を参照し、送信モード情報４１２が輻輳モードを示しているか否かを判断する。もし、送信モード情報４１２が輻輳モードを示していれば、処理はステップＳ２３７に移行する。逆に、送信モード情報４１２が通常モードを示していれば、処理はステップＳ２３６に移行する。
【０４４４】
ステップＳ２３６でチャネル指定部４２５は、デフォルトチャネルＣｈＡを選び、選んだチャネルＣｈＡを送信チャネルとして送信機４０３に指定する。そして、処理はステップＳ２３８に移行する。
【０４４５】
また、ステップＳ２３７でチャネル指定部４２５は、デフォルトチャネルＣｈＡ以外のチャネルＣｈＢ〜ＣｈＤの中から、１つのチャネルをランダムに選び、選んだチャネルを送信チャネルとして送信機４０３に指定する。そして、処理はステップＳ２３８に移行する。なお、ステップＳ２３６およびＳ２３７においても、Ｓ２１５およびＳ２１６と同様に、チャネル指定部４２５はさらにフレームの先頭アドレスを送信機４０３に通知することもできる。
【０４４６】
ステップＳ２３８で送信機４０３は、チャネル指定部４２５が選んだチャネルを用いて、送受信バッファ領域４１１に格納されているデータフレーム６６０または登録要求フレーム６７０を、スイッチ４０２とアンテナ４０１を介して送信する。送信後、送信機４０３は送受信バッファ領域４１１からデータフレーム６６０または登録要求フレーム６７０を削除する。そして、処理は図１３のステップＳ２０９に戻る。
【０４４７】
ところで、上記のステップＳ２２９において、受信されたフレームのＬＳの値が「ＩＤ１０１」だと判断された場合、ステップＳ２３９でタイプ判断部４２１は、送受信バッファ領域４１１を参照して、受信されたフレームのタイプを読み取る。そして、タイプ判断部４２１は、タイプが「Ｈｅｌｌｏ」であるか否かを判断する。つまり、タイプ判断部４２１は、受信されたフレームが広義のハローフレーム６１０であるか否かを判断する。
【０４４８】
タイプが「Ｈｅｌｌｏ」のとき、サブタイプによる分類を行うため、処理はステップＳ２４１へ移行する。また、タイプが「Ｈｅｌｌｏ」以外のとき、処理はステップＳ２４０に移行する。
【０４４９】
ステップＳ２４０は例外処理のステップである。本実施形態において、図８〜９に示したタイプのみが使われる場合、ステップＳ２４０では、具体的には、不正なタイプのフレームが受信された場合のエラー処理をＣＰＵ４０５が行う。
【０４５０】
しかし、もちろん実施形態によっては、図８〜９に示した以外のタイプのフレームがさらに定義されていてもよい。その場合、ＣＰＵ４０５は、タイプ判断部４２１が判断したフレームのタイプに応じた適宜の処理を、ステップＳ２４０において行う。したがって、ステップＳ２４０の詳細は実施形態に応じて任意である。ステップＳ２４０の実行後、処理は図１３のステップＳ２０９に戻る。
【０４５１】
また、ステップＳ２４１でタイプ判断部４２１は、送受信バッファ領域４１１を参照して、受信された広義のハローフレーム６１０のサブタイプを読み取り、サブタイプが「Ｈｅｌｌｏ」か否かを判断する。つまり、タイプ判断部４２１は、受信されたフレームがハローフレーム６２０であるか否かを判断する。
【０４５２】
そして、サブタイプが「Ｈｅｌｌｏ」の場合、処理は図１７のステップＳ２５２に移行する。逆に、サブタイプが「Ｈｅｌｌｏ」ではない場合、処理は図１６のステップＳ２４２に移行する。
【０４５３】
ステップＳ２４２でタイプ判断部４２１は、ステップＳ２４１で読み取ったサブタイプが「Ｓｗｉｔｃｈ」であるか否かを判断する。つまり、タイプ判断部４２１は、受信されたフレームが切り換え命令フレーム６３０であるか否かを判断する。
【０４５４】
そして、サブタイプが「Ｓｗｉｔｃｈ」のとき、タイプ判断部４２１はモード変更部４２４に対して、切り換え命令フレーム６３０が受信されたことを通知する。
なお、本実施形態では、具体的には切り換え命令フレーム６３１のようにサブタイプ以外のペイロードを含まない形式の切り換え命令フレーム６３０が使われる。そのため、モード変更部４２４は、受信された切り換え命令フレーム６３０を参照する必要がない。よって、サブタイプが「Ｓｗｉｔｃｈ」のとき、タイプ判断部４２１は、受信された切り換え命令フレーム６３０を送受信バッファ領域４１１から削除する。そして、処理はステップＳ２４６に移行する。
【０４５５】
逆に、サブタイプが「Ｓｗｉｔｃｈ」ではない場合、処理はステップＳ２４３に移行する。
ステップＳ２４３でタイプ判断部４２１は、ステップＳ２４１で読み取ったサブタイプが「Ｒｅｓｔｏｒｅ」であるか否かを判断する。つまり、タイプ判断部４２１は、受信されたフレームが復帰命令フレーム６４０であるか否かを判断する。
【０４５６】
そして、サブタイプが「Ｒｅｓｔｏｒｅ」のとき、タイプ判断部４２１はモード変更部４２４に対して、復帰命令フレーム６４０が受信されたことを通知する。
なお、本実施形態では、具体的には、復帰命令フレーム６４１のようにサブタイプ以外のペイロードを含まない形式の復帰命令フレーム６４０が使われる。そのため、モード変更部４２４は、受信された復帰命令フレーム６４０を参照する必要がない。よって、サブタイプが「Ｒｅｓｔｏｒｅ」のとき、タイプ判断部４２１は、受信された復帰命令フレーム６４０を送受信バッファ領域４１１から削除する。そして、処理はステップＳ２４４に移行する。
【０４５７】
逆に、サブタイプが「Ｒｅｓｔｏｒｅ」ではない場合、処理はステップＳ２４５に移行する。
ステップＳ２４４でモード変更部４２４は、送信モード情報４１２を、通常モードを示す値に設定する。そして、処理は図１３のステップＳ２０９に戻る。
【０４５８】
なお、ステップＳ２４４の処理は、ＧＤとしてゲートウェイ１０１が指定されたフレームをノード装置４００が送信するときの送信経路において、ノード装置４００とゲートウェイ１０１の間のホップ数が１であるか否かによらず実行されても、何ら問題がない。そのため、ステップＳ２４４においてモード変更部４２４は、ホップ数認識部４２８を介してホップ数を確認することなしに、ステップＳ２４４で送信モード情報４１２を設定する。また、このようにステップＳ２４４はどのノード装置４００が実行しても問題がないステップであるから、本実施形態では、復帰命令フレーム６４１のようにサブタイプ以外のパラメタを含まない単純な復帰命令フレーム６４０が使われる。
【０４５９】
さて、ステップＳ２４５は例外処理のステップである。本実施形態において、「Ｈｅｌｌｏ」というタイプに関して、図８〜９に示したサブタイプのみが使われる場合、ステップＳ２４５では、具体的には、不正なサブタイプのフレームが受信された場合のエラー処理をＣＰＵ４０５が行う。
【０４６０】
しかし、もちろん実施形態によっては、図８〜９に示した以外のサブタイプのフレームがさらに定義されていてもよい。その場合、ＣＰＵ４０５は、タイプ判断部４２１が判断したフレームのサブタイプに応じた適宜の処理を、ステップＳ２４５において行う。したがって、ステップＳ２４５の詳細は実施形態に応じて任意である。ステップＳ２４５の実行後、処理は図１３のステップＳ２０９に戻る。
【０４６１】
また、ステップＳ２４６でモード変更部４２４は、ホップ数認識部４２８に対して、ノード装置４００とゲートウェイ１０１との間のホップ数が１であるか否かを問い合せる。すると、ホップ数認識部４２８は、受信された切り換え命令フレーム６３０（具体的には切り換え命令フレーム６３１）のＬＳの値「ＩＤ１０１」がＧＤとして設定されているエントリを、経路情報４１４において検索する。
【０４６２】
そして、次のステップＳ２４７でホップ数認識部４２８は、検索の結果見つかった１つまたは複数のエントリの中で、最も評価の高い（つまり最も評価値が小さい）エントリを特定する。
【０４６３】
さらに、次のステップＳ２４８でホップ数認識部４２８は、ステップＳ２４７で特定したエントリにおいて、ＧＤとＬＤの値が等しいか否かを判断する。
ＧＤとＬＤの値が等しければ、ホップ数認識部４２８は、モード変更部４２４に対して、ノード装置４００とゲートウェイ１０１の間のホップ数が１であることを通知する。そして、処理はステップＳ２４９に移行する。例えば、ノード装置４００がノード装置１１１の場合、ノード装置１１１のホップ数認識部４２８は、ホップ数が１であるとモード変更部４２４に通知し、処理がステップＳ２４９に移行する。
【０４６４】
他方、ＧＤとＬＤの値が等しくなければ、ホップ数認識部４２８は、モード変更部４２４に対して、ノード装置４００とゲートウェイ１０１の間のホップ数が２以上であることを通知する。すると、モード変更部４２４は、「送信モード情報４１２を変更する必要がない」と認識するので、処理は図１３のステップＳ２０９に戻る。例えば、ノード装置４００がノード装置１２６の場合、ノード装置１２６のホップ数認識部４２８は、ホップ数が２以上であるとモード変更部４２４に通知し、処理がステップＳ２０９に戻る。
【０４６５】
ステップＳ２４９でモード変更部４２４は、送信モード情報４１２を、輻輳モードを示す値に設定する。そして、処理は図１３のステップＳ２０９に戻る。
以上説明した、図１６の各ステップの処理により、ゲートウェイ１０１からのホップ数が２以上のノード装置４００（例えばノード装置１２１〜１４３）では、送信モード情報４１２が常に通常モードを示す。つまり、たとえ切り換え命令フレーム６３０または復帰命令フレーム６４０が受信されたとしても、ホップ数が２以上のノード装置４００では、送信モード情報４１２が輻輳モードを示すことはない。他方、ゲートウェイ１０１からのホップ数が１であるノード装置４００（例えばノード装置１１１〜１１３）では、送信モード情報４１２は、切り換え命令フレーム６３０または復帰命令フレーム６４０の受信のたびに、変化する。
【０４６６】
さて、図１７のステップＳ２５０は、ゲートウェイ１０１以外の装置から（つまり、ノード装置４００自身に隣接する他のノード装置から）、マルチホップ送信の対象外のフレームをノード装置４００が受信した場合に実行される。
【０４６７】
具体的には、ステップＳ２５０でタイプ判断部４２１は、送受信バッファ領域４１１を参照して、受信されたフレームのタイプを読み取る。また、タイプが「Ｈｅｌｌｏ」であれば、タイプ判断部４２１はさらにサブタイプを読み取る。
【０４６８】
そして、タイプ判断部４２１は、タイプが「Ｈｅｌｌｏ」かつサブタイプが「Ｈｅｌｌｏ」という条件が成立するか否かを判断する。つまり、タイプ判断部４２１は、受信されたフレームがハローフレーム６２０であるか否かを判断する。
【０４６９】
タイプが「Ｈｅｌｌｏ」かつサブタイプが「Ｈｅｌｌｏ」のとき、処理はステップＳ２５２に移行する。逆に、タイプが「Ｈｅｌｌｏ」かつサブタイプが「Ｈｅｌｌｏ」という条件が成立しない場合、処理はステップＳ２５１に移行する。
【０４７０】
ステップＳ２５１は例外処理のステップである。本実施形態において、図８〜９に示したタイプとサブタイプのみが使われる場合、ステップＳ２５１では、具体的には、不正なタイプまたは不正なサブタイプのフレームが受信された場合のエラー処理をＣＰＵ４０５が行う。
【０４７１】
しかし、もちろん実施形態によっては、図８〜９に示した以外のタイプまたはサブタイプのフレームがさらに定義されていてもよい。その場合、ＣＰＵ４０５は、タイプ判断部４２１が判断したフレームのタイプとサブタイプに応じた適宜の処理を、ステップＳ２５１において行う。したがって、ステップＳ２５１の詳細は実施形態に応じて任意である。ステップＳ２５１の実行後、処理は図１３のステップＳ２０９に戻る。
【０４７２】
さて、ステップＳ２５２が実行されるのは、ノード装置４００が、ノード装置４００自身に隣接するいずれかの装置（つまり、ゲートウェイ１０１または他のノード装置）から、ハローフレーム６２０を受信した場合である。
【０４７３】
具体的には、ステップＳ２５２でタイプ判断部４２１は、受信されたハローフレーム６２０にしたがって必要に応じてリンク情報４１７を更新するよう、リンク管理部４３３に要求する。要求に際してタイプ判断部４２１は、送受信バッファ領域４１１におけるハローフレーム６２０の先頭アドレスをリンク管理部４３３に通知する。
【０４７４】
すると、リンク管理部４３３は、送受信バッファ領域４１１を参照して、受信されたハローフレーム６２０のＬＳの値を読み取る。そして、リンク管理部４３３は、リンク情報４１７において、読み取ったＬＳの値が隣接ノードとして設定されたエントリを検索する。
【０４７５】
そして、次のステップＳ２５３でリンク管理部４３３は、ステップＳ２５２の検索の結果、エントリが見つかったか否かを判断する。
エントリが見つかった場合とは、隣接ノードとして既知の装置からハローフレーム６２０が受信された場合のことなので、リンク情報４１７にさらにエントリを追加する必要はない。したがって、処理はステップＳ２５５に移行する。
【０４７６】
他方、エントリが見つからなかった場合とは、隣接ノードとしては未知の装置からハローフレーム６２０が受信された場合のことである。そこで、エントリの追加のため処理はステップＳ２５４に移行する。
【０４７７】
ステップＳ２５４でリンク管理部４３３は、ステップＳ２５２でハローフレーム６２０から読み取ったＬＳの値を隣接ノードとして設定した新規エントリを、リンク情報４１７に追加する。そして、処理はステップＳ２５５に移行する。
【０４７８】
また、ステップＳ２５５でタイプ判断部４２１は、受信されたハローフレーム６２０にしたがって必要に応じて経路情報４１４内のホップ数情報４１３を更新するよう、ホップ数認識部４２８に要求する。要求に際してタイプ判断部４２１は、送受信バッファ領域４１１におけるハローフレーム６２０の先頭アドレスをホップ数認識部４２８に通知する。
【０４７９】
すると、ホップ数認識部４２８は、送受信バッファ領域４１１を参照して、受信されたハローフレーム６２０のＬＳの値を読み取る。そして、ホップ数認識部４２８は、下記の（Ｉ１）と（Ｉ２）の条件をともに満たすエントリを、経路情報４１４において検索する。
【０４８０】
（Ｉ１）ＧＤが、ゲートウェイ１０１のノードＩＤである「ＩＤ１０１」と等しい。つまり、ＧＤが、受信されたハローフレーム６２０で基準点として指定されているノードＩＤと等しい。
（Ｉ２）ＬＤが、ハローフレーム６２０から読み取られたＬＳの値と等しい。
そして、次のステップＳ２５６でホップ数認識部４２８は、ステップＳ２５５の検索の結果、エントリが見つかったか否かを判断する。
【０４８１】
エントリが見つかった場合とは、ＧＤとしてゲートウェイ１０１が指定されたフレームをノード装置４００が送信するときに、ＬＤとして選択可能な装置からのハローフレーム６２０が受信された場合である。この場合、受信されたハローフレーム６２０の送信元（つまりＬＳ）の装置を通る経路における、ノード装置４００とゲートウェイ１０１の間のホップ数の更新のため、処理はステップＳ２５７に移行する。
【０４８２】
他方、エントリが見つからなかった場合とは、ＧＤとしてゲートウェイ１０１が指定されたフレームをノード装置４００が送信するときに、ＬＤとして選択されない装置からのハローフレーム６２０が受信された場合である。この場合、本実施形態では、ハローフレーム６２０の受信は経路情報４１４内のホップ数情報４１３に影響を及ぼさない。よって、ホップ数認識部４２８は送受信バッファ領域４１１からハローフレーム６２０を削除し、処理は図１３のステップＳ２０９に戻る。
【０４８３】
ステップＳ２５７でホップ数認識部４２８は、送受信バッファ領域４１１を参照して、受信されたハローフレーム６２０からホップ数を読み取る。そして、ホップ数認識部４２８は、読み取ったホップ数に１を足して得られる値を、ステップＳ２５５の検索で見つかったエントリのホップ数として設定する。その後、ホップ数認識部４２８は送受信バッファ領域４１１からハローフレーム６２０を削除し、処理は図１３のステップＳ２０９に戻る。
【０４８４】
以上のようにして、ノード装置４００は、ステップＳ２０１〜Ｓ２０８の初期化を実行した後、ステップＳ２０９〜Ｓ２５７の処理を繰り返し実行する。
なお、図１３〜１７に示した処理は、ゲートウェイ１０１からのホップ数が２以上のノード装置４００が誤って輻輳モードに遷移するのを防ぐための、二重の対策を含む。すなわち、１つ目の対策は、ステップＳ２１３、Ｓ２２０およびＳ２３４のような、データフレーム６６０または登録要求フレーム６７０の送信時に行われるホップ数のチェックである。２つ目の対策は、ステップＳ２４６〜Ｓ２４８のような、切り換え命令フレーム６３０の受信時に行われるホップ数のチェックである。このように本実施形態において２つの対策が併用される理由は、通信システム１００内の経路が時間とともに変動し得るためである。
【０４８５】
例えば、図１のノード装置１２６は、切り換え命令フレーム６３０や復帰命令フレーム６４０を受信することができるが、データフレーム６６０や登録要求フレーム６７０の送信経路上でのゲートウェイ１０１からのホップ数は２である。
【０４８６】
しかし、経路が安定するまでの過渡的状況下では、ノード装置１２６がＬＤとしてノード装置１１３ではなくゲートウェイ１０１を選択することもあり得る。すなわち、過渡的状況下では、ノード装置１２６とゲートウェイ１０１のホップ数が１ということもあり得る。
【０４８７】
あるいは、環境の変動にともない、ノード装置１２６がノード装置１２６内の経路情報４１４（具体的には評価値）を変更し、その結果、ノード装置１２６とゲートウェイ１０１の間のホップ数が１になることもあり得る。例えば、ノード装置１１３とノード装置１２６の間に遮蔽物が置かれたり、ノード装置１１３が撤去されたりすると、ノード装置１２６の経路情報４１４が変化することがある。
【０４８８】
各ノード装置４００が経路情報４１４をどのようにして書き換えるかは、実施形態に応じて任意であるが、ノード装置４００は、環境の変動に追従するように、経路情報４１４の評価値を書き換えることができる。
【０４８９】
例えば、ノード装置４００は、ハローフレーム６２０の受信頻度が低い隣接ノード装置のＬＤとしての評価を低めてもよい（すなわち評価値を大きくしてもよい）。
あるいは、ノード装置４００は、データフレーム６６０の送信が１回で成功する場合には、データフレーム６６０の送信時に指定したＬＤの評価を高めてもよい（すなわち評価値を小さくしてもよい）。逆に、データフレーム６６０の送信時にリトライが生じた場合、ノード装置４００は、データフレーム６６０の送信時に指定したＬＤの評価を低めてもよい。
【０４９０】
また、ノード装置４００は、送信したデータフレーム６６０が通信システム１００内をループしてノード装置４００に戻ってくることがあるか否かを監視してもよい。そして、データフレーム６６０が戻ってきた場合、ノード装置４００は、データフレーム６６０の送信時に指定したＬＤの評価を低めてもよい。フレームを識別するための識別情報を含む形式のフレームを用いることで、上記のような監視が可能である。
【０４９１】
いずれにせよ、経路情報４１４の変化にともない、あるノード装置４００とゲートウェイ１０１の間のホップ数が、時間によって変化することがあり得る。よって、ホップ数が変化してもノード装置４００が適切に動作するようにするため、図１３〜１７に示した処理は、二重の対策を含む。
【０４９２】
ところで、本発明は上記実施形態に限られるものではない。例えば、本明細書および図面中に例示した具体的な数値や「Ｈｅｌｌｏ」などの具体的な値は、説明の便宜上の例示に過ぎず、実施形態に応じて任意に変更してよい。
【０４９３】
また、例えば条件（Ｆ１）〜（Ｆ３）などに関して、閾値との比較処理の例をいくつか示したが、閾値との比較処理は、実施形態により適宜変更されてよい。つまり、閾値との比較処理は、「比較対象の数値が、閾値を超えるか否か」を判断する処理でもよいし、「比較対象の数値が、閾値以上か否か」を判断する処理でもよい。
【０４９４】
それ以外にも、上記実施形態は、例えば下記の観点から様々に変形することもできる。上記または下記の各種変形は、相互に矛盾しない限り、任意に組み合わせることが可能である。
【０４９５】
変形の第１の観点は、輻輳判断部３２８の判断基準に関する。上記実施形態の輻輳判断部３２８は、条件（Ｆ１）〜（Ｆ３）のすべてが成立するときに輻輳を検出する。しかし、実施形態によっては、輻輳判断部３２８は、条件（Ｆ１）〜（Ｆ３）のうちの１つが成立する場合に「輻輳が生じている」と判断してもよいし、条件（Ｆ１）〜（Ｆ３）のうちの２つが成立する場合に「輻輳が生じている」と判断してもよい。
【０４９６】
輻輳判断部３２８は、「実際は輻輳が生じているのに輻輳判断部３２８が輻輳を検出しない」という事態をできるだけ避けるために、条件（Ｆ１）〜（Ｆ３）のうちの少なくとも１つが成立する場合に「輻輳が生じている」と判断してもよい。あるいは、輻輳判断部３２８は、「実際は輻輳が生じていないのに輻輳判断部３２８が輻輳を検出する」という事態をできるだけ避けるために、条件（Ｆ１）〜（Ｆ３）のすべてが成立する場合にのみ「輻輳が生じている」と判断してもよい。
【０４９７】
また、条件（Ｆ１）は時刻の差を利用して輻輳を検出するための条件の例だが、輻輳判断部３２８は、時刻の差を利用する別の条件を、条件（Ｆ１）の代わりに用いることもできる。
【０４９８】
例えば、輻輳判断部３２８は、「データ収集スケジュールで定められた時刻から３分以内に、登録ノード装置の８０％以上からそれぞれデータフレーム６６０が収集された」という条件が成立するか否かの判断を、ステップＳ１３２の判断の代わりに行ってもよい。
【０４９９】
その場合、上記の「３分」という時間差と、「８０％」という割合は、システムパラメタ３１３に定義されているものとする。すると、輻輳判断部３２８は次のようにして上記条件が成立するか否かを判断することもできる。
【０５００】
輻輳判断部３２８は、まず、受信時刻取得部３２５が取得した時刻とデータ収集スケジュールで定められた時刻の差が３分を超えるか否かを判断する。そして、差が３分を超える場合に、輻輳判断部３２８は、登録ノード情報３１４のデータ受信時刻フィールドを参照して、データフレーム６６０が既に受信された登録ノード装置の割合を計算する。もし、計算した割合が８０％未満であれば、輻輳判断部３２８は、上記条件が成立すると判断する。
【０５０１】
あるいは、輻輳判断部３２８は、輻輳の検出に、上記で例示した以外の条件を利用してもよい。例えば、「単位時間あたりに受信されるフレームの量（例えば直近の１０秒間あたりに受信されたフレームの量）が、システムパラメタ３１３に規定される所定の閾値を超えている」という条件が、輻輳を判断するための条件の１つとして利用されてもよい。上記所定の閾値は、例えば物理層プロトコルで規定される帯域幅に基づいて決められてもよい。
【０５０２】
また、輻輳判断部３２８は、輻輳が生じたことを検出する場合と、輻輳からの回復を検出する場合とで、異なる条件を利用してもよい。
例えば、輻輳判断部３２８は、ステップＳ１３６で輻輳フラグ３１５ａをＴｒｕｅに設定するときに、システムパラメタ３１３ａの臨界誤り率の値から、所定の値を引いてもよい。そして、輻輳判断部３２８は、ステップＳ１４０で、臨界誤り率の値に上記所定の値を足してもよい。
【０５０３】
例えば所定の値が「２０％」であるとすると、輻輳フラグ３１５ａの値がＴｒｕｅのときにステップＳ１３５が実行される場合には、誤り率が３０％（＝５０％−２０％）と比較される。そして、輻輳フラグ３１５ａの値がＦａｌｓｅのときにステップＳ１３５が実行される場合には、誤り率が５０％と比較される。
【０５０４】
輻輳の発生後に複数のチャネルへ負荷が分散されると、負荷分散の結果として、誤り率が次第に低下していくと期待される。よって、上記のような臨界誤り率の書き換えにより、輻輳判断部３２８は、輻輳の緩和の度合を、誤り率を介して間接的に検出することが可能となる。
【０５０５】
また、輻輳フラグ３１５ａがＦａｌｓｅの場合、ステップＳ１２２でＲＳＳＩ計算部３２３は、デフォルトチャネルＣｈＡ用の受信機３０５Ａからの出力に基づいてＲＳＳＩを計算する。
【０５０６】
それに対して、輻輳フラグ３１５ａがＴｒｕｅの場合は、ＲＳＳＩ計算部３２３は、ステップＳ１２２において、フレームを受信した受信機からの出力に基づいてＲＳＳＩを計算してもよい。あるいは、輻輳フラグ３１５ａがＴｒｕｅの場合は、ＲＳＳＩ計算部３２３は、ステップＳ１２２において、フレームを受信した受信機によらず、受信機３０５Ａからの出力に基づいてデフォルトチャネルＣｈＡのＲＳＳＩを計算してもよい。
【０５０７】
例えば、輻輳フラグ３１５ａがＴｒｕｅのときに受信機３０５Ｂがフレームを受信したとする。この場合、複数のチャネルへの負荷の分散後にチャネルＣｈＢが輻輳しているか否かを輻輳判断部３２８が判断することができるようにするため、ＲＳＳＩ計算部３２３はチャネルＣｈＢのＲＳＳＩを計算してもよい。
【０５０８】
負荷が分散されてさえもなお輻輳の緩和が不十分なのであれば、負荷がチャネルＣｈＡに集中したと仮定した場合にチャネルＣｈＡが輻輳することは、ほぼ確実である。よって、輻輳フラグ３１５ａがＴｒｕｅであり受信機３０５Ｂがフレームを受信した場合、ＲＳＳＩ計算部３２３は、チャネルＣｈＢのＲＳＳＩを計算してもよい。
【０５０９】
あるいは、輻輳フラグ３１５ａがＴｒｕｅであり受信機３０５Ｂがフレームを受信した場合であっても、ＲＳＳＩ計算部３２３は、受信機３０５Ａからの出力に基づいてデフォルトチャネルＣｈＡのＲＳＳＩを計算してもよい。それにより、輻輳判断部３２８は、チャネルＣｈＡの通信負荷がまだ高いままなのか否かを判断することができる。
【０５１０】
例えば、ノード装置１２６からノード装置１１３へチャネルＣｈＡを介して送信されるフレームは、ゲートウェイ１０１でも受信可能である。よって、ノード装置１２６の送信量が多い場合は、ノード装置１２６からの送信が輻輳の原因の１つとなり得る。そこで、ＲＳＳＩ計算部３２３は、輻輳フラグ３１５ａがＴｒｕｅのとき、実際にフレームが受信されたチャネルによらず、常にデフォルトチャネルＣｈＡのＲＳＳＩを計算してもよい。
【０５１１】
あるいは、輻輳フラグ３１５ａがＴｒｕｅのときは、ＲＳＳＩ計算部３２３がすべてのチャネルＣｈＡ〜ＣｈＤのＲＳＳＩを計算し、輻輳判断部３２８がすべてのチャネルＣｈＡ〜ＣｈＤのＲＳＳＩに基づく判断を行ってもよい。
【０５１２】
変形の第２の観点は、ホップ数認識部４２８がホップ数を認識する方法に関する。例えば、図８の切り換え命令フレーム６３２〜６３４のように、ノードＩＤがペイロードに含まれる形式の切り換え命令フレーム６３０が使われる実施形態においては、ホップ数認識部４２８は、次のようにしてホップ数を認識してもよい。
【０５１３】
すなわち、ホップ数認識部４２８は、送受信バッファ領域４１１を参照して切り換え命令フレーム６３０のペイロードを読み出す。そして、ホップ数認識部４２８は、読み出したペイロードの中に、ノード装置４００自身のノードＩＤが含まれるか否かを判断する。
【０５１４】
そして、ホップ数認識部４２８は、読み出したペイロードの中にノード装置４００自身のノードＩＤが含まれる場合は、ノード装置４００とゲートウェイ１０１の間のホップ数が１であると認識する。逆に、ホップ数認識部４２８は、読み出したペイロードの中にノード装置４００自身のノードＩＤが含まれない場合は、ホップ数が２以上であると認識する。
【０５１５】
ホップ数認識部４２８は、以上のようにして認識した結果を、モード変更部４２４やチャネル指定部４２５に通知することができる。
また、ノード装置４００とゲートウェイ１０１の間のホップ数が１か否かの判断のために、ステップＳ２１３、Ｓ２２０、Ｓ２３４では、送信対象のフレームのＬＤの値が「ＩＤ１０１」であるか否かが判断される。
【０５１６】
しかし、実施形態によっては、代わりに、ＬＤの決定の際に選択された経路情報４１４内のエントリのホップ数の値が１であるか否かによって、ノード装置４００とゲートウェイ１０１の間のホップ数が１か否かが判断されてもよい。経路情報４１４内のエントリのホップ数は、ステップＳ２５２〜Ｓ２５７の実行によって、最新の経路を反映するように更新される。そのため、経路情報４１４内のエントリのホップ数に基づく判断も可能なのである。
【０５１７】
変形の第３の観点は、チャネル指定部４２５がチャネルを選択しなおす頻度に関する。図１３〜１７の処理によれば、ゲートウェイ１０１から１ホップ目のノード装置４００では、送信モード情報４１２が輻輳モードを示すとき、チャネル指定部４２５は、データフレーム６６０または登録要求フレーム６７０の送信のたびにチャネルを選択しなおす。
【０５１８】
しかし、実施形態によっては、チャネル指定部４２５は、登録要求フレーム６７０に関しては、輻輳モードであっても常にデフォルトチャネルＣｈＡを選択してもよい。例えば、通信システム１００内のノード装置１１１〜１４３それぞれのスケジュール情報４１５の登録要求スケジュールが時間的に分散している実施形態では、登録要求フレーム６７０が常にデフォルトチャネルＣｈＡで送信されてもよい。
【０５１９】
また、ゲートウェイ１０１から１ホップ目のノード装置４００のチャネル指定部４２５は、送信モード情報４１２が輻輳モードを示すとき、Ｆ個（Ｆ≧１）のデータフレーム６６０の送信ごとに１回、送信チャネルを選択しなおしてもよい。ただし、もちろんＦの値は小さいほど好ましく、図１３〜１７のように、Ｆ＝１の場合が最も好ましい。
【０５２０】
なぜなら、Ｆの値が大きくなるほど、「ゲートウェイ１０１から１ホップ目の複数のノード装置４００が、偶然、同時に同じチャネルを送信チャネルとして選択している」という状況が発生しやすいからである。つまり、Ｆの値が大きくなるほど、コリジョンも発生しやすく、輻輳を緩和する効果が小さくなってしまうので、Ｆ＝１が最も好ましい。
【０５２１】
なお、たとえＦの値が最小の１の場合であっても、送信チャネルが切り換えられる頻度は、Ｂｌｕｅｔｏｏｔｈ（登録商標）などで採用されている周波数ホッピングの場合より低い。しかしながら、周波数ホッピングを実現するには、予めホッピングパターンを決定するためのネゴシエーションなどの処理が必要である。それに対して、上記実施形態によれば、各ノード装置４００のチャネル指定部４２５が独立に（換言すれば、自律的に）ランダムに送信チャネルを選択するので、ネゴシエーションなどのオーバヘッドは生じない。輻輳発生時にネゴシエーションのための余計な通信が不要である点は、上記実施形態の利点である。
【０５２２】
また、セルラ・システムにおいては、端末機（例えば携帯電話など）が、基地局からの指示にしたがって送信チャネルを切り換えることがある。しかし、端末機は自律的に送信チャネルを決定するのではなく、基地局から指定されたチャネルを使う。よって、各ノード装置４００のチャネル指定部４２５が独立に（換言すれば、自律的に）送信チャネルを選択する上記実施形態におけるチャネルの切り換えは、セルラ・システムにおけるチャネルの切り換えとは異なる。
【０５２３】
変形の第４の観点は、同期処理の省略に関する。上記実施形態では、輻輳判断部３２８が図１２のステップＳ１３２において時刻に基づく判断を行う。したがって、輻輳判断部３２８が適切に判断を行えるようにするために、通信システム１００内で各装置のタイマが示す時刻を同期させるための処理が行われる。
【０５２４】
しかし、実施形態によっては、輻輳判断部３２８は、条件（Ｆ２）と（Ｆ３）がともに成立する場合を輻輳と判断してもよく、条件（Ｆ１）が利用されなくてもよい。そして、条件（Ｆ１）が利用されないならば、通信システム１００内の各装置のタイマは必ずしも同期していなくてもよいので、同期フレーム６５０を使った同期処理は省略可能である。
【０５２５】
例えば、通信システム１００内のノード装置１１１〜１４３それぞれのデータ送信スケジュールは異なっていてもよい。その場合、輻輳判断部３２８は条件（Ｆ１）を用いなくてもよい。
【０５２６】
なお、データ送信スケジュールが異なる場合、輻輳が生じる蓋然性は低い。しかし、それでも通信システム１００内に非常に多くのノード装置４００が含まれる場合などには、偶発的に輻輳が生じることもあり得る。そこで、輻輳判断部３２８は、条件（Ｆ２）と（Ｆ３）がともに成立する場合を輻輳と判断してもよい。
【０５２７】
変形の第５の観点は、登録ノード情報３１４の更新に関する。上記実施形態では、ゲートウェイ１０１への登録を要求する登録要求フレーム６７０が使われる。実施形態によっては、ゲートウェイ１０１における登録を削除することを要求するためのフレーム（便宜上、「削除要求フレーム」という）がさらに使われてもよい。
【０５２８】
例えば、通信システム１００に第２のゲートウェイが追加された場合、ノード装置１１１〜１４３の一部は、ゲートウェイ１０１に削除要求フレームを送信し、第２のゲートウェイに登録要求フレーム６７０を送信してもよい。ゲートウェイ１０１は、削除要求フレームを受信すると、削除要求フレームのＧＳのノード装置４００に対応するエントリを登録ノード情報３１４から削除する。
【０５２９】
また、上記実施形態では、登録処理部３２７は、受信機３０５Ａがハローフレーム６２０を受信した場合にステップＳ１１２〜Ｓ１１４で登録ノードテーブル３１４ａの更新を行う。しかし、登録処理部３２７は、受信機３０５Ａがデータフレーム６６０または登録要求フレーム６７０を受信した場合にも、登録ノードテーブル３１４ａの「１ホップ」フィールドを更新してもよい。それにより、登録処理部３２７は、各ノード装置４００までのホップ数に関する最新の情報を登録ノードテーブル３１４ａに反映することができる。
【０５３０】
つまり、登録処理部３２７は、受信されたデータフレーム６６０または登録要求フレーム６７０において、ＧＳとＬＳが等しければ、受信されたフレームのＧＳと同じノードＩＤを持つエントリにおける「１ホップ」フィールドをＴｒｕｅに設定してもよい。逆に、ＧＳとＬＳが等しくなければ、登録処理部３２７は、「１ホップ」フィールドをＦａｌｓｅに設定してもよい。
【０５３１】
変形の第６の観点は、処理の順序に関する。図１０〜１７のフローチャートに示した処理の順序は一例である。矛盾が生じない限り、実施形態に応じて、適宜ステップの順序を入れ替えることも可能だし、いくつかの処理を並列化することも可能である。
【０５３２】
例えば、図１０〜１２によれば、ゲートウェイ１０１は、送信に関する処理をステップＳ１０２〜Ｓ１０５で行い、その後で受信を契機とする処理をステップＳ１０７〜Ｓ１４０で行う。しかし、ゲートウェイ１０１は、受信を契機とする処理を先に行ってから、送信に関する処理を行ってもよい。同様に、ノード装置４００も、受信を契機とする処理を先に行ってから、送信に関する処理を行ってもよい。
【０５３３】
また、ステップＳ１３２〜Ｓ１３５の順序も任意に入れ替え可能である。ステップＳ１３２〜Ｓ１３５の順序が入れ替えられても、輻輳判断部３２８は、条件（Ｆ１）〜（Ｆ３）のすべてが成立するか否かを判断することができる。
【０５３４】
変形の第７の観点は、ゲートウェイ１０１によるフレームの転送に関する。上記実施形態では、ゲートウェイ１０１はフレームを転送しない。そのため、各ノード装置４００は、フレームの送信にあたって、ゲートウェイ１０１がＧＤである場合を除き、ゲートウェイ１０１をＬＤとして指定することもない。
【０５３５】
しかし、もちろん、実施形態によっては、ゲートウェイ１０１がノード装置４００と同様にフレームの転送を行ってもよい。また、ゲートウェイ１０１自身がいずれかのノード装置４００宛のデータフレーム６６０を生成してもよい。
【０５３６】
つまり、ゲートウェイ１０１のＣＰＵ３０６が、さらに、転送処理部４３０およびリンク管理部４３３と同様の処理も行ってもよい。そして、ゲートウェイ１０１のメモリ３０７が、経路情報４１４やリンク情報４１７と同じ形式の情報をさらに保持してもよく、送信バッファとして使われてもよい。
【０５３７】
変形の第８の観点は、フレームの形式に関する。フレームの形式は実施形態に応じて様々であってよい。そして、フレームの形式の変更に合わせて、当然、図１０〜１７のフローチャートのステップは適宜変更されてよい。
【０５３８】
例えば、切り換え命令と復帰命令をそれぞれ表すタイプが定義されていれば、図８〜９の例のようなサブタイプは使われなくてもよい。
そして、図８〜９に例示した以外のタイプまたはサブタイプがさらに定義されていてもよい。また、各種のフレームは、図８〜９に例示したフィールド以外のフィールドをさらに含んでもよい。フィールドの並び順も、実施形態に応じて任意に取り決めることができる。
【０５３９】
例えば、上記では詳しい説明を省略したが、ＡＣＫ信号を伝えるための特別なタイプのフレームとして「ＡＣＫフレーム」が使われてもよい。その場合、ＡＣＫフレームを返信する対象のフレーム（例えばデータフレーム）とＡＣＫフレームとの対応づけのために、フレームを一意に識別するための識別情報のフィールドが、各フレームに含まれていてもよい。
【０５４０】
変形の第９の観点は、ＦＣＳを用いたチェックに関する。上記実施形態では、輻輳判断部３２８による判断に用いられる誤り率に関連する、データフレーム６６０でのＦＣＳエラーについてのみ明示的に説明した。しかし、実施形態に応じて、他のタイプのフレームについてもＦＣＳチェック部３２４がＦＣＳを用いてエラーの有無を検出してもよい。そして、ＦＣＳチェック部３２４は、すべてのタイプのフレーム全体での誤り率を算出してもよい。
【０５４１】
また、ＦＣＳを用いたエラー検出処理は、図１１のステップＳ１２５よりも早い段階で行われてもよい。例えば、受信機３０５Ａ〜３０５Ｄのいずれかからフレームの受信を通知されるとすぐに、ＦＣＳチェック部３２４が、ＦＣＳを用いてエラーの有無を検出してもよい。さらに、エラーがない場合にのみ、ＦＣＳチェック部３２４は、上記ＡＣＫフレームの返信を送信機３０３に要求してもよい。逆に、エラーがある場合、ＦＣＳチェック部３２４は、エラーのあるフレームを受信バッファ領域３１２から削除してもよい。
【０５４２】
また、もちろん、各ノード装置４００も、受信したフレームのＦＣＳを用いて、受信したフレームにエラーがあるか否かをチェックすることができる。
変形の第１０の観点は、ＦＣＳチェック部３２４による誤り率の計算方法に関する。図１１〜１２では、２つのカウンタを利用する計算方法を例示したが、もちろん、誤り率の計算方法は実施形態に応じて適宜変形可能である。
【０５４３】
例えば、ＦＣＳチェック部３２４は、所定個数のフラグを記憶するリングバッファを使って誤り率を計算してもよい。上記「所定個数」の値は任意だが、説明の便宜上、例えば２５６であるとする。すると、ＦＣＳチェック部３２４は、例えば以下のようにして誤り率を計算することができる。
【０５４４】
ＦＣＳチェック部３２４は、ＦＣＳ誤りを検出した場合は、リングバッファのバッファポインタが指すフラグをＴｒｕｅに設定し、ＦＣＳ誤りを検出しなかった場合は、バッファポインタが指すフラグをＦａｌｓｅに設定する。また、フラグに値を設定した後、ＦＣＳチェック部３２４は、バッファポインタをインクリメントする。すると、ＦＣＳチェック部３２４は、値がＴｒｕｅのフラグの個数を２５６で割ることにより、直近に受信された２５６個のフレームでの誤り率を得ることができる。
【０５４５】
なお、以上説明した様々な実施形態について概観すれば、下記のとおりである。
図１の通信システム１００は、第１の受信部と判断部と制御部と第１の送信部を有する制御装置と、各々が第２の受信部と第２の送信部と認識部とチャネル切り換え部を有する複数のノード装置とを備える無線通信システムの具体例である。
【０５４６】
つまり、図１と図２のゲートウェイ１０１は制御装置の具体例である。また、図１のノード装置１１１〜１４３と図３のノード装置４００が、上記無線通信システムにおけるノード装置の具体例である。
【０５４７】
上記第１の受信部は、複数の無線周波数チャネルから同時に情報を受信することが可能なように構成される。例えば、図２の例では、第１の受信部は、アンテナ３０１、スイッチ３０２、分配機３０４、および受信機３０５Ａ〜３０５Ｄにより実現され、４つのチャネルＣｈＡ〜ＣｈＤから同時に、フレーム形式の情報を受信することが可能である。
【０５４８】
上記判断部は、複数の無線周波数チャネルのうちの第１のチャネルが輻輳しているか否かを判断し、例えば図２の例では、輻輳判断部３２８により実現される。第１のチャネルの具体例は、図２の例ではデフォルトチャネルＣｈＡである。
【０５４９】
上記制御部は、第１のチャネルが輻輳していると判断部が判断した場合、切り換え命令情報を生成する。制御部は、例えば図２の例では、命令発行部３２９により実現される。
なお、制御部が生成する切り換え命令情報は、送信チャネルを第１のチャネルから別のチャネルに切り換えることを、複数のノード装置のうち少なくとも一部に対して命令するための情報である。また、「複数のノード装置のうち少なくとも一部」とは、具体的には、複数のノード装置のうちで制御装置からのホップ数が１のもののことである。そして、切り換え命令情報の具体例は、図８の切り換え命令フレーム６３０〜６３４である。
【０５５０】
上記第１の送信部は、切り換え命令情報を送信する。第１の送信部は、例えば図２の例では、送信機３０３とスイッチ３０２とアンテナ３０１により実現される。
また、上記第２の受信部は、制御装置または他のノード装置から前記第１のチャネルを介して情報を受信する。例えば、図３の例では、第２の受信部は、アンテナ４０１、スイッチ４０２および受信機４０４により実現され、フレーム形式の情報をデフォルトチャネルＣｈＡを介して受信する。
【０５５１】
上記第２の送信部は、複数の無線周波数チャネルのうち送信チャネルとして指定されるチャネルを介して制御装置宛の情報を送信する。例えば、図３の例では、第２の送信部は、送信機４０３とスイッチ４０２とアンテナ４０１により実現される。そして、図３の例では、第２の送信部は、チャネルＣｈＡ〜ＣｈＤのうちでチャネル指定部４２５から送信チャネルとして指定されるチャネルを介して、ゲートウェイ１０１宛の（つまりＧＤとして「ＩＤ１０１」が指定された）フレーム形式の情報を送信する。
【０５５２】
上記認識部は、制御装置からのホップ数が１か否かを認識する。認識部は、例えば、図３の例では、ホップ数認識部４２８により実現される。
上記チャネル切り換え部は、第１の場合には、第１のチャネル以外の第２のチャネルを選んで第２のチャネルを送信チャネルとして第２の送信部に指定し、第１の場合以外の第２の場合には、第１のチャネルを送信チャネルとして第２の送信部に指定する。なおここで、「第１の場合」とは、第２の受信部が切り換え命令情報を制御装置から受信し、かつ、ホップ数は１であると認識部が認識した場合である。
【０５５３】
例えば、図３の例では、チャネル切り換え部は、モード変更部４２４とチャネル指定部４２５を含むチャネル切り換え部４２３により実現される。また、第１の場合と第２の場合の弁別のために、送信モード情報４１２が参照されるとともに、送信されるフレームのＬＤが参照される。
【０５５４】
なお、判断部は、複数のノード装置から制御装置への情報の送信についての予め決められたスケジュールと、複数のノード装置から制御装置へ情報が実際に送信された時刻との差を利用して、第１のチャネルが輻輳しているか否かを判断してもよい。そのような判断の具体例は、ステップＳ１３２である。
【０５５５】
あるいは、判断部は、複数のノード装置のうち、制御装置へ情報を送信することを制御装置に登録したノード装置の数を利用して、第１のチャネルが輻輳しているか否かを判断してもよい。そのような判断の具体例は、ステップＳ１３３である。
【０５５６】
あるいは、判断部は、制御装置における受信電力と、複数のノード装置から制御装置へ送信される情報の誤り率との組み合わせを利用して、第１のチャネルが輻輳しているか否かを判断してもよい。そのような判断の具体例は、ステップＳ１３４〜Ｓ１３５である。
【０５５７】
また、第１の場合において、チャネル切り換え部は、第２の送信部からの送信のたびに、複数の無線周波数チャネルのうちの１つを、新たに第２のチャネルとして選びなおしてもよい。送信のたびに第２のチャネルを選びなおす処理の具体例の１つは、登録要求フレーム６７０の送信のためのＳ２１２〜Ｓ２１７である。別の例は、データフレーム６６０の送信のためのステップＳ２１９〜Ｓ２２４である。さらに別の例は、データフレーム６６０または登録要求フレーム６７０の送信のためのステップＳ２３３〜２３８である。
【０５５８】
また、チャネル切り換え部は、ステップＳ２１６、Ｓ２２３、およびＳ２３７のように、ランダムに第２のチャネルを選びなおしてもよい。
または、チャネル切り換え部は、ラウンドロビンアルゴリズムにしたがって第２のチャネルを選びなおしてもよい。
【０５５９】
なお、チャネル切り換え部は、ラウンドロビンアルゴリズムにおける開始ポイントのチャネルを、ランダムに決めることが好ましい。または、制御装置が、ノード装置ごとに異なるチャネルを開始ポイントとして切り換え命令情報中で指定してもよい。どちらの場合でも、複数のノード装置それぞれのチャネル切り換え部が、偶然同時に同じチャネルを第２のチャネルとして選択する蓋然性が低く抑えられる。すなわち、開始ポイントの分散化は、コリジョンの発生を抑制するので、輻輳の緩和に有効である。
【０５６０】
あるいは、チャネル切り換え部は、複数の無線周波数チャネルそれぞれの使用状況にしたがって、第２のチャネルを選びなおしてもよい。例えば、チャネル切り換え部は、第２のチャネルを選びなおす際に、干渉検出部４２２に複数の無線周波数チャネルそれぞれの使用状況を問い合わせてもよい。
【０５６１】
例えば、干渉検出部４２２が「チャネルＣｈＢは使用されているがチャネルＣｈＣとＣｈＤは使用されていない」と検出した場合は、チャネル切り換え部は、第２のチャネルを、チャネルＣｈＣとＣｈＤの中から選んでもよい。すなわち、チャネル切り換え部は、使用されている（換言すれば、受信電力の大きい）チャネルＣｈＢを、第２のチャネルの候補から除外してもよい。
【０５６２】
または、干渉検出部４２２が検出したチャネルＣｈＢ〜ＣｈＤそれぞれの受信電力に応じて、受信電力が大きいチャネルほど第２のチャネルとして選ばれる頻度が低くなるような重み付けを行って、チャネル切り換え部が第２のチャネルを選ぶこともできる。
【０５６３】
また、切り換え命令情報が、例えば切り換え命令フレーム６３４のように、第２のチャネルを指定するチャネル指定情報を含んでもよい。すると、チャネル切り換え部は、チャネル指定情報にしたがって第２のチャネルを選ぶこともできる。例えば、切り換え命令フレーム６３４を受信したノード装置１１１のチャネル指定部４２５は、ステップＳ２１６、Ｓ２２３、およびＳ２３７において、ランダムにチャネルを選ぶ代わりに、チャネル指定情報で指定されたチャネルＣｈＢを選んでもよい。
【０５６４】
あるいは、切り換え命令情報が、例えば切り換え命令フレーム６３３のように、複数の無線周波数チャネルのうちで第２のチャネルの候補からは除外される禁止チャネルを指定する禁止情報を含んでもよい。切り換え命令フレーム６３３における禁止チャネルはチャネルＣｈＣである。すると、チャネル切り換え部は、禁止情報にしたがって、禁止チャネル以外のチャネルを第２のチャネルとして選ぶことができる。
【０５６５】
例えば、ゲートウェイ１０１は、輻輳判断部３２８が輻輳を検出したとき、チャネルＣｈＢ〜ＣｈＤの受信電力を監視してもよい。監視は、例えばＲＳＳＩ計算部３２３により行われてもよい。そして、例えばチャネルＣｈＣの受信電力が所定の閾値以上の場合は、チャネルＣｈＣを禁止チャネルとして指定する切り換え命令フレーム６３３を、命令発行部３２９が生成してもよい。
【０５６６】
また、判断部は、第１のチャネルが輻輳しているか否かの判断を繰り返し行ってもよい。そして、第１のチャネルが輻輳していると判断部が一旦判断した後に行う新たな判断において、輻輳が解消したと判断部が判断した場合に、制御部は、送信チャネルを第１のチャネル戻すことを命令する復帰命令情報を生成してもよい。復帰命令情報も、第１の送信部により送信される。
【０５６７】
なお、図１０〜１２の例では、データフレーム６６０の受信のたびに輻輳判断部３２８による判断が行われるが、輻輳判断部３２８による判断の頻度は、実施形態に応じて異なっていてもよい。例えば、輻輳判断部３２８は、送信および受信に関する処理とは独立して、定期的に輻輳の検出のための処理を繰り返し行ってもよい。
【０５６８】
また、チャネル切り換え部は、第２の受信部が復帰命令情報を受信した場合、第２の送信部に対して指定する送信チャネルを、第１のチャネル（すなわちデフォルトチャネル）に戻してもよい。復帰命令情報の具体例は、図９の復帰命令フレーム６４０〜６４１である。
【０５６９】
また、制御装置は、第１の受信部が受信した情報を用いて、制御装置からのホップ数が１である１台以上のノード装置を認識し、認識した１台以上のノード装置を登録する登録処理部をさらに備えてもよい。
【０５７０】
例えば、図３の登録処理部３２７は、受信されたハローフレーム６２０を用いて、ステップＳ１１３で、ゲートウェイ１０１からのホップ数が１のノード装置４００を登録する。あるいは、登録処理部３２７は、データフレーム６６０または登録要求フレーム６７０が受信された場合に、受信されたフレームのＧＳとＬＳが等しいか否かを判断してもよい。そして、ＧＳとＬＳが等しい場合は、受信されたフレームの送信元のノード装置４００を、「ゲートウェイ１０１からのホップ数が１のノード装置」として登録してもよい。
【０５７１】
そして、制御装置からのホップ数が１である１台以上のノード装置が上記のように登録されている場合、制御部は、切り換え命令情報に、登録処理部が登録した１台以上のノード装置をそれぞれ識別する識別情報を含めることができる。例えば、切り換え命令フレーム６３２〜６３４には、ゲートウェイ１０１からのホップ数が１のノード装置４００として登録されたノード装置１１１〜１１３を識別する識別情報としてのノードＩＤが含まれる。
【０５７２】
切り換え命令情報に識別情報が含まれる場合、認識部は、制御装置からのホップ数が１か否かを、次のようにして、第２の受信部が切り換え命令情報を受信したときに認識してもよい。すなわち、認識部は、「認識部自体を備えるノード装置が、切り換え命令情報に含まれる識別情報により識別されるならば、当該ノード装置は制御装置からのホップ数が１である」と認識してもよい。
【０５７３】
例えば、ホップ数認識部４２８は、切り換え命令フレーム６３２〜６３４のようにノードＩＤを含む切り換え命令フレーム６３０が受信された場合に、ノード装置４００自身のノードＩＤが切り換え命令フレーム６３０に含まれるか否かを判断してもよい。ホップ数認識部４２８は、「ノード装置４００自身のノードＩＤが切り換え命令フレーム６３０に含まれるならば、ホップ数が１であり、含まれないならば、ホップ数は２以上である」と認識することができる。
【図１】
2012042624.tif 000003
【図２】
2012042624.tif 000004
【図３】
2012042624.tif 000005
【図４】
2012042624.tif 000006
【図５】
2012042624.tif 000007
【図６】
2012042624.tif 000008
【図７】
2012042624.tif 000009
【図８】
2012042624.tif 000010
【図９】
2012042624.tif 000011
【図１０】
2012042624.tif 000012
【図１１】
2012042624.tif 000013
【図１２】
2012042624.tif 000014
【図１３】
2012042624.tif 000015
【図１４】
2012042624.tif 000016
【図１５】
2012042624.tif 000017
【図１６】
2012042624.tif 000018
【図１７】
2012042624.tif 000019
【手続補正書】
【提出日】平成24年11月1日(2012.11.1)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
制御装置と複数のノード装置を備える無線通信システムであって、
前記制御装置は、
複数の無線周波数チャネルから同時に情報を受信することが可能なように構成された第１の受信部と、
前記複数の無線周波数チャネルのうちの第１のチャネルが輻輳しているか否かを判断する判断部と
前記第１のチャネルが輻輳していると前記判断部が判断した場合、送信チャネルを前記第１のチャネルから別のチャネルに切り換えることを前記複数のノード装置のうち少なくとも一部に対して命令するための切り換え命令情報を生成する制御部と、
前記切り換え命令情報を送信する第１の送信部
を備え、
前記複数のノード装置の各々は、
前記制御装置または他のノード装置から前記第１のチャネルを介して情報を受信する第２の受信部と、
前記複数の無線周波数チャネルのうち前記送信チャネルとして指定されるチャネルを介して前記制御装置宛の情報を送信する第２の送信部と、
前記制御装置からのホップ数が１か否かを認識する認識部と、
前記第２の受信部が前記切り換え命令情報を前記制御装置から受信し、かつ、前記ホップ数は１であると前記認識部が認識した第１の場合には、前記第１のチャネル以外の第２のチャネルを選んで前記第２のチャネルを前記送信チャネルとして前記第２の送信部に指定し、前記第１の場合以外の第２の場合には、前記第１のチャネルを前記送信チャネルとして前記第２の送信部に指定するチャネル切り換え部
を備えることを特徴とする通信システム。
【請求項２】
前記判断部は、
前記複数のノード装置から前記制御装置への前記情報の送信についての予め決められたスケジュールと、前記複数のノード装置から前記制御装置へ前記情報が実際に送信された時刻との差、
前記複数のノード装置のうち、前記制御装置へ前記情報を送信することを前記制御装置に登録したノード装置の数、
前記制御装置における受信電力と、前記複数のノード装置から前記制御装置へ送信される前記情報の誤り率との組み合わせ
の少なくとも１つを利用して、前記第１のチャネルが輻輳しているか否かを判断する
ことを特徴とする請求項１に記載の通信システム。
【請求項３】
前記第１の場合において、前記チャネル切り換え部は、前記第２の送信部からの送信のたびに、
ランダムに、
ラウンドロビンアルゴリズムにしたがって、または
前記複数の無線周波数チャネルそれぞれの使用状況にしたがって、
前記複数の無線周波数チャネルのうちの１つを、新たに前記第２のチャネルとして選びなおす
ことを特徴とする請求項１または２に記載の通信システム。
【請求項４】
前記判断部は、前記第１のチャネルが輻輳しているか否かの判断を繰り返し行い、
前記第１のチャネルが輻輳していると前記判断部が一旦判断した後に行う新たな判断において、輻輳が解消したと前記判断部が判断した場合に、前記制御部は、前記送信チャネルを前記第１のチャネルに戻すことを命令する復帰命令情報を生成し、
前記第１の送信部は前記復帰命令情報も送信し、
前記複数のノード装置の各々の前記チャネル切り換え部は、前記第２の受信部が前記復帰命令情報を受信した場合、前記第２の送信部に対して指定する前記送信チャネルを、前記第１のチャネルに戻す
ことを特徴とする請求項１から３のいずれか１項に記載の通信システム。
【請求項５】
複数のノード装置を含む無線通信システムにおいて用いられる制御装置であって、
複数の無線周波数チャネルから同時に情報を受信することが可能なように構成された受信部と、
前記複数の無線周波数チャネルのうちの第１のチャネルが輻輳しているか否かを判断する判断部と、
前記第１のチャネルが輻輳していると前記判断部が判断した場合に、前記複数のノード装置のうち前記制御装置からのホップ数が１である１台以上のノード装置に対して、前記制御装置に情報を送信するときに使用する送信チャネルを前記第１のチャネルから別のチャネルに切り換えるように命令するための、切り換え命令情報を生成する制御部と、
前記切り換え命令情報を送信する送信部
を備えることを特徴とする制御装置。
【請求項６】
ノード装置であって、
制御装置または他のノード装置から無線通信により第１のチャネルを介して情報を受信する受信部と、
前記第１のチャネルを含む複数の無線周波数チャネルのうち送信チャネルとして指定されるチャネルを介して前記制御装置宛の情報を送信する送信部と、
前記制御装置からのホップ数が１か否かを認識する認識部と、
前記送信チャネルを前記第１のチャネルから別のチャネルに切り換えることを命令する切り換え命令情報を前記制御装置から前記受信部が受信し、かつ、前記ホップ数は１であると前記認識部が認識した第１の場合には、前記送信部からの送信のたびに、前記第１のチャネル以外の第２のチャネルを新たに選んで、前記第２のチャネルを前記送信チャネルとして前記第２の送信部に指定し、前記第１の場合以外の第２の場合には、前記第１のチャネルを前記送信チャネルとして前記第２の送信部に指定するチャネル切り換え部
を備えることを特徴とするノード装置。
【手続補正書】
【提出日】平成25年8月19日(2013.8.19)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
制御装置と複数のノード装置を備える無線通信システムであって、
前記制御装置は、
複数の無線周波数チャネルから同時に情報を受信することが可能なように構成された第１の受信部と、
前記複数の無線周波数チャネルのうちの第１のチャネルが輻輳しているか否かを判断する判断部と
前記第１のチャネルが輻輳していると前記判断部が判断した場合、送信チャネルを前記第１のチャネルから別のチャネルに切り換えることを前記複数のノード装置のうち少なくとも一部に対して命令するための切り換え命令情報を生成する制御部と、
前記切り換え命令情報を送信する第１の送信部
を備え、
前記複数のノード装置の各々は、
前記制御装置または他のノード装置から前記第１のチャネルを介して情報を受信する第２の受信部と、
前記複数の無線周波数チャネルのうち前記送信チャネルとして指定されるチャネルを介して前記制御装置宛の情報を送信する第２の送信部と、
前記制御装置からのホップ数が１か否かを認識する認識部と、
前記第２の受信部が前記切り換え命令情報を前記制御装置から受信し、かつ、前記ホップ数は１であると前記認識部が認識した第１の場合には、前記第１のチャネル以外の第２のチャネルを選んで前記第２のチャネルを前記送信チャネルとして前記第２の送信部に指定し、前記第１の場合以外の第２の場合には、前記第１のチャネルを前記送信チャネルとして前記第２の送信部に指定するチャネル切り換え部
を備えることを特徴とする通信システム。
【請求項２】
前記判断部は、
前記複数のノード装置から前記制御装置への前記情報の送信についての予め決められたスケジュールと、前記複数のノード装置から前記制御装置へ前記情報が実際に送信された時刻との差、
前記複数のノード装置のうち、前記制御装置へ前記情報を送信することを前記制御装置に登録したノード装置の数、
前記制御装置における受信電力と、前記複数のノード装置から前記制御装置へ送信される前記情報の誤り率との組み合わせ
の少なくとも１つを利用して、前記第１のチャネルが輻輳しているか否かを判断する
ことを特徴とする請求項１に記載の通信システム。
【請求項３】
前記第１の場合において、前記チャネル切り換え部は、前記第２の送信部からの送信のたびに、
ランダムに、
ラウンドロビンアルゴリズムにしたがって、または
前記複数の無線周波数チャネルそれぞれの使用状況にしたがって、
前記複数の無線周波数チャネルのうちの１つを、新たに前記第２のチャネルとして選びなおす
ことを特徴とする請求項１または２に記載の通信システム。
【請求項４】
前記判断部は、前記第１のチャネルが輻輳しているか否かの判断を繰り返し行い、
前記第１のチャネルが輻輳していると前記判断部が一旦判断した後に行う新たな判断において、輻輳が解消したと前記判断部が判断した場合に、前記制御部は、前記送信チャネルを前記第１のチャネルに戻すことを命令する復帰命令情報を生成し、
前記第１の送信部は前記復帰命令情報も送信し、
前記複数のノード装置の各々の前記チャネル切り換え部は、前記第２の受信部が前記復帰命令情報を受信した場合、前記第２の送信部に対して指定する前記送信チャネルを、前記第１のチャネルに戻す
ことを特徴とする請求項１から３のいずれか１項に記載の通信システム。
【請求項５】
複数のノード装置を含む無線通信システムにおいて用いられる制御装置であって、
複数の無線周波数チャネルから同時に情報を受信することが可能なように構成された受信部と、
前記複数のノード装置から前記制御装置への情報の送信についての予め決められたスケジュールと、前記複数のノード装置から前記制御装置へ前記情報が実際に送信された時刻との差、または、前記複数のノード装置のうち前記制御装置へ前記情報を送信することを前記制御装置に登録したノード装置の数、または、前記制御装置における受信電力と前記複数のノード装置から前記制御装置へ送信される前記情報の誤り率との組み合わせのうち、少なくとも１つを利用して、前記複数の無線周波数チャネルのうちの第１のチャネルが輻輳しているか否かを判断する判断部と、
前記第１のチャネルが輻輳していると前記判断部が判断した場合に、前記複数のノード装置のうち前記制御装置からのホップ数が１である１台以上のノード装置に対して、前記制御装置に情報を送信するときに使用する送信チャネルを前記第１のチャネルから別のチャネルに切り換えるように命令するための、切り換え命令情報を生成する制御部と、
前記切り換え命令情報を送信する送信部
を備えることを特徴とする制御装置。
【請求項６】
ノード装置であって、
制御装置または他のノード装置から無線通信により第１のチャネルを介して情報を受信する受信部と、
前記第１のチャネルを含む複数の無線周波数チャネルのうち送信チャネルとして指定されるチャネルを介して前記制御装置宛の情報を送信する送信部と、
前記制御装置からのホップ数が１か否かを認識する認識部と、
前記送信チャネルを前記第１のチャネルから別のチャネルに切り換えることを命令する切り換え命令情報を前記制御装置から前記受信部が受信し、かつ、前記ホップ数は１であると前記認識部が認識した第１の場合には、前記送信部からの送信のたびに、前記第１のチャネル以外の第２のチャネルを新たに選んで、前記第２のチャネルを前記送信チャネルとして前記第２の送信部に指定し、前記第１の場合以外の第２の場合には、前記第１のチャネルを前記送信チャネルとして前記第２の送信部に指定するチャネル切り換え部
を備えることを特徴とするノード装置。
【国際調査報告】
2012042624.tif 000020
2012042624.tif 000021
2012042624.tif 000022
2012042624.tif 000023