(57)【特許請求の範囲】
【請求項１】
複数の端末装置のそれぞれが、１つまたは２つのクラスタに含まれるノードとして機能することにより、他の端末装置と通信する通信システムであって、
（ａ）前記クラスタは、１つの上位ノードと、それ以外の下位ノードと、からなり、
（ｂ）前記端末装置のそれぞれは、
（１）１つのクラスタに含まれ、当該クラスタの上位ノードとして機能するヘッドノード、
（２）１つのクラスタに含まれ、当該クラスタの下位ノードとして機能するノーマルノード、
（３）２つのクラスタに含まれ、一方のクラスタでは下位ノードとして機能し、他方のクラスタでは上位ノードとして機能するゲートウェイノード
のいずれかとして機能することにより、当該ヘッドノードを根ノード、当該ノーマルノードを葉ノード、当該ゲートウェイノードを内部ノードとする木構造を形成し、
（ｃ）前記端末装置のそれぞれは、
当該端末装置が上位ノードである場合、
（１）当該端末装置と、当該端末装置が上位ノードであるクラスタに含まれる下位ノードである端末装置と、の、通信流量と、
（２）前記木構造の根ノードから当該端末装置までのホップ距離と、
（３）当該木構造に対して設定されている通信成功率の目標値と、
に基づいて、キャリアセンスを行うべきセンス周期と、当該センス周期内において通信を行うチャネル数と、を決定する決定部、
当該端末装置が
（１）ヘッドノードである場合、前記決定されたセンス周期に基づいて、次にキャリアセンスを行うべきセンス時刻を定め、当該時刻と前記決定されたチャネル数とを、前記端末装置がヘッドノードとして含まれるクラスタに含まれるすべてのノードに設定し、
（２）ゲートウェイノードである場合、前記端末装置が下位ノードとして含まれるクラスタに設定されているセンス時刻と重ならないように、前記決定されたセンス周期に基づいて、次にキャリアセンスを行うべきセンス時刻を定め、当該時刻と前記決定されたチャネル数とを、前記端末装置が上位ノードとして含まれるクラスタに含まれるすべてのノードに設定する
時刻設定部、
前記端末装置が含まれる１つまたは２つのクラスタに対して設定されているセンス時刻にキャリアセンスを行うセンス部、
前記センス時刻から前記設定されているチャネル数のチャネルを介して、他のノードへデータを送信する送信部、
前記センス時刻から前記設定されているチャネル数のチャネルを介して、他のノードからのデータを受信する受信部、
当該端末装置が下位ノードである場合、上位ノードを切り替えるためのスキャンを行うか否かを決定し、切り替えのためのスキャンを行うことが決定された場合、他の端末装置をスキャンするスキャン部、
前記切り替えのためのスキャンの結果、複数の上位ノードが発見された場合、当該発見された上位ノードのそれぞれにおいて決定されるチャネル数を推定し、当該推定されたチャネル数に基づいていずれかの上位ノードを選択し、前記端末装置の上位ノードを、前記選択された上位ノードに設定し直すノード設定部
を備えることを特徴とする通信システム。
【請求項２】
請求項１に記載の通信システムであって、
前記送信部は、
（１）当該端末装置と、当該端末装置が上位ノードであるクラスタに含まれる下位ノードである端末装置と、の、通信流量vと、
（２）前記木構造の根ノードから当該端末装置までのホップ距離hと、
を、前記センス時刻に送信することにより、前記キャリアセンスならびに前記スキャンを行っている他の端末装置に通知し、
前記切り替えのためのスキャンの結果、複数の上位ノードが発見された場合、前記ノード設定部は、当該複数発見された上位ノードのそれぞれについて、当該スキャンの結果得られた通信流量vならびにホップ距離hおよび当該端末装置による通信流量wから、当該上位ノードを前記端末装置の上位ノードに設定し直すと仮定した場合の、当該複数存在する上位ノードのそれぞれにおいて決定されるチャネル数を推定し、当該推定されたチャネル数が最小となる上位ノードを選択する
ことを特徴とする通信システム。
【請求項３】
請求項２に記載の通信システムであって、
関数Fがあらかじめ定められ、当該関数Fを、通信流量Vと、通信成功率Sと、に適用することにより、チャネル数Nが N = F(V，S) により求められ、
前記決定部は、当該端末装置の通信流量vならびに前記根ノードからのホップ距離hからチャネル数nを n = F(v，s1/h) により決定し、
前記ノード設定部は、
（１）当該複数発見された上位ノードのうち、現在当該端末装置の上位ノードでないノードのそれぞれについて、当該スキャンの結果得られた通信流量vならびにホップ距離hおよび当該端末装置による通信流量wから、当該ノードに対して推定されるチャネル数nを n = F(v+w，s1/h) により求め、
（２）当該複数発見された上位ノードのうち、現在当該端末装置の上位ノードであるノードに対して推定されるチャネル数nを
（２ａ）当該スキャンの結果得られた通信流量vならびにホップ距離hから n = F(v，s1/h) により求め、もしくは、
（２ｂ）当該端末装置に対して前記設定されているチャネル数とする
ことを特徴とする通信システム。
【請求項４】
請求項３に記載の通信システムであって、
前記センス周期は前記複数の端末装置において共通するように定められた定数であり、
前記チャネルは、時間チャネルであり、
前記送信部は、前記センス時刻から前記設定されているチャネル数に対する時間を経過するまでの間に、他のノードへのデータの送信を開始し、
前記受信部は、前記センス時刻から前記設定されているチャネル数に対する時間を経過するまでの間に、他のノードからのデータの受信を開始する
ことを特徴とする通信システム。
【請求項５】
請求項４に記載の通信システムであって、
前記複数の端末装置のそれぞれは、
前記キャリアセンスを行わず、前記送信を行わず、前記受信を行わない間、電力消費を抑制する抑制部
をさらに備えることを特徴とする通信システム。
【請求項６】
請求項５に記載の通信システムであって、
前記スキャン部は、前記端末装置が前記木構造に参加しようとする場合に、他の端末装置をスキャンし、
前記ノード設定部は、前記参加のためのスキャンの結果、
（１）他の端末装置が発見できなかった場合、前記端末装置をヘッドノードに設定し、
（２）１つ又は複数の上位ノードが発見された場合、当該発見された上位ノードのうち、当該上位ノードに対して推定されるチャネル数が最小の上位ノードを選択し、前記端末装置を、前記選択された上位ノードの下位ノードに設定し、
（３）１つ又は複数のノーマルノードが発見された場合、当該発見されたノーマルノードからいずれかを選択し、前記選択されたノーマルノードをゲートウェイノードに設定し、前記端末装置を、当該ゲートウェイノードを上位ノードとするクラスタの下位ノードに設定する
ことを特徴とする通信システム。
【請求項７】
請求項６に記載の通信システムであって、
前記参加のためのスキャンの結果、複数の上位ノードが発見され、前記発見された上位ノードのうち、当該上位ノードに対して推定されたチャネル数が最小の上位ノードが複数存在する場合、前記ノード設定部は、当該推定されたチャネル数が最小の上位ノードのうち、前記木構造における前記根ノードに最も近いものを選択する
ことを特徴とする通信システム。
【請求項８】
請求項７に記載の通信システムであって、
前記複数の端末装置のそれぞれにおいて、
前記スキャン部は、当該端末装置に設定されているチャネル数が、当該端末装置の電源残量にあらかじめ対応付けられる閾値を超える場合、当該切り替えのためのスキャンを行うことを決定する
ことを特徴とする通信システム。
【請求項９】
請求項１から８のいずれか１項に記載通信システムであって、
前記決定部ならびに前記ノード設定部は、前記木構造の根ノードから当該端末装置までのホップ距離にかえて、当該木構造の最大ホップ数、当該端末装置の通信先との平均ホップ数、もしくは、当該木構造における通信の平均ホップ数、または、これらのいずれか少なくとも一つに所定の演算を施した結果を用いる
ことを特徴とする通信システム。
【請求項１０】
請求項１から９のいずれか１項に記載の通信システムにおける端末装置。
【請求項１１】
複数の端末装置のそれぞれが、１つまたは２つのクラスタに含まれるノードとして機能することにより、他の端末装置と通信する通信システムにおける端末装置を制御する制御方法であって、
（ａ）前記クラスタは、１つの上位ノードと、それ以外の下位ノードと、からなり、
（ｂ）前記端末装置のそれぞれは、
（１）１つのクラスタに含まれ、当該クラスタの上位ノードとして機能するヘッドノード、
（２）１つのクラスタに含まれ、当該クラスタの下位ノードとして機能するノーマルノード、
（３）２つのクラスタに含まれ、一方のクラスタでは下位ノードとして機能し、他方のクラスタでは上位ノードとして機能するゲートウェイノード
のいずれかとして機能することにより、当該ヘッドノードを根ノード、当該ノーマルノードを葉ノード、当該ゲートウェイノードを内部ノードとする木構造を形成し、
前記端末装置のそれぞれにおいて、前記制御方法は、
当該端末装置が上位ノードである場合、
（１）当該端末装置と、当該端末装置が上位ノードであるクラスタに含まれる下位ノードである端末装置と、の、通信流量と、
（２）前記木構造の根ノードから当該端末装置までのホップ距離と、
（３）当該木構造に対して設定されている通信成功率の目標値と、
に基づいて、キャリアセンスを行うべきセンス周期と、当該センス周期内において通信を行うチャネル数と、を決定する決定工程、
当該端末装置が
（１）ヘッドノードである場合、前記決定されたセンス周期に基づいて、次にキャリアセンスを行うべきセンス時刻を定め、当該時刻と前記決定されたチャネル数とを、前記端末装置がヘッドノードとして含まれるクラスタに含まれるすべてのノードに設定し、
（２）ゲートウェイノードである場合、前記端末装置が下位ノードとして含まれるクラスタに設定されているセンス時刻と重ならないように、前記決定されたセンス周期に基づいて、次にキャリアセンスを行うべきセンス時刻を定め、当該時刻と前記決定されたチャネル数とを、前記端末装置が上位ノードとして含まれるクラスタに含まれるすべてのノードに設定する
時刻設定工程、
前記端末装置が含まれる１つまたは２つのクラスタに対して設定されているセンス時刻にキャリアセンスを行うセンス工程、
前記センス時刻から前記設定されているチャネル数のチャネルを介して、他のノードへデータを送信する送信工程、
前記センス時刻から前記設定されているチャネル数のチャネルを介して、他のノードからのデータを受信する受信工程、
当該端末装置が下位ノードである場合、上位ノードを切り替えるためのスキャンを行うか否かを決定し、切り替えのためのスキャンを行うことが決定された場合、他の端末装置をスキャンするスキャン工程、
前記切り替えのためのスキャンの結果、複数の上位ノードが発見された場合、当該発見された上位ノードのそれぞれにおいて決定されるチャネル数を推定し、当該推定されたチャネル数に基づいていずれかの上位ノードを選択し、前記端末装置の上位ノードを、前記選択された上位ノードに設定し直すノード設定工程
を備えることを特徴とする制御方法。
【請求項１２】
通信機能を有する複数のコンピュータのそれぞれを、請求項１から９のいずれか１項に記載の通信システムにおける複数の端末装置のいずれかとして機能させることを特徴とするプログラム。
【請求項１３】
通信機能を有するコンピュータを、請求項１０に記載の端末装置の各部として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アドホックに形成される通信効率の良い通信ネットワークを構成するのに好適な通信システム、端末装置、その制御方法、ならびに、これらをコンピュータにより実現するためのプログラムに関する。
【背景技術】
【０００２】
従来から、無線通信機器がアドホックに通信ネットワークを動的形成する技術が利用されている。
【０００３】
このような技術には、通信ネットワークに参加する複数の機器のうち１台が上位ノードとなり、その他の機器が下位ノードとなって、上位ノードが下位ノードを管理することにより動的に木構造の通信ネットワークを形成するものがある。たとえば、Bluetooth（商標）などで利用されるピコネット（Piconet）では、このような動的な端末管理が行われている。
【０００４】
このような通信技術においては、通信の成功率に基づいて、ある周期内において通信を行う時間帯の時間長を調整し、消費電力を適切に調整して、効率良くアドホックな通信ネットワークを形成する技術が提案されている（特許文献１参照）。
【０００５】
すなわち、時分割通信を前提として、時分割通信では、通信に利用可能なすべての時間チャネル（上記の「周期」に相当。）のうち、所定の時間チャネル（上記の「通信を行う時間帯」に相当。）を利用して、データを伝送する通信を行うことになる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１０−１４１７２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ここで、どの程度のチャネル数を通信に割り当てるかは、所望の通信品質を確保しつつ消費電力を調整する上で、重要である。一方で、木構造のいずれのノードにおいても、同程度の通信成功率の目標を達成できるようにしたい、という要望もある。この際には、各ノードによる通信流量（単位時間あたりの通信量。時分割通信の場合には、各周期において、通信を実際に行った時間チャネルの平均数に相当する。）や、各ノードの木構造内における位置を考慮する必要がある。
【０００８】
本発明は、上記のような課題を解決するためのもので、アドホックに形成される通信効率の良い通信ネットワークを構成するのに好適な通信システム、端末装置、その制御方法、ならびに、これらをコンピュータにより実現するためのプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記の目的を達成するため、本発明の原理にしたがい、以下の発明を開示する。
【００１０】
本発明の第１の観点に係る通信システムは、複数の端末装置のそれぞれが、１つまたは２つのクラスタに含まれるノードとして機能することにより、他の端末装置と通信する通信システムであり、以下のように構成する。
【００１１】
すなわち、クラスタは、１つの上位ノードと、それ以外の下位ノードと、からなる。
【００１２】
一方、端末装置のそれぞれは、
（１）１つのクラスタに含まれ、当該クラスタの上位ノードとして機能するヘッドノード、
（２）１つのクラスタに含まれ、当該クラスタの下位ノードとして機能するノーマルノード、
（３）２つのクラスタに含まれ、一方のクラスタでは下位ノードとして機能し、他方のクラスタでは上位ノードとして機能するゲートウェイノード
のいずれかとして機能することにより、当該ヘッドノードを根ノード、当該ノーマルノードを葉ノード、当該ゲートウェイノードを内部ノードとする木構造を形成する。
【００１３】
さらに、端末装置のそれぞれは、決定部、時刻設定部、センス部、送信部、受信部、スキャン部、ノード設定部を備える。
【００１４】
ここで、決定部は、当該端末装置が上位ノードである場合、
（１）当該端末装置と、当該端末装置が上位ノードであるクラスタに含まれる下位ノードである端末装置と、の、通信流量と、
（２）木構造の根ノードから当該端末装置までのホップ距離と、
（３）当該木構造に対して設定されている通信成功率の目標値と、
に基づいて、キャリアセンスを行うべきセンス周期と、当該センス周期内において通信を行うチャネル数と、を決定する。
【００１５】
一方、時刻設定部は、当該端末装置が
（１）ヘッドノードである場合、決定されたセンス周期に基づいて、次にキャリアセンスを行うべきセンス時刻を定め、当該時刻と決定されたチャネル数とを、端末装置がヘッドノードとして含まれるクラスタに含まれるすべてのノードに設定し、
（２）ゲートウェイノードである場合、端末装置が下位ノードとして含まれるクラスタに設定されているセンス時刻と重ならないように、決定されたセンス周期に基づいて、次にキャリアセンスを行うべきセンス時刻を定め、当該時刻と決定されたチャネル数とを、端末装置が上位ノードとして含まれるクラスタに含まれるすべてのノードに設定する。
【００１６】
さらに、センス部は、端末装置が含まれる１つまたは２つのクラスタに対して設定されているセンス時刻にキャリアセンスを行う。
【００１７】
そして、送信部は、センス時刻から設定されているチャネル数のチャネルを介して、他のノードへデータを送信する。
【００１８】
一方、受信部は、センス時刻から設定されているチャネル数のチャネルを介して、他のノードからのデータを受信する。
【００１９】
さらに、スキャン部は、当該端末装置が下位ノードである場合、上位ノードを切り替えるためのスキャンを行うか否かを決定し、切り替えのためのスキャンを行うことが決定された場合、他の端末装置をスキャンする。
【００２０】
そして、ノード設定部は、切り替えのためのスキャンの結果、複数の上位ノードが発見された場合、当該発見された上位ノードのそれぞれにおいて決定されるチャネル数を推定し、当該推定されたチャネル数に基づいていずれかの上位ノードを選択し、端末装置の上位ノードを、選択された上位ノードに設定し直す。
【００２１】
また、本発明の通信システムは、以下のように構成することができる。
【００２２】
すなわち、送信部は、
（１）当該端末装置と、当該端末装置が上位ノードであるクラスタに含まれる下位ノードである端末装置と、の、通信流量vと、
（２）木構造の根ノードから当該端末装置までのホップ距離hと、
を、センス時刻に送信することにより、キャリアセンスならびにスキャンを行っている他の端末装置に通知する。
【００２３】
一方、切り替えのためのスキャンの結果、複数の上位ノードが発見された場合、ノード設定部は、当該複数発見された上位ノードのそれぞれについて、当該スキャンの結果得られた通信流量vならびにホップ距離hおよび当該端末装置による通信流量wから、当該上位ノードを端末装置の上位ノードに設定し直すと仮定した場合の、当該複数存在する上位ノードのそれぞれにおいて決定されるチャネル数を推定し、当該推定されたチャネル数が最小となる上位ノードを選択する。
【００２４】
また、本発明の通信システムは、以下のように構成することができる。
【００２５】
すなわち、関数Fがあらかじめ定められ、当該関数Fを、通信流量Vと、通信成功率Sと、に適用することにより、チャネル数Nが N = F(V，S) により求められる。
【００２６】
一方、決定部は、当該端末装置の通信流量vならびに前記根ノードからのホップ距離hからチャネル数nを n = F(v，s1/h) により決定する。
【００２７】
さらに、ノード設定部は、
（１）当該複数発見された上位ノードのうち、現在当該端末装置の上位ノードでないノードのそれぞれについて、当該スキャンの結果得られた通信流量vならびにホップ距離hおよび当該端末装置による通信流量wから、当該ノードに対して推定されるチャネル数nを n = F(v+w，s1/h) により求め、
（２）当該複数発見された上位ノードのうち、現在当該端末装置の上位ノードであるノードに対して推定されるチャネル数nを
（２ａ）当該スキャンの結果得られた通信流量vならびにホップ距離hから n = F(v，s1/h) により求め、もしくは、
（２ｂ）当該端末装置に対して設定されているチャネル数とする。
【００２８】
また、本発明の通信システムは、以下のように構成することができる。
【００２９】
すなわち、センス周期は複数の端末装置において共通するように定められた定数であり、
【００３０】
一方、チャネルは、時間チャネルである。
【００３１】
さらに、送信部は、センス時刻から設定されているチャネル数に対する時間を経過するまでの間に、他のノードへのデータの送信を開始する。
【００３２】
そして、受信部は、センス時刻から設定されているチャネル数に対する時間を経過するまでの間に、他のノードからのデータの受信を開始する。
【００３３】
また、本発明の通信システムにおいて、複数の端末装置のそれぞれは、キャリアセンスを行わず、送信を行わず、受信を行わない間、電力消費を抑制する抑制部をさらに備えるように構成することができる。
【００３４】
また、本発明の通信システムは、以下のように構成することができる。
【００３５】
すなわち、スキャン部は、端末装置が木構造に参加しようとする場合に、他の端末装置をスキャンする。
【００３６】
一方、ノード設定部は、参加のためのスキャンの結果、
（１）他の端末装置が発見できなかった場合、端末装置をヘッドノードに設定し、
（２）１つ又は複数の上位ノードが発見された場合、当該発見された上位ノードのうち、当該上位ノードに対して推定されるチャネル数が最小の上位ノードを選択し、端末装置を、選択された上位ノードの下位ノードに設定し、
（３）１つ又は複数のノーマルノードが発見された場合、当該発見されたノーマルノードからいずれかを選択し、選択されたノーマルノードをゲートウェイノードに設定し、端末装置を、当該ゲートウェイノードを上位ノードとするクラスタの下位ノードに設定する。
【００３７】
また、本発明の通信システムにおいて、参加のためのスキャンの結果、複数の上位ノードが発見され、発見された上位ノードのうち、当該上位ノードに対して推定されたチャネル数が最小の上位ノードが複数存在する場合、ノード設定部は、当該推定されたチャネル数が最小の上位ノードのうち、木構造における根ノードに最も近いものを選択するように構成することができる。
【００３８】
また、本発明の通信システムにおいて、複数の端末装置のそれぞれにおいて、スキャン部は、当該端末装置に設定されているチャネル数が、当該端末装置の電源残量にあらかじめ対応付けられる閾値を超える場合、当該切り替えのためのスキャンを行うことを決定するように構成することができる。
【００３９】
また、本発明の通信システムにおいて、決定部ならびにノード設定部は、木構造の根ノードから当該端末装置までのホップ距離にかえて、当該木構造の最大ホップ数、当該端末装置の通信先との平均ホップ数、もしくは、当該木構造における通信の平均ホップ数、または、これらのいずれか少なくとも一つに所定の演算を施した結果を用いるように構成することができる。
【００４０】
本発明の第２の観点に係る端末装置は、上記の通信システムにおける端末装置である。
【００４１】
本発明の第３の観点にかかる制御方法は、複数の端末装置のそれぞれが、１つまたは２つのクラスタに含まれるノードとして機能することにより、他の端末装置と通信する通信システムにおける端末装置を制御する。
【００４２】
ここで、クラスタは、１つの上位ノードと、それ以外の下位ノードと、からなる。
【００４３】
一方、端末装置のそれぞれは、
（１）１つのクラスタに含まれ、当該クラスタの上位ノードとして機能するヘッドノード、
（２）１つのクラスタに含まれ、当該クラスタの下位ノードとして機能するノーマルノード、
（３）２つのクラスタに含まれ、一方のクラスタでは下位ノードとして機能し、他方のクラスタでは上位ノードとして機能するゲートウェイノード
のいずれかとして機能することにより、当該ヘッドノードを根ノード、当該ノーマルノードを葉ノード、当該ゲートウェイノードを内部ノードとする木構造を形成する。
【００４４】
さらに、端末装置のそれぞれにおいて、制御方法は、決定工程、時刻設定工程、センス工程、送信工程、受信工程、スキャン工程、ノード設定工程を備える。
【００４５】
ここで、決定工程では、当該端末装置が上位ノードである場合、
（１）当該端末装置と、当該端末装置が上位ノードであるクラスタに含まれる下位ノードである端末装置と、の、通信流量と、
（２）木構造の根ノードから当該端末装置までのホップ距離と、
（３）当該木構造に対して設定されている通信成功率の目標値と、
に基づいて、キャリアセンスを行うべきセンス周期と、当該センス周期内において通信を行うチャネル数と、を決定する。
【００４６】
一方、時刻設定工程では、当該端末装置が
（１）ヘッドノードである場合、決定されたセンス周期に基づいて、次にキャリアセンスを行うべきセンス時刻を定め、当該時刻と決定されたチャネル数とを、端末装置がヘッドノードとして含まれるクラスタに含まれるすべてのノードに設定し、
（２）ゲートウェイノードである場合、端末装置が下位ノードとして含まれるクラスタに設定されているセンス時刻と重ならないように、決定されたセンス周期に基づいて、次にキャリアセンスを行うべきセンス時刻を定め、当該時刻と決定されたチャネル数とを、端末装置が上位ノードとして含まれるクラスタに含まれるすべてのノードに設定する。
【００４７】
さらに、センス工程では、端末装置が含まれる１つまたは２つのクラスタに対して設定されているセンス時刻にキャリアセンスを行う。
【００４８】
そして、送信工程では、センス時刻から設定されているチャネル数のチャネルを介して、他のノードへデータを送信する。
【００４９】
一方、受信工程では、センス時刻から設定されているチャネル数のチャネルを介して、他のノードからのデータを受信する。
【００５０】
さらに、スキャン工程では、当該端末装置が下位ノードである場合、上位ノードを切り替えるためのスキャンを行うか否かを決定し、切り替えのためのスキャンを行うことが決定された場合、他の端末装置をスキャンする。
【００５１】
そして、ノード設定工程では、切り替えのためのスキャンの結果、複数の上位ノードが発見された場合、当該発見された上位ノードのそれぞれにおいて決定されるチャネル数を推定し、当該推定されたチャネル数に基づいていずれかの上位ノードを選択し、端末装置の上位ノードを、選択された上位ノードに設定し直す。
【００５２】
本発明のその他の観点に係るプログラムは、ソフトウェアラジオや無線通信が可能なコンピュータ（ＤＳＰ（Digital Signal Processor）、ＦＰＧＡ（Field Programmable Gate Array）、ＡＳＩＣ（Application Specific Integrated Circuit）等の通信機能を有するコンピュータ。）を、上記の端末装置の各部として機能させるように構成する。
【００５３】
当該プログラムは、コンピュータ読取可能な情報記録媒体（コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、または、半導体メモリを含む。）に記録することができる。
【００５４】
そして、上記の情報記録媒体は、コンピュータとは独立して配布、販売することができるほか、インターネット等のコンピュータ通信網を介して上記のプログラムそのものを配布、販売することができる。
【発明の効果】
【００５５】
本発明によれば、アドホックに形成される通信効率の良い通信ネットワークを構成するのに好適な通信システム、端末装置、その制御方法、ならびに、これらをコンピュータにより実現するためのプログラムを提供することができる。
【図面の簡単な説明】
【００５６】
【図１】本実施形態における１つのクラスタと複数の端末装置の関係を示す説明図である。
【図２】複数のクラスタをゲートウェイが連結する様子を示す説明図である。
【図３】本実施形態に係る端末装置の概要構成を示す説明図である。
【図４】複数の端末装置の動作を示す説明図である。
【図５】端末装置における状態遷移図である。
【図６】Scan手続の流れを示す説明図である。
【図７】Associate手続の流れを示す説明図である。
【図８】Stream手続の流れを示す説明図である。
【図９】Change手続の流れを示す説明図である。
【図１０】Synchronize手続の流れを示す説明図である。
【図１１】Disassociate手続の流れを示す説明図である。
【図１２】Stop手続の流れを示す説明図である。
【図１３】通信流量Vの逆数に比例する入力フレーム平均間隔（Average interval of input frames）、通信成功率Sに相当するフレーム成功率（Frame success rate）、チャネル数nに比例するアクティブ区間比率（ＡＰＲ；Active Period Ratio）の関係を示すグラフである。
【図１４】ヘッドノードとゲートウェイノードが割り当てるHearing intervalとHearing periodの様子を示す説明図である。
【図１５】本実施形態によって通信を行った場合と、ホップ距離を考慮しない手法によって通信を行った場合との平均フレーム成功率を比較するグラフである。
【発明を実施するための形態】
【００５７】
以下に本発明の実施形態を説明する。なお、以下にあげる実施形態は、説明のためのものであり、本発明の範囲を制限するものではない。したがって、当業者であれば、これらの各要素または全要素を、これと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も、本発明の範囲に含まれる。
【００５８】
なお、本願の図面では、理解を容易にするため、適宜符号を省略することがある。
【実施例１】
【００５９】
図１は、本実施形態における１つのクラスタと複数の端末装置の関係を示す説明図である。以下、本図を参照して説明する。
【００６０】
本図に示すように、１つのクラスタ１０１は、複数の端末装置１２１によって構成される。端末装置１２１には、上位ノード（本図では「Ｐ」と表記している。）と下位ノード（本図では「Ｃ」と表記している。）の２種類があり、１つのクラスタ１０１には、上位ノードＰが必ず１個だけ含まれ、残りはすべて下位ノードＣとなる。
【００６１】
本図に示す状態は、いわゆるスター結合に相当するもので、クラスタ１０１内の上位ノードＰが下位ノードＣに対して、各種の設定を行う。
【００６２】
このクラスタ１０１を、いわゆるピコネット構造に適用した場合には、ピコネットコーディネータ（ＰＮＣ）が上位ノードＰに、デバイス（ＤＥＶ）が下位ノードＣに、それぞれ相当する。
【００６３】
本実施形態では、一定の周期で、下位ノードＣがセンスできるようなキャリア（ビーコン）を、上位ノードＰが送信する。このセンス周期を「Hearing interval」と呼ぶ。Hearing intervalは、ビーコン信号が送信される周期に相当する。
【００６４】
一方、下位ノードＣは、キャリアのセンスを試行してから一定の通信時間長の間に通信を開始する。上位ノードＰは、センスできるキャリアを送信してから、当該一定の通信時間長の間に通信を開始する。この通信時間長を「Hearing period」と呼ぶ。各ノードは、センス周期内の残りの時間帯においては、通信を停止することによって、消費電力の抑制を図る。
【００６５】
また、Hearing periodは、アクティブな通信が開始される区間でもあるので、「アクティブ区間」と呼ばれることもある。また、時分割通信における各区間を時間チャネルとして捉える場合には、Hearing periodを「主チャネル」と呼び、それ以外の時間チャネルを「副チャネル」と呼ぶこともある。
【００６６】
本実施形態では、アクティブ区間である主チャネルの先頭でビーコンの送受が行われ、主チャネルの残りではデータ通信が行われ、非アクティブ区間である副チャネルでは極力通信を行わない（主チャネルで開始された通信が副チャネルにまで及ぶことはありうる）ことによって、電力消費の抑制を図る。
【００６７】
ひとつのHearing periodの中では、各ノードが、ＴＤＭＡ（Time Division Multiple Access）、ＣＳＭＡ（Carrier Sense Multiple Access）、ＣＤＭＡ（Code Division Multiple Access）などの通信手法により、通信を行う。
【００６８】
典型的には、Hearing intervalは定数、Hearing periodは上位ノードＰによって下位ノードＣに対して設定される変数であり、上位ノードＰは、同期信号のほか、これらの設定情報を送信して、下位ノードＣは、キャリアセンスの際に、これらの設定情報を受信し、値を共有するように構成するのが典型的である。
【００６９】
ある時点でキャリアセンスをして一旦同期がとれれば、次にキャリアセンスを行うべき時刻は、同期がとれた時点からHearing intervalだけ経過した後の時刻である。
【００７０】
なお、センス周期からHearing periodを減算した結果を、Hearing intervalと定義する流儀もある。ただし一般には、Hearing intervalは、Hearing periodに対して十分に長いので、上記のいずれの定義を採用しても、大きな差はない。
【００７１】
上記のように、上位ノードＰが、キャリアセンス用の信号とともに制御信号を周期的に送信する場合には、Hearing intervalは、このセンス周期と一致するが、一旦通信時間割がクラスタ１０１内で共有された後は、キャリアセンスのセンス周期がクラスタ１０１内で共有された後は、必ずしも、同期用の制御信号を周期的に送信する必要はない。たとえば、各種の設定情報が変更された場合にのみ、上位ノードＰから、キャリアセンスセンス周期に合わせて制御信号を送信する、という手法を採用しても良い。
【００７２】
また、本実施形態では、制御信号に、以下のような情報を含めるものとする。
（１）当該上位ノードＰが、木構造においてヘッドノードＨからどれだけ離れているかを表す段数（ホップ数）。すなわち、ヘッドノードＨと上位ノードＰとのホップ距離h。
（２）当該上位ノードＰに係る現在当該クラスタ１０１に属しているノードによる通信流量v（単位時間あたりの通信量）。典型的には、ビーコン信号送信周期内においてどれだけのチャネルが実際にデータ通信に利用されたか、の減衰平均等を用いる。
【００７３】
このほか、通信のエラー率などの情報を含めることとしても良い。
【００７４】
いずれの場合であっても、上位ノードＰおよび下位ノードＣは、Hearing interval内のHearing periodにおいてキャリアセンスを行う。
【００７５】
各下位ノードＣは、定期的に上位ノードＰが送信する（可能性がある）設定信号のキャリアセンスを定期的に行うことで、クラスタ１０１における各種設定が変更されていないかを確認する。
【００７６】
なお、上位ノードＰが周期的に制御信号を送信しない態様では、このクラスタ１０１が現在も存続していることを確認するためには、上位ノードＰがキャリアセンスを行う時間帯に、制御信号を送るよう、下位ノードＣから依頼する信号を送信すれば良い。
【００７７】
このような構成を採用することで、各端末装置１２１は、自身が信号を送信する必要がなく、自身が信号を受信する必要もない時間帯を把握することができる。
【００７８】
このように、ある時刻からある時刻までは通信を行う必要があり、ある時刻からある時刻までは通信を行う必要がない、という設定情報を、以下「時間割」と呼ぶ。上記のように、１つのクラスタにおいて共有される時間割は、上位ノードＰにおいて決定され、下位ノードＣに設定される。これによって、上位ノードＰと下位ノードＣで、同じ時間割が利用されることになる。
【００７９】
本実施形態では、送受の必要がない時間帯には、端末装置１２１が自律的に省電力モードに移行することとし、キャリアセンスをするときや、自身が受信する時間帯となったとき、自身が送信する時間帯となったときには、通常電力モードに復帰することとする。このようにして、各端末装置１２１の電力消費を抑制し、運用可能時間を長くすることとする。
【００８０】
本願に係る技術は、このようなスター形のネットワークを組み合わせて、複数のクラスタを木構造状に連結する態様に適用される。
【００８１】
図２は、複数のクラスタ１０１をゲートウェイが連結する様子を示す説明図である。以下、本図を参照して説明する。
【００８２】
本図に示すように、複数のクラスタ１０１のそれぞれには、複数の端末装置１２１が含まれているが、中には、２つのクラスタ１０１に属する端末装置１２１が存在する。
【００８３】
このように、２つのクラスタ１０１に属する端末装置１２１は、ゲートウェイノードと呼ばれ、本図では、記号Ｇで示している。
【００８４】
ゲートウェイノードＧが属するクラスタ１０１は２つであるが、一方のクラスタでは、ゲートウェイノードＧは図１における下位ノードＣに相当し、他方のクラスタでは、ゲートウェイノードＧは図１における上位ノードＰに相当する。
【００８５】
一方、１つのクラスタ１０１に属する端末装置１２１であって、そのクラスタ１０１において上位ノードＰとして機能するものは、ヘッドノードと呼ばれ、本図では、記号Ｈで示している。
【００８６】
それ以外の端末装置１２１は、１つのクラスタ１０１に属し、そのクラスタ１０１において下位ノードＣとして機能する。このような端末装置１２１は、ノーマルノードと呼ばれ、本図では、記号Ｎで示している。
【００８７】
このような構成では、ヘッドノードＨやゲートウェイノードＧを介して、全端末装置１２１がツリー状に連結される。
【００８８】
ここで、ヘッドノードは、木構造でいう「根」に相当する。ノーマルノードは、木構造でいう「葉」に相当する。ゲートウェイノードは、木構造でいう「中間ノード」に相当する。
【００８９】
したがって、各端末装置１２１の間の通信は、このツリーをたどることによって可能となる。
【００９０】
たとえば、すべてのノードから送信される情報をヘッドノードに集約する際には、木構造の葉から根に向かって、適宜中間ノードを経由して伝送を行えば良いし、ヘッドノードから各ノードに対して情報を伝達する際には、木構造の根から葉に向かって、適宜中間ノードを経由して伝送を行うことになる。
【００９１】
ここで、上記のように、あるクラスタ１０１における上位ノードＰは、そのクラスタ１０１における時間割を管理する。
【００９２】
ゲートウェイノードＧは、他のゲートウェイノードＧもしくはヘッドノードＨから、自身が下位ノードＣとして参加するクラスタ１０１の時間割を設定される。
【００９３】
一方、ゲートウェイノードＧは、自身が上位ノードＰとして参加するクラスタ１０１の時間割を自身で設定する。
【００９４】
そこで、ゲートウェイノードＧは、２つの時間割ができるだけ重ならないように、特に、両者のキャリアセンスを行うべき時刻が重ならないように設定するのが好適である。このように構成した場合には、１つのゲートウェイノードＧを介して２つのクラスタ１０１が近接したとしても、互いに通信が干渉し合わないようにすることもできる。
【００９５】
なお、実用的には、ゲートウェイノードＧが、その上位ノードとは独立に時間割を設定するだけで十分である。この場合、両者のキャリアスキャンの時刻が偶然重なってしまうこともありうる。
【００９６】
なお、本図に示されるヘッドノードＨとゲートウェイノードＧとのホップ距離は、１もしくは２であり、ヘッドノードＨとノーマルノードＮとのホップ距離は、１乃至３である。すなわち、木構造に沿ってあるノードから他のノードへたどったときの枝の本数が、両者のホップ距離に相当する。
【００９７】
図３は、本実施形態に係る端末装置１２１の概要構成を示す説明図である。以下、本図を参照して説明する。
【００９８】
端末装置１２１は、スキャン部２０１、ノード設定部２０２、送信部２０３、受信部２０４、センス部２０５、抑制部２０６、時刻設定部２０７、中継部２０８を備える。このほか、チャネル数かセンス周期を決定して時刻設定部２０７に与える決定部（図示せず。決定部は、時刻設定部２０７と一体に構成することもできる。）を、備えることとしても良い。
【００９９】
典型的には、端末装置１２１は、ソフトウェアラジオや通信機能を有するコンピュータ等により実現され、ＣＰＵ（Central Processing Unit）や各種電子回路が通信回路、通信機器を制御することによって実現される。
【０１００】
さて、スキャン部２０１は、電源投入時等、いずれかのクラスタに参加しようとする場合に、受信部２０４を連続して駆動して、他の端末装置１２１が存在するか否かを調べる。
【０１０１】
すでにクラスタ１０１が形成されていれば、そのクラスタ１０１の上位ノードＰからキャリアセンス用の制御信号がビーコンとして放送されているはずであるから、これを検知することとなる。
【０１０２】
このほか、スキャン部２０１は、Hearing periodに対するHearing intervalがある閾値（定数、あるいは、端末装置１２１の電源残量に対して定められる値）を超える場合や、通信の成功率が目標とする成功率に対して大幅に低くなった場合等、上位ノードＰを切り替える必要があると判断した場合にも、受信部２０４を連続して駆動して、他の上位ノードＰが存在するか否かを調べる。
【０１０３】
なお、ツリー形のネットワークを形成できるようにするためには、下位ノードＣであっても、自身の存在を放送する制御信号を送信することとするのが典型的である。
【０１０４】
当該下位ノードＣがゲートウェイノードＧでもある場合には、自身が上位ノードＰとして機能する際に、クラスタ１０１に属する下位ノードＣにセンスされるための制御信号を、Hearing periodで送信する。ゲートウェイノードＧが属する２つのクラスタ１０１における時間割は、上記のように重複しないので、スキャンの際にも、ノードの区別が容易となる。
【０１０５】
当該下位ノードＣがノーマルノードＮである場合には、上記のような制御信号の送信は行わないが、ノーマルノードＮが通信を行う際に、他のノードがスキャン可能なように、自身の情報を含む信号を送出するようにする。たとえば、ＴＤＭＡの場合には、自身に割り当てられたスロットの先頭で必ずこの情報を送信することとすれば良いし、ＣＳＭＡの場合には、スロットを確保するためのこの情報を送信することとなる。そこで、これらの情報をスキャンするのである。
【０１０６】
Hearing intervalが定数である構成においては、スキャン部２０１によるスキャンは、Hearing intervalの時間長だけ行うことによって、通信可能なすべてのノードをスキャンすることが可能となる。Hearing intervalが変化するような態様では、ある程度の合理的な時間長だけスキャンを行うこととすれば良い。
【０１０７】
このスキャン結果に基づいて、ノード設定部２０２は、
（１）他の端末装置１２１が発見できなければ、自身をヘッドノードＨに設定し、
（２）発見できた他の端末装置１２１がヘッドノードＨであれば、自身を当該ヘッドノードＨの下位ノードＣとなるように、当該ヘッドノードＨへ登録を申し込み、
（３）発見できた他の端末装置１２１がゲートウェイノードＧであれば、自身を当該ゲートウェイノードＧの下位ノードＣとなるように、当該ゲートウェイノードＧへ登録を申し込み、
（３）発見できた他の端末装置１２１がノーマルノードＮであれば、当該ノーマルノードＮの動作モードをゲートウェイノードＧに移行させ、自身を当該ゲートウェイノードＧの下位ノードＣとなるように、当該発見された他の端末装置１２１へ登録を申し込む。
【０１０８】
なお、この申し込みは、送信部２０３を介して行う。
【０１０９】
このほか、ノード設定部２０２は、スキャン部２０１のスキャンの結果に応じて上位ノードＰを切り替える処理も行う。
【０１１０】
センス部２０５は、自身が属するクラスタ１０１が持続していることを確認するため、自身の上位ノードＰによって設定された周期的な時刻に、受信部２０４を介してキャリアセンスを行う。
【０１１１】
抑制部２０６は、送信部２０３や受信部２０４の電力消費を制御するもので、クラスタ１０１内で共有される時間割に基づいて、自身の送信の必要がない時間帯には送信部２０３を省電力モードとし、自身の受信の必要がない時間帯には受信部２０４を省電力モードとすることで、端末装置１２１全体の消費電力を抑制する。また、このような時間帯に合わせて、適宜、他の各部の電力消費を抑制するように設定するのが典型的である。
【０１１２】
中継部２０８は、当該端末装置１２１が上位ノードＰとして機能している場合に、他の端末装置１２１同士の通信を中継するもので、受信部２０４ならびに送信部２０３と協調動作する。
【０１１３】
ある端末装置１２１が、あるデータを他の端末装置１２１（同じクラスタ１０１に属しているとは限らない。）を最終宛先として伝送したい場合に、送信部２０３は、以下のように動作するのが典型的である。
（１）当該端末装置がノーマルノードＮである場合、そのデータに最終宛先を指定したまま、自身が属するクラスタ１０１の上位ノードＰに送信する。
（２）当該端末装置がヘッドノードＨもしくはゲートウェイノードＧである場合、最終宛先までの経路を調べ、その経路に、当該端末装置が上位ノードＰとして含まれるクラスタ１０１の下位ノードＣがあれば、そのデータに最終宛先を指定したまま、当該下位ノードＣへ送信する。
（３）当該端末装置がゲートウェイノードＧである場合、最終宛先までの経路を調べ、その経路に、当該端末装置が下位ノードＣとして含まれるクラスタ１０１の上位ノードＰがあれば、そのデータに最終宛先を指定したまま、当該上位ノードＰへ送信する。
【０１１４】
受信部２０４があるデータを受信すると、中継部２０８が受信されたデータを監視しているため、以下のような処理が実行される。
（１）受信したデータの最終宛先が自身であれば、当該データを、伝送されたデータとして、他の処理に渡す。
（２）受信したデータの最終宛先が自身でなければ、当該データに最終宛先を指定したまま、送信部２０３に処理させる。
【０１１５】
このようにすることで、端末装置１２１間のデータの伝送が可能となる。
【０１１６】
ヘッドノードＨに情報を集約する際には、ノーマルノードＮやゲートウェイノードＧは、自身がヘッドノードＨに伝達する情報は、自身の上位ノードに送信するとともに、ゲートウェイノードＧは、自身の下位ノードから受信した情報を、自身の上位ノードに送信する。
【０１１７】
また、ヘッドノードＨから情報を分配する際には、ヘッドノードＨは、自身の下位ノードに情報を送信し、ゲートウェイノードＧは、自身の上位ノードから受信した情報を、自身の下位ノードに送信する。
【０１１８】
図４は、複数の端末装置１２１の動作を示す説明図である。本図に示す例では、Node 1、Node 2、Node 3の３つの端末装置１２１がやりとりをする状況を考えている。以下では、本図を参照して説明する。
【０１１９】
Node 2に電源が入れられること等を契機として（図示せず。）、Node 2はスキャンを行うが、他の端末装置１２１は存在しないので、Node 2はヘッドノード（Cluster head）として機能することとなる。
【０１２０】
次に、Node 1に電源が入れられる（Power on）。Node 1がスキャン（Scan）を行って、周囲の他の端末装置１２１を探すと、既にNode 2がヘッドノード（Cluster head）として機能しているので、これが発見される。
【０１２１】
すると、Node 1は、Node 2に対しアソシエーション（Assoc.）を行い、Node 2の定める時間割に従うこととなる。
【０１２２】
したがって、Node 1は、Node 2が上位ノードＰであるクラスタ１０１の下位ノードＣとなる。また、Node 1は、ノーマルノード（Normal node）として機能することとなる。
【０１２３】
次にNode 3が立ち上がる（Power on）。Node 3は同様にスキャン（Scan）を行った結果、Node 2は検知できなかったが、Node 1が検知できたものとすると、Node 3は、Node 1へアソシエーション（Assoc.）を行う。
【０１２４】
この要求に対して、Node 1は、ゲートウェイノードＧとしての機能を開始（Start）するため、自身が上位ノードＰとなる新たなクラスタ１０１を形成し、自身が下位ノードＣであるクラスタ１０１とはできるだけ重複しない時間帯に通信を行う時間割を、新たに形成されたクラスタ１０１で共有するように設定する。
【０１２５】
このようにして、Node 2とNode 1からなるクラスタ１０１と、Node 1とNode 3からなるクラスタ１０１と、の、２つのクラスタ１０１が階層的に構成される。
【０１２６】
Node 3からNode 1へ、Node 1からNode 3へ、のデータ伝送は、Node 2が中継するが、Node 2とNode 1の間で通信（Stream）する時間割は、Node 2が設定したものであり、Node 1とNode 3の間で通信（Stream）する時間割は、Node 1が設定したものである。
【０１２７】
ここで、上位ノードＰがシャットダウンされる（Power off）場合等には、その時間割は廃止され、当該クラスタ１０１は消滅することなる。
【０１２８】
たとえば、Node 2が停止（Stop）したり、Node 3からNode 1へ離脱（Disassoc.）要求がされた場合である。
【０１２９】
以下では、理解を容易にするため、まず、端末装置１２１における基本的な構成にかかる技術を説明し、その後に、本実施形態特有の構成について、説明する。
【０１３０】
特に、スキャンによって複数のノードが発見された場合については、本実施形態特有の構成として、後述する。
【０１３１】
すなわち、本実施形態では、適宜上位ノードＰの切り替えを行うことを特徴の一つとするが、以下の説明に係る基本的な構成では、この切り替えの構成は、説明を省略している。
【０１３２】
図５は、端末装置１２１における基本的な構成にかかる状態遷移図である。以下、本図を参照して説明する。
【０１３３】
本図に示すように、端末装置１２１には、状態（Status）が６種類ある。すなわち、
（１）Power offは、電源ｏｆｆの状態を表す。
（２）Disassociatedは、いずれのクラスタ１０１にも属さず、各パラメータが初期値にある状態を表す。
（３）Scannedは、いずれのクラスタ１０１にも属さないが、他ノードの存在等情報を有する状態を表す。
（４）Normal nodeは、あるクラスタ１０１に、下位ノードＣとして参加しており、そのクラスタ１０１の上位ノードの定める時間割に従う状態を表す。
（５）Cluster headは、自身がヘッドノードとなってクラスタ１０１を管理し、時間割を独自に定めて動作している状態を表す。
（６）Gatewayは、自身がゲートウェイノードとなって２つのクラスタ１０１に参加し、一方のクラスタ１０１では、自身が上位ノードＰとなって時間割を定めるが、他方のクラスタ１０１では自身が上位ノードＣとなって設定された時間割にしたがう状態を表す。
【０１３４】
また、本図に示すように、端末装置１２１には、状態遷移を行うための手続（Procedure）が９種類ある。
（１）Resetは、クラスタ１０１に関する情報等、各種パラメータを初期化する。
（２）Scanは、他ノードの存在を調べる。
（３）Startは、Hearing intervalを設定する。
（４）Associate（Assoc.）は、あるノードの下位ノードになりたい旨を通知する。当該あるノードがヘッドノードＨやゲートウェイノードＧである場合には、そのままその下位ノードとなるが、当該あるノードがノーマルノードＣである場合には、当該あるノードの状態が変化する。
（５）Streamは、特定のノードに対し、データパケットを送信する。
（６）Changeは、Hearing intervalを変更する。
（７）Synchronize（Sync.）は、上位ノードＰに対して、下位ノードＣが、Hearing intervalの再同期を要求する。
（８）Disassociate（Disassoc.）は、上位ノードＰに対して、下位ノードＣが、クラスタ１０１から離脱することを通知する。
（９）Stopは、Hearing intervalを廃止し、自身の下位ノードである端末装置１２１に、これを通知する。
【０１３５】
また、各端末装置１２１が管理する情報の一例を以下に示す。
（１）全ノードについて、ノードＩＤ（８ビット）。
（２）全ノードについて、現在のモードがCluster head／Gateway／Normal nodeのいずれであるか（２ビット）。
（３）全ノードについて、当該ノードが果たすことのできる機能が、Normal nodeのみか、それともCluster headやGatewayとして動作しうるか（１ビット）。
（４）全ノードについて、周波数や変調方式などの物理パラメータ（４０ビット程度）。
（５）全ノードについて、当該ノードの優先順位（０−２５５、８ビット）。
（６）上位ノードについて、設定されたHearing interval（０−６５５３５μｓ、１６ビット）。
（７）上位ノードについて、クラスタ内ノード数（０−２５５、８ビット）。
（８）上位ノードについて、クラスタ内ノードＩＤ（８ビット×０−２５５ノード、計２０４８ビット）。
（９）上位ノードについて、クラスタ内ノード別正規化トラヒック（１／２５６−２５６／２５６ｅｒｌ×０−２５５ノード、計２０４８ビット）。この総和が、通信流量vに相当する。
（１０）下位ノードについて、キャリアセンス周期（０−６５５３５μｓ、１６ビット）。
（１１）下位ノードについて、参加するクラスタの上位ノードのノードＩＤ（８ビット）。
（１２）当該ノードのヘッドノードＨからのホップ距離h（４ビット）。
【０１３６】
伝送されるフレームの構造は、典型的には、プリアンブル部、ヘッダ部、ペイロード部からなる。フレームには、以下の９種類がある。
（１）Scan requestは、ヘッドノードもしくはゲートウェイノードに対して、そのクラスタに参加しようとする要求である。
（２）Scan responseは、Scan requestへの応答で、キャリアセンス周期を割り当てる。
（３）Association requestは、ノーマルノードに対して、「ゲートウェイノードになってクラスタを形成」するよう求め、形成されたクラスタに参加しようとする要求である。
（４）Association responseは、Association requestへの応答で、キャリアセンス周期を割り当てる。
（５）Synchronization requestは、上位ノードに対して、キャリアセンス周期の再同期を要求する。
（６）Synchronization responseは、Synchronization requestへの応答である。
（７）Announceは、ノード間で特定の情報を伝達する。
（８）Dataは、通常データである。
（９）Ackは、いわゆる確認応答（Acknowledgement）である。
【０１３７】
以下、各手続の詳細について説明する。
【０１３８】
まず、Reset手続は、ノード内のパラメータを初期化する。
【０１３９】
次に、Scan手続は、以下のように行われる。図６は、Scan手続の流れを示す説明図である。以下、本図を参照して説明する。
【０１４０】
実行ノード（Node 1）が、Scan request  コマンドフレームを送信すると、本コマンドをセンスしたノード（Node 2，Node 3）は、フレーム終了までキャリアセンスを継続する。
【０１４１】
そして、センスしたノードは、フレーム終了時のBackoff時間後に、Scan responseコマンドを返信する。
【０１４２】
Scan responseコマンドには、Scan responseを送信したノードが、上位ノードとなれるかどうか、上位ノードとなった場合のHearing intervalに関する情報が含まれる。
【０１４３】
さらに、Start手続は、ノードのモードや、上位ノード自身が設定するHearing interval、下位ノードが設定されるキャリアセンス周期（これは、Hearing intervalに等しい。）、その他のノード内パラメータを設定する。
【０１４４】
そして、Associate手続は、以下のように行われる。図７は、Associate手続の流れを示す説明図である。以下、本図を参照して説明する。
【０１４５】
Node 1は、Scan結果に基づいて、特定のノード（Node 3）に対してアソシエーションを要求する際に、そのノード（Node 3）が設定しているHearing intervalに従って、Association request  コマンドフレームを送信する。
【０１４６】
受信ノード（Node 3）は、Association responseコマンドを返信する。
【０１４７】
一方、Stream手続は、クラスタ内の他のノードに対してデータを送信するもので、図８は、Stream手続の流れを示す説明図である。
【０１４８】
本図に示すように、クラスタ内で共有される時間割センス周期（Hearing interval）にしたがって、データの伝送が行われる。
【０１４９】
さらに、Change手続は、クラスタ内パラメータの変更をクラスタ内に周知するものである。図９は、Change手続の流れを示す説明図である。
【０１５０】
本図に示すように、Announceコマンドフレームのマルチキャストによって、情報の周知が実現される。
【０１５１】
そして、Synchronize手続は、上位ノードに対して、クラスタ内の下位ノードがHearing interval  の再度通知を要求するものである。図１０は、Synchronize手続の流れを示す説明図である。
【０１５２】
本図に示すように、Sync.requestを送信したNode 1において、Rensponse timeout periodの中でSync.responseが受信される。Rensponse timeout periodが終了した後に、Node 1における再同期がなされる（図示せず）。
【０１５３】
Disassociate手続は、上位ノードに対して、下位ノードが、以降はHearing intervalに従わないことを通知するものである。図１１は、Disassociate手続の流れを示す説明図である。
【０１５４】
本図に示すように、この手続は、上位ノードに対してAnnounceコマンドフレームを送信することで実現される。
【０１５５】
Stop手続は、上位ノードが、Hearing intervalを廃止することをクラスタ内の他ノードに通知するものである。図１２は、Stop手続の流れを示す説明図である。
【０１５６】
本図に示すように、Stop手続は、Announceコマンドフレームのマルチキャストによって実現される。
【０１５７】
さて、本実施形態では、上記のように、上位ノードＰは、自身が管理するクラスタ１０１に参加している下位ノードＣとの間の通信の状況に応じて、アクティブ区間である主チャネルの数を変化させることにより、Hearing intervalに対するHearing periodの比を変化させる。
【０１５８】
ある端末装置１２１におけるHearing periodは、制御信号の送受信はもちろん、データ伝送そのものにも利用される。Hearing periodにキャリアセンスによって自分宛の信号を検知した場合には、Hearing period終了の後も、そのまま受信を継続することによって、データを受け付けるようにするのが典型的である。すなわち、Hearing periodにおいてデータ送受が開始され、データの量が多い場合には、適宜、非アクティブ区間（副チャネル）においても、データ通信が継続されることになる。
【０１５９】
したがって、Hearing intervalに対するHearing periodの割合が高くなれば、各端末装置１２１における消費電力は増大するが、伝送キャパシティも大きくなる。したがって、下位ノードＣの個数が多い場合に好適である。
【０１６０】
逆に、Hearing intervalに対するHearing periodの割合が低くなれば、各端末装置１２１における消費電力は低減できるが、伝送キャパシティは低くなる。したがって、下位ノードＣの個数が少ない場合に好適である。
【０１６１】
さて、一般に、通信成功率は、木構造全体で、一つの目標値を達成するように設定されることが多い。たとえば、「木構造のヘッドノードＨと各ノードとのフレーム成功率は、９５パーセント以上」等のように、伝送キャパシティの条件が定められている場合、下位ノードＣと上位ノードＰとの間のトラフィックの状況によって、上位ノードＰは、Hearing intervalに対するHearing periodの割合を調整することになる。
【０１６２】
本実施形態では、１つのクラスタに着目して、通信流量Vと通信成功率Sと、チャネル数nのHearing intervalに対する割合と、を実測し、この対応関係を表す関数Fを用いて、木構造全体における通信成功率の目標値を達成することとしている。
【０１６３】
図１３は、通信流量Vの逆数に比例する入力フレーム平均間隔（Average interval of input frames）、通信成功率Sに相当するフレーム成功率（Frame success rate）、チャネル数nに比例するアクティブ区間比率（ＡＰＲ；Active Period Ratio）の関係を示すグラフである。以下、本図を参照して説明する。
【０１６４】
本図では、ビーコン送信周期（Hearing interval）に対するアクティブ区間（Hearing period）の比率ＡＰＲとして、０.００５、０.０１、０.０２５、０.０５、０.１、０.２５を採用した場合の、ホップ距離１の通信のフレーム成功率と、入力フレーム平均間隔と、の関係がグラフとして図示されている。
【０１６５】
このような実測の結果、もしくは、シミュレーションの結果を利用するとともに、適宜補間演算を行うことによって、あるフレーム成功率と、ある入力フレーム平均間隔と、が与えられたときの、ＡＰＲの最小値（最適値）を求めることが可能となる。
【０１６６】
フレーム成功率は通信成功率Sと、入力フレーム平均間隔は通信流量Vと、アクティブ区間比率はアクティブ区間のチャネル数Nと、それぞれ変換が可能であるから、図１３に示すようなグラフに基づいて、
N = F(V，S)
を満たすような関数Fを定めることができることになる。
【０１６７】
各上位ノードは、この関数Ｆを利用して、Hearing periodのチャネル数を定めるのであるが、本実施形態では、木構造全体における通信成功率の目標値sを達成することが求められる。
【０１６８】
そこで、本実施形態では、各上位ノードは、
（１）木構造全体における通信成功率の目標値s、
（２）当該上位ノードに対する実際の通信流量v、
（３）当該上位ノードとヘッドノードＨとのホップ距離h、
に基づいて、当該クラスタチャネル数nを、
n = F(v，s1/h)
のように決定するのである。
【０１６９】
この処理は、端末装置１２１を制御するＣＰＵや電子回路が定期的に行うこととしても良いし、通信流量vが大幅に変化した場合などに動的に対応することとしても良い。
【０１７０】
さて、図１４は、ヘッドノードとゲートウェイノードが割り当てるHearing intervalとHearing periodの様子を示す説明図である。以下、本図を参照して説明する。
【０１７１】
本図に示すように、Node 1によって設定されたHearing periodと、Node 2によって設定されるHearing periodは、できるだけ互いに重複しないように設定されている。これは、ゲートウェイノードであるNode 2が、重複を避けるように、Hearing intervalおよびHearing periodを設定するからである。
【０１７２】
また、本図においては、Hearing intervalに対するHearing periodの割合も異なっている。これは、クラスタ１０１内の下位ノードＣの個数や、伝送の状態が異なるためである。
【０１７３】
パケット伝送の成功率／エラー率を求める手法としては、以下のようなものがある。すなわち、下位ノードＣが上位ノードＰにデータパケットを送る際、ならびに、上位ノードＰが下位ノードＣにデータパケットを送る際に、それぞれ、パケットの連番の番号を振っておく。そして、受信側では、受信できたパケットの番号に抜けがないか調べることで、伝送成功率／エラー率を求めることができる。
【０１７４】
また、ノード同士の通信に、コネクション型のプロトコルが採用されている場合には、再送要求が生じた頻度を、パケット伝送のエラー率とすることができる。
【０１７５】
以下では、本実施形態の特徴である上位ノードＰの切り替えの詳細について説明する。下位ノードＣは、ゲートウェイノードである場合と、ノーマルノードである場合と、の２通りがあるが、いずれの場合においても、その上位ノードＰを切り替えることが可能である。
【０１７６】
ここで、自身が属するクラスタ１０１の上位ノードＰとの通信が可能であるにもかかわらず、上位ノードＰを切り替えて、他のノードを上位ノードとして選択すると、自身が属するクラスタ１０１を変更することとなる。この場合、自身がノーマルノードＮであれば、切り替えの後も自身はノーマルノードＮのままであり、自身がゲートウェイノードＧであれば、切り替えの後も自身はゲートウェイノードＧのままである。
【０１７７】
さて、ある下位ノードＣが上位ノードＰの切り替えを検討する契機としては、以下のような状況が考えられる。
（１）通信効率が悪い場合。当該下位ノードＣから送出したパケットが宛先に到達せず再送を行った割合、現在の上位ノードＰから通知されたパケット誤り率、現在のＨＰＲ等がある閾値を超えた場合、あるいは、ある範囲から逸脱した場合、とするのが典型的である。
（２）電源残量が少なくなった場合。たとえば、現在の電源残量から見て現在のＨＰＲが適切な値（あらかじめ当該下位ノードＣにおいて設定された省電力パラメータ）となっているかを見るものである。
（３）定期的に行う場合。一定期間が経過するごとに、他の上位ノードＰへの切り替えを検討するものである。なお、上記（１）（２）の場合であっても、前回切り替えを検討してから、次に切り替えを検討するまでには、少なくとも一定期間の経過を要するように構成するのが典型的である。
【０１７８】
切り替えを検討することとなった場合には、Scan手続と同様の処理を実行する。当該Scan手続によって、上位ノードＰが１つだけ発見された場合には、当該発見された上位ノードＰは、現在参加しているクラスタ１０１の上位ノードＰと考えられるから、上位ノードＰの切り替えは不要である。
【０１７９】
複数の上位ノードＰが発見された場合には、切り替え先の上位ノードＰを、以下のように決定する。
（１）各上位ノードＰについて、制御信号から得られる情報に基づいて、当該下位ノードＣが当該上位ノードＰへ切り替えたと仮定した場合の、アクティブ区間のチャネル数を推定する。
（２）推定されたチャネル数に基づいて、通信効率の観点から比較を行って、いずれかの上位ノードＰを選択する。比較の具体的な手法については後述する。
（３）選択された上位ノードＰが、現在の上位ノードＰと一致する場合には、特段の処理は必要としないが、異なる場合には、現在の上位ノードＰからのDisassociate手続と、選択された新たな上位ノードＰへのAssociate手続を実行して、上位ノードＰを切り替える。
【０１８０】
また、電源投入後など、端末装置１２１が木構造に新規に参加しようとする場合に、Scan結果が複数であった場合には、上記（１）（２）と同様の処理を行って、参加先のクラスタ１１０の上位ノードＰを選択し、その上位ノードＰへのAssociate手続を実行する。
【０１８１】
以下では、通信効率の観点から比較を行う手法について、具体的に説明する。手法について説明する。
【０１８２】
まず、切り替えを検討している下位ノードＣに相当する端末装置１２１は、複数の上位ノードＰ（０番目、１番目、…、Ｎ番目からなり、合計（Ｎ＋１）個）のそれぞれから送信されている制御信号を見て、以下のような情報を得たものとする。ただし、当該下位ノードＣは、０番目の上位ノードＰが管理するクラスタ１０１に属しているものとする。
（１）各上位ノードＰとヘッドノードＨとの間のホップ距離。以下、i番目の上位ノードＰとヘッドノードＨとの間のホップ距離を、h[i]と表記する。
（２）各上位ノードＰが管理するクラスタ１０１における通信流量。以下、i番目の上位ノードＰのクラスタ１０１における通信流量をv[i]と表記する。
【０１８３】
これらの情報と、当該下位ノードＣ自身の通信流量wを用いて、通信効率の観点から比較を行う。
【０１８４】
すなわち、０番目の上位ノードＰが管理するクラスタ１０１の、切り替え前のチャネル数は、
F(v[0]，s1/h[0])
と表現することができる。
【０１８５】
当該下位ノードＣが離脱すると、当該クラスタ１０１におけるチャネル数は、
F(v[0]-w，s1/h[0])
に更新される、と考えられる。
【０１８６】
一方、当該下位ノードＣが、ｉ番目の上位ノードＰが管理するクラスタ１０１に参加するものとすると、当該クラスタ１０１におけるチャネル数は、
F(v[i]，s1/h[i])
から
F(v[i]+w，s1/h[i])
に更新される、と考えられる。
【０１８７】
すなわち、当該下位ノードＣが、上位ノードＰを0番目からi番目に切り替えると、木構造全体の総チャネル数の変化Δ[ｉ]は、
Δ[ｉ]  ＝  F(v[0]-w，s1/h[0]) + F(v[i]+w，s1/h[i])- F(v[0]，s1/h[0]) - F(v[i]，s1/h[i])
となる。この値をｉ  ＝  ０，１，…，Ｎのそれぞれについて計算する。
【０１８８】
総チャネル数は、伝送効率や消費電力の観点からすると、できるだけ小さい方が望ましい。したがって、Δ[０]，Δ[１]，…，Δ[Ｎ]のうち、値が最小のものがΔ[ｋ]であるとすると、k番目の上位ノードＰを選択した場合に、木構造全体の総チャネル数が最小となるから、k番目の上位ノードＰを切り替え先として選択するのが良い、ということになる。
【０１８９】
この場合、切り替えには手間がかかること、Δ[０]  ＝  ０であることから、
Δ[ｋ]＜０
が成立し、かつ、最小となるようにkを選べば良い。
【０１９０】
このほか、もっと単純に、iの値として0からNのN+1通りについて、
（０）F(v[0]，s1/h[0]),
（１）F(v[1]+w，s1/h[1]),
（２）F(v[2]+w，s1/h[2])，…,
（Ｎ）F(v[N]+w，s1/h[N])
を計算し、これが最小となるようなiを選択して、当該i番目の上位ノードＰに切り換える、という手法を採用しても良い。
【０１９１】
なお、切り替え後の上位ノード（i番目）のホップ距離h[i]が、現在の上位ノード（０番目）のホップ距離h[0]に対して、
h[0]≧h[i]
を満たすことを要件としても良い。すなわち、切り替えの後には、上位ノードＰがヘッドノードＨに近付くか、もしくは、ヘッドノードＨとのホップ距離が同じであることを、切り替え先の条件とする。
【０１９２】
このほか、チャネル数最小となるような切り替え先の上位ノードの候補が複数発見された場合には、ヘッドノードＨに最も近い上位ノードを切り替え先として選択することが望ましい。
【０１９３】
図１５は、本実施形態によって通信を行った場合と、ホップ距離を考慮しない手法によって通信を行った場合との通信成功率を比較するグラフである。以下、本図を参照して説明する。
【０１９４】
本図では、通信成功率の目標値（エンドエンドのターゲット）として、０.８を設定し、ヘッドノードＨと上位ノードＰとのホップ距離（Depth of the tree）が１乃至５であり、ならびに、上位ノードＰ（親）に対する下位ノードＣ（子）の数が１、３、５の場合について、本実施形態ならびにホップ数を考慮しない態様（すなわち、関数Fに与える成功率において、「1/h」の累乗根計算を行わない場合）により通信を行った場合の全体のフレーム成功率（Frame success rate）を図示している。
【０１９５】
本図に示すように、ホップ距離が長くなると、実際のフレーム成功率は通信成功率の目標値よりも低くなってしまうが、本実施形態の手法によれば、従来の手法に比べて、劣化を抑制することができる。
【０１９６】
なお、各端末装置１２１は、定期的に、切り替えを検討することとしても良いし、通信成功率が目標値から大幅に離れた場合や、電源残量が大幅に変化した場合に、スキャンを実行しても良い。さらに、すなわち、端末装置１２１が切り替えを検討してスキャンを実行しても、結局切り替えは行わなかった後は、一定期間は、切り替え用のスキャンは行わないこととすることによって、効率良くスキャン処理を実行することができる。
【０１９７】
このように、本実施形態においては、通信効率や電源残量などに基づいて上位ノードの切り替えを適切に行うことによって、木構造ネットワーク全体の通信効率を向上させたり、電力消費を抑制することができるようになる。
【０１９８】
このほか、各クラスタ１０１ごとに、データ通信に用いる物理層の諸元（変調方式や通信電力）を適宜設定することとしても良い。この場合には、ビーコンとなる制御信号や、アソシエーション信号の送受に用いられる諸元は、全クラスタ１０１で共通とすることが必要であるが、チャネル数の割り当てにおいては、物理層の諸元を考慮することができる。
【０１９９】
たとえば、データ通信の段階では、あるクラスタ１０１では、ＴＤＭＡを用い、他のクラスタ１０１では、ＣＳＭＡを用い、別のクラスタ１０１では、ＣＤＭＡを用いる、という態様を採用しても良い。
【０２００】
このほか、同じＴＤＭＡを利用する場合であっても、時間スロットの幅を変更したり、データ通信に用いる周波数帯や変調方式を変更する等、種々の態様を採用することができる。
【実施例２】
【０２０１】
上記実施形態では、上位ノードＰとヘッドノードＨとのホップ距離hに基づいて、チャネル数を決定していたが、このホップ距離hとして、以下のようなものを採用することもできる。
【０２０２】
第１は、現在の木構造における最大ホップ距離hmaxを利用する、という手法である。本手法では、上記手法に比べて、実際の通信成功率が目標値により一層近付くこととなると予想される。hmaxは、規格上可能な最大値の定数を採用しても良い。この場合、木構造内における全ノードで、共通のhmaxを利用することとなる。
【０２０３】
また、ヘッドノードＨへ木構造内の全ノードからの送信が行われる場合には、ヘッドノードＨが現在の木構造の形状を管理することが可能であるから、ヘッドノードＨから各ノードへ伝達するように構成することも可能である。
【０２０４】
第２は、上位ノードＰの切り替えを検討している下位ノードＣがこれまでに行ったデータ通信におけるパケットの発信元と送付先のホップ距離の平均を用いる、という手法である。本手法では、下位ノードＣのデータ通信の傾向に応じた調整が可能になる。すなわち、各ノードごとに、そのノードのデータ通信の傾向に応じてホップ距離が変化することになる。
【０２０５】
第３は、第２の形態の変形であり、木構造全体におけるデータ通信の発信元と送付先のホップ距離の平均を用いる手法である。上記のように、ヘッドノードＨに各種の情報が集中する場合には、ヘッドノードＨにおいてこの平均を求め、木構造内の全ノードにこの情報を分配することが可能である。
【０２０６】
このほか、上記の態様によって得られる値に、たとえば１を加算する等、適当な演算を施したものを、ホップ距離として採用することも可能である。
【産業上の利用可能性】
【０２０７】
以上説明したように、本発明によれば、アドホックに形成される通信効率の良い通信ネットワークを構成するのに好適な通信システム、端末装置、その制御方法、ならびに、これらをコンピュータにより実現するためのプログラムを提供することができる。
【符号の説明】
【０２０８】
１０１  クラスタ
１２１  端末装置
２０１  スキャン部
２０２  ノード設定部
２０３  送信部
２０４  受信部
２０５  センス部
２０６  抑制部
２０７  時刻設定部
２０８  中継部
【図１】
0005546005.tif 000002
【図２】
0005546005.tif 000003
【図３】
0005546005.tif 000004
【図４】
0005546005.tif 000005
【図５】
0005546005.tif 000006
【図６】
0005546005.tif 000007
【図７】
0005546005.tif 000008
【図８】
0005546005.tif 000009
【図９】
0005546005.tif 000010
【図１０】
0005546005.tif 000011
【図１１】
0005546005.tif 000012
【図１２】
0005546005.tif 000013
【図１３】
0005546005.tif 000014
【図１４】
0005546005.tif 000015
【図１５】
0005546005.tif 000016