本発明に係る無線通信システムの実施形態を図面に基づいて説明する。
図1に本実施形態の無線通信システムの概略構成を示す。本実施形態の無線通信システムは、データの送信元である複数台(図示例では例えば3台)の子機(第1ノード)10と、データの送信先である親機(第2ノード)20と、複数台(図示例では例えば9台)の中継機(第3ノード)30とを備えている。なお、本実施形態の無線通信システムは9台の中継機30を備えているが、中継機30の台数は9台に限定されず、信号の中継に必要な台数があればよい。また、本実施形態の無線通信システムはデータの送信元である子機10を3台備えているが、子機10の台数は3台に限定されず、必要に応じて適宜変更が可能である。
子機10と親機20と中継機30とは、それぞれ、無線免許が不要の無線通信部(例えば特定小電力無線モジュール、IEEE802.15.1の規格に準拠した無線通信部、IEEE802.15.4の規格に準拠した無線通信部など)を備えている。ここで、子機10と親機20とが互いの通信圏内にあり、子機10と親機20との間の通信環境が良好であれば、子機10と親機20との間で無線通信が直接行われる。しかしながら、子機10と親機20とが直接通信できない場合や、通信可能であっても通信環境が良好でない場合、子機10と親機20との間では中継機30を介して無線通信が行われる。そのため、複数台の中継機30は、子機10と親機20の間の無線通信を中継できるように、隣接する他の中継機30が通信圏内に存在するように配置されており、子機10と親機20と複数台の中継機30で中継通信網が構築されている。子機10、親機20、及び中継機30にはネットワーク内で個々のノードを識別するために個別のノード番号が付与されている。本実施形態の無線通信システムでは、親機20のノード番号が「0」に設定され、9台の中継機30の各々に「1」〜「9」のノード番号が設定され、3台の子機10の各々に「11」「12」「13」のノード番号が設定されている。なお、図1及び図5〜図10において、子機10、親機20、中継機30のそれぞれを示す四角内の数字は、子機10、親機20、中継機30のそれぞれに割り当てられたノード番号を示している。
次に、子機10と親機20と中継機30の構成を図2〜図4に基づいて説明する。
子機10は、図2に示すように、MCU(Micro Control Unit)100と、測定部101と、記憶部102と、無線通信部103と、アンテナ104と、操作部105と、表示部106と、電源部107と、有線通信部108とを備えている。子機10は、所定の計測タイミングで測定部101が測定したデータを、親機20に無線送信する。
MCU100は、子機10の全体的な制御を行う。
測定部101は、例えば温度を測定するためのものであり、周囲温度に応じて電気抵抗が変化するサーミスタを備え、サーミスタの抵抗値を測定することによって周囲温度を測定する。なお、測定部101の測定対象は温度に限定されず、周囲の湿度や照度など使用目的や用途に応じた物理量を測定すればよい。
記憶部102は、例えばEEPROM(electrically erasable and programmable read-only memory)やフラッシュメモリのような電気的に書き換え可能な不揮発性メモリで構成されている。記憶部102は、MCU100によってデータの書き込み及び読み出しが行われ、子機10に割り当てられた識別情報(アドレスやノード番号)や、測定部101による測定データや、通信経路の情報などを記憶する。
無線通信部103は例えば特定小電力無線の通信規格に適合した無線モジュールからなり、アンテナ104を介して無線信号の送信又は受信を行う。
有線通信部108は、例えば設定器(図示せず)などの機器に通信線を介して接続され、有線通信方式で通信を行う。
操作部105は、例えば測定部101による測定範囲の下限値及び上限値や、測定間隔や、測定データの送信間隔を設定するために用いられる。また、操作部105は、送信先ノードを決定する場合に受信する最終宛先情報の数、すなわち最終宛先情報が付加されたACKの数(所定回数)を設定するためにも使用される。
表示部106は例えば1乃至複数個の発光ダイオードからなり、MCU100によって点灯/消灯が制御される。
電源部107は例えば電池を電源として、子機10の内部回路に対して動作に必要な電力を供給する。
親機20は、図3に示すように、MCU200と、記憶部201と、無線通信部202と、アンテナ203と、有線通信部204と、操作部205と、表示部206と、電源部207とを備えている。
MCU200は、親機20の全体的な制御を行う。
記憶部201は、例えばEEPROMやフラッシュメモリのような電気的に書き換え可能な不揮発性メモリで構成されている。記憶部201は、MCU200によってデータの書き込み及び読み出しが行われ、親機20に割り当てられた識別情報や、子機10から収集した測定データや、通信経路の情報などを記憶する。
無線通信部202は例えば特定小電力無線の通信規格に適合した無線モジュールからなり、アンテナ203を介して無線信号の送信又は受信を行う。
有線通信部204は、例えばサーバ(図示せず)に通信線を介して接続されており、子機10から収集したデータを有線通信方式でサーバに送信する。
操作部205は、例えば親機20の動作設定を行うために使用される。また、操作部205は、親機20が送信元となる場合に、送信先ノードを決定する際に受信する最終宛先情報の数、すなわち最終宛先情報が付加されたACKの数(所定回数)を設定するためにも使用される。
表示部206は例えば1乃至複数個の発光ダイオードからなり、MCU200によって点灯/消灯が制御される。
電源部207は、例えば商用電源から電力の供給を受け、親機20の内部回路に対して動作に必要な電力を供給する。
中継機30は、図4に示すように、MCU300と、記憶部301と、無線通信部302と、アンテナ303と、操作部304と、表示部305と、電源部306と、有線通信部307とを備えている。
MCU300は、中継機30の全体的な制御を行う。
記憶部301は、例えばEEPROMやフラッシュメモリのような電気的に書き換え可能な不揮発性メモリで構成されている。記憶部301は、MCU300によってデータの書き込み及び読み出しが行われ、自機に割り当てられた識別情報や、無線通信部302が受信したデータや、無線通信部302が過去に送信したデータや、通信経路の情報などを記憶する。
無線通信部302は例えば特定小電力無線の通信規格に適合した無線モジュールからなり、アンテナ303を介して無線信号の送信又は受信を行う。
有線通信部307は、例えば設定器(図示せず)などの機器に通信線を介して接続され、有線通信方式で通信を行う。
操作部304は、例えば中継機30の動作設定を行うために使用される。また、操作部304は、送信先ノードを決定する際に受信する最終宛先情報の数、すなわち最終宛先情報が付加されたACKの数(所定回数)を設定するためにも使用される。
表示部305は例えば1乃至複数個の発光ダイオードからなり、MCU300によって点灯/消灯が制御される。
電源部306は例えば電池を電源として、中継機30の内部回路に対して動作に必要な電力を供給する。中継機30は電池を電源としているので、中継機30を自由な場所に設置して使用することができる。なお、電源部306は商用電源から電力の供給を受けて、中継機30の内部回路に動作に必要な電力を供給してもよい。
次に、本実施形態の無線通信システムにおいて、子機10と親機20との間の通信経路が確立されていない状態で、子機10から親機20へデータ(例えば測定データ)を送信する処理について図1、図5〜図10を参照して説明する。なお、子機10、親機20、複数台の中継機30には、それぞれ別個のノード番号が割り当てられており、以下では複数台の中継機30を区別して説明するために、ノード番号を使用して説明する。例えば、ノード番号が「2」の中継機30は2番の中継機30と表記し、ノード番号が「11」番の子機10は11番の子機10と表記する。また、図1及び図5〜図10における矢印線はノード間の通信を示し、実線の矢印線はデータの送信処理を、点線の矢印線はACKの送信処理を示している。また、点線の矢印線の先頭にXが付記されている場合は、ACKの送信が中止されたことを意味している。
11番の子機10から親機20までデータを送信する通信経路が確立されていない状態で、11番の子機10が測定データを1回目に送信する場合の通信手順について図1を参照して説明する。
11番の子機10のMCU100は、所定のサンプリング間隔(例えば数秒から数分の間隔)でスリープモードから起動し、測定部101に温度を測定させる。11番の子機10は送信先ノードが決まっていないので、データをブロードキャストで送信する。すなわち、子機10のMCU100は、測定部101の測定データと、送信データに割り付けた個別のシーケンス番号とを格納し、宛先アドレスをブロードキャストアドレス、送信元アドレス及びデータ元アドレスを自機のアドレスとした送信データを作成する。なお、アドレスには、各ノードに割り当てられた個別のノード番号が用いられる。そして、子機10のMCU100は、作成した送信データを、無線通信部103からブロードキャストで送信させる(図1の処理T1)。
図1の例では11番の子機10の通信圏内にノード番号が4〜9番の6台の中継機30が存在し、11番の子機10から送信されたデータは、これら6台の中継機30の無線通信部302で受信される。各中継機30のMCU300は、受信したデータから、測定データとシーケンス番号と宛先アドレス(ブロードキャストアドレス)と送信元アドレスとデータ元アドレスを取り出す。本実施形態では、各中継機30のMCU300は、データを受信した場合にACK(acknowledgement:肯定応答)を送信するまでのウエイト時間をランダムな時間に設定している。図1の例では、4番の中継機30のウエイト時間が、他の中継機30のウエイト時間よりも短い時間となっている。そのため、4番の中継機30のMCU300が、他の中継機30よりも早く、ウエイト時間の経過後に無線通信部302を制御し、送信元の子機10宛てにACKを送信させる(図1の処理T2)。子機10は、データの送信後に送信されてきたACKを受信すると、所定時間の経過後にスリープモードに切り替えて、消費電力の低減を図る。
4番の中継機30の通信圏内には5番、6番の中継機30と子機10とが存在し、4番の中継機30が送信したACKは、子機10だけでなく、5番、6番の中継機30の無線通信部302によっても受信される。5番、6番の中継機30のMCU300は、4番の中継機30が子機10からの送信データに対するACKを送信したため、中継動作を中止し、ACKの送信も行わない。なお、7〜9番の中継機30は、4番の中継機30が送信したACKを受信できないため、中継動作を行う。しかしながら、7〜9番の中継機30から親機20にデータを到達させる通信経路が存在しないため、7〜9番の中継機30は、中継処理を規定の回数繰り返した後、受信待ちの状態となる。
4番の中継機30のMCU300は、子機10からの送信データから測定データとシーケンス番号と宛先アドレスと送信元アドレスとデータ元アドレスを取り出す。4番の中継機30のMCU300は、送信データから取り出した測定データとシーケンス番号を含め、宛先アドレスをブロードキャストアドレス、送信元アドレスを自機のアドレス、データ元アドレスを11番の子機10のアドレスとした送信データを作成する。そして、4番の中継機30のMCU300は、データの受信時からウエイト時間が経過した時点で、この送信データを無線通信部302からブロードキャストで送信させる(図1の処理T3)。図1の例では、4番の中継機30の通信圏内に1番、2番、5番の中継機30と子機10とが存在し、4番の中継機30からブロードキャストで送信されたデータは、1番、2番、5番の中継機30の無線通信部302によって受信される。子機10は、データ送信後にACKを受信するとスリープモードに切り替わっているので、4番の中継機30から送信されたデータは子機10では受信されない。なお、中継機30が、下位ノードからデータを受信した時点より、受信したデータを中継送信するまでのウエイト時間はランダムな時間に設定されてもよいし、一定の時間に設定されてもよい。
1番、2番、5番の中継機30の無線通信部302が、4番の中継機30からの送信データを受信すると、これらの中継機30のMCU300は、受信したデータから測定データとシーケンス番号と宛先アドレスと送信元アドレスとデータ元アドレスを取り出す。上述のように、各中継機30がACKを送信するまでのウエイト時間はランダムな時間に設定されており、図1の例では、1番の中継機30のウエイト時間が、2番、5番の中継機30のウエイト時間よりも短い時間となっている。そのため、1番の中継機30のMCU300が、他の中継機30よりも早く、ウエイト時間の経過後に無線通信部302を制御して送信元の4番の中継機30宛てにACKを送信する(図1の処理T4)。1番の中継機30から4番の中継機30へ送信されたACKは、4番の中継機30だけでなく、2番、5番の中継機30の無線通信部302によっても受信される。2番、5番の中継機30のMCU300は、4番の中継機30からの送信データに対するACKを別の中継機(この場合は1番の中継機30)が送信しているので、中継動作を中止し、ACKの送信も行わない。
その後、1番の中継機30のMCU300は、4番の中継機30からの送信データから測定データとシーケンス番号を取り出す。そして、1番の中継機30のMCU300は、、測定データとシーケンス番号を含め、宛先アドレスをブロードキャストアドレス、送信元アドレスを自機のアドレス、データ元アドレスを11番の子機10のアドレスとした送信データを作成する。そして、1番の中継機30のMCU300は、ACKを送信してからランダムなウエイト時間が経過した時点で、この送信データを無線通信部302からブロードキャストで送信させる(図1の処理T5)。1番の中継機30の通信圏内には親機20が存在するため、1番の中継機30からブロードキャストで送信されたデータは親機20で受信される。
親機20のMCU200は、無線通信部202が1番の中継機30からの送信データを受信すると、受信したデータから測定データ、シーケンス番号、送信元アドレス、データ元アドレスを取り込む。そして、親機20のMCU200は、親機20と通信可能なことを示す最終宛先情報を付加したACKを無線通信部202から送信元の中継機30(この場合は1番の中継機30)に送信させる(図1の処理T6)。本実施形態では、親機20は、ウエイト時間を設けずにACKを送信するように構成されており、親機20がデータを受信すると、他の中継機30よりも早く親機20からACKが送信される。また、本実施形態では、最終宛先情報を親機20までの中継ホップ数としており、1番の中継機30に対しては親機20までの中継ホップ数、すなわちデータの「1」を付加したACKが送信される。なお、処理T2,T4で4番及び1番の中継機30がそれぞれACKを送信する場合、4番及び1番の中継機30は上位ノードから最終宛先情報を受信していないので、4番及び1番の中継機30から送信されるACKには最終宛先情報が付加されていない。換言すれば、処理T2で4番の中継機30から送信されるACKには、中継ホップ数がゼロであることを示すデータが付加されていることになる。
1番の中継機30の無線通信部302が、親機20から送信されたACKを受信すると、この中継機30のMCU300は、ACKに付加された最終宛先情報が1であることから、親機20と直接通信できたと判断し、次回からの送信先ノードを親機20に決定する。すなわち、1番の中継機30のMCU300は、次回以降はユニキャストで親機20にデータを送信する。
ここで、図1に示す一連の通信で、11番の子機10と1番、4番の中継機30とが得た情報は次の表1に示すとおりであり、1番の中継機30のみが最終宛先情報を取得する。
次に、11番の子機10が測定データを2回目に送信する場合の通信手順について図5を参照して説明する。なお、図1を参照して説明した通信手順と共通する通信手順については説明を省略する。
11番の子機10は、次回の送信タイミングになると、スリープモードから起動し、測定データとシーケンス番号とを格納した送信データをブロードキャストで送信させる(図5の処理T11)。
図5の例では、6番の中継機30のMCU300が、他の中継機30よりも早く、ウエイト時間の経過後に無線通信部302を制御して送信元の子機10にACKを送信させる(図5の処理T12)。子機10は、データの送信後に送信されてきたACKを受信すると、所定時間の経過後にスリープモードに切り替えて、消費電力の低減を図る。
6番の中継機30の通信圏内には4番、5番の中継機30と子機10とが存在し、6番の中継機30が送信したACKは、子機10だけでなく、4番、5番の中継機30の無線通信部302によっても受信される。4番、5番の中継機30のMCU300は、各々が受信したデータと同一のデータに対するACKを6番の中継機30が送信したため、中継動作を中止し、ACKの送信も行わない。
6番の中継機30のMCU300は、子機10からの送信データから測定データとシーケンス番号と宛先アドレスと送信元アドレスとデータ元アドレスを取り出す。6番の中継機30のMCU300は、送信データから取り出した測定データとシーケンス番号とを含め、宛先アドレスをブロードキャストアドレス、送信元アドレスを自機のアドレス、データ元アドレスを11番の子機10のアドレスとした送信データを作成する。そして、6番の中継機30のMCU300は、ACKを送信してからランダムなウエイト時間が経過した時点で、この送信データを無線通信部302からブロードキャストで送信させる(図5の処理T13)。図5の例では、6番の中継機30の通信圏内に2番、3番、5番の中継機30と11番の子機10とが存在し、6番の中継機30からブロードキャストで送信されたデータは、2番、3番、5番の中継機30の無線通信部302によって受信される。11番の子機10は、データ送信後にACKを受信するとスリープモードに切り替わっているので、6番の中継機30から送信されたデータは11番の子機10では受信されない。
2番、3番、5番の中継機30の無線通信部302が、6番の中継機30からの送信データを受信すると、これらの中継機30のMCU300は、受信したデータから測定データとシーケンス番号と宛先アドレスと送信元アドレスとデータ元アドレスを取り出す。上述のように、各中継機30がACKを送信するまでのウエイト時間はランダムな時間に設定されており、図5の例では、3番の中継機30のウエイト時間が、2番、5番の中継機30のウエイト時間よりも短い時間となっている。そのため、3番の中継機30のMCU300が、他の中継機30よりも早く、ウエイト時間の経過後に無線通信部302を制御して送信元の6番の中継機30にACKを送信する(図5の処理T14)。3番の中継機30から6番の中継機30へ送信されたACKは、2番及び5番の中継機30にも受信される。2番及び5番の中継機30は、6番の中継機30からの送信データに対するACKを3番の中継機30が送信したために、中継動作を中止し、ACKの送信も行わない。
その後、3番の中継機30のMCU300は、6番の中継機30からの送信データから測定データとシーケンス番号と宛先アドレスと送信元アドレスとデータ元アドレスを取り出す。3番の中継機30のMCU300は、測定データとシーケンス番号を含め、宛先アドレスをブロードキャストアドレス、送信元アドレスを自機のアドレス、データ元アドレスを11番の子機10のアドレスとした送信データを作成する。そして、3番の中継機30のMCU300は、ACKを送信してからランダムなウエイト時間が経過した時点で、この送信データを無線通信部302からブロードキャストで送信させる(図5の処理T15)。3番の中継機30の通信圏内には親機20が存在するため、3番の中継機30からブロードキャストで送信されたデータは親機20で受信される。
親機20のMCU200は、無線通信部202が3番の中継機30からの送信データを受信すると、受信したデータから測定データ、シーケンス番号、宛先アドレス、送信元アドレス、データ元アドレスを取り込む。そして、親機20のMCU200は、最終宛先情報が付加されたACKを無線通信部202から送信元の中継機30(この場合は3番の中継機30)に送信する(図1の処理T16)。
3番の中継機30の無線通信部302が、親機20から送信されたACKを受信すると、この中継機30のMCU300は、ACKに付加された最終宛先情報が1であることから、親機20と直接通信できたと判断し、次回からの送信先ノードを親機20に決定する。すなわち、3番の中継機30のMCU300は、次回以降はユニキャストで親機20にデータを送信する。
ここで、図5に示す一連の通信で、11番の子機10と3番、6番の中継機30とが得た情報は次の表2に示すとおりであり、新たに3番の中継機30が最終宛先情報を取得する。
次に、11番の子機10が測定データを3回目に送信する場合の通信手順について図6を参照して説明する。なお、図1、図5を参照して説明した通信手順と共通する通信手順については説明を省略する。
11番の子機10は、次回の送信タイミングになると、スリープモードから起動し、測定データとシーケンス番号とを格納した送信データをブロードキャストで送信させる(図6の処理T21)。
図6の例では、5番の中継機30のMCU300が、他の中継機30よりも早く、ウエイト時間の経過後に無線通信部302を制御して送信元の子機10にACKを送信させる(図6の処理T22)。11番の子機10は、ACKを受信すると、所定時間の経過後にスリープモードに移行する。
5番の中継機30が送信したACKは、4番及び6番の中継機30にも受信される。4番及び6番の中継機30は、各々が受信したデータと同一のデータに対するACKを5番の中継機30が送信したため、中継動作を中止し、ACKの送信も行わない。
5番の中継機30のMCU300は、子機10からの送信データから測定データとシーケンス番号と宛先アドレスと送信元アドレスとデータ元アドレスを取り出す。5番の中継機30のMCU300は、送信データから取り出した測定データとシーケンス番号とを含め、宛先アドレスをブロードキャストアドレス、送信元アドレスを自機のアドレス、データ元アドレスを11番の子機10のアドレスとした送信データを作成する。そして、5番の中継機30のMCU300は、ACKを送信してからランダムなウエイト時間が経過した時点で、この送信データを無線通信部302からブロードキャストで送信させる(図6の処理T23)。図6の例では、5番の中継機30の通信圏内に1番、2番、3番、4番、及び6番の中継機30と子機10とが存在し、5番の中継機30からブロードキャストで送信されたデータは、1〜4番及び6番の中継機30の無線通信部302によって受信される。子機10は、データ送信後にACKを受信するとスリープモードに切り替わっているので、5番の中継機30から送信されたデータは子機10では受信されない。
1〜4番及び6番の中継機30の無線通信部302が、5番の中継機30からの送信データを受信すると、これらの中継機30のMCU300は、受信したデータから測定データとシーケンス番号と宛先アドレスと送信元アドレスとデータ元アドレスを取り出す。上述のように、各中継機30がACKを送信するまでのウエイト時間はランダムな時間に設定されており、図6の例では、2番の中継機30のウエイト時間が、1番、3番、4番、及び6番の中継機30のウエイト時間よりも短い時間となっている。そのため、2番の中継機30のMCU300が、他の中継機30よりも早く、ウエイト時間の経過後に無線通信部302を制御して送信元の5番の中継機30にACKを送信する(図6の処理T24)。2番の中継機30から5番の中継機30へ送信されたACKは、5番の中継機30だけでなく、1番、3番、4番、6番の中継機30の無線通信部302によっても受信される。1番、3番、4番、6番の中継機30は、各々が受信したデータと同一のデータ(5番の中継機30からの送信データ)に対するACKを2番の中継機30が送信したために、中継動作を中止し、ACKの送信も行わない。
その後、2番の中継機30のMCU300は、5番の中継機30からの送信データから測定データとシーケンス番号と宛先アドレスと送信元アドレスとデータ元アドレスを取り出す。2番の中継機30のMCU300は、測定データとシーケンス番号を含め、宛先アドレスをブロードキャストアドレス、送信元アドレスを自機のアドレス、データ元アドレスを11番の子機10のアドレスとした送信データを作成する。そして、2番の中継機30のMCU300は、ACKを送信してからランダムなウエイト時間が経過した時点で、作成した送信データを無線通信部302からブロードキャストで送信させる(図6の処理T25)。2番の中継機30の通信圏内には親機20が存在するため、2番の中継機30からブロードキャストで送信されたデータは親機20で受信される。
親機20のMCU200は、無線通信部202が2番の中継機30からの送信データを受信すると、受信したデータから測定データ、シーケンス番号、送信元アドレス、データ元アドレスを取り込む。親機20のMCU200は、最終宛先情報を付加したACKを無線通信部202から送信元である2番の中継機30に送信させる(図6の処理T26)。
2番の中継機30の無線通信部302が、親機20から送信されたACKを受信すると、この中継機30のMCU300は、ACKに付加された最終宛先情報が1であることから、親機20と直接通信できたと判断し、次回からの送信先ノードを親機20に決定する。すなわち、2番の中継機30のMCU300は、次回以降はユニキャストで親機20にデータを送信する。
ここで、図6に示す一連の通信で、11番の子機10と2番、5番の中継機30とが得た情報は次の表3に示すとおりであり、新たに2番の中継機30が最終宛先情報を取得する。
次に、11番の子機10が測定データを4回目に送信する場合の通信手順について図7を参照して説明する。なお、図1、図5、図6を参照して説明した通信手順と共通する通信手順については説明を省略する。
11番の子機10は、次回の送信タイミングになると、スリープモードから起動し、測定データとシーケンス番号とを含めた送信データをブロードキャストで送信させる(図7の処理T31)。
11番の子機10から送信されたデータは、4〜9番の中継機30によって受信される。図7の例では、4番の中継機30のMCU300が、他の中継機30よりも早く、ウエイト時間の経過後に無線通信部302を制御して送信元の子機10宛てにACKを送信させる(図7の処理T32)。子機10は、ACKを受信すると、所定時間の経過後にスリープモードに移行する。
4番の中継機30が送信したACKは、子機10だけでなく、5番、6番の中継機30にも受信される。5番、6番の中継機30は、各々が受信したデータと同一のデータ(11番の子機10からの送信データ)に対するACKを4番の中継機30が送信したため、中継動作を中止し、ACKの送信も行わない。
4番の中継機30のMCU300は、子機10からの送信データから測定データとシーケンス番号と宛先アドレスと送信元アドレスとデータ元アドレスを取り出す。4番の中継機30のMCU300は、測定データとシーケンス番号とを含め、宛先アドレスをブロードキャストアドレス、送信元アドレスを自機のアドレス、データ元アドレスを11番の子機10のアドレスとした送信データを作成する。そして、4番の中継機30のMCU300は、ACKを送信してからランダムなウエイト時間が経過した時点で、この送信データを無線通信部302からブロードキャストで送信させる(図7の処理T33)。図7の例では、4番の中継機30の通信圏内に1番、2番、5番の中継機30と11番の子機10とが存在し、4番の中継機30からブロードキャストで送信されたデータは、1番、2番及び5番の中継機30の無線通信部302によって受信される。11番の子機10は、データ送信後にACKを受信するとスリープモードに切り替わっているので、4番の中継機30から送信されたデータは子機10では受信されない。
1番、2番及び5番の中継機30の無線通信部302が、4番の中継機30からの送信データを受信すると、これらの中継機30のMCU300は、受信したデータから測定データとシーケンス番号と宛先アドレスと送信元アドレスとデータ元アドレスを取り出す。上述のように、各中継機30がACKを送信するまでのウエイト時間はランダムな時間に設定されており、図7の例では、2番の中継機30のウエイト時間が、1番及び5番の中継機30のウエイト時間よりも短い時間となっている。そのため、2番の中継機30のMCU300が、他の中継機30よりも早く、ウエイト時間の経過後に無線通信部302を制御して送信元の4番の中継機30にACKを送信する(図7の処理T34)。ここで、2番の中継機30は、以前の通信で親機20から最終宛先情報を取得しているので、最終宛先情報として自機の中継ホップ数に1を加えた中継ホップ数(この場合は2)をACKに付加して4番の中継機30に送信する。
4番の中継機30の無線通信部302が、2番の中継機30から送信されたACKを受信すると、4番の中継機30のMCU300は、ACKに付加された最終宛先情報から2番の中継機30が親機20と通信可能なノードと判断し、送信先の候補ノードに設定する。本実施形態では、各中継機30のMCU300は、最終宛先情報が付加されたACKを受信した場合、このACKの送信元のノードを送信先の候補ノードに設定する。各中継機30のMCU300は、送信先のノードを決定するまでは、以後の通信においてもブロードキャストでデータを送信する。各中継機30のMCU300は、最終宛先情報を所定回数、本実施形態では例えば3回受信すると、3回分の最終宛先情報を送信してきた候補ノードの中から、通信条件などに基づいて送信先ノードを決定する。そして、各中継機30のMCU300は、以後の通信では送信先として決定した上位ノード(送信先ノード)に対してユニキャストでデータを送信するように構成されている。なお、本実施形態では、最終宛先情報を受信した中継機30が親機20と直接通信可能な場合、この中継機30は親機20を送信先ノードに決定している。
また、2番の中継機30から4番の中継機30へ送信されたACKは、1番及び5番の中継機30も受信される。1番及び5番の中継機30は、各々が受信したデータと同一のデータ(4番の中継機30からの送信データ)に対するACKを2番の中継機30が送信しているから、中継動作を中止し、ACKの送信も行わない。
その後、2番の中継機30のMCU300は、4番の中継機30からの送信データから測定データとシーケンス番号と宛先アドレスと送信元アドレスとデータ元アドレスを取り出す。2番の中継機30のMCU300は、測定データとシーケンス番号を含め、宛先アドレスを親機20のアドレス、送信元アドレスを自機のアドレス、データ元アドレスを11番の子機10アドレスとした送信データを作成する。そして、2番の中継機30のMCU300は、ACKを送信してからランダムなウエイト時間が経過した時点で、この送信データを無線通信部302から親機20にユニキャストで送信させる(図7の処理T35)。
親機20のMCU200は、無線通信部202が2番の中継機30からの送信データを受信すると、受信したデータから測定データ、シーケンス番号、送信元アドレス、データ元アドレスを取り込む。そして、親機20のMCU200は、無線通信部202から送信元である2番の中継機30へ最終宛先情報を付加したACKを送信させる(図7の処理T36)。
ここで、図7に示す一連の通信で、4番の中継機30が新たに得た情報は次の表4に示すとおりであり、新たに2番の中継機30が最終宛先情報を取得する。
次に、11番の子機10が測定データを5回目に送信する場合の通信手順について図8を参照して説明する。なお、図1、図5〜図7を参照して説明した通信手順と共通する通信手順については説明を省略する。
11番の子機10は、次回の送信タイミングになると、スリープモードから起動し、測定データとシーケンス番号とを格納した送信データを、ブロードキャストで送信させる(図8の処理T41)。
11番の子機10からブロードキャストで送信されたデータは4〜9番の中継機30で受信される。図8の例では、6番の中継機30が、他の中継機30よりも早く、ウエイト時間の経過後に送信元の子機10にACKを送信する(図8の処理T42)。子機10は、ACKを受信すると、所定時間の経過後にスリープモードに移行する。
6番の中継機30が送信したACKは、11番の子機10だけでなく、4番、5番の中継機30の無線通信部302によっても受信される。4番、5番の中継機30のMCU300は、各々が受信したデータと同一のデータ(11番の子機10からの送信データ)に対するACKを6番の中継機30が送信したため、中継動作を中止し、ACKの送信も行わない。
6番の中継機30のMCU300は、11番の子機10からの送信データから測定データとシーケンス番号と宛先アドレスと送信元アドレスとデータ元アドレスを取り出す。6番の中継機30のMCU300は、測定データとシーケンス番号とを含め、宛先アドレスをブロードキャストアドレス、送信元アドレスを自機のアドレス、データ元アドレスを11番の子機10のアドレスとした送信データを作成する。そして、6番の中継機30のMCU300は、ACKを送信してからランダムなウエイト時間が経過した時点で、この送信データを無線通信部302からブロードキャストで送信させる(図8の処理T43)。6番の中継機30からブロードキャストで送信されたデータは、2番、3番及び5番の中継機30の無線通信部302によって受信される。11番の子機10は、データ送信後にACKを受信するとスリープモードに切り替わっているので、6番の中継機30から送信されたデータは11番の子機10では受信されない。
2番、3番及び5番の中継機30の無線通信部302が、6番の中継機30からの送信データを受信すると、これらの中継機30のMCU300は、受信したデータから測定データとシーケンス番号と宛先アドレスと送信元アドレスとデータ元アドレスを取り出す。上述のように、各中継機30がACKを送信するまでのウエイト時間はランダムな時間に設定されており、図8の例では、3番の中継機30のウエイト時間が、2番、5番の中継機30のウエイト時間よりも短い時間となっている。そのため、3番の中継機30が、他の中継機30よりも早く、ウエイト時間の経過後に送信元の6番の中継機30にACKを送信する(図8の処理T44)。ここで、3番の中継機30は、以前の通信で親機20から最終宛先情報を取得しているので、最終宛先情報として自機の中継ホップ数に1を加えた中継ホップ数(この場合は2)をACKに付加して6番の中継機30に送信する。
6番の中継機30の無線通信部302が、3番の中継機30から送信されたACKを受信すると、6番の中継機30のMCU300は、ACKに付加された最終宛先情報から3番の中継機30が親機20と通信可能なノードと判断し、送信先の候補ノードに設定する。6番の中継機30のMCU300は、3番の中継機30を候補ノードに設定するが、送信先のノードを決定するまでは、以後の通信においてもブロードキャストでデータを送信する。6番の中継機30のMCU300は、最終宛先情報を例えば3回(所定回数)受信すると、3回分の最終宛先情報を送信してきた候補ノードの中から、通信条件などに基づいて送信先のノードを決定する。
また、3番の中継機30から6番の中継機30へ送信されたACKは、2番及び5番の中継機30にも受信される。2番及び5番の中継機30は、各々が受信したデータと同一のデータ(6番の中継機30からの送信データ)に対するACKを3番の中継機30が送信したために、中継動作を中止し、ACKの送信も行わない。
その後、3番の中継機30のMCU300は、6番の中継機30からの送信データから測定データとシーケンス番号と宛先アドレスと送信元アドレスとデータ元アドレスを取り出す。3番の中継機30のMCU300は、この測定データとシーケンス番号を含め、宛先アドレスを親機20のアドレス、送信元アドレスを自機のアドレス、データ元アドレスを11番の子機10のアドレスとした送信データを作成する。そして、3番の中継機30のMCU300は、ACKを送信してからランダムなウエイト時間が経過した時点で、この送信データを無線通信部302から親機20にユニキャストで送信させる(図8の処理T45)。
親機20のMCU200は、無線通信部202が3番の中継機30からの送信データを受信すると、受信したデータから測定データ、シーケンス番号、送信元アドレス、データ元アドレスを取り込む。親機20のMCU200は、最終宛先情報を付加したACKを無線通信部202から送信元である3番の中継機30に送信する(図8の処理T46)。
ここで、図8に示す一連の通信で、6番の中継機30が新たに得た情報は次の表5に示すとおりであり、新たに6番の中継機30が最終宛先情報を取得する。
上述のように11番の子機10は、所定の送信タイミングがくるごとに、測定データの送信を繰り返しており、数回から十数回のデータ送信の結果、例えば4番の中継機30で、最終宛先情報を例えば3回分受信したとする。この時点で、子機10及び中継機30が次の表6に示すような情報を得ているとする。
4番の中継機30のMCU300は、最終宛先情報を3回分受信すると、3回分の最終宛先情報を送信してきた候補ノードの中から、通信条件などに基づいて送信先ノードを決定する。本実施形態では子機10及び中継機30のMCU100,300は、3回分の最終宛先情報を送信してきた候補ノードの中から、中継ホップ数が最も少ない候補ノードを送信先ノードに決定する。
なお、候補ノードの中から送信先ノードを決定するための通信条件は、中継ホップ数に限定されない。子機10及び中継機30の無線通信部103,302は受信信号強度の測定機能を有し、子機10及び中継機30のMCU100,300は、3回分の最終宛先情報を送信してきた候補ノードから、受信信号強度が最も大きいノードを送信先ノードに決定してもよい。また、子機10が送信データに送信時刻の情報を含め、親機20が、受信したデータに含まれる送信時刻と、データの受信時刻との差分から到達遅延時間を求め、この到達遅延時間をACKに付加して送信してもよい。ここで、到達遅延時間とは送信元の第1ノード(本実施形態では子機10)から送信先の第2ノード(本実施形態では親機20)までデータが到達するのに要する時間である。そして、子機10及び中継機30のMCU100,300が、ACKに付加された到達遅延時間をもとに、3回分の最終宛先情報を送信してきた候補ノードの中から、到達遅延時間が最も短いノードを送信先ノードに決定してもよい。また、子機10及び中継機30のMCU100,300は、候補ノードの中から送信先ノードを決定する場合に、データを中継するノードの数がより少ない候補ノードを送信先ノードに決定してもよい。また、子機10及び中継機30のMCU100,300は、上述した中継ホップ数、受信信号強度、到達遅延時間のうち複数の条件に基づいて、候補ノードの中から送信先ノードを決定してもよい。また、子機10及び中継機30のMCU100,300は、候補ノードの各々で通信条件が同じであれば、最終宛先情報を最後に受信した候補ノードを送信先ノードとして決定してもよい。
上述のようにして4番の中継機30は送信先ノードを決定するが、11番の子機10がデータ送信を複数回行った結果、11番の子機10と直接通信する5番、6番の中継機30も、それぞれ、最終宛先情報を所定回数分取得し、送信先ノードを決定したとする。この時点で、子機10及び中継機30は次の表7に示すような情報を得ているとする。
この状態から、11番の子機10が測定データを送信する場合の通信手順について図9を参照して説明する。なお、図1、図5〜図8を参照して説明した通信手順と共通する通信手順については説明を省略する。
11番の子機10は、次回の送信タイミングになるとスリープモードから起動し、測定データとシーケンス番号とを格納した送信データを、ブロードキャストで送信させる(図9の処理T51)。
11番の子機10からブロードキャストで送信されたデータは4〜9番の中継機30によって受信される。図9の例では、4番の中継機30が、他の中継機30よりも早く、ウエイト時間の経過後に送信元の子機10宛てにACKを送信する(図9の処理T52)。このとき、4番の中継機30は、送信先ノードを確定しているので、4番の中継機30は、最終宛先情報(本実施形態では中継ホップ数のデータ「2」)を付加したACKを送信元である11番の子機10に送信する。11番の子機10は、4番の中継機30から最終宛先情報が付加されたACKを受信すると、4番の中継機30を送信先の候補ノードとし、所定時間の経過後にスリープモードに移行する。なお、子機10のMCU100は、送信先ノードを決定するまでは、以後の通信においてもブロードキャストでデータを送信する。子機10のMCU100は、最終宛先情報を所定回数、本実施形態では例えば3回受信すると、3回分の最終宛先情報を送信してきた候補ノードの中から、通信条件などに基づいて送信先のノードを決定する。
4番の中継機30が送信したACKは、子機10だけでなく、5番、6番の中継機30の無線通信部302によっても受信される。5番、6番の中継機30のMCU300は、各々が受信したデータと同一のデータ(11番の子機10からの送信データ)に対するACKを4番の中継機30が送信したため、中継動作を中止し、ACKの送信も行わない。
4番の中継機30のMCU300は、11番の子機10からの送信データから測定データとシーケンス番号と宛先アドレスと送信元アドレスとデータ元アドレスを取り出す。4番の中継機30のMCU300は、この測定データとシーケンス番号とを含め、宛先アドレスを1番の中継機30のアドレス、送信元アドレスを自機のアドレス、データ元アドレスを11番の子機10のアドレスとした送信データを作成する。そして、4番の中継機30のMCU300は、この送信データを無線通信部302から1番の中継機30へユニキャストで送信させる(図9の処理T53)。
1番の中継機30は、4番の中継機30からユニキャストで送信された送信データを受信すると、送信元の4番の中継機30にACKを送信する(図9の処理T54)。
また、1番の中継機30は、4番の中継機30からの送信データから測定データとシーケンス番号と宛先アドレスと送信元アドレスとデータ元アドレスを取り出す。1番の中継機30は、この測定データとシーケンス番号とを含め、宛先アドレスを親機20のアドレス、送信元アドレスを自機のアドレス、データ元アドレスを11番の子機10のアドレスとした送信データを作成する。そして、1番の中継機30のMCU300は、この送信データを無線通信部302から親機20へユニキャストで送信させる(図9の処理T55)。
親機20は、1番の中継機30からの送信データを受信すると、受信したデータから測定データ、シーケンス番号、送信元アドレス、データ元アドレスを取り込み、最終宛先情報を付加したACKを送信元である1番の中継機30に送信する(図9の処理T56)。
これにより、子機10から親機20への1回分のデータ送信が完了する。図9に示す一連の通信で、子機10及び中継機30が新たに得た情報は次の表8に示すとおりであり、新たに11番の子機10と4番の中継機30が最終宛先情報を取得する。
その後も、11番の子機10は、所定の送信タイミングがくるごとに、測定データの送信を繰り返し、あと2回のデータ送信の結果、11番の子機10は、最終宛先情報が付加されたACKを3回受信することができる。この時点で子機10及び中継機30は次の表9に示すような情報を得ているとする。
このようにして、11番の子機10のMCU100は、最終宛先情報が付加されたACKを3回分受信すると、3回分の最終宛先情報を送信してきた候補ノード(4番、5番、6番の中継機30)の中から次回送信時の送信先ノードを決定する。ここで、子機10のMCU100は、3回分の最終宛先情報を受信した通信実績から、送信先ノードを6番の中継機30に決定した場合、以後の通信では6番の中継機30に対してユニキャストでデータを送信する。
図10は子機10から親機20までユニキャストで通信が行われる場合の通信手順を示している。
11番の子機10は、次回の送信タイミングになるとスリープモードから起動し、測定データとシーケンス番号と宛先アドレスと送信元アドレスとデータ元アドレスを格納した送信データを、6番の中継機30にユニキャストで送信させる(図10の処理T61)。
6番の中継機30は、11番の子機10からの送信データを受信すると、送信元の子機10に宛てて最終宛先情報を付加したACKを送信する(図10の処理T62)。
また、6番の中継機30は、子機10からの送信データから測定データとシーケンス番号を取り出し、この測定データとシーケンス番号とを含め、宛先アドレスを3番の中継機30のアドレス、送信元アドレスを自機のアドレスとした送信データを作成する。そして、6番の中継機30は、この送信データを3番の中継機30へユニキャストで送信させる(図10の処理T63)。
3番の中継機30は、6番の中継機30からユニキャストで送信された送信データを受信すると、送信元の6番の中継機30にACKを送信する(図10の処理T64)。
また、3番の中継機30は、6番の中継機30からの送信データから測定データとシーケンス番号と宛先アドレスと送信元アドレスとデータ元アドレスを取り出す。3番の中継機30は、6番の中継機30からの送信データから取り出した測定データとシーケンス番号とを含め、宛先アドレスを親機20のアドレス、送信元アドレスを自機のアドレス、データ元アドレスを11番の子機10のアドレスとした送信データを作成する。そして、3番の中継機30は、この送信データを親機20へユニキャストで送信させる。親機20は、3番の中継機30から送信されたデータを受信すると、3番の中継機30にACKを送信する。このように、子機10から親機20までの通信経路を構成する全てのノードで送信先ノードが確定すると、各ノードはユニキャストでデータを送信するから、各ノードがブロードキャストでデータを送信する場合に比べて送信されるACKの数が減少する。その結果、通信量が低減し、送信データが衝突する確率が低下する。
なお、子機10及び中継機30の各々で送信先ノードが決定されていく順番は、図1及び図5〜図10の説明に限定されず、通信環境などによって変化する。
以上説明したように、本実施形態の無線通信システムは、送信元の第1ノード(本実施形態では子機10)と、送信先の第2ノード(本実施形態では親機20)と、複数台の第3ノード(本実施形態では中継機30)とを備える。第1ノードおよび第2ノードはそれぞれ無線通信機能を備える。複数台の第3ノードの各々は、第1ノードと第2ノードとの間の無線通信を中継する機能を備える。第1ノード及び第3ノードの各々は、送信先ノードが決定していない場合にはブロードキャストでデータを送信するように構成される。第2ノードは、第1ノード及び第3ノードのうちの何れかからデータを受信すると、最終宛先情報をACKに付加して送信元のノードに送信するように構成される。第3ノードは、通信経路の上位ノードから最終宛先情報が付加されたACKを受信すると、ACKの送信元のノードを次回送信時の送信先の候補ノードとするように構成される。第3ノードは、通信経路の下位ノードから次回データを受信した際に最終宛先情報を付加したACKを下位ノードに送信するように構成される。第1ノード及び第3ノードの各々は、最終宛先情報が付加されたACKを所定回数受信すると、所定回数分の最終宛先情報を送信してきた候補ノードの中から次回送信時の送信先ノードを決定するように構成される。そして、第1ノード及び第3ノードの各々は、以後の通信では送信先ノードに対してユニキャストでデータを送信するように構成される。
このように、第1ノード及び第3ノードの各々で送信先ノードが決定していない状態では、第1ノード及び第3ノードはブロードキャストでデータを送信しているから、第1ノードから送信されたデータは、直接或いは第3ノードを経由して第2ノードに送信される。第1ノード及び第3ノードのうち送信先ノードが決定したノードはユニキャストでデータを送信するから、各ノードがブロードキャストで送信する場合に比べて送信されるACKの数が減少する。その結果、通信量が低減し、送信データが衝突する確率が低下する。さらに、第1ノード及び第3ノードの各々は、所定回数分の最終宛先情報を送信してきた候補ノードの中から送信先ノードを決定しているので、通信条件がより良好な候補ノードを送信先ノードに決定することができる。
なお、本実施形態では子機10から親機20にデータを送信する場合を例に説明したが、中継機30に所定の物理量を測定するセンサが接続されている場合、親機20が中継機30に対してセンサの測定データを要求する要求データを送信する場合もある。この場合は親機20が送信元の第1ノードとなって、測定データを要求する対象の中継機30が送信先の第2ノードとなる。
本実施形態の無線通信システムにおいて、第1ノード及び第3ノードの各々は、候補ノードの中から、中継ホップ数が最も少ない候補ノードを送信先ノードとして決定してもよい。これにより、第1ノードから第2ノードまでデータが送信される間にデータが中継送信される回数が減るので、通信量が低減し、送信データの衝突が発生する可能性が低下する。
また、本実施形態の無線通信システムにおいて、第1ノード及び第3ノードの各々は、送信先ノードを決定する条件に到達遅延時間を組み合わせてもよい。ここで、到達遅延時間とは、第1ノードから第2ノードまでデータが到達するのに要する時間である。これにより、第1ノード及び第3ノードの各々は、個々の候補ノードでの到達遅延時間をもとに、送信先ノードを決定することができ、例えば到達遅延時間がより短くなる候補ノードを送信先ノードに決定することができる。
また、本実施形態の無線通信システムにおいて、第1ノード及び第3ノードの各々は、中継ホップ数、受信信号強度、到達遅延時間のうち複数の条件に基づいて、候補ノードの中から送信先ノードを決定してもよい。ここで、到達遅延時間とは第1ノードから第2ノードまでデータが到達するのに要する時間である。これにより、第1ノード及び第3ノードの各々は、中継ホップ数、受信信号強度、到達遅延時間のうち複数の条件に基づいて、候補ノードの中から通信条件が良好なノードを送信先ノードに決定することができる。
また、本実施形態の無線通信システムにおいて、以下のように構成されることも好ましい。第1ノード及び第3ノードの各々は、最終宛先情報が付加されたACKを受信した場合に、ACKの受信信号強度が所定の閾値未満であれば、ACKに付加された最終宛先情報を破棄するように構成される。第1ノード及び第3ノードの各々は、ACKの送信元のノードを候補ノードとしないように構成される。
すなわち、子機10の無線通信部103は受信信号の信号強度(受信信号強度)を測定する機能を備え、その測定結果(受信信号強度)をMCU100に出力する。子機10のMCU100は、無線通信部103がデータを受信した際に、このデータの受信信号強度と所定の閾値との高低を比較する。そして、受信信号強度が閾値未満であれば、子機10のMCU100は、ACKに付加された最終宛先情報を破棄し、ACKの送信元のノードを候補ノードとしないように構成され、通信状態が不安定なノードが候補ノードに選ばれにくくなる。同様に、中継機30の無線通信部302は受信信号の信号強度(受信信号強度)を測定する機能を備え、その測定結果(受信信号強度)をMCU300に出力する。中継機30のMCU300は、無線通信部302がデータを受信した際に、このデータの受信信号強度と所定の閾値との高低を比較する。そして、受信信号強度が閾値未満であれば、中継機30のMCU300は、ACKに付加された最終宛先情報を破棄し、ACKの送信元のノードを候補ノードとしないように構成され、通信状態が不安定なノードが候補ノードに選ばれにくくなる。
また、本実施形態の無線通信システムにおいて、第1ノード、第2ノード、及び第3ノードの各々は、所定回数を所望の回数に設定するための設定部を備えてもよい。ここで、設定部を用いて設定される所定回数は、最終宛先情報が付加されたACKを受信する回数であり、所定回数分の最終宛先情報を送信してきた候補ノードから送信先ノードが決定される。例えば、子機10において所定回数を設定する場合、操作部105を用いて設定値が入力されると、MCU100は、操作部105から入力された設定値を記憶部102に記憶させており、所定回数を所望の回数に設定できる。また、親機20において所定回数を設定する場合、操作部205を用いて設定値が入力されると、MCU200は、操作部205から入力された設定値を記憶部201に記憶させており、所定回数を所望の回数に設定できる。また、中継機30において所定回数を設定する場合、操作部304を用いて設定値が入力されると、MCU300は、操作部304から入力された設定値を記憶部102に記憶させており、所定回数を所望の回数に設定できる。なお、第1ノードと第2ノードと第3ノードには所定回数として同じ回数が設定されてもよいし、ノードごとに異なる回数が設定されてもよい。ここにおいて、操作部105,205,304などから設定部が実現される。
また、本実施形態の無線通信システムにおいて、第3ノードは、送信先ノードを決定するまでは、通信経路の下位ノードに最終宛先情報を送信しないように構成されてもよい。第3ノードは、送信先ノードが決定していない状態では中継ホップ数や到達遅延時間が未定であるから、通信経路の下位ノードに最終宛先情報を送信しておらず、送信先ノードが決定した後に下位ノードへ最終宛先情報を送信すればよい。
また、本実施形態の無線通信システムにおいて、以下のような構成をさらに備えてもよい。第1ノード及び第3ノードの各々は、送信先ノードが決定した状態で、送信先ノードへのデータ送信に失敗すると、送信先ノードへユニキャストでデータを再送信する。第1ノード及び第3ノードの各々は、データ送信に再び失敗した場合は、ブロードキャストでデータを送信して、第2ノードへの通信経路を再構築する。
このように、第1ノード及び第3ノードの各々は、送信先ノードへのデータ送信に失敗した場合、先ず送信先ノードへユニキャストでデータを再送信する。したがって、単発的な通信エラーの場合には送信先ノードへユニキャストでデータを再送信することで、送信先ノードにデータを送信する可能性が高くなる。また、第1ノード及び第3ノードの各々は、データ送信に再び失敗した場合は、ブロードキャストでデータを送信して、第2ノードへの通信経路を再構築しているので、通信環境が変化した場合には新たな通信経路で第2ノードへの通信を行うことができる。
また、本実施形態の無線通信システムにおいて、第1ノード及び第3ノードの各々は、候補ノードの各々で通信条件が同じであれば、最終宛先情報を最後に受信した候補ノードを送信先ノードとして決定してもよい。候補ノードの各々で通信条件が同じであれば、最も新しく最終宛先情報を受信した候補ノードを送信先ノードとすることで、通信環境が変化した場合でも、より良い条件で通信が行える可能性が高くなる。