(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-01-07
(45)【発行日】2022-01-24
(54)【発明の名称】無線通信端末、無線通信システム、無線通信方法、およびプログラム
(51)【国際特許分類】
H04W 52/02 20090101AFI20220117BHJP
H04W 84/22 20090101ALI20220117BHJP
H04W 40/24 20090101ALI20220117BHJP
【FI】
H04W52/02 111
H04W84/22
H04W40/24
(21)【出願番号】P 2020525112
(86)(22)【出願日】2018-06-19
(86)【国際出願番号】 JP2018023247
(87)【国際公開番号】W WO2019244233
(87)【国際公開日】2019-12-26
【審査請求日】2020-11-20
(73)【特許権者】
【識別番号】000000376
【氏名又は名称】オリンパス株式会社
(74)【代理人】
【識別番号】100149548
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100139686
【氏名又は名称】鈴木 史朗
(74)【代理人】
【識別番号】100147267
【氏名又は名称】大槻 真紀子
(74)【代理人】
【識別番号】100207789
【氏名又は名称】石田 良平
(72)【発明者】
【氏名】清重 龍一
【審査官】▲高▼木 裕子
(56)【参考文献】
【文献】国際公開第2016/194204(WO,A1)
【文献】特表2010-524278(JP,A)
【文献】国際公開第2016/189933(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04B 7/24 - 7/26
H04W 4/00 - 99/00
(57)【特許請求の範囲】
【請求項1】
無線通信システムにおける無線通信端末であって、
前記無線通信システムは、集約装置および2つ以上の前記無線通信端末を含み、
前記無線通信端末は、
無線通信機と、
メモリと、
コントローラと、
を有し、
前記無線通信機が、通信経路情報を含む経路探索パケットを周辺端末から受信した場合、前記コントローラは、前記無線通信機に、前記経路探索パケットを隣接端末へ送信させ、前記通信経路情報は、前記経路探索パケットの通信経路を示し、前記周辺端末は、前記集約装置および前記隣接端末のいずれか1つであり、前記隣接端末は、前記通信経路上で自端末に隣接する前記無線通信端末であり、
前記コントローラは、前記無線通信機が前記周辺端末から受信した前記経路探索パケットに基づいて上位端末を判別し、前記上位端末は前記隣接端末であり、第1の数は第2の数よりも小さく、前記第1の数は、前記通信経路において前記集約装置と前記上位端末との間に存在する前記無線通信端末の数であり、前記第2の数は、前記通信経路において前記集約装置と前記自端末との間に存在する前記無線通信端末の数であり、
前記コントローラは、前記無線通信機が前記隣接端末から受信した通知に基づいて、前記隣接端末の状態情報を前記メモリに記憶し、前記状態情報は、休眠中および起床中のいずれか1つを示し、
前記無線通信機が休眠宣言パケットを休眠宣言端末から受信し、かつ前記休眠宣言端末が前記上位端末である場合、前記コントローラは、前記状態情報に基づいて第1の休眠判断を実行し、前記休眠宣言端末は、前記休眠宣言パケットを送信した前記隣接端末であり、
前記休眠宣言端末以外に起床中の前記上位端末が存在するならば、前記コントローラは、前記第1の休眠判断において前記休眠宣言端末の休眠を認めると判断し、前記休眠宣言端末以外に起床中の前記上位端末が存在しなければ、前記コントローラは、前記第1の休眠判断において前記休眠宣言端末の休眠を認めないと判断し、
前記休眠宣言端末の休眠を認めないと前記コントローラが判断した場合、前記コントローラは、前記無線通信機に、休眠禁止パケットを前記休眠宣言端末へ送信させる
無線通信端末。
【請求項2】
前記コントローラは、前記無線通信機に、前記休眠宣言パケットを前記隣接端末へ送信させ、
前記無線通信機が前記休眠宣言パケットを送信した後の所定期間内に前記無線通信機が前記隣接端末から前記休眠禁止パケットを受信しない場合、前記コントローラは、前記無線通信機に、休眠通知パケットを前記隣接端末へ送信させ、
前記無線通信機が前記休眠通知パケットを送信した後、前記コントローラは、消費電力が低減された休眠状態に前記自端末を移行させるための休眠処理を実行し、
前記休眠処理が実行された後、前記コントローラは、前記自端末を前記休眠状態から復帰させるための起床処理を実行し、
前記起床処理が実行された後、前記コントローラは、前記無線通信機に、起床通知パケットを前記隣接端末へ送信させ、
前記コントローラは、前記無線通信機が前記隣接端末から受信した前記休眠通知パケットと、前記無線通信機が前記隣接端末から受信した前記起床通知パケットとに基づいて、前記状態情報を前記メモリに記憶する
請求項1に記載の無線通信端末。
【請求項3】
前記コントローラは、前記無線通信機が前記周辺端末から受信した前記経路探索パケットに基づいて、等位端末を判別し、第3の数は第4の数と同じであり、前記第3の数は、前記通信経路において前記集約装置と前記自端末との間に存在する前記無線通信端末の数であり、前記第4の数は、前記通信経路において前記集約装置と前記等位端末との間に存在する前記無線通信端末の数であり、
前記所定期間内に前記無線通信機が前記休眠禁止パケットを前記隣接端末から受信し、かつ、休眠中である前記等位端末の前記状態情報が前記メモリに記憶されている第1の場合、前記コントローラは、休眠中の前記等位端末が起床したタイミングで、前記無線通信機に、前記休眠宣言パケットを前記隣接端末へ送信させる
請求項2に記載の無線通信端末。
【請求項4】
前記休眠通知パケットは、前記休眠通知パケットを送信する前記無線通信端末の休眠期間に関する期間情報を含み、
前記第1の場合、前記自端末が次に休眠を開始する前に、前記コントローラは、前記期間情報に基づいて、タイミング判断を実行し、
前記コントローラは、前記タイミング判断において、休眠中である前記等位端末の起床予定時刻が休眠予定時刻よりも早い否かを判断し、前記起床予定時刻は、前記等位端末が休眠を終了する時刻であり、前記休眠予定時刻は、前記自端末が休眠を開始する時刻であり、
前記起床予定時刻が前記休眠予定時刻よりも早いと前記コントローラが判断した場合、前記コントローラは、前記起床予定時刻において、前記無線通信機に、前記休眠宣言パケットを前記隣接端末へ送信させる
請求項3に記載の無線通信端末。
【請求項5】
前記休眠宣言パケットは、前記休眠宣言端末の休眠期間に関する期間情報を含み、
前記コントローラは、前記無線通信機が前記周辺端末から受信した前記経路探索パケットに基づいて、等位端末を判別し、第3の数は第4の数と同じであり、前記第3の数は、前記通信経路において前記集約装置と前記自端末との間に存在する前記無線通信端末の数であり、前記第4の数は、前記通信経路において前記集約装置と前記等位端末との間に存在する前記無線通信端末の数であり、
前記所定期間内に前記無線通信機が前記休眠禁止パケットを前記隣接端末から受信し、かつ前記休眠宣言端末が前記等位端末である場合、前記コントローラは第2の休眠判断を実行し、
前記コントローラは、前記第2の休眠判断において、前記自端末の休眠予定時刻および前記休眠宣言端末の前記休眠期間に基づいて、前記自端末および前記休眠宣言端末が同時に休眠している期間があるか否かを判断し、前記休眠予定時刻は、前記自端末が休眠を開始する時刻であり、
前記自端末および前記休眠宣言端末が同時に休眠している期間があると前記コントローラが判断した場合、前記コントローラは、前記第2の休眠判断において前記休眠宣言端末の休眠を認めないと判断する
請求項2に記載の無線通信端末。
【請求項6】
前記コントローラは、前記無線通信機が前記周辺端末から受信した前記経路探索パケットに基づいて下位端末を判別し、第5の数は第6の数よりも大きく、前記第5の数は、前記通信経路において前記集約装置と前記下位端末との間に存在する前記無線通信端末の数であり、前記第6の数は、前記通信経路において前記集約装置と前記自端末との間に存在する前記無線通信端末の数であり、
前記コントローラは、前記等位端末が前記下位端末の前記通信経路に含まれるか否かを示す迂回情報を前記メモリに記憶し、
前記コントローラは、前記第2の休眠判断において、前記迂回情報に基づいて、前記休眠宣言端末が、前記下位端末の前記通信経路に含まれる前記等位端末であるか否かを判断し、
前記自端末および前記休眠宣言端末が同時に休眠している期間があると前記コントローラが判断し、かつ前記休眠宣言端末が、前記下位端末の前記通信経路に含まれる前記等位端末であると前記コントローラが判断した場合、前記コントローラは、前記第2の休眠判断において前記休眠宣言端末の休眠を認めないと判断する
請求項5に記載の無線通信端末。
【請求項7】
前記コントローラは、前記無線通信機が前記周辺端末から受信した前記経路探索パケットに基づいて下位端末を判別し、第5の数は第6の数よりも大きく、前記第5の数は、前記通信経路において前記集約装置と前記下位端末との間に存在する前記無線通信端末の数であり、前記第6の数は、前記通信経路において前記集約装置と前記自端末との間に存在する前記無線通信端末の数であり、
前記休眠通知パケットは、前記休眠通知パケットを送信する前記無線通信端末の休眠期間に関する期間情報を含み、
前記コントローラは、前記期間情報に基づいて、休眠中である前記下位端末の起床予定時刻を判断し、前記起床予定時刻は、前記下位端末が休眠を終了する時刻であり、
前記所定期間内に前記無線通信機が前記休眠禁止パケットを前記隣接端末から受信せず、かつ、休眠中である前記下位端末の前記状態情報が前記メモリに記憶されている第2の場合、前記コントローラは、前記自端末の休眠期間を決定し、前記自端末の前記休眠期間は、前記下位端末の前記起床予定時刻よりも前に終了する
請求項2に記載の無線通信端末。
【請求項8】
前記コントローラは、前記自端末の休眠予定期間を決定し、
前記第2の場合、かつ前記休眠予定期間が前記下位端末の前記起床予定時刻よりも後に終了する第3の場合、前記コントローラは、前記自端末の前記休眠期間を決定し、
前記無線通信機が送信する前記休眠通知パケットは、前記自端末の前記休眠期間に関する前記期間情報を含む
請求項7に記載の無線通信端末。
【請求項9】
集約装置および2つ以上の無線通信端末を含む無線通信システムであって、
前記無線通信端末は、
無線通信機と、
メモリと、
コントローラと、
を有し、
前記無線通信機が、通信経路情報を含む経路探索パケットを周辺端末から受信した場合、前記コントローラは、前記無線通信機に、前記経路探索パケットを隣接端末へ送信させ、前記通信経路情報は、前記経路探索パケットの通信経路を示し、前記周辺端末は、前記集約装置および前記隣接端末のいずれか1つであり、前記隣接端末は、前記通信経路上で自端末に隣接する前記無線通信端末であり、
前記コントローラは、前記無線通信機が前記周辺端末から受信した前記経路探索パケットに基づいて上位端末を判別し、前記上位端末は前記隣接端末であり、第1の数は第2の数よりも小さく、前記第1の数は、前記通信経路において前記集約装置と前記上位端末との間に存在する前記無線通信端末の数であり、前記第2の数は、前記通信経路において前記集約装置と前記自端末との間に存在する前記無線通信端末の数であり、
前記コントローラは、前記無線通信機が前記隣接端末から受信した通知に基づいて、前記隣接端末の状態情報を前記メモリに記憶し、前記状態情報は、休眠中および起床中のいずれか1つを示し、
前記無線通信機が休眠宣言パケットを休眠宣言端末から受信し、かつ前記休眠宣言端末が前記上位端末である場合、前記コントローラは、前記状態情報に基づいて第1の休眠判断を実行し、前記休眠宣言端末は、前記休眠宣言パケットを送信した前記隣接端末であり、
前記休眠宣言端末以外に起床中の前記上位端末が存在するならば、前記コントローラは、前記第1の休眠判断において前記休眠宣言端末の休眠を認めると判断し、前記休眠宣言端末以外に起床中の前記上位端末が存在しなければ、前記コントローラは、前記第1の休眠判断において前記休眠宣言端末の休眠を認めないと判断し、
前記休眠宣言端末の休眠を認めないと前記コントローラが判断した場合、前記コントローラは、前記無線通信機に、休眠禁止パケットを前記休眠宣言端末へ送信させる
無線通信システム。
【請求項10】
無線通信システムにおける無線通信端末のコントローラが実行する無線通信方法であって、
前記無線通信方法は、第1のステップ、第2のステップ、第3のステップ、第4のステップ、および第5のステップを有し、
前記無線通信システムは、集約装置および2つ以上の前記無線通信端末を含み、
前記無線通信端末は、
無線通信機と、
メモリと、
前記コントローラと、
を有し、
前記無線通信機が、通信経路情報を含む経路探索パケットを周辺端末から受信した場合、前記コントローラは、前記第1のステップにおいて、前記無線通信機に、前記経路探索パケットを隣接端末へ送信させ、前記通信経路情報は、前記経路探索パケットの通信経路を示し、前記周辺端末は、前記集約装置および前記隣接端末のいずれか1つであり、前記隣接端末は、前記通信経路上で自端末に隣接する前記無線通信端末であり、
前記コントローラは、前記第2のステップにおいて、前記無線通信機が前記周辺端末から受信した前記経路探索パケットに基づいて上位端末を判別し、前記上位端末は前記隣接端末であり、第1の数は第2の数よりも小さく、前記第1の数は、前記通信経路において前記集約装置と前記上位端末との間に存在する前記無線通信端末の数であり、前記第2の数は、前記通信経路において前記集約装置と前記自端末との間に存在する前記無線通信端末の数であり、
前記コントローラは、前記第3のステップにおいて、前記無線通信機が前記隣接端末から受信した通知に基づいて、前記隣接端末の状態情報を前記メモリに記憶し、前記状態情報は、休眠中および起床中のいずれか1つを示し、
前記無線通信機が休眠宣言パケットを休眠宣言端末から受信し、かつ前記休眠宣言端末が前記上位端末である場合、前記コントローラは、前記第4のステップにおいて、前記状態情報に基づいて第1の休眠判断を実行し、前記休眠宣言端末は、前記休眠宣言パケットを送信した前記隣接端末であり、
前記休眠宣言端末以外に起床中の前記上位端末が存在するならば、前記コントローラは、前記第1の休眠判断において前記休眠宣言端末の休眠を認めると判断し、前記休眠宣言端末以外に起床中の前記上位端末が存在しなければ、前記コントローラは、前記第1の休眠判断において前記休眠宣言端末の休眠を認めないと判断し、
前記休眠宣言端末の休眠を認めないと前記コントローラが判断した場合、前記コントローラは、前記第5のステップにおいて、前記無線通信機に、休眠禁止パケットを前記休眠宣言端末へ送信させる
無線通信方法。
【請求項11】
無線通信システムにおける無線通信端末のコントローラに、第1のステップ、第2のステップ、第3のステップ、第4のステップ、および第5のステップを実行させるためのプログラムであって、
前記無線通信システムは、集約装置および2つ以上の前記無線通信端末を含み、
前記無線通信端末は、
無線通信機と、
メモリと、
前記コントローラと、
を有し、
前記無線通信機が、通信経路情報を含む経路探索パケットを周辺端末から受信した場合、前記コントローラは、前記第1のステップにおいて、前記無線通信機に、前記経路探索パケットを隣接端末へ送信させ、前記通信経路情報は、前記経路探索パケットの通信経路を示し、前記周辺端末は、前記集約装置および前記隣接端末のいずれか1つであり、前記隣接端末は、前記通信経路上で自端末に隣接する前記無線通信端末であり、
前記コントローラは、前記第2のステップにおいて、前記無線通信機が前記周辺端末から受信した前記経路探索パケットに基づいて上位端末を判別し、前記上位端末は前記隣接端末であり、第1の数は第2の数よりも小さく、前記第1の数は、前記通信経路において前記集約装置と前記上位端末との間に存在する前記無線通信端末の数であり、前記第2の数は、前記通信経路において前記集約装置と前記自端末との間に存在する前記無線通信端末の数であり、
前記コントローラは、前記第3のステップにおいて、前記無線通信機が前記隣接端末から受信した通知に基づいて、前記隣接端末の状態情報を前記メモリに記憶し、前記状態情報は、休眠中および起床中のいずれか1つを示し、
前記無線通信機が休眠宣言パケットを休眠宣言端末から受信し、かつ前記休眠宣言端末が前記上位端末である場合、前記コントローラは、前記第4のステップにおいて、前記状態情報に基づいて第1の休眠判断を実行し、前記休眠宣言端末は、前記休眠宣言パケットを送信した前記隣接端末であり、
前記休眠宣言端末以外に起床中の前記上位端末が存在するならば、前記コントローラは、前記第1の休眠判断において前記休眠宣言端末の休眠を認めると判断し、前記休眠宣言端末以外に起床中の前記上位端末が存在しなければ、前記コントローラは、前記第1の休眠判断において前記休眠宣言端末の休眠を認めないと判断し、
前記休眠宣言端末の休眠を認めないと前記コントローラが判断した場合、前記コントローラは、前記第5のステップにおいて、前記無線通信機に、休眠禁止パケットを前記休眠宣言端末へ送信させる
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、無線通信端末、無線通信システム、無線通信方法、およびプログラムに関する。
【背景技術】
【0002】
近年、無線通信機能を備えた遠方のセンサデバイスからネットワークを経由して情報を収集する方法が提案されている。これは、従来型のネットワークを敷設することが困難な場所における新たなユースケースを提供する。このようなユースケースでは、消費電力が少なく、かつ長距離無線通信を実現した手段が選ばれることが多い。そのような手段は、LPWA(Low Power Wide Area)と呼ばれる。
【0003】
例えば、住宅向けのガスメーターの検針のためにこのような無線通信機能を備えたセンサデバイスを設置することがある。住宅地では、住宅が密集している場所と、住宅が離れている場所とがある。例えば、スター型のネットワークでは、ゲートウェイとなる機器を、遮蔽物の影響を受けずに全てのセンサデバイスへ電波が届く場所に設置する必要がある。しかし、この条件を満たすことは難しい。一方、メッシュ型のネットワークでは、センサデバイスがそれに隣接するセンサデバイスと通信を行うことを考慮して各センサデバイスを設置することにより課題が解決できる。
【0004】
消費電力の観点では、スター型ネットワークにおいて、個々のセンサデバイスは他のセンサデバイスの影響を受けずに自身が好むタイミングで休眠することができる。メッシュ型ネットワークにおいて、個々のセンサデバイスは、それに隣接するセンサデバイスからゲートウェイ等へデータを送信するための通信経路になっている可能性がある。そのような場合、各センサデバイスに隣接するセンサデバイスのために通信経路を確保する必要がある。そのため、センサデバイスは休眠することができない。その結果、メッシュ型ネットワークでは消費電力を抑えることが難しい。
【0005】
特許文献1に開示されたマルチホップ無線アドホックネットワークでは、ゲートウェイが親局であり、かつ無線ネットワークはツリー構造を持つ。ネットワーク内の全ての端末は、ゲートウェイへの経路に存在する隣接端末に同期する。全ての端末は、ゲートウェイに同期する。ゲートウェイと全ての端末とが、起動周期、起動位相、および起動期間を合わせて起動とスリープとを切り替える。起動期間中、同期誤差が所定範囲内である起動区間でデータ転送が実施される。スリープ期間中、最小限の部分が動作する。同期動作を維持するために、ゲートウェイは、ツリー構造に応じて再同期を実施する。
【先行技術文献】
【特許文献】
【0006】
【発明の概要】
【発明が解決しようとする課題】
【0007】
最近のIoT(Internet of Things)を活用した環境では、端末に様々な種類のセンサが組み込まれ、センサデータが端末からゲートウェイを経由して所定のサーバへ送信される。各端末が、センサデータの種別によって異なる頻度でデータ送信を行うことが多い。特許文献1に開示されたネットワークでは、全端末がゲートウェイと同期して起床とスリープとを行う。各端末が起床および休眠を間欠的に繰り返すネットワークでは、データ通信を行わない端末を含めて全ての端末が起床する。そのため、余分な電力が消費される。
【0008】
本発明は、通信経路を確実に確保することができ、かつネットワーク全体の消費電力を減らすことができる無線通信端末、無線通信システム、無線通信方法、およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明の第1の態様によれば、無線通信システムにおける無線通信端末が提供される。前記無線通信システムは、集約装置および2つ以上の前記無線通信端末を含む。前記無線通信端末は、無線通信機と、メモリと、コントローラとを有する。前記無線通信機が、通信経路情報を含む経路探索パケットを周辺端末から受信した場合、前記コントローラは、前記無線通信機に、前記経路探索パケットを隣接端末へ送信させる。前記通信経路情報は、前記経路探索パケットの通信経路を示す。前記周辺端末は、前記集約装置および前記隣接端末のいずれか1つである。前記隣接端末は、前記通信経路上で自端末に隣接する前記無線通信端末である。前記コントローラは、前記無線通信機が前記周辺端末から受信した前記経路探索パケットに基づいて上位端末を判別する。前記上位端末は前記隣接端末である。第1の数は第2の数よりも小さい。前記第1の数は、前記通信経路において前記集約装置と前記上位端末との間に存在する前記無線通信端末の数である。前記第2の数は、前記通信経路において前記集約装置と前記自端末との間に存在する前記無線通信端末の数である。前記コントローラは、前記無線通信機が前記隣接端末から受信した通知に基づいて、前記隣接端末の状態情報を前記メモリに記憶する。前記状態情報は、休眠中および起床中のいずれか1つを示す。前記無線通信機が休眠宣言パケットを休眠宣言端末から受信し、かつ前記休眠宣言端末が前記上位端末である場合、前記コントローラは、前記状態情報に基づいて第1の休眠判断を実行する。前記休眠宣言端末は、前記休眠宣言パケットを送信した前記隣接端末である。前記休眠宣言端末以外に起床中の前記上位端末が存在するならば、前記コントローラは、前記第1の休眠判断において前記休眠宣言端末の休眠を認めると判断する。前記休眠宣言端末以外に起床中の前記上位端末が存在しなければ、前記コントローラは、前記第1の休眠判断において前記休眠宣言端末の休眠を認めないと判断する。前記休眠宣言端末の休眠を認めないと前記コントローラが判断した場合、前記コントローラは、前記無線通信機に、休眠禁止パケットを前記休眠宣言端末へ送信させる。
【0010】
本発明の第2の態様によれば、第1の態様において、前記コントローラは、前記無線通信機に、前記休眠宣言パケットを前記隣接端末へ送信させてもよい。前記無線通信機が前記休眠宣言パケットを送信した後の所定期間内に前記無線通信機が前記隣接端末から前記休眠禁止パケットを受信しない場合、前記コントローラは、前記無線通信機に、休眠通知パケットを前記隣接端末へ送信させてもよい。前記無線通信機が前記休眠通知パケットを送信した後、前記コントローラは、消費電力が低減された休眠状態に前記自端末を移行させるための休眠処理を実行してもよい。前記休眠処理が実行された後、前記コントローラは、前記自端末を前記休眠状態から復帰させるための起床処理を実行してもよい。前記起床処理が実行された後、前記コントローラは、前記無線通信機に、起床通知パケットを前記隣接端末へ送信させてもよい。前記コントローラは、前記無線通信機が前記隣接端末から受信した前記休眠通知パケットと、前記無線通信機が前記隣接端末から受信した前記起床通知パケットとに基づいて、前記状態情報を前記メモリに記憶してもよい。
【0011】
本発明の第3の態様によれば、第2の態様において、前記コントローラは、前記無線通信機が前記周辺端末から受信した前記経路探索パケットに基づいて、等位端末を判別してもよい。第3の数は第4の数と同じである。前記第3の数は、前記通信経路において前記集約装置と前記自端末との間に存在する前記無線通信端末の数である。前記第4の数は、前記通信経路において前記集約装置と前記等位端末との間に存在する前記無線通信端末の数である。前記所定期間内に前記無線通信機が前記休眠禁止パケットを前記隣接端末から受信し、かつ、休眠中である前記等位端末の前記状態情報が前記メモリに記憶されている第1の場合、前記コントローラは、休眠中の前記等位端末が起床したタイミングで、前記無線通信機に、前記休眠宣言パケットを前記隣接端末へ送信させてもよい。
【0012】
本発明の第4の態様によれば、第3の態様において、前記休眠通知パケットは、前記休眠通知パケットを送信する前記無線通信端末の休眠期間に関する期間情報を含んでもよい。前記第1の場合、前記自端末が次に休眠を開始する前に、前記コントローラは、前記期間情報に基づいて、タイミング判断を実行してもよい。前記コントローラは、前記タイミング判断において、休眠中である前記等位端末の起床予定時刻が前記自端末の休眠予定時刻よりも早い否かを判断してもよい。前記起床予定時刻は、前記等位端末が休眠を終了する時刻である。前記休眠予定時刻は、前記自端末が休眠を開始する時刻である。前記起床予定時刻が前記休眠予定時刻よりも早いと前記コントローラが判断した場合、前記コントローラは、前記起床予定時刻において、前記無線通信機に、前記休眠宣言パケットを前記隣接端末へ送信させてもよい。
【0013】
本発明の第5の態様によれば、第2の態様において、前記休眠宣言パケットは、前記休眠宣言端末の休眠期間に関する期間情報を含んでもよい。前記コントローラは、前記無線通信機が前記周辺端末から受信した前記経路探索パケットに基づいて、等位端末を判別してもよい。第3の数は第4の数と同じである。前記第3の数は、前記通信経路において前記集約装置と前記自端末との間に存在する前記無線通信端末の数である。前記第4の数は、前記通信経路において前記集約装置と前記等位端末との間に存在する前記無線通信端末の数である。前記所定期間内に前記無線通信機が前記休眠禁止パケットを前記隣接端末から受信し、かつ前記休眠宣言端末が前記等位端末である場合、前記コントローラは第2の休眠判断を実行してもよい。前記コントローラは、前記第2の休眠判断において、前記自端末の休眠予定時刻および前記休眠宣言端末の前記休眠期間に基づいて、前記自端末および前記休眠宣言端末が同時に休眠している期間があるか否かを判断してもよい。前記休眠予定時刻は、前記自端末が休眠を開始する時刻である。前記自端末および前記休眠宣言端末が同時に休眠している期間があると前記コントローラが判断した場合、前記コントローラは、前記第2の休眠判断において前記休眠宣言端末の休眠を認めないと判断してもよい。
【0014】
本発明の第6の態様によれば、第5の態様において、前記コントローラは、前記無線通信機が前記周辺端末から受信した前記経路探索パケットに基づいて下位端末を判別してもよい。第5の数は第6の数よりも大きい。前記第5の数は、前記通信経路において前記集約装置と前記下位端末との間に存在する前記無線通信端末の数である。前記第6の数は、前記通信経路において前記集約装置と前記自端末との間に存在する前記無線通信端末の数である。前記コントローラは、前記等位端末が前記下位端末の前記通信経路に含まれるか否かを示す迂回情報を前記メモリに記憶してもよい。前記コントローラは、前記第2の休眠判断において、前記迂回情報に基づいて、前記休眠宣言端末が、前記下位端末の前記通信経路に含まれる前記等位端末であるか否かを判断してもよい。前記自端末および前記休眠宣言端末が同時に休眠している期間があると前記コントローラが判断し、かつ前記休眠宣言端末が、前記下位端末の前記通信経路に含まれる前記等位端末であると前記コントローラが判断した場合、前記コントローラは、前記第2の休眠判断において前記休眠宣言端末の休眠を認めないと判断してもよい。
【0015】
本発明の第7の態様によれば、第2の態様において、前記コントローラは、前記無線通信機が前記周辺端末から受信した前記経路探索パケットに基づいて下位端末を判別してもよい。第5の数は第6の数よりも大きい。前記第5の数は、前記通信経路において前記集約装置と前記下位端末との間に存在する前記無線通信端末の数である。前記第6の数は、前記通信経路において前記集約装置と前記自端末との間に存在する前記無線通信端末の数である。前記休眠通知パケットは、前記休眠通知パケットを送信する前記無線通信端末の休眠期間に関する期間情報を含む。前記コントローラは、前記期間情報に基づいて、休眠中である前記下位端末の起床予定時刻を判断してもよい。前記起床予定時刻は、前記下位端末が休眠を終了する時刻である。前記所定期間内に前記無線通信機が前記休眠禁止パケットを前記隣接端末から受信せず、かつ、休眠中である前記下位端末の前記状態情報が前記メモリに記憶されている第2の場合、前記コントローラは、前記自端末の休眠期間を決定してもよい。前記自端末の前記休眠期間は、前記下位端末の前記起床予定時刻よりも前に終了する。
【0016】
本発明の第8の態様によれば、第7の態様において、前記コントローラは、前記自端末の休眠予定期間を決定してもよい。前記第2の場合、かつ前記休眠予定期間が前記下位端末の前記起床予定時刻よりも後に終了する第3の場合、前記コントローラは、前記自端末の前記休眠期間を決定してもよい。前記無線通信機が送信する前記休眠通知パケットは、前記自端末の前記休眠期間に関する前記期間情報を含んでもよい。
【0017】
本発明の第9の態様によれば、集約装置および2つ以上の無線通信端末を含む無線通信システムが提供される。前記無線通信端末は、無線通信機と、メモリと、コントローラとを有する。前記無線通信機が、通信経路情報を含む経路探索パケットを周辺端末から受信した場合、前記コントローラは、前記無線通信機に、前記経路探索パケットを隣接端末へ送信させる。前記通信経路情報は、前記経路探索パケットの通信経路を示す。前記周辺端末は、前記集約装置および前記隣接端末のいずれか1つである。前記隣接端末は、前記通信経路上で自端末に隣接する前記無線通信端末である。前記コントローラは、前記無線通信機が前記周辺端末から受信した前記経路探索パケットに基づいて上位端末を判別する。前記上位端末は前記隣接端末である。第1の数は第2の数よりも小さい。前記第1の数は、前記通信経路において前記集約装置と前記上位端末との間に存在する前記無線通信端末の数である。前記第2の数は、前記通信経路において前記集約装置と前記自端末との間に存在する前記無線通信端末の数である。前記コントローラは、前記無線通信機が前記隣接端末から受信した通知に基づいて、前記隣接端末の状態情報を前記メモリに記憶する。前記状態情報は、休眠中および起床中のいずれか1つを示す。前記無線通信機が休眠宣言パケットを休眠宣言端末から受信し、かつ前記休眠宣言端末が前記上位端末である場合、前記コントローラは、前記状態情報に基づいて第1の休眠判断を実行する。前記休眠宣言端末は、前記休眠宣言パケットを送信した前記隣接端末である。前記休眠宣言端末以外に起床中の前記上位端末が存在するならば、前記コントローラは、前記第1の休眠判断において前記休眠宣言端末の休眠を認めると判断する。前記休眠宣言端末以外に起床中の前記上位端末が存在しなければ、前記コントローラは、前記第1の休眠判断において前記休眠宣言端末の休眠を認めないと判断する。前記休眠宣言端末の休眠を認めないと前記コントローラが判断した場合、前記コントローラは、前記無線通信機に、休眠禁止パケットを前記休眠宣言端末へ送信させる。
【0018】
本発明の第10の態様によれば、無線通信システムにおける無線通信端末のコントローラが実行する無線通信方法が提供される。前記無線通信方法は、第1のステップ、第2のステップ、第3のステップ、第4のステップ、および第5のステップを有する。前記無線通信システムは、集約装置および2つ以上の前記無線通信端末を含む。前記無線通信端末は、無線通信機と、メモリと、前記コントローラとを有する。前記無線通信機が、通信経路情報を含む経路探索パケットを周辺端末から受信した場合、前記コントローラは、前記第1のステップにおいて、前記無線通信機に、前記経路探索パケットを隣接端末へ送信させる。前記通信経路情報は、前記経路探索パケットの通信経路を示す。前記周辺端末は、前記集約装置および前記隣接端末のいずれか1つである。前記隣接端末は、前記通信経路上で自端末に隣接する前記無線通信端末である。前記コントローラは、前記第2のステップにおいて、前記無線通信機が前記周辺端末から受信した前記経路探索パケットに基づいて上位端末を判別する。前記上位端末は前記隣接端末である。第1の数は第2の数よりも小さい。前記第1の数は、前記通信経路において前記集約装置と前記上位端末との間に存在する前記無線通信端末の数である。前記第2の数は、前記通信経路において前記集約装置と前記自端末との間に存在する前記無線通信端末の数である。前記コントローラは、前記第3のステップにおいて、前記無線通信機が前記隣接端末から受信した通知に基づいて、前記隣接端末の状態情報を前記メモリに記憶する。前記状態情報は、休眠中および起床中のいずれか1つを示す。前記無線通信機が休眠宣言パケットを休眠宣言端末から受信し、かつ前記休眠宣言端末が前記上位端末である場合、前記コントローラは、前記第4のステップにおいて、前記状態情報に基づいて第1の休眠判断を実行する。前記休眠宣言端末は、前記休眠宣言パケットを送信した前記隣接端末である。前記休眠宣言端末以外に起床中の前記上位端末が存在するならば、前記コントローラは、前記第1の休眠判断において前記休眠宣言端末の休眠を認めると判断する。前記休眠宣言端末以外に起床中の前記上位端末が存在しなければ、前記コントローラは、前記第1の休眠判断において前記休眠宣言端末の休眠を認めないと判断する。前記休眠宣言端末の休眠を認めないと前記コントローラが判断した場合、前記コントローラは、前記第5のステップにおいて、前記無線通信機に、休眠禁止パケットを前記休眠宣言端末へ送信させる。
【0019】
本発明の第11の態様によれば、無線通信システムにおける無線通信端末のコントローラに、第1のステップ、第2のステップ、第3のステップ、第4のステップ、および第5のステップを実行させるためのプログラムが提供される。前記無線通信システムは、集約装置および2つ以上の前記無線通信端末を含む。前記無線通信端末は、無線通信機と、メモリと、前記コントローラとを有する。前記無線通信機が、通信経路情報を含む経路探索パケットを周辺端末から受信した場合、前記コントローラは、前記第1のステップにおいて、前記無線通信機に、前記経路探索パケットを隣接端末へ送信させる。前記通信経路情報は、前記経路探索パケットの通信経路を示す。前記周辺端末は、前記集約装置および前記隣接端末のいずれか1つである。前記隣接端末は、前記通信経路上で自端末に隣接する前記無線通信端末である。前記コントローラは、前記第2のステップにおいて、前記無線通信機が前記周辺端末から受信した前記経路探索パケットに基づいて上位端末を判別する。前記上位端末は前記隣接端末である。第1の数は第2の数よりも小さい。前記第1の数は、前記通信経路において前記集約装置と前記上位端末との間に存在する前記無線通信端末の数である。前記第2の数は、前記通信経路において前記集約装置と前記自端末との間に存在する前記無線通信端末の数である。前記コントローラは、前記第3のステップにおいて、前記無線通信機が前記隣接端末から受信した通知に基づいて、前記隣接端末の状態情報を前記メモリに記憶する。前記状態情報は、休眠中および起床中のいずれか1つを示す。前記無線通信機が休眠宣言パケットを休眠宣言端末から受信し、かつ前記休眠宣言端末が前記上位端末である場合、前記コントローラは、前記第4のステップにおいて、前記状態情報に基づいて第1の休眠判断を実行する。前記休眠宣言端末は、前記休眠宣言パケットを送信した前記隣接端末である。前記休眠宣言端末が以外に起床中の前記上位端末が存在するならば、前記コントローラは、前記第1の休眠判断において前記休眠宣言端末の休眠を認めると判断する。前記休眠宣言端末以外に起床中の前記上位端末が存在しなければ、前記コントローラは、前記第1の休眠判断において前記休眠宣言端末の休眠を認めないと判断する。前記休眠宣言端末の休眠を認めないと前記コントローラが判断した場合、前記コントローラは、前記第5のステップにおいて、前記無線通信機に、休眠禁止パケットを前記休眠宣言端末へ送信させる。
【発明の効果】
【0020】
上記の各態様によれば、無線通信端末、無線通信システム、無線通信方法、およびプログラムは、通信経路を確実に確保することができ、かつネットワーク全体の消費電力を減らすことができる。
【図面の簡単な説明】
【0021】
【
図1】本発明の実施形態のネットワークの構成を示す図である。
【
図2】本発明の実施形態のネットワークの構成を示す図である。
【
図3A】本発明の実施形態の端末のシステム構成を示すブロック図である。
【
図3B】本発明の実施形態のゲートウェイのシステム構成を示すブロック図である。
【
図4】本発明の実施形態のネットワークにおける通信シーケンスを示す図である。
【
図5A】本発明の実施形態のネットワークにおける各端末の位置関係を示す図である。
【
図5B】本発明の実施形態のネットワークにおける各端末の位置関係を示す図である。
【
図5C】本発明の実施形態のネットワークにおける各端末の位置関係を示す図である。
【
図5D】本発明の実施形態のネットワークにおける各端末の位置関係を示す図である。
【
図6A】本発明の実施形態のネットワークにおける各端末の位置関係を示す図である。
【
図6B】本発明の実施形態のネットワークにおける各端末の位置関係を示す図である。
【
図6C】本発明の実施形態のネットワークにおける各端末の位置関係を示す図である。
【
図6D】本発明の実施形態のネットワークにおける各端末の位置関係を示す図である。
【
図7】本発明の実施形態のネットワークにおける通信シーケンスを示す図である。
【
図8】本発明の実施形態のネットワークにおける通信シーケンスを示す図である。
【
図9】本発明の実施形態のネットワークにおける通信シーケンスを示す図である。
【
図10】本発明の実施形態のネットワークにおける通信シーケンスを示す図である。
【
図11】本発明の実施形態のネットワークにおける通信シーケンスを示す図である。
【
図12】本発明の実施形態のネットワークにおける通信シーケンスを示す図である。
【
図13】本発明の実施形態のネットワークにおける通信シーケンスを示す図である。
【
図14】本発明の実施形態のネットワークにおける通信シーケンスを示す図である。
【
図15】本発明の実施形態の端末が実行する基本的な処理の手順を示すフローチャートである。
【
図16】本発明の実施形態の端末が実行するパケット受信処理の手順を示すフローチャートである。
【
図17】本発明の実施形態の端末が実行する経路探索処理の手順を示すフローチャートである。
【
図18】本発明の実施形態の端末が実行する休眠宣言送信処理の手順を示すフローチャートである。
【
図19】本発明の実施形態の端末が実行する休眠宣言受信処理の手順を示すフローチャートである。
【
図20】本発明の実施形態の端末が実行する休眠宣言受信処理の手順を示すフローチャートである。
【
図21】本発明の実施形態の端末が実行する起床通知送信処理の手順を示すフローチャートである。
【
図22】本発明の実施形態の端末が実行する起床通知受信処理の手順を示すフローチャートである。
【
図23】本発明の実施形態の端末が実行する休眠時間決定処理の手順を示すフローチャートである。
【
図24】本発明の実施形態におけるパケットの構造を示す図である。
【
図25】本発明の実施形態におけるパケット種別コードを示す図である。
【
図26A】本発明の実施形態における隣接端末情報の構成を示す図である。
【
図26B】本発明の実施形態における隣接端末情報の構成を示す図である。
【
図26C】本発明の実施形態における隣接端末情報の構成を示す図である。
【発明を実施するための形態】
【0022】
図面を参照し、本発明の実施形態を説明する。
【0023】
(ネットワークの構成)
図1は、本発明の実施形態のネットワークN1の構成を示す。
図1に示すネットワークN1は、ゲートウェイG1、端末1、端末2、端末3、および端末4を有する。ゲートウェイG1および端末1から端末4は無線通信機能を備え、かつ隣接する端末と無線通信を行う。各端末のシステムが起動した後、端末1から端末4は、条件に応じて起床状態および休眠状態のいずれかで動作する。端末1から端末4は、環境特性を計測するセンサを備える。センサが計測を行う場合、各端末は起床し、それ以外の期間において各端末は基本的に休眠する。システムが起動した後、自端末の通信経路情報が取得できていない状態では、各端末は常に起床状態で動作する。端末1から端末4は、通信経路情報を取得するための処理を実行した後、状況に応じて休眠状態へ遷移する。
【0024】
ゲートウェイG1は、インターネット等の外部ネットワークに接続されている。端末1から端末4が外部ネットワークへ送信する通信パケットは、ゲートウェイG1を経由する。ゲートウェイG1は、端末1から端末4が送信する通信パケットを異なるネットワーク間で中継する集約装置(中継装置)である。
【0025】
ゲートウェイG1は、常に起床状態にある。ゲートウェイG1は、外部からの指示を受け、端末1から端末4が通信経路情報を取得するために必要な経路探索パケットを送信する。外部からの指示は、ユーザの操作あるいは外部ネットワークとの通信により発生する。さらに、ゲートウェイG1は、端末1から端末4が送信する通信パケットを収集する。それに加えて、ゲートウェイG1は、外部ネットワークと接続する役割と、端末1から端末4から送信される通信パケットを収集する役割と、通信パケットを外部ネットワークへルーティングする役割とを持つ。ゲートウェイG1は、端末1から端末4が有する無線通信機の通信方式とは異なる通信方式で動作する通信機を有してもよい。ゲートウェイG1において、外部ネットワークと接続する通信機は、有線および無線のどちらに対応しても構わない。外部ネットワークとは、例えばインターネットなどのIPネットワークである。
【0026】
図1の例では、端末1および端末2はゲートウェイG1の通信範囲に位置する。ゲートウェイG1の通信範囲は、ゲートウェイG1から電波が届く範囲である。端末3および端末4は、ゲートウェイG1とは直接通信することができない位置にある。端末1は、端末2から端末4と通信できる位置にある。端末2は、端末1、端末3、および端末4と通信できる位置にある。端末3は、端末1、端末2、および端末4と通信できる位置にある。端末4は、端末1から端末3と通信できる位置にある。
【0027】
各端末は、ブロードキャスト通信によってパケットを複数の端末へ同時に送信する。各端末に隣接する端末は、受信されたパケットを送信する。これにより、ゲートウェイG1にパケットが転送される。各端末からゲートウェイG1への通信経路が複数ある場合、複数の通信経路を通ってパケットがゲートウェイG1に届く。その場合、各端末から送信されたパケットがゲートウェイG1へ届く確実性が高まる。
【0028】
各端末には固有のIDが割り当てられている。例えば、ゲートウェイG1のIDは0000であり、端末1のIDは0001であり、端末2のIDは0002であり、端末3のIDは0003であり、端末4のIDは0004である。各端末は、パケットを送信するときに自身のIDをパケットに付与する。パケットはブロードキャスト通信で送信されるため、各端末が送信したパケットが自分に戻ってくることがある。各端末は、受信したパケットに付与されているIDを確認する。既に自身のIDがパケットに付与されている場合、各端末はそのパケットを送信しない。
【0029】
図2は、本発明の実施形態のネットワークN2の構成を示す。ネットワークN2の構成は、ネットワークN1の構成とほぼ同じである。ネットワークN2において、端末2および端末3は、互いに電波の届かない位置にある。端末2および端末3は、直接通信することはできない。本発明の特徴を実現できる限り、ネットワーク上の各端末の配置は、
図1および
図2に示す例に限らない。
【0030】
(システム構成)
図3Aは、端末1のシステム構成を示す。端末2から端末4の構成は端末1の構成と同じであるため、端末1の構成を代表として説明する。
図3Aに示す端末1は、コントローラ301、通信機302、センサ303、メモリ304、およびクロック回路305を有する。
【0031】
端末1の概略構成について説明する。端末1は、無線通信システムにおける無線通信端末である。無線通信システムは、集約装置および2つ以上の無線通信端末を含む。以下の例では、集約装置はゲートウェイG1である。集約装置は、ルーター、ファイアウォール、またはプロキシサーバー等であってもよい。2つ以上の無線通信端末は、端末1(自端末)および隣接端末を含む。隣接端末については後述する。自端末は、処理を実行するコントローラ301を含む端末である。
【0032】
通信機302は、無線通信機である。通信機302が、通信経路情報を含む経路探索パケットを周辺端末から受信した場合、コントローラ301は、通信機302に、経路探索パケットを隣接端末へ送信させる。通信経路情報は、経路探索パケットの通信経路を示す。周辺端末は、集約装置および隣接端末のいずれか1つである。隣接端末は、通信経路上で自端末に隣接する無線通信端末である。自端末は、隣接端末と直接通信できる。経路探索パケットの宛先となる隣接端末は、経路探索パケットを送信した周辺端末とは異なる場合がある。コントローラ301は、通信機302が周辺端末から受信した経路探索パケットに基づいて上位端末を判別する。上位端末は隣接端末である。第1の数は第2の数よりも小さい。第1の数は、通信経路において集約装置と上位端末との間に存在する無線通信端末の数である。第2の数は、通信経路において集約装置と自端末との間に存在する無線通信端末の数である。
【0033】
コントローラ301は、通信機302が隣接端末から受信した通知に基づいて、隣接端末の状態情報をメモリ304に記憶する。状態情報は、休眠中および起床中のいずれか1つを示す。休眠中の無線通信端末は、休眠状態にある。起床中の無線通信端末は、起床状態にある。通信機302が休眠宣言パケットを休眠宣言端末から受信し、かつ休眠宣言端末が上位端末である場合、コントローラ301は、状態情報に基づいて第1の休眠判断を実行する。休眠宣言端末は、休眠宣言パケットを送信した隣接端末である。休眠宣言端末以外に起床中の上位端末が存在するならば、コントローラ301は、第1の休眠判断において休眠宣言端末の休眠を認めると判断する。休眠宣言端末以外に起床中の上位端末が存在しなければ、コントローラ301は、第1の休眠判断において休眠宣言端末の休眠を認めないと判断する。休眠宣言端末の休眠を認めないとコントローラ301が判断した場合、コントローラ301は、通信機302に、休眠禁止パケットを休眠宣言端末へ送信させる。
【0034】
端末1の詳細な構成について説明する。コントローラ301は、プロセッサおよび論理回路の少なくとも1つである。例えば、プロセッサは、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、およびGPU(Graphics Processing Unit)の少なくとも1つである。例えば、論理回路は、ASIC(Application Specific Integrated Circuit)およびFPGA(Field-Programmable Gate Array)の少なくとも1つである。コントローラ301は、1つまたは複数のプロセッサを含むことができる。コントローラ301は、1つまたは複数の論理回路を含むことができる。
【0035】
コントローラ301は、システム全体を制御する。コントローラ301は、センサ303が取得したデータを含むパケットを生成する。コントローラ301は、休眠宣言、休眠通知、休眠禁止、休眠取消、起床通知、および起床応答などのパケットも生成する。コントローラ301は、周辺端末から受信したパケットに自端末のIDを付与する。コントローラ301は、通信機302が受信したパケットの種別を解析し、かつパケットに付与されているIDなどの情報を抽出する。コントローラ301は、抽出されたIDに基づいて、ゲートウェイG1に対する隣接端末と自端末との位置関係を算出し、かつその位置関係を管理する。
【0036】
端末1は、起床状態および休眠状態のいずれか1つになる。端末1の状態は、起床状態および休眠状態の間で切り替わる。端末1が起床しているとき、端末1は通信機302およびセンサ303に電力を供給する。このとき、システムが全力で動作する。端末1が休眠しているとき、通信機302およびセンサ303の電源が切られる。このとき、システムは、システムの動作を維持するために必要な最低限の機能のみが動作する低消費電力状態になる。最低限の機能とは、クロックの生成および内部状態の監視などである。コントローラ301は、システムの起床およびシステムの休眠を制御する。
【0037】
コントローラ301が、プログラムを読み込み、かつ読み込まれたプログラムを実行してもよい。プログラムは、コントローラ301の動作を規定する命令を含む。つまり、コントローラ301の機能はソフトウェアにより実現されてもよい。そのプログラムは、例えばフラッシュメモリのような「コンピュータ読み取り可能な記録媒体」により提供されてもよい。そのプログラムは、そのプログラムを保持するコンピュータから、伝送媒体を経由して、あるいは伝送媒体中の伝送波により端末1に伝送されてもよい。プログラムを伝送する「伝送媒体」は、情報を伝送する機能を有する媒体である。情報を伝送する機能を有する媒体は、インターネット等のネットワーク(通信網)および電話回線等の通信回線(通信線)を含む。上述したプログラムは、前述した機能の一部を実現してもよい。さらに、上述したプログラムは、差分ファイル(差分プログラム)であってもよい。コンピュータに既に記録されているプログラムと差分プログラムとの組合せが、前述した機能を実現してもよい。
【0038】
通信機302は、アンテナを含む。あるいは、通信機302およびアンテナは別々に構成され、かつ通信機302はアンテナに接続される。通信機302は、無線通信を行う。通信機302は、コントローラ301が生成したパケットをブロードキャストで周辺端末に送信する。通信機302は、パケットを周辺端末から受信する。
【0039】
コントローラ301は、通信機302を使用することにより、パケットを周辺端末に送信する。具体的には、コントローラ301は、パケットが周辺端末に送信されるように通信機302を制御する。つまり、コントローラ301は、周辺端末に対するパケットを通信機302に送信させる。これによって、通信機302は、パケットを周辺端末に送信する。コントローラ301は、通信機302を使用することにより、パケットを周辺端末から受信する。具体的には、コントローラ301は、パケットが周辺端末から受信されるように通信機302を制御する。つまり、コントローラ301は、周辺端末からのパケットを通信機302に受信させる。これによって、通信機302は、パケットを周辺端末から受信する。
【0040】
センサ303は、温度または湿度などの物理量を計測する。センサ303は、計測された物理量を電気信号に変換することにより、センサデータを生成する。
【0041】
メモリ304は、揮発性または不揮発性の記憶媒体である。例えば、メモリ304は、RAM(Random Access Memory)、DRAM(DynamicRandom Access Memory)、SRAM(Static Random Access Memory)、ROM(Read Only Memory)、EPROM(Erasable Programmable Read Only Memory)、EEPROM(Electrically Erasable Programmable Read-Only Memory)、およびフラッシュメモリの少なくとも1つである。メモリ304は、様々な情報を記憶する。例えば、メモリ304に保持される情報は、隣接端末情報を含む。隣接端末情報は、自端末と隣接端末との位置関係を示す情報を含む。自端末と隣接端末との位置関係は、通信経路情報から得られる。隣接端末情報は、隣接端末の状態情報を含む。隣接端末の状態情報は、隣接端末が起床状態と休眠状態とのどちらにあるのかを示す。メモリ304に保持される情報は、休眠禁止パケットの受信履歴を含む。休眠禁止パケットの受信履歴は、自端末の休眠が拒否されたことを示す。
【0042】
クロック回路305は、システムの内部時刻をカウントする。時刻情報は、システムの内部時刻を示す。
【0043】
図3Bは、ゲートウェイG1のシステム構成を示す。
図3Bに示すゲートウェイG1は、コントローラ321、第1の通信機322、第2の通信機323、メモリ324、およびクロック回路325を有する。
【0044】
コントローラ321は、システム全体を制御する。第1の通信機322は、外部ネットワークに接続されている。第1の通信機322は、外部ネットワーク上の通信装置と通信を行う。第1の通信機322が行う通信は、有線通信と無線通信とのどちらであっても構わない。第2の通信機323は、端末1および端末2と無線通信を行う。第1の通信機322は、第2の通信機323が端末1または端末2から受信したパケットを外部ネットワークへ送信する。第2の通信機323は、第1の通信機322が外部ネットワークから受信したパケットを端末1または端末2へ送信する。メモリ324は、様々な情報を記憶する。クロック回路305は、システムの内部時刻をカウントする。
【0045】
(通信経路探索のシーケンス)
図4は、通信経路探索が実行されるときの通信シーケンスを示す。
図4では、N台の端末が配置された例が示されている。数字Nは2以上の整数である。端末T1は、第1ホップの端末である。端末T2は、第2ホップの端末である。端末TNは、第Nホップの端末である。数字Nは、ゲートウェイG1から届いたパケットが転送された回数を示す。つまり、数字Nは、パケットのホップの回数を示す。
【0046】
ゲートウェイG1は、経路探索パケットM401をブロードキャストで送信する。経路探索パケットM401にはゲートウェイG1に固有のIDが付与されている。端末T1は、
図1において端末1および端末2に対応する。端末T1が経路探索パケットM401をゲートウェイG1から受信した後、端末T1は自身のIDをそのパケットに付与する。端末T1は、経路探索パケットM402をブロードキャストで送信する。これにより、端末T1は、経路探索パケットM402を転送する。端末T1が送信した経路探索パケットM402は、端末T2に届く。
図1において、端末1が送信した経路探索パケットは端末2から端末4に届く。
図1において、端末2が送信した経路探索パケットは端末1、端末3、および端末4に届く。
【0047】
端末T2は、経路探索パケットM402を受信し、かつ自身のIDをそのパケットに付与する。端末T2は、経路探索パケットM403を送信する。端末T1は、経路探索パケットM403を受信する。経路探索パケットM403を受信した端末は、自身のIDが付与された経路探索パケットM404を送信する。端末T2は、経路探索パケットM404を受信する。経路探索パケットは、ホップにより端末TNまで順次転送される。
【0048】
経路探索パケットには、そのパケットを送信する端末のIDが付与される。端末が自身のIDと同じIDが付与された経路探索パケットを受信した場合、その端末はそのパケットを送信しない。この条件により、パケットのホップは最終的に収束する。各端末は、自身に隣接する各端末から経路探索パケットを受信する。そのため、各端末は、受信した経路探索パケットを解析することにより、自端末に隣接する端末のIDを知ることができる。各端末は、経路探索パケットに付与されているIDの順番に基づいて、自端末および隣接端末の位置関係を知ることができる。この位置関係において、ゲートウェイG1に近い端末が上位となる。
【0049】
(各端末の隣接端末情報)
図5A、
図5B、
図5C、および
図5Dは、
図1に示すネットワークN1における各端末の位置関係を示す。経路探索パケットは、ゲートウェイG1から送信される。各端末は、自身のIDを経路探索パケットに付与し、かつ経路探索パケットを送信する。各端末のコントローラ301は、経路探索パケットに付与されたIDに基づいて、自端末と隣接端末との位置関係を判別する。コントローラ301は、判別された位置関係を隣接端末情報としてメモリ304に記憶する。
【0050】
図5Aは、端末1が保持する情報を示す。端末1は、ゲートウェイG1が発する電波が到達する位置にある。端末1は、ゲートウェイG1が送信する経路探索パケットを直接受信する。経路探索パケットは、ホップによってネットワーク全体に広がる。例えば、端末2および端末1を通る通信経路により経路探索パケットが端末1に届く。あるいは、端末2、端末3、および端末1を通る通信経路により経路探索パケットが端末1に届く。あるいは、端末2、端末4、および端末1を通る通信経路により経路探索パケットが端末1に届く。経路探索パケットの通信経路は、上記の通信経路以外にもある。
【0051】
図5Bは、端末2が保持する情報を示す。
図5Cは、端末3が保持する情報を示す。
図5Dは、端末4が保持する情報を示す。各端末が保持する情報は、経路探索パケットの通信経路を含む。各端末が保持する情報は、隣接端末、上位端末、等位端末、および下位端末の各々の情報を含む。以下では、代表として端末1が保持する情報を説明する。
【0052】
各端末のIDは、経路探索パケットを送信した順に経路探索パケットに付与されている。そのため、コントローラ301は、経路探索パケットを端末1へ直接送信した端末のIDを知ることができる。つまり、コントローラ301は、経路探索パケットの通信経路上で端末1に隣接する端末、すなわち端末1の隣接端末を知ることができる。端末1は、経路探索パケットを端末2、端末3、および端末4から直接受信する。端末1の隣接端末は、端末2、端末3、および端末4である。
【0053】
コントローラ301は、経路探索パケットに付与されているIDの順番を解析することにより、ゲートウェイG1から端末1へ経路探索パケットが届いたときの最小ホップ数を知ることができる。同様に、コントローラ301は、ゲートウェイG1から端末1の隣接端末へ経路探索パケットが到達したときの最小ホップ数を知ることができる。
【0054】
通信経路を示すID列において最初のIDは、ゲートウェイG1から経路探索パケットを受信した端末のIDである。端末1は、経路探索パケットをゲートウェイG1から直接受信する。端末2も経路探索パケットをゲートウェイG1から直接受信する。したがって、コントローラ301は、端末1からゲートウェイG1への距離と、端末2からゲートウェイG1への距離とが等しいと判断できる。つまり、コントローラ301は、端末2が端末1の等位端末であると判断できる。
【0055】
同様に、コントローラ301は、端末3のIDを含む通信経路の情報と、端末4のIDを含む通信経路の情報とを解析する。端末3および端末4は、経路探索パケットを端末1または端末2から受信する。コントローラ301は、端末1からゲートウェイG1までの距離が、端末3からゲートウェイG1までの距離よりも近いと判断できる。同様に、コントローラ301は、端末1からゲートウェイG1までの距離が、端末4からゲートウェイG1までの距離よりも近いと判断できる。つまり、コントローラ301は、端末3および端末4が端末1の下位端末であると判断できる。
【0056】
端末1からゲートウェイG1までの距離が、所定の端末からゲートウェイG1までの距離よりも遠い場合、コントローラ301は、その所定の端末が上位端末であると判断できる。端末1の上位端末は存在しない。等位端末、下位端末、および上位端末は、隣接端末である。
【0057】
コントローラ301は、
図5Aに示す隣接端末の情報をメモリ304に記憶する。端末2から端末4も、上記の方法と同様の方法により、隣接端末の情報を得ることができる。
図5Aから
図5Dにおいて、分かりやすさのために各端末のIDは端末番号で示されている。実際には、各端末に固有のIDが隣接端末の情報として記憶される。
【0058】
図6A、
図6B、
図6C、および
図6Dは、
図2に示すネットワークN2における各端末の位置関係を示す。ネットワークN2において、端末2および端末3は、互いの電波が到達する範囲にない。そのため、端末2および端末3は互いに通信できない。
図1に示すネットワークN1において端末2および端末3は互いに隣接するが、ネットワークN2において端末2および端末3は互いに隣接しない。ネットワークN1において端末3は端末2の下位端末であるが、ネットワークN2において端末2の下位端末は端末4のみである。
【0059】
ネットワークN1において端末2は端末3の上位端末であるが、ネットワークN2において端末3の上位端末は端末1のみである。
図6Aから
図6Dにおいて、分かりやすさのために各端末のIDは端末番号で示されている。実際には、各端末に固有のIDが隣接端末の情報として記憶される。
【0060】
(端末の起床/休眠のシーケンス)
ネットワークN1において、端末が起床または休眠するときにその端末が実行するパケット通信について説明する。
図7は、全ての端末が起床している間に端末1が休眠するときの通信シーケンスを示す。各端末のシーケンスの下には、各端末が管理する隣接端末の状態情報が示されている。隣接端末の状態情報は、各端末のメモリ304に記憶される。状態Wは、起床状態である。状態Sは、休眠状態である。
【0061】
前提として、各端末は経路探索の過程で自端末の隣接端末の存在を知ることができる。さらに、各端末は、経路探索パケットを隣接端末から受信することにより、隣接端末が起床状態にあることを知ることができる。そのため、自端末に隣接する各端末の状態は起床状態であることが記憶される。端末1が休眠できるタイミングにおいて、端末1は休眠宣言パケットM701をブロードキャストで送信する。各端末が休眠できるタイミングとは、センサ303がセンサデータ等の周期的な取得を終了し、各端末が次のセンサデータ等の取得まで休眠できるタイミングを意味する。端末2、端末3、および端末4は、端末1の隣接端末である。そのため、端末2、端末3、および端末4は、休眠宣言パケットM701を受信する。
【0062】
端末1は、休眠宣言パケットM701を送信した後、応答待ち時間T701だけ応答を待つ。応答待ち時間T701は、例えば2秒である。端末2から端末4はそれぞれ、自身がゲートウェイG1へデータパケットを送信するときにゲートウェイG1までの通信経路が確保されているか否かを確認する。通信経路が確保されている場合、端末2から端末4は休眠宣言パケットM701に反応しない。
【0063】
端末2は、ゲートウェイG1へパケットを直接届けることができる。端末3および端末4は、端末2を経由してゲートウェイG1へパケットを届けることができる。応答待ち時間T701において隣接端末から端末1にパケットは届かない。応答待ち時間T701が経過した後、端末1は休眠通知パケットM702をブロードキャストで送信する。休眠通知パケットM702は、端末1が休眠したことを示す。端末2から端末4は、休眠通知パケットM702を受信した後、端末1が休眠していることを示す状態情報をメモリ304に記憶する。端末1が休眠した後の状態情報が
図7に示されている。
【0064】
図8は、端末1が休眠している間に端末3が休眠するときの通信シーケンスを示す。端末3は、休眠宣言パケットM801をブロードキャストで送信する。端末2および端末4は、休眠宣言パケットM801を受信する。端末2からゲートウェイG1への通信経路および端末4からゲートウェイG1への通信経路は確保されている。そのため、端末2および端末4は休眠宣言パケットM801に反応しない。端末3は応答待ち時間T801だけ応答を待つ。応答待ち時間T801において端末3の隣接端末から応答は受信されない。そのため、端末3は休眠通知パケットM802をブロードキャストで送信し、かつ休眠する。端末2および端末4は、休眠通知パケットM802を受信した後、端末3が休眠していることを示す状態情報をメモリ304に記憶する。端末3が休眠した後の状態情報が
図8に示されている。
【0065】
図9は、端末1および端末3が休眠している間に端末2が休眠を宣言するときの通信シーケンスを示す。端末2は、休眠宣言パケットM901をブロードキャストで送信する。端末1および端末3が休眠しているため、端末1および端末3は休眠宣言パケットM901を受信しない。端末4は、休眠宣言パケットM901を受信する。端末4がゲートウェイG1へパケットを届けるための通信経路は、現在の状態では端末2を通る経路のみである。端末2が休眠すると、端末4は通信経路を失う。そのため、端末4は、休眠禁止パケットM902を即座にブロードキャストで送信する。休眠禁止パケットM902は、休眠宣言パケットM901を送信した隣接端末に対する休眠の禁止を示す。
【0066】
端末2は、応答待ち時間T901において、休眠禁止パケットM902を端末4から受信する。そのため、端末2は、休眠取消パケットM903をブロードキャストで送信する。休眠取消パケットM903は、休眠宣言の取消を示す。各端末が管理する隣接端末の状態情報は変更されない。
【0067】
図10は、端末1および端末3が休眠している間に端末4が休眠を宣言するときの通信シーケンスを示す。端末4は、休眠宣言パケットM1001をブロードキャストで送信する。端末1および端末3が休眠しているため、端末1および端末3は休眠宣言パケットM1001を受信しない。端末2は、休眠宣言パケットM1001を受信する。端末2からゲートウェイG1へパケットを届けるための経路は確保されている。そのため、端末2は、休眠宣言パケットM1001に反応しない。端末4は、応答待ち時間T1001だけ応答を待つ。応答待ち時間T1001において端末4の隣接端末から応答は受信されない。そのため、端末4は休眠通知パケットM1002をブロードキャストで送信し、かつ休眠する。端末2は、休眠通知パケットM1002を受信した後、端末4が休眠していることを示す状態情報をメモリ304に記憶する。端末4が休眠した後の状態情報が
図10に示されている。
【0068】
図11は、端末1、端末3、および端末4が休眠している間に端末2が休眠するときの通信シーケンスを示す。端末2は、休眠宣言パケットM1101をブロードキャストで送信し、かつ応答待ち時間T1101だけ応答を待つ。全ての隣接端末が休眠しているため、端末2の隣接端末から応答は受信されない。そのため、端末2は休眠通知パケットM1102をブロードキャストで送信し、かつ休眠する。各端末が管理する隣接端末の状態情報は変更されない。端末2が隣接端末の状態情報に基づいて全ての隣接端末が休眠していると判断できる場合、端末2は休眠宣言パケット等を送信せずに休眠してもよい。
【0069】
図12は、端末1から端末4が休眠した後、端末2、端末3、および端末4が順番に起床するときの通信シーケンスを示す。まず、端末2が起床する。詳細は後述するが、端末3および端末4が休眠するときに送信された休眠通知パケットには各端末の休眠時間が付与されている。端末2が休眠するとき、端末3および端末4よりも早く端末2が起床するための設定が行われる。端末3および端末4は、端末2の下位端末である。
【0070】
端末2が起床した後、端末2は起床通知パケットM1201をブロードキャストで送信し、かつ応答待ち時間T1201だけ応答を待つ。端末2の全ての隣接端末は休眠しているため、応答待ち時間T1201において端末2の隣接端末から応答は受信されない。続いて、端末3が起床する。端末3は起床通知パケットM1202をブロードキャストで送信し、かつ応答待ち時間T1202だけ応答を待つ。
【0071】
端末2は、起床通知パケットM1202を受信する。端末3が起床したことが分かったため、端末2は、端末3が起床していることを示す状態情報をメモリ304に記憶する。さらに、端末2は起床応答パケットM1203をブロードキャストで送信する。端末3は、起床応答パケットM1203を受信する。端末3は、端末2が起床していることを知ることができるため、端末2が起床していることを示す状態情報をメモリ304に記憶する。
【0072】
続いて、端末4が起床する。端末4は起床通知パケットM1204をブロードキャストで送信し、かつ応答待ち時間T1203だけ応答を待つ。端末2および端末3は、起床通知パケットM1204を受信する。端末2および端末3は、端末4が起床したことを知ることができるため、端末4が起床していることを示す状態情報をメモリ304に記憶する。さらに、端末2および端末3は、起床応答パケットM1205をブロードキャストで送信する。端末4は、端末2および端末3の各々から送信された起床応答パケットM1205を受信する。端末4は、端末2および端末3が起床していることを知ることができるため、端末2および端末3が起床していることを示す状態情報をメモリ304に記憶する。端末2、端末3、および端末4が起床した後の状態情報が
図12に示されている。
【0073】
図13は、端末1が休眠し、かつ端末2から端末4が起床した後、端末1が起床するときの通信シーケンスを示す。端末1が起床する。端末1は起床通知パケットM1301をブロードキャストで送信し、かつ応答待ち時間T1301だけ応答を待つ。端末2から端末4は、端末1から送信された起床通知パケットM1301を受信する。そのため、端末2から端末4は、端末1が起床していることを知ることができる。端末2から端末4は、端末1が起床していることを示す状態情報をメモリ304に記憶し、かつ起床応答パケットM1302をブロードキャストで送信する。端末1は、端末2から端末4の各々から送信された起床応答パケットM1302を受信する。端末1は、端末2から端末4が起床していることを知ることができるため、端末2から端末4が起床していることを示す状態情報をメモリ304に記憶する。端末1が起床した後の状態情報が
図13に示されている。
【0074】
図14は、端末1から端末4が起床している状態で端末2が休眠するときの通信シーケンスを示す。端末3および端末4は端末2の下位端末である。そのため、下位端末の都合により端末2が休眠できない場合がある。
図9を参照して、その場合の例を説明した。
【0075】
端末2がいつでも休眠できる状態にある場合、端末2は、
図13に示す例と同様に端末1の起床に基づいて休眠宣言パケットM1401をブロードキャストで送信し、かつ応答待ち時間T1401だけ応答を待つ。
図1に示すネットワークN1において、端末3および端末4は、端末1を経由してゲートウェイG1へパケットを届けることができる。通信経路が確保されているため、端末3および端末4は、端末2から送信された休眠宣言パケットM1401に反応しない。
【0076】
端末2は、端末2の隣接端末から応答が返ってこないことを確認する。端末2は、休眠通知パケットM1402をブロードキャストで送信し、かつ休眠する。端末1、端末3、および端末4は、端末2から送信された休眠通知パケットM1402を受信する。端末1、端末3、および端末4は、端末2が休眠したことを知ることができるため、端末2が休眠していることを示す状態情報をメモリ304に記憶する。端末2が休眠した後の状態情報が
図14に示されている。
【0077】
(端末の基本的な処理)
端末1から端末4が実行する処理について説明する。
図15は、各端末が周期的に実行する基本的な処理の手順を示す。各端末のシステムは、起床状態および休眠状態のいずれか1つになる。システムが動作している間、コントローラ301は、自端末の状態が起床状態と休眠状態とのどちらであるのかを常に判断する(ステップS1501)。
【0078】
ステップS1501において自端末が休眠中であるとコントローラ301が判断した場合、コントローラ301は、自端末が休眠を開始してから休眠時間が経過したか否かを判断する(ステップS1502)。例えば、休眠時間として、10分または1時間等の時間が各端末に設定される。メモリ304は、設定された休眠時間を記憶する。ステップS1502において、休眠時間が経過していないとコントローラ301が判断した場合、ステップS1501における処理が実行される。この場合、コントローラ301は、時間経過を繰り返し監視する。
【0079】
ステップS1502において、休眠時間が経過したとコントローラ301が判断した場合、コントローラ301は起床通知送信処理を実行する(ステップS1503)。起床通知送信処理については、
図21を参照して後述する。ステップS1501において自端末が起床中であるとコントローラ301が判断した場合、コントローラ301はパケット受信処理を実行する(ステップS1504)。パケット受信処理については、
図16を参照して後述する。ステップS1503の後も、コントローラ301はパケット受信処理を実行する(ステップS1504)。
【0080】
ステップS1504の後、コントローラ301は、現在時刻がセンサデータを取得するタイミングであるか否かを判断する(ステップS1505)。コントローラ301は、センサデータをセンサ303から定期的に取得する。ステップS1505において、現在時刻がセンサデータを取得するタイミングでないとコントローラ301が判断した場合、ステップS1508における処理が実行される。ステップS1508における処理については後述する。
【0081】
ステップS1505において、現在時刻がセンサデータを取得するタイミングであるとコントローラ301が判断した場合、コントローラ301は、センサ303からセンサデータを取得する(ステップS1506)。ステップS1506の後、コントローラ301は、通信機302に、センサデータをブロードキャストで送信させる(ステップS1507)。
【0082】
ステップS1507の後、コントローラ301は、休眠禁止パケットの受信履歴と隣接端末の状態変化とに基づいて、自端末を休眠可能あるいは休眠不可にする。自端末が休眠禁止パケットを隣接端末から受信した場合、メモリ304は休眠禁止パケットの受信履歴を記憶する。休眠禁止パケットの受信履歴は、休眠禁止パケットが受信された時刻を含む。休眠禁止パケットの受信履歴がメモリ304に記憶されていない場合、コントローラ301は、ステップS1507の実行状況に基づいて自端末を休眠可能にする。ステップS1507においてセンサデータが送信されていれば、コントローラ301は自端末を休眠可能にする。休眠禁止パケットの受信履歴がメモリ304に記憶されている場合、コントローラ301は、メモリ304に記憶されている隣接端末の状態情報に基づいて、隣接端末の状態変化を判断する。隣接端末の状態変化がある場合、コントローラ301は、自端末を休眠可能にする。隣接端末の状態変化がない場合、コントローラ301は、自端末を休眠不可にする(ステップS1508)。
【0083】
例えば、端末1の等位端末が休眠しているために端末1が自端末の下位端末から休眠禁止パケットを受信する。端末1は、休眠禁止パケットを受信したため、休眠する機会を失っている。その等位端末が起床したことを端末1が知ることができる場合がある。その場合、隣接端末の状態変化がある。その場合、自端末は休眠できる可能性がある。自端末の下位端末が全て休眠したことを端末1が知ることができる場合も、隣接端末の状態変化がある。
【0084】
ステップS1508の後、コントローラ301は、自端末が休眠可能であるか否かを判断する(ステップS1509)。ステップS1509において、自端末が休眠不可であるとコントローラ301が判断した場合、ステップS1501における処理が実行される。ステップS1509において、自端末が休眠可能であるとコントローラ301が判断した場合、コントローラ301は、休眠宣言送信処理を実行する(ステップS1510)。休眠宣言送信処理については、
図18を参照して後述する。ステップS1510の後、ステップS1501における処理が実行される。
【0085】
(パケット受信処理)
図16は、
図15に示すステップS1504において実行されるパケット受信処理の手順を示す。コントローラ301は、通信機302の状態を監視し、かつ通信機302がパケットを隣接端末から受信したか否かを判断する(ステップS1601)。ステップS1601において、通信機302がパケットを受信していないとコントローラ301が判断した場合、コントローラ301はパケット受信処理を終了する。ステップS1601において、通信機302がパケットを受信したとコントローラ301が判断した場合、コントローラ301は、受信されたパケットの種別を判断する(ステップS1602)。
【0086】
コントローラ301は、ステップS1602において、パケットに付与されている種別コードの値に基づいてパケットの種別を判断する。パケットの種別が起床あるいは休眠に関し、かつ起床通知である場合、コントローラ301は起床通知受信処理を実行する。パケットの種別が起床あるいは休眠に関し、かつ休眠宣言である場合、コントローラ301は休眠宣言受信処理を実行する(ステップS1603)。パケットの種別が、起床あるいは休眠に関する他のパケットである場合、コントローラ301は、ステップS1603における処理を実行せずにパケット受信処理を終了する。起床通知受信処理については、
図22を参照して後述する。休眠宣言受信処理については、
図19を参照して後述する。
【0087】
パケットの種別がデータである場合、コントローラ301は、パケットに付与されているIDのいずれか1つと自端末のIDとが同じであるか否かを判断する(ステップS1605)。パケットに付与されているIDのいずれか1つと自端末のIDとが同じである場合、すなわち自端末のIDがパケットに付与されている場合、自端末はそのパケットの送信を完了している。その場合、コントローラ301はパケット受信処理を終了する。パケットに付与されているIDの全てが自端末のIDと異なる場合、すなわち自端末のIDがパケットに付与されていない場合、コントローラ301は、受信されたパケットに自端末のIDを付与する。コントローラ301は、通信機302に、そのパケットをブロードキャストで送信させる(ステップS1606)。ステップS1606における処理が実行されたとき、コントローラ301はパケット受信処理を終了する。
【0088】
パケットの種別が経路探索である場合、コントローラ301は経路探索処理を実行する(ステップS1604)。経路探索処理については、
図17を参照して後述する。ステップS1604における処理が実行されたとき、コントローラ301はパケット受信処理を終了する。
【0089】
(経路探索処理)
図17は、
図16に示すステップS1604において実行される経路探索処理の手順を示す。コントローラ301は、受信された経路探索パケットを解析する。具体的には、コントローラ301は、経路探索パケットに付与されているIDを抽出する。複数のIDが経路探索パケットに付与されている場合、コントローラ301は全てのIDを抽出する(ステップS1701)。自端末のシステムが起動した後に初めて経路探索パケットが受信された場合、コントローラ301は、その経路探索パケットが受信された時刻を記録する。
【0090】
ステップS1701の後、コントローラ301は、抽出されたIDのいずれか1つと自端末のIDとが同じであるか否かを判断する(ステップS1702)。抽出されたIDのいずれか1つと自端末のIDとが同じである場合、すなわち自端末のIDが経路探索パケットに付与されている場合、ステップS1704における処理が実行される。ステップS1704における処理については、後述する。
【0091】
抽出されたIDの全てが自端末のIDと異なる場合、すなわち自端末のIDが経路探索パケットに付与されていない場合、コントローラ301は、経路探索パケットに自端末のIDを付与する。コントローラ301は、通信機302に、経路探索パケットをブロードキャストで送信させる(ステップS1703)。自端末の隣接端末が起床している場合、その隣接端末は、自端末から送信された経路探索パケットを受信する。経路探索パケットを自端末に送信した隣接端末と異なる隣接端末が経路探索パケットを自端末から受信する場合がある。
【0092】
ステップS1703の後、コントローラ301は、経路探索パケットに付与されているIDを通信経路情報としてメモリ304に記憶する(ステップS1704)。通信経路情報は、1つまたは複数のIDを含む。通信経路情報が複数のIDを含む場合は、経路探索パケットに付与されたIDの順番が通信経路情報において保たれる。
【0093】
自端末がゲートウェイG1から経路探索パケットを受信した場合、経路探索パケットにIDは付与されていない。本発明の実施形態では、通信経路情報に含まれるID列の最後に自端末のIDが追加される。自端末のIDを通信経路情報に追加するか否かは、システムの実装に依存してもよい。自端末がゲートウェイG1から経路探索パケットを直接受信した場合、通信経路情報に含まれるIDは自端末のIDのみとなる。自端末のIDのみが通信経路情報に含まれる場合、コントローラ301は、自端末が経路探索パケットをゲートウェイG1から直接受信したことを後で確認できる。例えば、端末3がゲートウェイG1および端末1を経由して経路探索パケットを受信した場合、端末1のIDと端末3のIDとが通信経路情報に含まれる。端末3のコントローラ301は、端末1のIDが先頭であり、かつ端末3のIDが末尾であることを知ることができるため、端末1を経由して経路探索パケットが届いたことを後で確認できる。
【0094】
経路探索パケットの送信元は、自端末の隣接端末である。ステップS1704の後、コントローラ301は、送信元IDを隣接端末としてメモリ304に記憶する(ステップS1705)。
【0095】
所定時間が経過するまで経路探索パケットの受信処理を繰り返すために、コントローラ301は、最初の経路探索パケットが受信されたときから経過した時間をカウントする。ステップS1705の後、コントローラ301は、所定時間が経過したか否かを判断する(ステップS1706)。所定時間とは、例えば10秒である。ステップS1706において、所定時間が経過していないとコントローラ301が判断した場合、ステップS1701における処理が実行される。したがって、処理時間が経過するまで、コントローラ301は、ステップS1701からステップS1706の各々における処理を繰り返し実行する。
【0096】
ステップS1706において、所定時間が経過したとコントローラ301が判断した場合、コントローラ301は、メモリ304に記憶された1つ以上の通信経路情報に基づいて、自端末のホップ数を算出する。自端末のホップ数は、ゲートウェイG1から自端末までの通信経路において経由する端末の数である。つまり、自端末のホップ数は、通信経路においてゲートウェイG1と自端末との間に存在する端末の数である。コントローラ301は、算出されたホップ数の最小値すなわち最小ホップ数を得る(ステップS1707)。
【0097】
ゲートウェイG1から端末1までの通信経路が複数あり、かつゲートウェイG1から端末1へ直接パケットが届く通信経路が通信経路情報に含まれる場合、端末1の最小ホップ数は0である。ゲートウェイG1から端末3までの通信経路が複数あり、かつパケットがゲートウェイG1、端末1、および端末3をこの順に経由する通信経路が通信経路情報に含まれる場合、端末3の最小ホップ数は1である。
【0098】
ステップS1707の後、コントローラ301は、メモリ304に記憶された1つ以上の通信経路情報に基づいて、各隣接端末のホップ数を算出する。隣接端末のホップ数は、ゲートウェイG1から自端末の隣接端末までの通信経路において経由する端末の数である。つまり、隣接端末のホップ数は、通信経路においてゲートウェイG1と隣接端末との間に存在する端末の数である。コントローラ301は、算出されたホップ数の最小値すなわち最小ホップ数を自端末の隣接端末毎に得る(ステップS1708)。
【0099】
例えば、
図1に示すネットワークN1において、端末3へ届いたパケットの通信経路は、少なくとも以下の通信経路を含む。以下の通信経路において、各端末の順番は、パケットが経由する端末の順番と同じである。
第1の通信経路:ゲートウェイG1、端末1、および端末3
第2の通信経路:ゲートウェイG1、端末2、および端末3
第3の通信経路:ゲートウェイG1、端末1、端末2、および端末3
第4の通信経路:ゲートウェイG1、端末1、端末4、および端末3
第5の通信経路:ゲートウェイG1、端末2、端末1、および端末3
第6の通信経路:ゲートウェイG1、端末2、端末4、および端末3
【0100】
上記の通信経路では、端末3は、端末1、端末2、および端末4が端末3の隣接端末であることを知ることができる。端末3は、第1、第3、および第4の通信経路に基づいて、端末1の最小ホップ数が0であることを知ることができる。端末3は、第2、第5、および第6の通信経路に基づいて、端末2の最小ホップ数が0であることを知ることができる。端末3は、第4および第6の通信経路に基づいて、端末4の最小ホップ数が1であることを知ることができる。
【0101】
コントローラ301は、自端末の最小ホップ数と隣接端末の最小ホップ数とを隣接端末毎に比較する。コントローラ301は、比較結果に基づいて、自端末に対する隣接端末の位置関係を決定する。この位置関係は、ゲートウェイG1への近さを基準に決定される。隣接端末の位置関係は、隣接端末が自端末に対して上位、等位、および下位のいずれか1つであることを示す。
【0102】
隣接端末の最小ホップ数が自端末の最小ホップ数よりも小さい場合、その隣接端末は自端末の上位端末である。隣接端末の最小ホップ数が自端末の最小ホップ数と同じである場合、その隣接端末は自端末の等位端末である。隣接端末の最小ホップ数が自端末の最小ホップ数よりも大きい場合、その隣接端末は自端末の下位端末である。コントローラ301は、決定された位置関係を隣接端末情報としてメモリ304に記憶する(ステップS1709)。例えば、端末1および端末2は端末3に対して上位である。端末4は端末3に対して等位である。ステップS1709における処理が実行されたとき、コントローラ301は経路探索処理を終了する。
【0103】
(休眠宣言送信処理)
図18は、
図15に示すステップS1510において実行される休眠宣言送信処理の手順を示す。コントローラ301は、自端末がセンサ303から取得されたセンサデータを含むデータパケットの送信処理を次回に開始する時刻を確認する。コントローラ301は、この時刻と現在時刻とに基づいて休眠時間を算出する(ステップS1801)。例えば、休眠時間は、2つの時刻の差である。
【0104】
ステップS1801の後、コントローラ301は、算出された休眠時間を休眠予定時間として休眠宣言パケットに付与する。コントローラ301は、通信機302に、休眠宣言パケットをブロードキャストで送信させる(ステップS1802)。
【0105】
ステップS1802の後、コントローラ301は、通信機302を監視し、かつパケットの受信を待つ(ステップS1803)。ステップS1803の後、コントローラ301は、休眠宣言パケットの送信から所定時間が経過したか否かを判断する(ステップS1804)。ステップS1804において、所定時間が経過していないとコントローラ301が判断した場合、ステップS1803における処理が実行される。
【0106】
ステップS1804において、所定時間が経過したとコントローラ301が判断した場合、コントローラ301は、休眠禁止パケットが所定時間内に隣接端末から受信されたか否かを判断する(ステップS1805)。起床中の等位端末が存在し、かつ自端末が自端末の下位端末から休眠禁止パケットを受信した場合、その下位端末は起床中の等位端末の下位ではないとコントローラ301は判断できる。その場合、コントローラ301は、その情報を非従属関係として、メモリ304に記憶されている隣接端末情報に加える(ステップS1806)。この情報は、自端末および等位端末がそれぞれ休眠したいときに自端末が休眠できるか否かを判断するために使用される。その判断については、
図20を参照して後述する。上記以外の場合、ステップS1806において処理は実行されない。
【0107】
ステップS1806の後、コントローラ301は、休眠禁止パケットの受信履歴をメモリ304に記憶する(ステップS1807)。この履歴は、
図15に示すステップS1508において使用される。ステップS1807の後、コントローラ301は、通信機302に、休眠取消パケットをブロードキャストで送信させる(ステップS1808)。ステップS1808における処理が実行されたとき、休眠宣言送信処理が終了する。
【0108】
ステップS1805において、休眠禁止パケットが所定時間内に隣接端末から受信されなかったとコントローラ301が判断した場合、コントローラ301は休眠時間決定処理を実行する(ステップS1809)。休眠時間決定処理については、
図23を参照して後述する。ステップS1809の後、コントローラ301は、休眠時間を休眠通知パケットに付与する。休眠時間は、休眠時間決定処理において決定される。コントローラ301は、通信機302に、休眠通知パケットをブロードキャストで送信させる(ステップS1810)。
【0109】
ステップS1810の後、コントローラ301は、休眠禁止パケットの受信履歴をメモリ304から削除する(ステップS1811)。休眠禁止パケットの受信履歴がメモリ304に記憶されていない場合、ステップS1811において処理は実行されない。
【0110】
ステップS1811の後、コントローラ301は、休眠処理を実行する。コントローラ301は、休眠処理において、センサ303および通信機302への電力供給を止めることにより、自端末のシステムを低消費電力状態へ切り替える(ステップS1812)。ステップS1812における処理が実行されたとき、休眠宣言送信処理が終了する。自端末が休眠禁止パケットを隣接端末から受信した場合、自端末は休眠禁止パケットを転送しない。
【0111】
(休眠宣言受信処理)
図19および
図20は、
図16に示すステップS1603において実行される休眠宣言受信処理の手順を示す。コントローラ301は、隣接端末から受信された休眠宣言パケットを解析する。具体的には、コントローラ301は、休眠宣言パケットに付与された送信元のIDを抽出し、かつ送信元の端末を特定する。つまり、コントローラ301は、休眠宣言端末を特定する(ステップS1901)。
【0112】
ステップS1901の後、コントローラ301は、メモリ304に記憶されている隣接端末の位置関係における各端末のIDと休眠宣言パケットの送信元のIDとを比較する。これにより、コントローラ301は、休眠宣言端末が自端末よりも上位であるのか否か、すなわち休眠宣言端末が上位端末であるのか否かを判断する(ステップS1902)。
【0113】
ステップS1902において、休眠宣言端末が自端末よりも上位であるとコントローラ301が判断した場合、コントローラ301は、休眠宣言端末を経由しない別経路が存在するか否かを判断する(ステップS1903)。別経路は、休眠宣言端末以外の上位端末を経由する経路である。例えば、自端末が端末3であり、休眠宣言端末が端末1であり、かつ端末1から端末4が起床状態にある場合について説明する。端末3の上位端末は端末1および端末2である。端末2が起床している場合、端末3から送信されたパケットは端末2を経由してゲートウェイG1に届く。この場合、端末3のコントローラ301は、別経路が存在すると判断する。一方、端末2が休眠状態にある場合、端末3のコントローラ301は、別経路が存在しないと判断する。本発明の実施形態では、各端末からゲートウェイG1までの通信経路を確保するための条件は、常に自端末の上位端末へパケットが届くことである。自端末の等位端末または自端末の下位端末を経由して自端末からゲートウェイG1へパケットが届くことは期待されない。
【0114】
コントローラ301は、ステップS1903における処理を実行することにより、第1の休眠判断を実行する。休眠宣言端末以外に起床中の上位端末が存在するならば、別経路が存在する。このとき、コントローラ301は、休眠宣言端末の休眠を認めると判断する。そのため、休眠禁止パケットは送信されない。休眠宣言端末以外に起床中の上位端末が存在しなければ、別経路は存在しない。このとき、コントローラ301は、休眠宣言端末の休眠を認めないと判断する。そのため、後述するステップS1904において休眠禁止パケットが休眠宣言端末へ送信される。
【0115】
ステップS1903において、別経路が存在するとコントローラ301が判断した場合、コントローラ301は、通信機302を監視し、かつパケットの受信を待つ(ステップS1908)。ステップS1908の後、コントローラ301は、休眠宣言受信処理の開始から所定時間が経過したか否かを判断する(ステップS1909)。所定時間は、例えば5秒である。ステップS1909において、所定時間が経過していないとコントローラ301が判断した場合、ステップS1908における処理が実行される。
【0116】
ステップS1909において、所定時間が経過したとコントローラ301が判断した場合、コントローラ301は、休眠通知パケットが休眠宣言端末から所定時間内に受信されたか否かを判断する(ステップS1905)。ステップS1905において、休眠通知パケットが受信されていないとコントローラ301が判断した場合、コントローラ301は休眠宣言受信処理を終了する。
【0117】
ステップS1905において、休眠通知パケットが受信されたとコントローラ301が判断した場合、コントローラ301は、その休眠通知パケット解析する。具体的には、コントローラ301は、休眠通知パケットに含まれている休眠時間を抽出する。コントローラ301は、メモリ304に記憶されている隣接端末情報において、休眠宣言端末の状態情報を休眠状態に更新する。さらに、コントローラ301は、休眠宣言端末の休眠時間を隣接端末情報に加える。そのため、休眠宣言端末の休眠時間がメモリ304に記憶される(ステップS1906)。隣接端末情報において休眠時間は、自端末における時間の経過とともに更新される。つまり、時間が経過するに従って、休眠時間は減少する。
【0118】
ステップS1903において、別経路が存在しないとコントローラ301が判断した場合、コントローラ301は、通信機302に、休眠宣言端末のIDが付与された休眠禁止パケットをブロードキャストで送信させる(ステップS1904)。ステップS1904の後、ステップS1908における処理が実行される。
【0119】
休眠宣言端末は、休眠禁止パケットを受信する(ステップS1805)。休眠宣言端末は、休眠取消パケットを送信する(ステップS1808)。コントローラ301は、休眠禁止パケットが受信されたことを確認し、休眠宣言受信処理を終了する(ステップS1905)。
【0120】
休眠禁止パケットが送信された後、休眠に関する通信のトランザクションを確認するために、各端末は、ステップS1908において休眠取消パケットの受信を待つ。休眠取消パケットの受信処理を省略する実装が適用されてもよい。
【0121】
ステップS1902において、休眠宣言端末が自端末よりも上位ではないとコントローラ301が判断した場合、コントローラ301は、休眠宣言端末が自端末と等位であるか否かを判断する(ステップS1907)。ステップS1907において、休眠宣言端末が自端末と等位ではない場合、コントローラ301は、休眠宣言端末が下位端末であると判断する。この場合、ステップS1908における処理が実行される。
【0122】
ステップS1907において、休眠宣言端末が自端末と等位であるとコントローラ301が判断した場合、コントローラ301は、メモリ304に記憶された隣接端末の状態情報に基づいて、自端末の全ての下位端末が休眠しているか否かを判断する(ステップS2001)。ステップS2001において、全ての下位端末が休眠しているとコントローラ301が判断した場合、ステップS1908における処理が実行される。この場合、休眠禁止パケットは送信されない。自端末の全ての下位端末が休眠している場合、休眠宣言端末は休眠することができる。
【0123】
ステップS2001において、少なくとも1つの下位端末が起床状態にある場合、コントローラ301は、休眠宣言端末が自端末の下位端末の別経路に含まれるか否かを判断する(ステップS2002)。各端末は、自端末と自端末の隣接端末との位置関係を把握できる。各端末は、自端末の隣接端末と、それ以外の隣接端末との位置関係を完全には把握していない。しかし、
図18に示すステップS1806の説明と同様に、各端末は、ある程度の位置関係を把握できる。例えば、各端末は、自端末の下位端末が自端末の等位端末の下位にも存在するか否かを把握できる。コントローラ301は、ステップS2001において、自端末の下位端末が等位端末の下位であるか否かを判断することにより、休眠宣言端末が自端末の下位端末の別経路に含まれるか否かを判断する。
【0124】
ステップS2002において、休眠宣言端末が自端末の下位端末の別経路に含まれないとコントローラ301が判断した場合、ステップS1908における処理が実行される。この場合、休眠禁止パケットは送信されない。自端末の下位端末の通信経路に休眠宣言端末が含まれないため、自端末の下位端末は休眠宣言端末の休眠の影響を受けない。そのため、休眠宣言端末は休眠することができる。
【0125】
ステップS2002において、休眠宣言端末が自端末の下位端末の別経路に含まれるとコントローラ301が判断した場合、コントローラ301は、自端末の現在の起床状態において休眠禁止パケットが受信された履歴があるか否かを判断する(ステップS2003)。現在の起床状態が開始された後に休眠禁止パケットが受信されていない場合、現在の起床状態において休眠禁止パケットが受信された履歴はない。現在の起床状態が開始された後に休眠禁止パケットが受信された場合、現在の起床状態において休眠禁止パケットが受信された履歴がある。
【0126】
ステップS2003において、現在の起床状態において休眠禁止パケットが受信された履歴はないとコントローラ301が判断した場合、ステップS1908における処理が実行される。この場合、休眠禁止パケットは送信されない。ステップS2003において、現在の起床状態において休眠禁止パケットが受信された履歴があるとコントローラ301が判断した場合、コントローラ301は、自端末がセンサ303から取得されたセンサデータを含むデータパケットの送信処理を次回に実行するまでの休眠時間を確認する(ステップS2004)。自端末が休眠禁止パケットを受信した場合、自端末は休眠可能な状態にある。これは、センサ303が次回に計測を実行するまでの時間が休眠時間として保持されていることを意味する。休眠時間は、時間の経過とともに減少する。休眠時間が経過した後、自端末は、データ送信などの所定の処理を実行する。所定の処理が実行された後、自端末は休眠を再度開始する。自端末は、ステップS2004において確認された休眠時間に基づいて、休眠を再度開始する時刻を予測することができる。
【0127】
ステップS2004の後、コントローラ301は、自端末が休眠を開始する休眠予定時刻が休眠宣言端末の休眠時間に含まれるか否かを判断する。具体的には、コントローラ301は、ステップS2004において確認された自端末の休眠時間に基づいて、自端末の休眠予定時刻を予測する。コントローラ301は、休眠宣言パケットが受信された時刻に、休眠宣言パケットに含まれる休眠予定時間を加算することにより、休眠宣言端末が休眠を終了する起床予定時刻を算出する。コントローラ301は、自端末の休眠予定時刻と、休眠宣言端末の起床予定時刻とを比較する。自端末の休眠予定時刻が休眠宣言端末の起床予定時刻よりも前である場合、自端末の休眠予定時刻は休眠宣言端末の休眠時間に含まれる。自端末の休眠予定時刻が休眠宣言端末の起床予定時刻よりも後である場合、自端末の休眠予定時刻は休眠宣言端末の休眠時間に含まれない(ステップS2005)。
【0128】
ステップS2005において、自端末の休眠予定時刻は休眠宣言端末の休眠時間に含まれないとコントローラ301が判断した場合、ステップS1908における処理が実行される。この場合、休眠禁止パケットは送信されない。休眠宣言端末が起床した後に自端末が休眠するため、自端末の下位端末は休眠宣言端末の休眠の影響を受けない。そのため、休眠宣言端末は休眠することができる。
【0129】
ステップS2005において、自端末の休眠予定時刻は休眠宣言端末の休眠時間に含まれるとコントローラ301が判断した場合、ステップS1904における処理が実行される。ステップS2003において、自端末が、休眠の機会を失った履歴を持つことが判明している。休眠機会を失った履歴を持つ自端末を次回に優先的に休眠させるために、ステップS1904において休眠禁止パケットが送信される。自端末が休眠宣言パケットまたは休眠取消パケットを隣接端末から受信した場合、自端末は休眠宣言パケットまたは休眠取消パケットを転送しない。自端末が休眠通知パケットを隣接端末から受信した場合、自端末は休眠通知パケットを転送しない。
【0130】
(起床通知送信処理)
図21は、
図15に示すステップS1503において実行される起床通知送信処理の手順を示す。コントローラ301は、起床処理を実行する。コントローラ301は、起床処理において、センサ303および通信機302への電力供給を開始することにより、自端末のシステムを低消費電力状態から通常動作状態へ切り替える(ステップS2101)。
【0131】
ステップS2101の後、コントローラ301は、通信機302に、起床通知パケットをブロードキャストで送信させる(ステップS2102)。ステップS2102の後、コントローラ301は、通信機302の状態を監視し、かつ通信機302が起床応答パケットを隣接端末から受信したか否かを判断する(ステップS2103)。ステップS2103において、通信機302が起床応答パケットを受信していないとコントローラ301が判断した場合、ステップS2105における処理が実行される。ステップS2105における処理については後述する。
【0132】
ステップS2103において、通信機302が起床応答パケットを受信したとコントローラ301が判断した場合、コントローラ301は、起床応答パケットに含まれるIDを抽出する。コントローラ301は、メモリ304に記憶されている隣接端末情報において、抽出されたIDを持つ情報を検索する。起床応答パケットを送信した隣接端末は、起床状態にある。コントローラ301は、発見されたIDに関連付けられた状態情報を起床状態に更新する(ステップS2104)。
【0133】
ステップS2104の後、コントローラ301は、起床通知パケットの送信から所定時間が経過したか否かを判断する(ステップS2105)。ステップS2105において、所定時間が経過していないとコントローラ301が判断した場合、ステップS2103における処理が実行される。ステップS2105において、所定時間が経過したとコントローラ301が判断した場合、コントローラ301は起床通知送信処理を終了する。
【0134】
(起床通知受信処理)
図22は、
図16に示すステップS1603において実行される起床通知受信処理の手順を示す。コントローラ301は、隣接端末から受信された起床通知パケットを解析する。具体的には、コントローラ301は、起床通知パケットに付与された送信元のIDを抽出し、かつ送信元の端末を特定する(ステップS2201)。
【0135】
ステップS2201の後、コントローラ301は、メモリ304に記憶されている隣接端末情報において、抽出されたIDを持つ情報を検索する。起床通知パケットを送信した隣接端末は、起床状態にある。コントローラ301は、発見されたIDに関連付けられた状態情報を起床状態に更新する(ステップS2202)。
【0136】
ステップS2202の後、コントローラ301は、通信機302に、起床応答パケットをブロードキャストで送信させる(ステップS2203)。ステップS2203における処理が実行されたとき、コントローラ301は起床通知受信処理を終了する。自端末が起床通知パケットを隣接端末から受信した場合、自端末は起床通知パケットを転送しない。
【0137】
(休眠時間決定処理フローチャート)
図23は、
図18に示すステップS1809において実行される休眠時間決定処理の手順を示す。コントローラ301は、自端末が次回に、センサ303から取得されたセンサデータを含むデータパケットの送信処理を開始する時刻を確認する。コントローラ301は、この時刻と現在時刻とに基づいて休眠時間を算出する(ステップS2301)。例えば、休眠時間は、2つの時刻の差である。
【0138】
ステップS2301の後、コントローラ301は、メモリ304に記憶されている隣接端末情報に基づいて、休眠中の下位端末の残りの休眠時間を確認する。
図19に示すステップS1906において、休眠を宣言した隣接端末の休眠時間が隣接端末情報に追加される。前述したように、時間が経過するに従って、休眠時間は減少する。複数の下位端末が休眠中である場合、コントローラ301は、最も短い残りの休眠時間を選択する。つまり、コントローラ301は、最も早く起床する下位端末の残りの休眠時間を選択する(ステップS2302)。休眠中の下位端末が存在しない場合、コントローラ301は、休眠時間を選択しない。
【0139】
ステップS2302の後、コントローラ301は、自端末の休眠時間と下位端末の残りの休眠時間とを比較する。コントローラ301は、自端末の休眠時間が下位端末の残りの休眠時間よりも短いか否かを判断する(ステップS2303)。
【0140】
ステップS2303において、自端末の休眠時間が下位端末の残りの休眠時間よりも短いとコントローラ301が判断した場合、コントローラ301は、自端末の休眠時間を、休眠通知パケットに付与する休眠時間として決定する(ステップS2304)。例えば、自端末の休眠時間が60分であり、かつ下位端末の残りの休眠時間が90分である場合、60分が休眠時間に採用される。ステップS2302においてコントローラ301が休眠時間を選択しなかった場合も、ステップS2304における処理が実行される。
【0141】
自端末の休眠時間が下位端末の残りの休眠時間よりも短いため、下位端末が起床する前に自端末が起床する。下位端末が起床したとき、下位端末の通信経路は確保されている。
【0142】
ステップS2303において、下位端末の残りの休眠時間が自端末の休眠時間よりも短いとコントローラ301が判断した場合、コントローラ301は、下位端末の残りの休眠時間に基づいて、休眠通知パケットに付与する休眠時間を決定する。例えば、コントローラ301は、下位端末の残りの休眠時間よりもやや短い時間を、休眠通知パケットに付与する休眠時間として決定する(ステップS2305)。
【0143】
例えば、自端末の休眠時間が60分であり、かつ下位端末の残りの休眠時間が90分である場合、自端末が下位端末よりも先に起床する。現在時刻から60分が経過し、自端末が休眠通知パケットを再度送信するとき、自端末は休眠時間を決定する。自端末が60分毎に起床する場合、自端末の休眠時間は60分となる。このとき、60分が経過しているため、休眠中の下位端末の残りの休眠時間は30分である。この場合、下位端末の残りの休眠時間(30分)が採用される。
【0144】
自端末は、下位端末の通信経路を担保するために、30分よりも短い時間で起床することが求められる。そのため、起床処理等の処理時間および各端末の内部クロックの誤差を考慮し、自端末は、下位端末が起床するタイミングよりも早いタイミングで起床する。例えば、内部クロックの進み方には、システム毎に誤差がある。その誤差は、大きくても数msから十数ms程度である。また、システムの起床に要する処理時間は、長くても数秒程度と考えられる。例えば、コントローラ301は、自端末の起床に要する処理時間および内部クロックの誤差の合計を10秒程度と見積もる。下位端末の残りの休眠時間が30分である場合、コントローラ301は、自端末の休眠時間を29分50秒に設定する。
【0145】
ステップS2304またはステップS2305における処理が実行されたとき、コントローラ301は休眠時間決定処理を終了する。ステップS2304またはステップS2305において決定された休眠時間は、
図18に示すステップS1810において送信される休眠通知パケットに付与される。
【0146】
(パケットの構造)
図24は、通信に使用される各パケットの構造を示す。パケットP2401は、種別F2401、送信元ID F2402、およびペイロードF2403から構成される。種別F2401は、パケットの種別を示す。送信元ID F2402は、送信元を識別するIDである。ペイロードF2403は、各情報を含む。
【0147】
種別F2401は、
図25に示す種別毎の値を含む。パケットの種別は、経路探索、休眠宣言、休眠禁止、休眠取消、休眠通知、起床通知、起床応答、およびデータのいずれか1つである。パケットの種別毎に異なる値が用意されている。コントローラ301は、受信されたパケットから種別F2401を抽出する。コントローラ301は、種別F2401に基づいてパケットの種別を判断し、かつ各処理を実行する。送信元ID F2402は、
図1に示すネットワークN1の説明に使用した0001などのIDを含む。
【0148】
ペイロードF2403のフォーマットは、パケットの種別毎に異なる。経路探索パケットでは、パケットが転送される度にIDが付与される。
図24に示す例では、経路探索パケットのペイロードD2401は、1つ以上のIDを含む。経路探索パケットが複数のIDを含む場合、これらのIDの順番は、経路探索パケットの通信経路における端末の順番と同じである。
【0149】
例えば、ゲートウェイG1から送信された経路探索パケットが端末1へ届く。端末1が経路探索パケットを送信するとき、端末1は端末1に固有なID(0001)を経路探索パケットに付与する。同様に、端末1から送信された経路探索パケットが端末2へ届く。端末2が経路探索パケットを送信するとき、端末2は端末2に固有なID(0002)を経路探索パケットに付与する。ペイロードD2401のデータ列は、“00010002”となる。このデータ列がそのまま通信経路情報となる。データの先頭から並ぶIDの数がホップ数となる。
【0150】
休眠宣言パケットのペイロードD2402は、休眠予定時間を含む。休眠予定時間は、休眠開始予定時刻および休眠終了予定時刻によって示されてもよい。休眠禁止パケットのペイロードD2403は、休眠宣言パケットを送信した端末の送信元IDを含む。休眠禁止パケットのペイロードD2404には、NULLと記載されている。これは、休眠禁止パケットのペイロードD2404がデータを含まないことを意味する。
【0151】
休眠通知パケットのペイロードD2405は、休眠時間を含む。休眠時間は、休眠開始時刻および休眠終了時刻によって示されてもよい。起床通知パケットのペイロードD2406および起床応答パケットのペイロードD2407には、NULLと記載されている。これは、起床通知パケットのペイロードD2406および起床応答パケットのペイロードD2407がデータを含まないことを意味する。データパケットのペイロードD2408は、IDおよびデータを含む。経路探索パケットと同様に、データパケットでは、パケットが転送される度にIDが付与される。
【0152】
(隣接端末情報の構成)
図26A、
図26B、および
図26Cは、各端末が管理する隣接端末情報の構成を示す。
図26Aは、隣接端末情報のフォーマットを示す。隣接端末情報は、ID、位置関係、端末状態、休眠時間、および非従属関係の各々の情報を含む。IDは、隣接端末に固有である。位置関係は、自端末に対する隣接端末の階層位置を示す。位置関係は、上位、等位、および下位のいずれか1つを示す。端末状態は、起床状態および休眠状態のいずれか1つを示す。隣接端末が休眠中である場合、休眠時間が設定される。非従属関係は、自端末の下位端末が自端末の等位端末の下位に位置しないことを意味する。非従属関係は、下位端末のIDを示す。コントローラ301は、新たな情報が得られる度に隣接端末情報を更新する。
【0153】
図26Bは、
図1に示すネットワークN1において端末1が管理する情報の例を示す。端末3は、端末1の下位端末であるため、ID=0003と下位を示す情報とが関連付けられている。端末3が休眠している場合、端末状態は休眠を示す。休眠時間は90分である。時間の経過に応じて休眠時間は減少する。
【0154】
図26Cは、
図2に示すネットワークN2において端末1が管理する情報の例を示す。ネットワークN2において、端末2および端末3は、互いに直接通信できない位置にある。
図18の説明と同様に、端末1は、休眠宣言パケット等のシーケンスを繰り返すことにより、端末1の等位にある端末2の下位に端末3が存在しないことを知る。ID=0002の非従属関係は、ID=0003を含む。
【0155】
本発明の各態様の無線通信方法は、第1のステップ、第2のステップ、第3のステップ、第4のステップ、および第5のステップを有する。通信機302が経路探索パケットを周辺端末から受信した場合、コントローラ301は、第1のステップ(S1703)において、通信機302に、経路探索パケットを隣接端末へ送信させる。コントローラ301は、第2のステップ(S1709)において、通信機が周辺端末から受信した経路探索パケットに基づいて上位端末を判別する。コントローラ301は、第3のステップ(S1906、S2104、およびS2202)において、通信機302が隣接端末から受信した通知に基づいて、隣接端末の状態情報をメモリ304に記憶する。通信機302が休眠宣言パケットを休眠宣言端末から受信し、かつ休眠宣言端末が上位端末である場合、コントローラ301は、第4のステップ(S1903)において、状態情報に基づいて第1の休眠判断を実行する。休眠宣言端末の休眠を認めないとコントローラ301が判断した場合、コントローラ301は、第5のステップ(S1904)において、通信機302に、休眠禁止パケットを休眠宣言端末へ送信させる。本発明の各態様の無線通信方法は、上記の5つのステップ以外のステップを有する必要はない。
【0156】
休眠宣言端末以外に起床中の上位端末が存在しなければ、コントローラ301は、第1の休眠判断において休眠宣言端末の休眠を認めないと判断する。そのため、各端末は通信経路を確実に確保することができる。休眠宣言端末以外に起床中の上位端末が存在するならば、コントローラ301は、第1の休眠判断において休眠宣言端末の休眠を認めると判断する。そのため、各端末は、ネットワーク全体の消費電力を減らすことができる。マルチホップネットワークにおいて、各端末は、集中管理されることなく自発的に第1の休眠判断を実行することができる。
【0157】
コントローラ301は、ステップS1802において、通信機302に、休眠宣言パケットを隣接端末へ送信させる。通信機302が休眠宣言パケットを送信した後の所定期間内に通信機302が隣接端末から休眠禁止パケットを受信しない場合、コントローラ301は、ステップS1810において、通信機302に、休眠通知パケットを隣接端末へ送信させる。通信機302が休眠通知パケットを送信した後、コントローラ301は、ステップS1812において、消費電力が低減された休眠状態に自端末を移行させるための休眠処理を実行する。休眠処理が実行された後、コントローラ301は、ステップS2101において、自端末を休眠状態から復帰させるための起床処理を実行する。起床処理が実行された後、コントローラ301は、ステップS2102において、通信機302に、起床通知パケットを隣接端末へ送信させる。コントローラ301は、ステップS1906およびステップS2202において、通信機302が隣接端末から受信した休眠通知パケットと、通信機302が隣接端末から受信した起床通知パケットとに基づいて、状態情報をメモリ304に記憶する。
【0158】
各無線通信端末は、状態情報に基づいて、自端末の隣接端末の起床状態および休眠状態を常に把握することができる。そのため、休眠可能な状態にあって休眠の機会を狙っている無線通信端末が休眠処理を即座に開始することができる。
【0159】
コントローラ301は、ステップS1709において、通信機302が周辺端末から受信した経路探索パケットに基づいて、等位端末を判別する。第3の数は第4の数と同じである。第3の数は、通信経路においてゲートウェイG1(集約装置)と自端末との間に存在する無線通信端末の数である。第4の数は、通信経路においてゲートウェイG1と等位端末との間に存在する無線通信端末の数である。所定期間内に通信機302が休眠禁止パケットを隣接端末から受信し、かつ、休眠中である等位端末の状態情報がメモリ304に記憶されている第1の場合、コントローラ301は、休眠中の等位端末が起床したタイミングで、通信機302に、休眠宣言パケットを隣接端末へ送信させる(ステップS1802)。
【0160】
ステップS1802において休眠宣言パケットが送信される。その後の所定期間内に休眠禁止パケットが隣接端末から受信される場合がある(ステップS1805)。コントローラ301は、ステップS1508において、休眠中の等位端末が休眠状態から起床状態へ遷移したことを検知できる。休眠中の等位端末が休眠状態から起床状態へ遷移したとコントローラ301が判断したとき、自端末は休眠可能である(ステップS1509)。そのため、休眠宣言送信処理(ステップS1510)が実行され、かつステップS1802において休眠宣言パケットが再度送信される。
【0161】
休眠中の等位端末が起床した後、自端末は休眠することができる。そのため、消費電力の負担が無線通信端末間で分散する。
【0162】
休眠通知パケットは、休眠通知パケットを送信する無線通信端末の休眠期間に関する期間情報(休眠時間)を含む。第1の場合、自端末が次に休眠を開始する前に、コントローラ301は、ステップS2004およびステップS2005において、期間情報に基づいて、タイミング判断を実行してもよい。コントローラ301は、タイミング判断において、休眠中である等位端末の起床予定時刻が自端末の休眠予定時刻よりも早い否かを判断する。起床予定時刻は、等位端末が休眠を終了する時刻である。休眠予定時刻は、自端末が休眠を開始する時刻である。等位端末の起床予定時刻が自端末の休眠予定時刻よりも早いとコントローラ301が判断した場合、コントローラ301は、等位端末の起床予定時刻において、通信機302に、休眠宣言パケットを隣接端末へ送信させてもよい(ステップS1802)。
【0163】
コントローラ301は、ステップS2004において、自端末が休眠を開始する休眠予定時刻を予測する。コントローラ301は、期間情報に基づいて、休眠中である等位端末の起床予定時刻を予測してもよい。コントローラ301は、休眠中の等位端末の起床予定時刻に基づいて、自端末が休眠できるか否かを判断することができる。
【0164】
休眠宣言パケットは、休眠宣言端末の休眠期間に関する期間情報(休眠予定時間)を含む。コントローラ301は、ステップS1709において、通信機302が周辺端末から受信した経路探索パケットに基づいて、等位端末を判別する。所定期間内に通信機302が休眠禁止パケットを隣接端末から受信し、かつ休眠宣言端末が等位端末である場合、コントローラ301は、ステップS2005において、第2の休眠判断を実行する。コントローラ301は、第2の休眠判断において、自端末の休眠予定時刻および休眠宣言端末の休眠期間に基づいて、自端末および休眠宣言端末が同時に休眠している期間があるか否かを判断する。休眠予定時刻は、自端末が休眠を開始する時刻である。自端末および休眠宣言端末が同時に休眠している期間があるとコントローラ301が判断した場合、コントローラ301は、第2の休眠判断において休眠宣言端末の休眠を認めないと判断する。
【0165】
コントローラ301は、ステップS2005において、自端末の休眠予定時刻と、休眠宣言端末の起床予定時刻とを比較する。自端末の休眠予定時刻が休眠宣言端末の起床予定時刻よりも前である場合、自端末および休眠宣言端末が同時に休眠している期間がある。自端末の休眠予定時刻が休眠宣言端末の起床予定時刻よりも後である場合、自端末および休眠宣言端末が同時に休眠している期間はない。自端末および休眠宣言端末が同時に休眠している期間がある場合、ステップS1904において休眠禁止パケットが送信される。
【0166】
自端末の休眠が禁止された場合(ステップS2003)、自端末および休眠宣言端末が同時に休眠するか否かが判断される(ステップS2005)。自端末および休眠宣言端末が同時に休眠する場合、休眠宣言端末の休眠は禁止される。そのため、自端末の次の休眠が休眠宣言端末の休眠よりも優先される。
【0167】
コントローラ301は、ステップS1709において、通信機302が周辺端末から受信した経路探索パケットに基づいて下位端末を判別する。第5の数は第6の数よりも大きい。第5の数は、通信経路においてゲートウェイG1(集約装置)と下位端末との間に存在する無線通信端末の数である。第6の数は、通信経路においてゲートウェイG1(集約装置)と自端末との間に存在する無線通信端末の数である。コントローラ301は、ステップS1806において、等位端末が下位端末の通信経路に含まれるか否かを示す迂回情報(非従属関係)をメモリ304に記憶する。コントローラ301は、第2の休眠判断において、迂回情報に基づいて、休眠宣言端末が、下位端末の通信経路に含まれる等位端末であるか否かを判断する(ステップS2002)。自端末および休眠宣言端末が同時に休眠している期間があるとコントローラ301が判断し、かつ休眠宣言端末が、下位端末の通信経路に含まれる等位端末であるとコントローラ301が判断した場合、コントローラ301は、第2の休眠判断において休眠宣言端末の休眠を認めないと判断する。
【0168】
自端末が休眠した場合、自端末の下位端末が自端末の等位端末を含む別経路のみで通信を行う可能性がある。自端末および休眠宣言端末が同時に休眠している間、その下位端末は通信を行うことができない。そのような場合に休眠宣言端末の休眠は禁止される。そのため、なるべく電力の消費が平準化され、かつ無駄な電力の消費が低減される。
【0169】
コントローラ301は、ステップS1709において、通信機302が周辺端末から受信した経路探索パケットに基づいて下位端末を判別する。休眠通知パケットは、休眠通知パケットを送信する無線通信端末の休眠期間に関する期間情報(休眠時間)を含む。コントローラ301は、ステップS2302において、期間情報に基づいて、休眠中である下位端末の起床予定時刻を判断する。起床予定時刻は、下位端末が休眠を終了する時刻である。所定期間内に通信機302が休眠禁止パケットを隣接端末から受信せず、かつ、休眠中である下位端末の状態情報がメモリ304に記憶されている第2の場合、コントローラ301は、ステップS2304またはステップS2305において、自端末の休眠期間を決定する。自端末の休眠期間は、下位端末の起床予定時刻よりも前に終了する。
【0170】
下位端末が起床する前に自端末が起床する。そのため、下位端末の通信経路が確実に確保され、かつ自端末の消費電力が低減される。
【0171】
コントローラ301は、ステップS2301において、自端末の休眠予定期間(休眠時間)を決定する。第2の場合、かつ休眠予定期間が下位端末の起床予定時刻よりも後に終了する第3の場合、コントローラ301は、ステップS2305において、自端末の休眠期間を決定する。通信機302が送信する休眠通知パケットは、自端末の休眠期間に関する期間情報を含む。
【0172】
コントローラ301は、ステップS2303において、自端末の休眠時間が下位端末の残りの休眠時間よりも短いか否かを判断する。自端末の休眠時間が下位端末の残りの休眠時間よりも短い場合、自端末の休眠予定期間は下位端末の起床予定時刻よりも後に終了する。下位端末が起床したときに自端末が休眠しているため、下位端末の通信経路が確保されない。その場合、ステップS2305において自端末の休眠期間が決定される。その休眠期間は、下位端末が起床する前に終了する。つまり、下位端末が起床する前に自端末が起床する。そのため、下位端末の通信経路が確実に確保され、かつ自端末の消費電力が低減される。
【0173】
以上、本発明の好ましい実施形態を説明したが、本発明はこれら実施形態およびその変形例に限定されることはない。本発明の趣旨を逸脱しない範囲で、構成の付加、省略、置換、およびその他の変更が可能である。また、本発明は前述した説明によって限定されることはなく、添付のクレームの範囲によってのみ限定される。
【産業上の利用可能性】
【0174】
本発明の各実施形態によれば、無線通信端末、無線通信システム、無線通信方法、およびプログラムは、通信経路を確実に確保することができ、かつネットワーク全体の消費電力を減らすことができる。
【符号の説明】
【0175】
1,2,3,4 端末
G1 ゲートウェイ
301,321 コントローラ
302 通信機
303 センサ
304,324 メモリ
305,325 クロック回路
322 第1の通信機
323 第2の通信機