(57)【要約】  無線装置は、検出部と、送信部と、選択部とを備える。検出部は、データの送受信に利用可能な複数の通信チャネル各々を切り替えつつ、周辺の無線装置からの電波干渉の有無を示す干渉情報を通信チャネル毎に検出する。送信部は、データの送受信に先立って、データの宛先となる宛先無線装置に対して、検出部によって検出された干渉情報を無線装置毎に順次格納するパケットを送信する。選択部は、パケットを受信し、パケットの宛先となる宛先無線装置に自装置が該当しない場合に、検出部によって検出された干渉情報を追記したパケットを転送する。選択部は、パケットの宛先となる宛先無線装置に自装置が該当する場合に、パケットに無線装置毎に順次格納された干渉情報と検出部によって検出された干渉情報とに基づいて、データを送受信する通信チャネルを選択する。
2013145239.tif 000002
【特許請求の範囲】
【請求項１】
データの送受信に利用可能な複数の通信チャネル各々を切り替えつつ、周辺の無線装置からの電波干渉の有無を示す干渉情報を前記通信チャネル毎に検出する検出部と、
前記データの送受信に先立って、前記データの宛先となる宛先無線装置に対して、前記検出部によって検出された干渉情報を無線装置毎に順次格納するパケットを送信する送信部と、
前記パケットを受信し、前記パケットの宛先となる前記宛先無線装置に自装置が該当しない場合に、前記検出部によって検出された干渉情報を追記した前記パケットを転送し、前記パケットの宛先となる前記宛先無線装置に自装置が該当する場合に、前記パケットに無線装置毎に順次格納された干渉情報と前記検出部によって検出された干渉情報とに基づいて、前記データを送受信する前記通信チャネルを選択する選択部と
を備えたことを特徴とする無線装置。
【請求項２】
前記選択部によって選択された前記通信チャネルである使用チャネルに対して前記検出部によって検出された干渉情報が前記電波干渉が有ることを示す場合に、当該使用チャネルを利用してデータの送受信を行っている周辺の無線装置から閾値以上となる電波を発している干渉無線装置を特定し、特定した干渉無線装置に対して、当該使用チャネルを利用したデータの送信を停止することを要求するチャネル削減要求パケットを送信するチャネル削減制御部をさらに備えたことを特徴とする請求項１に記載の無線装置。
【請求項３】
前記チャネル削減制御部は、前記チャネル削減要求パケットを他の無線装置から受信した場合に、自装置が前記使用チャネルを利用したデータの送信を行っており、かつ、前記使用チャネル以外の他の通信チャネルを利用したデータの送信を行っているならば、前記使用チャネルを利用したデータの送信を停止することを特徴とする請求項２に記載の無線装置。
【請求項４】
前記チャネル削減制御部は、前記チャネル削減要求パケットを他の無線装置から受信した場合に、自装置が前記使用チャネルを利用したデータの送信を行っていないならば、当該データの送信元となる他の無線装置に対して、前記チャネル削減要求パケットを転送することを特徴とする請求項２に記載の無線装置。
【請求項５】
コンピュータが実行する通信チャネル選択方法であって、
データの送受信に利用可能な複数の通信チャネル各々を切り替えつつ、周辺の無線装置からの電波干渉の有無を示す干渉情報を前記通信チャネル毎に検出し、
前記データの送受信に先立って、前記データの宛先となる宛先無線装置に対して、前記検出された干渉情報を無線装置毎に順次格納するパケットを送信し、
前記パケットを受信し、前記パケットの宛先となる前記宛先無線装置に自装置が該当しない場合に、前記検出された干渉情報を追記した前記パケットを転送し、前記パケットの宛先となる前記宛先無線装置に自装置が該当する場合に、前記パケットに無線装置毎に順次格納された干渉情報と前記検出された干渉情報とに基づいて、前記データを送受信する前記通信チャネルを選択する
ことを含んだことを特徴とする通信チャネル選択方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、無線装置及び通信チャネル選択方法に関する。
【背景技術】
【０００２】
近年、水位や温度などのデータを計測する無線装置を複数個所に配置し、各無線装置が計測したデータを送受信するマルチホップネットワークが存在する。以下では、無線装置を単にノードと表記する。マルチホップネットワークでは、各ノードを有線により接続するとケーブルを敷設する作業が煩雑である。このため、マルチホップネットワークでは、各ノードを無線により接続し、無線周波数帯から選択した所定の通信チャネルを利用してデータの送受信を行うことが検討されている。【０００３】
各ノードを無線により接続したマルチホップネットワークでは、近傍に配置されたノード同士が同一の無線周波数帯の通信チャネルを用いて同時にデータの送受信を行った場合に、各ノードからの電波が相互に干渉するという電波干渉の問題がある。この電波干渉の問題を解決する技術として、ＣＳＭＡ／ＣＡ（Carrier  Sense  Multiple  Access/Collision  Avoidance）方式やＲＴＳ／ＣＴＳ（Request  To  Send/Clear  To  Send）方式等の衝突回避方式が知られている。ＣＳＭＡ／ＣＡ方式は、各ノードが電波の発信に先立って同一の通信チャネルにおける他のノードの電波の発信状況をチェックするものである。ＲＴＳ／ＣＴＳ方式は、各ノードが電波の発信に先立って同一の通信チャネルにおける電波の発信の可否をアクセスポイントと呼ばれる親局に問い合わせるものである。【０００４】
ただし、ＣＳＭＡ／ＣＡ方式やＲＴＳ／ＣＴＳ方式では、各ノードが同一の通信チャネルを用いて電波の衝突を回避するだけであり、各ノードは、近傍に配置された他のノードが電波の送信を停止するまで、データの送受信を行うことができない。このため、スループットが低下する恐れがある。【０００５】
これに対して、データの送受信に利用可能な複数の通信チャネルを用いて電波の衝突を調停する技術が提案されている。この技術では、複数のノードを統括する親局が、データの送受信に利用可能な複数の通信チャネルから他のノードにより利用されていない空きチャネルを探索し、探索した空きチャネルをデータを送受信する通信チャネルとして選択する。親局は、選択した通信チャネルの情報を含めたビーコン信号を配下のノードにブロードキャストにより送信する。ビーコン信号を受信したノードは、ビーコン信号に含まれる空きチャネルを用いてデータの送受信を開始する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００２−１５８６６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述した従来技術では、ビーコン信号の到達範囲外に配置されたノードが適切な通信チャネルを選択することができないという問題があった。ノードが適切な通信チャネルを選択することができない場合には、各ノードからの電波が相互に干渉し、スループットが低下する恐れがある。【０００８】
ここで、従来技術の問題点について説明する。図２４は、従来技術の問題点を説明するための図である。図２４に示す例では、ノード１０ａ〜１０ｈが無線により接続されている。ここでは、ノード１０ａが親局であり、ノード１０ａが、無線周波数帯の複数の通信チャネルから探索された空きチャネルをデータの送受信用の通信チャネルとして選択しているものとする。親局であるノード１０ａは、選択した空きチャネルの情報を含めたビーコン信号をブロードキャストにより送信する。ノード１０ａから送信されたビーコン信号の到達範囲Ｂには、ノード１０ｂが配置されている。このため、ノード１０ｂは、ビーコン信号を受信して、ビーコン信号に含まれる空きチャネルを用いてノード１０ａとの間でデータの送受信を行うことができる。一方で、ノード１０ｃ〜１０ｈは、ビーコン信号の到達範囲Ｂの外部に配置されている。このため、ノード１０ｃ〜１０ｈは、ビーコン信号に含まれる空きチャネルを認識することができず、適切な通信チャネルを選択することができない。結果として、ノード１０ｃ〜１０ｈは、無秩序に同一の通信チャネルを選択する可能性があり、この場合には、各ノードからの電波が相互に干渉してスループットが低下してしまう。【０００９】
開示の技術は、上記に鑑みてなされたものであって、スループットの低下を抑えた適切な通信チャネルを選択することができる無線装置及び通信チャネル選択方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本願の開示する無線装置は、一つの態様において、検出部と、送信部と、選択部とを備える。検出部は、データの送受信に利用可能な複数の通信チャネル各々を切り替えつつ、周辺の無線装置からの電波干渉の有無を示す干渉情報を前記通信チャネル毎に検出する。送信部は、前記データの送受信に先立って、前記データの宛先となる宛先無線装置に対して、前記検出部によって検出された干渉情報を無線装置毎に順次格納するパケットを送信する。選択部は、前記パケットを受信し、前記パケットの宛先となる前記宛先無線装置に自装置が該当しない場合に、前記検出部によって検出された干渉情報を追記した前記パケットを転送する。選択部は、前記パケットの宛先となる前記宛先無線装置に自装置が該当する場合に、前記パケットに無線装置毎に順次格納された干渉情報と前記検出部によって検出された干渉情報とに基づいて、前記データを送受信する前記通信チャネルを選択する。
【発明の効果】
【００１１】
本願の開示する無線装置の一つの態様によれば、スループットの低下を抑えた適切な通信チャネルを選択することができるという効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】図１は、本実施例に係るマルチホップネットワークの構成を示す図である。
【図２】図２は、ノードが、使用チャネルを利用して実際にデータを送受信するタイミングを説明するための図である。
【図３】図３は、本実施例に係るノードの構成を示す機能ブロック図である。
【図４】図４は、干渉情報記憶部のデータ構造の一例を示す図である。
【図５】図５は、本実施例における確認パケットのデータ構造の一例を示す図である。
【図６】図６は、確認パケットに格納されるノードの干渉情報のデータ構造の一例を示す図である。
【図７】図７は、本実施例におけるチャネル選択部の処理の一例を説明するための図である。
【図８】図８は、本実施例における応答パケットのデータ構造の一例を示す図である。
【図９】図９は、本実施例におけるチャネル削減要求パケットのデータ構造の一例を示す図である。
【図１０】図１０は、本実施例に係るノードが受信電波レベルを測定する処理の処理手順を示すフローチャートである。
【図１１】図１１は、本実施例に係るノードが干渉情報を検出する処理の処理手順を示すフローチャートである。
【図１２】図１２は、本実施例に係るノードが確認パケットを送信する処理の処理手順を示すフローチャートである。
【図１３】図１３は、本実施例に係るノードが使用チャネルを選択する処理の処理手順を示すフローチャートである。
【図１４】図１４は、本実施例における通信チャネル選択処理の処理手順を示すフローチャートである。
【図１５】図１５は、本実施例に係るノードがチャネル削減要求パケットを送信する処理の処理手順を示すフローチャートである。
【図１６】図１６は、本実施例に係るノードがチャネル削減要求パケットを受信した場合の処理手順を示すフローチャートである。
【図１７】図１７は、通信経路に含まれる全てのノードに電波干渉が発生していない場合の処理を説明するための図である。
【図１８】図１８は、通信経路に含まれる一部のノードに電波干渉が発生している場合の処理を説明するための図（その１）である。
【図１９】図１９は、通信経路に含まれる一部のノードに電波干渉が発生している場合の処理を説明するための図（その２）である。
【図２０】図２０は、通信経路に含まれる一部のノードに電波干渉が発生している場合の処理を説明するための図（その３）である。
【図２１】図２１は、本実施例のマルチホップネットワークの全体の処理手順を示すシーケンス図である。
【図２２】図２２は、ノード１００ｄによって送信された確認パケットの一例を示す図である。
【図２３】図２３は、ノード１００ｃによって転送された確認パケットの一例を示す図である。
【図２４】図２４は、従来技術の問題点を説明するための図である。
【発明を実施するための形態】
【００１３】
以下に、本願の開示する無線装置及び通信チャネル選択方法の実施例について、図面を参照しながら詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【００１４】
本実施例のマルチホップネットワークの構成について説明する。図１は、本実施例に係るマルチホップネットワークの構成を示す図である。図１に示すように、マルチホップネットワークは、ノード１００ａ〜１００ｈを有する。ノード１００ａ〜１００ｈは、無線装置の一例である。各ノード１００ａ〜１００ｈは、隣接のノードと無線により接続する。例えば、ノード１００ａは、ノード１００ｃに接続する。ノード１００ｃは、ノード１００ｅに接続する。ノード１００ｃは、ノード１００ｂに接続する。ノード１００ｃは、ノード１００ｄに接続する。ノード１００ｅは、ノード１００ｈに接続する。ノード１００ｅは、ノード１００ｆに接続する。ノード１００ｅは、ノード１００ｇに接続する。本実施例では、ノード１００ａ〜１００ｈをまとめて、ノード１００と表記する。
【００１５】
ノード１００は、データの送受信に先立って、帯域調停期間と呼ばれる一定の期間に、無線周波数帯の複数の通信チャネルからデータを送受信する通信チャネルを選択する。ノード１００は、データ送受信期間と呼ばれる一定の期間に、帯域調停期間において選択した通信チャネルを利用して実際にデータの送受信を行う。なお、以下では、実際にデータを送受信する通信チャネルを、使用チャネルと言うことがあるものとする。
【００１６】
図２は、ノード１００が、使用チャネルを利用して実際にデータを送受信するタイミングを説明するための図である。図２に示すように、ノード１００は、データ送受信期間Ｔ２が到来する前の帯域調停期間Ｔ１において、無線周波数帯の複数の通信チャネルから使用チャネルを選択する。ノード１００は、帯域調停期間Ｔ１が満了すると、データ送受信期間Ｔ２において、帯域調停期間Ｔ１の間に選択した使用チャネルを利用して実際にデータの送受信を行う。ノード１００は、データ送受信期間Ｔ２の間のデータの送受信が終了すると、帯域調停期間Ｔ１において、再び使用チャネルを選択する。ノード１００は、帯域調停期間Ｔ１が満了すると、データ送受信期間Ｔ２において、帯域調停期間Ｔ１の間に選択した使用チャネルを利用して再びデータの送受信を行う。このように、帯域調停期間Ｔ１と、データ送受信期間Ｔ２とが周期的に繰り返される。
【００１７】
次に、図１に示したノード１００の構成について説明する。図３は、本実施例に係るノードの構成を示す機能ブロック図である。図３に示すように、このノード１００は、無線インターフェース部１０１、チャネル切替部１０２、干渉情報記憶部１０３、干渉情報検出部１０４、確認パケット送信部１０５、チャネル選択部１０６及びチャネル削減制御部１０７を有する。
【００１８】
無線インターフェース部１０１は、隣接のノードとの間で無線により通信を行う処理部である。例えば、無線インターフェース部１０１は、確認パケット送信部１０５から受け取った後述の確認パケットを隣接のノードに送信する。また、無線インターフェース部１０１は、隣接のノードから受信した確認パケットをチャネル選択部１０６に出力する。また、無線インターフェース部１０１は、チャネル選択部１０６から転送された確認パケットを隣接のノードに送信する。また、無線インターフェース部１０１は、チャネル選択部１０６から受け取った後述の応答パケットを隣接のノードに送信する。また、無線インターフェース部１０１は、チャネル削減制御部１０７から受け取った後述のチャネル削減要求パケットを隣接のノードに送信する。また、無線インターフェース部１０１は、隣接のノードから受信したチャネル削減要求パケットをチャネル削減制御部１０７に出力する。
【００１９】
チャネル切替部１０２は、無線周波数帯の複数の通信チャネル間を切り替える処理部である。チャネル切替部１０２は、干渉情報検出部１０４からの指示に応じて通信チャネルを切り替える。また、チャネル切替部１０２は、チャネル選択部１０６によって選択された使用チャネルを、無線インターフェース部１０１に設定する。
【００２０】
干渉情報記憶部１０３は、自ノード１００の周辺のノードからの電波干渉の有無を示す干渉情報を通信チャネル毎に記憶する。図４は、干渉情報記憶部のデータ構造の一例を示す図である。図４に示すように、干渉情報記憶部１０３は、通信チャネル、周辺ノード及び受信電波レベルを対応付けて記憶する。
【００２１】
このうち、通信チャネルは、データの送受信時に利用可能な通信チャネルを示す。周辺ノードは、自ノード１００の周辺に存在し、通信チャネルを利用して電波を発信するノードのアドレスを格納する。受信電波レベルは、周辺ノードから発信される電波の受信電波レベルを格納する。
【００２２】
干渉フラグは、周辺ノードから発信される電波によって通信チャネルに対する電波干渉が発生しているか否か示すフラグである。通信チャネルに対する電波干渉が発生している場合には、干渉フラグに「１」が設定され、通信チャネルに対する電波干渉が発生していない場合には、干渉フラグに「０」が設定される。干渉フラグは干渉情報の一例である。例えば、図４の例では、通信チャネル「ＣＨ＃１」、「ＣＨ＃３」に対応する干渉フラグに「０」が設定されているため、通信チャネル「ＣＨ＃１」、「ＣＨ＃３」に対する電波干渉が発生していないことを示している。また、図４の例では、通信チャネル「ＣＨ＃２」に対応する干渉フラグに「１」が設定されているため、通信チャネル「ＣＨ＃２」に対する電波干渉が発生していることを示している。
【００２３】
図３に戻り、干渉情報検出部１０４は、データの送受信に利用可能な複数の通信チャネル各々を切り替えつつ、周辺のノードからの電波干渉の有無を示す干渉情報を通信チャネル毎に検出する。
【００２４】
干渉情報検出部１０４が通信チャネル毎に干渉情報を検出する処理の一例について説明する。まず、干渉情報検出部１０４は、通信チャネルを切り替えて、周辺のノードから発信される電波の受信電波レベルを測定する。具体的には、干渉情報検出部１０４は、チャネル切替部１０２を制御して、通信チャネルを初期チャネルに設定し、設定した通信チャネルの受信電波レベルを測定する。干渉情報検出部１０４は、測定した受信電波レベルが閾値以上であるか否かを判定し、測定した受信電波レベルが閾値以上である場合に、現在の通信チャネルを利用して電波を発信するノードのアドレスを取得して干渉情報記憶部１０３の周辺ノードに格納する。干渉情報検出部１０４は、測定した受信電波レベルを干渉情報記憶部１０３の受信電波レベルに格納する。その後、干渉情報検出部１０４は、チャネル切替部１０２を制御して、通信チャネルを順次切り替え、切り替え後の通信チャネルの受信電波レベルを測定し、測定した受信電波レベルを格納する一連の動作を全通信チャネルの測定を完了するまで繰り返し実行する。
【００２５】
続いて、干渉情報検出部１０４は、測定した受信電波レベルを基にして、干渉情報を検出する。具体的には、干渉情報検出部１０４は、干渉情報記憶部１０３の先頭の通信チャネルのレコードを参照する。干渉情報検出部１０４は、参照したレコードに閾値以上となる受信電波レベルがあるか否かを判定する。干渉情報検出部１０４は、参照したレコードに閾値以上となる受信電波レベルがある場合には、参照したレコードの干渉フラグを、電波干渉が発生していることを示す「１」に設定する。一方で、干渉情報検出部１０４は、参照したレコードに閾値以上となる受信電波レベルがない場合には、参照したレコードの干渉フラグを、電波干渉が発生していないことを示す「０」に設定する。干渉情報検出部１０４は、干渉情報検出部１０４の次の通信チャネルのレコードを参照し、参照したレコードの干渉フラグを設定する一連の動作を全チャネルのレコード分だけ繰り返し実行することで、干渉情報としての干渉フラグを通信チャネル毎に検出する。
【００２６】
確認パケット送信部１０５は、データの送受信に先立って、自ノード１００からデータの宛先となる宛先ノードに至る通信経路に含まれるノード毎に電波干渉の有無を確認するための確認パケットを生成する。具体的には、確認パケット送信部１０５は、干渉情報検出部１０４によって検出された干渉情報をノード毎に順次格納する確認パケットを生成する。確認パケット送信部１０５は、宛先ノードに対して確認パケットを送信する。
【００２７】
ここで、確認パケット送信部１０５が生成する確認パケットのデータ構造の一例について説明する。図５は、本実施例における確認パケットのデータ構造の一例を示す図である。図５に示すように、確認パケットは、宛先、送信元及びノード１００ａ〜１００ｎの干渉情報を含む。
【００２８】
このうち、宛先は、宛先ノードのアドレスを格納する。例えば、確認パケット送信部１０５は、各ノード１００ａ〜１００ｈのアドレステーブルを保持し、アドレステーブルを利用して、宛先に宛先ノードのアドレスを設定する。送信元は、確認パケットの送信元となるノード１００のアドレスを格納する。
【００２９】
ノード１００ａの干渉情報には、ノード１００ａの干渉情報検出部１０４によって検出された干渉情報が格納される。ノード１００ｃの干渉情報には、ノード１００ｃの干渉情報検出部１０４によって検出された干渉情報が格納される。ノード１００ｅの干渉情報には、ノード１００ｅの干渉情報検出部１０４によって検出された干渉情報が格納される。
【００３０】
なお、図５に示すノード１００ａ〜１００ｎの干渉情報は、ノード１００ａ、ノード１００ｃ、ノード１００ｅ・・・ノード１００ｎの順に確認パケットが転送されるたびに、順次追記される。言い換えると、ノード１００ａの確認パケット送信部１０５によって生成される確認パケットには、ノード１００ａの干渉情報のみが格納される。ノード１００ｃ〜１００ｎの干渉情報は、ノード１００ｃ、ノード１００ｅ・・・ノード１００ｎの順に確認パケットが転送されるたびに、順次追記される。
【００３１】
ここで、ノード１００ａの確認パケット送信部１０５によって生成される確認パケットに格納されるノード１００ａの干渉情報のデータ構造の一例について説明する。図６は、確認パケットに格納されるノードの干渉情報のデータ構造の一例を示す図である。図６に示すように、ノード１００ａの干渉情報には、通信チャネル毎に干渉フラグが格納される。
【００３２】
通信チャネルは、データの送受信時に利用可能な通信チャネルを示す。干渉フラグは、通信チャネルに対する電波干渉が発生しているか否か示すフラグである。通信チャネルに対する電波干渉が発生している場合には、干渉フラグに「１」が設定され、通信チャネルに対する電波干渉が発生していない場合には、干渉フラグに「０」が設定される。
【００３３】
図３に戻り、確認パケット送信部１０５は、例えば、データの送信を示すトリガが発生し、帯域調停期間が到来する度に、確認パケットを生成し、生成した確認パケットを送信する。
【００３４】
確認パケット送信部１０５が確認パケットを生成して送信する処理の一例について説明する。確認パケット送信部１０５は、データの送信を示すトリガが発生すると、干渉情報記憶部１０３を参照して、通信チャネル毎の干渉フラグの値を抽出し、確認パケットの干渉情報に設定する。確認パケット送信部１０５は、確認パケットの宛先に宛先ノードのアドレスを格納する。確認パケット送信部１０５は、確認パケットの送信元に自ノード１００のアドレスを格納する。確認パケット送信部１０５は、無線インターフェース部１０１を介して確認パケットを送信する。
【００３５】
チャネル選択部１０６は、隣接のノードから確認パケットを受信し、確認パケットの宛先に自ノード１００が該当するか否かを判定する。チャネル選択部１０６は、確認パケットの宛先に自ノード１００が該当しない場合には、干渉情報記憶部１０３に記憶された干渉情報を追記した確認パケットを他のノードに転送する。チャネル選択部１０６は、確認パケットの宛先に自ノード１００が該当する場合には、確認パケットにノード毎に順次格納された干渉情報と干渉情報記憶部１０３に記憶された干渉情報とを基にして、データを送受信する使用チャネルを選択する。チャネル選択部１０６は、選択した使用チャネルをチャネル切替部１０２に出力する。
【００３６】
チャネル選択部１０６が確認パケットを転送する処理の一例について説明する。チャネル選択部１０６は、確認パケットに干渉情報のレコードを新規に作成する。チャネル選択部１０６は、干渉情報記憶部１０３を参照して、通信チャネル毎の干渉フラグの値を抽出し、抽出した通信チャネル毎の干渉フラグの値を確認パケットの新規に作成された干渉情報に追加格納する。チャネル選択部１０６は、干渉フラグの値を追加格納した確認パケットを無線インターフェース部１０１を介して転送する。
【００３７】
チャネル選択部１０６が使用チャネルを選択する処理の一例について説明する。図７は、本実施例におけるチャネル選択部の処理の一例を説明するための図である。なお、図７に示す例では、チャネル選択部１０６が、確認パケットの宛先に自ノード１００ｈが該当すると判定したものとする。チャネル選択部１０６は、確認パケットに含まれる全干渉情報を抽出する。例えば、チャネル選択部１０６は、図７の上段に示すように、確認パケットに含まれるノード１００ａ〜１００ｅの干渉情報を抽出する。
【００３８】
続いて、チャネル選択部１０６は、干渉情報記憶部１０３を参照して、通信チャネル毎の干渉フラグの値を抽出し、抽出した干渉フラグの値を自ノード１００の干渉情報として、確認パケットから抽出された全干渉情報に追加する。例えば、チャネル選択部１０６は、図７の中段に示すように、干渉情報記憶部１０３から抽出した通信チャネル毎の干渉フラグの値を自ノード１００ｈの干渉情報として、確認パケットから抽出されたノード１００ａ〜１００ｅの干渉情報に追加する。
【００３９】
続いて、チャネル選択部１０６は、確認パケットから抽出された全干渉情報に自ノード１００の干渉情報を追加した情報を基にして、通信チャネル毎の干渉フラグの合計値を算出する。例えば、チャネル選択部１０６は、図７の下段に示すように、通信チャネル「ＣＨ＃１」の干渉フラグの合計値「１」を算出し、通信チャネル「ＣＨ＃２」の干渉フラグの合計値「１」を算出し、通信チャネル「ＣＨ＃３」の干渉フラグの合計値「０」を算出する。
【００４０】
続いて、チャネル選択部１０６は、干渉フラグの合計値が最も小さい通信チャネルを特定し、特定した通信チャネルを使用チャネルとして選択する。ここで言う、「干渉フラグの合計値が最も小さい通信チャネル」には、干渉フラグの合計値が「０」となる通信チャネルが含まれるものとする。図７の例では、通信チャネル「ＣＨ＃３」の干渉フラグの合計値が最も小さい。このため、チャネル選択部１０６は、通信チャネル「ＣＨ＃３」を干渉フラグの合計値が最も小さい通信チャネルとして特定し、特定した通信チャネル「ＣＨ＃３」を使用チャネルとして選択する。
【００４１】
なお、チャネル選択部１０６は、干渉フラグの合計値が最も小さい通信チャネルを特定できなかった場合、言い換えると、通信チャネル毎の干渉フラグの合計値が「０」以外の値でありかつ全て等しい場合には、任意の通信チャネルを使用チャネルとして選択する。
【００４２】
また、チャネル選択部１０６は、使用チャネルを選択すると、選択した使用チャネルを含む応答パケットを生成し、確認パケットの送信元となるノードに対して応答パケットを送信する。
【００４３】
ここで、チャネル選択部１０６が生成する応答パケットのデータ構造について説明する。図８は、本実施例における応答パケットのデータ構造の一例を示す図である。図８に示すように、応答パケットは、宛先、送信元及び使用チャネルを含む。宛先は、確認パケットの送信元となるノードのアドレスを格納する。送信元は、応答パケットの送信元となる自ノード１００のアドレスを格納する。使用チャネルは、チャネル選択部１０６によって選択された使用チャネルを格納する。
【００４４】
また、チャネル選択部１０６は、他のノードから応答パケットを受信すると、応答パケットに含まれる使用チャネルをチャネル切替部１０２に出力する。チャネル切替部１０２に出力された使用チャネルが無線インターフェース部１０１に設定されることで、ノード１００は、使用チャネルを利用して実際にデータの送信を行うことを決定する。
【００４５】
チャネル削減制御部１０７は、応答パケットを他のノードから受信する。チャネル削減制御部１０７は、応答パケットに格納された使用チャネルを利用してデータの送受信を行っている周辺のノードから閾値以上となる電波を発している干渉ノードを特定する。チャネル削減制御部１０７は、特定した干渉ノードに対して、使用チャネルを利用したデータの送信を停止することを要求するチャネル削減要求パケットを生成して送信する。
【００４６】
ここで、チャネル削減制御部１０７が生成するチャネル削減要求パケットのデータ構造について説明する。図９は、本実施例におけるチャネル削減要求パケットのデータ構造の一例を示す図である。図９に示すように、チャネル削減要求パケットは、宛先、送信元及び削減チャネルを含む。宛先は、干渉ノードのアドレスを格納する。送信元は、チャネル削減要求パケットの送信元となる自ノード１００のアドレスを格納する。削減チャネルは、応答パケットに格納された使用チャネルを格納する。
【００４７】
チャネル削減制御部１０７がチャネル削減要求パケットを生成して送信する処理の一例について説明する。チャネル削減制御部１０７は、応答パケットを受信すると、干渉情報記憶部１０３を参照して、応答パケットに格納された使用チャネルに対応する周辺ノードから干渉ノードを特定することができるか否かを判定する。チャネル削減制御部１０７は、干渉ノードを特定することができる場合、すなわち、閾値以上となる電波を発しているノードを特定することができる場合には、使用チャネルをチャネル削減要求パケットの削減チャネルに設定する。チャネル削減制御部１０７は、特定した干渉ノードに対して、チャネル削減要求パケットを送信する。
【００４８】
なお、チャネル削減制御部１０７は、干渉ノードを特定することができない場合、すなわち、閾値以上となる電波を発しているノードを特定することができない場合には、チャネル削減要求パケットを生成しない。
【００４９】
また、チャネル削減制御部１０７は、チャネル削減要求パケットを他のノードから受信する。すると、チャネル削減制御部１０７は、自ノード１００がチャネル削減要求パケットに格納された削減チャネル、すなわち、使用チャネルを利用してデータを送信しているか否かを判定する。チャネル削減制御部１０７は、使用チャネルを利用してデータを送信している場合には、使用チャネル以外の他の通信チャネルを利用してデータを送信しているならば、使用チャネルを利用したデータの送信を停止する。例えば、チャネル削減制御部１０７は、チャネル選択部１０６からチャネル切替部１０２に出力される使用チャネルを無効にすることをチャネル選択部１０６に指示することで、使用チャネルを利用したデータの送信を停止する。
【００５０】
一方、チャネル削減制御部１０７は、自ノード１００が使用チャネルを利用したデータの送信を行っていないならば、データの送信元となる他のノードに対して、チャネル削減要求パケットを転送する。
【００５１】
なお、上記した無線インターフェース部１０１は、例えば、無線リンクモジュールに対応する。
【００５２】
また、上記したチャネル切替部１０２、干渉情報検出部１０４、確認パケット送信部１０５は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）や、ＦＰＧＡ（Field  Programmable  Gate  Array）などの集積装置に対応する。また、チャネル選択部１０６、チャネル削減制御部１０７は、例えば、ＡＳＩＣや、ＦＰＧＡなどの集積装置に対応する。また、上記したチャネル切替部１０２、干渉情報検出部１０４、確認パケット送信部１０５は、例えば、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）等の電子回路に対応する。また、チャネル選択部１０６、チャネル削減制御部１０７は、例えば、ＣＰＵやＭＰＵ等の電子回路に対応する。
【００５３】
また、上記した干渉情報記憶部１０３は、例えば、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ（Flash  Memory）などの半導体メモリ素子、またはハードディスク、光ディスクなどの記憶装置に対応する。
【００５４】
次に、本実施例に係るノード１００の処理手順について説明する。図１０は、本実施例に係るノードが受信電波レベルを測定する処理の処理手順を示すフローチャートである。図１０に示す処理は、例えば、一定の周期で実行される。
【００５５】
図１０に示すように、ノード１００は、通信チャネルを初期チャネルに設定し（ステップＳ１０１）、受信電波レベルを測定する（ステップＳ１０２）。ノード１００は、測定した受信電波レベルが閾値よりも小さい場合には（ステップＳ１０３；Ｎｏ）、処理をステップＳ１０６に進める。
【００５６】
一方、ノード１００は、測定した受信電波レベルが閾値以上である場合には（ステップＳ１０３；Ｙｅｓ）、現在の通信チャネルを利用して電波を発信するノードのアドレスを取得して干渉情報記憶部１０３の周辺ノードに格納する（ステップＳ１０４）。ノード１００は、測定した受信電波レベルを干渉情報記憶部１０３の受信電波レベルに格納する（ステップＳ１０５）。
【００５７】
ノード１００は、全通信チャネルを測定していない場合には（ステップＳ１０６；Ｎｏ）、通信チャネルを切り替えて（ステップＳ１０７）、処理をステップＳ１０２に戻す。一方、ノード１００は、全通信チャネルを測定した場合には（ステップＳ１０６；Ｙｅｓ）、処理を終了する。
【００５８】
次に、本実施例に係るノード１００が干渉情報を検出する処理について説明する。図１１は、本実施例に係るノードが干渉情報を検出する処理の処理手順を示すフローチャートである。図１１に示す処理は、例えば、図１０に示した処理の完了後に、実行される。
【００５９】
図１１に示すように、ノード１００は、干渉情報記憶部１０３の先頭の通信チャネルのレコードを参照する（ステップＳ１１１）。ノード１００は、参照したレコードに閾値以上となる受信電波レベルがあるか否かを判定する（ステップＳ１１２）。ノード１００は、参照したレコードに閾値以上となる受信電波レベルがある場合には（ステップＳ１１２；Ｙｅｓ）、参照したレコードの干渉フラグを、電波干渉が発生していることを示す「１」に設定する（ステップＳ１１３）。
【００６０】
一方、ノード１００は、参照したレコードに閾値以上となる受信電波レベルがない場合には（ステップＳ１１２；Ｎｏ）、参照したレコードの干渉フラグを、電波干渉が発生していないことを示す「０」に設定する（ステップＳ１１４）。
【００６１】
ノード１００は、干渉情報記憶部１０３の全通信チャネルのレコードを検出済みでない場合には（ステップＳ１１５；Ｎｏ）、干渉情報記憶部１０３の次の通信チャネルのレコードを参照し（ステップＳ１１６）、処理をステップＳ１１２に戻す。一方、ノード１００は、干渉情報記憶部１０３の全通信チャネルのレコードを検出済みである場合には（ステップＳ１１５；Ｙｅｓ）、処理を終了する。
【００６２】
次に、本実施例に係るノード１００が確認パケットを送信する処理について説明する。図１２は、本実施例に係るノードが確認パケットを送信する処理の処理手順を示すフローチャートである。図１２に示す処理は、データの送信を示すトリガが発生したことを契機にして実行される。
【００６３】
図１２に示すように、ノード１００は、データの送信を示すトリガが発生していない場合には（ステップＳ１２１；Ｎｏ）、再度ステップＳ１２１に移行する。一方、ノード１００は、データの送信を示すトリガが発生した場合には（ステップＳ１２１；Ｙｅｓ）、干渉情報記憶部１０３を参照して、通信チャネル毎の干渉フラグの値を抽出し（ステップＳ１２２）、確認パケットの干渉情報に設定する（ステップＳ１２３）。
【００６４】
ノード１００は、確認パケットの宛先に宛先ノードのアドレスを格納し（ステップＳ１２４）、確認パケットの送信元に自ノード１００のアドレスを格納する（ステップＳ１２５）。自ノード１００は、確認パケットを送信する（ステップＳ１２６）。
【００６５】
次に、本実施例に係る自ノード１００が使用チャネルを選択する処理について説明する。図１３は、本実施例に係るノードが使用チャネルを選択する処理の処理手順を示すフローチャートである。図１３に示す処理は、確認パケットを受信したことを契機に実行される。
【００６６】
図１３に示すように、ノード１００は、確認パケットを受信していない場合には（ステップＳ１３１；Ｎｏ）、再度ステップＳ１３１に移行する。一方、ノード１００は、確認パケットを受信した場合には（ステップＳ１３１；Ｙｅｓ）、確認パケットの宛先に自ノード１００が該当するか否かを判定する（ステップＳ１３２）。
【００６７】
ノード１００は、確認パケットの宛先に自ノード１００が該当しない場合には（ステップＳ１３２；Ｎｏ）、確認パケットに干渉情報のレコードを新規に作成する（ステップＳ１３３）。ノード１００は、干渉情報記憶部１０３を参照して、通信チャネル毎の干渉フラグの値を抽出する（ステップＳ１３４）。ノード１００は、抽出した通信チャネル毎の干渉フラグの値を、確認パケットに新規に作成された干渉情報に追加格納する（ステップＳ１３５）。ノード１００は、隣接のノードへ確認パケットを転送する（ステップＳ１３６）。
【００６８】
一方、ノード１００は、確認パケットの宛先に自ノード１００が該当する場合には（ステップＳ１３２；Ｙｅｓ）、通信チャネル選択処理を実行する（ステップＳ１３７）。
【００６９】
次に、図１３のステップＳ１３７に示した通信チャネル選択処理の処理手順について説明する。図１４は、本実施例における通信チャネル選択処理の処理手順を示すフローチャートである。
【００７０】
図１４に示すように、ノード１００は、確認パケットに含まれる全干渉情報を抽出する（ステップＳ１４１）。ノード１００は、干渉情報記憶部１０３を参照して、通信チャネル毎の干渉フラグの値を抽出し（ステップＳ１４２）、抽出した干渉フラグの値を自ノード１００の干渉情報として、確認パケットから抽出された全干渉情報に追加する（ステップＳ１４３）。
【００７１】
ノード１００は、確認パケットから抽出された全干渉情報に自ノード１００の干渉情報を追加した情報を基にして、通信チャネル毎の干渉フラグの合計値を算出する（ステップＳ１４４）。ノード１００は、干渉フラグの合計値が最も小さい通信チャネルを特定することができるか否かを判定する（ステップＳ１４５）。
【００７２】
ノード１００は、干渉フラグの合計値が最も小さい通信チャネルを特定することができる場合には（ステップＳ１４５；Ｙｅｓ）、特定した通信チャネルを使用チャネルとして選択する（ステップＳ１４６）。一方、ノード１００は、干渉フラグの合計値が最も小さい通信チャネルを特定することができない場合には（ステップＳ１４５；Ｎｏ）、任意の通信チャネルを使用チャネルとして選択する（ステップＳ１４７）。
【００７３】
なお、任意の通信チャネルが使用チャネルとして選択された場合には、干渉フラグの合計値が等しい複数の通信チャネルのうち使用チャネルと重複する通信チャネル（以下「重複チャネル」という）で電波干渉が一時的に発生することも想定される。しかしながら、現在の帯域調停期間の間に一時的な電波干渉が発生したとしても、次回の帯域調停期間の間に、重複チャネルを利用したデータの送信が停止される場合もある。この場合には、次回の帯域調停期間の間に重複チャネルにおける電波干渉が解消され、使用チャネルの干渉フラグの合計値が最も小さくなる。このため、次回の帯域調停期間の間に、ノード１００は、干渉フラグの合計値が最も小さい通信チャネル、言い換えると、電波干渉の影響が最も少ない適切な通信チャネルを使用チャネルとして選択することができる（上記のステップＳ１４６）。
【００７４】
ノード１００は、ステップＳ１４６又はステップＳ１４７によって選択された使用チャネルを応答パケットの使用チャネルに格納する（ステップＳ１４８）。ノード１００は、応答パケットの宛先に確認パケットの送信元のアドレスを格納し（ステップＳ１４９）、応答パケットの送信元に自ノード１００のアドレスを格納する（ステップＳ１５０）。ノード１００は、応答パケットを送信する（ステップＳ１５１）。
【００７５】
次に、本実施例に係るノード１００がチャネル削減要求パケットを送信する処理について説明する。図１５は、本実施例に係るノードがチャネル削減要求パケットを送信する処理の処理手順を示すフローチャートである。図１５に示す処理は、応答パケットを受信したことを契機として実行される。
【００７６】
図１５に示すように、ノード１００は、応答パケットを受信していない場合には（ステップＳ１６１；Ｎｏ）、再度ステップＳ１６１に移行する。ノード１００は、応答パケットを受信した場合には（ステップＳ１６１；Ｙｅｓ）、干渉情報記憶部１０３を参照し（ステップＳ１６２）、応答パケットの使用チャネルに対応する周辺ノードから干渉ノードを特定できるか否かを判定する（ステップＳ１６３）。
【００７７】
ノード１００は、干渉ノードを特定することができる場合には（ステップＳ１６３；Ｙｅｓ）、応答パケットに格納された使用チャネルを、チャネル削減要求パケットの削除チャネルに設定する（ステップＳ１６４）。ノード１００は、特定した干渉ノードに対して、チャネル削減要求パケットを送信する（ステップＳ１６５）。
【００７８】
一方、ノード１００は、干渉ノードを特定することができない場合には（ステップＳ１６３；Ｎｏ）、チャネル削減要求パケットを生成することなく、処理をステップＳ１６６に進める。
【００７９】
ノード１００は、応答パケット内に未処理の使用チャネルがある場合には（ステップＳ１６６；Ｙｅｓ）、処理をステップＳ１６２に戻す。一方、ノード１００は、応答パケット内に未処理の使用チャネルがない場合には（ステップＳ１６６；Ｎｏ）、処理を終了する。
【００８０】
次に、本実施例に係るノード１００がチャネル削減要求パケットを受信した場合の処理手順について説明する。図１６は、本実施例に係るノードがチャネル削減要求パケットを受信した場合の処理手順を示すフローチャートである。図１６に示す処理は、チャネル削減要求パケットを受信したことを契機として実行される。
【００８１】
図１６に示すように、ノード１００は、チャネル削減要求パケットを受信していない場合には（ステップＳ１７１；Ｎｏ）、再度ステップＳ１７１に移行する。ノード１００は、チャネル削減要求パケットを受信した場合には（ステップＳ１７１；Ｙｅｓ）、自ノード１００がチャネル削減要求パケットに格納された削減チャネル、すなわち、使用チャネルを利用してデータを送信中か否かを判定する（ステップＳ１７２）。
【００８２】
ノード１００は、使用チャネルを利用してデータを送信している場合には（ステップＳ１７２；Ｙｅｓ）、使用チャネル以外の他の通信チャネルを利用してデータを送信しているか否かを判定する（ステップＳ１７３）。ノード１００は、使用チャネル以外の他の通信チャネルを利用してデータを送信している場合には（ステップＳ１７３；Ｙｅｓ）、使用チャネルを利用したデータの送信を停止する（ステップＳ１７４）。一方、ノード１００は、使用チャネルのみを利用してデータを送信している場合には（ステップＳ１７３；Ｎｏ）、使用チャネルを利用したデータの送信を継続し、処理を終了する。
【００８３】
一方、ノード１００は、使用チャネルを利用してデータを送信していない場合には（ステップＳ１７２；Ｎｏ）、干渉情報記憶部１０３を参照する（ステップＳ１７５）。ノード１００は、使用チャネルに対応する周辺ノードから干渉ノードを特定することができるか否かを判定する（ステップＳ１７６）。ノード１００は、干渉ノードを特定できた場合には（ステップＳ１７６；Ｙｅｓ）、特定した干渉ノード、すなわち、データの送信元となる他のノードに対して、チャネル削減要求パケットを転送する（ステップＳ１７７）。一方、ノード１００は、干渉ノードを特定できなかった場合には（ステップＳ１７６；Ｎｏ）、チャネル削減要求パケットを破棄する（ステップＳ１７８）。
【００８４】
次に、本実施例に係るノード１００が使用チャネルを選択する具体例について説明する。図１７は、通信経路に含まれる全てのノードに電波干渉が発生していない場合の処理を説明するための図である。図１７に示す例では、ノード１００ａがデータの送信元となる送信元ノードであり、ノード１００ｈがデータの宛先となる宛先ノードであるものとする。また、送信元ノードであるノード１００ａから宛先ノードであるノード１００ｈに至る通信経路に含まれる全ノード１００ａ、１００ｃ、１００ｅ、１００ｈにおいて、電波干渉が発生していないものとする。
【００８５】
図１７の上段に示すように、ノード１００ｈは、ノード１００ａから送信された確認パケット２０ａを受信し、確認パケット２０ａの宛先に自ノード１００ｈが該当すると判定する。ノード１００ｈは、確認パケット２０ａに含まれる全干渉情報に自ノード１００ｈの干渉情報を追加した情報を基にして、通信チャネル毎の干渉フラグの合計値２０ｂを算出する。すなわち、ノード１００ｈは、通信チャネル「ＣＨ＃１」の干渉フラグの合計値「０」を算出し、通信チャネル「ＣＨ＃２」の干渉フラグの合計値「０」を算出し、通信チャネル「ＣＨ＃３」の干渉フラグの合計値「０」を算出する。
【００８６】
続いて、ノード１００ｈは、図１７の下段に示すように、干渉フラグの合計値が「０」となる通信チャネル「ＣＨ＃１」〜「ＣＨ＃３」を、使用チャネルとして選択する。これにより、ノード１００ａ、１００ｃ、１００ｅ、１００ｈは、電波干渉の影響が最も少ない通信チャネル「ＣＨ＃１」〜「ＣＨ＃３」を利用してデータの送受信を開始することができる。
【００８７】
次に、通信経路に含まれる一部のノードに電波干渉が発生している場合の処理を説明する。図１８は、通信経路に含まれる一部のノードに電波干渉が発生している場合の処理を説明するための図（その１）である。図１８に示す例では、ノード１００ａが送信元ノードであり、ノード１００ｈが宛先ノードであるものとする。また、送信元ノードであるノード１００ａから宛先ノードであるノード１００ｈに至る通信経路に含まれるノード１００ｃ、１００ｅにおいて、通信チャネル「ＣＨ＃１」、「ＣＨ＃２」に対する電波干渉が発生しているものとする。
【００８８】
図１８の上段に示すように、ノード１００ｈは、ノード１００ａから送信された確認パケット２０ｃを受信し、確認パケット２０ｃの宛先に自ノード１００ｈが該当すると判定する。ノード１００ｈは、確認パケット２０ｃに含まれる全干渉情報に自ノード１００ｈの干渉情報を追加した情報を基にして、通信チャネル毎の干渉フラグの合計値２０ｄを算出する。すなわち、ノード１００ｈは、通信チャネル「ＣＨ＃１」の干渉フラグの合計値「１」を算出し、通信チャネル「ＣＨ＃２」の干渉フラグの合計値「１」を算出し、通信チャネル「ＣＨ＃３」の干渉フラグの合計値「０」を算出する。
【００８９】
続いて、ノード１００ｈは、図１８の下段に示すように、干渉フラグの合計値が最小値「０」となる通信チャネル「ＣＨ＃３」を、使用チャネルとして選択する。これにより、ノード１００ａ、１００ｃ、１００ｅ、１００ｈは、電波干渉の影響が最も少ない通信チャネル「ＣＨ＃３」を利用してデータの送受信を開始することができる。
【００９０】
図１９は、通信経路に含まれる一部のノードに電波干渉が発生している場合の処理を説明するための図（その２）である。図１９に示す例では、ノード１００ａが送信元ノードであり、ノード１００ｈが宛先ノードであるものとする。また、送信元ノードであるノード１００ａから宛先ノードであるノード１００ｈに至る通信経路に含まれるノード１００ｃ、１００ｅにおいて、通信チャネル「ＣＨ＃１」、「ＣＨ＃２」、「ＣＨ＃３」に対する電波干渉が発生しているものとする。
【００９１】
図１９の上段に示すように、ノード１００ｈは、ノード１００ａから送信された確認パケット２０ｅを受信し、確認パケット２０ｅの宛先に自ノード１００ｈが該当すると判定する。ノード１００ｈは、確認パケット２０ｅに含まれる全干渉情報に自ノード１００ｈの干渉情報を追加した情報を基にして、通信チャネル毎の干渉フラグの合計値２０ｆを算出する。すなわち、ノード１００ｈは、通信チャネル「ＣＨ＃１」の干渉フラグの合計値「１」を算出し、通信チャネル「ＣＨ＃２」の干渉フラグの合計値「１」を算出し、通信チャネル「ＣＨ＃３」の干渉フラグの合計値「１」を算出する。
【００９２】
続いて、ノード１００ｈは、通信チャネル毎の干渉フラグの合計値が「０」以外の値であり、かつ、全て等しいので、図１９の下段に示すように、任意の通信チャネルである通信チャネル「ＣＨ＃１」を使用チャネルとして選択する。ここで、任意の通信チャネル「ＣＨ＃１」が使用チャネルとして選択された場合には、重複チャネルで電波干渉が一時的に発生する。図１９の例では、ノード１００ｂ、１００ｃ、１００ｄが重複チャネルである通信チャネル「ＣＨ＃１」を利用してデータの送信を行っているため、重複チャネルで電波干渉が一時的に発生する。
【００９３】
しかしながら、現在の帯域調停期間の間に一時的な電波干渉が発生したとしても、次回の帯域調停期間の間に、重複チャネルを利用したデータの送信が停止される場合もある。この場合には、次回の帯域調停期間の間に重複チャネルにおける電波干渉が解消され、重複チャネルの干渉フラグの合計値が最も小さくなる。図１９の例では、ノード１００ｂ、１００ｃ、１００ｄが、次回の帯域調停期間の間に重複チャネルである通信チャネル「ＣＨ＃１」を利用したデータの送信を停止する場合もある。この場合には、次回の帯域調停期間の間に通信チャネル「ＣＨ＃１」における電波干渉が解消され、通信チャネル「ＣＨ＃１」の干渉フラグの合計値が最も小さくなる。このため、次回の帯域調停期間の間に、ノード１００ｈは、干渉フラグの合計値が最も小さい通信チャネル、言い換えると、電波干渉の影響が最も少ない適切な通信チャネル「ＣＨ＃１」を使用チャネルとして選択することができる。
【００９４】
図２０は、通信経路に含まれる一部のノードに電波干渉が発生している場合の処理を説明するための図（その３）である。図２０に示す例では、ノード１００ｄが送信元ノードであり、ノード１００ｂが宛先ノードであるものとする。また、送信元ノードであるノード１００ｄから宛先ノードであるノード１００ｂに至る通信経路に含まれるノード１００ｃにおいて、通信チャネル「ＣＨ＃１」、「ＣＨ＃２」、「ＣＨ＃３」に対する電波干渉が発生しているものとする。
【００９５】
図２０の上段に示すように、ノード１００ｂは、ノード１００ｄから送信された確認パケット２０ｇを受信し、確認パケット２０ｇの宛先に自ノード１００ｂが該当すると判定する。ノード１００ｂは、確認パケット２０ｇに含まれる全干渉情報に自ノード１００ｂの干渉情報を追加した情報を基にして、通信チャネル毎の干渉フラグの合計値２０ｈを算出する。すなわち、ノード１００ｂは、通信チャネル「ＣＨ＃１」の干渉フラグの合計値「１」を算出し、通信チャネル「ＣＨ＃２」の干渉フラグの合計値「１」を算出し、通信チャネル「ＣＨ＃３」の干渉フラグの合計値「１」を算出する。
【００９６】
続いて、ノード１００ｂは、通信チャネル毎の干渉フラグの合計値が「０」以外の値であり、かつ、全て等しいので、図２０の下段に示すように、任意の通信チャネルである通信チャネル「ＣＨ＃３」を使用チャネルとして選択する。ノード１００ｃは、使用チャネルである通信チャネル「ＣＨ＃３」に対応する周辺ノードからノード１００ｅを干渉ノードとして特定する。ノード１００ｃは、通信チャネル「ＣＨ＃３」を削減チャネルに格納したチャネル削減要求パケット２０ｉを、干渉ノードであるノード１００ｅに対して送信する。ノード１００ｅは、チャネル削減要求パケット２０ｉを受信する。ノード１００ｅは、チャネル削減要求パケット２０ｉに格納された通信チャネル「ＣＨ＃３」を利用したデータの送信元に自ノード１００ｅが該当しないため、データの送信元となるノード１００ｇに対して、チャネル削減要求パケット２０ｉを転送する。ノード１００ｇは、チャネル削減要求パケット２０ｉを受信する。ノード１００ｇは、チャネル削減要求パケット２０ｉに含まれた通信チャネル「ＣＨ＃３」以外の他の通信チャネル「ＣＨ＃１」、「ＣＨ＃２」を利用してデータの送信を行っている。ノード１００ｇは、通信チャネル「ＣＨ＃３」を利用したデータの送信を停止する。これにより、ノード１００ｄ、１００ｃ、１００ｂは、電波干渉の影響が最も少ない通信チャネル「ＣＨ＃３」を利用してデータの送受信を開始することができる。
【００９７】
次に、本実施例のマルチホップネットワークの全体の処理手順について説明する。図２１は、本実施例のマルチホップネットワークの全体の処理手順を示すシーケンス図である。ここでは一例として、図２０に示した処理の処理手順について説明する。
【００９８】
図２１に示すように、ノード１００ｇは、通信チャネル「ＣＨ＃１」〜「ＣＨ＃３」を利用して、ノード１００ｅに対してデータを送信している（ステップＳ１８１）。このため、送信元ノードであるノード１００ｄから宛先ノードであるノード１００ｂに至る通信経路に含まれるノード１００ｃにおいて、通信チャネル「ＣＨ＃１」〜「ＣＨ＃３」に対する電波干渉が発生している。送信元ノードであるノード１００ｄにおいてノード１００ｂを宛先とするデータの送信を示すトリガが発生し、帯域調停期間が到来する（ステップＳ１８２）。
【００９９】
ノード１００ｄは、通信チャネル毎の干渉フラグの値を干渉情報に設定し、データの宛先となるノード１００ｂのアドレスを宛先に格納した確認パケットをノード１００ｃに送信する（ステップＳ１８３）。ステップＳ１８３によって送信された確認パケットは、例えば、図２２に示すものとなる。図２２は、ノード１００ｄによって送信された確認パケットの一例を示す図である。
【０１００】
ノード１００ｃは、ノード１００ｄから確認パケットを受信し、確認パケットの宛先に自ノード１００ｃが該当しないため、干渉情報記憶部１０３に記憶された干渉情報を追記した確認パケットをノード１００ｂに転送する（ステップＳ１８４）。ステップＳ１８４によって転送された確認パケットは、例えば、図２３に示すものとなる。図２３は、ノード１００ｃによって転送された確認パケットの一例を示す図である。
【０１０１】
ノード１００ｂは、ノード１００ｃから確認パケットを受信し、確認パケットの宛先に自ノード１００ｂが該当すると判定する。ノード１００ｂは、確認パケットに含まれる全干渉情報に自ノード１００ｂの干渉情報を追加した情報を基にして、通信チャネル毎の干渉フラグの合計値を算出する。ノード１００ｂは、通信チャネル毎の干渉フラグの合計値が「０」以外の値であり、かつ、全て等しいので、任意の通信チャネルである通信チャネル「ＣＨ＃３」を使用チャネルとして選択する（ステップＳ１８５）。
【０１０２】
ノード１００ｂは、選択した使用チャネルである通信チャネル「ＣＨ＃３」を使用チャネルに格納し、確認パケットの送信元となるノード１００ｄのアドレスを宛先に格納した応答パケットをノード１００ｃに送信する（ステップＳ１８６）。
【０１０３】
ノード１００ｃは、ノード１００ｂから応答パケットを受信し、応答パケットに格納される使用チャネルを保持する。ノード１００ｃは、応答パケットに格納される使用チャネルを自身の無線インターフェース部１０１に設定する。ノード１００ｃは、応答パケットをノード１００ｄに転送する（ステップＳ１８７）。
【０１０４】
ノード１００ｄは、ノード１００ｃから応答パケットを受信し、応答パケットに格納される使用チャネルを保持する。ノード１００ｄは、応答パケットに格納される使用チャネルを自身の無線インターフェース部１０１に設定することで、使用チャネルである通信チャネル「ＣＨ＃３」を利用してデータの送信を行うことを決定する（ステップＳ１８８）。
【０１０５】
ノード１００ｃは、使用チャネルである通信チャネル「ＣＨ＃３」に対応する周辺ノードから干渉ノートであるノード１００ｅを特定する（ステップＳ１８９）。ノード１００ｃは、通信チャネル「ＣＨ＃３」をチャネル削減要求パケットの削減チャネルに格納する（ステップＳ１９０）。ノード１００ｃは、通信チャネル「ＣＨ＃３」を削減チャネルに格納したチャネル削減要求パケットを、干渉ノードであるノード１００ｅに対して送信する（ステップＳ１９１）。
【０１０６】
ノード１００ｅは、ノード１００ｃからチャネル削減要求パケットを受信する。ノード１００ｅは、チャネル削減要求パケットに格納された通信チャネル「ＣＨ＃３」を利用したデータの送信元に自ノード１００ｅが該当しないため、データの送信元となるノード１００ｇに対してチャネル削減要求パケットを転送する（ステップＳ１９２）。
【０１０７】
ノード１００ｇは、ノード１００ｅからチャネル削減要求パケットを受信する。ノード１００ｇは、チャネル削減要求パケットに含まれた通信チャネル「ＣＨ＃３」以外の他の通信チャネル「ＣＨ＃１」、「ＣＨ＃２」を利用してデータの送信を行っていた。このため、ノード１００ｇは、通信チャネル「ＣＨ＃３」を利用したデータの送信を停止する（ステップＳ１９３）。
【０１０８】
ノード１００ｇは、帯域調停期間が満了してデータ送受信期間が到来すると、通信チャネル「ＣＨ＃１」、「ＣＨ＃２」を利用して、ノード１００ｅにデータを送信する（ステップＳ１９４）。ノード１００ｄは、帯域調停期間が満了してデータ送受信期間が到来すると、通信チャネル「ＣＨ＃３」を利用して、ノード１００ｃにデータを送信する（ステップＳ１９５）。ノード１００ｃは、帯域調停期間が満了してデータ送受信期間が到来すると、通信チャネル「ＣＨ＃３」を利用して、ノード１００ｂにデータを転送する（ステップＳ１９６）。
【０１０９】
次に、本実施例に係るノード１００の効果について説明する。ノード１００は、データの送受信に利用可能な複数の通信チャネル各々を切り替えつつ、周辺のノードからの電波干渉の有無を示す干渉情報を通信チャネル毎に検出する。ノード１００は、データ送受信期間に先立つ帯域調停期間において、宛先ノードに対して、干渉情報をノード毎に順次格納する確認パケットを送信する。ノード１００は、確認パケットを受信し、確認パケットの宛先となる宛先ノードに自ノード１００が該当しない場合には、自ノード１００の干渉情報を追記した確認パケットを他のノードに転送する。ノード１００は、確認パケットの宛先となる宛先ノードに自ノード１００が該当する場合には、確認パケットにノード毎に順次格納された干渉情報と自ノード１００の干渉情報とに基づいて、データを実際に送受信する使用チャネルを選択する。このため、ノード１００は、宛先ノードに至る通信経路に含まれる各ノードの電波干渉の発生状況を認識することができ、この電波干渉の発生状況を用いて、電波干渉の影響が最も少ない適切な通信チャネルを使用チャネルとして選択することができる。結果として、ノード１００は、スループットの低下を抑えた適切な通信チャネルを選択することができる。
【０１１０】
また、本実施例に係るノード１００は、使用チャネルの干渉情報が電波干渉の発生があることを示す場合に、使用チャネルに対応する周辺のノードから干渉ノードを特定し、使用チャネルを利用したデータ送信の停止を要求するチャネル削減要求パケットを送信する。このため、ノード１００は、使用チャネルに対する他のノードからの電波干渉を確実に排除することができ、スループットの低下を効率的に抑えることができる。
【０１１１】
また、本実施例に係るノード１００は、チャネル削減要求パケットを受信し、自ノード１００が使用チャネルを利用したデータ送信を行っており、かつ、使用チャネル以外の他の通信チャネルも利用している場合に、使用チャネルを利用したデータ送信を停止する。このため、ノード１００は、使用チャネルに対する他のノードからの電波干渉を排除しつつ、電波干渉の発生源となる他のノードの通信も安全に維持することができる。
【０１１２】
また、本実施例に係るノード１００は、チャネル削減要求パケットを受信し、自ノード１００が使用チャネルを利用したデータ送信を行っていない場合には、データの送信元となる他のノードにチャネル削減要求パケットを転送する。このため、ノード１００は、使用チャネルに対する電波干渉の発生源となるノードがデータの送信元のノードではない場合であっても、データの送信元のノードに対して使用チャネルを利用したデータ送信の停止を要求することができる。
【符号の説明】
【０１１３】
１００  ノード
１０１  無線インターフェース部
１０２  チャネル切替部
１０３  干渉情報記憶部
１０４  干渉情報検出部
１０５  確認パケット送信部
１０６  チャネル選択部
１０７  チャネル削減制御部
【図１】
2013145239.tif 000003
【図２】
2013145239.tif 000004
【図３】
2013145239.tif 000005
【図４】
2013145239.tif 000006
【図５】
2013145239.tif 000007
【図６】
2013145239.tif 000008
【図７】
2013145239.tif 000009
【図８】
2013145239.tif 000010
【図９】
2013145239.tif 000011
【図１０】
2013145239.tif 000012
【図１１】
2013145239.tif 000013
【図１２】
2013145239.tif 000014
【図１３】
2013145239.tif 000015
【図１４】
2013145239.tif 000016
【図１５】
2013145239.tif 000017
【図１６】
2013145239.tif 000018
【図１７】
2013145239.tif 000019
【図１８】
2013145239.tif 000020
【図１９】
2013145239.tif 000021
【図２０】
2013145239.tif 000022
【図２１】
2013145239.tif 000023
【図２２】
2013145239.tif 000024
【図２３】
2013145239.tif 000025
【図２４】
2013145239.tif 000026
【国際調査報告】
2013145239.tif 000027
2013145239.tif 000028
2013145239.tif 000029
2013145239.tif 000030