本発明に係る無線通信システムの実施形態を図面に基づいて説明する。
図1(a)に本実施形態の無線通信システムの概略構成を示す。本実施形態の無線通信システムは、データの送信元である子機(第1ノード)1と、データの送信先である親機(第2ノード)2と、複数台(図1では例えば6台)の中継機(第3ノード)3a,3b,3c,3d,3e,3fとを備えている。以下の説明において個々の中継機を特定して説明する場合は中継機3a,3b,3c,3d,3e,3fと表記し、全ての中継機を総称して説明する場合は中継機3と表記する。なお、本実施形態の無線通信システムは6台の中継機3を備えているが、中継機3の台数は6台に限定されるものではなく、信号の中継に必要な台数があればよい。また、データの送信元である子機1が複数台存在し、親機2が中継機3を介して複数台の子機1からデータを収集するようにしてもよい。
子機1と親機2と中継機3とは、それぞれ、無線免許が不要の無線通信部(例えば特定小電力無線モジュール、IEEE802.15.1の規格に準拠した無線通信部、IEEE802.15.4の規格に準拠した無線通信部など)を備えている。ここで、子機1および親機2が互いの通信圏内にあれば、子機1と親機2との間で無線通信が直接行われるが、子機1と親機2とが直接通信できない場合、子機1と親機2との間では中継機3を介して無線通信が行われる。そのため、複数台の中継機3は、子機1と親機2の間の無線通信を中継できるように、隣接する他の中継機3が通信圏内に存在するように配置されて、中継網が構築されている。
次に、子機1と親機2と中継機3の構成を図2(a)〜(c)に基づいて説明する。
子機1は、図2(a)に示すように、MCU(Micro Control Unit)10と、測定部11と、記憶部12と、無線通信部13と、アンテナ14と、操作部15と、表示部16と、電源部17とを備えている。子機1は、所定の計測タイミングで測定部11が測定したデータを、親機2に無線送信する。
MCU10は、子機1の全体的な制御を行う。
測定部11は、例えば温度を測定するためのものであり、周囲温度に応じて電気抵抗が変化するサーミスタを備え、サーミスタの抵抗値を測定することによって周囲温度を測定する。なお、測定部11の測定対象は温度に限定されるものではなく、周囲の湿度や照度など使用目的や用途に応じた物理量を測定すればよい。
記憶部12は、例えばEEPROM(electrically erasable and programmable read-only memory)やフラッシュメモリのような電気的に書き換え可能な不揮発性メモリで構成されている。記憶部12は、MCU10によってデータの書き込み及び読み出しが行われ、子機1に割り当てられた識別情報(子機ID)や、測定部11による測定データや、通信経路の情報などが保存されている。
無線通信部13は例えば特定小電力無線の通信規格に適合した無線モジュールからなり、アンテナ14を介して無線信号の送信又は受信を行う。
操作部15は、例えば測定部11による測定範囲の下限値及び上限値や、測定間隔や、測定データの送信間隔などを設定するために使用される。
表示部16は例えば1乃至複数個の発光ダイオードからなり、MCU10によって点灯/消灯が制御される。
電源部17は例えば電池を電源として、子機1の内部回路に対して動作に必要な電力を供給する。
親機2は、図2(b)に示すように、MCU20と、記憶部21と、無線通信部22と、アンテナ23と、有線通信部24と、操作部25と、表示部26と、電源部27とを備えている。
MCU20は、親機2の全体的な制御を行う。
記憶部21は、例えばEEPROMやフラッシュメモリのような電気的に書き換え可能な不揮発性メモリで構成されている。記憶部21は、MCU20によってデータの書き込み及び読み出しが行われ、親機2に割り当てられた識別情報や、子機1から収集した測定データや、通信経路の情報などを保存する。
無線通信部22は例えば特定小電力無線の通信規格に適合した無線モジュールからなり、アンテナ23を介して無線信号の送信又は受信を行う。
有線通信部24は、例えばサーバ(図示せず)に通信線を介して接続されており、子機1から収集したデータを有線方式でサーバに送信する。
操作部25は、例えば親機2の動作設定を行うために使用される。
表示部26は例えば1乃至複数個の発光ダイオードからなり、MCU20によって点灯/消灯が制御される。
電源部27は、例えば商用電源から電力の供給を受け、親機2の内部回路に対して動作に必要な電力を供給する。
中継機3は、図2(c)に示すように、MCU30と、記憶部31と、無線通信部32と、アンテナ33と、操作部34と、表示部35と、電源部36とを備えている。
MCU30は、中継機3の全体的な制御を行う。
記憶部31は、例えばEEPROMやフラッシュメモリのような電気的に書き換え可能な不揮発性メモリで構成されている。記憶部31は、MCU30によってデータの書き込み及び読み出しが行われ、自機に割り当てられた識別情報や、無線通信部32が受信したデータや、無線通信部32が過去に送信したデータや、通信経路の情報などを保存する。
無線通信部32は例えば特定小電力無線の通信規格に適合した無線モジュールからなり、アンテナ33を介して無線信号の送信又は受信を行う。
操作部34は、例えば中継機3の動作設定を行うために使用される。
表示部35は例えば1乃至複数個の発光ダイオードからなり、MCU30によって点灯/消灯が制御される。
電源部36は例えば電池を電源として、中継機3の内部回路に対して動作に必要な電力を供給する。中継機3は電池を電源としているので、中継機3を自由な場所に設置して使用することができる。なお、電源部36は商用電源から電力の供給を受けて、中継機3の内部回路に動作に必要な電力を供給してもよい。
次に、本実施形態の無線通信システムにおいて、子機1と親機2との間の通信経路が確立されていない状態で、子機1から親機2へ測定データを送信する処理について図1(a)〜(d)を参照して説明する。
子機1と親機2との間の通信経路が確立されていない状態で、子機1が測定データを1回目に送信する場合の通信手順について図1(a)を参照して説明する。
子機1のMCU10は、所定のサンプリング間隔(例えば数秒から数分の間隔)でスリープモードから起動し、測定部11に温度を測定させる。子機1のMCU10は、測定部11の測定データと、送信データに割り付けたシーケンス番号と、子機IDとを格納し、宛先アドレスをブロードキャストアドレスとした送信データを作成する。そして、子機1のMCU10は、作成した送信データを、無線通信部13からブロードキャストで送信させる(図1(a)の処理T1)。
図1の例では子機1の通信圏内に3台の中継機3d,3e,3fが存在し、子機1から送信されたデータは、これら3台の中継機3d,3e,3fに受信される。中継機3dの無線通信部32が子機1からの送信データを受信すると、中継機3dのMCU30は、無線通信部32を制御して送信元の子機1宛てにACK(acknowledgement:肯定応答)を返信する(図1(a)の処理T2)。同様に、中継機3e,3fも子機1宛てにACKを返信する(図1(a)の処理T3,T4)。子機1は、データの送信後に返信されてきたACKを受信すると、所定時間の経過後にスリープモードに切り替えて、消費電力の低減を図っている。
次に、中継機3dが子機1から受信したデータを中継送信する処理について説明する。中継機3dのMCU30は、子機1からの送信データから測定データとシーケンス番号と子機IDを取り出し、この測定データとシーケンス番号と子機IDとを含め、宛先アドレスをブロードキャストアドレスとした送信データを作成する。中継機3dのMCU30は、この送信データを無線通信部32からブロードキャストで送信させる(図1(a)の処理T5)。図1の例では中継機3dの通信圏内に3台の中継機3a,3b,3eと子機1とが存在し、中継機3dからブロードキャストで送信されたデータは、これらの中継機3a,3b,3eによって受信される。子機1は、データ送信後にACKを受信するとスリープモードに切り替わっているので、中継機3dからの送信データは子機1では受信されない。なお、中継機3e,3fも、中継機3dと同様に、子機1から受信したデータをブロードキャストで送信しているが、その説明は省略する。
中継機3bの無線通信部32が中継機3dからの送信データを受信すると、中継機3bのMCU30は、送信元の中継機3d宛てにACKを返信する(図1(a)の処理T6)。同様に、中継機3a,3eからも中継機3d宛てにACKが返信される(図1(a)の処理T7,T8)。
次に、中継機3bが中継機3dから受信したデータを中継送信する処理について説明する。中継機3bのMCU30は、中継機3dからの送信データから取り出した測定データとシーケンス番号と子機IDとを含め、宛先アドレスをブロードキャストアドレスとした送信データを作成する。そして、中継機3bのMCU30は、この送信データを無線通信部32からブロードキャストで送信させる(図1(a)の処理T9)。図1の例では中継機3bの通信圏内に親機2と中継機3a,3c〜3fとが存在し、中継機3bからブロードキャストで送信されたデータは、親機2と中継機3a,3c〜3fとで受信される。なお、中継機3a,3eも、中継機3bと同様に、中継機3dから受信したデータをブロードキャストで送信しているが、その説明は省略する。
親機2および中継機3a,3c〜3fは、中継機3bからのデータを受信するとACKを返信するのであるが、親機2がACKを返信するまでのウエイト時間は、他の中継機3a,3c〜3fがACKを返信するまでのウエイト時間よりも短い時間に設定されている。そのため、中継機3bには親機2からのACKが最初に返信される。
親機2の無線通信部22が、中継機3bからの送信データを受信すると、親機2のMCU20は、送信データに含まれる測定データとシーケンス番号と子機IDとを取り込み、新しい子機1から測定データを受信したと判断する。親機2のMCU20は、ACKに、最終宛先である親機2がデータを受信したことを示す最終宛先情報(例えば1ビットのフラグ)を付加して、送信元の中継機3bに送信させる(図1(a)の処理T10)。図3はACKを返信するデータの信号フォーマットである。この返信データは、プリアンブルD1と、データの始まりを示すSFD(Start Frame Delimiter)とよばれるデータD2と、データ長を示すデータD3と、ACKを格納するデータD4と、誤り検出のためのCRC(Cyclic Redundancy Check)とよばれるデータD5で構成される。ここで、データD4には、最終宛先情報のフラグと、中継段数(ホップ数)を示す情報とが付加されている。
親機2から返信されたACKが中継機3bの無線通信部32に受信されると、中継機3bのMCU30は、ACKに付加された最終宛先情報をもとに、自機が送信したデータが親機2によって受信されたと判断でき、中継機3bでは親機2までの通信経路が確定する。すなわち、中継機3は、ACKに付加された最終宛先情報のフラグが立っていれば、自機が直接又は他の中継機3を経由して親機2と通信可能であると判断でき、このACKを返信してきた上位ノード(親機2又は他の中継機3)を送信先のノードに設定する。
なお、親機2には中継機3aからも送信データが送信されてくるが、親機2のMCU20は、送信データに含まれるシーケンス番号や子機IDをもとに、以前に受信したデータと同じデータが送信されてきたと判断する。この場合、親機2のMCU20は、無線通信部22から送信元の中継機3aに、最終宛先情報のフラグを立てずにACKを返信させる。また、中継機3aから送信されたデータは中継機3dによっても受信されるが、中継機3dのMCU30は、送信データに含まれるシーケンス番号や子機IDをもとに、以前に送信したデータを受信したと判断する。この場合、中継機3dのMCU30は、受信したデータを破棄し、無線通信部32から送信元の中継機3aにACKのみを返信させる。
このように、子機1から1回目の測定データが送信されると、この測定データは子機1から中継機3dと中継機3bとを経由して親機2に送信される。また、中継機3bは、親機2から返信されるACKに付加された最終宛先情報をもとに、自機が親機2と通信していると判断して、送信先のノードを親機2に設定する。これにより、子機1から親機2までの通信経路のうち中継機3bと親機2とをつなぐ経路が確定する。
次に、子機1が測定データを2回目に送信する場合の通信手順について図1(b)を参照して説明する。
前回の測定時より所定のサンプリング間隔が経過すると、子機1のMCU10はスリープモードから起動し、測定部11に温度を測定させる。子機1のMCU10は、測定部11の測定データとシーケンス番号と子機IDとを格納し、宛先アドレスをブロードキャストアドレスとした送信データを作成し、この送信データを無線通信部13からブロードキャストで送信させる(図1(b)の処理T11)。
子機1からブロードキャストで送信されたデータは、中継機3d,3e,3fに受信される。中継機3dの無線通信部32が子機1からの送信データを受信すると、中継機3dのMCU30は、無線通信部32を制御して送信元の子機1宛てにACKを返信する(図1(b)の処理T12)。同様に、中継機3e,3fも子機1宛てにACKを返信する(図1(b)の処理T13,T14)。子機1は、データの送信後に返信されてきたACKを受信すると、所定時間の経過後にスリープモードに切り替えており、消費電力の低減を図る。
次に、中継機3dのMCU30は、子機1からの送信データから取り出した測定データとシーケンス番号と子機IDを含め、宛先アドレスをブロードキャストアドレスとした送信データを作成する。中継機3dのMCU30は、この送信データを無線通信部32からブロードキャストで送信させる(図1(b)の処理T15)。中継機3dからブロードキャストで送信されたデータは、中継機3dの通信圏内にある中継機3a,3b,3eによって受信される。子機1も中継機3dの通信圏内にあるが、子機1は、ACKを受信した後にスリープモードに切り替わっているので、中継機3dからの送信データは子機1では受信されない。なお、中継機3e,3fも、中継機3dと同様に、子機1から受信したデータをブロードキャストで送信しているが、その説明は省略する。
中継機3bの無線通信部32が中継機3dからの送信データを受信すると、中継機3bのMCU30は、前回の通信時に親機2から返信された最終宛先情報をACKに付加して、無線通信部32から送信元の中継機3dに返信させる(図1(a)の処理T16)。中継機3bから返信されたACKが中継機3dの無線通信部32に受信されると、中継機3dのMCU30は、ACKに付加された最終宛先情報をもとに、中継機3bが親機2と通信している中継機であると判断する。中継機3dのMCU30は送信先のノードを中継機3bに設定し、中継機3dにおいても親機2までの通信経路が確定する。なお、中継機3a,3eも、中継機3dからの送信データを受信すると、中継機3d宛てにACKを返信する(図1(b)の処理T17,T18)。
次に、中継機3bのMCU30は、中継機3dからの送信データから取り出した測定データとシーケンス番号と子機IDを含め、宛先アドレスを親機2のアドレスとした送信データを作成する。中継機3bのMCU30は、この送信データを無線通信部32からユニキャストで送信させる(図1(b)の処理T19)。親機2の無線通信部22が、中継機3bからの送信データを受信すると、親機2のMCU20は、送信データに含まれる測定データとシーケンス番号と子機IDとを取り込む。また、親機2のMCU20が、無線通信部22から送信元の中継機3bにACKを送信させており(図1(b)の処理T20)、子機1から親機2にデータを送信する一連の処理が終了する。
このように、子機1から2回目の測定データが送信されると、この測定データは子機1から中継機3dと中継機3bとを経由して親機2に送信される。また、中継機3dは、中継機3bからのACKに付加された最終宛先情報をもとに送信先のノードを中継機3bに設定し、子機1から親機2までの通信経路のうち中継機3dから親機2までの経路が確定する。
次に、子機1が測定データを3回目に送信する場合の通信手順について図1(c)を参照して説明する。
前回の測定時より所定のサンプリング間隔が経過すると、子機1のMCU10はスリープモードから起動し、測定部11に温度を測定させる。子機1のMCU10は、測定部11の測定データとシーケンス番号と子機IDとを格納し、宛先アドレスをブロードキャストアドレスとした送信データを作成し、無線通信部13からブロードキャストで送信させる(図1(c)の処理T21)。
子機1からブロードキャストで送信されたデータは、中継機3d,3e,3fに受信される。中継機3dの無線通信部32が子機1からの送信データを受信すると、中継機3dのMCU30は、前回の通信時に中継機3bから返信された最終宛先情報をACKに付加して、無線通信部32から送信元の子機1宛てに返信させる(図1(c)の処理T22)。中継機3dから返信されたACKが子機1の無線通信部13に受信されると、子機1のMCU10は、ACKに付加された最終宛先情報をもとに、中継機3dが親機2と通信している中継機であると判断し、送信先のノードを中継機3dに設定する。これにより、子機1から親機2までの通信経路が確立される。なお、中継機3e,3fも子機1宛てにACKを返信する(図1(c)の処理T23,T24)。子機1は、データの送信後に返信されてきたACKを受信すると、所定時間の経過後にスリープモードに切り替えており、消費電力の低減を図る。
中継機3dのMCU30は、子機1からの送信データから取り出した測定データとシーケンス番号と子機IDを含め、宛先アドレスを中継機3bのアドレスとした送信データを作成し、無線通信部32からユニキャストで送信させる(図1(c)の処理T25)。なお、中継機3e,3fも、中継機3dと同様に、子機1から受信したデータをブロードキャストで送信しているが、その説明は省略する。
中継機3bの無線通信部32が中継機3dからの送信データを受信すると、中継機3bのMCU30は、送信元の中継機3d宛てに、ACKを返信する(図1(c)の処理T26)。
また、中継機3bのMCU30は、中継機3dからの送信データから取り出した測定データとシーケンス番号と子機IDを含め、宛先アドレスを親機2のアドレスとした送信データを作成する。中継機3bのMCU30は、この送信データを無線通信部32からユニキャストで送信させる(図1(c)の処理T27)。親機2の無線通信部22が、中継機3bからの送信データを受信すると、親機2のMCU20は、送信データに含まれる測定データとシーケンス番号と子機IDとを取り込む。また、親機2のMCU20は、無線通信部22から送信元の中継機3bにACKを送信させ(図1(c)の処理T28)、子機1から親機2にデータを送信する一連の処理が終了する。
このように、子機1から3回目の測定データが送信されると、この測定データは子機1から中継機3dと中継機3bとを経由して親機2に送信される。また、子機1は、中継機3dからのACKに付加された最終宛先情報をもとに、中継機3dが親機2と通信していると判断して、送信先のノードを中継機3dに設定しており、子機1から親機2までの通信経路が確定する。
次に、子機1が測定データを4回目以降に送信する場合の通信手順について図1(d)に基づいて説明する。
前回の測定時より所定のサンプリング間隔が経過すると、子機1のMCU10はスリープモードから起動し、測定部11に温度を測定させる。子機1のMCU10は、測定部11の測定データとシーケンス番号と子機IDとを格納し、宛先アドレスを中継機3dのアドレスとした送信データを作成し、無線通信部13からユニキャストで送信させる(図1(d)の処理T29)。
子機1からユニキャストで送信されたデータは、中継機3dに受信され、中継機3dから送信元の子機1宛てにACKが返信される(図1(d)の処理T30)。子機1は、データの送信後に返信されてきたACKを受信すると、所定時間の経過後にスリープモードに切り替えており、消費電力の低減を図る。
中継機3dのMCU30は、子機1から送信された送信データを受信すると、測定データとシーケンス番号と子機IDを含め、宛先アドレスを中継機3bのアドレスとした送信データを作成する。中継機3dのMCU30は、この送信データを無線通信部32からユニキャストで送信させる(図1(d)の処理T31)。
中継機3bが、中継機3dからの送信データを受信すると、送信元の中継機3d宛てにACKを返信する(図1(d)の処理T32)。
また、中継機3bのMCU30は、中継機3dから受信した送信データから取り出した測定データとシーケンス番号と子機IDを含め、宛先アドレスを親機2のアドレスとした送信データを作成する。中継機3bのMCU30は、この送信データを無線通信部32からユニキャストで送信させる(図1(d)の処理T33)。
親機2の無線通信部22が、中継機3bからの送信データを受信すると、親機2のMCU20は、送信データに含まれる測定データとシーケンス番号と子機IDとを取り込む。また、親機2のMCU20は、無線通信部22から送信元の中継機3bにACKを送信させ(図1(d)の処理T34)、子機1から親機2にデータが送信される一連の処理が終了する。
このように、子機1から親機2までの通信経路が確定した後は、子機1から親機2までの通信経路に介在する各ノードがユニキャストでデータを送信するから、ブロードキャストで送信する場合に比べて、返信されるACKが減少する。その結果、通信量が減少し、送信データが衝突する確率が低下する。
本実施形態の無線通信システムは、無線通信機能を有する送信元の子機1(第1ノード)と、無線通信機能を有する送信先の親機2(第2ノード)と、複数台の中継機3(第3ノード)とを備える。複数台の中継機3は、子機1と親機2との間の無線通信を中継する機能を備える。子機1から親機2までデータを送信する通信経路が確立するまでは、子機1および中継機3はブロードキャストでデータを送信する。子機1から親機2までの通信経路のうちの少なくとも一部で送信先が確定すると、子機1および中継機3のうち送信先が確定したノード(子機1、中継機3)はユニキャストでデータを送信する。
このように、通信経路が確立していない状態では、子機1および中継機3はブロードキャストでデータを送信しているから、子機1から送信されたデータは、直接或いは中継機3を経由して親機2に送信される。通信経路のうちの少なくとも一部で送信先が確定すると、子機1および中継機3のうち送信先が確定したノードはユニキャストでデータを送信するから、各ノードがブロードキャストで送信する場合に比べて返信されるACKの数が減少する。その結果、通信量が低減し、送信データが衝突する確率が低下する。
本実施形態の無線通信システムでは、親機2が、子機1からのデータを受信すると、最終宛先である親機2がデータを受信したことを示す最終宛先情報をACKに付加して返信する。したがって、このACKを受信したノード(子機1又は中継機3)は、親機2と通信可能であると判断でき、送信先を親機に設定することができる。
本実施形態の無線通信システムでは、以下のような処理を行っている。中継機3は、通信経路の上位ノード(親機2又は別の中継機3)から最終宛先情報が付加されたACKを受信した場合、通信経路の下位ノード(子機1又は別の中継機3)から次のデータを受信した際に、最終宛先情報をACKに付加して下位ノードに返信する。
このように、中継機3は、上位ノードから最終宛先情報が付加されたACKを受信すると、次のデータを受信した際に、最終宛先情報をACKに付加して下位ノードに返信しており、ACKを返信することで上位ノードから下位ノードへと送信先が順番に確定される。
また、本実施形態の無線通信システムにおいて、親機2が、子機1からのデータを受信すると、このデータが送信されてきた通信経路を逆に辿って子機1と直接通信する中継機3まで、子機1が次のデータを送信する前に最終宛先情報を返信させることも好ましい。
図4はこの通信手順を説明する説明図である。図1(a)を参照して説明した子機1から親機2への1回目のデータ送信と同様の手順で、子機1が送信した測定データは中継機3dを経由して中継機3bに送られ、中継機3bが測定データを含む送信データをブロードキャストで送信する(図4の処理T9)。親機2は、中継機3bからの送信データを受信すると、最終宛先情報を付加したACKを、送信元の中継機3bに返信する(図4の処理T10)。中継機3bは、親機2からのACKに付加された最終宛先情報をもとに、自機が親機2と通信していると判断し、中継機3bと親機2とをつなぐ経路が確定する。また親機2は、子機1から親機2までの通信経路を逆に辿って、子機1の直上のノードであって子機1と直接通信する中継機3dまで、最終宛先情報を付加した専用コマンドを一遍に送信する(図4の処理T35)。この専用コマンドは通信経路を逆に辿って中継機3dまで中継伝送される。この専用コマンドを受信した中継機3(図4の例では中継機3d)は、専用コマンドに付加された最終宛先情報をもとに、子機1から親機2までの通信経路を構成するノードであると判断でき、自機と直接通信する上位側のノードを送信先として確定する。したがって、子機1の上位側のノード(中継機3d)から親機2までの通信経路が一遍に確定し、通信経路の途中にある中継機3dは、データの送信先を決定できる。よって、子機1が次のデータを送信する際には、子機1の上位側のノードから親機2までユニキャストでデータが送信されるから、通信経路の構築を短時間で行うことができる。また、子機1が次のデータをブロードキャストで送信すると、中継機3dから最終宛先情報を付加したACKが子機1に返信されるので、子機1から親機2までの通信経路が確定する。
また、本実施形態において、親機2および中継機3は、通信経路の下位ノードからブロードキャストでデータを受信した場合、通信経路の下位ノードからユニキャストでデータを受信した場合に比べて、ACKを返信するまでのウエイト時間を長くしてもよい。
図5はこの通信手順を説明する説明図である。図1(b)を参照して説明したように、中継機3bの送信先が決定した状態で、子機1からデータが送信されると、中継機3dからブロードキャストで送信されたデータが中継機3a,3bで受信される。中継機3aは、送信先が確定していないので、中継機3dから受信した測定データを含めた送信データをブロードキャストで送信する(図5の処理T36)。一方、中継機3bは送信先が親機2に確定しているので、中継機3bは、中継機3dから受信した測定データを含めた送信データを、親機2に宛ててユニキャストで送信する(図5の処理T19)。
ここで、親機2は、下位ノードからブロードキャストでデータを受信した場合、下位ノードからユニキャストでデータを受信した場合に比べて、ACKを返送するまでのウエイト時間を長くしている。したがって、親機2は、ユニキャストでデータを送信してきた中継機3b、すなわち通信経路が確定している中継機3bに対して、優先的にACKを返信できる(図5の処理T20)。
なお、中継機3においても、下位ノード(他の中継機3)からブロードキャストでデータを受信した場合、下位ノードからユニキャストでデータを受信した場合に比べて、ACKを返送するまでのウエイト時間を長くしている。したがって、中継機3も、ユニキャストでデータを送信してきた下位の中継機3、すなわち通信経路が確定している下位の中継機3に対して、優先的にACKを返信できる。
また、本実施形態の無線通信システムにおいて、ブロードキャストで送信されたデータを親機2が受信した場合に親機2がACKを返信するまでのウエイト時間が、ブロードキャストで送信されたデータを中継機3が受信した場合に中継機3がACKを返信するまでのウエイト時間よりも短い時間に設定されることも好ましい。図1(a)に示すように、中継機3bがブロードキャストでデータを送信すると(処理T9)、中継機3bから送信されたデータは親機2だけではなく、他の中継機3a,3c〜3fにも受信される。そのため、他の中継機3a,3c〜3fからも中継機3bにACKが返送されることになる。ここで、親機2は、中継機3に比べて短いウエイト時間でACKを返信するので、他の中継機3に優先して、親機2からのACKが送信元の中継機3bに返信されることになり、通信経路を決定するまでの時間を短縮できる。
また、子機1から親機2までの通信経路が確定した後に、何らかの通信トラブルが発生して通信が不能になる場合があるが、本実施形態の無線通信システムでは以下のようにして通信経路を再構築している。子機1および中継機3は、それぞれ、親機2までの通信経路が確立した状態で、通信経路における上位ノードへのデータ送信が不能になると、上位ノードへユニキャストでデータを再送信する。子機1および中継機3は、それぞれ、データ送信に再び失敗した場合は、ブロードキャストでデータを送信して、親機2への通信経路を再構築する。
図6(a)(b)はこの通信手順を説明する説明図である。子機1から中継機3eと中継機3bとを経由して親機2にユニキャストでデータを送信している場合に、中継機3eと中継機3bとの間の通信が不通になった場合、先ず、中継機3eは中継機3bにユニキャストでデータを再送信する(図6(a)の処理T37)。ここで、中継機3bの不具合、或いは、通信環境の悪化などの原因で、中継機3eが中継機3bとの通信に再度失敗した場合、中継機3eは、通信経路を再構築するために、送信データをブロードキャストで送信する(図6(b)の処理T38)。中継機3eからブロードキャストで送信された信号は中継機3a,3cによって受信され、中継機3a,3cから送信元の中継機3eにACKが返信される(図6(b)の処理T39,T40)。中継機3eからの送信データを受信した中継機3a,3cは、それぞれ、測定データをブロードキャストで送信する(図6(b)の処理T41,T42)。何れかの中継機3a,3cから送信されたデータが親機2に受信されると、親機2は最終宛先情報のフラグを立てたACKを送信元の中継機3に送信する。そして、子機1からデータが送信される毎に、最終宛先情報のフラグを立てたACKがより下位のノードへと順次送信され、新しい通信経路が構築される。
また、本実施形態の無線通信システムにおいて、以下のような通信手順を採用することも好ましい。子機1または中継機3は、送信先のノードを決定する場合に、上位ノードからACKを受信したとしても、このACKの受信信号強度が所定の閾値未満であれば、このACKを返信した上位ノードを送信先のノードとはしない。そして、子機1または中継機3は、この上位ノードを送信先の候補から除外する。
図7はこの通信手順を説明する説明図である。通信経路が確定していない状態で、中継機3dが、子機1から送信された測定データを受信し、この測定データをもとに作成した送信データをブロードキャストで送信すると、中継機3dが送信したデータは中継機3a,3b,3eによって受信される。その後、親機2の通信圏内にある中継機3bが、測定データをブロードキャストで送信すると(図7の処理T19)、この測定データは親機2によって受信され、親機2から最終宛先情報を付加したACKが送信元の中継機3bに返信される。ここで、中継機3bは、ACKに付加された最終宛先情報のフラグをもとに親機2からの返信と判断し、受信したACKの受信信号強度(RSSI:Received Signal Strength Indicator)と所定の閾値との高低を比較する。受信信号強度が閾値未満であれば、中継機3bは、ACKを返信した親機2を送信先のノードとしない。そして、中継機3bは、受信信号強度が閾値未満となるACKを返信した親機2を、送信先の候補から除外する。このように、受信信号強度が閾値未満であれば送信先の候補から除外されるので、受信信号強度が閾値よりも高いノードが送信先として設定されることになり、安定した通信が行えることになる。
また本実施形態の無線通信システムにおいて、中継機3は、上位ノードへのデータ送信に失敗した場合、次回、下位ノードからのデータを受信すると、下位ノードにACKを返信する際に、上位ノードへの通信が不通であることを下位ノードに通知してもよい。上位ノードとの通信が不通であることを通知された下位ノード(子機1又は下位側の中継機3)は、親機2への通信に何らかの不具合が発生していると判断し、例えば送信間隔を長めに設定することで、送信回数を減らして、電力消費を低減する。
また本実施形態において、親機2および中継機3は、下位ノード(子機1または中継機3)からデータを受信した場合に、同一のデータに対するACKが他のノードから下位ノードへ返信されていれば、下位ノードへACKを返信しないことも好ましい。
図8はこの通信手順を説明する説明図である。通信経路が確定していない状態で、子機1が親機2への送信データをブロードキャストで送信した場合、この送信データは子機1の通信圏内にある中継機3d,3e,3fによって受信される。中継機3d,3e,3fは、子機1からの送信データを受信すると、中継機毎にランダムな時間に設定されるウエイト時間が経過した後に、ACK信号を返信するのであるが、同一の送信データに対するACKが他のノードから返信されていれば、ACKの返信を行わない。
中継機3d,3e,3fは、送信データを受信した後も、ウエイト時間が経過するまで受信状態を継続しており、中継機3eがACKを返信すると(図8の処理T43)、中継機3eが返信したACKは他の中継機3d,3fによっても受信される。ここで、ACKには受信したデータのシーケンス番号が含まれており、中継機3d,3fのMCU30は、受信したACK内のシーケンス番号から、同一の送信データに対するACKが他の中継機3eから送信されたと判断し、ACKの返信を行わない。これにより、一つの送信データに対して返信されるACKが1つで済むから、ACKの返信数を減らして、送信データが衝突する可能性を低下させることができる。
また、本実施形態の無線通信システムにおいて、中継機3は、以前に送信したデータと同じデータを再度受信した場合、再度受信したデータは破棄して、送信元ノードにACKを返信することも好ましい。
通信経路が未確定の場合、中継機3は、ブロードキャストでデータを送信している。そのため、ある中継機3が以前に送信したデータが他の中継機3で受信され、他の中継機3がこのデータをブロードキャストで送信することで、中継機3が以前に送信したデータを再度受信する可能性がある。例えば図9(a)(b)に示すように、中継機3eがブロードキャストでデータを送信すると(処理T44)、この送信データを受信した中継機3aがブロードキャストでデータを送信するため(処理T45)、中継機3eは送信したのと同じデータを受信する。この場合、中継機3eは、送信元の他の中継機3aにACKを返信し(処理T46)、受信したデータは破棄している。これにより、送信元の他の中継機3aは、ACKが返信されることからデータ送信に成功したことを判断できる。また、以前に送信したデータを再度受信した中継機3eは受信したデータを破棄するから、同じデータが再び中継機3から送信されることはなく、通信量を減らして、信号が衝突する可能性を低減できる。
ところで、上述したような無線通信システムにおいて、何れかの中継機3に例えば電力メータが接続されており、親機2から電力メータの測定値を取得したい場合には、以下のようにして親機2と電力メータが接続された中継機3との間の通信経路が構築される。
この場合の通信処理を図10に基づいて説明する。図10の例では中継機3fに電力メータ4が接続されているものとする。
親機2は、電力メータ4が接続されている中継機3までの通信経路が不明なため、電力メータ4の識別IDを指定して測定値の返信を要求する要求信号をブロードキャストで送信する(図10の処理T50)。親機2からブロードキャストで送信された要求信号は、親機2の通信圏内にある中継機3a,3b,3cによって受信される。親機2からの要求信号を受信した中継機3cは、送信元の親機2にACKを返信した後(処理T51)、要求信号をブロードキャストで送信する(処理T52)。他の中継機3a,3bも、中継機3cと同様、送信元の親機2にACKを返信した後、要求信号をブロードキャストで送信する。中継機3cからブロードキャストで送信された要求信号は、電力メータ4が接続された中継機3fによって受信される。中継機3fは、要求信号に付加された電力メータ4の識別IDをもとに、自機に接続された電力メータ4の測定値を親機2が要求していると判断し、電力メータ4の測定値を、送信元の中継機3cにユニキャストで返信する(処理T53)。中継機3fは、中継機3cに返信するデータに、電力メータ4と通信可能であることを示す最終宛先情報のフラグを付加して返信する。このデータを受信した中継機3cは、データに付加された最終宛先情報のフラグをもとに、中継機3fが電力メータ4と通信可能であると判断し、電力メータ4の測定値を取得する場合の送信先を中継機3fに設定する。また中継機3cは、中継機3fからデータ(電力メータ4の測定値)を受信すると、このデータをブロードキャストで返信する(処理T54)。中継機3cからブロードキャストで返信されたデータは、中継機3cの通信圏内にある親機2で受信されるので、親機2は、電力メータ4の測定値を取得することができる。
その後、親機2が、電力メータ4の識別IDを指定して測定値の返信を要求する要求信号をブロードキャストで再び送信すると、この要求信号を受信した中継機3cは、最終宛先情報のフラグを付加したACKを親機2へ返信する。これにより、親機2は、中継機3cからのACKに付加された最終宛先情報をもとに、電力メータ4が接続された中継機3fまでの通信経路の情報を取得でき、次回からはユニキャストで中継機3cに要求信号を送信して、電力メータ4の測定値を取得することができる。
なお、図10に示すような通信処理を行う無線通信システムでも、親機2及び中継機3は、下位ノードからデータを受信した場合に、同一のデータに対するACKが他のノードから下位ノードへ返信されていれば、下位ノードへACKを返信しないことも好ましい。
例えば、電力メータ4が接続された中継機3fと親機2との間の通信経路が確定していない状態で、親機2が測定データの要求信号をブロードキャストで送信した場合、この送信データは親機2の通信圏内にある中継機3a,3b,3cによって受信される。中継機3a,3b,3cは、親機2からの要求信号を受信すると、中継機毎にランダムな時間に設定されるウエイト時間が経過した後に、ACK信号を返信するのであるが、同一の送信データに対するACKが他のノードから返信されれば、ACKの返信を行わない。また、中継機3cが、中継機3fから返送された測定データをブロードキャストで送信する場合も、中継機3cからブロードキャストで返送された測定データは、中継機3cの通信圏内にある親機2及び中継機3b,3eで受信される。ここで、親機2及び中継機3b,3eは、中継機3cからの送信データを受信するとACK信号を返信するのであるが、同一の送信データに対するACKが他のノードから返信されていれば、ACKの返信を行わない。これにより、中継機から返信されるACKの数が減少するから、通信量が減少し、送信データが衝突する確率が低下する。