(57)【特許請求の範囲】
【請求項１】
他の無線機器が送信していないデータである原本データを送信する際に使用する第１のタイムスロットと、前記他の無線機器から送信されたデータである転送データを送信する際に使用するタイムスロットであり、前記第１のタイムスロットと異なる長さの第２のタイムスロットとを設定する設定手段と、
前記第１のタイムスロットにおいて、前記原本データを送信し、前記第２のタイムスロットにおいて、前記転送データを送信する通信手段と
を備えることを特徴とする無線機器。
【請求項２】
前記設定手段は、
前記第１のタイムスロットの長さよりも前記第２のタイムスロットの長さを短く設定することを特徴とする請求項１に記載の無線機器。
【請求項３】
前記設定手段は、
ネットワークを構成する前記他の無線機器の数と、前記他の無線機器の無線インタフェースの間欠起動時間と、に基づいて、前記第１のタイムスロットと前記第２のタイムスロットとを算出することを特徴とする請求項１または請求項２に記載の無線機器。
【請求項４】
前記設定手段は、
前記間欠起動時間を前記他の無線機器の数で除算することより得られた第１の計算結果を、前記第１のタイムスロットとして設定し、
前記第１の計算結果を前記他の無線機器の数に任意の重み付けを施した数で除算することにより得られた第２の計算結果を、前記第２のタイムスロットとして設定することを特徴とする請求項３に記載の無線機器。
【請求項５】
前記設定手段は、
予め定められた、前記第１のタイムスロットと前記第２のタイムスロットとを設定することを特徴とする請求項１から請求項４の何れか１項に記載の無線機器。
【請求項６】
前記第１のタイムスロットおよび前記第２のタイムスロットは、それぞれ複数存在し、
前記通信手段は、
前記原本データを送信する場合には、複数の前記第１のタイムスロットの中から前記他の無線機器で取得した乱数に応じた前記第１のタイムスロットを決定し、決定した前記第１のタイムスロットにおいて、前記原本データを送信し、
前記転送データを送信する場合には、複数の前記第２のタイムスロットの中から前記他の無線機器で取得した乱数に応じた前記第２のタイムスロットを決定し、決定した前記第２のタイムスロットにおいて、前記転送データを送信することを特徴とする請求項１から請求項５の何れか１項に記載の無線機器。
【請求項７】
複数の無線機器で構成される通信システムであって、
前記複数の無線機器は、
他の無線機器が送信していないデータである原本データを送信する際に使用する第１のタイムスロットと、前記他の無線機器から送信されたデータである転送データを送信する際に使用するタイムスロットであり、前記第１のタイムスロットと異なる長さの第２のタイムスロットとを設定する設定手段と、
前記第１のタイムスロットにおいて、前記原本データを送信し、前記第２のタイムスロットにおいて、前記転送データを送信する通信手段と
を備えることを特徴とする通信システム。
【請求項８】
無線機器で行う制御方法であって、
他の無線機器が送信していないデータである原本データを送信する際に使用する第１のタイムスロットと、前記他の無線機器から送信されたデータである転送データを送信する際に使用するタイムスロットであり、前記第１のタイムスロットと異なる長さの第２のタイムスロットとを設定する設定工程と、
前記第１のタイムスロットにおいて、前記原本データを送信し、前記第２のタイムスロットにおいて、前記転送データを送信する通信工程と
を備えることを特徴とする制御方法。
【請求項９】
無線機器のコンピュータに実行させるプログラムであって、
他の無線機器が送信していないデータである原本データを送信する際に使用する第１のタイムスロットと、前記他の無線機器から送信されたデータである転送データを送信する際に使用するタイムスロットであり、前記第１のタイムスロットと異なる長さの第２のタイムスロットとを設定する設定処理と、
前記第１のタイムスロットにおいて、前記原本データを送信し、前記第２のタイムスロットにおいて、前記転送データを送信する通信処理と
を行うことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、センサネットワーク、マルチホップネットワーク、メッシュネットワークなどの無線ネットワークに関する。
【背景技術】
【０００２】
無線ネットワークを構築する通信システムにおいて、ブロードキャストやマルチキャストによるデータ配信を行う場合や、各種制御情報の通知を行う場合は、データをランダムな時間遅延させて送信したり、転送したりしている。
【０００３】
しかし、無線ネットワークにノードが多数存在する場合に、データを無線ネットワーク内の全ノードへ送信（以降、フラッディングと呼ぶ）すると、無線区間において送信したデータが電波干渉などにより衝突し（以降、データ衝突と呼ぶ）、データの到達率が低下してしまうことになる。
【０００４】
このようなことから、ノード間の送信タイミングを調整し、データ衝突を回避する技術が各種提案されている。
【０００５】
例えば、特許文献１（特開2005-94663号公報）には、時刻同期用のパルス信号を用いて送信タイミングを調整する技術について開示されている。この特許文献１の技術を第１の従来技術とする。
【０００６】
また、通信が許可される時間帯（タイムスロット）を各ノードに割り当て、各ノードは、各自に割り当てられたタイムスロットを用いてデータ送信を行うTDMA（Time Division Multiple Access）方式がある。このTDMA方式の技術を第２の従来技術とする。
【０００７】
また、特許文献２（特開2007-184937号公報）には、ブロードキャスト送信時のデータ衝突の確率を減少させるために、ホップ数を用いて重複パケットの転送を削減する技術について開示されている。この特許文献２の技術を第３の従来技術とする。
【０００８】
また、本発明より先に出願された技術文献として、例えば、特許文献３（特開2006-157637号公報）には、無線マルチホップ通信ネットワークにおいて、低遅延、低遅延ゆらぎ、高スループット、高いQoS（Quality of Service）の保証を実現する技術について開示されている。
【０００９】
また、特許文献４（特開2005-136748号公報）には、移動体通信システムにおける同期信号の探索を適切な時間範囲で行う技術について開示されている。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００５−９４６６３号公報
【特許文献２】特開２００７−１８４９３７号公報
【特許文献３】特開２００６−１５７６３７号公報
【特許文献４】特開２００５−１３６７４８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
第１の従来技術では、タイムスロットを取得及び調整するために、インパルス信号を用いている。このため、第１の従来技術では、インパルス信号を送信及び受信するための部品または機器が必要になる。また、インパルス信号を送信及び受信するには、インパルス信号の復調や信号解析などの複雑な処理が必要になるため、処理能力の高い高価な演算処理装置やプログラムも必要になる。
【００１２】
このため、例えば、センサノードなどのように安価で提供されることが望まれる無線機器や、安価に提供される無線機器には、第１の従来技術を実装することは困難である。
【００１３】
また、第１の従来技術では、各ノードは、タイムスロットを調整するための制御情報を送信する際に、タイムスロットを調整せずに制御情報を送信している。このため、制御情報を送信する際にフラッディングにより、データ衝突が発生し、制御情報の欠落が発生してしまうおそれがある。制御情報が欠落してしまうと、タイムスロットの調整が行われず、その結果、データ衝突の発生確率が増加し、データの到達率が低下してしまうことになる。
【００１４】
また、マルチホップネットワークなどの無線ネットワークにおいて第２の従来技術であるTDMA方式を適用した場合は、ホップする度に、タイムスロットが回ってくるまで待つための遅延時間が含まれることになる。このため、データ通信が完了するまでに時間がかかってしまうことになる。
【００１５】
また、TDMA方式では、各ノードが高精度な時刻同期を行い、各ノードに割り当てられたタイムスロットを用いてデータ送信を行うことになるが、高精度な時刻同期を行うためには、時刻同期用の部品や機器を新たに搭載する必要がある。
【００１６】
このため、例えば、センサノードなどのように安価で提供されることが望まれる無線機器や、安価に提供される無線機器には、TDMA方式を用いた技術を実装することが困難になる。
【００１７】
また、第３の従来技術では、各ノードは、送信待ち時間の値にランダムな値を挿入し、その送信待ち時間を用いてデータ送信を行い、データ衝突の発生確率を減少させるようにしている。しかし、ノードが多数存在するネットワーク環境下では、送信待ち時間の値にランダムな値を挿入するだけでは、データ送信とデータ転送とのタイミングが重なり、データ衝突が発生するおそれがある。
【００１８】
また、他ノードが送信していない未送信のデータ（例えば、ノード自身で作成したオリジナルのデータ（以降、原本データと呼ぶ））を送信した際に、その送信した原本データがデータ衝突により欠落した場合は、その原本データが他ノードに届かなくなるためデータが欠落するなどの問題が発生する。しかし、転送するデータ（転送データ）は、他ノードが送信した原本データを複製して転送するデータであるため、その転送データがデータ衝突により欠落などしても、別の他ノードのデータ転送により、その転送データを補完することができる。このため、転送データよりも原本データの送信到達率を高めることが望ましい。しかし、上述した第１〜第３の従来技術では、送信するデータが、原本データか転送データかを区別せずに送信しているため、送信するデータの重要性を考慮していない。また、上記特許文献３、４においても、送信するデータの重要性を考慮していない。
【００１９】
従って、上述した従来技術では、原本データ（他のノードが送信していない未送信のデータ）の送信到達率を高める点については何ら記載も示唆もされていない。
【００２０】
本発明は、上記事情に鑑みてなされたものであり、データの送信到達率を高めることが可能な無線機器、通信システム、制御方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００２１】
かかる目的を達成するために、本発明は、以下の特徴を有することとする。
【００２２】
＜無線機器＞
本発明にかかる無線機器は、
データ送信時に使用する送信時間を設定する設定手段と、
前記設定手段により設定された送信時間の範囲でデータ送信を行う通信手段と、を有し、
前記設定手段は、
他の無線機器が送信していないデータ（原本データ）を送信する際に使用する第１の送信時間と、他の無線機器から送信されたデータ（転送データ）を送信する際に使用する第２の送信時間と、に差を設けて設定し、
前記通信手段は、
原本データを送信する場合は、前記第１の送信時間の範囲でデータ送信を行い、
転送データを送信する場合は、前記第２の送信時間の範囲でデータ送信を行うことを特徴とする。
【００２３】
＜通信システム＞
本発明にかかる通信システムは、
複数の無線機器で構成する通信システムであって、
前記無線機器は、
データ送信時に使用する送信時間を設定する設定手段と、
前記設定手段により設定された送信時間の範囲でデータ送信を行う通信手段と、を有し、
前記設定手段は、
他の無線機器が送信していないデータ（原本データ）を送信する際に使用する第１の送信時間と、他の無線機器から送信されたデータ（転送データ）を送信する際に使用する第２の送信時間と、に差を設けて設定し、
前記通信手段は、
原本データを送信する場合は、前記第１の送信時間の範囲でデータ送信を行い、
転送データを送信する場合は、前記第２の送信時間の範囲でデータ送信を行うことを特徴とする。
【００２４】
＜制御方法＞
本発明にかかる制御方法は、
無線機器で行う制御方法であって、
データ送信時に使用する送信時間を設定する設定工程と、
前記設定工程により設定された送信時間の範囲でデータ送信を行う通信工程と、を有し、
前記設定工程は、
他の無線機器が送信していないデータ（原本データ）を送信する際に使用する第１の送信時間と、他の無線機器から送信されたデータ（転送データ）を送信する際に使用する第２の送信時間と、に差を設けて設定し、
前記通信工程は、
原本データを送信する場合は、前記第１の送信時間の範囲でデータ送信を行い、
転送データを送信する場合は、前記第２の送信時間の範囲でデータ送信を行うことを特徴とする。
【００２５】
＜プログラム＞
本発明にかかるプログラムは、
無線機器のコンピュータに実行させるプログラムであって、
データ送信時に使用する送信時間を設定する設定処理と、
前記設定処理により設定された送信時間の範囲でデータ送信を行う通信処理と、を、前記コンピュータに実行させ、
前記設定処理は、
他の無線機器が送信していないデータ（原本データ）を送信する際に使用する第１の送信時間と、他の無線機器から送信されたデータ（転送データ）を送信する際に使用する第２の送信時間と、に差を設けて設定し、
前記通信処理は、
原本データを送信する場合は、前記第１の送信時間の範囲でデータ送信を行い、
転送データを送信する場合は、前記第２の送信時間の範囲でデータ送信を行うことを特徴とする。
【発明の効果】
【００２６】
本発明によれば、データの送信到達率を高めることができる。
【図面の簡単な説明】
【００２７】
【図１】本実施形態の例である通信システムの概要を説明するための図である。
【図２】第１の実施形態の例である通信システムのシステム構成例を示す図である。
【図３】通信システムを構成する無線機器の内部構成例を示す図である。
【図４】無線機器で行うデータ送信時の処理動作例を示す図である。
【図５】無線機器で行うデータ転送時の処理動作例を示す図である。
【図６】第１の実施形態の例である通信システムの処理動作例を示す図である。
【図７】第２の実施形態の例である通信システムの処理動作例を示す図である。
【発明を実施するための形態】
【００２８】
＜通信システムの概要＞
まず、図１を参照しながら、本実施形態の例である通信システムの概要について説明する。
【００２９】
本実施形態の例である通信システムは、図１に示すように、複数の無線機器1-1〜1-N（Nは、任意の整数）で構成する通信システムである。
【００３０】
本実施形態の無線機器1-1〜1-Nは、データ送信時に使用する送信時間を設定する設定部10と、設定部10により設定された送信時間の範囲でデータ送信を行う通信部20と、を有して構成する。
【００３１】
本実施形態の無線機器1-1の設定部10は、他の無線機器（1-2〜1-N）が送信していない未送信のデータ（原本データ）を送信する際に使用する第１の送信時間と、他の無線機器（1-2〜1-N）から送信されたデータ（転送データ）を送信する際に使用する第２の送信時間と、に差を設けて設定する。そして、通信部20は、原本データを送信する場合は、第１の送信時間の範囲でデータ送信を行い、転送データを送信する場合は、第２の送信時間の範囲でデータ送信を行う。
【００３２】
これにより、本実施形態の通信システムは、未送信のデータ（原本データ）のデータ衝突を回避し、原本データのあて先（特定のノード、もしくは全ノード）への送信到達率を高めることができる。また、転送データのデータ衝突を回避し、転送データの送信到達率も高めることができる。その結果、データの送信到達率を高めることができる。
【００３３】
また、本実施形態の無線機器（1-1〜1-N）で構成された図１に示す通信システムと同様な通信システムが複数存在する場合は、通信システム間でのデータ衝突を回避するために、１つの通信システムとして通信が完了する時間として、第３の送信時間の範囲でデータ通信を行う。第３の送信時間は、第１の送信時間より十分長い時間を設定することが好ましい。第３の送信時間は、通信システム間で送信時間を調整するノード（例えば、無線機器1-1）を選択し、他の通信システムと送信時間の間隔を調整してもよいし、他の通信システムの通信状況をキャプチャーし、通信間隔などから判断して決定してもよい。これにより、通信システムが複数存在する場合は、通信システム間でのデータ衝突も回避でき、さらに、データの送信到達率を高めることができる。以下、添付図面を参照しながら、本実施形態の通信システムについて詳細に説明する。
【００３４】
（第１の実施形態）
＜通信システムのシステム構成例＞
まず、図２を参照しながら、本実施形態の例である通信システムのシステム構成例について説明する。図２は、本実施形態の例である通信システムのシステム構成例を示す図である。
【００３５】
本実施形態の例である通信システムは、センサネットワークであり、センターノード101と、センサノード102〜106と、を有して構成する。なお、図２の通信システムは、５台のセンサノード102〜106で構成しているが、５台に限定せず、任意の台数で構成することが可能である。
【００３６】
センターノード101は、各センサノード102〜106でセンシングしたセンシング情報を収集する装置である。
【００３７】
センサノード102〜106は、屋内、もしくは、屋外などに設置され、さまざまな情報をセンシングし、そのセンシング情報をセンターノード101に送信する装置である。
【００３８】
センサネットワークでは、センターノード101は、各センサノード102〜106でセンシングしたセンシング情報を一定周期で収集する、もしくは、通知されるのが一般的である。
【００３９】
図２に示すセンサネットワーク環境下では、センサノード105,106とセンターノード101とは直接通信できない状態である。このため、センサノード102〜104がデータ転送を行うことで、センサノード105,106とセンターノード101との通信を可能にしている。
【００４０】
＜センターノード101、センサノード102〜106の内部構成例＞
次に、図３を参照しながら、図２に示すセンターノード101、センサノード102〜106の内部構成例について説明する。なお、センターノード101、センサノード102〜106の内部構成例は、ほぼ同じ内部構成であるため、無線機器201として説明する。
【００４１】
本実施形態の無線機器201は、情報記憶部202と、制御部203と、時刻管理部207と、アプリケーション部208と、無線通信部209と、を有して構成する。
【００４２】
情報記憶部202は、無線機器201自身の固有ID（IDentification）や、アプリケーション部208が取得または生成した各種情報などを記憶する。情報記憶部202は、ハードディスク、フラッシュメモリ、RAM（Random Access Memory）などのような記憶媒体で構成することができる。
【００４３】
制御部203は、無線機器201の制御を司るものであり、情報送受信部204と、無線通信制御部205と、スケジュール部206と、を有して構成する。
【００４４】
情報送受信部204は、無線通信部209、無線通信制御部205を介して他の無線機器から受信したデータを情報記憶部202に格納する機能やアプリケーション部208に通知する機能と、アプリケーション部208から受信したデータや他のノードから受信したデータを他の無線機器に送信するために無線通信制御部205、無線通信部209を介して送信する機能と、を有する。
【００４５】
無線通信制御部205は、スケジュール部206で決定した送信タイミングを基に、情報送受信部204から受け付けたデータを無線通信部209に送信する。また、無線通信部209から受け付けたデータを情報送受信部204に送信する。なお、図１に示す設定部10、通信部20の機能は、無線通信制御部205で実現することができる。
【００４６】
スケジュール部206は、時間管理部207で管理する時刻情報を基に、データ送信時に使用する送信タイミングを決定する。また、センサシステムのように無線機器201が間欠動作を行う場合は、起動時間、停止時間などのスケジュールも決定する。
【００４７】
時刻管理部207は、時刻情報を管理するものである。本実施形態の例において無線機器201は、他の無線機器（例えば、センターノード101）から受信した時刻情報を基に、時刻管理部207で管理する時刻情報を、他の無線機器から受信した時刻情報に合わせ、各無線機器201の時刻管理部207で管理する時刻情報を同期させるようにしている。
【００４８】
無線通信部209は、制御部203から受信したデータを他の無線機器に送信する機能と、他の無線機器から受信したデータを制御部203に送信する機能と、を有している。無線通信部209は、無線LAN（Local Area Network）やZigBee、省電力無線、コグニティブ無線、ソフトウェア無線などの無線通信が可能なモジュールもしくは回路で構成する。なお、無線通信部209で使用する無線規格は、無線LANやZigBee、省電力無線などに限定せず、無線通信が可能であれば、例えば、Bluetoothなどの他の無線通信規格を使用することも可能である。また、無線通信部209は、MIMO（Multiple Input Multiple Output）のように複数の無線インタフェースをもつ無線通信モジュールや回路でもよい。
【００４９】
アプリケーション部208は、センサやゲームなどのアプリケーション機能である。アプリケーション部208は、１つのアプリケーション機能に限定せず、複数のアプリケーション機能で構成することも可能である。なお、アプリケーション部208がセンサである場合は、温度、湿度、電力などのセンサ機能を持ち、そのセンサ機能でセンシングしたセンシング情報を制御部203に通知する機能を有する。なお、センターノード101において、アプリケーション機能を保持しない場合は、センターノード101は、アプリケーション部208を有しない構成にすることも可能である。また、アプリケーション部208でセンシングする情報は、温度、湿度、電力など特定の情報に限定せず、上記３種以外の情報をセンシングするように構築することも可能であり、センシングする情報の数も限定しない。
【００５０】
＜通信システムの処理動作例＞
次に、図２の通信システム構成において、図４〜図６を参照しながら、本実施形態の例である通信システムの処理動作例について説明する。
【００５１】
各センサノード102〜106は、センシング情報を周期的に取得し、その取得したセンシング情報をセンターノード101に送信する。
【００５２】
図４は、センサノード102〜106がセンシング情報を取得し、その取得したセンシング情報をセンターノード101に送信するまでの１周期の処理動作例を示したものである。以下、図４に示す処理動作例について説明する。
【００５３】
アプリケーション部208は、無線機器201の内部動作により、ステップS1のセンシング情報取得の処理を開始する。アプリケーション部208は、時刻管理部207の時刻情報やアプリケーション部208の内部タイマー機能などを用いて、センシング情報を周期的に取得し、その取得したセンシング情報を情報送受信部204に通知する。なお、アプリケーション部208は、センシング情報をセンシングする周期と、他ノードにデータを送信する周期と、が異なる場合は、センシング情報を情報記憶部202に一時的に格納し、他ノードにデータを送信する際に、情報記憶部202からセンシング情報を読み出し、その読み出したセンシング情報を情報送受信部204に通知することも可能である。
【００５４】
ステップS2のデータ送信準備では、情報送受信部204は、ステップS1のセンシング情報取得の処理によりアプリケーション部208から通知されたセンシング情報を、特定のプロトコルのフォーマットに加工する。また、その特定のプロトコルを用いて、データ送信時に必要な情報（無線機器201自身の固有IDや送信相手先のノードの固有ID）などを設定する。なお、特定のプロトコルは、特に限定せず、RFC（Request for Comments）として公開されているプロトコルや独自に作成したプロトコルなどを用いることも可能である。
【００５５】
ステップS3のデータ送信命令実施では、ステップS2のデータ送信準備の処理により加工した送信用の各種情報を無線通信制御部205に通知する。
【００５６】
無線通信制御部205は、送信用の各種情報が通知された場合に、その送信用の各種情報を一時的に保持する。送信用の各種情報を保持する期間は、無線通信部209がデータ送信処理に要する時間と比較して大変短い期間とし、その後の処理やデータ到達時の処理に影響を与えない程度の期間であることが好ましい。例えば、無線LAN（IEEE802.11a/ｇ）では、１フレーム送信するのに数百μ秒程度かかるため、その時間と比較して大変短い時間（例えば、数μ秒程度）とすることが好ましい。
【００５７】
ステップS4の乱数取得では、データ送信時に使用するタイムスロットを決定するための乱数を取得する。なお、乱数取得を行う機能部は、特に限定せず、例えば、無線通信制御部205が行ってもよく、また、スケジュール部206が行ってもよい。
【００５８】
ステップS5のタイムスロット決定では、ステップS4の乱数取得の処理で取得した乱数を基に、無線通信制御部205は、データ送信時に使用するタイムスロットを決定する。なお、データ送信時に使用するタイムスロットの時間間隔は、データ送信に必要な時間の数十倍〜数百倍程度に設定することが好ましい。データ送信時に使用するタイムスロットの時間間隔の設定については後述する。
【００５９】
ステップS6の送信待ちでは、無線通信制御部205は、ステップS5のタイムスロット決定の処理で決定されたタイムスロットの時間になるまで待つ。時刻管理部207にタイマーを設定するなどし、タイマーが通信タイムスロットの時間になった場合に、次の処理に移行するようにしてもよい。また、再度乱数を取得するなどして、タイムスロット時間内にすべての通信が完了できるような固定でない短い待ち時間を、タイムスロットの時間までの待ち時間に加算して設定してもよい。
【００６０】
ステップS7の送信では、無線通信制御部205は、タイムスロットの時間になった場合に、無線通信部209に送信用の各種情報を送信し、無線通信部209は、センシング情報を含むデータを送信相手先のノードに送信する。また、ステップS6にてタイムスロットの時間までの待ち時間にさらに待ち時間を加算した場合は、タイムスロットの時間になった後で、加算された待ち時間が経過した後に送信してもよい。
【００６１】
なお、図２に示すセンサネットワークのように、センサノード105,106がセンターノード101と直接通信できない場合は、センサノード105,106が送信したセンシング情報を含むデータをセンサノード102〜104がデータ転送することで、センサノード105,106が送信したデータをセンターノード101まで送信することができる。このため、センサノード102〜106には、データ転送を行う機能を有している。
【００６２】
次に、図５を参照しながら、センサノード102〜106がセンシング情報を含むデータを転送する際の処理動作例について説明する。
【００６３】
ステップS11のデータ受信では、無線通信部209は、他ノードが送信したデータを受信する。無線通信部209は、他ノードから受信したデータを、無線通信制御部205を介して情報送受信部204に送信する。
【００６４】
ステップS12の転送判定では、情報送受信部204は、データ転送を行うか否かを判定する。情報送受信部204は、他ノードから受信したデータが、無線機器201自身が未だ転送していないデータや、無線機器201自身が既に送信した送信済のデータでない場合は、データを転送すると判定する。データ転送の可否判定は、例えば、転送したデータや送信したデータに含まれる送信者ID（無線機器の固有ID）やシーケンス番号などのデータを一意に特定できる情報を情報記憶部202に保存し、その情報記憶部202に保存した情報と、他ノードから受信したデータと、を比較し、受信したデータに含まれる送信者IDやシーケンス番号などが情報記憶部202に保存されている場合は、転送済のデータ、または送信済のデータと判断し、そのデータを破棄し、処理を終了する。また、受信したデータに含まれる送信者IDやシーケンス番号が情報記憶部202に保存されていない場合は、未転送のデータ、未送信のデータと判断し、そのデータを転送する。
【００６５】
上記処理に加えて、受信したデータがIPパケットの場合は、パケットのTTL（Time To Live）が転送時の処理にてゼロ値となったデータの場合は、そのデータを破棄し、処理を終了する。また、TTLがゼロ値とならないデータの場合は、そのデータを転送する。データ転送を行う場合は、そのデータに含まれる送信者IDやシーケンス番号などを情報記憶部202に保存する。また、その他プロトコルにおいても、そのプロトコルの規定により転送しない条件を満たした場合は、同様に、データを破棄し処理を終了する。
【００６６】
なお、データ転送の可否判定に用いる情報としては、上述した送信者ID、シーケンス番号、TTLに限定せず、転送済のデータ、送信済のデータを特定することが可能であれば、あらゆる情報を用いることが可能である。
【００６７】
ステップS13のデータ送信命令実施〜ステップS17の送信の処理は、図４に示すステップS3のデータ送信命令実施〜ステップS7の送信と同様な処理を実施する。
【００６８】
但し、ステップS15のタイムスロット決定において決定されるデータ転送時に使用するタイムスロットの時間間隔は、ステップS5のタイムスロット決定において決定されるデータ送信時に使用するタイムスロットの時間間隔に比べて十分小さい値が設定されている。これにより、データ送信時に使用するタイムスロットの期間内の短時間でデータ転送を行うことができる。なお、データ送信時に使用するタイムスロットの時間間隔を50ミリ秒と設定した場合は、データ転送時に使用するタイムスロットの時間間隔を5ミリ秒などの小さい値に設定することが好ましい。但し、これは一例であり、データ転送時に使用するタイムスロットの時間間隔や、データ送信時に使用するタイムスロットの時間間隔を限定するものではない。
【００６９】
なお、上述した図４、図５に示す処理動作例は、データ送信時、データ転送時の一例であり、一部の処理をセンサノード102〜106以外の無線機器やセンサノード102〜106に有線接続した機器などで実施することも可能である。例えば、ステップS1のセンシング情報取得の処理をセンサノード102〜106以外の無線機器のアプリケーション部208で行い、取得したセンシング情報をセンサノード102〜106へ無線で通知し、ステップS2のデータ送信準備〜ステップS7の送信の処理までをセンサノード102〜106の無線機器で実施することも可能である。その際、センシング情報を取得する機器とセンサノード102〜106が通信する無線規格は、センサノード102〜106同士が通信する規格を用いてもよいし、別な規格を用いてもよい。なお、データ転送時は、ステップS11のデータ受信〜ステップS17の送信の処理までをセンサノード102〜106の無線機器で実施することになる。
【００７０】
次に、図６を参照しながら、センサネットワーク上での処理動作例について説明する。図６は、センターノード101が、センサノード1,2,3からセンシング情報を収集する際の処理動作例を示す。
【００７１】
なお、本実施形態のセンサネットワークを構成する各ノード101,1,2,3は、ノード毎の時刻のずれを吸収できるマージンを保持し、そのマージンを用いて、データ送信時に使用するタイムスロットを同期させるようにしている。例えば、データ送信時に使用するタイムスロットの時間間隔を50ミリ秒と設定した場合は、2ミリ秒などの小さい値をマージンとして保持する。但し、これは一例であり、タイムスロットの時間間隔やマージンの値を限定するものではない。
【００７２】
センターノード101は、センサネットワークを構成する各ノード101,1,2,3で管理する時刻情報（図３に示す時刻管理部207で管理する時刻情報）の同期を図るために、各ノード101,1,2,3で管理する時刻情報の同期を図るための時刻情報を、各センサノード1,2,3に送信する。そして、各センサノード1,2,3は、センターノード101から通知された時刻情報を基に、各センサノード1,2,3で管理している時刻情報をセンターノード101から通知された時刻情報に合わせている。しかし、全てのノード101,1,2,3に時刻情報が到達するまでには、その遅延量が積み重なり、その結果として、各ノード101,1,2,3で管理する時刻情報を高精度で同期させることができない。このため、本実施形態の各ノード101,1,2,3は、ノード毎の時刻のずれを吸収できるマージンを持ち、そのマージンを用いて各ノード101,1,2,3で管理する時刻情報を同期させることにしている。これにより、データ送信時に使用するタイムスロットを同期させることができる。
【００７３】
また、本実施形態のセンターノード101は、センサネットワークを構成する全センサノード1,2,3が送信する情報を受信するため、センサネットワークを構成する全ノード数（N1）を把握することができる。このため、センターノード101は、データ送信時及びデータ転送時に使用するタイムスロットの数を決定することができる。例えば、センターノード101は、データ送信時及びデータ転送時に使用するタイムスロットの数を、センサネットワークを構成する全ノード（N1）数以上準備する。また、データ送信時及びデータ転送時に使用するタイムスロットを決定する際に使用する乱数の上限値を、その準備したタイムスロット数と同値とし、その乱数と、タイムスロットと、の関係を示す関係情報を各センサノード1,2,3に通知する。
【００７４】
例として、図６では、センターノード101は、センサネットワークを構成する全ノード数（N1＝4）を基に、データ送信時（原本データ送信時）に使用するタイムスロットの数を４つ準備し、原本データ送信時に使用するタイムスロットを決定する際に使用する乱数の上限値を、４とする。そして、その乱数と、タイムスロットと、の関係を示す関係情報を各センサノード1,2,3に通知する。関係情報とは、例えば、乱数１とタイムスロット１とが関係付けられており、乱数２とタイムスロット２とが関係付けられており、乱数３とタイムスロット３とが関係付けられており、乱数４とタイムスロット４とが関係付けられていることを示す情報のことである。なお、図６では、転送データ送信時に使用するタイムスロットについては図示していないが、原本データ送信時のタイムスロット内に複数のタイムスロット（原本データ送信時のタイムスロットより短時間）を設定し、転送を行うことになる。
【００７５】
各センサノード1,2,3は、センシング情報を取得する場合は、図４に示す処理動作を実施する。この時、各センサノード1,2,3は、センターノード101から通知された関係情報と、図４に示すステップS4の乱数取得の処理で取得した乱数を基に、ステップS5のタイムスロット決定の処理において、原本データ送信時に使用するタイムスロットを決定する。図６の例では、センサノード1は、乱数１を取得し、その取得した乱数１を基に、タイムスロット１〜４の中からタイムスロット１を選択したものとする。また、センサノード2は、乱数３を取得し、その取得した乱数３を基に、タイムスロット１〜４の中からタイムスロット３を選択したものとする。また、センサノード3は、乱数２を取得し、その取得した乱数２を基に、タイムスロット１〜４の中からタイムスロット２を選択したものとする。
【００７６】
センサノード1は、原本データ送信時に使用するタイムスロット１の期間内に原本データを送信する。また、センサノード１はタイムスロット１の時間に、すぐに送信せず、ランダムな待ち時間を挿入してから送信する。原本データを受信したセンサノード2は、図５に示すデータ転送時の処理動作を実施する。この時、センサノード2は、センターノード101から通知された関係情報と、図５に示すステップS14の乱数取得の処理で取得した乱数を基に、ステップS15のタイムスロット決定の処理において、転送データ送信時に使用するタイムスロットを決定する。転送データ送信時に使用するタイムスロットの時間間隔は、原本データ送信時に使用するタイムスロットの時間間隔よりも十分短いため、センサノード2は、タイムスロット１の期間内の短時間でデータ転送を行うことになる。また、センサノード2が転送した転送データを受信したセンサノード3も、上述したセンサノード2と同様な処理を行い、タイムスロット１の期間内の短時間でデータ転送を行うことになる。
【００７７】
原本データ送信時に使用するタイムスロットの時間間隔を50ミリ秒と設定した場合は、転送データ送信時に使用するタイムスロットの時間間隔を5ミリ秒などの小さい値に設定する。但し、これは一例であり、原本データ送信時に使用するタイムスロットの時間間隔や、転送データ送信時に使用するタイムスロットの時間間隔を限定するものではない。
【００７８】
本実施形態では、転送データ送信時に使用するタイムスロットの時間間隔を原本データ送信時に使用するタイムスロットの時間間隔と比較して十分短くしている。これにより、センサノード2,3は、タイムスロット１の期間内でデータ転送を完了させることができるため、センサノード3が原本データを送信する次のタイムスロット２では、センサノード1が送信した原本データをセンサノード2が転送した転送データと、センサノード3が送信する原本データと、のデータ衝突を回避することができる。
【００７９】
また、センサノード3がタイムスロット２にて原本データを送信した場合は、センサノード2、センサノード1がタイムスロット２の期間内でデータ転送を行うことになる。この際も、転送データ送信時に使用するタイムスロットの時間間隔を原本データ送信時に使用するタイムスロットの時間間隔と比較して十分短くしているため、センサノード2、センサノード1は、タイムスロット２の期間内でデータ転送を完了させることができる。
【００８０】
さらに、センサノード2がタイムスロット３にて原本データを送信した場合は、センサノード1、センサノード3がタイムスロット３の期間内でデータ転送を行うことになる。この際も、転送データ送信時に使用するタイムスロットの時間間隔を原本データ送信時に使用するタイムスロットの時間間隔と比較して十分短くしているため、センサノード1、センサノード3は、タイムスロット３の期間内でデータ転送を完了させることができる。
【００８１】
なお、本実施形態では、原本データ送信時に使用するタイムスロットの時間間隔と、転送データ送信時に使用するタイムスロットの時間間隔と、は、センターノード101において算出し、各センサノード1,2,3に通知して設定することにする。以下、原本データ送信時及び転送データ送信時のタイムスロットの時間間隔の設定方法例について説明する。
【００８２】
＜タイムスロットの時間間隔の設定方法例＞
センターノード101は、全センサノード1,2,3の情報を受信するため、センサネットワークを構成する全ノード数（N1）を把握することができる。また、センターノード101は、センサノード1,2,3の無線インタフェースの間欠起動時間（T1）を設定することになるため、その起動時間（T1）を把握することができる。
【００８３】
このため、センターノード101は、上述した全ノード数（N1）と起動時間（T1）とを基に、以下の式１を用いて原本データ送信時に使用するタイムスロット（SLOT1）の時間間隔を算出することができる。
【００８４】
タイムスロット（SLOT1）＝起動時間（T1）/全ノード数（N1）
【００８５】
また、転送データ送信時に使用するタイムスロット（SLOT2）は、原本データ送信時に使用するタイムスロット（SLOT1）の期間内にデータ転送を完了させる必要があるため、係数（K）を用いて以下の式２を用いて算出することができる。
【００８６】
タイムスロット（SLOT2）＝タイムスロット（SLOT1）/｛全ノード数（N1）×係数（K）｝
【００８７】
なお、係数（K）の値は特に限定せず、全ノード数（N1）に重み付けを施す任意の値を用いることができ、例えば、10程度の値を用いることができる。
【００８８】
これにより、センターノード101は、原本データ送信時及び転送データ送信時のタイムスロットの時間間隔を算出することができる。
【００８９】
なお、上記の算出式では、起動時間（T1）、全ノード数（N1）、計数（K）を用いて、原本データ送信時及び転送データ送信時のタイムスロットの時間間隔を算出することにした。しかし、無線インタフェース起動時のマージン、送信するデータの情報量、センターノード101で受信したデータの到着時刻、センサネットワークを構成する各ノードまでの距離（ホップ数）などの各種情報を加味して算出することも可能であり、上記算出方法に限定するものではない。
【００９０】
センターノード101は、上記算出した原本データ送信時に使用するタイムスロットの時間間隔や、転送データ送信時に使用するタイムスロットの時間間隔を全センサノード1,2,3に通知し、全センサノード1,2,3は設定を行うことになる。
【００９１】
これにより、センターノード101は、原本データ送信時及び転送データ送信時のタイムスロットの時間間隔を全センサノード1,2,3に設定することができる。
【００９２】
なお、原本データ送信時及び転送データ送信時のタイムスロットの時間間隔を各センサノード1,2,3に設定するタイミングは、特に限定せず任意のタイミングで設定することが可能である。例えば、センサノード1,2,3がセンサネットワークに参加した際に、センターノード101がセンサノード1,2,3に通知して設定したり、また、センターノード101が周期的にセンサノード1,2,3に通知して設定したりする。
【００９３】
なお、センターノード101が周期的にセンサノード1,2,3に通知する場合は、通知する周期を、固定（例えば、１時間など）にしたり、他の情報、例えば、センサノード1,2,3の参加離脱の頻度などを用いて動的にしたりすることも可能である。
【００９４】
なお、上記説明では、センターノード101が原本データ送信時及び転送データ送信時のタイムスロットの時間間隔を算出し、その算出したタイムスロットの時間間隔を全センサノード1,2,3に通知して各センサノード1,2,3が設定することにした。しかし、センターノード101以外の他のセンサノード1,2,3において上述した算出処理を行い、全センサノード1,2,3に通知して設定することも可能である。また、原本データ送信時及び転送データ送信時のタイムスロットの時間間隔を算出するための各種値を全センサノード1,2,3に通知し、各センサノード1,2,3において個別に算出して設定することも可能である。
【００９５】
＜本実施形態の通信システムの作用・効果＞
このように、本実施形態の通信システムでは、各センサノードは、原本データ送信時に使用するタイムスロットの時間間隔と、転送データ送信時に使用するタイムスロットの時間間隔と、に差を設けて設定することになるため、原本データの重要性を考慮した上で、原本データのデータ衝突を回避することができる。また、転送データのデータ衝突を回避することができる。その結果、データの送信到達率を高めることができる。
【００９６】
また、各センサノードは、乱数を基に、原本データ送信時に使用するタイムスロット及び転送データ送信時に使用するタイムスロットを決定することになるため、新規に送信タイミングを調整する制御情報を送信することなく、原本データのデータ衝突を回避することができる。
【００９７】
また、各センサノードは、乱数を基に、原本データ送信時に使用するタイムスロット及び転送データ送信時に使用するタイムスロットを決定することになるため、送信タイミングを調整するための部品や機器を新たに追加することなく、タイムスロットの決定を実現できると共に、複雑な処理が不要になるため、タイムスロットの決定を安価に実現することができる。
【００９８】
（第２の実施形態）
次に、第２の実施形態について説明する。
【００９９】
第１の実施形態では、例えば、図２に示す同一の通信システム内のノード（101〜106）間で送信タイミングを変更することにした。しかし、図２に示す通信システムと同様な通信システムが複数存在する場合もある。
【０１００】
そこで、第２の実施形態では、通信システムが複数存在する場合は、通信システム間でも送信タイミングを変更することにする。これにより、通信システム間のデータ衝突も回避することができる。以下、図７を参照しながら、第２の実施形態について説明する。
【０１０１】
第２の実施形態では、通信システム間でのデータ衝突を回避するために、図７に示すように、１つの通信システムとして通信が完了する時間として、第３の送信時間の範囲でデータ通信を行う。
【０１０２】
第３の送信時間の範囲の値は、通信システムにおいて使用している無線インタフェースの間欠起動時間を用いてもよいし、通信システムの数やその通信システムを構成する無線機器の数からタイムスロットの期間を算出して設定してもよい。
【０１０３】
図７に示すタイムスロットＡ〜Ｄは、第３の送信時間の範囲の例である。タイムスロットＡ〜Ｄの各スロットでは、第１の実施形態の通信システムにおける通信（図６の処理）が実施される。第３の通信時間を用いて送信を実施する場合も、第１の実施形態で説明した乱数を用いたタイムスロットの決定処理と同様にして、各通信システムがタイムスロットを取得し、該当時間内に通信を実施する。図７では、通信システム1は、タイムスロットＡで通信を実施し、通信システム2は、タイムスロットＣで通信を実施し、通信システム3は、タイムスロットＢで通信を実施する。これにより、通信システム間のデータ衝突も回避することができる。なお、図７では、各通信システムが第３の送信時間４周期ごとに１度通信する場合を示したが、周期やスロット数は特に限定しないものとする。
【０１０４】
なお、上述する実施形態は、本発明の好適な実施形態であり、上記実施形態のみに本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において種々の変更を施した形態での実施が可能である。
【０１０５】
例えば、上述する実施形態では、原本データ送信時に使用するタイムスロットの時間間隔と、転送データ送信時に使用するタイムスロットの時間間隔と、に差を設けることで、原本データのデータ衝突を回避することにした。しかし、転送データについても、優先度の高い転送データに関しては、優先度の高い転送データである旨が判断できる情報を転送データ上に追記し、その追記した情報を基に、優先度の高い転送データを、原本データと同様に他のデータと衝突しないタイミングで送信するように構築することも可能である。
【０１０６】
また、タイムスロットの範囲（原本データ送信時に使用するタイムスロットの範囲、転送データ送信時に使用するタイムスロットの範囲、１つの通信システムとして通信時に使用するタイムスロットの範囲）に送信すべきデータが、何らかの理由（例えば、CSMA（Carrier Sense Multiple Access）/CA（Collision Avoidance）方式を備えた無線機器によって構成された通信システムにおいて送信時に長時間の待ち時間が設定された場合などの理由）で送信できない場合は、そのデータを保存し、次回の送信時に送信するようにすることも可能である。また、そのデータを破棄するようにすることも可能である。また、送信時間内に送信できなかったデータを送信するためのタイムスロットを設けて送信するようにすることも可能である。
【０１０７】
また、上述した本実施形態の無線機器における制御動作は、ハードウェア、または、ソフトウェア、あるいは、両者の複合構成を用いて実行することも可能である。
【０１０８】
なお、ソフトウェアを用いて処理を実行する場合には、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれているコンピュータ内のメモリにインストールして実行させることが可能である。あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。
【０１０９】
例えば、プログラムは、記録媒体としてのハードディスクやROM（Read Only Memory）に予め記録しておくことが可能である。あるいは、プログラムは、リムーバブル記録媒体に、一時的、あるいは、永続的に格納（記録）しておくことが可能である。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウエアとして提供することが可能である。なお、リムーバブル記録媒体としては、フロッピー（登録商標）ディスク、CD-ROM（Compact Disc Read Only Memory）、MO（Magneto optical）ディスク、DVD（Digital Versatile Disc）、ブルーレイディスク、磁気ディスク、半導体メモリなどが挙げられる。
【０１１０】
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールすることになる。また、ダウンロードサイトから、コンピュータに無線転送することになる。また、ネットワークを介して、コンピュータに有線で転送することになる。
【０１１１】
また、本実施形態における通信システムは、上記実施形態で説明した処理動作に従って時系列的に実行されるのみならず、処理を実行する装置の処理能力、あるいは、必要に応じて並列的にあるいは個別に実行するように構築することも可能である。
【０１１２】
また、上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【０１１３】
（付記１）
データ送信時に使用する送信時間を設定する設定手段と、
上記設定手段により設定された送信時間の範囲でデータ送信を行う通信手段と、を有し、
上記設定手段は、
他の無線機器が送信していないデータ（原本データ）を送信する際に使用する第１の送信時間と、他の無線機器から送信されたデータ（転送データ）を送信する際に使用する第２の送信時間と、に差を設けて設定し、
上記通信手段は、
原本データを送信する場合は、上記第１の送信時間の範囲でデータ送信を行い、
転送データを送信する場合は、上記第２の送信時間の範囲でデータ送信を行うことを特徴とする無線機器。
【０１１４】
（付記２）
上記設定手段は、
上記第１の送信時間よりも上記第２の送信時間を短く設定することを特徴とする付記１に記載の無線機器。
【０１１５】
（付記３）
上記設定手段は、
ネットワークを構成する無線機器の数と、上記無線機器の無線インタフェースの間欠起動時間と、に応じて算出した第１の送信時間と第２の送信時間とを設定する手段を有することを特徴とする付記１または付記２に記載の無線機器。
【０１１６】
（付記４）
上記設定手段は、
上記間欠起動時間を、上記無線機器の数で除算した第１の送信時間を算出する第１の算出手段と、
上記第１の算出手段で算出した第１の送信時間を、上記無線機器の数に任意の重み付けを施した数で除算した第２の送信時間を算出する第２の算出手段と、を有し、
上記第１の算出手段で算出した第１の送信時間と、上記第２の算出手段で算出した第２の送信時間と、を設定することを特徴とする付記３に記載の無線機器。
【０１１７】
（付記５）
上記設定手段は、
予め定められた第１の送信時間と第２の送信時間とを設定する手段を有することを特徴とする付記１から付記４の何れかに記載の無線機器。
【０１１８】
（付記６）
上記第１の送信時間と、上記第２の送信時間と、は複数存在し、
上記通信手段は、
原本データを送信する場合は、上記無線機器で取得した乱数に応じた上記第１の送信時間を決定し、該決定した上記第１の送信時間の範囲でデータ送信を行い、
転送データを送信する場合は、上記無線機器で取得した乱数に応じた上記第２の送信時間を決定し、該決定した上記第２の送信時間の範囲でデータ送信を行うことを特徴とする付記１から付記５の何れかに記載の無線機器。
【０１１９】
（付記７）
複数の無線機器で構成する通信システムであって、
上記無線機器は、
データ送信時に使用する送信時間を設定する設定手段と、
上記設定手段により設定された送信時間の範囲でデータ送信を行う通信手段と、を有し、
上記設定手段は、
他の無線機器が送信していないデータ（原本データ）を送信する際に使用する第１の送信時間と、他の無線機器から送信されたデータ（転送データ）を送信する際に使用する第２の送信時間と、に差を設けて設定し、
上記通信手段は、
原本データを送信する場合は、上記第１の送信時間の範囲でデータ送信を行い、
転送データを送信する場合は、上記第２の送信時間の範囲でデータ送信を行うことを特徴とする通信システム。
【０１２０】
（付記８）
無線機器で行う制御方法であって、
データ送信時に使用する送信時間を設定する設定工程と、
上記設定工程により設定された送信時間の範囲でデータ送信を行う通信工程と、を有し、
上記設定工程は、
他の無線機器が送信していないデータ（原本データ）を送信する際に使用する第１の送信時間と、他の無線機器から送信されたデータ（転送データ）を送信する際に使用する第２の送信時間と、に差を設けて設定し、
上記通信工程は、
原本データを送信する場合は、上記第１の送信時間の範囲でデータ送信を行い、
転送データを送信する場合は、上記第２の送信時間の範囲でデータ送信を行うことを特徴とする制御方法。
【０１２１】
（付記９）
無線機器のコンピュータに実行させるプログラムであって、
データ送信時に使用する送信時間を設定する設定処理と、
上記設定処理により設定された送信時間の範囲でデータ送信を行う通信処理と、を、上記コンピュータに実行させ、
上記設定処理は、
他の無線機器が送信していないデータ（原本データ）を送信する際に使用する第１の送信時間と、他の無線機器から送信されたデータ（転送データ）を送信する際に使用する第２の送信時間と、に差を設けて設定し、
上記通信処理は、
原本データを送信する場合は、上記第１の送信時間の範囲でデータ送信を行い、
転送データを送信する場合は、上記第２の送信時間の範囲でデータ送信を行うことを特徴とするプログラム。
【符号の説明】
【０１２２】
１０１    センターノード
１０２〜１０６、１〜３    センサノード
１−１〜１−Ｎ、２０１    無線機器
１０    設定部
２０    通信部
２０２    情報記憶部
２０３    制御部
２０４    情報送受信部
２０５    無線通信制御部
２０６    スケジュール部
２０７    時刻管理部
２０８    アプリケーション部
２０９    無線通信部
【図１】
0005462030.tif 000002
【図２】
0005462030.tif 000003
【図３】
0005462030.tif 000004
【図４】
0005462030.tif 000005
【図５】
0005462030.tif 000006
【図６】
0005462030.tif 000007
【図７】
0005462030.tif 000008