(57)【特許請求の範囲】
【請求項１】
無線通信システムを構成するノードとして、無線通信機能を有する送信元の第１ノードと、無線通信機能を有する送信先の第２ノードと、前記第１ノードと前記第２ノードとの間の無線通信を中継する機能をそれぞれ有する複数台の第３ノードとを備え、
前記第１ノードから前記第２ノードまでデータを送信する通信経路が確立していない状態では、前記第１ノード及び前記第３ノードの各々はブロードキャストでデータを送信するように構成され、
前記通信経路の少なくとも一部で送信先ノードが決まると、前記第１ノード及び前記第３ノードのうち送信先ノードが決まったノードは、前記送信先ノードへユニキャストでデータを送信するように構成され、
前記第３ノードは、データ受信時に次段のホップ数を付加したＡＣＫを送信元ノードに送信するように構成され、
前記通信経路における下位ノードは、前記下位ノードが送信したデータに対して第１の上位ノードから前記下位ノードに宛てて送信された第１ＡＣＫを受信すると、前記第１ＡＣＫに付加されたホップ数をもとに、送信先ノードを前記第１の上位ノードとした場合の第１ホップ数を求め、
前記下位ノードは、前記第１ＡＣＫの受信後に前記下位ノードが送信したデータに対して第２の上位ノードから他のノードに宛てて送信された第２ＡＣＫを受信すると、前記第２ＡＣＫに付加されたホップ数をもとに、送信先ノードを前記第２の上位ノードとした場合の第２ホップ数を求め、
前記下位ノードは、前記第１ホップ数よりも前記第２ホップ数の方が少なければ、前記第２の上位ノードを送信先ノードに決定するように構成された
ことを特徴とする無線通信システム。
【請求項２】
前記第２ノードは、データ受信時に次段のホップ数を付加したＡＣＫを送信元ノードに送信するように構成され、
前記第３ノードは、上位ノードからホップ数が付加されたＡＣＫを受信すると、前記ＡＣＫに付加されたホップ数から次段のホップ数を求め、次回のデータ受信時に前記次段のホップ数を付加したＡＣＫを送信元ノードに送信するように構成された
ことを特徴とする請求項１に記載の無線通信システム。
【請求項３】
前記下位ノードが送信先ノードを決定していない状態で、前記下位ノードが前記第１ＡＣＫを受信した場合に、前記第１ＡＣＫにホップ数が付加されていれば、前記下位ノードは前記第１の上位ノードを送信先ノードに決定し、
前記下位ノードが前記第１ＡＣＫを受信した後に前記第２ＡＣＫを受信した場合に、前記第２ＡＣＫにホップ数が付加されていれば、前記下位ノードは前記第１ホップ数と前記第２ホップ数との大小を比較し、
前記第１ホップ数よりも前記第２ホップ数の方が少なければ、前記下位ノードは送信先ノードを前記第１の上位ノードから前記第２の上位ノードに変更するように構成された
ことを特徴とする請求項２に記載の無線通信システム。
【請求項４】
前記下位ノードが送信先ノードを前記第１の上位ノードに決定している状態で、
前記下位ノードが送信したデータに対して前記第２の上位ノードから他のノード宛てに送信された前記第２ＡＣＫを前記下位ノードが受信した場合に、前記第２ＡＣＫにホップ数が付加されていれば、前記下位ノードは前記第１ホップ数と前記第２ホップ数との大小を比較し、
前記第１ホップ数よりも前記第２ホップ数の方が少なければ、前記下位ノードは送信先ノードを前記第１の上位ノードから前記第２の上位ノードに変更するように構成された
ことを特徴とする請求項２又は３に記載の無線通信システム。
【請求項５】
前記下位ノードは、送信先ノードを前記第１の上位ノードから前記第２の上位ノードに変更する場合、前記第１の上位ノードを送信先の候補ノードとしてメモリに保存するように構成された
ことを特徴とする請求項３又は４に記載の無線通信システム。
【請求項６】
前記下位ノードは、送信先ノードを決定している状態で、前記送信先ノードへのデータ送信に失敗すると、前記送信先ノードへユニキャストでデータを再送信するように構成され、
前記下位ノードは、前記送信先ノードへの再送信でもデータ送信に失敗すると、前記メモリに保存されている前記候補ノードにユニキャストでデータを送信するように構成され、
前記下位ノードは、前記候補ノードの全てでデータ送信に失敗すると、ブロードキャストでデータを送信して、前記通信経路を再構築するように構成された
ことを特徴とする請求項５に記載の無線通信システム。
【請求項７】
前記第３ノードは、他のノードからブロードキャストで送信されたデータを受信した場合、前記データに対するＡＣＫを送信する前に、同一の前記データに対するＡＣＫを他の前記第３ノードが送信していれば、前記データに対するＡＣＫを送信しないように構成された
ことを特徴とする請求項１〜６の何れか１項に記載の無線通信システム。
【請求項８】
前記第３ノードは、他のノードからブロードキャストで送信されたデータを受信した場合、前記データに対するＡＣＫを送信する前に、同一の前記データに対するＡＣＫを前記第２ノードが送信していれば、前記データに対するＡＣＫを送信しないように構成された
ことを特徴とする請求項１〜７の何れか１項に記載の無線通信システム。
【請求項９】
前記第３ノードは、他のノードからブロードキャストで送信されたデータを受信して、前記データに対するＡＣＫを最初に送信した場合、ＡＣＫの返送時間よりも長いウェイト時間が経過した後に、上位ノードへ前記データを中継送信するように構成された
ことを特徴とする請求項１〜８の何れか１項に記載の無線通信システム。
【請求項１０】
前記通信経路が確定すると、前記第１ノード及び前記第３ノードの各々は、次に上位ノードへデータを送信する場合に、個々のノードに割り当てられた識別情報を前記データに付加して送信するように構成された
ことを特徴とする請求項１〜９の何れか１項に記載の無線通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、無線通信システムに関し、より詳細には、ノード間の無線通信を中継用のノードで中継伝送する無線通信システムに関する。
【背景技術】
【０００２】
従来、基地局ノード装置と、複数台の子ノード装置との間で、マルチホップで無線通信を行うネットワークシステムが提案されている（例えば特許文献１参照）。
【０００３】
このネットワークシステムでは、複数台ある子ノード装置のそれぞれに計測機器が接続されている。基地局ノード装置が、ある計測機器に接続されている子ノード装置にデータを要求する場合に、この子ノード装置との接続関係が不明であれば、データを要求する要求パケットを、送信先となる子ノード装置を特定することなくブロードキャストで送信する。
【０００４】
子ノード装置が、基地局ノード装置からの要求パケットを受信した場合に、要求パケットの送信先アドレスが機器ＩＤと一致しなければ、子ノード装置は中継ノードとして機能し、要求パケットを他の子ノード装置にブロードキャスト送信する。このように、子ノード装置による要求パケットの受信及びブロードキャスト送信が繰り返されることで、いずれ、要求パケットは送信先の計測機器が接続されている子ノード装置に受信される。送信先の計測機器に接続された子ノード装置は、基地局ノード装置からの要求パケットに対する応答パケットを作成し、送信先となるノード装置を特定してユニキャストで送信する。ここで、応答パケットのヘッダには、応答パケットを作成した子ノード装置の機器ＩＤと、基地局ノード装置までの通信経路が含まれており、子ノード装置による受信およびユニキャスト送信が繰り返されることで、最終的に基地局ノード装置まで送信される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−７４３５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１のネットワークシステムでは、基地局ノード装置から特定の子ノード装置への要求パケットをブロードキャスト送信すると、ノード間で中継処理が行われることで、送信先の子ノード装置と基地局ノード装置の間の接続関係が特定される。そのため、送信先の子ノード装置までの通信経路が特定されると、ホップ数がより少ない通信経路が他にあるにも関わらず、最初に決定した通信経路で以後の通信が行われる可能性があった。
【０００７】
本発明は上記課題に鑑み、ホップ数がより少なくなるように送信先ノードを設定できる無線通信システムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の無線通信システムは、無線通信システムを構成するノードとして、無線通信機能を有する送信元の第１ノードと、無線通信機能を有する送信先の第２ノードと、前記第１ノードと前記第２ノードとの間の無線通信を中継する機能をそれぞれ有する複数台の第３ノードとを備え、前記第１ノードから前記第２ノードまでデータを送信する通信経路が確立していない状態では、前記第１ノード及び前記第３ノードの各々はブロードキャストでデータを送信するように構成され、前記通信経路の少なくとも一部で送信先ノードが決まると、前記第１ノード及び前記第３ノードのうち送信先ノードが決まったノードは、前記送信先ノードへユニキャストでデータを送信するように構成され、前記第３ノードは、データ受信時に次段のホップ数を付加したＡＣＫを送信元ノードに送信するように構成され、前記通信経路における下位ノードは、前記下位ノードが送信したデータに対して第１の上位ノードから前記下位ノードに宛てて送信された第１ＡＣＫを受信すると、前記第１ＡＣＫに付加されたホップ数をもとに、送信先ノードを前記第１の上位ノードとした場合の第１ホップ数を求め、前記下位ノードは、前記第１ＡＣＫの受信後に前記下位ノードが送信したデータに対して第２の上位ノードから他のノードに宛てて送信された第２ＡＣＫを受信すると、前記第２ＡＣＫに付加されたホップ数をもとに、送信先ノードを前記第２の上位ノードとした場合の第２ホップ数を求め、前記下位ノードは、前記第１ホップ数よりも前記第２ホップ数の方が少なければ、前記第２の上位ノードを送信先ノードに決定するように構成されることを特徴とする。
【０００９】
この無線通信システムにおいて、前記第２ノードは、データ受信時に次段のホップ数を付加したＡＣＫを送信元ノードに送信するように構成され、前記第３ノードは、上位ノードからホップ数が付加されたＡＣＫを受信すると、前記ＡＣＫに付加されたホップ数から次段のホップ数を求め、次回のデータ受信時に前記次段のホップ数を付加したＡＣＫを送信元ノードに送信するように構成されてもよい。
【００１０】
この無線通信システムにおいて、前記下位ノードが送信先ノードを決定していない状態で、前記下位ノードが前記第１ＡＣＫを受信した場合に、前記第１ＡＣＫにホップ数が付加されていれば、前記下位ノードは前記第１の上位ノードを送信先ノードに決定し、前記下位ノードが前記第１ＡＣＫを受信した後に前記第２ＡＣＫを受信した場合に、前記第２ＡＣＫにホップ数が付加されていれば、前記下位ノードは前記第１ホップ数と前記第２ホップ数との大小を比較し、前記第１ホップ数よりも前記第２ホップ数の方が少なければ、前記下位ノードは送信先ノードを前記第１の上位ノードから前記第２の上位ノードに変更するように構成されてもよい。
【００１１】
この無線通信システムにおいて、前記下位ノードが送信先ノードを前記第１の上位ノードに決定している状態で、前記下位ノードが送信したデータに対して前記第２の上位ノードから他のノード宛てに送信された前記第２ＡＣＫを前記下位ノードが受信した場合に、前記第２ＡＣＫにホップ数が付加されていれば、前記下位ノードは前記第１ホップ数と前記第２ホップ数との大小を比較し、前記第１ホップ数よりも前記第２ホップ数の方が少なければ、前記下位ノードは送信先ノードを前記第１の上位ノードから前記第２の上位ノードに変更するように構成されてもよい。
【００１２】
この無線通信システムにおいて、前記下位ノードは、送信先ノードを前記第１の上位ノードから前記第２の上位ノードに変更する場合、前記第１の上位ノードを送信先の候補ノードとしてメモリに保存するように構成されてもよい。
【００１３】
この無線通信システムにおいて、前記下位ノードは、送信先ノードを決定している状態で、前記送信先ノードへのデータ送信に失敗すると、前記送信先ノードへユニキャストでデータを再送信するように構成され、前記下位ノードは、前記送信先ノードへの再送信でもデータ送信に失敗すると、前記メモリに保存されている前記候補ノードにユニキャストでデータを送信するように構成され、前記下位ノードは、前記候補ノードの全てでデータ送信に失敗すると、ブロードキャストでデータを送信して、前記通信経路を再構築するように構成されてもよい。
【００１４】
この無線通信システムにおいて、前記第３ノードは、他のノードからブロードキャストで送信されたデータを受信した場合、前記データに対するＡＣＫを送信する前に、同一の前記データに対するＡＣＫを他の前記第３ノードが送信していれば、前記データに対するＡＣＫを送信しないように構成されてもよい。
【００１５】
この無線通信システムにおいて、前記第３ノードは、他のノードからブロードキャストで送信されたデータを受信した場合、前記データに対するＡＣＫを送信する前に、同一の前記データに対するＡＣＫを前記第２ノードが送信していれば、前記データに対するＡＣＫを送信しないように構成されてもよい。
【００１６】
この無線通信システムにおいて、前記第３ノードは、他のノードからブロードキャストで送信されたデータを受信して、前記データに対するＡＣＫを最初に送信した場合、ＡＣＫの返送時間よりも長いウェイト時間が経過した後に、上位ノードへ前記データを中継送信するように構成されてもよい。
【００１７】
この無線通信システムにおいて、前記通信経路が確定すると、前記第１ノード及び前記第３ノードの各々は、次に上位ノードへデータを送信する場合に、個々のノードに割り当てられた識別情報を前記データに付加して送信するように構成されてもよい。
【発明の効果】
【００１８】
本発明の無線通信システムでは、下位ノードは、他のノードに宛てて送信されたＡＣＫも受信している。下位ノードは、第２の上位ノードから他のノードに宛てて送信された第２ＡＣＫを受信した結果、第２の上位ノードの方が第１の上位ノードよりもホップ数が少なくなると判断すると、送信先ノードを第２の上位ノードに決定する。したがって、下位ノードは、ホップ数がより少なくなるように送信先ノードを設定することができる。
【図面の簡単な説明】
【００１９】
【図１】実施形態の通信手順を説明する通信経路図である。
【図２】実施形態の子機のブロック図である。
【図３】実施形態の親機のブロック図である。
【図４】実施形態の中継機のブロック図である。
【図５】実施形態の通信手順を説明する通信経路図である。
【図６】実施形態の通信手順を説明する通信経路図である。
【図７】実施形態の通信手順を説明する通信経路図である。
【図８】実施形態の通信手順を説明する通信経路図である。
【図９】実施形態の通信手順を説明する通信経路図である。
【図１０】実施形態の通信手順を説明する通信経路図である。
【図１１】実施形態の通信手順を説明する通信経路図である。
【発明を実施するための形態】
【００２０】
以下、本発明に係る無線通信システムの実施形態について図面を参照して説明する。ただし、以下に説明する構成は本発明の一例に過ぎない。本発明は、以下の実施形態に限定されず、本発明に係る技術的思想を逸脱しない範囲であれば、設計等に応じて種々の変更が可能である。
【００２１】
図１に本実施形態の無線通信システムの概略構成を示す。本実施形態では、無線通信システムを構成するノードとして、送信元の子機１０（第１ノード）と、送信先の親機２０（第２ノード）と、子機１０と親機２０の間の無線通信を中継する複数台（図示例では例えば６台）の中継機３０（第３ノード）とを備える。なお、本実施形態の無線通信システムは６台の中継機３０を備えているが、中継機３０の台数は６台に限定されず、信号の中継に必要な台数があればよい。また、本実施形態の無線通信システムはデータの送信元である子機１０を１台備えているが、子機１０の台数は１台に限定されず、２台以上でもよく、必要に応じて適宜変更が可能である。また、本実施形態では子機１０から親機２０にデータを送信しているが、中継機３０に所定の物理量を測定するセンサが接続されている場合、親機２０が中継機３０に対してセンサの測定データを要求する要求データを送信してもよい。この場合、親機２０が要求データを送信する送信元の第１ノードとなり、測定データを要求する対象の中継機３０が送信先の第２ノードとなる。
【００２２】
子機１０と親機２０と中継機３０とは、それぞれ、無線免許が不要の無線通信機能を備えている。無線免許が不要の通信方式としては例えば特定小電力無線方式がある。なお、子機１０と親機２０と中継機３０とが備える無線通信機能の通信方式はＩＥＥＥ（The Institute of Electrical and Electronics Engineers, Inc.）８０２．１５．１の規格に準拠した通信方式でもよい。また、子機１０と親機２０と中継機３０とが備える無線通信機能の通信方式は、ＩＥＥＥ８０２．１１の規格に準拠した通信方式でもよい。
【００２３】
ここで、子機１０と親機２０とが互いの通信圏内にあり、子機１０と親機２０との間の通信環境が良好であれば、子機１０と親機２０との間で無線通信が直接行われる。しかしながら、子機１０と親機２０とが直接通信できない場合や、通信可能であっても通信環境が良好でない場合、子機１０と親機２０との間では中継機３０を介して無線通信が行われる。そのため、複数台の中継機３０は、子機１０と親機２０の間の無線通信を中継できるように、隣接する他の中継機３０が通信圏内に存在するように配置されており、子機１０と親機２０と複数台の中継機３０で中継通信網が構築されている。
【００２４】
子機１０と親機２０と複数台の中継機３０には、ネットワーク内で個々のノードを識別するために個別のノード番号（識別情報）が割り当てられている。本実施形態の無線通信システムでは、子機１０のノード番号が「１１」に設定され、親機２０のノード番号が「０」に設定されている。また、６台の中継機３０の各々に「１」〜「６」のノード番号が設定されている。なお、図１及び図５〜図１１において、子機１０、親機２０、中継機３０のそれぞれを示す四角内の数字は、各ノードに割り当てられたノード番号を示している。
【００２５】
次に、子機１０と親機２０と中継機３０の構成を図２〜図４に基づいて説明する。
【００２６】
子機１０は、図２に示すように、ＭＣＵ（Micro Control Unit）１００と、測定部１０１と、記憶部１０２と、無線通信部１０３と、アンテナ１０４と、操作部１０５と、表示部１０６と、電源部１０７と、有線通信部１０８とを備えている。子機１０は、所定の送信間隔が経過するごとに、測定部１０１によって測定されたデータを親機２０に無線送信する。
【００２７】
測定部１０１は、例えば周囲温度に応じて電気抵抗が変化するサーミスタを備え、サーミスタの抵抗値を測定することによって周囲温度を測定する。なお、測定部１０１の測定対象は温度に限定されず、周囲の湿度や照度でもよいし、測定対象の電気機器による消費電力でもよく、使用目的や用途に応じた物理量を測定すればよい。
【００２８】
記憶部１０２は、例えばＥＥＰＲＯＭ（electrically erasable and programmable read-only memory）やフラッシュメモリのような電気的に書き換え可能な不揮発性メモリで構成されている。記憶部１０２は、ＭＣＵ１００によってデータの書き込み及び読み出しが行われる。記憶部１０２は、子機１０に割り当てられた識別情報（例えばアドレスやノード番号）や、測定部１０１による測定データや、送信先ノードの情報や、候補ノードの情報や、通信経路の情報などを記憶する。
【００２９】
無線通信部１０３は例えば特定小電力無線の通信方式に適合した無線モジュールからなり、アンテナ１０４を介して無線信号の送信又は受信を行う。また、無線通信部１０３は、受信信号の受信信号強度を測定する機能も備える。
【００３０】
有線通信部１０８は、例えば設定器（図示せず）などの機器に通信線を介して接続され、有線通信方式で通信を行う。
【００３１】
操作部１０５は、例えば測定部１０１による測定範囲の下限値及び上限値や、測定間隔や、測定データの送信間隔を設定するために用いられる。また、操作部１０５は、記憶部１０２に保存する候補ノードの数の上限などを設定するためにも使用される。
【００３２】
表示部１０６は例えば１個又は複数個の発光ダイオードからなり、ＭＣＵ１００によって点灯／消灯が制御される。
【００３３】
電源部１０７は例えば電池を電源として、子機１０の内部回路に動作に必要な電力を供給する。
【００３４】
ＭＣＵ１００は、組み込みのプログラムを実行することによって、子機１０の全体的な制御を行う。ＭＣＵ１００は、予め設定されたサンプリング間隔でスリープモードから起動し、測定部１０１によって測定された測定データを記憶部１０２に記憶させる。またＭＣＵ１００は、上記のサンプリング間隔よりも長い送信間隔（例えば数秒から数分の間隔）が経過するごとに、記憶部１０２に記憶された測定データを無線通信部１０３から無線送信させる。ＭＣＵ１００は、測定部１０１にデータを測定させる期間と、無線通信部１０３に測定データを無線送信させる期間とを除いては、子機１０の状態をスリープ状態として、子機１０の消費電力を低減している。
【００３５】
親機２０は、図３に示すように、ＭＣＵ２００と、記憶部２０１と、無線通信部２０２と、アンテナ２０３と、有線通信部２０４と、操作部２０５と、表示部２０６と、電源部２０７とを備えている。
【００３６】
ＭＣＵ２００は、組込みのプログラムを実行することによって、親機２０の全体的な制御を行う。
【００３７】
記憶部２０１は、例えばＥＥＰＲＯＭやフラッシュメモリのような電気的に書き換え可能な不揮発性メモリで構成されている。記憶部２０１は、ＭＣＵ２００によってデータの書き込み及び読み出しが行われる。記憶部２０１は、親機２０に割り当てられた識別情報（例えばアドレスやノード番号）や、子機１０から収集した測定データや、通信経路の情報などを記憶する。
【００３８】
無線通信部２０２は例えば特定小電力無線の通信方式に適合した無線モジュールからなり、アンテナ２０３を介して無線信号の送信又は受信を行う。また、無線通信部２０２は、受信信号の受信信号強度を測定する機能も備える。
【００３９】
有線通信部２０４は、例えばサーバ（図示せず）に通信線を介して接続されており、子機１０から収集したデータを有線通信方式でサーバに送信する。
【００４０】
操作部２０５は、例えば親機２０の動作設定を行うために使用される。また、操作部２０５は、候補ノードの数の上限などを設定するためにも使用される。
【００４１】
表示部２０６は例えば１個又は複数個の発光ダイオードからなり、ＭＣＵ２００によって点灯／消灯が制御される。
【００４２】
電源部２０７は、例えば商用電源のような外部電源から電力の供給を受け、親機２０の内部回路に動作に必要な電力を供給する。
【００４３】
中継機３０は、図４に示すように、ＭＣＵ３００と、記憶部３０１と、無線通信部３０２と、アンテナ３０３と、操作部３０４と、表示部３０５と、電源部３０６と、有線通信部３０７とを備える。この中継機３０は、子機１０と親機２０との間の無線通信を中継する機能を有している。
【００４４】
ＭＣＵ３００は、組込みのプログラムを実行することによって、中継機３０の全体的な制御を行う。
【００４５】
記憶部３０１は、例えばＥＥＰＲＯＭやフラッシュメモリのような電気的に書き換え可能な不揮発性メモリで構成されている。記憶部３０１は、ＭＣＵ３００によってデータの書き込み及び読み出しが行われる。記憶部３０１は、自機に割り当てられた識別情報（例えばアドレスやノード番号）や、無線通信部３０２が受信したデータや、無線通信部３０２が過去に送信したデータや、送信先ノードの情報や、候補ノードの情報や、通信経路の情報などを記憶する。
【００４６】
無線通信部３０２は例えば特定小電力無線の通信方式に適合した無線モジュールからなり、アンテナ３０３を介して無線信号の送信又は受信を行う。また、無線通信部３０２は、受信信号の受信信号強度を測定する機能も備える。
【００４７】
有線通信部３０７は、例えば設定器（図示せず）などの機器に通信線を介して接続され、有線通信方式で通信を行う。
【００４８】
操作部３０４は、例えば中継機３０の動作設定を行うために使用される。また、操作部３０４は、候補ノードの数の上限などを設定するためにも使用される。
【００４９】
表示部３０５は例えば１個又は複数個の発光ダイオードからなり、ＭＣＵ３００によって点灯／消灯が制御される。
【００５０】
電源部３０６は例えば電池を電源として、中継機３０の内部回路に動作に必要な電力を供給する。中継機３０は電池を電源としているので、中継機３０を自由な場所に設置して使用することができる。なお、電源部３０６は、商用電源などの外部電源から電力の供給を受けて、中継機３０の内部回路に動作に必要な電力を供給してもよい。
【００５１】
次に、この無線通信システムにおいて、送信元の子機１０と送信先の親機２０との間の通信経路が確立されていない状態で、子機１０から親機２０へデータ（例えば測定データなど）を送信する通信手順について図１、図５、及び図６を参照して説明する。なお、子機１０と、親機２０と、複数台の中継機３０とには、それぞれ別個のノード番号が割り当てられており、以下では複数台の中継機３０を区別して説明するために、ノード番号を使用して説明する。例えば、ノード番号が「２」の中継機３０は２番の中継機３０と表記し、ノード番号が「１１」の子機１０は１１番の子機１０と表記する。また、図１及び図５〜図１１における矢印線はノード間でのデータの伝送処理を示し、実線の矢印線はデータの送信処理を、点線の矢印線はＡＣＫの送信処理を示している。
【００５２】
子機１０から親機２０までデータを送信する通信経路が確立されていない状態で、子機１０が測定データを１回目に送信する場合の通信手順について図１を参照して説明する。本実施形態の無線通信システムでは、子機１０及び中継機３０の各々は、送信先ノードが決定されていない状態ではデータをブロードキャストで送信し、送信先ノードが決定されると送信先ノードに対してユニキャストでデータを送信する。
【００５３】
子機１０のＭＣＵ１００は、予め設定された送信間隔が経過するごとにスリープモードから起動し、記憶部１０２から送信対象の測定データ（例えば、前回のデータ送信後に測定部１０１で測定された測定データ）を読み出す。ＭＣＵ１００は、測定データとシーケンス番号とを格納し、宛先アドレスをブロードキャスト用に割り当てた番号（以下、ブロードキャスト番号という）、送信元アドレス及びデータ元アドレスを自機のノード番号とした送信データを作成する。なお、シーケンス番号は、子機１０から送信される送信データに割り付けられた個別の番号であり、このシーケンス番号を用いて送信データを識別することができる。そして、ＭＣＵ１００は、作成した送信データを、無線通信部１０３からブロードキャストで送信させる（図１の処理Ｔ１）。
【００５４】
図１の例では、子機１０の通信圏内にノード番号が４番、５番、６番の３台の中継機３０が存在し、子機１０から送信されたデータは、４番、５番、６番の中継機３０の無線通信部３０２で受信される。４番、５番、６番の中継機３０のＭＣＵ３００は、無線通信部３０２が受信したデータから、測定データとシーケンス番号と宛先アドレスと送信元アドレスとデータ元アドレスを取り出す。本実施形態では、各中継機３０のＭＣＵ３００は、データを受信した場合にＡＣＫ（acknowledgement：肯定応答）を送信するまでの返送時間をランダムな時間に設定している。図１の例では、４番の中継機３０の返送時間が、５番及び６番の中継機３０の返送時間よりも短い時間となっている。そのため、４番の中継機３０のＭＣＵ３００が、５番及び６番の中継機３０よりも早く、返送時間の経過後に無線通信部３０２を制御し、送信元の子機１０に宛ててＡＣＫを送信させる（図１の処理Ｔ２）。子機１０のＭＣＵ１００は、データを送信した後に、上位ノードから送信されてきたＡＣＫを受信すると、所定時間の経過後にスリープモードに切り替わり、消費電力の低減を図る。
【００５５】
４番の中継機３０の通信圏内には５番、６番の中継機３０と子機１０とが存在し、４番の中継機３０が送信したＡＣＫは、子機１０だけでなく、５番及び６番の中継機３０の無線通信部３０２によっても受信される。５番及び６番の中継機３０のＭＣＵ３００は、４番の中継機３０から送信されたＡＣＫに含まれるデータ元アドレス、シーケンス番号などに基づいて、子機１０の送信したデータに対するＡＣＫを４番の中継機３０が送信したと判断する。すなわち、５番及び６番の中継機３０のＭＣＵ３００は、子機１０からの送信データに対して、自機がＡＣＫを送信する前に、他の中継機３０からＡＣＫが送信されたと判断し、子機１０へのＡＣＫの送信を行わず、データの中継送信も行わない。すなわち、中継機３０は、他のノードからブロードキャストで送信されたデータを受信した場合、このデータに対するＡＣＫを送信する前に、同一のデータに対するＡＣＫを他の中継機３０が送信すれば、このデータに対するＡＣＫを送信しなくてもよい。ブロードキャスト送信されたデータを受信した全ての中継機３０のうち、最初にＡＣＫを送信した中継機３０以外はＡＣＫの送信を行わないから、ＡＣＫの送信回数が減少し、送信データの衝突が起こりにくくなる。
【００５６】
４番の中継機３０のＭＣＵ３００は、子機１０からの送信データから、測定データとシーケンス番号と宛先アドレスと送信元アドレスとデータ元アドレスを取り出す。４番の中継機３０のＭＣＵ３００は、送信データから取り出した測定データとシーケンス番号を含め、宛先アドレスをブロードキャスト番号、送信元アドレスを自機のノード番号、データ元アドレスを子機１０のノード番号とした送信データを作成する。そして、４番の中継機３０のＭＣＵ３００は、データの受信時からウェイト時間が経過した時点で、この送信データを無線通信部３０２からブロードキャストで送信させる（図１の処理Ｔ３）。
【００５７】
図１の例では、４番の中継機３０の通信圏内に２番、３番、５番、６番の中継機３０と子機１０とが存在し、４番の中継機３０からブロードキャストで送信されたデータは、２番、３番、５番、６番の中継機３０の無線通信部３０２によって受信される。子機１０は、データ送信後にＡＣＫを受信するとスリープモードに切り替わっているので、４番の中継機３０から送信されたデータは子機１０では受信されない。なお、中継機３０がデータを受信してから受信したデータを中継送信するまでのウェイト時間は、中継機３０がＡＣＫを送信するまでの返送時間（中継機３０ごとにランダムな時間）の最大値よりも長い時間に設定されていてもよい。このようにウェイト時間が設定されていれば、子機１０からのデータを受信した全ての中継機３０がＡＣＫを送信する場合でも、最初にＡＣＫを送信した中継機３０が上位ノードに中継送信するデータが、他の中継機３０から送信されるＡＣＫと衝突しにくくなる。
【００５８】
２番、３番、５番、６番の中継機３０の無線通信部３０２が、４番の中継機３０からの送信データを受信すると、これらの中継機３０のＭＣＵ３００は受信したデータから測定データとシーケンス番号と宛先アドレスと送信元アドレスとデータ元アドレスを取り出す。上述のように、各中継機３０がＡＣＫを送信するまでの返送時間はランダムな時間に設定されており、図１の例では、３番の中継機３０の返送時間が、２番、５番、６番の中継機３０の返送時間よりも短い時間となっている。そのため、３番の中継機３０のＭＣＵ３００が、２番、５番、６番の中継機３０よりも早く、返送時間の経過後に無線通信部３０２を制御して送信元の４番の中継機３０に宛ててＡＣＫを送信する（図１の処理Ｔ４）。
【００５９】
３番の中継機３０から４番の中継機３０へ送信されたＡＣＫは、２番、５番、６番の中継機３０の無線通信部３０２によっても受信される。２番、５番、６番の中継機３０のＭＣＵ３００は、４番の中継機３０からの送信データに対するＡＣＫを別の中継機（この場合は３番の中継機３０）が送信しているので、データの中継送信を行わず、ＡＣＫの送信も行わない。
【００６０】
３番の中継機３０のＭＣＵ３００は、４番の中継機３０からの送信データから、測定データとシーケンス番号と宛先アドレスと送信元アドレスとデータ元アドレスを取り出す。３番の中継機３０のＭＣＵ３００は、送信データから取り出した測定データとシーケンス番号を含め、宛先アドレスをブロードキャスト番号、送信元アドレスを自機のノード番号、データ元アドレスを子機１０のノード番号とした送信データを作成する。そして、３番の中継機３０のＭＣＵ３００は、データの受信時からウェイト時間が経過した時点で、この送信データを無線通信部３０２からブロードキャストで送信させる（図１の処理Ｔ５）。
【００６１】
図１の例では、３番の中継機３０の通信圏内に２番、４番、５番の中継機３０が存在し、３番の中継機３０からブロードキャストで送信されたデータは、２番、４番、５番の中継機３０の無線通信部３０２によって受信される。２番、４番、５番の中継機３０では、無線通信部３０２が３番の中継機３０からの送信データを受信すると、ＭＣＵ３００が無線通信部３０２の受信したデータから測定データとシーケンス番号と宛先アドレスと送信元アドレスとデータ元アドレスを取り出す。
【００６２】
４番の中継機３０のＭＣＵ３００は、データ元アドレスとシーケンス番号とをもとに、自機が以前に送信したデータと判断し、ＡＣＫの送信は行わない。本実施形態では、各中継機３０のＭＣＵ３００は、無線通信部３０２が他のノードからの送信データを受信した場合、送信データに含まれるデータ元アドレスとシーケンス番号とから、自機が以前に送信したデータか否かを判断する。なお、各中継機３０のＭＣＵ３００は、送信データに含まれるデータ元アドレス、シーケンス番号、データ（測定データなど）のうちの複数の項目から、自機が以前に送信したデータか否かを判断してもよい。
【００６３】
２番及び５番の中継機３０のＭＣＵ３００は、それぞれ、データを受信してから返送時間が経過した時点で、無線通信部３０２を制御して送信元の３番の中継機３０に宛ててＡＣＫを送信する。図１の例では、２番の中継機３０の返送時間が、５番の中継機３０の返送時間よりも短い時間となっている。そのため、２番の中継機３０のＭＣＵ３００が、５番の中継機３０よりも早く、返送時間の経過後に無線通信部３０２を制御し、送信元の３番の中継機３０に宛ててＡＣＫを送信させる（図１の処理Ｔ６）。２番の中継機３０から３番の中継機３０に送信されたＡＣＫは５番の中継機３０によっても受信される。５番の中継機３０のＭＣＵ３００は、自機が受信したデータに対するＡＣＫが、他の中継機（この場合は２番の中継機３０）から送信されていると判断し、ＡＣＫの送信を行わず、データの中継処理も行わない。
【００６４】
また２番の中継機３０のＭＣＵ３００は、送信データから取り出した測定データとシーケンス番号を含め、宛先アドレスをブロードキャスト番号、送信元アドレスを自機のノード番号、データ元アドレスを子機１０のノード番号とした送信データを作成する。そして、２番の中継機３０のＭＣＵ３００は、データの受信時からウェイト時間が経過した時点で、この送信データを無線通信部３０２からブロードキャストで送信させる（図１の処理Ｔ７）。
【００６５】
図１の例では、２番の中継機３０の通信圏内に１番及び３番の中継機３０が存在し、２番の中継機３０からブロードキャストで送信されたデータは、１番及び３番の中継機３０の無線通信部３０２によって受信される。１番の中継機３０の無線通信部３０２が、２番の中継機３０からの送信データを受信すると、１番の中継機３０のＭＣＵ３００は、受信したデータから測定データとシーケンス番号と宛先アドレスと送信元アドレスとデータ元アドレスを取り出す。１番の中継機３０のＭＣＵ３００は、データを受信してから返送時間が経過した時点で、無線通信部３０２を制御して送信元の２番の中継機３０に宛ててＡＣＫを送信する（図１の処理Ｔ８）。なお、２番の中継機３０から送信されたデータは３番の中継機３０によっても受信されるが、３番の中継機３０は、自機が送信したデータであると判断し、ＡＣＫの送信やデータの中継処理は行わない。
【００６６】
また、１番の中継機３０のＭＣＵ３００は、２番の中継機３０からの送信データから測定データとシーケンス番号と宛先アドレスと送信元アドレスとデータ元アドレスを取り出す。１番の中継機３０のＭＣＵ３００は、送信データから取り出した測定データとシーケンス番号を含め、宛先アドレスをブロードキャスト番号、送信元アドレスを自機のノード番号、データ元アドレスを子機１０のノード番号とした送信データを作成する。そして、１番の中継機３０のＭＣＵ３００は、データの受信時からウェイト時間が経過した時点で、この送信データを無線通信部３０２からブロードキャストで送信させる（図１の処理Ｔ９）。
【００６７】
図１の例では、１番の中継機３０の通信圏内に親機２０が存在し、１番の中継機３０からブロードキャストで送信されたデータは、親機２０に受信される。
【００６８】
親機２０の無線通信部２０２が、１番の中継機３０からの送信データを受信すると、親機２０のＭＣＵ２００は、受信したデータから測定データとシーケンス番号と宛先アドレスと送信元アドレスとデータ元アドレスを取り出す。親機２０のＭＣＵ２００は、受信した測定データとデータ元アドレスを対応付けて記憶部２０１に記憶させる。
【００６９】
また、親機２０のＭＣＵ２００は、１番の中継機３０から送信データを受信すると、返送時間を設けずに、送信元である１番の中継機３０に最終宛先情報を付加したＡＣＫを送信する（図１の処理Ｔ１０）。最終宛先情報は、子機１０からの最終的な送信先である親機２０と通信可能なことを示す情報である。本実施形態では、最終宛先情報を親機２０までのホップ数としており、１番の中継機３０に対しては親機２０までのホップ数、すなわちデータの「１」を付加したＡＣＫが送信される。なお、上述した処理Ｔ２、Ｔ４、Ｔ６、Ｔ８で１〜４番の中継機３０がＡＣＫを送信する場合、その時点では１〜４番の中継機３０はホップ数の情報を受信していないので、１〜４番の中継機３０から送信されるＡＣＫにはホップ数の情報が付加されていない。換言すれば、処理Ｔ２、Ｔ４、Ｔ６、Ｔ８で各中継機３０から送信されるＡＣＫには、ホップ数がゼロであることを示すデータが付加されている。
【００７０】
１番の中継機３０は、親機２０からホップ数（最終宛先情報）が付加されたＡＣＫを受信すると、データの送信先である親機２０と直接通信可能であると判断し、送信先ノードを親機２０に決定する。１番の中継機３０は、以後、データを送信する際は親機２０にユニキャストでデータを送信する。
【００７１】
次に、子機１０が測定データを２回目に送信する場合の通信手順について図５を参照して説明する。なお、図１を参照して説明した１回目の通信手順と同様の通信手順については、簡略な説明とする。
【００７２】
前回のデータ送信時から送信間隔が経過すると、子機１０は、スリープモードから起動し、測定データとシーケンス番号とを格納した送信データを、ブロードキャストで送信させる（図５の処理Ｔ１１）。
【００７３】
図５の例では、４番、５番、６番の中継機３０が子機１０から送信されたデータを受信する。ここで、４番の中継機３０が送信元の子機１０に宛てて最初にＡＣＫを送信すると（図５の処理Ｔ１２）、このＡＣＫを受信した子機１０はスリープモードに戻り、消費電力を抑制する。また、４番の中継機３０から送信されたＡＣＫは５番及び６番の中継機３０によっても受信される。５番及び６番の中継機３０は、子機１０から送信されたデータを受信した後に、このデータに対するＡＣＫが他の中継機３０（この場合は、４番の中継機３０）から送信されるのを受信すると、ＡＣＫの送信を行わず、データの中継送信も行わない。
【００７４】
４番の中継機３０は、子機１０から送信されたデータに対してＡＣＫを最初に送信すると、データの受信時からウェイト時間が経過した時点で、送信データをブロードキャストで送信させる（図５の処理Ｔ１３）。
【００７５】
４番の中継機３０からブロードキャストで送信されたデータは２番、３番、５番、６番の中継機３０によって受信される。２番、３番、５番、６番の中継機３０は、それぞれ、ランダムな返送時間が経過した後にＡＣＫを送信するのであるが、図５の例では、３番の中継機３０から、送信元の４番の中継機３０に最初にＡＣＫが送信される（図５の処理Ｔ１４）。３番の中継機３０から送信されたＡＣＫは２番、５番、６番の中継機３０によっても受信され、２番、５番、６番の中継機３０は、ＡＣＫの送信を取りやめ、データの中継送信も行わない。
【００７６】
３番の中継機３０が、４番の中継機３０から送信されたデータに対してＡＣＫを最初に送信すると、データの受信時からウェイト時間が経過した時点で、送信データをブロードキャストで送信させる（図５の処理Ｔ１５）。
【００７７】
図５の例では、３番の中継機３０の通信圏内に２番、４番、５番の中継機３０が存在し、３番の中継機３０からブロードキャストで送信されたデータは、２番、４番、５番の中継機３０の無線通信部３０２によって受信される。２番、４番、５番の中継機３０では、無線通信部３０２が３番の中継機３０からの送信データを受信すると、ＭＣＵ３００が、無線通信部３０２の受信したデータから測定データとシーケンス番号と宛先アドレスと送信元アドレスとデータ元アドレスを取り出す。
【００７８】
４番の中継機３０のＭＣＵ３００は、データ元アドレスとシーケンス番号とをもとに、３番の中継機３０から送信されたデータが、自機が以前に送信したデータであると判断し、ＡＣＫの送信を行わず、データの中継送信も行わない。
【００７９】
２番及び５番の中継機３０のＭＣＵ３００は、それぞれ、データを受信してから返送時間が経過した時点で、無線通信部３０２を制御して送信元の３番の中継機３０に宛ててＡＣＫを送信する。図５の例では、２番の中継機３０の返送時間が、５番の中継機３０の返送時間よりも短い時間となっている。そのため、２番の中継機３０のＭＣＵ３００が、５番の中継機３０よりも早く、返送時間の経過後に無線通信部３０２を制御し、送信元の３番の中継機３０に宛ててＡＣＫを送信させる（図５の処理Ｔ１６）。２番の中継機３０から３番の中継機３０に送信されたＡＣＫは５番の中継機３０によっても受信される。５番の中継機３０のＭＣＵ３００は、自機が受信したデータに対するＡＣＫが、他の中継機（この場合は２番の中継機３０）から送信されていると判断し、ＡＣＫの送信を行わず、データの中継処理も行わない。
【００８０】
また２番の中継機３０のＭＣＵ３００は、送信データから取り出した測定データとシーケンス番号を含め、宛先アドレスをブロードキャスト番号、送信元アドレスを自機のノード番号、データ元アドレスを１１番の子機１０のノード番号とした送信データを作成する。そして、２番の中継機３０のＭＣＵ３００は、データの受信時からウェイト時間が経過した時点で、この送信データを無線通信部３０２からブロードキャストで送信させる（図５の処理Ｔ１７）。
【００８１】
２番の中継機３０から送信されたデータは１番の中継機３０によって受信され、１番の中継機３０から、送信元の２番の中継機３０にＡＣＫが送信される（図５の処理Ｔ１８）。ここで、１番の中継機３０は、ホップ数の情報（最終宛先情報）を保持しているので、次段のホップ数の情報、すなわち自機のホップ数「１」に１を加えたホップ数「２」の情報を付加したＡＣＫを、送信元の２番の中継機３０に送信する。２番の中継機３０は、１番の中継機３０から送信されたＡＣＫに付加されているホップ数の情報（最終宛先情報）を取得すると、このホップ数の情報をもとに、自機から親機２０までのホップ数を「２」とする。また、２番の中継機３０は、送信先ノードを１番の中継機３０に決定し、以後、データを送信する際は１番の中継機３０にユニキャストでデータを送信する。なお、２番の中継機３０から送信されたデータは３番の中継機３０によっても受信されるが、３番の中継機３０は、自機が送信したデータであると判断し、ＡＣＫの送信やデータの中継処理は行わない。
【００８２】
１番の中継機３０は、２番の中継機３０から送信されたデータに対してＡＣＫを最初に送信すると、データの受信時からウェイト時間が経過した時点で、送信データを親機２０にユニキャストで送信させる（図５の処理Ｔ１９）。
【００８３】
親機２０は、１番の中継機３０からユニキャストで送信されたデータを受信すると、返送時間を設けずに、送信元である１番の中継機３０にホップ数の情報（最終宛先情報）を付加したＡＣＫを送信する（図５の処理Ｔ２０）。
【００８４】
このように、子機１０から４番の中継機３０と３番の中継機３０と２番の中継機３０と１番の中継機３０とを経由して親機２０に２回目のデータが送信されると、１番の中継機３０から２番の中継機３０にホップ数の情報（最終宛先情報）が伝達される。これにより、２番の中継機３０は、１番の中継機３０から受信したホップ数の情報に基づいて、１番の中継機３０を送信先ノードに決定する。そして、以後の通信では、１番及び２番の中継機３０は、それぞれ、送信先ノードに対してユニキャストでデータを送信する。
【００８５】
次に、子機１０が測定データを３回目に送信する場合の通信手順について図６を参照して説明する。なお、上述した１回目及び２回目のデータ送信時の通信手順と共通する通信手順については、説明を簡略化する。
【００８６】
前回のデータ送信時から送信間隔が経過すると、子機１０は、スリープモードから起動し、測定データとシーケンス番号とを格納した送信データを、ブロードキャストで送信させる（図６の処理Ｔ２１）。
【００８７】
図６の例では、４番、５番、６番の中継機３０が子機１０から送信されたデータを受信する。ここで、４番の中継機３０が送信元の子機１０に宛てて最初にＡＣＫを送信すると（図６の処理Ｔ２２）、このＡＣＫを受信した子機１０はスリープモードに戻り、消費電力を抑制する。また、４番の中継機３０から送信されたＡＣＫは５番及び６番の中継機３０によっても受信される。５番及び６番の中継機３０は、子機１０から送信されたデータを受信した後に、このデータに対するＡＣＫが他の中継機３０（この場合は、４番の中継機３０）から送信されるのを受信すると、ＡＣＫの送信を行わず、データの中継送信も行わない。
【００８８】
４番の中継機３０は、子機１０から送信されたデータに対してＡＣＫを最初に送信すると、データの受信時からウェイト時間が経過した時点で、送信データをブロードキャストで送信させる（図６の処理Ｔ２３）。
【００８９】
４番の中継機３０からブロードキャストで送信されたデータは２番、３番、５番、６番の中継機３０によって受信される。２番、３番、５番、６番の中継機３０は、それぞれ、ランダムな返送時間が経過した後にＡＣＫを送信するのであるが、図６の例では、３番の中継機３０から、送信元の４番の中継機３０に最初にＡＣＫが送信される（図６の処理Ｔ２４）。３番の中継機３０から送信されたＡＣＫは２番、５番、６番の中継機３０によっても受信され、２番、５番、６番の中継機３０は、ＡＣＫの送信を取りやめ、データの中継送信も行わない。
【００９０】
３番の中継機３０が、４番の中継機３０から送信されたデータに対してＡＣＫを最初に送信すると、データの受信時からウェイト時間が経過した時点で、送信データをブロードキャストで送信させる（図６の処理Ｔ２５）。
【００９１】
図６の例では、３番の中継機３０の通信圏内に２番、４番、５番の中継機３０が存在し、３番の中継機３０からブロードキャストで送信されたデータは、２番、４番、５番の中継機３０の無線通信部３０２によって受信される。２番、４番、５番の中継機３０では、無線通信部３０２が３番の中継機３０からの送信データを受信すると、ＭＣＵ３００が、無線通信部３０２の受信したデータから測定データとシーケンス番号と宛先アドレスと送信元アドレスとデータ元アドレスを取り出す。
【００９２】
４番の中継機３０のＭＣＵ３００は、データ元アドレスとシーケンス番号とをもとに、３番の中継機３０から送信されたデータが、自機が以前に送信したデータであると判断し、ＡＣＫの送信を行わず、データの中継送信も行わない。
【００９３】
２番及び５番の中継機３０のＭＣＵ３００は、それぞれ、データを受信してから返送時間が経過した時点で、無線通信部３０２を制御して送信元の３番の中継機３０に宛ててＡＣＫを送信する。図６の例では、２番の中継機３０の返送時間が、５番の中継機３０の返送時間よりも短い時間となっている。そのため、２番の中継機３０のＭＣＵ３００が、５番の中継機３０よりも早く、返送時間の経過後に無線通信部３０２を制御し、送信元の３番の中継機３０に宛ててＡＣＫを送信させる（図６の処理Ｔ２６）。ここで、２番の中継機３０は、ホップ数の情報（最終宛先情報）を保持しているので、次段のホップ数の情報、すなわち自機のホップ数「２」に１を加えたホップ数「３」の情報（最終宛先情報）を付加したＡＣＫを、送信元の３番の中継機３０に送信する。３番の中継機３０は、２番の中継機３０からのＡＣＫに付加されたホップ数の情報（最終宛先情報）を取得すると、このホップ数の情報をもとに、自機から親機２０までのホップ数を「３」とする。また、３番の中継機３０は、送信先ノードを２番の中継機３０に決定し、以後、データを送信する際は２番の中継機３０にユニキャストでデータを送信する。
【００９４】
また、２番の中継機３０から３番の中継機３０に送信されたＡＣＫは５番の中継機３０によっても受信される。５番の中継機３０のＭＣＵ３００は、自機が受信したデータに対するＡＣＫが、他の中継機（この場合は２番の中継機３０）から送信されていると判断し、ＡＣＫの送信を行わず、データの中継処理も行わない。
【００９５】
２番の中継機３０が、３番の中継機３０から送信されたデータに対してＡＣＫを最初に送信すると、データの受信時からウェイト時間が経過した時点で、１番の中継機３０に送信データをユニキャストで送信する（図６の処理Ｔ２７）。
【００９６】
２番の中継機３０からユニキャストで送信されたデータが１番の中継機３０によって受信されると、１番の中継機３０から、送信元の２番の中継機３０に、ホップ数の情報（最終宛先情報）を付加したＡＣＫが送信される（図６の処理Ｔ２８）。
【００９７】
１番の中継機３０は、データの受信時からウェイト時間が経過した時点で、送信データを親機２０にユニキャストで送信する（図６の処理Ｔ２９）。
【００９８】
親機２０は、１番の中継機３０からユニキャストで送信されたデータを受信すると、返送時間を設けずに、送信元である１番の中継機３０にホップ数の情報（最終宛先情報）を付加したＡＣＫを送信する（図６の処理Ｔ３０）。
【００９９】
このように、子機１０から４番の中継機３０と３番の中継機３０と２番の中継機３０と１番の中継機３０とを経由して親機２０に３回目のデータが送信されると、２番の中継機３０から３番の中継機３０にホップ数の情報（最終宛先情報）が送信される。これにより、３番の中継機３０は、２番の中継機３０から受信したホップ数の情報に基づいて、２番の中継機３０を送信先ノードに決定する。そして、以後の通信では、１〜３番の中継機３０は、それぞれ、送信先ノードに対してユニキャストでデータを送信する。
【０１００】
次に、子機１０が測定データを４回目に送信する場合の通信手順について図７を参照して説明する。なお、上述した１〜３回目のデータ送信時の通信手順と共通する通信手順については、説明を簡略化する。
【０１０１】
前回のデータ送信時から送信間隔が経過すると、子機１０は、スリープモードから起動し、測定データとシーケンス番号とを格納した送信データを、ブロードキャストで送信させる（図７の処理Ｔ３１）。
【０１０２】
図７の例では、４番、５番、６番の中継機３０が子機１０から送信されたデータを受信する。ここで、４番の中継機３０が送信元の子機１０に宛てて最初にＡＣＫを送信すると（図７の処理Ｔ３２）、このＡＣＫを受信した子機１０はスリープモードに戻り、消費電力を抑制する。また、４番の中継機３０から送信されたＡＣＫは５番及び６番の中継機３０によっても受信される。５番及び６番の中継機３０は、子機１０から送信されたデータを受信した後に、このデータに対するＡＣＫが他の中継機３０（この場合は、４番の中継機３０）から送信されるのを受信すると、ＡＣＫの送信を行わず、データの中継送信も行わない。
【０１０３】
４番の中継機３０は、子機１０から送信されたデータに対してＡＣＫを最初に送信すると、データの受信時からウェイト時間が経過した時点で、送信データをブロードキャストで送信させる（図７の処理Ｔ３３）。
【０１０４】
４番の中継機３０からブロードキャストで送信されたデータは２番、３番、５番、６番の中継機３０によって受信される。２番、３番、５番、６番の中継機３０は、それぞれ、ランダムな返送時間が経過した後にＡＣＫを送信するのであるが、図７の例では、３番の中継機３０から、送信元の４番の中継機３０に最初にＡＣＫが送信される（図７の処理Ｔ３４）。ここで、３番の中継機３０は、ホップ数の情報（最終宛先情報）を保持しているので、次段のホップ数の情報、すなわち自機のホップ数「３」に１を加えたホップ数「４」の情報（最終宛先情報）を付加したＡＣＫを、送信元の４番の中継機３０に送信する。４番の中継機３０は、３番の中継機３０から送信されたＡＣＫに付加されたホップ数の情報を取得すると、このホップ数の情報をもとに、自機から親機２０までのホップ数を「４」とする。また、４番の中継機３０は、送信先ノードを３番の中継機３０に決定し、以後、データを送信する際は３番の中継機３０にユニキャストでデータを送信する。
【０１０５】
３番の中継機３０から送信されたＡＣＫは２番、５番、６番の中継機３０によっても受信され、２番、５番、６番の中継機３０は、ＡＣＫの送信を取りやめ、データの中継送信も行わない。
【０１０６】
また、３番の中継機３０は、４番の中継機３０から送信されたデータに対してＡＣＫを最初に送信すると、データの受信時からウェイト時間が経過した時点で、送信先ノードである２番の中継機３０に送信データをユニキャストで送信させる（図７の処理Ｔ３５）。
【０１０７】
３番の中継機３０からユニキャストで送信されたデータが２番の中継機３０によって受信されると、２番の中継機３０は、返送時間の経過後に、送信元の３番の中継機３０に宛ててホップ数の情報（最終宛先情報）を付加したＡＣＫを送信する（図７の処理Ｔ３６）。
【０１０８】
２番の中継機３０は、データの受信時からウェイト時間が経過した時点で、送信データを１番の中継機３０にユニキャストで送信する（図７の処理Ｔ３７）。
【０１０９】
２番の中継機３０からユニキャストで送信されたデータが１番の中継機３０によって受信されると、１番の中継機３０は、返送時間の経過後に、送信元の２番の中継機３０に宛ててホップ数の情報（最終宛先情報）を付加したＡＣＫを送信する（図７の処理Ｔ３８）。
【０１１０】
１番の中継機３０は、データの受信時からウェイト時間が経過した時点で、送信データを親機２０にユニキャストで送信する（図７の処理Ｔ３９）。
【０１１１】
親機２０は、１番の中継機３０からユニキャストで送信されたデータを受信すると、返送時間を設けずに、送信元である１番の中継機３０にホップ数の情報（最終宛先情報）を付加したＡＣＫを送信する（図７の処理Ｔ４０）。
【０１１２】
このように、子機１０から４番の中継機３０と３番の中継機３０と２番の中継機３０と１番の中継機３０とを経由して親機２０に４回目のデータが送信されると、３番の中継機３０から４番の中継機３０にホップ数の情報（最終宛先情報）が送信される。これにより、４番の中継機３０は、３番の中継機３０から受信したホップ数の情報（最終宛先情報）に基づいて、３番の中継機３０を送信先ノードに決定する。そして、以後の通信では、１〜４番の中継機３０は、それぞれ、送信先ノードに対してユニキャストでデータを送信する。
【０１１３】
その後、前回のデータ送信時から送信間隔が経過して、子機１０から送信データがブロードキャストで送信された場合に、この送信データに対するＡＣＫが４番の中継機３０から送信されると、子機１０にホップ数の情報が付加されたＡＣＫが送信される。これにより、子機１０は、送信先ノードを４番の中継機３０と決定し、以後のデータ送信では４番の中継機３０にユニキャストでデータを送信する。
【０１１４】
ところで、本実施形態では、各中継機３０は、送信先ノードを決めた後で、他の中継機３０宛てに送信されたＡＣＫに付加されているホップ数の情報をもとに、よりホップ数が少なくなる中継機３０を検出すると、この中継機３０に送信先ノードを変更する。この中継機３０の動作を図８に基づいて説明する。図８において、図７と同一の通信処理には同一の符号を付している。
【０１１５】
図７を参照して説明した子機１０から親機２０への４回目のデータ送信において、３番の中継機３０が２番の中継機３０に送信データを送信すると（処理Ｔ３５）、２番の中継機３０は送信元の３番の中継機３０にＡＣＫを送信する（処理Ｔ３６）。ここで、図８に示すように、２番の中継機３０から送信されたＡＣＫが４番の中継機３０によって受信されると、４番の中継機３０のＭＣＵ３００は、このＡＣＫが、自機が以前に送信したデータに対するＡＣＫか否かを判断する。２番の中継機３０から受信したＡＣＫが、自機が以前に送信したデータに対するＡＣＫであれば、４番の中継機３０のＭＣＵ３００は、このＡＣＫにホップ数の情報（最終宛先情報）が付加されているか否かを判断する。２番の中継機３０から受信したＡＣＫ（第２ＡＣＫ）にホップ数の情報が付加されている場合、４番の中継機３０のＭＣＵ３００は、このホップ数「３」をもとに、送信先ノードを２番の中継機３０（第２の上位ノード）とした場合の第２ホップ数「３」を求める。４番の中継機３０のＭＣＵ３００は、以前の通信（処理Ｔ３４）で受信した３番の中継機３０からのＡＣＫ（第１ＡＣＫ）にホップ数が付加されていることから、送信先ノードを３番の中継機３０に決定している。また４番の中継機３０のＭＣＵ３００は、第１ＡＣＫに付加されたホップ数の情報をもとに、送信先ノードを３番の中継機３０（第１の上位ノード）とした場合の第１ホップ数「４」を求めている。４番の中継機３０のＭＣＵ３００は、送信先ノードを３番の中継機３０とした場合の第１ホップ数「４」と、送信先ノードを２番の中継機３０とした場合の第２ホップ数「３」との大小を比較する。ここで、送信先ノードを２番の中継機３０とした場合の方が、送信先ノードを３番の中継機３０とした場合よりもホップ数が少なくなるので、４番の中継機３０のＭＣＵ３００は、送信先ノードを３番の中継機３０から２番の中継機３０に変更する。また、４番の中継機３０のＭＣＵ３００は、送信先ノードを３番の中継機３０から２番の中継機３０に変更すると、変更前の送信先ノードである３番の中継機３０を送信先の候補ノードとして記憶部３０１に保存する。なお、送信先ノードを２番の中継機３０とした場合の方が、送信先ノードを３番の中継機３０とした場合よりも、ホップ数が多くなる場合、４番の中継機３０のＭＣＵ３００は送信先ノードを３番の中継機３０から変更しない。
【０１１６】
このようにして、４番の中継機３０のＭＣＵ３００が送信先ノードを２番の中継機３０に変更すると、次回のデータ送信時には、図９に示すように、４番の中継機３０から２番の中継機３０にユニキャストでデータが送信されることになる（図９の処理Ｔ５１）。この場合、２番の中継機３０から１番の中継機３０にユニキャストでデータが送信された後（図９の処理Ｔ５１）、１番の中継機３０から親機２０にユニキャストでデータを送信される（図９の処理Ｔ５２）。
【０１１７】
ところで、図８の例では、４番の中継機３０は、送信先ノードが決まっていない状態で、送信先ノードを、一旦、３番の中継機３０に決めた後に、２番の中継機３０に変更しているが、送信先ノードが決まっている状態で同様の処理を行ってもよい。
【０１１８】
図１０に示すように、子機１０から親機２０までの通信経路が、子機１０→４番の中継機３０→３番の中継機３０→２番の中継機３０→１番の中継機３０→親機２０のように決定された場合について説明する。
【０１１９】
前回のデータ送信時から送信間隔が経過すると、子機１０は、スリープモードから起動し、４番の中継機３０にユニキャストで送信データを送信する（図１０の処理Ｔ６１）。
【０１２０】
４番の中継機３０は、子機１０から送信データを受信すると、ホップ数の情報（最終宛先情報）を付加したＡＣＫを子機１０に送信する（図１０の処理Ｔ６２）。子機１０は、データ送信後にＡＣＫを受信すると、スリープモードに戻り、消費電力を低減する。
【０１２１】
４番の中継機３０は、データ受信時からウェイト時間が経過した時点で、送信先ノードである３番の中継機３０にユニキャストで送信データを送信する（図１０の処理Ｔ６３）。
【０１２２】
３番の中継機３０は、４番の中継機３０から送信データを受信すると、ホップ数の情報（最終宛先情報）を付加したＡＣＫを４番の中継機３０に送信する（図１０の処理Ｔ６４）。また、３番の中継機３０は、データ受信時からウェイト時間が経過した時点で、送信先ノードである２番の中継機３０にユニキャストで送信データを送信する（図１０の処理Ｔ６５）。
【０１２３】
２番の中継機３０は、３番の中継機３０から送信データを受信すると、ホップ数の情報（最終宛先情報）を付加したＡＣＫを３番の中継機３０に送信する（図１０の処理Ｔ６６）。また、２番の中継機３０は、データ受信時からウェイト時間が経過した時点で、送信先ノードである１番の中継機３０にユニキャストで送信データを送信する（図１０の処理Ｔ６７）。
【０１２４】
１番の中継機３０は、２番の中継機３０から送信データを受信すると、ホップ数の情報（最終宛先情報）を付加したＡＣＫを２番の中継機３０に送信する（図１０の処理Ｔ６８）。また、１番の中継機３０は、データ受信時からウェイト時間が経過した時点で、送信先ノードである親機２０にユニキャストで送信データを送信する（図１０の処理Ｔ６９）。
【０１２５】
親機２０は、１番の中継機３０からの送信データを受信すると、送信元の１番の中継機３０にＡＣＫを送信しており（図１０の処理Ｔ７０）、これによって子機１０から親機２０への１回のデータ送信が完了する。
【０１２６】
ここで、処理Ｔ６６で２番の中継機３０から送信されたＡＣＫが４番の中継機３０によって受信された場合について説明する。４番の中継機３０では、無線通信部３０２が２番の中継機３０から送信されたＡＣＫを受信すると、ＭＣＵ３００はこのＡＣＫに含まれるデータ元アドレスやシーケンス番号をもとに、自機が以前に送信したデータに対するＡＣＫであるか否かを判断する。２番の中継機３０から受信したＡＣＫが、自機が以前に送信したデータに対するＡＣＫであれば、４番の中継機３０のＭＣＵ３００は、このＡＣＫにホップ数の情報（最終宛先情報）が付加されているか否かを判断する。このＡＣＫにホップ数の情報が付加されていれば、４番の中継機３０のＭＣＵ３００は、ＡＣＫに付加されたホップ数の情報「３」をもとに、送信先ノードを２番の中継機３０（第２の上位ノード）とした場合の第２ホップ数「３」を求める。４番の中継機３０は、決定済みの通信経路では３番の中継機３０（第１の上位ノード）を送信先ノードとしており、この場合の第１ホップ数は「４」となっている。４番の中継機３０は、第１ホップ数「４」と、２番の中継機３０を送信先ノードとした場合の第２ホップ数「３」との大小を比較する。ここで、送信先ノードを２番の中継機３０とした場合の方が、送信先ノードを３番の中継機３０とした場合よりもホップ数が少なくなるので、４番の中継機３０のＭＣＵ３００は、送信先ノードを３番の中継機３０から２番の中継機３０に変更する。また、４番の中継機３０のＭＣＵ３００は、送信先ノードを３番の中継機３０から２番の中継機３０に変更すると、変更前の送信先ノードである３番の中継機３０を送信先の候補ノードとして記憶部３０１に保存する。なお、送信先ノードを２番の中継機３０とした場合の方が、送信先ノードを３番の中継機３０とした場合よりも、ホップ数が多くなる場合、４番の中継機３０のＭＣＵ３００は送信先ノードを３番の中継機３０から変更しない。
【０１２７】
次に、次回のデータ送信時での通信手順について図１１を参照して説明する。前回のデータ送信時から送信間隔が経過すると、子機１０は、スリープモードから起動し、４番の中継機３０にユニキャストで送信データを送信する（図１１の処理Ｔ７１）。
【０１２８】
４番の中継機３０は、子機１０から送信データを受信すると、自機のホップ数「３」に１を加えた次段のホップ数の情報「４」をＡＣＫに付加して、子機１０に送信する（図１１の処理Ｔ７２）。子機１０は、データ送信後にＡＣＫを受信すると、スリープモードに戻り、消費電力を低減する。また４番の中継機３０は、データ受信時からウェイト時間が経過した時点で、送信先ノードである２番の中継機３０にユニキャストで送信データを送信する（図１１の処理Ｔ７３）。
【０１２９】
２番の中継機３０は、４番の中継機３０から送信データを受信すると、ホップ数の情報（最終宛先情報）を付加したＡＣＫを４番の中継機３０に送信する（図１１の処理Ｔ７４）。また、２番の中継機３０は、データ受信時からウェイト時間が経過した時点で、送信先ノードである１番の中継機３０にユニキャストで送信データを送信する（図１１の処理Ｔ７５）。
【０１３０】
１番の中継機３０は、２番の中継機３０から送信データを受信すると、ホップ数の情報（最終宛先情報）を付加したＡＣＫを２番の中継機３０に送信する（図１１の処理Ｔ７６）。また、１番の中継機３０は、データ受信時からウェイト時間が経過した時点で、送信先ノードである親機２０にユニキャストで送信データを送信する（図１１の処理Ｔ７７）。
【０１３１】
親機２０は、１番の中継機３０からの送信データを受信すると、送信元の１番の中継機３０にＡＣＫを送信しており（図１１の処理Ｔ７８）、これによって子機１０から親機２０への１回のデータ送信が完了する。４番の中継機３０が、送信先ノードを３番の中継機３０から２番の中継機３０に変更することによって、ホップ数が少なくなる。したがって、送信元の子機１０から送信先の親機２０までデータを送信する間にノード間で行われる通信回数が少なくなり、その結果、送信データの衝突が起こりにくくなる。
【０１３２】
ところで、上述の実施形態において、子機１０は、データ送信後にＡＣＫを受信すると、スリープモードに戻って電池の消耗を抑制しているが、外部電源から電力が供給される場合はスリープモードに戻る必要が無い。その場合、子機１０も、中継機３０と同様に、第２の上位ノードから他のノード宛てに送信されるＡＣＫを受信して、このＡＣＫに付加されたホップ数の情報から第２ホップ数を求めても良い。そして、子機１０が、送信先ノードを第１の上位ノードとする場合の第１ホップ数と第２ホップ数を比較し、第２ホップ数が第１ホップ数よりも少なければ、送信先ノードを第１の上位ノードから第２の上位ノードに変更してもよい。
【０１３３】
以上説明したように、本実施形態の無線通信システムでは、子機１０から親機２０までデータを送信する通信経路が確立していない状態では、子機１０及び中継機３０の各々はブロードキャストでデータを送信する。上記の通信経路の少なくとも一部で送信先ノードが決まると、子機１０及び中継機３０のうち送信先ノードが決まったノードは、送信先ノードへユニキャストでデータを送信する。そして、通信経路における下位ノード（子機１０又は中継機３０）は、下位ノードが送信したデータに対して第１の上位ノードから下位ノード宛てに送信された第１ＡＣＫを受信すると、第１ＡＣＫに付加されたホップ数をもとに第１ホップ数を求める。また下位ノードは、第１ＡＣＫの受信後に、下位ノードが送信したデータに対して第２の上位ノードから他のノードに宛てて送信された第２ＡＣＫを受信すると、第２ＡＣＫに付加されたホップ数をもとに第２ホップ数を求める。そして、下位ノードは、第１ホップ数よりも第２ホップ数の方が少なければ、第２の上位ノードを送信先ノードに決定するので、ホップ数がより少なくなるように送信先ノードを設定できる。したがって、子機１０から親機２０までデータを中継伝送する間の通信回数が減り、送信データが衝突する可能性が減少する。
【０１３４】
本実施形態において、親機２０は、データ受信時に次段のホップ数を付加したＡＣＫを送信元ノードに送信してもよい。また、中継機３０は、上位ノードからホップ数が付加されたＡＣＫを受信すると、ＡＣＫに付加されたホップ数から次段のホップ数を求め、次回のデータ受信時に次段のホップ数を付加したＡＣＫを送信元ノードに送信してもよい。このように、子機１０と親機２０との間で通信が行われるたびに、ホップ数の情報が下位のノードへと伝達されていくから、各々の中継機３０に予めホップ数の情報を設定しておく必要が無い。
【０１３５】
本実施形態において、下位ノードが送信先ノードを決定していない状態で、下位ノードが、第１の上位ノードを送信先ノードに決定した後に、第１ホップ数よりも第２ホップ数の方が少なくなると、送信先ノードを第２の上位ノードに変更してもよい。下位ノードは、ホップ数がより少なくなるように送信先ノードを設定できるから、子機１０から親機２０までデータを中継伝送する間の通信回数が減り、送信データが衝突する可能性が減少する。
【０１３６】
本実施形態において、下位ノードが送信先ノードを第１の上位ノードに決定している状態で、第２ＡＣＫから求められた第２ホップ数の方が第１ホップ数よりも少なくなると、下位のノードが、送信先ノードを第２の上位ノードに変更してもよい。下位ノードは、ホップ数がより少なくなるように送信先ノードを設定できるから、子機１０から親機２０までデータを中継伝送する間の通信回数が減り、送信データが衝突する可能性が減少する。
【０１３７】
また、本実施形態の無線通信システムにおいて、下位ノード（子機１０及び中継機３０）は、送信先ノードを第１の上位ノードから第２の上位ノードに変更する場合、第１の上位ノードを送信先の候補ノードとしてメモリ（記憶部１０２，３０１）に保存してもよい。下位ノードは、メモリに候補ノードとして保存している第１の上位ノードと通信が可能である。したがって、下位ノードは、第２の上位ノードとの通信に失敗した場合に、候補ノードの第１の上位ノードと通信することで、子機１０と親機２０との間の通信が不能になる可能性を低減できる。
【０１３８】
本実施形態において、下位ノードは、送信先ノードを決定している状態で、送信先ノードへのデータ送信に失敗すると、送信先ノードへユニキャストでデータを再送信すればよい。また下位ノードは、送信先ノードへの再送信でもデータ送信に失敗すると、メモリに保存されている候補ノードにユニキャストでデータを送信すればよい。また下位ノードは、候補ノードの全てでデータ送信に失敗すると、ブロードキャストでデータを送信して、通信経路を再構築すればよい。このように、下位ノードは、送信先ノードへのデータ送信に失敗すると、送信先ノード及び候補ノードへのユニキャスト送信を順番に試した後、ブロードキャストでデータを送信しているから、データ送信が行えなくなる可能性を低減できる。なお、候補ノードが複数存在する場合、下位ノードは、例えば、ホップ数の少ない候補ノードから順番にデータをユニキャストで送信してもよいし、受信信号強度が大きい候補ノードから順番にデータをユニキャストで送信してもよい。
【０１３９】
本実施形態において、中継機３０は、他のノードからブロードキャストで送信されたデータを受信した場合、このデータに対するＡＣＫを送信する前に、同一のデータに対するＡＣＫを親機２０が送信していれば、このデータに対するＡＣＫを送信しなくてもよい。他のノードが親機２０と通信可能である場合、このノードは親機２０を送信先ノードにすればホップ数が最小になるから、中継機３０はＡＣＫを送信する必要は無い。したがって、中継機３０がＡＣＫの送信を行わないことで、送信データの衝突が起こりにくくなり、送信データのロスが少なくなる。
【０１４０】
また、子機１０から親機２０までの通信経路が確定すると、子機１０及び中継機３０の各々は、次に上位ノードへデータを送信する場合に、個々のノードに割り当てられた識別情報（例えばノード番号）をデータに付加して送信してもよい。
【０１４１】
子機１０は、ホップ数が付加されたＡＣＫを受信すると、このＡＣＫを送信してきた中継機３０を送信先ノードに決定しており、親機２０までの通信経路が確定したと判断する。この子機１０は、次にデータを送信する際に、自機の識別情報と、中継機３０に通信経路を通知させるコマンドとをデータに付加して上位ノードに送信する。このデータを受信した中継機３０は、データに付加されたコマンドに応じて、受信したデータに自機の識別情報をさらに付加して上位ノードに送信する。これにより、親機２０が受信したデータには、子機１０から親機２０までの通信経路を構成する各ノードの識別情報が順番に付加されることになる。よって、親機２０は、子機１０から親機２０までの通信経路を把握することができる。
【符号の説明】
【０１４２】
１０  子機（第１のノード）
２０  親機（第２のノード、下位ノード）
３０  中継機（第３のノード、下位ノード）
【図１】
0006384785.tif 000002
【図２】
0006384785.tif 000003
【図３】
0006384785.tif 000004
【図４】
0006384785.tif 000005
【図５】
0006384785.tif 000006
【図６】
0006384785.tif 000007
【図７】
0006384785.tif 000008
【図８】
0006384785.tif 000009
【図９】
0006384785.tif 000010
【図１０】
0006384785.tif 000011
【図１１】
0006384785.tif 000012