(57)【要約】  センサーノード（１０１−１）は、通信圏内の他のセンサーノード（１０１−２）から、他のセンサーノード（１０１−２）のＭＣＵが起動開始してからデータの受信準備を完了するまでの起動時間を受信する。その後、センサーノード（１０１−１）は、受信した起動時間を、通信圏内に起動指示を発信してからデータを発信するまでの待機時間として採用する。そして、センサーノード（１０１−１）は、通信圏内にデータを発信する場合は、通信圏内に起動指示を発信し、待機時間が経過してからデータを発信する。これにより、センサーノード（１０１−１）は、通信圏内の他のセンサーノード（１０１−２）においてデータの受信準備が完了した直後に、通信圏内の他のセンサーノード（１０１−２）にデータを受信させる。
2014049799.tif 000002
【特許請求の範囲】
【請求項１】
通信圏内の他通信装置を起動させる起動指示を発信した場合に前記他通信装置の起動にかかる時間を示す情報を前記他通信装置から受信する受信部と、
前記受信部によって受信された前記情報が示す時間に基づく待機時間を記憶部に格納する格納部と、
前記通信圏内に起動指示を発信する第１の発信部と、
前記第１の発信部によって前記起動指示が発信されてから、前記格納部によって前記記憶部に格納された前記待機時間が経過したことを検出する検出部と、
前記検出部によって前記待機時間が経過したことが検出された場合に、前記通信圏内にデータを発信する第２の発信部と、
を有することを特徴とする通信装置。
【請求項２】
前記格納部は、
前記受信部によって複数の前記他通信装置から前記情報が受信された場合に、受信された各々の前記情報が示す時間の中で最長の時間に基づく前記待機時間を前記記憶部に格納する、
ことを特徴とする請求項１に記載の通信装置。
【請求項３】
前記格納部は、
前記受信部によって複数の前記他通信装置から前記情報が受信された場合に、受信された各々の前記情報が示す時間の中で所定番目に短い時間に基づく前記待機時間を前記記憶部に格納する、
ことを特徴とする請求項１に記載の通信装置。
【請求項４】
前記格納部は、
前記第２の発信部によって発信された前記データに対する前記他通信装置からの応答が所定数以下である場合に、前記記憶部に記憶された前記待機時間を延長することを特徴とする請求項１〜３のいずれか一つに記載の通信装置。
【請求項５】
前記記憶部は、
前記受信部によって前記情報が受信される前には、前記他通信装置の最長起動時間以上の待機時間を記憶する、
ことを特徴とする請求項１〜４のいずれか一つに記載の通信装置。
【請求項６】
起動指示を発信してから所定の待機時間経過後にデータを発信する発信元から前記起動指示を受信する受信部と、
前記受信部によって前記起動指示が受信された場合に自装置内のプロセッサを起動する起動部と、
前記受信部によって前記起動指示が受信されてから、前記起動部によって起動された前記プロセッサによる前記データの受信処理が可能になるまでの時間を計測する計測部と、
前記計測部によって計測された前記時間を示す情報を前記発信元に送信する送信部と、
を有することを特徴とする通信装置。
【請求項７】
コンピュータが、
通信圏内の他通信装置を起動させる起動指示を発信した場合に前記他通信装置の起動にかかる時間を示す情報を前記他通信装置から受信し、
受信された前記情報が示す時間に基づく待機時間を記憶部に格納し、
前記通信圏内に起動指示を発信し、
前記起動指示が発信されてから、前記記憶部に格納された前記待機時間が経過したことを検出し、
前記待機時間が経過したことが検出された場合に、前記通信圏内にデータを発信する、
処理を実行することを特徴とする通信方法。
【請求項８】
コンピュータが、
起動指示を発信してから所定の待機時間経過後にデータを発信する発信元から前記起動指示を受信し、
前記起動指示が受信された場合に自装置内のプロセッサを起動し、
前記起動指示が受信されてから、起動された前記プロセッサによる前記データの受信処理が可能になるまでの時間を計測し、
計測された前記時間を示す情報を前記発信元に送信する、
処理を実行することを特徴とする通信方法。
【請求項９】
コンピュータに、
通信圏内の他通信装置を起動させる起動指示を発信した場合に前記他通信装置の起動にかかる時間を示す情報を前記他通信装置から受信し、
受信された前記情報が示す時間に基づく待機時間を記憶部に格納し、
前記通信圏内に起動指示を発信し、
前記起動指示が発信されてから、前記記憶部に格納された前記待機時間が経過したことを検出し、
前記待機時間が経過したことが検出された場合に、前記通信圏内にデータを発信する、
処理を実行させることを特徴とする通信プログラム。
【請求項１０】
コンピュータに、
起動指示を発信してから所定の待機時間経過後にデータを発信する発信元から前記起動指示を受信し、
前記起動指示が受信された場合に自装置内のプロセッサを起動し、
前記起動指示が受信されてから、起動された前記プロセッサによる前記データの受信処理が可能になるまでの時間を計測し、
計測された前記時間を示す情報を前記発信元に送信する、
処理を実行させることを特徴とする通信プログラム。
【請求項１１】
互いに通信可能な圏内に位置する第１の通信装置および第２の通信装置を含む通信システムであって、
前記第１の通信装置は、
起動指示を受信した場合に自装置内のプロセッサを起動し、前記起動指示を受信してから、起動した前記プロセッサによるデータの受信処理が可能になるまでの時間の計測結果を前記第２の通信装置に送信し、
前記第２の通信装置は、
前記第１の通信装置によって送信された前記計測結果を受信し、受信した前記計測結果に基づく待機時間を記憶部に格納し、自装置から通信可能な圏内に前記起動指示を発信し、前記起動指示を発信してから、前記記憶部に格納された前記待機時間が経過したことを検出した場合に、前記自装置から通信可能な圏内に前記データを発信する、
ことを特徴とする通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、通信方法、通信プログラム、および通信システムに関する。
【背景技術】
【０００２】
複数のセンサー付無線端末（以下、「センサーノード」と称す）を設置領域に設置して、各センサーノードが協調して外部環境や物理的状況を示す情報を採取する無線センサーネットワーク（ＷＳＮ：Ｗｉｒｅｌｅｓｓ  Ｓｅｎｓｏｒ  Ｎｅｔｗｏｒｋｓ）が知られている。【０００３】
また、画像撮像装置において、無線で画像記録装置に電源をオンにさせる指令信号を送信し、画像記録装置からのスタンバイ信号を受信してから、画像記録装置にデータを送信する技術がある（例えば、下記特許文献１参照）。また、サーバーにおいて、複数のクライアントにパワーオンパケットを送信し、全クライアントからデータの受信準備の完了通知を受信すると、全クライアントにデータを送信する技術がある（例えば、下記特許文献２参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−２５３２９２号公報
【特許文献２】特開２００３−０４４２８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した従来技術では、データの発信側の装置において、データの受信側の装置からの応答を待ってからデータを発信するため、データを発信するまでの待機時間が長くなる。【０００６】
本発明は、データを発信するまでの待機時間を短縮することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一側面によれば、通信圏内の他通信装置を起動させる起動指示を発信した場合に他通信装置の起動にかかる時間を示す情報を他通信装置から受信し、受信された情報が示す時間に基づく待機時間を記憶部に格納し、通信圏内に起動指示を発信し、起動指示が発信されてから、記憶部に格納された待機時間が経過したことを検出し、待機時間が経過したことが検出された場合に、通信圏内にデータを発信する通信装置、通信方法、および通信プログラムが提案される。【０００８】
また、本発明の一側面によれば、起動指示を発信してから所定の待機時間経過後にデータを発信する発信元から起動指示を受信し、起動指示が受信された場合に自装置内のプロセッサを起動し、起動指示が受信されてから、起動されたプロセッサによるデータの受信処理が可能になるまでの時間を計測し、計測された時間を示す情報を発信元に送信する通信装置、通信方法、および通信プログラムが提案される。【０００９】
また、本発明の一側面によれば、互いに通信可能な圏内に位置する第１の通信装置および第２の通信装置を含む通信システムであって、第１の通信装置は、起動指示を受信した場合に自装置内のプロセッサを起動し、起動指示を受信してから、起動したプロセッサによるデータの受信処理が可能になるまでの時間の計測結果を第２の通信装置に送信し、第２の通信装置は、第１の通信装置によって送信された計測結果を受信し、受信した計測結果に基づく待機時間を記憶部に格納し、自装置から通信可能な圏内に起動指示を発信し、起動指示を発信してから、記憶部に格納された待機時間が経過したことを検出した場合に、自装置から通信可能な圏内にデータを発信する通信システムが提案される。
【発明の効果】
【００１０】
本発明の一側面によれば、データを発信するまでの待機時間を短縮することができるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】図１は、センサーネットワーク内のセンサーノード間の通信例を示す図である。
【図２】図２は、センサーノード１０１の内部構成例を示すブロック図である。
【図３】図３は、センサー２０６の検出結果を示すデータの一例を示す説明図である。
【図４】図４は、データ３００に対する応答の一例を示す説明図である。
【図５】図５は、発信側の通信装置として機能するセンサーノード１０１の機能的構成例を示すブロック図である。
【図６】図６は、受信側の通信装置として機能するセンサーノード１０１の機能的構成例を示すブロック図である。
【図７】図７は、センサーノード１０１間の初回の通信例を示す説明図（その１）である。
【図８】図８は、センサーノード１０１間の初回の通信例を示す説明図（その２）である。
【図９】図９は、センサーノード１０１間の初回の通信例を示す説明図（その３）である。
【図１０】図１０は、センサーノード１０１間の初回の通信例を示す説明図（その４）である。
【図１１】図１１は、センサーノード１０１間の初回の通信例を示す説明図（その５）である。
【図１２】図１２は、センサーノード１０１間の初回の通信例を示す説明図（その６）である。
【図１３】図１３は、センサーノード１０１間の初回の通信例を示す説明図（その７）である。
【図１４】図１４は、センサーノード１０１間の初回の通信例を示す説明図（その８）である。
【図１５】図１５は、センサーノード１０１間の初回の通信例を示す説明図（その９）である。
【図１６】図１６は、センサーノード１０１間の初回の通信例を示す説明図（その１０）である。
【図１７】図１７は、センサーノード１０１間の２回目以降の通信例を示す説明図（その１）である。
【図１８】図１８は、センサーノード１０１間の２回目以降の通信例を示す説明図（その２）である。
【図１９】図１９は、センサーノード１０１間の２回目以降の通信例を示す説明図（その３）である。
【図２０】図２０は、センサーノード１０１間の２回目以降の通信例を示す説明図（その４）である。
【図２１】図２１は、複数のセンサーノード１０１から応答４００を受信した場合の待機時間の設定例１を示す説明図（その１）である。
【図２２】図２２は、複数のセンサーノード１０１から応答４００を受信した場合の待機時間の設定例１を示す説明図（その２）である。
【図２３】図２３は、設定例１を採用した場合のセンサーノード１０１によるデータ発信処理の一例を示すフローチャートである。
【図２４】図２４は、設定例１を採用した場合のセンサーノード１０１による待機時間設定処理の一例を示すフローチャートである。
【図２５】図２５は、設定例１を採用した場合のセンサーノード１０１によるデータ受信処理の一例を示すフローチャート（その１）である。
【図２６】図２６は、設定例１を採用した場合のセンサーノード１０１によるデータ受信処理の一例を示すフローチャート（その２）である。
【図２７】図２７は、センサーノード１０１の密集度合いを示す説明図である。
【図２８】図２８は、起動時間テーブルの記憶内容の一例を示す説明図である。
【図２９】図２９は、起動時間テーブル２８００を使用した待機時間の設定例２を示す説明図である。
【図３０】図３０は、設定例２を採用した場合のセンサーノード１０１によるデータ受信処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下に添付図面を参照して、本発明にかかる通信装置、通信方法、通信プログラム、および通信システムの実施の形態を詳細に説明する。以降では、本発明にかかる通信装置の機能を有し、本発明にかかる通信システムを実現するセンサーノードを例に挙げるが、これに限らない。例えば、本発明にかかる通信装置は、センサーノード以外の通信装置にも適用可能である。
【００１３】
（センサーネットワーク内のセンサーノード間の通信例）
図１は、センサーネットワーク内のセンサーノード間の通信例を示す図である。図１（Ａ）はセンサーネットワーク１００の構成例を示し、図１（Ｂ）はセンサーネットワーク１００内のセンサーノード１０１による通信の流れの一例を示す。
【００１４】
図１（Ａ）に示すように、センサーネットワーク１００は、所定の設置領域１１０内に配置されたチップ状の複数のセンサーノード１０１と、複数のセンサーノード１０１のセンサー出力を無線等により受信する親ノード１０２と、を含む通信システムである。設置領域１１０は、例えば、コンクリート、土、水、空気などの物質で満たされた領域である。または、設置領域１１０は、宇宙空間などの真空の領域であってもよい。
【００１５】
センサーノード１０１は、設置領域１１０内の各設置箇所における所定の変位量を検出し、検出したデータを無線通信により親ノード１０２に送信するコンピュータである。親ノード１０２は、設置領域１１０に設けられた複数のセンサーノード１０１から得られたデータを集約し、外部装置としてのサーバーへのデータのアップロードを行うコンピュータである。また、親ノード１０２は、外部装置としての利用者端末に対し設置箇所においてセンサーノード１０１が検出したデータの通知等を行ってもよい。また、親ノード１０２は、センサーノード１０１として動作してもよい。
【００１６】
センサーノード１０１（図１の黒丸）は、図１（Ａ）に示すように、設置領域１１０内に大量に設置される。また、親ノード１０２（図１の白丸）は、設置領域１１０内のいずれかの箇所に１台設置される。センサーノード１０１は、近距離の無線通信能力、少なくとも隣接するセンサーノード１０１に到達可能な無線電波を出力できればよい。以降、無線電波の到達可能な範囲を「通信圏」と称す。このため、親ノード１０２から遠いセンサーノード１０１−１は、隣接する他の一つまたは複数のセンサーノード１０１−２を介してデータをリレー転送させる。
【００１７】
このとき、各センサーノード１０１は、消費電力を低減するために、内部のマイクロプロセッサ（ＭＣＵ：Ｍｉｃｒｏ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）への電力供給を停止している場合がある。そのため、データの発信元になるセンサーノード１０１は、他のセンサーノードに起動指示を発信して、他のセンサーノードにデータの受信準備を完了させてから無線電波によってデータを発信することになる。各センサーノード１０１は、このリレー転送により、検出したデータを親ノード１０２に届ける（図１矢印参照）。
【００１８】
ここで、図１（Ｂ）を用いて、センサーノード１０１−１をデータの発信元とした場合について、センサーノード１０１−１がデータを発信する流れについて説明する。（１）まず、センサーノード１０１−１は、自装置の通信圏内に起動指示を発信する。これにより、センサーノード１０１−１は、自装置の通信圏内の他のセンサーノード１０１（図１の例ではセンサーノード１０１−２）に起動指示を受信させ、データの受信準備を開始させる。
【００１９】
（２）次に、センサーノード１０１−１は、起動指示に対する他のセンサーノード１０１からの応答に関わらず、所定の待機時間の経過を待つ。所定の待機時間とは、例えば、センサーノード１０１の製造ばらつき上の最長起動時間である。所定の待機時間は、例えば、センサーノード１０１−１内のＲＯＭに記憶されている。これにより、センサーノード１０１−１は、通信圏内の他のセンサーノード１０１がデータの受信準備を完了するのを待つ。
【００２０】
（３）一方で、センサーノード１０１−２は、起動指示を受信すると、自装置内のＭＣＵを起動させ、ＭＣＵの起動時間を計測する。起動時間とは、起動指示を受信してからＭＣＵがデータの受信準備を完了するまでの時間である。ここで、センサーノード１０１−２は、起動指示に対する応答をセンサーノード１０１−１に返さなくてもよい。
【００２１】
（４）その後、センサーノード１０１−１は、所定の待機時間が経過すると、自装置の通信圏内にデータを発信する。これにより、センサーノード１０１−１は、自装置の通信圏内の他のセンサーノード１０１（図１の例ではセンサーノード１０１−２）にデータを受信させる。
【００２２】
（５）一方で、センサーノード１０１−２は、データを受信すると、受信したデータに対する応答として、センサーノード１０１−２のＭＣＵの起動時間を示す情報を含むデータをセンサーノード１０１−１に送信する。
【００２３】
（６）次に、センサーノード１０１−１は、（５）で送信された応答を受信すると、受信した応答から、センサーノード１０１−２のＭＣＵの起動時間を示す情報を抽出する。そして、センサーノード１０１−１は、抽出した情報が示すセンサーノード１０１−２のＭＣＵの起動時間を用いて、待機時間を製造ばらつき上の最長起動時間から短縮する。短縮後の待機時間は、例えば、センサーノード１０１−１内の不揮発メモリに記憶されている。
【００２４】
以降、センサーノード１０１−１は、（１）、（２）、および（４）と同様にして、センサーノード１０１−２に起動指示を発信し、不揮発メモリに記憶された短縮後の待機時間の経過を待ってから、センサーノード１０１−２にデータを発信する。このように、センサーノード１０１−１はセンサーノード１０１−２が受信準備を完了した直後にデータを発信することができ、待機時間を短縮することができる。また、センサーノード１０１−１は、待機時間を短縮することにより、消費電力を低減することができる。
【００２５】
また、センサーノード１０１−２は、起動指示に対する応答を送信しなくてもよいため、応答の送信にかかる消費電力を低減することができる。また、センサーノード１０１−２が応答を送信しない場合、センサーネットワーク１００における通信量を低減することができ、通信の輻輳の発生を抑制することができる。また、センサーノード１０１−１は、待機時間を削減することにより、発生したイベントに対する処理時間を短縮することができる。
【００２６】
また、センサーノード１０１−１は、複数の応答を受信した場合は、複数の応答に含まれる情報が示す起動時間のうち、最長の起動時間を用いて待機時間を短縮してもよい。最長の起動時間を用いて待機時間を短縮する場合については、図２１および図２２を用いて後述する。また、センサーノード１０１−１は、複数の応答を受信した場合は、複数の応答に含まれる情報が示す起動時間のうち、所定番目に短い起動時間を用いて待機時間を短縮してもよい。所定番目に短い起動時間を用いて待機時間を短縮する場合については、図２７〜図２９を用いて後述する。
【００２７】
（センサーノード１０１の内部構成例）
次に、図２を用いて、図１に示したセンサーノード１０１の内部構成例について説明する。
【００２８】
図２は、センサーノード１０１の内部構成例を示すブロック図である。センサーノード１０１は、ＭＣＵ２０１と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０２と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０３と、不揮発メモリ２０４と、タイマー２０５と、センサー２０６と、を含む。また、センサーノード１０１は、起動指示発信回路２０７と、起動指示受信回路２０８と、無線通信回路２０９と、アンテナ２１０と、を含む。また、センサーノード１０１は、ハーベスタ２１１と、バッテリ２１２と、ＰＭＵ（Ｐｏｗｅｒ  Ｍａｎａｇｅｍｅｎｔ  Ｕｎｉｔ）２１３と、を含む。
【００２９】
ＭＣＵ２０１は、センサーノード１０１全体の制御を司る。ＭＣＵ２０１は、ＲＡＭ２０２、ＲＯＭ２０３、不揮発メモリ２０４、タイマー２０５、起動指示発信回路２０７、無線通信回路２０９、およびセンサー２０６に信号線を介して接続されている。
【００３０】
ＲＡＭ２０２は、ＭＣＵ２０１における処理の一時データを格納する。ＲＡＭ２０２は、ＭＣＵ２０１に信号線を介して接続されている。ＲＯＭ２０３は、ＭＣＵ２０１が実行する処理プログラム等（例えば、通信プログラム）を格納する。また、ＲＯＭ２０３は、センサーノード１０１の製造ばらつき上の最長起動時間に基づく待機時間を格納してもよい。ＲＯＭ２０３は、ＭＣＵ２０１に信号線を介して接続されている。
【００３１】
不揮発メモリ２０４は、電力供給が途絶えたとき等においても書き込まれた所定のデータを保持する。また、不揮発メモリ２０４は、他のセンサーノード１０１の起動時間に基づく待機時間を格納してもよい。不揮発メモリ２０４は、ＭＣＵ２０１に信号線を介して接続されている。
【００３２】
タイマー２０５は、クロック（ＣＬＫ）により発生したパルス信号をカウントし、経過時間を測定する。タイマー２０５は、ＭＣＵ２０１に信号線を介して接続されている。センサー２０６は、設置箇所における所定の変位量を検出する。センサー２０６は、例えば、設置箇所の圧力を検出する圧電素子や、光を検出する光電素子等を用いることができる。センサー２０６は、検出した変位量に基づいてイベントを発生する。センサー２０６は、ＭＣＵ２０１およびＰＭＵ２１３に信号線を介して接続されている。
【００３３】
起動指示受信回路２０８は、アンテナ２１０を介して受信された起動指示を受信してＰＭＵ２１３に起動指示を送る。起動指示とは、他のセンサーノード１０１を起動させる所定の周波数の電波である。起動指示受信回路２０８は、例えば、起動指示となる所定の周波数の電波のみを検出する回路である。所定の周波数は、例えば、センサーネットワーク１００の開発者によって決定される。
【００３４】
起動指示発信回路２０７は、アンテナ２１０を介して起動指示を発信する。起動指示発信回路２０７は、例えば、起動指示となる所定の周波数の電波のみをアンテナ２１０を介して発信する回路である。起動指示受信回路２０８と起動指示発信回路２０７とは、後述する無線通信回路２０９とは異なり、所定の周波数の電波のみを扱うため、無線通信回路２０９より消費電力が少ない。
【００３５】
無線通信回路（ＲＦ：Ｒａｄｉｏ  Ｆｒｅｑｕｅｎｃｙ）２０９は、アンテナ２１０を介して受信された無線電波を受信信号としてＭＣＵ２０１に出力する。また、無線通信回路２０９は、発信信号を無線電波としてアンテナ２１０を介して発信する。無線通信回路２０９は、起動指示受信回路２０８および起動指示発信回路２０７とは異なり、所定の周波数幅の電波を発信し、または受信する回路である。無線通信回路２０９は、起動指示受信回路２０８と起動指示発信回路２０７より電波の周波数帯域が広いため、起動指示受信回路２０８と起動指示発信回路２０７より消費電力が多い。
【００３６】
アンテナ２１０は、電波を発信したり受信したりする。ここでは、アンテナ２１０は、起動指示受信回路２０８と、起動指示発信回路２０７と、無線通信回路２０９と、が共用しているが、これに限らない。例えば、センサーノード１０１は、起動指示受信回路２０８と、起動指示発信回路２０７と、無線通信回路２０９との各々に固有のアンテナを有してもよい。
【００３７】
ハーベスタ２１１は、センサーノード１０１の設置箇所における外部環境、例えば、光、振動、温度、無線電波（受信電波）等のエネルギー変化に基づき発電を行う。バッテリ２１２は、ハーベスタ２１１により発電された電力を蓄える。ＰＭＵ２１３は、バッテリ２１２に蓄えられた電力を、センサーノード１０１の各部の駆動電源として供給する。換言すれば、センサーノード１０１は、二次電池や外部電源等が不要であり、動作に必要な電力をセンサーノード１０１内部で生成する。
【００３８】
センサーノード１０１は、例えば、バッテリ２１２に蓄えられた電力に制限があるため、イベントが発生するまでは、ＭＣＵ２０１やＲＯＭ２０３等への電力供給を停止しておき、消費電力を低減してもよい。例えば、センサーノード１０１は、ＭＣＵ２０１と、ＲＡＭ２０２と、ＲＯＭ２０３と、不揮発メモリ２０４と、タイマー２０５と、起動指示発信回路２０７と、無線通信回路２０９と、への電力供給を停止しておく。
【００３９】
このとき、センサーノード１０１は、ＭＣＵ２０１やＲＯＭ２０３等への電力供給を開始するトリガを発生するセンサー２０６や起動指示受信回路２０８には、常時、電力供給を行っておく。また、センサー２０６は、センサー２０６自体において発生した起電力により動作可能であって、ＰＭＵ２１３からの電力供給なしに動作可能であってもよい。同様に、起動指示受信回路２０８は、アンテナ２１０において発生した起電力により動作可能であって、ＰＭＵ２１３からの電力供給なしに動作可能であってもよい。
【００４０】
（無線通信回路２０９によって送受信される信号）
次に、図３および図４を用いて、無線通信回路２０９によって送受信される信号の一例について説明する。無線通信回路２０９によって送受信される信号には、例えば、センサー２０６の検出結果を示すデータや、センサー２０６の検出結果を示すデータに対する応答がある。
【００４１】
＜センサー２０６の検出結果を示すデータ＞
図３は、センサー２０６の検出結果を示すデータの一例を示す説明図である。図３に示すように、データ３００は、フラグ（符号３０１の領域）と、発信元ＩＤ（符号３０２の領域）と、データサイズ（符号３０３の領域）と、データ内容（符号３０４の領域）と、を含む。
【００４２】
フラグは、当該フラグを含む信号が、発信元から発信されたデータ３００であるか、データ３００に対する応答であるか、を識別する情報である。例えば、フラグは、当該フラグを含む信号が発信元から発信されたデータ３００である場合には「０」となる。発信元ＩＤは、信号の発信元のセンサーノード１０１の識別子である。データサイズは、データ内容のビット長やバイト長である。データ内容は、データ３００の内容であり、例えば、センサー２０６の検出結果である。
【００４３】
＜データ３００に対する応答＞
図４は、データ３００に対する応答の一例を示す説明図である。図４に示すように、応答４００は、フラグ（符号４０１の領域）と、発信元ＩＤ（符号４０２の領域）と、宛先ＩＤ（符号４０３の領域）と、起動時間（符号４０４の領域）と、を含む。
【００４４】
当該フラグを含む信号が、発信元から発信されたデータ３００であるか、データ３００に対する応答であるか、を識別する情報である。例えば、フラグは、当該フラグを含む信号がデータ３００に対する応答である場合には「１」となる。発信元ＩＤは、信号の発信元のセンサーノード１０１の識別子である。宛先ＩＤは、データ３００の発信元であって、応答４００の宛先であるセンサーノード１０１の識別子である。起動時間は、応答４００を発信するセンサーノード１０１の起動時間を示す情報である。
【００４５】
（通信装置として機能するセンサーノード１０１の機能的構成例）
次に、図５および図６を用いて、通信装置として機能するセンサーノード１０１の機能的構成例について説明する。以降では、発信側の通信装置としての機能と受信側の通信装置としての機能とを分けて説明するが、センサーノード１０１は発信側の通信装置としての機能と受信側の通信装置としての機能とを併せて有してもよい。
【００４６】
図５は、発信側の通信装置として機能するセンサーノード１０１の機能的構成例を示すブロック図である。発信側のセンサーノード１０１は、記憶部５０１と、第１の発信部５０２と、検出部５０３と、第２の発信部５０４と、受信部５０５と、格納部５０６と、を含む。
【００４７】
記憶部５０１は、受信部５０５によって他通信装置の起動にかかる時間を示す情報が受信される前には、他通信装置の最長起動時間以上の待機時間を記憶する。ここで、通信装置とは、例えば、センサーノード１０１である。起動にかかる時間とは、センサーノード１０１が起動指示を受信してから、データの受信準備が完了するまでの時間であって、例えば、上述した起動時間である。待機時間とは、他のセンサーノード１０１がＭＣＵ２０１を起動してデータ３００の受信処理が可能になるまでの起動時間以上の時間である。最長起動時間とは、例えば、センサーノード１０１の製造ばらつき上での最長の起動時間である。
【００４８】
これにより、検出部５０３は、通信圏内の他のセンサーノード１０１が当該センサーノード１０１のＭＣＵ２０１を起動終了してデータ３００の受信準備が完了するまでの待機時間が経過したことを検出することができる。記憶部５０１は、例えば、図２に示したＭＣＵ２０１内のレジスタ、ＲＯＭ２０３、ＲＡＭ２０２、不揮発メモリ２０４などの記憶装置により、その機能を実現する。
【００４９】
第１の発信部５０２は、通信圏内に起動指示を発信する。起動指示とは、上述したように、他のセンサーノード１０１を起動させる所定の周波数の電波であって、センサーノード１０１の起動指示受信回路２０８によって受信可能な周波数の電波である。これにより、第１の発信部５０２は、通信圏内の他のセンサーノード１０１に、当該センサーノード１０１のＭＣＵ２０１を起動するトリガを与えることができる。第１の発信部５０２は、例えば、図２に示したＲＯＭ２０３、ＲＡＭ２０２、不揮発メモリ２０４などの記憶装置に記憶されたプログラムをＭＣＵ２０１に実行させることにより、および、起動指示発信回路２０７により、その機能を実現する。
【００５０】
検出部５０３は、第１の発信部５０２によって起動指示が発信されてから、記憶部５０１に格納された待機時間が経過したことを検出する。検出部５０３は、例えば、第１の発信部５０２によって起動指示が発信された時点において、タイマー２０５によって計測された経過時間を取得する。次に、検出部５０３は、タイマー２０５によって計測される経過時間を監視し、タイマー２０５によって計測される経過時間が、取得した経過時間と待機時間との和以上になった場合に、待機時間が経過したことを検出する。
【００５１】
これにより、検出部５０３は、通信圏内の他のセンサーノード１０１が当該センサーノード１０１のＭＣＵ２０１を起動終了してデータ３００の受信準備が完了したことを検出することができる。検出部５０３は、例えば、図２に示したＲＯＭ２０３、ＲＡＭ２０２、不揮発メモリ２０４などの記憶装置に記憶されたプログラムをＭＣＵ２０１に実行させることにより、および、タイマー２０５により、その機能を実現する。
【００５２】
第２の発信部５０４は、検出部５０３によって待機時間が経過したことが検出された場合に、通信圏内にデータ３００を発信する。これにより、通信圏内の他のセンサーノード１０１は、第２の発信部５０４によって発信されたデータ３００を受信することができる。第２の発信部５０４は、例えば、図２に示したＲＯＭ２０３、ＲＡＭ２０２、不揮発メモリ２０４などの記憶装置に記憶されたプログラムをＭＣＵ２０１に実行させることにより、および、無線通信回路２０９により、その機能を実現する。
【００５３】
受信部５０５は、通信圏内の他通信装置を起動させる起動指示を発信した場合に他通信装置の起動にかかる時間を示す情報を他通信装置から受信する。受信部５０５は、例えば、図４に示した応答４００を受信し、応答４００の符号４０４の領域から起動時間を抽出する。
【００５４】
これにより、格納部５０６は、通信圏内の他のセンサーノード１０１の起動時間を用いて待機時間を調整することができる。受信部５０５は、例えば、図２に示したＲＯＭ２０３、ＲＡＭ２０２、不揮発メモリ２０４などの記憶装置に記憶されたプログラムをＭＣＵ２０１に実行させることにより、および、無線通信回路２０９により、その機能を実現する。
【００５５】
格納部５０６は、受信部５０５によって受信された情報が示す時間に基づく待機時間を記憶部５０１に格納する。格納部５０６は、例えば、受信部５０５によって応答４００の中から抽出された起動時間を、待機時間として記憶部５０１に格納する。これにより、格納部５０６は、待機時間として、センサーノード１０１の製造ばらつき上の最長起動時間より短い他のセンサーノード１０１の起動時間を採用して、待機時間を短縮することができる。また、検出部５０３は、待機時間が短縮されても、他のセンサーノード１０１がデータの受信準備を完了するまで待つことができる。
【００５６】
また、格納部５０６は、例えば、受信部５０５によって応答４００の中から抽出された起動時間と、経年劣化等による起動時間の変動に対応するための所定時間と、の和を、待機時間として記憶部５０１に格納してもよい。これにより、検出部５０３は、他のセンサーノード１０１の起動時間が経年劣化等により長くなった場合でも、他のセンサーノード１０１がデータの受信準備を完了するまで待つことができる。
【００５７】
また、格納部５０６は、受信部５０５によって複数の他通信装置から情報が受信された場合に、受信された各々の情報が示す時間の中で最長の時間に基づく待機時間を記憶部５０１に格納してもよい。これにより、第２の発信部５０４は、通信圏内のセンサーノード１０１の全てが起動してからデータ３００を発信することができる。
【００５８】
また、格納部５０６は、受信部５０５によって複数の他通信装置から情報が受信された場合に、受信された各々の情報が示す時間の中で所定番目に短い時間に基づく待機時間を記憶部５０１に格納してもよい。ここで、所定番目とは、例えば、センサーネットワーク１００の構成に使用するセンサーノード１０１の個数番目を示す。センサーネットワーク１００の構成に使用するセンサーノード１０１の個数は、例えば、センサーネットワーク１００の開発者によって決定される。
【００５９】
これにより、第２の発信部５０４は、通信圏内のセンサーノード１０１のうち、センサーネットワーク１００の構成に使用する個数のセンサーノード１０１が起動した時点で、データ３００を発信することができる。従って、格納部５０６は、待機時間を短縮することができる。
【００６０】
また、格納部５０６は、第２の発信部５０４によって発信されたデータ３００に対する他通信装置からの応答４００が所定数以下である場合に、記憶部５０１に記憶された待機時間を延長してもよい。所定数とは、例えば、センサーネットワーク１００の構成に使用するセンサーノード１０１の個数である。所定数とは、例えば、センサーネットワーク１００の開発者によって決定される。また、所定数は、例えば、前回にデータ３００の通信を行ったセンサーノード１０１の個数であり、可変であってもよい。
【００６１】
これにより、センサーノード１０１は、通信圏内のセンサーノード１０１が起動する前に第２の発信部５０４によってデータ３００を発信してしまった場合に、待機時間を延長することができる。格納部５０６は、例えば、図２に示したＲＯＭ２０３、ＲＡＭ２０２、不揮発メモリ２０４などの記憶装置に記憶されたプログラムをＭＣＵ２０１に実行させることにより、その機能を実現する。
【００６２】
以降では、発信側のセンサーノード１０１は、格納部５０６によって記憶部５０１に格納された待機時間を用いて、データを発信することになる。これにより、発信側のセンサーノード１０１は、通信圏内の他のセンサーノード１０１がデータ３００の受信準備を完了するまでの適切な待機時間を用いてデータを発信することができる。従って、発信側のセンサーノード１０１は、待機時間が低減されたことにより、消費電力を低減することができる。
【００６３】
図６は、受信側の通信装置として機能するセンサーノード１０１の機能的構成例を示すブロック図である。受信側のセンサーノード１０１は、受信部６０１と、起動部６０２と、計測部６０３と、送信部６０４と、を含む。
【００６４】
受信部６０１は、起動指示を発信してから所定の待機時間経過後にデータ３００を発信する発信元から起動指示を受信する。発信元とは、上述した発信側の機能を有する通信装置であって、例えば、センサーノード１０１である。受信部６０１は、例えば、他のセンサーノード１０１から起動指示を受信する。これにより、起動部６０２は、プロセッサを起動するトリガを得ることができる。受信部６０１は、例えば、図２に示した起動指示受信回路２０８により、その機能を実現する。
【００６５】
起動部６０２は、受信部６０１によって起動指示が受信された場合に自装置内のプロセッサを起動する。プロセッサとは、データ３００の受信処理を実行する装置であって、例えば、センサーノード１０１のＭＣＵ２０１である。起動部６０２は、例えば、受信部６０１によって起動指示が受信された場合にＰＭＵ２１３にＭＣＵ２０１への電力供給を開始させる要求を送信する。これにより、ＭＣＵ２０１は起動することができる。起動部６０２は、例えば、図２に示した起動指示受信回路２０８およびＰＭＵ２１３により、その機能を実現する。
【００６６】
計測部６０３は、受信部６０１によって起動指示が受信されてから、起動部６０２によって起動されたプロセッサによるデータ３００の受信処理が可能になるまでの時間を計測する。受信部６０１によって起動指示が受信されてから、起動部６０２によって起動されたプロセッサによるデータ３００の受信処理が可能になるまでの時間とは、例えば、上述した起動時間である。
【００６７】
これにより、計測部６０３は、実際の起動時間を取得することができる。計測部６０３は、例えば、図２に示したＲＯＭ２０３、ＲＡＭ２０２、不揮発メモリ２０４などの記憶装置に記憶されたプログラムをＭＣＵ２０１に実行させることにより、および、タイマー２０５により、その機能を実現する。
【００６８】
送信部６０４は、計測部６０３によって計測された時間を示す情報を発信元に送信する。送信部６０４は、例えば、発信側の機能を有するセンサーノード１０１に対して、自装置の起動時間を含む図４の応答４００を送信する。
【００６９】
これにより、発信側のセンサーノード１０１は、上述した受信部５０５および格納部５０６によって、待機時間を調整することができる。送信部６０４は、例えば、図２に示したＲＯＭ２０３、ＲＡＭ２０２、不揮発メモリ２０４などの記憶装置に記憶されたプログラムをＭＣＵ２０１に実行させることにより、および、無線通信回路２０９により、その機能を実現する。
【００７０】
（センサーノード１０１間の通信例）
次に、図７〜図２０を用いて、センサーノード１０１間の通信例について説明する。図７〜図１６は、センサーノード１０１間の初回の通信例を示す説明図である。図１７〜図２０は、センサーノード１０１間の２回目以降の通信例を示す説明図である。ここで、図７〜図２０では、センサーノード１０１−１を発信側の機能を有する通信装置とし、センサーノード１０１−２を受信側の機能を有する通信装置とする。また、図７〜図２０において、センサーノード１０１−１とセンサーノード１０１−２とは互いに通信圏内に存在するとする。
【００７１】
以降では、図２に示したセンサーノード１０１内部の構成について、センサーノード１０１−１側では接尾語「−１」を付与し、センサーノード１０１−２側では接尾語「−２」を付与し、各々を識別する。例えば、ＭＣＵ２０１−１はセンサーノード１０１−１側のＭＣＵ２０１を示し、ＭＣＵ２０１−２はセンサーノード１０１−２側のＭＣＵ２０１を示す。
【００７２】
＜初回の通信例＞
まず、図７〜図１６を用いて、初回の通信例について説明する。ここでは、センサーノード１０１−１は、ＭＣＵ２０１−１やＲＯＭ２０３−１等への電力供給を停止しているとする。センサーノード１０１−２は、同様に、ＭＣＵ２０１−２やＲＯＭ２０３−２等への電力供給を停止しているとする。
【００７３】
図７において、（１１）センサー２０６−１は、所定の変位量を検出してイベントを発生する。センサー２０６−１は、例えば、検出した温度が閾値を超えた場合にイベントを発生する。（１２）センサー２０６−１は、イベントを発生すると、電力供給の開始要求をＰＭＵ２１３−１に送信する。次に、図８の説明に移行する。
【００７４】
図８において、（１３）ＰＭＵ２１３−１は、電力供給の開始要求を受信すると、ＭＣＵ２０１−１やＲＯＭ２０３−１等への電力供給を開始する。これにより、ＭＣＵ２０１−１は起動を開始する。また、タイマー２０５−１は経過時間の計測を開始する。次に、図９の説明に移行する。
【００７５】
図９において、ＭＣＵ２０１−１は、起動してデータ３００の受信準備を完了すると、発生したイベントに応じた処理を実行する。ここで、ＭＣＵ２０１−１は、処理結果を、通信圏内の他のセンサーノード１０１を介して、親ノード１０２にリレー転送することになる。
【００７６】
（１４）そのために、ＭＣＵ２０１−１は、通信圏内のセンサーノード１０１を起動させる起動指示の発信要求を、起動指示発信回路２０７−１に送信する。（１５）起動指示発信回路２０７−１は、発信要求を受信すると、アンテナ２１０−１を介して起動指示を通信圏内に発信する。
【００７７】
（１６）また、ＭＣＵ２０１−１は、発信要求を送信すると、ＲＯＭ２０３−１から、センサーノード１０１の製造ばらつき上の最長起動時間である待機時間を読み出す。（１７）また、ＭＣＵ２０１−１は、タイマー２０５−１から発信要求を送信した時点での経過時間を取得する。次に、図１０の説明に移行する。
【００７８】
図１０において、（１８）起動指示受信回路２０８−２は、アンテナ２１０−２を介して、センサーノード１０１−１が発信した起動指示を受信する。（１９）起動指示受信回路２０８−２は、起動指示を受信すると、ＰＭＵ２１３−２に電力供給の開始要求を送信する。次に、図１１の説明に移行する。
【００７９】
図１１において、（２０）ＰＭＵ２１３−２は、電力供給の開始要求を受信すると、ＭＣＵ２０１−２やＲＯＭ２０３−２等への電力供給を開始する。これにより、ＭＣＵ２０１−２は起動を開始する。また、タイマー２０５−２は経過時間の計測を開始する。次に、図１２の説明に移行する。
【００８０】
図１２において、（２１）ＭＣＵ２０１−２は、起動を完了した時点でタイマー２０５−２により計測された経過時間を取得する。（２２）次に、ＭＣＵ２０１−２は、計測された経過時間を、ＭＣＵ２０１−２の起動時間として、不揮発メモリ２０４−２に格納しておく。次に、図１３の説明に移行する。
【００８１】
図１３において、（２３）ＭＣＵ２０１−１は、タイマー２０５−１により計測される経過時間を取得する。次に、ＭＣＵ２０１−１は、取得した経過時間と（１７）で取得した発信要求を送信した時点での経過時間とを用いて、（１６）で読み出した待機時間が経過したか否かを判定する。ここでは、待機時間が経過したとする。
【００８２】
（２４）ＭＣＵ２０１−１は、待機時間が経過したと判定すると、処理結果の発信要求を、無線通信回路２０９−１に送信する。（２５）無線通信回路２０９−１は、発信要求を受信すると、アンテナ２１０−１を介して処理結果を通信圏内に発信する。次に、図１４の説明に移行する。
【００８３】
図１４において、（２６）無線通信回路２０９−２は、アンテナ２１０−２を介して、センサーノード１０１−１が発信した処理結果を受信する。（２７）無線通信回路２０９−２は、処理結果を受信すると、処理結果をＭＣＵ２０１−２に送信する。次に、図１５の説明に移行する。
【００８４】
図１５において、（２８）ＭＣＵ２０１−２は、処理結果を受信すると、（２２）で格納しておいたＭＣＵ２０１−２の起動時間を不揮発メモリ２０４−２から読み出す。（２９）次に、ＭＣＵ２０１−２は、読み出したＭＣＵ２０１−２の起動時間を含む応答４００を生成する。そして、ＭＣＵ２０１−２は、生成した応答４００の発信要求を、無線通信回路２０９−２に送信する。（３０）無線通信回路２０９−２は、発信要求を受信すると、アンテナ２１０−２を介して応答４００を通信圏内に発信する。次に、図１６の説明に移行する。
【００８５】
図１６において、（３１）無線通信回路２０９−１は、アンテナ２１０−１を介して、センサーノード１０１−２が発信した応答４００を受信する。（３２）無線通信回路２０９−１は、応答４００を受信すると、応答４００をＭＣＵ２０１−１に送信する。
【００８６】
（３３）ＭＣＵ２０１−１は、応答４００を受信すると、応答４００の中からＭＣＵ２０１−２の起動時間を抽出する。次に、ＭＣＵ２０１−１は、抽出した起動時間を、新たな待機時間として不揮発メモリ２０４−１に格納しておく。このようにして、センサーノード１０１は、通信圏内の他のセンサーノード１０１にデータ３００を受信させ、データ３００の通信を行う。また、（３１）において複数の応答が受信された場合については、図２１および図２２を用いて、または、図２７〜図２９を用いて後述する。
【００８７】
その後、センサーノード１０１−１は、データ３００の通信が終了すると、ＭＣＵ２０１−１やＲＯＭ２０３−１等への電力供給を停止する。センサーノード１０１−２は、同様に、データ３００の通信が終了すると、ＭＣＵ２０１−２やＲＯＭ２０３−２等への電力供給を停止する。これにより、センサーノード１０１は、消費電力を低減することができる。
【００８８】
＜２回目以降の通信例＞
次に、図１７〜図２０を用いて、２回目以降の通信例について説明する。ここでは、センサーノード１０１−１は、ＭＣＵ２０１−１やＲＯＭ２０３−１等への電力供給を停止しているとする。センサーノード１０１−２は、同様に、ＭＣＵ２０１−２やＲＯＭ２０３−２等への電力供給を停止しているとする。
【００８９】
図１７において、（３４）センサー２０６−１は、（１１）と同様に、再びイベントを発生したとする。（３５）センサー２０６−１は、イベントを発生すると、電力供給の開始要求をＰＭＵ２１３−１に送信する。次に、図１８の説明に移行する。
【００９０】
図１８において、（３６）ＰＭＵ２１３−１は、電力供給の開始要求を受信すると、ＭＣＵ２０１−１やＲＯＭ２０３−１等への電力供給を開始する。これにより、ＭＣＵ２０１−１は起動を開始する。また、タイマー２０５−１は経過時間の計測を開始する。次に、図１９の説明に移行する。
【００９１】
図１９において、ＭＣＵ２０１−１は、起動してデータ３００の受信準備を完了すると、発生したイベントに応じた処理を実行する。ここで、ＭＣＵ２０１−１は、処理結果を、通信圏内の他のセンサーノード１０１を介して、親ノード１０２にリレー転送することになる。
【００９２】
（３７）そのために、通信圏内のセンサーノード１０１を起動させる起動指示の発信要求を、起動指示発信回路２０７−１に送信する。（３８）起動指示発信回路２０７−１は、発信要求を受信すると、アンテナ２１０−１を介して起動指示を通信圏内に発信する。
【００９３】
（３９）また、ＭＣＵ２０１−１は、発信要求を送信すると、不揮発メモリ２０４−１から（３３）で格納しておいたＭＣＵ２０１−２の起動時間を読み出す。次に、ＭＣＵ２０１−１は、読み出した起動時間を待機時間として設定する。（４０）また、ＭＣＵ２０１−１は、タイマー２０５−１から発信要求を送信した時点での経過時間を取得する。
【００９４】
ここで、センサーノード１０１−２は、図１０〜図１２と同様に、（３８）で発信した起動指示を受信して、ＭＣＵ２０１−２を起動させているとする。次に、図２０の説明に移行する。
【００９５】
図２０において、（４１）ＭＣＵ２０１−１は、タイマー２０５−１により計測される経過時間を取得する。次に、ＭＣＵ２０１−１は、取得した経過時間と（４０）で取得した発信要求を送信した時点での経過時間とを用いて、（３９）で設定した待機時間が経過したか否かを判定する。ここでは、待機時間が経過したとする。
【００９６】
（４２）ＭＣＵ２０１−１は、待機時間が経過したと判定すると、処理結果の発信要求を、無線通信回路２０９−１に送信する。（４３）無線通信回路２０９−１は、発信要求を受信すると、アンテナ２１０−１を介して処理結果を通信圏内に発信する。
【００９７】
以降、図１４、図１５と同様にして、センサーノード１０１−２は、応答４００を発信する。また、図１６と同様にして、センサーノード１０１−１は、応答４００を受信する。このようにして、センサーノード１０１は、通信圏内の他のセンサーノード１０１にデータ３００を受信させ、データ３００の通信を行う。その後、センサーノード１０１−１は、データ３００の通信が終了すると、ＭＣＵ２０１−１やＲＯＭ２０３−１等への電力供給を停止する。センサーノード１０１−２は、同様に、データ３００の通信が終了すると、ＭＣＵ２０１−２やＲＯＭ２０３−２等への電力供給を停止する。
【００９８】
これにより、センサーノード１０１−１は、センサーノード１０１−２が受信準備を完了した直後にデータ３００を発信することができ、待機時間を削減することができる。また、センサーノード１０１−１は、待機時間を削減することにより、ＭＣＵ２０１−１やＲＯＭ２０３−１等へ電力供給する時間を短縮することができ、消費電力を低減することができる。
【００９９】
また、センサーノード１０１−２は、起動指示に対する応答を送信しなくてもよいため、応答の発信にかかる消費電力を削減することができる。また、センサーノード１０１−１は、待機時間を削減することにより、発生したイベントに対する処理時間を短縮することができる。
【０１００】
センサーノード１０１は、既にＭＣＵ２０１が起動している場合に起動指示を受信した場合、タイマー２０５による経過時間の計測をしなくてもよく、不揮発メモリ２０４に記憶した起動時間を発信すればよい。
【０１０１】
（複数のセンサーノード１０１から応答４００を受信した場合の待機時間の設定例１）
次に、図２１および図２２を用いて、センサーノード１０１が、複数のセンサーノード１０１から応答４００を受信した場合の待機時間の設定例１について説明する。
【０１０２】
図２１および図２２は、複数のセンサーノード１０１から応答４００を受信した場合の待機時間の設定例１を示す説明図である。図２１において、（５１）センサーノード１０１−１は、通信圏内に起動指示を発信する。これにより、センサーノード１０１−２〜１０１−６は、起動指示を受信する。（５２）次に、センサーノード１０１−１は、通信圏内にデータ３００を発信する。これにより、センサーノード１０１−２〜１０１−６は、データ３００を受信する。次に、図２２の説明に移行する。
【０１０３】
図２２において、（５３）センサーノード１０１−２は、起動時間「３０ｍｓ（ｍｉｌｌｉ  ｓｅｃｏｎｄ）」を含む応答４００をセンサーノード１０１−１に送信する。（５４）センサーノード１０１−１は、センサーノード１０１−２から送信された応答４００を受信し、受信した応答４００の中から起動時間「３０ｍｓ」を抽出する。そして、センサーノード１０１−１は、抽出した起動時間「３０ｍｓ」を待機時間として採用し、不揮発メモリ２０４に格納する。
【０１０４】
（５５）また、センサーノード１０１−３は、起動時間「３２ｍｓ」を含む応答４００をセンサーノード１０１−１に送信する。（５６）センサーノード１０１−１は、センサーノード１０１−３から送信された応答４００を受信し、受信した応答４００の中から起動時間「３２ｍｓ」を抽出する。
【０１０５】
次に、センサーノード１０１−１は、不揮発メモリ２０４に格納された待機時間「３０ｍｓ」と抽出した起動時間「３２ｍｓ」とを比較する。そして、センサーノード１０１−１は、比較した結果、現在の待機時間より起動時間が長いため、待機時間「３０ｍｓ」を「３２ｍｓ」に更新して、不揮発メモリ２０４に格納する。
【０１０６】
（５７）また、センサーノード１０１−４は、起動時間「３５ｍｓ」を含む応答４００をセンサーノード１０１−１に送信する。（５８）センサーノード１０１−１は、（５５）と同様にして、起動時間「３５ｍｓ」を抽出し、現在の待機時間より起動時間が長いため、待機時間「３２ｍｓ」を「３５ｍｓ」に更新して、不揮発メモリ２０４に格納する。
【０１０７】
（５９）また、センサーノード１０１−５は、起動時間「３９ｍｓ」を含む応答４００をセンサーノード１０１−１に送信する。（６０）センサーノード１０１−１は、（５５）と同様にして、起動時間「３９ｍｓ」を抽出し、現在の待機時間より起動時間が長いため、待機時間「３５ｍｓ」を「３９ｍｓ」に更新して、不揮発メモリ２０４に格納する。
【０１０８】
（６１）また、センサーノード１０１−６は、起動時間「３８ｍｓ」を含む応答４００をセンサーノード１０１−１に送信する。（６２）センサーノード１０１−１は、センサーノード１０１−６から送信された応答４００を受信し、受信した応答４００の中から起動時間「３８ｍｓ」を抽出する。次に、センサーノード１０１−１は、不揮発メモリ２０４に格納された待機時間「３９ｍｓ」と抽出した起動時間「３８ｍｓ」とを比較する。そして、センサーノード１０１−１は、比較した結果、現在の待機時間より起動時間が短いため、待機時間「３９ｍｓ」を更新しない。
【０１０９】
これにより、センサーノード１０１−１は、通信圏内のセンサーノード１０１−２〜１０１−６が起動して受信準備を完了するまでの待機時間を決定して、不揮発メモリ２０４に記憶しておくことができる。結果として、センサーノード１０１−１は、決定した待機時間を用いてデータ３００を発信することにより、データ３００をセンサーノード１０１−２〜１０１−６に受信させることができる。
【０１１０】
（設定例１を採用した場合のデータ発信処理）
次に、図２３を用いて、設定例１を採用した場合のセンサーノード１０１によるデータ発信処理について説明する。データ発信処理は、図５に示した発信側の機能を有するセンサーノード１０１が実行する処理であり、例えば、図７〜図２０に示したセンサーノード１０１−１により実行される。
【０１１１】
図２３は、設定例１を採用した場合のセンサーノード１０１によるデータ発信処理の一例を示すフローチャートである。図２３において、まず、センサーノード１０１は、起動指示を発信する（ステップＳ２３０１）。次に、センサーノード１０１は、図２４の処理により待機時間を設定する（ステップＳ２３０２）。
【０１１２】
そして、センサーノード１０１は、待機時間が経過したか否かを判定する（ステップＳ２３０３）。ここで、待機時間が経過していない場合（ステップＳ２３０３：Ｎｏ）、センサーノード１０１は、ステップＳ２３０３の処理に戻り、待機時間の経過を待つ。
【０１１３】
一方、待機時間が経過した場合（ステップＳ２３０３：Ｙｅｓ）、センサーノード１０１は、データ３００を発信する（ステップＳ２３０４）。そして、センサーノード１０１は、データ発信処理を終了する。これにより、センサーノード１０１は、通信圏内の他のセンサーノード１０１を起動させ、他のセンサーノード１０１の受信準備の完了後にデータ３００の発信をすることができる。結果として、センサーノード１０１は、通信圏内の他のセンサーノード１０１にデータ３００を受信させることができる。
【０１１４】
（設定例１を採用した場合の待機時間設定処理）
次に、図２４を用いて、設定例１を採用した場合のセンサーノード１０１による待機時間設定処理について説明する。待機時間設定処理は、ステップＳ２３０２において実行される処理である。
【０１１５】
図２４は、設定例１を採用した場合のセンサーノード１０１による待機時間設定処理の一例を示すフローチャートである。図２４において、まず、センサーノード１０１は、不揮発メモリ２０４から待機時間を探索する（ステップＳ２４０１）。次に、センサーノード１０１は、待機時間が探索できたか否かを判定する（ステップＳ２４０２）。
【０１１６】
ここで、探索できなかった場合（ステップＳ２４０２：Ｎｏ）、センサーノード１０１は、ＲＯＭ２０３からセンサーノード１０１の最長起動時間である待機時間を探索し（ステップＳ２４０３）、ステップＳ２４０４の処理に移行する。
【０１１７】
一方、探索できた場合（ステップＳ２４０２：Ｙｅｓ）、センサーノード１０１は、探索した待機時間を設定する（ステップＳ２４０４）。そして、センサーノード１０１は、待機時間設定処理を終了する。これにより、センサーノード１０１は、初回の通信時および２回目以降の通信時に待機時間を設定することができる。
【０１１８】
（設定例１を採用した場合のデータ受信処理）
次に、図２５および図２６を用いて、設定例１を採用した場合のセンサーノード１０１によるデータ受信処理について説明する。データ受信処理は、図５に示した発信側の機能を有するセンサーノード１０１、および図６に示した受信側の機能を有するセンサーノード１０１が実行する処理である。データ受信処理は、例えば、図７〜図２０に示したセンサーノード１０１−１およびセンサーノード１０１−２により実行される。
【０１１９】
図２５および図２６は、設定例１を採用した場合のセンサーノード１０１によるデータ受信処理の一例を示すフローチャートである。図２５において、まず、センサーノード１０１は、信号を受信する（ステップＳ２５０１）。次に、センサーノード１０１は、受信した信号の中からフラグを抽出する（ステップＳ２５０２）。
【０１２０】
そして、センサーノード１０１は、抽出したフラグが応答４００を示すか否かを判定する（ステップＳ２５０３）。ここで、応答４００を示す場合（ステップＳ２５０３：Ｙｅｓ）、センサーノード１０１は、図２６のステップＳ２６０１の処理に移行する。
【０１２１】
一方、応答４００を示さない場合（ステップＳ２５０３：Ｎｏ）、センサーノード１０１は、受信した信号がデータ３００であると特定し、データ３００の中から発信元ＩＤを抽出する（ステップＳ２５０４）。
【０１２２】
次に、センサーノード１０１は、受信したデータ３００を処理する（ステップＳ２５０５）。データ３００の処理とは、例えば、データ３００のリレー転送の処理でもよいし、データ３００のデータ内容の解析処理でもよい。また、データ３００の処理とは、例えば、外部装置としてのサーバーへのデータ３００のアップロード処理でもよいし、外部装置としての利用者端末に対するデータ３００の通知処理でもよい。
【０１２３】
そして、センサーノード１０１は、抽出した発信元ＩＤが示すセンサーノード１０１に対して、自装置の起動時間を含む応答４００を送信する（ステップＳ２５０６）。次に、センサーノード１０１は、データ受信処理を終了する。上述したステップＳ２５０１〜ステップＳ２５０６を経由する処理により、センサーノード１０１は、他のセンサーノード１０１から発信されたデータ３００を処理し、当該データ３００に対する応答４００を発信することができる。
【０１２４】
次に、図２６の説明に移行する。図２６において、センサーノード１０１は、受信した信号が応答４００であると特定し、応答４００の中から宛先ＩＤを抽出する（ステップＳ２６０１）。次に、センサーノード１０１は、宛先ＩＤが自装置のＩＤであるか否かを判定する（ステップＳ２６０２）。ここで、自装置のＩＤでない場合（ステップＳ２６０２：Ｎｏ）、センサーノード１０１は、データ受信処理を終了する。
【０１２５】
一方、自装置のＩＤである場合（ステップＳ２６０２：Ｙｅｓ）、センサーノード１０１は、受信した応答４００の中から起動時間を抽出する（ステップＳ２６０３）。次に、センサーノード１０１は、不揮発メモリ２０４から待機時間を探索する（ステップＳ２６０４）。
【０１２６】
そして、センサーノード１０１は、探索できたか否かを判定する（ステップＳ２６０５）。ここで、探索できなかった場合（ステップＳ２６０５：Ｎｏ）、センサーノード１０１は、ステップＳ２６０８の処理に移行する。
【０１２７】
一方、探索できた場合（ステップＳ２６０５：Ｙｅｓ）、センサーノード１０１は、探索された待機時間を取得する（ステップＳ２６０６）。次に、センサーノード１０１は、取得した待機時間が抽出した起動時間より短いか否かを判定する（ステップＳ２６０７）。ここで、短くない場合（ステップＳ２６０７：Ｎｏ）、センサーノード１０１は、データ受信処理を終了する。
【０１２８】
一方、短い場合（ステップＳ２６０７：Ｙｅｓ）、センサーノード１０１は、待機時間を抽出した起動時間で上書きして更新する（ステップＳ２６０８）。次に、センサーノード１０１は、データ受信処理を終了する。上述したステップＳ２６０１〜ステップＳ２６０８を経由する処理により、センサーノード１０１は、自装置から発信したデータ３００に対する応答４００を処理し、待機時間を更新することができる。
【０１２９】
（複数のセンサーノード１０１から応答４００を受信した場合の待機時間の設定例２）
次に、図２７〜図２９を用いて、センサーノード１０１が、複数のセンサーノード１０１から応答４００を受信した場合の待機時間の設定例２について説明する。
【０１３０】
図２７は、センサーノード１０１の密集度合いを示す説明図である。図２７に示すように、センサーネットワーク１００において、センサーノード１０１はランダムに設置される。そのため、設置場所によって、センサーノード１０１の密集度合いにばらつきが生じることがある。
【０１３１】
例えば、センサーノード１０１−１の通信圏２７０１内には５つのセンサーノード１０１（センサーノード１０１−２〜１０１−６）が存在する。また、センサーノード１０１−７の通信圏２７０２内には３つのセンサーノード１０１（センサーノード１０１−８〜１０１−１０）が存在する。
【０１３２】
ここで、センサーノード１０１は、通信圏２７０１内のセンサーノード１０１全てにデータ３００を受信させなくてもよい場合がある。例えば、センサーノード１０１−１は、通信圏２７０１内の５つのセンサーノード１０１のうち、３つのセンサーノード１０１にデータ３００を受信させればよい場合がある。この場合、センサーノード１０１−１は、通信圏２７０１内の５つのセンサーノード１０１が受信準備を完了するまで待機しなくても、３つのセンサーノード１０１が受信準備を完了するまで待機すれば、データ３００を発信することができる。
【０１３３】
このため、センサーノード１０１−１は、通信圏２７０１内のセンサーノード１０１の起動時間のうち３番目に短い起動時間を待機時間として採用することにより、３つのセンサーノード１０１が受信準備を完了するまで待機するようにしてもよい。この場合、センサーノード１０１−１は、通信圏２７０１内のセンサーノード１０１の起動時間のうち最長の起動時間を待機時間として採用した場合より、待機時間を短縮することができる。
【０１３４】
ここで、センサーノード１０１は、例えば、通信圏２７０１内のセンサーノード１０１の起動時間のうち３番目に短い起動時間を待機時間とて採用するために、図２８に示す起動時間テーブルを使用する。
【０１３５】
図２８は、起動時間テーブルの記憶内容の一例を示す説明図である。起動時間テーブルは、所定数のセンサーノード１０１が受信準備を完了するまでの待機時間を採用するために、所定数のセンサーノード１０１の起動時間を記憶する。起動時間テーブルは、例えば、ＲＯＭ２０３やＲＡＭ２０２や不揮発メモリ２０４等の記憶装置によって実現される。
【０１３６】
図２８に示すように、起動時間テーブル２８００は、ノードＩＤ項目に関連付けて、起動時間項目を有し、センサーノード１０１ごとに各項目に情報が設定されることにより、所定数以内のレコード（図２８の例では、３つのレコード２８０１〜２８０３）を構成する。
【０１３７】
ノードＩＤ項目には、センサーノード１０１の識別子が記憶される。起動時間項目には、ノードＩＤ項目の識別子が示すセンサーノード１０１の起動時間が記憶される。例えば、レコード２８０１は、センサーノード１０１−２の起動時間が「３０ｍｓ」であることを示す情報である。
【０１３８】
図２９は、起動時間テーブル２８００を使用した待機時間の設定例２を示す説明図である。図２９において、センサーノード１０１−１は、図２１と同様に、通信圏内に起動指示を発信した後、データ３００を発信しているとする。
【０１３９】
（７１）ここで、センサーノード１０１−２は、起動時間「３０ｍｓ」を含む応答４００をセンサーノード１０１−１に送信する。（７２）センサーノード１０１−１は、センサーノード１０１−２から送信された応答４００を受信し、受信した応答４００の中から起動時間「３０ｍｓ」を抽出する。そして、センサーノード１０１−１は、応答４００の発信元のセンサーノード１０１−２のＩＤ「１０１−２」と、抽出した起動時間「３０ｍｓ」と、を関連付けたレコードを起動時間テーブル２８００に記憶する。
【０１４０】
（７３）また、センサーノード１０１−３は、起動時間「３２ｍｓ」を含む応答４００をセンサーノード１０１−１に送信する。（７４）センサーノード１０１−１は、（７２）と同様に、応答４００の発信元のセンサーノード１０１−３のＩＤ「１０１−３」と、抽出した起動時間「３２ｍｓ」と、を関連付けたレコードを起動時間テーブル２８００に記憶する。
【０１４１】
（７５）また、センサーノード１０１−４は、起動時間「３５ｍｓ」を含む応答４００をセンサーノード１０１−１に送信する。（７６）センサーノード１０１−１は、（７２）と同様に、応答４００の発信元のセンサーノード１０１−４のＩＤ「１０１−４」と、抽出した起動時間「３５ｍｓ」と、を関連付けたレコードを起動時間テーブル２８００に記憶する。
【０１４２】
（７７）また、センサーノード１０１−５は、起動時間「３９ｍｓ」を含む応答４００をセンサーノード１０１−１に送信する。（７８）センサーノード１０１−１は、センサーノード１０１−５から送信された応答４００を受信し、受信した応答４００の中から起動時間「３９ｍｓ」を抽出する。ここで、センサーノード１０１−１は、起動時間テーブル２８００のレコードが３つになっているため、起動時間テーブル２８００に各レコードの起動時間と、抽出した起動時間「３９ｍｓ」とを比較する。次に、センサーノード１０１−１は、比較した結果、各レコードの起動時間より抽出した起動時間が長いため、待機時間「３９ｍｓ」に関するレコードを生成しない。
【０１４３】
（７９）また、センサーノード１０１−６は、起動時間「３８ｍｓ」を含む応答４００をセンサーノード１０１−１に送信する。（８０）センサーノード１０１−１は、（７８）と同様に、起動時間テーブル２８００に各レコードの起動時間と、抽出した起動時間「３８ｍｓ」とを比較する。次に、センサーノード１０１−１は、比較した結果、各レコードの起動時間より抽出した起動時間が長いため、待機時間「３８ｍｓ」に関するレコードを生成しない。
【０１４４】
これにより、センサーノード１０１−１は、通信圏内のセンサーノード１０１−２〜１０１−６の起動時間のうち、１番目〜３番目に短い起動時間を起動時間テーブル２８００に記憶しておく。そして、センサーノード１０１−１は、起動時間テーブル２８００に記憶された３番目に短い起動時間を待機時間として採用する。
【０１４５】
これにより、センサーノード１０１−１は、通信圏内の３つのセンサーノード１０１が受信準備を完了するまでの待機時間を決定して、不揮発メモリ２０４に記憶しておくことができる。結果として、センサーノード１０１−１は、決定した待機時間を用いてデータ３００を発信することにより、データ３００を３つのセンサーノード１０１に受信させることができる。
【０１４６】
また、センサーノード１０１は、起動時間テーブル２８００に起動時間が記憶されたセンサーノード１０１から応答４００を受信した場合は、起動時間テーブル２８００に記憶された起動時間を、受信した応答に含まれる起動時間で更新してもよい。これにより、センサーノード１０１は、起動時間テーブル２８００の起動時間を最新の状態に交信することができる。
【０１４７】
（設定例２を採用した場合のデータ発信処理）
次に、設定例２を採用した場合のセンサーノード１０１によるデータ発信処理について説明する。設定例２を採用した場合のデータ発信処理は、図２３に示した設定例１を採用した場合のデータ発信処理と同様のため、ここでは説明を省略する。
【０１４８】
（設定例２を採用した場合の待機時間設定処理）
次に、設定例２を採用した場合のセンサーノード１０１による待機時間設定処理について説明する。設定例２を採用した場合の待機時間設定処理は、図２４に示した設定例１を採用した場合の待機時間設定処理とステップＳ２４０２〜Ｓ２４０４は同様のため、ステップＳ２４０１について説明する。
【０１４９】
設定例２では、ステップＳ２４０１において、センサーノード１０１は、起動時間テーブル２８００の中で、最長の起動時間を探索する。これにより、センサーノード１０１は、通信圏内のセンサーノード１０１のうち、所定数のセンサーノード１０１が受信準備を完了するまでの待機時間を設定することができる。
【０１５０】
（設定例２を採用した場合のデータ受信処理）
次に、図３０を用いて、設定例２を採用した場合のセンサーノード１０１によるデータ受信処理について説明する。設定例２を採用した場合のデータ受信処理は、図２５および図２６に示した設定例１を採用した場合のデータ受信処理とステップＳ２５０１〜Ｓ２５０６，Ｓ２６０１〜Ｓ２６０２，Ｓ２６０２：Ｎｏの分岐先の処理は同様である。そのため、ここでは、図２６に示したステップＳ２６０２：Ｙｅｓの分岐先における設定例２を採用した場合の処理について説明する。
【０１５１】
図３０は、設定例２を採用した場合のセンサーノード１０１によるデータ受信処理の一例を示すフローチャートである。図３０において、センサーノード１０１は、受信した応答４００の中から、発信元ＩＤと起動時間とを抽出する（ステップＳ３００１）。
【０１５２】
次に、センサーノード１０１は、起動時間テーブル２８００の中からレコードを探索する（ステップＳ３００２）。そして、センサーノード１０１は、探索できたか否かを判定する（ステップＳ３００３）。ここで、探索できなかった場合（ステップＳ３００３：Ｎｏ）、センサーノード１０１は、起動時間テーブル２８００に抽出した発信元ＩＤと起動時間とを関連付けたレコードを追加し（ステップＳ３００４）、データ受信処理を終了する。
【０１５３】
一方、探索できた場合（ステップＳ３００３：Ｙｅｓ）、センサーノード１０１は、起動時間テーブル２８００の各レコードのノードＩＤ項目と発信元ＩＤとを比較する（ステップＳ３００５）。次に、センサーノード１０１は、比較した結果、一致したか否かを判定する（ステップＳ３００６）。ここで、一致した場合（ステップＳ３００６：Ｙｅｓ）、センサーノード１０１は、一致したレコードの起動時間項目を抽出した起動時間で上書き更新して（ステップＳ３００７）、データ受信処理を終了する。
【０１５４】
一方、一致しない場合（ステップＳ３００６：Ｎｏ）、センサーノード１０１は、起動時間テーブル２８００のレコード数を取得する（ステップＳ３００８）。次に、センサーノード１０１は、レコード数が上限未満か否かを判定する（ステップＳ３００９）。ここで、上限未満である場合（ステップＳ３００９：Ｙｅｓ）、センサーノード１０１は、起動時間テーブル２８００に抽出した発信元ＩＤと起動時間とを関連付けたレコードを追加して（ステップＳ３０１０）、データ受信処理を終了する。
【０１５５】
一方、上限以上である場合（ステップＳ３００９：Ｎｏ）、センサーノード１０１は、起動時間テーブル２８００の各レコードの中で最長の起動時間を待機時間として取得する（ステップＳ３０１１）。次に、センサーノード１０１は、取得した待機時間が抽出した起動時間より短いか否かを判定する（ステップＳ３０１２）。ここで、短くない場合（ステップＳ３０１２：Ｎｏ）、センサーノード１０１は、データ受信処理を終了する。
【０１５６】
一方、短い場合（ステップＳ３０１２：Ｙｅｓ）、センサーノード１０１は、起動時間テーブル２８００の各レコードのうち最長の起動時間のレコードを削除し、発信元ＩＤと起動時間とを関連付けたレコードを起動時間テーブル２８００に追加する（ステップＳ３０１３）。そして、センサーノード１０１は、データ受信処理を終了する。これにより、センサーノード１０１は、通信圏内のセンサーノード１０１の起動時間を短い順に所定数記憶しておくことができる。
【０１５７】
以上説明したように、開示の通信装置（例えば、センサーノード１０１）は、予め通信圏内の他の通信装置から送信された他の通信装置の起動時間に基づく待機時間を設定しておき、通信圏内に起動指示を発信した後、設定した待機時間が経過した場合に通信圏内にデータ３００を発信する。これにより、開示の通信装置は、他の通信装置がデータ３００の受信準備を完了した後に、他の通信装置にデータ３００を受信させることができる。
【０１５８】
従って、通信装置は、待機時間を固定した場合に比べて、待機時間を短縮することができ、消費電力を低減することができる。また、開示の通信装置は、起動指示に対する応答を受信しなくてもデータ３００を発信することができるため、通信圏内に他の通信装置が何個あるかを特定しなくてもよい。
【０１５９】
また、他の通信装置は、起動指示に対する応答を送信しなくてもよい。これにより、他の通信装置は、応答４００の送信処理を削減することができ、処理量を低減して消費電力を低減することができる。また、開示の通信装置は、起動指示に対する応答の受信によりデータ３００を発信する場合と比べて、起動指示に対する応答の受信にかかる時間を削減して、待機時間を短縮することができ、消費電力を低減することができる。
【０１６０】
また、開示の通信装置は、初回の通信時には、通信装置の製造ばらつき上の最長起動時間に基づく待機時間を設定しておき、通信圏内に起動指示を発信した後、設定した待機時間が経過した場合に通信圏内にデータ３００を発信する。これにより、開示の通信装置は、初回の通信時にも、通信圏内の他の通信装置がデータ３００の受信準備を完了した後に、他の通信装置にデータ３００を受信させることができる。また、開示の通信装置は、起動指示に対する応答を受信しなくてもデータ３００を発信することができるため、通信圏内に他の通信装置が何個あるかを特定しなくてもよい。
【０１６１】
また、開示の通信装置は、通信圏内に他の通信装置が複数ある場合は、各々の他の通信装置の起動時間のうち最長の起動時間に基づく待機時間を設定する。これにより、開示の通信装置は、各々の他の通信装置にデータ３００を受信させることができる。
【０１６２】
また、開示の通信装置は、通信圏内に他の通信装置が複数ある場合は、各々の他の通信装置の起動時間のうち所定番目に短い起動時間に基づく待機時間を設定する。これにより、開示の通信装置は、待機時間が短い順で所定番目までの他の通信装置にデータ３００を受信させることができる。
【０１６３】
また、開示の通信装置は、発信したデータ３００に対する応答４００が所定数以下である場合に、設定した待機時間を延長する。これにより、開示の通信装置は、他の通信装置が経年劣化等により起動時間が長くなった場合に、待機時間を延長して他の通信装置が起動を完了するまで待機することができる。
【０１６４】
また、通信装置が、自装置の通信圏内に他通信装置が何個存在するか不明である場合、通信圏内の他通信装置から応答を受信して、当該他通信装置にのみデータを送信する構成が考えられる。しかしながら、この構成では、通信装置は、応答を受信することにより処理時間が増大するため、データを発信するまでの待機時間が長くなる。また、通信装置が応答を受信するごとにデータを送信すると、ネットワークの通信量が増大して、輻輳が発生することがある。
【０１６５】
一方で、開示の通信装置は、待機時間の経過によりデータ３００を発信するため、自装置の通信圏内に他通信装置が何個存在するか特定しなくても、データ３００を発信することができる。また、開示の通信装置は、他通信装置からの応答４００の有無に関わらず、他通信装置が起動した直後にデータ３００を発信することができるため、待機時間を削減することができる。また、開示の通信装置により、他通信装置は、応答４００を送信しなくてもよいため、ネットワークの輻輳を抑制することができる。
【０１６６】
また、通信装置が、自装置の通信圏内に他通信装置が何個存在するか不明である場合、予め通信装置の開発者等によって決定された待機時間の中で、通信圏内の他通信装置からの応答を受信し、応答を受信できた他通信装置にのみデータを送信する構成が考えられる。しかしながら、この構成では、通信装置は、待機時間の中で通信圏内の全ての他通信装置から応答を受信していても、待機時間が終了するまで待機することになり、待機時間が長くなる。また、この構成では、通信装置は、待機時間の中でネットワークの構成に使用する数の通信装置から応答を受信できず、ネットワークが構成できないことがある。
【０１６７】
一方で、開示の通信装置は、待機時間の経過によりデータ３００を発信するため、自装置の通信圏内に他通信装置が何個存在するか特定しなくても、データ３００を発信することができる。また、開示の通信装置は、他通信装置からの応答４００の有無に関わらず、他通信装置が起動した直後にデータ３００を発信することができるため、待機時間を削減することができる。また、開示の通信装置は、ネットワークの構成に使用する数の通信装置がデータ３００の受信準備を完了してから、データ３００を発信することができる。
【０１６８】
なお、本実施の形態で説明した通信方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本通信プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本通信プログラムは、インターネット等のネットワークを介して配布してもよい。
【０１６９】
また、本実施の形態で説明した通信装置は、スタンダードセルやストラクチャードＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）などの特定用途向けＩＣ（以下、単に「ＡＳＩＣ」と称す。）やＦＰＧＡなどのＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）によっても実現することができる。具体的には、例えば、上述した発信側の通信装置の機能（第１の発信部５０２〜格納部５０６）や受信側の通信装置の機能（受信部６０１〜送信部６０４）をＨＤＬ記述によって機能定義し、そのＨＤＬ記述を論理合成してＡＳＩＣやＰＬＤに与えることにより、通信装置を製造することができる。
【符号の説明】
【０１７０】
１０１  センサーノード
５０１  記憶部
５０２  第１の発信部
５０３  検出部
５０４  第２の発信部
５０５  受信部
５０６  格納部
６０１  受信部
６０２  起動部
６０３  計測部
６０４  送信部
【図１】
2014049799.tif 000003
【図２】
2014049799.tif 000004
【図３】
2014049799.tif 000005
【図４】
2014049799.tif 000006
【図５】
2014049799.tif 000007
【図６】
2014049799.tif 000008
【図７】
2014049799.tif 000009
【図８】
2014049799.tif 000010
【図９】
2014049799.tif 000011
【図１０】
2014049799.tif 000012
【図１１】
2014049799.tif 000013
【図１２】
2014049799.tif 000014
【図１３】
2014049799.tif 000015
【図１４】
2014049799.tif 000016
【図１５】
2014049799.tif 000017
【図１６】
2014049799.tif 000018
【図１７】
2014049799.tif 000019
【図１８】
2014049799.tif 000020
【図１９】
2014049799.tif 000021
【図２０】
2014049799.tif 000022
【図２１】
2014049799.tif 000023
【図２２】
2014049799.tif 000024
【図２３】
2014049799.tif 000025
【図２４】
2014049799.tif 000026
【図２５】
2014049799.tif 000027
【図２６】
2014049799.tif 000028
【図２７】
2014049799.tif 000029
【図２８】
2014049799.tif 000030
【図２９】
2014049799.tif 000031
【図３０】
2014049799.tif 000032
【手続補正書】
【提出日】平成27年4月1日(2015.4.1)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
通信圏内の他通信装置を起動させる起動指示を発信した場合に前記他通信装置の起動にかかる時間を示す情報を前記他通信装置から受信する受信部と、
前記受信部によって受信された前記情報が示す時間に基づく待機時間を記憶部に格納する格納部と、
前記通信圏内に起動指示を発信する第１の発信部と、
前記第１の発信部によって前記起動指示が発信されてから、前記格納部によって前記記憶部に格納された前記待機時間が経過したことを検出する検出部と、
前記検出部によって前記待機時間が経過したことが検出された場合に、前記通信圏内にデータを発信する第２の発信部と、
を有することを特徴とする通信装置。
【請求項２】
前記格納部は、
前記受信部によって複数の前記他通信装置から前記情報が受信された場合に、受信された各々の前記情報が示す時間の中で最長の時間に基づく前記待機時間を前記記憶部に格納する、
ことを特徴とする請求項１に記載の通信装置。
【請求項３】
前記格納部は、
前記受信部によって複数の前記他通信装置から前記情報が受信された場合に、受信された各々の前記情報が示す時間の中で所定番目に短い時間に基づく前記待機時間を前記記憶部に格納する、
ことを特徴とする請求項１に記載の通信装置。
【請求項４】
起動指示を発信してから所定の待機時間経過後にデータを発信する発信元から前記起動指示を受信する受信部と、
前記受信部によって前記起動指示が受信された場合に自装置内のプロセッサを起動する起動部と、
前記受信部によって前記起動指示が受信されてから、前記起動部によって起動された前記プロセッサによる前記データの受信処理が可能になるまでの時間を計測する計測部と、
前記計測部によって計測された前記時間を示す情報を前記発信元に送信する送信部と、
を有することを特徴とする通信装置。
【請求項５】
コンピュータが、
通信圏内の他通信装置を起動させる起動指示を発信した場合に前記他通信装置の起動にかかる時間を示す情報を前記他通信装置から受信し、
受信された前記情報が示す時間に基づく待機時間を記憶部に格納し、
前記通信圏内に起動指示を発信し、
前記起動指示が発信されてから、前記記憶部に格納された前記待機時間が経過したことを検出し、
前記待機時間が経過したことが検出された場合に、前記通信圏内にデータを発信する、
処理を実行することを特徴とする通信方法。
【請求項６】
コンピュータが、
起動指示を発信してから所定の待機時間経過後にデータを発信する発信元から前記起動指示を受信し、
前記起動指示が受信された場合に自装置内のプロセッサを起動し、
前記起動指示が受信されてから、起動された前記プロセッサによる前記データの受信処理が可能になるまでの時間を計測し、
計測された前記時間を示す情報を前記発信元に送信する、
処理を実行することを特徴とする通信方法。
【請求項７】
コンピュータに、
通信圏内の他通信装置を起動させる起動指示を発信した場合に前記他通信装置の起動にかかる時間を示す情報を前記他通信装置から受信し、
受信された前記情報が示す時間に基づく待機時間を記憶部に格納し、
前記通信圏内に起動指示を発信し、
前記起動指示が発信されてから、前記記憶部に格納された前記待機時間が経過したことを検出し、
前記待機時間が経過したことが検出された場合に、前記通信圏内にデータを発信する、
処理を実行させることを特徴とする通信プログラム。
【請求項８】
コンピュータに、
起動指示を発信してから所定の待機時間経過後にデータを発信する発信元から前記起動指示を受信し、
前記起動指示が受信された場合に自装置内のプロセッサを起動し、
前記起動指示が受信されてから、起動された前記プロセッサによる前記データの受信処理が可能になるまでの時間を計測し、
計測された前記時間を示す情報を前記発信元に送信する、
処理を実行させることを特徴とする通信プログラム。
【請求項９】
互いに通信可能な圏内に位置する第１の通信装置および第２の通信装置を含む通信システムであって、
前記第１の通信装置は、
起動指示を受信した場合に自装置内のプロセッサを起動し、前記起動指示を受信してから、起動した前記プロセッサによるデータの受信処理が可能になるまでの時間の計測結果を前記第２の通信装置に送信し、
前記第２の通信装置は、
前記第１の通信装置によって送信された前記計測結果を受信し、受信した前記計測結果に基づく待機時間を記憶部に格納し、自装置から通信可能な圏内に前記起動指示を発信し、前記起動指示を発信してから、前記記憶部に格納された前記待機時間が経過したことを検出した場合に、前記自装置から通信可能な圏内に前記データを発信する、
ことを特徴とする通信システム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、通信方法、通信プログラム、および通信システムに関する。
【背景技術】
【０００２】
複数のセンサー付無線端末（以下、「センサーノード」と称す）を設置領域に設置して、各センサーノードが協調して外部環境や物理的状況を示す情報を採取する無線センサーネットワーク（ＷＳＮ：Ｗｉｒｅｌｅｓｓ  Ｓｅｎｓｏｒ  Ｎｅｔｗｏｒｋｓ）が知られている。
【０００３】
また、画像撮像装置において、無線で画像記録装置に電源をオンにさせる指令信号を送信し、画像記録装置からのスタンバイ信号を受信してから、画像記録装置にデータを送信する技術がある（例えば、下記特許文献１参照）。また、サーバーにおいて、複数のクライアントにパワーオンパケットを送信し、全クライアントからデータの受信準備の完了通知を受信すると、全クライアントにデータを送信する技術がある（例えば、下記特許文献２参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−２５３２９２号公報
【特許文献２】特開２００３−０４４２８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した従来技術では、データの発信側の装置において、データの受信側の装置からの応答を待ってからデータを発信するため、データを発信するまでの待機時間が長くなる。
【０００６】
本発明は、データを発信するまでの待機時間を短縮することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一側面によれば、通信圏内の他通信装置を起動させる起動指示を発信した場合に他通信装置の起動にかかる時間を示す情報を他通信装置から受信し、受信された情報が示す時間に基づく待機時間を記憶部に格納し、通信圏内に起動指示を発信し、起動指示が発信されてから、記憶部に格納された待機時間が経過したことを検出し、待機時間が経過したことが検出された場合に、通信圏内にデータを発信する通信装置、通信方法、および通信プログラムが提案される。
【０００８】
また、本発明の一側面によれば、起動指示を発信してから所定の待機時間経過後にデータを発信する発信元から起動指示を受信し、起動指示が受信された場合に自装置内のプロセッサを起動し、起動指示が受信されてから、起動されたプロセッサによるデータの受信処理が可能になるまでの時間を計測し、計測された時間を示す情報を発信元に送信する通信装置、通信方法、および通信プログラムが提案される。
【０００９】
また、本発明の一側面によれば、互いに通信可能な圏内に位置する第１の通信装置および第２の通信装置を含む通信システムであって、第１の通信装置は、起動指示を受信した場合に自装置内のプロセッサを起動し、起動指示を受信してから、起動したプロセッサによるデータの受信処理が可能になるまでの時間の計測結果を第２の通信装置に送信し、第２の通信装置は、第１の通信装置によって送信された計測結果を受信し、受信した計測結果に基づく待機時間を記憶部に格納し、自装置から通信可能な圏内に起動指示を発信し、起動指示を発信してから、記憶部に格納された待機時間が経過したことを検出した場合に、自装置から通信可能な圏内にデータを発信する通信システムが提案される。
【発明の効果】
【００１０】
本発明の一側面によれば、データを発信するまでの待機時間を短縮することができるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】図１は、センサーネットワーク内のセンサーノード間の通信例を示す図である。
【図２】図２は、センサーノード１０１の内部構成例を示すブロック図である。
【図３】図３は、センサー２０６の検出結果を示すデータの一例を示す説明図である。
【図４】図４は、データ３００に対する応答の一例を示す説明図である。
【図５】図５は、発信側の通信装置として機能するセンサーノード１０１の機能的構成例を示すブロック図である。
【図６】図６は、受信側の通信装置として機能するセンサーノード１０１の機能的構成例を示すブロック図である。
【図７】図７は、センサーノード１０１間の初回の通信例を示す説明図（その１）である。
【図８】図８は、センサーノード１０１間の初回の通信例を示す説明図（その２）である。
【図９】図９は、センサーノード１０１間の初回の通信例を示す説明図（その３）である。
【図１０】図１０は、センサーノード１０１間の初回の通信例を示す説明図（その４）である。
【図１１】図１１は、センサーノード１０１間の初回の通信例を示す説明図（その５）である。
【図１２】図１２は、センサーノード１０１間の初回の通信例を示す説明図（その６）である。
【図１３】図１３は、センサーノード１０１間の初回の通信例を示す説明図（その７）である。
【図１４】図１４は、センサーノード１０１間の初回の通信例を示す説明図（その８）である。
【図１５】図１５は、センサーノード１０１間の初回の通信例を示す説明図（その９）である。
【図１６】図１６は、センサーノード１０１間の初回の通信例を示す説明図（その１０）である。
【図１７】図１７は、センサーノード１０１間の２回目以降の通信例を示す説明図（その１）である。
【図１８】図１８は、センサーノード１０１間の２回目以降の通信例を示す説明図（その２）である。
【図１９】図１９は、センサーノード１０１間の２回目以降の通信例を示す説明図（その３）である。
【図２０】図２０は、センサーノード１０１間の２回目以降の通信例を示す説明図（その４）である。
【図２１】図２１は、複数のセンサーノード１０１から応答４００を受信した場合の待機時間の設定例１を示す説明図（その１）である。
【図２２】図２２は、複数のセンサーノード１０１から応答４００を受信した場合の待機時間の設定例１を示す説明図（その２）である。
【図２３】図２３は、設定例１を採用した場合のセンサーノード１０１によるデータ発信処理の一例を示すフローチャートである。
【図２４】図２４は、設定例１を採用した場合のセンサーノード１０１による待機時間設定処理の一例を示すフローチャートである。
【図２５】図２５は、設定例１を採用した場合のセンサーノード１０１によるデータ受信処理の一例を示すフローチャート（その１）である。
【図２６】図２６は、設定例１を採用した場合のセンサーノード１０１によるデータ受信処理の一例を示すフローチャート（その２）である。
【図２７】図２７は、センサーノード１０１の密集度合いを示す説明図である。
【図２８】図２８は、起動時間テーブルの記憶内容の一例を示す説明図である。
【図２９】図２９は、起動時間テーブル２８００を使用した待機時間の設定例２を示す説明図である。
【図３０】図３０は、設定例２を採用した場合のセンサーノード１０１によるデータ受信処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下に添付図面を参照して、本発明にかかる通信装置、通信方法、通信プログラム、および通信システムの実施の形態を詳細に説明する。以降では、本発明にかかる通信装置の機能を有し、本発明にかかる通信システムを実現するセンサーノードを例に挙げるが、これに限らない。例えば、本発明にかかる通信装置は、センサーノード以外の通信装置にも適用可能である。
【００１３】
（センサーネットワーク内のセンサーノード間の通信例）
図１は、センサーネットワーク内のセンサーノード間の通信例を示す図である。図１（Ａ）はセンサーネットワーク１００の構成例を示し、図１（Ｂ）はセンサーネットワーク１００内のセンサーノード１０１による通信の流れの一例を示す。
【００１４】
図１（Ａ）に示すように、センサーネットワーク１００は、所定の設置領域１１０内に配置されたチップ状の複数のセンサーノード１０１と、複数のセンサーノード１０１のセンサー出力を無線等により受信する親ノード１０２と、を含む通信システムである。設置領域１１０は、例えば、コンクリート、土、水、空気などの物質で満たされた領域である。または、設置領域１１０は、宇宙空間などの真空の領域であってもよい。
【００１５】
センサーノード１０１は、設置領域１１０内の各設置箇所における所定の変位量を検出し、検出したデータを無線通信により親ノード１０２に送信するコンピュータである。親ノード１０２は、設置領域１１０に設けられた複数のセンサーノード１０１から得られたデータを集約し、外部装置としてのサーバーへのデータのアップロードを行うコンピュータである。また、親ノード１０２は、外部装置としての利用者端末に対し設置箇所においてセンサーノード１０１が検出したデータの通知等を行ってもよい。また、親ノード１０２は、センサーノード１０１として動作してもよい。
【００１６】
センサーノード１０１（図１の黒丸）は、図１（Ａ）に示すように、設置領域１１０内に大量に設置される。また、親ノード１０２（図１の白丸）は、設置領域１１０内のいずれかの箇所に１台設置される。センサーノード１０１は、近距離の無線通信能力、少なくとも隣接するセンサーノード１０１に到達可能な無線電波を出力できればよい。以降、無線電波の到達可能な範囲を「通信圏」と称す。このため、親ノード１０２から遠いセンサーノード１０１−１は、隣接する他の一つまたは複数のセンサーノード１０１−２を介してデータをリレー転送させる。
【００１７】
このとき、各センサーノード１０１は、消費電力を低減するために、内部のマイクロプロセッサ（ＭＣＵ：Ｍｉｃｒｏ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）への電力供給を停止している場合がある。そのため、データの発信元になるセンサーノード１０１は、他のセンサーノードに起動指示を発信して、他のセンサーノードにデータの受信準備を完了させてから無線電波によってデータを発信することになる。各センサーノード１０１は、このリレー転送により、検出したデータを親ノード１０２に届ける（図１矢印参照）。
【００１８】
ここで、図１（Ｂ）を用いて、センサーノード１０１−１をデータの発信元とした場合について、センサーノード１０１−１がデータを発信する流れについて説明する。（１）まず、センサーノード１０１−１は、自装置の通信圏内に起動指示を発信する。これにより、センサーノード１０１−１は、自装置の通信圏内の他のセンサーノード１０１（図１の例ではセンサーノード１０１−２）に起動指示を受信させ、データの受信準備を開始させる。
【００１９】
（２）次に、センサーノード１０１−１は、起動指示に対する他のセンサーノード１０１からの応答に関わらず、所定の待機時間の経過を待つ。所定の待機時間とは、例えば、センサーノード１０１の製造ばらつき上の最長起動時間である。所定の待機時間は、例えば、センサーノード１０１−１内のＲＯＭに記憶されている。これにより、センサーノード１０１−１は、通信圏内の他のセンサーノード１０１がデータの受信準備を完了するのを待つ。
【００２０】
（３）一方で、センサーノード１０１−２は、起動指示を受信すると、自装置内のＭＣＵを起動させ、ＭＣＵの起動時間を計測する。起動時間とは、起動指示を受信してからＭＣＵがデータの受信準備を完了するまでの時間である。ここで、センサーノード１０１−２は、起動指示に対する応答をセンサーノード１０１−１に返さなくてもよい。
【００２１】
（４）その後、センサーノード１０１−１は、所定の待機時間が経過すると、自装置の通信圏内にデータを発信する。これにより、センサーノード１０１−１は、自装置の通信圏内の他のセンサーノード１０１（図１の例ではセンサーノード１０１−２）にデータを受信させる。
【００２２】
（５）一方で、センサーノード１０１−２は、データを受信すると、受信したデータに対する応答として、センサーノード１０１−２のＭＣＵの起動時間を示す情報を含むデータをセンサーノード１０１−１に送信する。
【００２３】
（６）次に、センサーノード１０１−１は、（５）で送信された応答を受信すると、受信した応答から、センサーノード１０１−２のＭＣＵの起動時間を示す情報を抽出する。そして、センサーノード１０１−１は、抽出した情報が示すセンサーノード１０１−２のＭＣＵの起動時間を用いて、待機時間を製造ばらつき上の最長起動時間から短縮する。短縮後の待機時間は、例えば、センサーノード１０１−１内の不揮発メモリに記憶されている。
【００２４】
以降、センサーノード１０１−１は、（１）、（２）、および（４）と同様にして、センサーノード１０１−２に起動指示を発信し、不揮発メモリに記憶された短縮後の待機時間の経過を待ってから、センサーノード１０１−２にデータを発信する。このように、センサーノード１０１−１はセンサーノード１０１−２が受信準備を完了した直後にデータを発信することができ、待機時間を短縮することができる。また、センサーノード１０１−１は、待機時間を短縮することにより、消費電力を低減することができる。
【００２５】
また、センサーノード１０１−２は、起動指示に対する応答を送信しなくてもよいため、応答の送信にかかる消費電力を低減することができる。また、センサーノード１０１−２が応答を送信しない場合、センサーネットワーク１００における通信量を低減することができ、通信の輻輳の発生を抑制することができる。また、センサーノード１０１−１は、待機時間を削減することにより、発生したイベントに対する処理時間を短縮することができる。
【００２６】
また、センサーノード１０１−１は、複数の応答を受信した場合は、複数の応答に含まれる情報が示す起動時間のうち、最長の起動時間を用いて待機時間を短縮してもよい。最長の起動時間を用いて待機時間を短縮する場合については、図２１および図２２を用いて後述する。また、センサーノード１０１−１は、複数の応答を受信した場合は、複数の応答に含まれる情報が示す起動時間のうち、所定番目に短い起動時間を用いて待機時間を短縮してもよい。所定番目に短い起動時間を用いて待機時間を短縮する場合については、図２７〜図２９を用いて後述する。
【００２７】
（センサーノード１０１の内部構成例）
次に、図２を用いて、図１に示したセンサーノード１０１の内部構成例について説明する。
【００２８】
図２は、センサーノード１０１の内部構成例を示すブロック図である。センサーノード１０１は、ＭＣＵ２０１と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０２と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０３と、不揮発メモリ２０４と、タイマー２０５と、センサー２０６と、を含む。また、センサーノード１０１は、起動指示発信回路２０７と、起動指示受信回路２０８と、無線通信回路２０９と、アンテナ２１０と、を含む。また、センサーノード１０１は、ハーベスタ２１１と、バッテリ２１２と、ＰＭＵ（Ｐｏｗｅｒ  Ｍａｎａｇｅｍｅｎｔ  Ｕｎｉｔ）２１３と、を含む。
【００２９】
ＭＣＵ２０１は、センサーノード１０１全体の制御を司る。ＭＣＵ２０１は、ＲＡＭ２０２、ＲＯＭ２０３、不揮発メモリ２０４、タイマー２０５、起動指示発信回路２０７、無線通信回路２０９、およびセンサー２０６に信号線を介して接続されている。
【００３０】
ＲＡＭ２０２は、ＭＣＵ２０１における処理の一時データを格納する。ＲＡＭ２０２は、ＭＣＵ２０１に信号線を介して接続されている。ＲＯＭ２０３は、ＭＣＵ２０１が実行する処理プログラム等（例えば、通信プログラム）を格納する。また、ＲＯＭ２０３は、センサーノード１０１の製造ばらつき上の最長起動時間に基づく待機時間を格納してもよい。ＲＯＭ２０３は、ＭＣＵ２０１に信号線を介して接続されている。
【００３１】
不揮発メモリ２０４は、電力供給が途絶えたとき等においても書き込まれた所定のデータを保持する。また、不揮発メモリ２０４は、他のセンサーノード１０１の起動時間に基づく待機時間を格納してもよい。不揮発メモリ２０４は、ＭＣＵ２０１に信号線を介して接続されている。
【００３２】
タイマー２０５は、クロック（ＣＬＫ）により発生したパルス信号をカウントし、経過時間を測定する。タイマー２０５は、ＭＣＵ２０１に信号線を介して接続されている。センサー２０６は、設置箇所における所定の変位量を検出する。センサー２０６は、例えば、設置箇所の圧力を検出する圧電素子や、光を検出する光電素子等を用いることができる。センサー２０６は、検出した変位量に基づいてイベントを発生する。センサー２０６は、ＭＣＵ２０１およびＰＭＵ２１３に信号線を介して接続されている。
【００３３】
起動指示受信回路２０８は、アンテナ２１０を介して受信された起動指示を受信してＰＭＵ２１３に起動指示を送る。起動指示とは、他のセンサーノード１０１を起動させる所定の周波数の電波である。起動指示受信回路２０８は、例えば、起動指示となる所定の周波数の電波のみを検出する回路である。所定の周波数は、例えば、センサーネットワーク１００の開発者によって決定される。
【００３４】
起動指示発信回路２０７は、アンテナ２１０を介して起動指示を発信する。起動指示発信回路２０７は、例えば、起動指示となる所定の周波数の電波のみをアンテナ２１０を介して発信する回路である。起動指示受信回路２０８と起動指示発信回路２０７とは、後述する無線通信回路２０９とは異なり、所定の周波数の電波のみを扱うため、無線通信回路２０９より消費電力が少ない。
【００３５】
無線通信回路（ＲＦ：Ｒａｄｉｏ  Ｆｒｅｑｕｅｎｃｙ）２０９は、アンテナ２１０を介して受信された無線電波を受信信号としてＭＣＵ２０１に出力する。また、無線通信回路２０９は、発信信号を無線電波としてアンテナ２１０を介して発信する。無線通信回路２０９は、起動指示受信回路２０８および起動指示発信回路２０７とは異なり、所定の周波数幅の電波を発信し、または受信する回路である。無線通信回路２０９は、起動指示受信回路２０８と起動指示発信回路２０７より電波の周波数帯域が広いため、起動指示受信回路２０８と起動指示発信回路２０７より消費電力が多い。
【００３６】
アンテナ２１０は、電波を発信したり受信したりする。ここでは、アンテナ２１０は、起動指示受信回路２０８と、起動指示発信回路２０７と、無線通信回路２０９と、が共用しているが、これに限らない。例えば、センサーノード１０１は、起動指示受信回路２０８と、起動指示発信回路２０７と、無線通信回路２０９との各々に固有のアンテナを有してもよい。
【００３７】
ハーベスタ２１１は、センサーノード１０１の設置箇所における外部環境、例えば、光、振動、温度、無線電波（受信電波）等のエネルギー変化に基づき発電を行う。バッテリ２１２は、ハーベスタ２１１により発電された電力を蓄える。ＰＭＵ２１３は、バッテリ２１２に蓄えられた電力を、センサーノード１０１の各部の駆動電源として供給する。換言すれば、センサーノード１０１は、二次電池や外部電源等が不要であり、動作に必要な電力をセンサーノード１０１内部で生成する。
【００３８】
センサーノード１０１は、例えば、バッテリ２１２に蓄えられた電力に制限があるため、イベントが発生するまでは、ＭＣＵ２０１やＲＯＭ２０３等への電力供給を停止しておき、消費電力を低減してもよい。例えば、センサーノード１０１は、ＭＣＵ２０１と、ＲＡＭ２０２と、ＲＯＭ２０３と、不揮発メモリ２０４と、タイマー２０５と、起動指示発信回路２０７と、無線通信回路２０９と、への電力供給を停止しておく。
【００３９】
このとき、センサーノード１０１は、ＭＣＵ２０１やＲＯＭ２０３等への電力供給を開始するトリガを発生するセンサー２０６や起動指示受信回路２０８には、常時、電力供給を行っておく。また、センサー２０６は、センサー２０６自体において発生した起電力により動作可能であって、ＰＭＵ２１３からの電力供給なしに動作可能であってもよい。同様に、起動指示受信回路２０８は、アンテナ２１０において発生した起電力により動作可能であって、ＰＭＵ２１３からの電力供給なしに動作可能であってもよい。
【００４０】
（無線通信回路２０９によって送受信される信号）
次に、図３および図４を用いて、無線通信回路２０９によって送受信される信号の一例について説明する。無線通信回路２０９によって送受信される信号には、例えば、センサー２０６の検出結果を示すデータや、センサー２０６の検出結果を示すデータに対する応答がある。
【００４１】
＜センサー２０６の検出結果を示すデータ＞
図３は、センサー２０６の検出結果を示すデータの一例を示す説明図である。図３に示すように、データ３００は、フラグ（符号３０１の領域）と、発信元ＩＤ（符号３０２の領域）と、データサイズ（符号３０３の領域）と、データ内容（符号３０４の領域）と、を含む。
【００４２】
フラグは、当該フラグを含む信号が、発信元から発信されたデータ３００であるか、データ３００に対する応答であるか、を識別する情報である。例えば、フラグは、当該フラグを含む信号が発信元から発信されたデータ３００である場合には「０」となる。発信元ＩＤは、信号の発信元のセンサーノード１０１の識別子である。データサイズは、データ内容のビット長やバイト長である。データ内容は、データ３００の内容であり、例えば、センサー２０６の検出結果である。
【００４３】
＜データ３００に対する応答＞
図４は、データ３００に対する応答の一例を示す説明図である。図４に示すように、応答４００は、フラグ（符号４０１の領域）と、発信元ＩＤ（符号４０２の領域）と、宛先ＩＤ（符号４０３の領域）と、起動時間（符号４０４の領域）と、を含む。
【００４４】
当該フラグを含む信号が、発信元から発信されたデータ３００であるか、データ３００に対する応答であるか、を識別する情報である。例えば、フラグは、当該フラグを含む信号がデータ３００に対する応答である場合には「１」となる。発信元ＩＤは、信号の発信元のセンサーノード１０１の識別子である。宛先ＩＤは、データ３００の発信元であって、応答４００の宛先であるセンサーノード１０１の識別子である。起動時間は、応答４００を発信するセンサーノード１０１の起動時間を示す情報である。
【００４５】
（通信装置として機能するセンサーノード１０１の機能的構成例）
次に、図５および図６を用いて、通信装置として機能するセンサーノード１０１の機能的構成例について説明する。以降では、発信側の通信装置としての機能と受信側の通信装置としての機能とを分けて説明するが、センサーノード１０１は発信側の通信装置としての機能と受信側の通信装置としての機能とを併せて有してもよい。
【００４６】
図５は、発信側の通信装置として機能するセンサーノード１０１の機能的構成例を示すブロック図である。発信側のセンサーノード１０１は、記憶部５０１と、第１の発信部５０２と、検出部５０３と、第２の発信部５０４と、受信部５０５と、格納部５０６と、を含む。
【００４７】
記憶部５０１は、受信部５０５によって他通信装置の起動にかかる時間を示す情報が受信される前には、他通信装置の最長起動時間以上の待機時間を記憶する。ここで、通信装置とは、例えば、センサーノード１０１である。起動にかかる時間とは、センサーノード１０１が起動指示を受信してから、データの受信準備が完了するまでの時間であって、例えば、上述した起動時間である。待機時間とは、他のセンサーノード１０１がＭＣＵ２０１を起動してデータ３００の受信処理が可能になるまでの起動時間以上の時間である。最長起動時間とは、例えば、センサーノード１０１の製造ばらつき上での最長の起動時間である。
【００４８】
これにより、検出部５０３は、通信圏内の他のセンサーノード１０１が当該センサーノード１０１のＭＣＵ２０１を起動終了してデータ３００の受信準備が完了するまでの待機時間が経過したことを検出することができる。記憶部５０１は、例えば、図２に示したＭＣＵ２０１内のレジスタ、ＲＯＭ２０３、ＲＡＭ２０２、不揮発メモリ２０４などの記憶装置により、その機能を実現する。
【００４９】
第１の発信部５０２は、通信圏内に起動指示を発信する。起動指示とは、上述したように、他のセンサーノード１０１を起動させる所定の周波数の電波であって、センサーノード１０１の起動指示受信回路２０８によって受信可能な周波数の電波である。これにより、第１の発信部５０２は、通信圏内の他のセンサーノード１０１に、当該センサーノード１０１のＭＣＵ２０１を起動するトリガを与えることができる。第１の発信部５０２は、例えば、図２に示したＲＯＭ２０３、ＲＡＭ２０２、不揮発メモリ２０４などの記憶装置に記憶されたプログラムをＭＣＵ２０１に実行させることにより、および、起動指示発信回路２０７により、その機能を実現する。
【００５０】
検出部５０３は、第１の発信部５０２によって起動指示が発信されてから、記憶部５０１に格納された待機時間が経過したことを検出する。検出部５０３は、例えば、第１の発信部５０２によって起動指示が発信された時点において、タイマー２０５によって計測された経過時間を取得する。次に、検出部５０３は、タイマー２０５によって計測される経過時間を監視し、タイマー２０５によって計測される経過時間が、取得した経過時間と待機時間との和以上になった場合に、待機時間が経過したことを検出する。
【００５１】
これにより、検出部５０３は、通信圏内の他のセンサーノード１０１が当該センサーノード１０１のＭＣＵ２０１を起動終了してデータ３００の受信準備が完了したことを検出することができる。検出部５０３は、例えば、図２に示したＲＯＭ２０３、ＲＡＭ２０２、不揮発メモリ２０４などの記憶装置に記憶されたプログラムをＭＣＵ２０１に実行させることにより、および、タイマー２０５により、その機能を実現する。
【００５２】
第２の発信部５０４は、検出部５０３によって待機時間が経過したことが検出された場合に、通信圏内にデータ３００を発信する。これにより、通信圏内の他のセンサーノード１０１は、第２の発信部５０４によって発信されたデータ３００を受信することができる。第２の発信部５０４は、例えば、図２に示したＲＯＭ２０３、ＲＡＭ２０２、不揮発メモリ２０４などの記憶装置に記憶されたプログラムをＭＣＵ２０１に実行させることにより、および、無線通信回路２０９により、その機能を実現する。
【００５３】
受信部５０５は、通信圏内の他通信装置を起動させる起動指示を発信した場合に他通信装置の起動にかかる時間を示す情報を他通信装置から受信する。受信部５０５は、例えば、図４に示した応答４００を受信し、応答４００の符号４０４の領域から起動時間を抽出する。
【００５４】
これにより、格納部５０６は、通信圏内の他のセンサーノード１０１の起動時間を用いて待機時間を調整することができる。受信部５０５は、例えば、図２に示したＲＯＭ２０３、ＲＡＭ２０２、不揮発メモリ２０４などの記憶装置に記憶されたプログラムをＭＣＵ２０１に実行させることにより、および、無線通信回路２０９により、その機能を実現する。
【００５５】
格納部５０６は、受信部５０５によって受信された情報が示す時間に基づく待機時間を記憶部５０１に格納する。格納部５０６は、例えば、受信部５０５によって応答４００の中から抽出された起動時間を、待機時間として記憶部５０１に格納する。これにより、格納部５０６は、待機時間として、センサーノード１０１の製造ばらつき上の最長起動時間より短い他のセンサーノード１０１の起動時間を採用して、待機時間を短縮することができる。また、検出部５０３は、待機時間が短縮されても、他のセンサーノード１０１がデータの受信準備を完了するまで待つことができる。
【００５６】
また、格納部５０６は、例えば、受信部５０５によって応答４００の中から抽出された起動時間と、経年劣化等による起動時間の変動に対応するための所定時間と、の和を、待機時間として記憶部５０１に格納してもよい。これにより、検出部５０３は、他のセンサーノード１０１の起動時間が経年劣化等により長くなった場合でも、他のセンサーノード１０１がデータの受信準備を完了するまで待つことができる。
【００５７】
また、格納部５０６は、受信部５０５によって複数の他通信装置から情報が受信された場合に、受信された各々の情報が示す時間の中で最長の時間に基づく待機時間を記憶部５０１に格納してもよい。これにより、第２の発信部５０４は、通信圏内のセンサーノード１０１の全てが起動してからデータ３００を発信することができる。
【００５８】
また、格納部５０６は、受信部５０５によって複数の他通信装置から情報が受信された場合に、受信された各々の情報が示す時間の中で所定番目に短い時間に基づく待機時間を記憶部５０１に格納してもよい。ここで、所定番目とは、例えば、センサーネットワーク１００の構成に使用するセンサーノード１０１の個数番目を示す。センサーネットワーク１００の構成に使用するセンサーノード１０１の個数は、例えば、センサーネットワーク１００の開発者によって決定される。
【００５９】
これにより、第２の発信部５０４は、通信圏内のセンサーノード１０１のうち、センサーネットワーク１００の構成に使用する個数のセンサーノード１０１が起動した時点で、データ３００を発信することができる。従って、格納部５０６は、待機時間を短縮することができる。
【００６０】
また、格納部５０６は、第２の発信部５０４によって発信されたデータ３００に対する他通信装置からの応答４００が所定数以下である場合に、記憶部５０１に記憶された待機時間を延長してもよい。所定数とは、例えば、センサーネットワーク１００の構成に使用するセンサーノード１０１の個数である。所定数とは、例えば、センサーネットワーク１００の開発者によって決定される。また、所定数は、例えば、前回にデータ３００の通信を行ったセンサーノード１０１の個数であり、可変であってもよい。
【００６１】
これにより、センサーノード１０１は、通信圏内のセンサーノード１０１が起動する前に第２の発信部５０４によってデータ３００を発信してしまった場合に、待機時間を延長することができる。格納部５０６は、例えば、図２に示したＲＯＭ２０３、ＲＡＭ２０２、不揮発メモリ２０４などの記憶装置に記憶されたプログラムをＭＣＵ２０１に実行させることにより、その機能を実現する。
【００６２】
以降では、発信側のセンサーノード１０１は、格納部５０６によって記憶部５０１に格納された待機時間を用いて、データを発信することになる。これにより、発信側のセンサーノード１０１は、通信圏内の他のセンサーノード１０１がデータ３００の受信準備を完了するまでの適切な待機時間を用いてデータを発信することができる。従って、発信側のセンサーノード１０１は、待機時間が低減されたことにより、消費電力を低減することができる。
【００６３】
図６は、受信側の通信装置として機能するセンサーノード１０１の機能的構成例を示すブロック図である。受信側のセンサーノード１０１は、受信部６０１と、起動部６０２と、計測部６０３と、送信部６０４と、を含む。
【００６４】
受信部６０１は、起動指示を発信してから所定の待機時間経過後にデータ３００を発信する発信元から起動指示を受信する。発信元とは、上述した発信側の機能を有する通信装置であって、例えば、センサーノード１０１である。受信部６０１は、例えば、他のセンサーノード１０１から起動指示を受信する。これにより、起動部６０２は、プロセッサを起動するトリガを得ることができる。受信部６０１は、例えば、図２に示した起動指示受信回路２０８により、その機能を実現する。
【００６５】
起動部６０２は、受信部６０１によって起動指示が受信された場合に自装置内のプロセッサを起動する。プロセッサとは、データ３００の受信処理を実行する装置であって、例えば、センサーノード１０１のＭＣＵ２０１である。起動部６０２は、例えば、受信部６０１によって起動指示が受信された場合にＰＭＵ２１３にＭＣＵ２０１への電力供給を開始させる要求を送信する。これにより、ＭＣＵ２０１は起動することができる。起動部６０２は、例えば、図２に示した起動指示受信回路２０８およびＰＭＵ２１３により、その機能を実現する。
【００６６】
計測部６０３は、受信部６０１によって起動指示が受信されてから、起動部６０２によって起動されたプロセッサによるデータ３００の受信処理が可能になるまでの時間を計測する。受信部６０１によって起動指示が受信されてから、起動部６０２によって起動されたプロセッサによるデータ３００の受信処理が可能になるまでの時間とは、例えば、上述した起動時間である。
【００６７】
これにより、計測部６０３は、実際の起動時間を取得することができる。計測部６０３は、例えば、図２に示したＲＯＭ２０３、ＲＡＭ２０２、不揮発メモリ２０４などの記憶装置に記憶されたプログラムをＭＣＵ２０１に実行させることにより、および、タイマー２０５により、その機能を実現する。
【００６８】
送信部６０４は、計測部６０３によって計測された時間を示す情報を発信元に送信する。送信部６０４は、例えば、発信側の機能を有するセンサーノード１０１に対して、自装置の起動時間を含む図４の応答４００を送信する。
【００６９】
これにより、発信側のセンサーノード１０１は、上述した受信部５０５および格納部５０６によって、待機時間を調整することができる。送信部６０４は、例えば、図２に示したＲＯＭ２０３、ＲＡＭ２０２、不揮発メモリ２０４などの記憶装置に記憶されたプログラムをＭＣＵ２０１に実行させることにより、および、無線通信回路２０９により、その機能を実現する。
【００７０】
（センサーノード１０１間の通信例）
次に、図７〜図２０を用いて、センサーノード１０１間の通信例について説明する。図７〜図１６は、センサーノード１０１間の初回の通信例を示す説明図である。図１７〜図２０は、センサーノード１０１間の２回目以降の通信例を示す説明図である。ここで、図７〜図２０では、センサーノード１０１−１を発信側の機能を有する通信装置とし、センサーノード１０１−２を受信側の機能を有する通信装置とする。また、図７〜図２０において、センサーノード１０１−１とセンサーノード１０１−２とは互いに通信圏内に存在するとする。
【００７１】
以降では、図２に示したセンサーノード１０１内部の構成について、センサーノード１０１−１側では接尾語「−１」を付与し、センサーノード１０１−２側では接尾語「−２」を付与し、各々を識別する。例えば、ＭＣＵ２０１−１はセンサーノード１０１−１側のＭＣＵ２０１を示し、ＭＣＵ２０１−２はセンサーノード１０１−２側のＭＣＵ２０１を示す。
【００７２】
＜初回の通信例＞
まず、図７〜図１６を用いて、初回の通信例について説明する。ここでは、センサーノード１０１−１は、ＭＣＵ２０１−１やＲＯＭ２０３−１等への電力供給を停止しているとする。センサーノード１０１−２は、同様に、ＭＣＵ２０１−２やＲＯＭ２０３−２等への電力供給を停止しているとする。
【００７３】
図７において、（１１）センサー２０６−１は、所定の変位量を検出してイベントを発生する。センサー２０６−１は、例えば、検出した温度が閾値を超えた場合にイベントを発生する。（１２）センサー２０６−１は、イベントを発生すると、電力供給の開始要求をＰＭＵ２１３−１に送信する。次に、図８の説明に移行する。
【００７４】
図８において、（１３）ＰＭＵ２１３−１は、電力供給の開始要求を受信すると、ＭＣＵ２０１−１やＲＯＭ２０３−１等への電力供給を開始する。これにより、ＭＣＵ２０１−１は起動を開始する。また、タイマー２０５−１は経過時間の計測を開始する。次に、図９の説明に移行する。
【００７５】
図９において、ＭＣＵ２０１−１は、起動してデータ３００の受信準備を完了すると、発生したイベントに応じた処理を実行する。ここで、ＭＣＵ２０１−１は、処理結果を、通信圏内の他のセンサーノード１０１を介して、親ノード１０２にリレー転送することになる。
【００７６】
（１４）そのために、ＭＣＵ２０１−１は、通信圏内のセンサーノード１０１を起動させる起動指示の発信要求を、起動指示発信回路２０７−１に送信する。（１５）起動指示発信回路２０７−１は、発信要求を受信すると、アンテナ２１０−１を介して起動指示を通信圏内に発信する。
【００７７】
（１６）また、ＭＣＵ２０１−１は、発信要求を送信すると、ＲＯＭ２０３−１から、センサーノード１０１の製造ばらつき上の最長起動時間である待機時間を読み出す。（１７）また、ＭＣＵ２０１−１は、タイマー２０５−１から発信要求を送信した時点での経過時間を取得する。次に、図１０の説明に移行する。
【００７８】
図１０において、（１８）起動指示受信回路２０８−２は、アンテナ２１０−２を介して、センサーノード１０１−１が発信した起動指示を受信する。（１９）起動指示受信回路２０８−２は、起動指示を受信すると、ＰＭＵ２１３−２に電力供給の開始要求を送信する。次に、図１１の説明に移行する。
【００７９】
図１１において、（２０）ＰＭＵ２１３−２は、電力供給の開始要求を受信すると、ＭＣＵ２０１−２やＲＯＭ２０３−２等への電力供給を開始する。これにより、ＭＣＵ２０１−２は起動を開始する。また、タイマー２０５−２は経過時間の計測を開始する。次に、図１２の説明に移行する。
【００８０】
図１２において、（２１）ＭＣＵ２０１−２は、起動を完了した時点でタイマー２０５−２により計測された経過時間を取得する。（２２）次に、ＭＣＵ２０１−２は、計測された経過時間を、ＭＣＵ２０１−２の起動時間として、不揮発メモリ２０４−２に格納しておく。次に、図１３の説明に移行する。
【００８１】
図１３において、（２３）ＭＣＵ２０１−１は、タイマー２０５−１により計測される経過時間を取得する。次に、ＭＣＵ２０１−１は、取得した経過時間と（１７）で取得した発信要求を送信した時点での経過時間とを用いて、（１６）で読み出した待機時間が経過したか否かを判定する。ここでは、待機時間が経過したとする。
【００８２】
（２４）ＭＣＵ２０１−１は、待機時間が経過したと判定すると、処理結果の発信要求を、無線通信回路２０９−１に送信する。（２５）無線通信回路２０９−１は、発信要求を受信すると、アンテナ２１０−１を介して処理結果を通信圏内に発信する。次に、図１４の説明に移行する。
【００８３】
図１４において、（２６）無線通信回路２０９−２は、アンテナ２１０−２を介して、センサーノード１０１−１が発信した処理結果を受信する。（２７）無線通信回路２０９−２は、処理結果を受信すると、処理結果をＭＣＵ２０１−２に送信する。次に、図１５の説明に移行する。
【００８４】
図１５において、（２８）ＭＣＵ２０１−２は、処理結果を受信すると、（２２）で格納しておいたＭＣＵ２０１−２の起動時間を不揮発メモリ２０４−２から読み出す。（２９）次に、ＭＣＵ２０１−２は、読み出したＭＣＵ２０１−２の起動時間を含む応答４００を生成する。そして、ＭＣＵ２０１−２は、生成した応答４００の発信要求を、無線通信回路２０９−２に送信する。（３０）無線通信回路２０９−２は、発信要求を受信すると、アンテナ２１０−２を介して応答４００を通信圏内に発信する。次に、図１６の説明に移行する。
【００８５】
図１６において、（３１）無線通信回路２０９−１は、アンテナ２１０−１を介して、センサーノード１０１−２が発信した応答４００を受信する。（３２）無線通信回路２０９−１は、応答４００を受信すると、応答４００をＭＣＵ２０１−１に送信する。
【００８６】
（３３）ＭＣＵ２０１−１は、応答４００を受信すると、応答４００の中からＭＣＵ２０１−２の起動時間を抽出する。次に、ＭＣＵ２０１−１は、抽出した起動時間を、新たな待機時間として不揮発メモリ２０４−１に格納しておく。このようにして、センサーノード１０１は、通信圏内の他のセンサーノード１０１にデータ３００を受信させ、データ３００の通信を行う。また、（３１）において複数の応答が受信された場合については、図２１および図２２を用いて、または、図２７〜図２９を用いて後述する。
【００８７】
その後、センサーノード１０１−１は、データ３００の通信が終了すると、ＭＣＵ２０１−１やＲＯＭ２０３−１等への電力供給を停止する。センサーノード１０１−２は、同様に、データ３００の通信が終了すると、ＭＣＵ２０１−２やＲＯＭ２０３−２等への電力供給を停止する。これにより、センサーノード１０１は、消費電力を低減することができる。
【００８８】
＜２回目以降の通信例＞
次に、図１７〜図２０を用いて、２回目以降の通信例について説明する。ここでは、センサーノード１０１−１は、ＭＣＵ２０１−１やＲＯＭ２０３−１等への電力供給を停止しているとする。センサーノード１０１−２は、同様に、ＭＣＵ２０１−２やＲＯＭ２０３−２等への電力供給を停止しているとする。
【００８９】
図１７において、（３４）センサー２０６−１は、（１１）と同様に、再びイベントを発生したとする。（３５）センサー２０６−１は、イベントを発生すると、電力供給の開始要求をＰＭＵ２１３−１に送信する。次に、図１８の説明に移行する。
【００９０】
図１８において、（３６）ＰＭＵ２１３−１は、電力供給の開始要求を受信すると、ＭＣＵ２０１−１やＲＯＭ２０３−１等への電力供給を開始する。これにより、ＭＣＵ２０１−１は起動を開始する。また、タイマー２０５−１は経過時間の計測を開始する。次に、図１９の説明に移行する。
【００９１】
図１９において、ＭＣＵ２０１−１は、起動してデータ３００の受信準備を完了すると、発生したイベントに応じた処理を実行する。ここで、ＭＣＵ２０１−１は、処理結果を、通信圏内の他のセンサーノード１０１を介して、親ノード１０２にリレー転送することになる。
【００９２】
（３７）そのために、通信圏内のセンサーノード１０１を起動させる起動指示の発信要求を、起動指示発信回路２０７−１に送信する。（３８）起動指示発信回路２０７−１は、発信要求を受信すると、アンテナ２１０−１を介して起動指示を通信圏内に発信する。
【００９３】
（３９）また、ＭＣＵ２０１−１は、発信要求を送信すると、不揮発メモリ２０４−１から（３３）で格納しておいたＭＣＵ２０１−２の起動時間を読み出す。次に、ＭＣＵ２０１−１は、読み出した起動時間を待機時間として設定する。（４０）また、ＭＣＵ２０１−１は、タイマー２０５−１から発信要求を送信した時点での経過時間を取得する。
【００９４】
ここで、センサーノード１０１−２は、図１０〜図１２と同様に、（３８）で発信した起動指示を受信して、ＭＣＵ２０１−２を起動させているとする。次に、図２０の説明に移行する。
【００９５】
図２０において、（４１）ＭＣＵ２０１−１は、タイマー２０５−１により計測される経過時間を取得する。次に、ＭＣＵ２０１−１は、取得した経過時間と（４０）で取得した発信要求を送信した時点での経過時間とを用いて、（３９）で設定した待機時間が経過したか否かを判定する。ここでは、待機時間が経過したとする。
【００９６】
（４２）ＭＣＵ２０１−１は、待機時間が経過したと判定すると、処理結果の発信要求を、無線通信回路２０９−１に送信する。（４３）無線通信回路２０９−１は、発信要求を受信すると、アンテナ２１０−１を介して処理結果を通信圏内に発信する。
【００９７】
以降、図１４、図１５と同様にして、センサーノード１０１−２は、応答４００を発信する。また、図１６と同様にして、センサーノード１０１−１は、応答４００を受信する。このようにして、センサーノード１０１は、通信圏内の他のセンサーノード１０１にデータ３００を受信させ、データ３００の通信を行う。その後、センサーノード１０１−１は、データ３００の通信が終了すると、ＭＣＵ２０１−１やＲＯＭ２０３−１等への電力供給を停止する。センサーノード１０１−２は、同様に、データ３００の通信が終了すると、ＭＣＵ２０１−２やＲＯＭ２０３−２等への電力供給を停止する。
【００９８】
これにより、センサーノード１０１−１は、センサーノード１０１−２が受信準備を完了した直後にデータ３００を発信することができ、待機時間を削減することができる。また、センサーノード１０１−１は、待機時間を削減することにより、ＭＣＵ２０１−１やＲＯＭ２０３−１等へ電力供給する時間を短縮することができ、消費電力を低減することができる。
【００９９】
また、センサーノード１０１−２は、起動指示に対する応答を送信しなくてもよいため、応答の発信にかかる消費電力を削減することができる。また、センサーノード１０１−１は、待機時間を削減することにより、発生したイベントに対する処理時間を短縮することができる。
【０１００】
センサーノード１０１は、既にＭＣＵ２０１が起動している場合に起動指示を受信した場合、タイマー２０５による経過時間の計測をしなくてもよく、不揮発メモリ２０４に記憶した起動時間を発信すればよい。
【０１０１】
（複数のセンサーノード１０１から応答４００を受信した場合の待機時間の設定例１）
次に、図２１および図２２を用いて、センサーノード１０１が、複数のセンサーノード１０１から応答４００を受信した場合の待機時間の設定例１について説明する。
【０１０２】
図２１および図２２は、複数のセンサーノード１０１から応答４００を受信した場合の待機時間の設定例１を示す説明図である。図２１において、（５１）センサーノード１０１−１は、通信圏内に起動指示を発信する。これにより、センサーノード１０１−２〜１０１−６は、起動指示を受信する。（５２）次に、センサーノード１０１−１は、通信圏内にデータ３００を発信する。これにより、センサーノード１０１−２〜１０１−６は、データ３００を受信する。次に、図２２の説明に移行する。
【０１０３】
図２２において、（５３）センサーノード１０１−２は、起動時間「３０ｍｓ（ｍｉｌｌｉ  ｓｅｃｏｎｄ）」を含む応答４００をセンサーノード１０１−１に送信する。（５４）センサーノード１０１−１は、センサーノード１０１−２から送信された応答４００を受信し、受信した応答４００の中から起動時間「３０ｍｓ」を抽出する。そして、センサーノード１０１−１は、抽出した起動時間「３０ｍｓ」を待機時間として採用し、不揮発メモリ２０４に格納する。
【０１０４】
（５５）また、センサーノード１０１−３は、起動時間「３２ｍｓ」を含む応答４００をセンサーノード１０１−１に送信する。（５６）センサーノード１０１−１は、センサーノード１０１−３から送信された応答４００を受信し、受信した応答４００の中から起動時間「３２ｍｓ」を抽出する。
【０１０５】
次に、センサーノード１０１−１は、不揮発メモリ２０４に格納された待機時間「３０ｍｓ」と抽出した起動時間「３２ｍｓ」とを比較する。そして、センサーノード１０１−１は、比較した結果、現在の待機時間より起動時間が長いため、待機時間「３０ｍｓ」を「３２ｍｓ」に更新して、不揮発メモリ２０４に格納する。
【０１０６】
（５７）また、センサーノード１０１−４は、起動時間「３５ｍｓ」を含む応答４００をセンサーノード１０１−１に送信する。（５８）センサーノード１０１−１は、（５５）と同様にして、起動時間「３５ｍｓ」を抽出し、現在の待機時間より起動時間が長いため、待機時間「３２ｍｓ」を「３５ｍｓ」に更新して、不揮発メモリ２０４に格納する。
【０１０７】
（５９）また、センサーノード１０１−５は、起動時間「３９ｍｓ」を含む応答４００をセンサーノード１０１−１に送信する。（６０）センサーノード１０１−１は、（５５）と同様にして、起動時間「３９ｍｓ」を抽出し、現在の待機時間より起動時間が長いため、待機時間「３５ｍｓ」を「３９ｍｓ」に更新して、不揮発メモリ２０４に格納する。
【０１０８】
（６１）また、センサーノード１０１−６は、起動時間「３８ｍｓ」を含む応答４００をセンサーノード１０１−１に送信する。（６２）センサーノード１０１−１は、センサーノード１０１−６から送信された応答４００を受信し、受信した応答４００の中から起動時間「３８ｍｓ」を抽出する。次に、センサーノード１０１−１は、不揮発メモリ２０４に格納された待機時間「３９ｍｓ」と抽出した起動時間「３８ｍｓ」とを比較する。そして、センサーノード１０１−１は、比較した結果、現在の待機時間より起動時間が短いため、待機時間「３９ｍｓ」を更新しない。
【０１０９】
これにより、センサーノード１０１−１は、通信圏内のセンサーノード１０１−２〜１０１−６が起動して受信準備を完了するまでの待機時間を決定して、不揮発メモリ２０４に記憶しておくことができる。結果として、センサーノード１０１−１は、決定した待機時間を用いてデータ３００を発信することにより、データ３００をセンサーノード１０１−２〜１０１−６に受信させることができる。
【０１１０】
（設定例１を採用した場合のデータ発信処理）
次に、図２３を用いて、設定例１を採用した場合のセンサーノード１０１によるデータ発信処理について説明する。データ発信処理は、図５に示した発信側の機能を有するセンサーノード１０１が実行する処理であり、例えば、図７〜図２０に示したセンサーノード１０１−１により実行される。
【０１１１】
図２３は、設定例１を採用した場合のセンサーノード１０１によるデータ発信処理の一例を示すフローチャートである。図２３において、まず、センサーノード１０１は、起動指示を発信する（ステップＳ２３０１）。次に、センサーノード１０１は、図２４の処理により待機時間を設定する（ステップＳ２３０２）。
【０１１２】
そして、センサーノード１０１は、待機時間が経過したか否かを判定する（ステップＳ２３０３）。ここで、待機時間が経過していない場合（ステップＳ２３０３：Ｎｏ）、センサーノード１０１は、ステップＳ２３０３の処理に戻り、待機時間の経過を待つ。
【０１１３】
一方、待機時間が経過した場合（ステップＳ２３０３：Ｙｅｓ）、センサーノード１０１は、データ３００を発信する（ステップＳ２３０４）。そして、センサーノード１０１は、データ発信処理を終了する。これにより、センサーノード１０１は、通信圏内の他のセンサーノード１０１を起動させ、他のセンサーノード１０１の受信準備の完了後にデータ３００の発信をすることができる。結果として、センサーノード１０１は、通信圏内の他のセンサーノード１０１にデータ３００を受信させることができる。
【０１１４】
（設定例１を採用した場合の待機時間設定処理）
次に、図２４を用いて、設定例１を採用した場合のセンサーノード１０１による待機時間設定処理について説明する。待機時間設定処理は、ステップＳ２３０２において実行される処理である。
【０１１５】
図２４は、設定例１を採用した場合のセンサーノード１０１による待機時間設定処理の一例を示すフローチャートである。図２４において、まず、センサーノード１０１は、不揮発メモリ２０４から待機時間を探索する（ステップＳ２４０１）。次に、センサーノード１０１は、待機時間が探索できたか否かを判定する（ステップＳ２４０２）。
【０１１６】
ここで、探索できなかった場合（ステップＳ２４０２：Ｎｏ）、センサーノード１０１は、ＲＯＭ２０３からセンサーノード１０１の最長起動時間である待機時間を探索し（ステップＳ２４０３）、ステップＳ２４０４の処理に移行する。
【０１１７】
一方、探索できた場合（ステップＳ２４０２：Ｙｅｓ）、センサーノード１０１は、探索した待機時間を設定する（ステップＳ２４０４）。そして、センサーノード１０１は、待機時間設定処理を終了する。これにより、センサーノード１０１は、初回の通信時および２回目以降の通信時に待機時間を設定することができる。
【０１１８】
（設定例１を採用した場合のデータ受信処理）
次に、図２５および図２６を用いて、設定例１を採用した場合のセンサーノード１０１によるデータ受信処理について説明する。データ受信処理は、図５に示した発信側の機能を有するセンサーノード１０１、および図６に示した受信側の機能を有するセンサーノード１０１が実行する処理である。データ受信処理は、例えば、図７〜図２０に示したセンサーノード１０１−１およびセンサーノード１０１−２により実行される。
【０１１９】
図２５および図２６は、設定例１を採用した場合のセンサーノード１０１によるデータ受信処理の一例を示すフローチャートである。図２５において、まず、センサーノード１０１は、信号を受信する（ステップＳ２５０１）。次に、センサーノード１０１は、受信した信号の中からフラグを抽出する（ステップＳ２５０２）。
【０１２０】
そして、センサーノード１０１は、抽出したフラグが応答４００を示すか否かを判定する（ステップＳ２５０３）。ここで、応答４００を示す場合（ステップＳ２５０３：Ｙｅｓ）、センサーノード１０１は、図２６のステップＳ２６０１の処理に移行する。
【０１２１】
一方、応答４００を示さない場合（ステップＳ２５０３：Ｎｏ）、センサーノード１０１は、受信した信号がデータ３００であると特定し、データ３００の中から発信元ＩＤを抽出する（ステップＳ２５０４）。
【０１２２】
次に、センサーノード１０１は、受信したデータ３００を処理する（ステップＳ２５０５）。データ３００の処理とは、例えば、データ３００のリレー転送の処理でもよいし、データ３００のデータ内容の解析処理でもよい。また、データ３００の処理とは、例えば、外部装置としてのサーバーへのデータ３００のアップロード処理でもよいし、外部装置としての利用者端末に対するデータ３００の通知処理でもよい。
【０１２３】
そして、センサーノード１０１は、抽出した発信元ＩＤが示すセンサーノード１０１に対して、自装置の起動時間を含む応答４００を送信する（ステップＳ２５０６）。次に、センサーノード１０１は、データ受信処理を終了する。上述したステップＳ２５０１〜ステップＳ２５０６を経由する処理により、センサーノード１０１は、他のセンサーノード１０１から発信されたデータ３００を処理し、当該データ３００に対する応答４００を発信することができる。
【０１２４】
次に、図２６の説明に移行する。図２６において、センサーノード１０１は、受信した信号が応答４００であると特定し、応答４００の中から宛先ＩＤを抽出する（ステップＳ２６０１）。次に、センサーノード１０１は、宛先ＩＤが自装置のＩＤであるか否かを判定する（ステップＳ２６０２）。ここで、自装置のＩＤでない場合（ステップＳ２６０２：Ｎｏ）、センサーノード１０１は、データ受信処理を終了する。
【０１２５】
一方、自装置のＩＤである場合（ステップＳ２６０２：Ｙｅｓ）、センサーノード１０１は、受信した応答４００の中から起動時間を抽出する（ステップＳ２６０３）。次に、センサーノード１０１は、不揮発メモリ２０４から待機時間を探索する（ステップＳ２６０４）。
【０１２６】
そして、センサーノード１０１は、探索できたか否かを判定する（ステップＳ２６０５）。ここで、探索できなかった場合（ステップＳ２６０５：Ｎｏ）、センサーノード１０１は、ステップＳ２６０８の処理に移行する。
【０１２７】
一方、探索できた場合（ステップＳ２６０５：Ｙｅｓ）、センサーノード１０１は、探索された待機時間を取得する（ステップＳ２６０６）。次に、センサーノード１０１は、取得した待機時間が抽出した起動時間より短いか否かを判定する（ステップＳ２６０７）。ここで、短くない場合（ステップＳ２６０７：Ｎｏ）、センサーノード１０１は、データ受信処理を終了する。
【０１２８】
一方、短い場合（ステップＳ２６０７：Ｙｅｓ）、センサーノード１０１は、待機時間を抽出した起動時間で上書きして更新する（ステップＳ２６０８）。次に、センサーノード１０１は、データ受信処理を終了する。上述したステップＳ２６０１〜ステップＳ２６０８を経由する処理により、センサーノード１０１は、自装置から発信したデータ３００に対する応答４００を処理し、待機時間を更新することができる。
【０１２９】
（複数のセンサーノード１０１から応答４００を受信した場合の待機時間の設定例２）
次に、図２７〜図２９を用いて、センサーノード１０１が、複数のセンサーノード１０１から応答４００を受信した場合の待機時間の設定例２について説明する。
【０１３０】
図２７は、センサーノード１０１の密集度合いを示す説明図である。図２７に示すように、センサーネットワーク１００において、センサーノード１０１はランダムに設置される。そのため、設置場所によって、センサーノード１０１の密集度合いにばらつきが生じることがある。
【０１３１】
例えば、センサーノード１０１−１の通信圏２７０１内には５つのセンサーノード１０１（センサーノード１０１−２〜１０１−６）が存在する。また、センサーノード１０１−７の通信圏２７０２内には３つのセンサーノード１０１（センサーノード１０１−８〜１０１−１０）が存在する。
【０１３２】
ここで、センサーノード１０１は、通信圏２７０１内のセンサーノード１０１全てにデータ３００を受信させなくてもよい場合がある。例えば、センサーノード１０１−１は、通信圏２７０１内の５つのセンサーノード１０１のうち、３つのセンサーノード１０１にデータ３００を受信させればよい場合がある。この場合、センサーノード１０１−１は、通信圏２７０１内の５つのセンサーノード１０１が受信準備を完了するまで待機しなくても、３つのセンサーノード１０１が受信準備を完了するまで待機すれば、データ３００を発信することができる。
【０１３３】
このため、センサーノード１０１−１は、通信圏２７０１内のセンサーノード１０１の起動時間のうち３番目に短い起動時間を待機時間として採用することにより、３つのセンサーノード１０１が受信準備を完了するまで待機するようにしてもよい。この場合、センサーノード１０１−１は、通信圏２７０１内のセンサーノード１０１の起動時間のうち最長の起動時間を待機時間として採用した場合より、待機時間を短縮することができる。
【０１３４】
ここで、センサーノード１０１は、例えば、通信圏２７０１内のセンサーノード１０１の起動時間のうち３番目に短い起動時間を待機時間とて採用するために、図２８に示す起動時間テーブルを使用する。
【０１３５】
図２８は、起動時間テーブルの記憶内容の一例を示す説明図である。起動時間テーブルは、所定数のセンサーノード１０１が受信準備を完了するまでの待機時間を採用するために、所定数のセンサーノード１０１の起動時間を記憶する。起動時間テーブルは、例えば、ＲＯＭ２０３やＲＡＭ２０２や不揮発メモリ２０４等の記憶装置によって実現される。
【０１３６】
図２８に示すように、起動時間テーブル２８００は、ノードＩＤ項目に関連付けて、起動時間項目を有し、センサーノード１０１ごとに各項目に情報が設定されることにより、所定数以内のレコード（図２８の例では、３つのレコード２８０１〜２８０３）を構成する。
【０１３７】
ノードＩＤ項目には、センサーノード１０１の識別子が記憶される。起動時間項目には、ノードＩＤ項目の識別子が示すセンサーノード１０１の起動時間が記憶される。例えば、レコード２８０１は、センサーノード１０１−２の起動時間が「３０ｍｓ」であることを示す情報である。
【０１３８】
図２９は、起動時間テーブル２８００を使用した待機時間の設定例２を示す説明図である。図２９において、センサーノード１０１−１は、図２１と同様に、通信圏内に起動指示を発信した後、データ３００を発信しているとする。
【０１３９】
（７１）ここで、センサーノード１０１−２は、起動時間「３０ｍｓ」を含む応答４００をセンサーノード１０１−１に送信する。（７２）センサーノード１０１−１は、センサーノード１０１−２から送信された応答４００を受信し、受信した応答４００の中から起動時間「３０ｍｓ」を抽出する。そして、センサーノード１０１−１は、応答４００の発信元のセンサーノード１０１−２のＩＤ「１０１−２」と、抽出した起動時間「３０ｍｓ」と、を関連付けたレコードを起動時間テーブル２８００に記憶する。
【０１４０】
（７３）また、センサーノード１０１−３は、起動時間「３２ｍｓ」を含む応答４００をセンサーノード１０１−１に送信する。（７４）センサーノード１０１−１は、（７２）と同様に、応答４００の発信元のセンサーノード１０１−３のＩＤ「１０１−３」と、抽出した起動時間「３２ｍｓ」と、を関連付けたレコードを起動時間テーブル２８００に記憶する。
【０１４１】
（７５）また、センサーノード１０１−４は、起動時間「３５ｍｓ」を含む応答４００をセンサーノード１０１−１に送信する。（７６）センサーノード１０１−１は、（７２）と同様に、応答４００の発信元のセンサーノード１０１−４のＩＤ「１０１−４」と、抽出した起動時間「３５ｍｓ」と、を関連付けたレコードを起動時間テーブル２８００に記憶する。
【０１４２】
（７７）また、センサーノード１０１−５は、起動時間「３９ｍｓ」を含む応答４００をセンサーノード１０１−１に送信する。（７８）センサーノード１０１−１は、センサーノード１０１−５から送信された応答４００を受信し、受信した応答４００の中から起動時間「３９ｍｓ」を抽出する。ここで、センサーノード１０１−１は、起動時間テーブル２８００のレコードが３つになっているため、起動時間テーブル２８００に各レコードの起動時間と、抽出した起動時間「３９ｍｓ」とを比較する。次に、センサーノード１０１−１は、比較した結果、各レコードの起動時間より抽出した起動時間が長いため、待機時間「３９ｍｓ」に関するレコードを生成しない。
【０１４３】
（７９）また、センサーノード１０１−６は、起動時間「３８ｍｓ」を含む応答４００をセンサーノード１０１−１に送信する。（８０）センサーノード１０１−１は、（７８）と同様に、起動時間テーブル２８００に各レコードの起動時間と、抽出した起動時間「３８ｍｓ」とを比較する。次に、センサーノード１０１−１は、比較した結果、各レコードの起動時間より抽出した起動時間が長いため、待機時間「３８ｍｓ」に関するレコードを生成しない。
【０１４４】
これにより、センサーノード１０１−１は、通信圏内のセンサーノード１０１−２〜１０１−６の起動時間のうち、１番目〜３番目に短い起動時間を起動時間テーブル２８００に記憶しておく。そして、センサーノード１０１−１は、起動時間テーブル２８００に記憶された３番目に短い起動時間を待機時間として採用する。
【０１４５】
これにより、センサーノード１０１−１は、通信圏内の３つのセンサーノード１０１が受信準備を完了するまでの待機時間を決定して、不揮発メモリ２０４に記憶しておくことができる。結果として、センサーノード１０１−１は、決定した待機時間を用いてデータ３００を発信することにより、データ３００を３つのセンサーノード１０１に受信させることができる。
【０１４６】
また、センサーノード１０１は、起動時間テーブル２８００に起動時間が記憶されたセンサーノード１０１から応答４００を受信した場合は、起動時間テーブル２８００に記憶された起動時間を、受信した応答に含まれる起動時間で更新してもよい。これにより、センサーノード１０１は、起動時間テーブル２８００の起動時間を最新の状態に交信することができる。
【０１４７】
（設定例２を採用した場合のデータ発信処理）
次に、設定例２を採用した場合のセンサーノード１０１によるデータ発信処理について説明する。設定例２を採用した場合のデータ発信処理は、図２３に示した設定例１を採用した場合のデータ発信処理と同様のため、ここでは説明を省略する。
【０１４８】
（設定例２を採用した場合の待機時間設定処理）
次に、設定例２を採用した場合のセンサーノード１０１による待機時間設定処理について説明する。設定例２を採用した場合の待機時間設定処理は、図２４に示した設定例１を採用した場合の待機時間設定処理とステップＳ２４０２〜Ｓ２４０４は同様のため、ステップＳ２４０１について説明する。
【０１４９】
設定例２では、ステップＳ２４０１において、センサーノード１０１は、起動時間テーブル２８００の中で、最長の起動時間を探索する。これにより、センサーノード１０１は、通信圏内のセンサーノード１０１のうち、所定数のセンサーノード１０１が受信準備を完了するまでの待機時間を設定することができる。
【０１５０】
（設定例２を採用した場合のデータ受信処理）
次に、図３０を用いて、設定例２を採用した場合のセンサーノード１０１によるデータ受信処理について説明する。設定例２を採用した場合のデータ受信処理は、図２５および図２６に示した設定例１を採用した場合のデータ受信処理とステップＳ２５０１〜Ｓ２５０６，Ｓ２６０１〜Ｓ２６０２，Ｓ２６０２：Ｎｏの分岐先の処理は同様である。そのため、ここでは、図２６に示したステップＳ２６０２：Ｙｅｓの分岐先における設定例２を採用した場合の処理について説明する。
【０１５１】
図３０は、設定例２を採用した場合のセンサーノード１０１によるデータ受信処理の一例を示すフローチャートである。図３０において、センサーノード１０１は、受信した応答４００の中から、発信元ＩＤと起動時間とを抽出する（ステップＳ３００１）。
【０１５２】
次に、センサーノード１０１は、起動時間テーブル２８００の中からレコードを探索する（ステップＳ３００２）。そして、センサーノード１０１は、探索できたか否かを判定する（ステップＳ３００３）。ここで、探索できなかった場合（ステップＳ３００３：Ｎｏ）、センサーノード１０１は、起動時間テーブル２８００に抽出した発信元ＩＤと起動時間とを関連付けたレコードを追加し（ステップＳ３００４）、データ受信処理を終了する。
【０１５３】
一方、探索できた場合（ステップＳ３００３：Ｙｅｓ）、センサーノード１０１は、起動時間テーブル２８００の各レコードのノードＩＤ項目と発信元ＩＤとを比較する（ステップＳ３００５）。次に、センサーノード１０１は、比較した結果、一致したか否かを判定する（ステップＳ３００６）。ここで、一致した場合（ステップＳ３００６：Ｙｅｓ）、センサーノード１０１は、一致したレコードの起動時間項目を抽出した起動時間で上書き更新して（ステップＳ３００７）、データ受信処理を終了する。
【０１５４】
一方、一致しない場合（ステップＳ３００６：Ｎｏ）、センサーノード１０１は、起動時間テーブル２８００のレコード数を取得する（ステップＳ３００８）。次に、センサーノード１０１は、レコード数が上限未満か否かを判定する（ステップＳ３００９）。ここで、上限未満である場合（ステップＳ３００９：Ｙｅｓ）、センサーノード１０１は、起動時間テーブル２８００に抽出した発信元ＩＤと起動時間とを関連付けたレコードを追加して（ステップＳ３０１０）、データ受信処理を終了する。
【０１５５】
一方、上限以上である場合（ステップＳ３００９：Ｎｏ）、センサーノード１０１は、起動時間テーブル２８００の各レコードの中で最長の起動時間を待機時間として取得する（ステップＳ３０１１）。次に、センサーノード１０１は、取得した待機時間が抽出した起動時間より短いか否かを判定する（ステップＳ３０１２）。ここで、短くない場合（ステップＳ３０１２：Ｎｏ）、センサーノード１０１は、データ受信処理を終了する。
【０１５６】
一方、短い場合（ステップＳ３０１２：Ｙｅｓ）、センサーノード１０１は、起動時間テーブル２８００の各レコードのうち最長の起動時間のレコードを削除し、発信元ＩＤと起動時間とを関連付けたレコードを起動時間テーブル２８００に追加する（ステップＳ３０１３）。そして、センサーノード１０１は、データ受信処理を終了する。これにより、センサーノード１０１は、通信圏内のセンサーノード１０１の起動時間を短い順に所定数記憶しておくことができる。
【０１５７】
以上説明したように、開示の通信装置（例えば、センサーノード１０１）は、予め通信圏内の他の通信装置から送信された他の通信装置の起動時間に基づく待機時間を設定しておき、通信圏内に起動指示を発信した後、設定した待機時間が経過した場合に通信圏内にデータ３００を発信する。これにより、開示の通信装置は、他の通信装置がデータ３００の受信準備を完了した後に、他の通信装置にデータ３００を受信させることができる。
【０１５８】
従って、通信装置は、待機時間を固定した場合に比べて、待機時間を短縮することができ、消費電力を低減することができる。また、開示の通信装置は、起動指示に対する応答を受信しなくてもデータ３００を発信することができるため、通信圏内に他の通信装置が何個あるかを特定しなくてもよい。
【０１５９】
また、他の通信装置は、起動指示に対する応答を送信しなくてもよい。これにより、他の通信装置は、応答４００の送信処理を削減することができ、処理量を低減して消費電力を低減することができる。また、開示の通信装置は、起動指示に対する応答の受信によりデータ３００を発信する場合と比べて、起動指示に対する応答の受信にかかる時間を削減して、待機時間を短縮することができ、消費電力を低減することができる。
【０１６０】
また、開示の通信装置は、初回の通信時には、通信装置の製造ばらつき上の最長起動時間に基づく待機時間を設定しておき、通信圏内に起動指示を発信した後、設定した待機時間が経過した場合に通信圏内にデータ３００を発信する。これにより、開示の通信装置は、初回の通信時にも、通信圏内の他の通信装置がデータ３００の受信準備を完了した後に、他の通信装置にデータ３００を受信させることができる。また、開示の通信装置は、起動指示に対する応答を受信しなくてもデータ３００を発信することができるため、通信圏内に他の通信装置が何個あるかを特定しなくてもよい。
【０１６１】
また、開示の通信装置は、通信圏内に他の通信装置が複数ある場合は、各々の他の通信装置の起動時間のうち最長の起動時間に基づく待機時間を設定する。これにより、開示の通信装置は、各々の他の通信装置にデータ３００を受信させることができる。
【０１６２】
また、開示の通信装置は、通信圏内に他の通信装置が複数ある場合は、各々の他の通信装置の起動時間のうち所定番目に短い起動時間に基づく待機時間を設定する。これにより、開示の通信装置は、待機時間が短い順で所定番目までの他の通信装置にデータ３００を受信させることができる。
【０１６３】
また、開示の通信装置は、発信したデータ３００に対する応答４００が所定数以下である場合に、設定した待機時間を延長する。これにより、開示の通信装置は、他の通信装置が経年劣化等により起動時間が長くなった場合に、待機時間を延長して他の通信装置が起動を完了するまで待機することができる。
【０１６４】
また、通信装置が、自装置の通信圏内に他通信装置が何個存在するか不明である場合、通信圏内の他通信装置から応答を受信して、当該他通信装置にのみデータを送信する構成が考えられる。しかしながら、この構成では、通信装置は、応答を受信することにより処理時間が増大するため、データを発信するまでの待機時間が長くなる。また、通信装置が応答を受信するごとにデータを送信すると、ネットワークの通信量が増大して、輻輳が発生することがある。
【０１６５】
一方で、開示の通信装置は、待機時間の経過によりデータ３００を発信するため、自装置の通信圏内に他通信装置が何個存在するか特定しなくても、データ３００を発信することができる。また、開示の通信装置は、他通信装置からの応答４００の有無に関わらず、他通信装置が起動した直後にデータ３００を発信することができるため、待機時間を削減することができる。また、開示の通信装置により、他通信装置は、応答４００を送信しなくてもよいため、ネットワークの輻輳を抑制することができる。
【０１６６】
また、通信装置が、自装置の通信圏内に他通信装置が何個存在するか不明である場合、予め通信装置の開発者等によって決定された待機時間の中で、通信圏内の他通信装置からの応答を受信し、応答を受信できた他通信装置にのみデータを送信する構成が考えられる。しかしながら、この構成では、通信装置は、待機時間の中で通信圏内の全ての他通信装置から応答を受信していても、待機時間が終了するまで待機することになり、待機時間が長くなる。また、この構成では、通信装置は、待機時間の中でネットワークの構成に使用する数の通信装置から応答を受信できず、ネットワークが構成できないことがある。
【０１６７】
一方で、開示の通信装置は、待機時間の経過によりデータ３００を発信するため、自装置の通信圏内に他通信装置が何個存在するか特定しなくても、データ３００を発信することができる。また、開示の通信装置は、他通信装置からの応答４００の有無に関わらず、他通信装置が起動した直後にデータ３００を発信することができるため、待機時間を削減することができる。また、開示の通信装置は、ネットワークの構成に使用する数の通信装置がデータ３００の受信準備を完了してから、データ３００を発信することができる。
【０１６８】
なお、本実施の形態で説明した通信方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本通信プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本通信プログラムは、インターネット等のネットワークを介して配布してもよい。
【０１６９】
また、本実施の形態で説明した通信装置は、スタンダードセルやストラクチャードＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）などの特定用途向けＩＣ（以下、単に「ＡＳＩＣ」と称す。）やＦＰＧＡなどのＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）によっても実現することができる。具体的には、例えば、上述した発信側の通信装置の機能（第１の発信部５０２〜格納部５０６）や受信側の通信装置の機能（受信部６０１〜送信部６０４）をＨＤＬ記述によって機能定義し、そのＨＤＬ記述を論理合成してＡＳＩＣやＰＬＤに与えることにより、通信装置を製造することができる。
【０１７０】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１７１】
（付記１）通信圏内の他通信装置を起動させる起動指示を発信した場合に前記他通信装置の起動にかかる時間を示す情報を前記他通信装置から受信する受信部と、
前記受信部によって受信された前記情報が示す時間に基づく待機時間を記憶部に格納する格納部と、
前記通信圏内に起動指示を発信する第１の発信部と、
前記第１の発信部によって前記起動指示が発信されてから、前記格納部によって前記記憶部に格納された前記待機時間が経過したことを検出する検出部と、
前記検出部によって前記待機時間が経過したことが検出された場合に、前記通信圏内にデータを発信する第２の発信部と、
を有することを特徴とする通信装置。
【０１７２】
（付記２）前記格納部は、
前記受信部によって複数の前記他通信装置から前記情報が受信された場合に、受信された各々の前記情報が示す時間の中で最長の時間に基づく前記待機時間を前記記憶部に格納する、
ことを特徴とする付記１に記載の通信装置。
【０１７３】
（付記３）前記格納部は、
前記受信部によって複数の前記他通信装置から前記情報が受信された場合に、受信された各々の前記情報が示す時間の中で所定番目に短い時間に基づく前記待機時間を前記記憶部に格納する、
ことを特徴とする付記１に記載の通信装置。
【０１７４】
（付記４）前記格納部は、
前記第２の発信部によって発信された前記データに対する前記他通信装置からの応答が所定数以下である場合に、前記記憶部に記憶された前記待機時間を延長することを特徴とする付記１〜３のいずれか一つに記載の通信装置。
【０１７５】
（付記５）前記記憶部は、
前記受信部によって前記情報が受信される前には、前記他通信装置の最長起動時間以上の待機時間を記憶する、
ことを特徴とする付記１〜４のいずれか一つに記載の通信装置。
【０１７６】
（付記６）起動指示を発信してから所定の待機時間経過後にデータを発信する発信元から前記起動指示を受信する受信部と、
前記受信部によって前記起動指示が受信された場合に自装置内のプロセッサを起動する起動部と、
前記受信部によって前記起動指示が受信されてから、前記起動部によって起動された前記プロセッサによる前記データの受信処理が可能になるまでの時間を計測する計測部と、
前記計測部によって計測された前記時間を示す情報を前記発信元に送信する送信部と、
を有することを特徴とする通信装置。
【０１７７】
（付記７）コンピュータが、
通信圏内の他通信装置を起動させる起動指示を発信した場合に前記他通信装置の起動にかかる時間を示す情報を前記他通信装置から受信し、
受信された前記情報が示す時間に基づく待機時間を記憶部に格納し、
前記通信圏内に起動指示を発信し、
前記起動指示が発信されてから、前記記憶部に格納された前記待機時間が経過したことを検出し、
前記待機時間が経過したことが検出された場合に、前記通信圏内にデータを発信する、
処理を実行することを特徴とする通信方法。
【０１７８】
（付記８）コンピュータが、
起動指示を発信してから所定の待機時間経過後にデータを発信する発信元から前記起動指示を受信し、
前記起動指示が受信された場合に自装置内のプロセッサを起動し、
前記起動指示が受信されてから、起動された前記プロセッサによる前記データの受信処理が可能になるまでの時間を計測し、
計測された前記時間を示す情報を前記発信元に送信する、
処理を実行することを特徴とする通信方法。
【０１７９】
（付記９）コンピュータに、
通信圏内の他通信装置を起動させる起動指示を発信した場合に前記他通信装置の起動にかかる時間を示す情報を前記他通信装置から受信し、
受信された前記情報が示す時間に基づく待機時間を記憶部に格納し、
前記通信圏内に起動指示を発信し、
前記起動指示が発信されてから、前記記憶部に格納された前記待機時間が経過したことを検出し、
前記待機時間が経過したことが検出された場合に、前記通信圏内にデータを発信する、
処理を実行させることを特徴とする通信プログラム。
【０１８０】
（付記１０）コンピュータに、
起動指示を発信してから所定の待機時間経過後にデータを発信する発信元から前記起動指示を受信し、
前記起動指示が受信された場合に自装置内のプロセッサを起動し、
前記起動指示が受信されてから、起動された前記プロセッサによる前記データの受信処理が可能になるまでの時間を計測し、
計測された前記時間を示す情報を前記発信元に送信する、
処理を実行させることを特徴とする通信プログラム。
【０１８１】
（付記１１）互いに通信可能な圏内に位置する第１の通信装置および第２の通信装置を含む通信システムであって、
前記第１の通信装置は、
起動指示を受信した場合に自装置内のプロセッサを起動し、前記起動指示を受信してから、起動した前記プロセッサによるデータの受信処理が可能になるまでの時間の計測結果を前記第２の通信装置に送信し、
前記第２の通信装置は、
前記第１の通信装置によって送信された前記計測結果を受信し、受信した前記計測結果に基づく待機時間を記憶部に格納し、自装置から通信可能な圏内に前記起動指示を発信し、前記起動指示を発信してから、前記記憶部に格納された前記待機時間が経過したことを検出した場合に、前記自装置から通信可能な圏内に前記データを発信する、
ことを特徴とする通信システム。
【符号の説明】
【０１８２】
１０１  センサーノード
５０１  記憶部
５０２  第１の発信部
５０３  検出部
５０４  第２の発信部
５０５  受信部
５０６  格納部
６０１  受信部
６０２  起動部
６０３  計測部
６０４  送信部
【手続補正書】
【提出日】平成28年1月12日(2016.1.12)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
通信圏内の他通信装置を起動させる起動指示を発信した場合に前記他通信装置の起動にかかる時間を示す情報を前記他通信装置から受信する受信部と、
前記受信部によって複数の前記他通信装置から前記情報が受信された場合に、受信された各々の前記情報が示す時間を比較した結果に基づく待機時間を記憶部に格納する格納部と、
前記通信圏内に起動指示を発信する第１の発信部と、
前記第１の発信部によって前記起動指示が発信されてから、前記格納部によって前記記憶部に格納された前記待機時間が経過したことを検出する検出部と、
前記検出部によって前記待機時間が経過したことが検出された場合に、前記通信圏内にデータを発信する第２の発信部と、
を有することを特徴とする通信装置。
【請求項２】
前記格納部は、
前記受信部によって複数の前記他通信装置から前記情報が受信された場合に、受信された各々の前記情報が示す時間の中で最長の時間に基づく前記待機時間を前記記憶部に格納する、
ことを特徴とする請求項１に記載の通信装置。
【請求項３】
前記格納部は、
前記受信部によって複数の前記他通信装置から前記情報が受信された場合に、受信された各々の前記情報が示す時間の中で所定番目に短い時間に基づく前記待機時間を前記記憶部に格納する、
ことを特徴とする請求項１に記載の通信装置。
【請求項４】
起動指示を発信してから所定の待機時間経過後にデータを発信する発信元から前記起動指示を受信する受信部と、
前記受信部によって前記起動指示が受信された場合に自装置内のプロセッサを起動する起動部と、
前記受信部によって前記起動指示が受信されてから、前記起動部によって起動された前記プロセッサによる前記データの受信処理が可能になるまでの時間を計測する計測部と、
自装置を含む複数の装置の各々の装置内のプロセッサによる前記データの受信処理が可能になるまでの時間を示す情報を受信した場合に各々の情報が示す時間を比較した結果に基づき前記待機時間を更新する前記発信元に、前記計測部によって計測された前記時間を示す情報を送信する送信部と、
を有することを特徴とする通信装置。
【請求項５】
コンピュータが、
通信圏内の他通信装置を起動させる起動指示を発信した場合に前記他通信装置の起動にかかる時間を示す情報を前記他通信装置から受信し、
複数の前記他通信装置から前記情報が受信された場合に、受信された各々の前記情報が示す時間を比較した結果に基づく待機時間を記憶部に格納し、
前記通信圏内に起動指示を発信し、
前記起動指示が発信されてから、前記記憶部に格納された前記待機時間が経過したことを検出し、
前記待機時間が経過したことが検出された場合に、前記通信圏内にデータを発信する、
処理を実行することを特徴とする通信方法。
【請求項６】
コンピュータが、
起動指示を発信してから所定の待機時間経過後にデータを発信する発信元から前記起動指示を受信し、
前記起動指示が受信された場合に自装置内のプロセッサを起動し、
前記起動指示が受信されてから、起動された前記プロセッサによる前記データの受信処理が可能になるまでの時間を計測し、
自装置を含む複数の装置の各々の装置内のプロセッサによる前記データの受信処理が可能になるまでの時間を示す情報を受信した場合に各々の情報が示す時間を比較した結果に基づき前記待機時間を更新する前記発信元に、計測された前記時間を示す情報を送信する、
処理を実行することを特徴とする通信方法。
【請求項７】
コンピュータに、
通信圏内の他通信装置を起動させる起動指示を発信した場合に前記他通信装置の起動にかかる時間を示す情報を前記他通信装置から受信し、
複数の前記他通信装置から前記情報が受信された場合に、受信された各々の前記情報が示す時間を比較した結果に基づく待機時間を記憶部に格納し、
前記通信圏内に起動指示を発信し、
前記起動指示が発信されてから、前記記憶部に格納された前記待機時間が経過したことを検出し、
前記待機時間が経過したことが検出された場合に、前記通信圏内にデータを発信する、
処理を実行させることを特徴とする通信プログラム。
【請求項８】
コンピュータに、
起動指示を発信してから所定の待機時間経過後にデータを発信する発信元から前記起動指示を受信し、
前記起動指示が受信された場合に自装置内のプロセッサを起動し、
前記起動指示が受信されてから、起動された前記プロセッサによる前記データの受信処理が可能になるまでの時間を計測し、
自装置を含む複数の装置の各々の装置内のプロセッサによる前記データの受信処理が可能になるまでの時間を示す情報を受信した場合に各々の情報が示す時間を比較した結果に基づき前記待機時間を更新する前記発信元に、計測された前記時間を示す情報を送信する、
処理を実行させることを特徴とする通信プログラム。
【請求項９】
複数の第１の通信装置、および、各々の前記第１の通信装置と互いに通信可能な圏内に位置する第２の通信装置を含む通信システムであって、
前記第１の通信装置は、
起動指示を受信した場合に自装置内のプロセッサを起動し、前記起動指示を受信してから、起動した前記プロセッサによるデータの受信処理が可能になるまでの時間の計測結果を前記第２の通信装置に送信し、
前記第２の通信装置は、
各々の前記第１の通信装置によって送信された前記計測結果を受信し、受信した各々の前記計測結果を比較した結果に基づく待機時間を記憶部に格納し、自装置から通信可能な圏内に前記起動指示を発信し、前記起動指示を発信してから、前記記憶部に格納された前記待機時間が経過したことを検出した場合に、前記自装置から通信可能な圏内に前記データを発信する、
ことを特徴とする通信システム。
【国際調査報告】
2014049799.tif 000033
2014049799.tif 000034
2014049799.tif 000035
2014049799.tif 000036