以下に添付図面を参照して、無線通信装置及び無線通信システムの実施形態を詳細に説明する。
(実施形態)
はじめに実施形態について説明する。
[装置構成の例]
図1は実施形態の無線通信システム100の装置構成の例を示す図である。実施形態の無線通信システム100は、集約装置10、複数の無線通信装置20、及び、サーバ装置50を備える。集約装置10、及び、複数の無線通信装置20は、集約装置10を根ノードとしたネットワーク80を構成する。図1の例では、ネットワーク80は、無線マルチホップネットワークである。図1に示す無線マルチホップネットワークの形状は、一例であり、状況に応じて適宜、変更される。
また、ネットワーク80の形状は任意でよい。ネットワーク80の形状は、例えばツリー型及びメッシュ型等でもよい。ネットワーク80は、例えばマルチホップ型ネットワークである。
実施形態の無線通信システム100の通信方式は、時分割通信方式である。
無線通信装置20は、所定の範囲内に配置された集約装置10及び無線通信装置20と互いに無線通信が可能である。無線通信装置20は、例えば温度センサ及び加速度センサ等の任意のセンサを搭載している。無線通信装置20は、センサにより測定されたセンサ情報を含む送信情報を、他の無線通信装置20に送信する。各無線通信装置20により送信された送信情報は、他の無線通信装置20を介して、または、直接、集約装置10に送信される。
集約装置10は、各無線通信装置20から送信された送信情報を、集約情報として集約する。無線通信装置20から集約装置10へ送信情報を伝達することを、上りリンク、上り通信、または、単に上りと呼ぶ。また、集約装置10は、ネットワーク90を介して、サーバ装置50と接続されている。ネットワーク90は、有線方式でも無線方式でもよく、また両者を組み合わせて実現されていてもよい。集約装置10は、集約情報を、任意のデータ形式でサーバ装置50に送信する。
サーバ装置50は、集約装置10から集約情報を受信すると、当該集約情報の記憶、及び、当該集約情報を使用した任意の処理等を行う。
以下、ネットワーク80に含まれる集約装置10及び無線通信装置20を、説明のため、ノードという場合がある。また、送信先となるノードを、送信先ノードといい、送信元となるノードを、送信元ノードという場合がある。
次に実施形態のネットワーク80の通信時間の単位を示すフレームの例について説明する。
<フレームの例>
図2は実施形態の通信時間の単位を示すフレームの例を示す図である。
スーパーフレームは、複数のフレームを含む。スーパーフレームは、例えば各無線通信装置20がセンサ情報を測定する頻度を示す。例えば1回の測定で得られたセンサ情報は、1つのスーパーフレーム内で、集約装置10に送信される。
フレームは、複数のサブフレームを含む。サブフレームは、複数のタイムスロットを含む。タイムスロットは、それぞれの無線通信装置20が送信に使用可能な時間間隔を示す。サブフレーム内のタイムスロットの数は、例えばネットワーク80に含まれる無線通信装置20の数以上に設定される。無線通信装置20が使用可能なタイムスロットは、例えば無線通信装置20を識別する識別情報に基づいて割り当ててもよい。なお、通信に使用される周波数チャネルは、いかなる方法で決定されてもよい。
なおスーパーフレームに含まれるフレームの数は任意でよい。同様に、フレームに含まれるサブフレームの数、及び、サブフレームに含まれるタイムスロットの数も任意でよい。
次に実施形態のネットワーク80で使用されるパケットの例について説明する。
<パケットの例>
図3は実施形態のパケットの例を示す図である。実施形態のネットワーク80で使用されるパケットは、PHY(Physical)ヘッダとPHYペイロードとを含む。PHYペイロードはMAC(Media Access Control)ヘッダとMACペイロードとFCS(Frame Check Sequence)とを含む。MACペイロードは、さらにLLC(Logical Link Control)ヘッダとLLCペイロードとを含んでいてもよく、またLLCペイロードが、より上位のプロトコルの情報を記憶するフィールドを含んでいてもよい。
PHYヘッダはプリアンブルシーケンス、フレームデリミタ開始位置、及び、フレーム長等の情報を含む。
MACヘッダはフレームコントロール、シーケンス番号及びアドレス情報等の情報を含む。
LLC、または、より上位のプロトコルの情報を記憶するフィールドでは、メッセージ種別、ホップ数、センサ情報、中継経路情報及びMACとは別に設定される送信元ノードのID、及び、送信先ノードのID等を含む。メッセージ種別は、例えばネットワーク80の構築及び維持等のための制御情報と、センサ情報とを判別するための情報である。なお、LLC、または、より上位のプロトコルの情報を記憶するフィールドには、その他のいかなる情報が含まれていてもよい。
また、実施形態では、MACヘッダ以降に送信継続情報を含む。送信継続情報は、例えばTrue(継続)又はFalse(終了)を示す1ビットの情報である。以下、False(終了)を、終了フラグ(Fフラグ)という。
次に実施形態の集約装置10及び無線通信装置20のハードウェア構成の例について説明する。
[ハードウェア構成の例1]
図4は実施形態の集約装置10及び無線通信装置20のハードウェア構成の例1を示す図である。図4の例1では、集約装置10及び無線通信装置20は、CPU(Central Processing Unit)101、主記憶装置102、外部記憶装置103、通信インターフェース104及び無線装置105を備える。CPU101、主記憶装置102、外部記憶装置103、通信インターフェース104及び無線装置105は、バス120により接続されている。
CPU101は、外部記憶装置103等の記憶媒体からプログラムを読み出し、当該プログラムを主記憶装置102上で実行する。
主記憶装置102は、プログラム、当該プログラムの実行に必要なデータ、及び、当該プログラムの実行により生成されたデータ等を記憶する。主記憶装置102は任意でよい。主記憶装置102は、例えばRAM、DRAM及びSRAM等である。
主記憶装置102は、プログラム、中継情報、フレーム情報、ノードID、ホップ数、親ノード及び子ノード等の情報を記憶する。中継情報は、例えば他のノードから受信した受信情報である。具体的には、中継情報は、例えば他のノードにより取得されたセンサ情報等である。親ノードは、自ノードよりもホップ数が1小さいノードで、後述の送信先ノードである。子ノードは、自ノードよりもホップ数が1大きいノードで、送信先ノードを自ノードに決定しているノードである。
また、主記憶装置102は、集約装置10のOS、BIOS、及び、各種のミドルウェア等を記憶してもよい。
外部記憶装置103は、プログラム、当該プログラムの実行に必要なデータ、及び、当該プログラムの実行により生成されたデータ等を記憶する。これらのプログラム及びデータは、当該プログラムの実行の際に、主記憶装置102に展開される。外部記憶装置103は任意でよい。外部記憶装置103は、例えばハードディスク、光ディスク、フラッシュメモリ及び磁気テープ等である。外部記憶装置103は、プログラム、中継情報、フレーム情報、ノードID、ホップ数、親ノード及び子ノード等の情報を記憶する。
なお、集約装置10及び無線通信装置20で実行されるプログラムは、例えば外部記憶装置103に予めインストールされていてもよい。また例えば、外部記憶装置103が、別の有線又は無線ネットワークにより他の装置から集約装置10に送信されたプログラムを記憶することにより、外部記憶装置103に当該プログラムをインストールしてもよい。
通信インターフェース104は、外部のデバイスと通信するための汎用I/Fである。通信インターフェース104は、例えばUART、I2C、SPI、CAN、RS232及びEthernet(登録商標)ポート等である。
無線装置105は、集約装置10及び無線通信装置20が、他の装置と無線通信するための装置である。また、集約装置10及び無線通信装置20は、複数の無線装置105を備えていてもよい。集約装置10及び無線通信装置20が、例えば2つの無線装置105を備える場合、第2の無線装置105が、第1の無線装置105により収集されたデータを送信してもよい。なお、第2の無線装置105は、第1の無線装置105と異なる無線周波数を使用する装置であれば任意でよい。第2の無線装置105は、例えばセルラー通信及びWi−Fi等である。
次に実施形態の集約装置10及び無線通信装置20のハードウェア構成の例2について説明する。
[ハードウェア構成の例2]
図5は実施形態の集約装置10及び無線通信装置20のハードウェア構成の例2を示す図である。図5の例2では、集約装置10及び無線通信装置20は、CPU101、主記憶装置102、外部記憶装置103、通信インターフェース104、入力インターフェース106及びグラフィック処理装置107を備える。CPU101、主記憶装置102、外部記憶装置103、通信インターフェース104、入力インターフェース106及びグラフィック処理装置107は、バス120を介して接続されている。
また、図5の例2では、センサ108及び無線通信モジュール109が、通信インターフェース104に接続されている。入力装置110が、入力インターフェース106に接続されている。また、ディスプレイ111が、グラフィック処理装置107に接続されている。
CPU101、主記憶装置102、外部記憶装置103及び通信インターフェース104の説明は、上述の図4と同じなので省略する。
入力インターフェース106は、入力装置110により受け付けられた入力操作に応じた操作信号を、入力装置110から受け付ける。入力装置110は任意でよい。入力装置110は、例えばキーボード及びマウス等である。
グラフィック処理装置107は、CPU101により生成された映像信号及び画像信号等に基づいて、ディスプレイ111に映像又は画像を表示させる装置である。ディスプレイ111は任意でよい。ディスプレイ111は、例えばLCD(液晶ディスプレイ)、CRT(ブラウン管)、及び、PDP(プラズマディスプレイ)等である。
センサ108は任意でよい。センサ108は、例えば照度センサ、温湿度センサ、加速度センサ、角速度センサ及び照度センサ等である。また、センサ108は、擬似的なセンサでもよい。疑似的なセンサは、例えばデータを出力する別のコンピュータ装置である。なお、集約装置10は、無線通信装置20からのデータを集約する装置なので、センサ108を備えていなくてもよい。
無線通信モジュール109は、上述の図4の無線装置105の役割を果たす。無線通信モジュール109は、必ずしも上述の無線装置105とハードウェア構成が同一ではない。また、集約装置10及び無線通信装置20は、図4の無線装置105と同様に、無線通信モジュール109を複数備えていてもよい。
なお上述の図4及び図5のハードウェアの電源は任意でよい。上述の図4及び図5のハードウェアの電源は、例えば商用電源、バッテリ、発電機及び発電モジュール等である。
ただし、無線通信装置20の電源は、無線通信装置20の省電力性に係わるため、バッテリ及び発電素子等によるエネルギー供給で駆動することを主に想定している。しかしながら無線通信装置20の電源が、商用電源であっても、実施形態の通信方法により、消費電力を抑制する効果を得ることができる。
次に実施形態の集約装置10の機能構成の例について説明する。
[集約装置の機能構成]
図6は実施形態の集約装置10の機能構成の例を示す図である。集約装置10は、無線通信装置20が通信のタイミングを計る基準となる基準信号(ビーコン)を送信する。また集約装置10は、無線通信装置20から受信した受信情報を集約する。実施形態の集約装置10は、通信制御部11、受信情報記憶部12、フレーム情報記憶部13、制御情報生成部14、送信情報生成部15及び決定部16を備える。
通信制御部11は、受信した無線信号を電気信号に変換し、当該電気信号に所定の信号処理を施すことにより、無線信号から受信情報を取り出す。信号処理は任意でよい。信号処理には、例えばAD変換、及び、所定の通信プロトコルに従った復号化等の処理が含まれる。
受信情報には、少なくとも、送信元ノードのID、ホップ数、センサ情報、中継情報、及び、送信先ノードのIDが含まれる。IDは、無線通信装置を識別する識別情報である。受信情報に含まれる送信先ノードのIDは、送信元ノードが情報を送信するノードのID、または、根ノード(集約装置10)のIDである。
また、通信制御部11は、送信情報生成部15により生成された送信情報に、所定の信号処理を施すことにより、当該送信情報を電気信号に変換する。信号処理は任意でよい。信号処理には、例えばAD変換、及び、所定の通信プロトコルに従った符号化等の処理が含まれる。
送信情報は、例えば自ノードのID、ホップ数、フレーム情報、時間情報及び確認応答情報である。
フレーム情報とは、上述のスーパーフレーム、フレーム、サブフレーム及びタイムスロット等の設定情報である。フレーム情報は、例えば集約装置10に予め登録されてもよい。また例えば、フレーム情報は、別の有線または無線ネットワークにより外部から登録及び更新されてもよい。
フレーム情報の設定方法は任意でよい。例えば、スーパーフレーム長が設定され、フレーム数が設定されれば、フレーム長が決定される。フレーム長が設定され、サブフレーム数が設定されれば、サブフレーム長が決定される。また逆に、サブフレーム長が設定され、サブフレーム数が与えられれば、フレーム長が決定される。フレーム長が設定され、フレーム数が与えられれば、スーパーフレーム長が決定される。さらに、サブフレームよりも小さな時間単位としてタイムスロット長が設定されていれば、当該タイムスロット長を基準にサブフレーム中のタイムスロット数の情報等により、スーパーフレーム長、フレーム長及びサブフレーム長を決定することができる。
時間情報は、通信のタイミングを計る基準となる時間を示す情報である。時間情報は、例えば標準時を何らかの方法により変換した値であってもよい。また例えば、時間情報は、無線通信システム100の稼働を開始させてから、スーパーフレームまたはフレームの単位でカウントアップされるフレーム番号であってもよい。また、時間情報は、フレーム中のサブフレームの番号、タイムスロットの番号、当該サブフレームの先頭から送信開始までの経過時間情報等をさらに含んでもよい。
受信情報記憶部12は、送信元ノードから受信された複数の受信情報を記憶することにより、当該複数の受信情報(集約情報)を集約する。なお受信情報を記憶する際のデータ形式は任意でよい。
制御情報生成部14は、フレーム情報記憶部13に記憶されたフレーム情報に基づいて、フレーム情報と時間情報とを生成する。
制御情報生成部14は、時間情報を標準時とする場合、例えば手動で設定してもよい。また例えば、制御情報生成部14は、時間情報を標準時とする場合、別の有線または無線のネットワークを介してNTP(Network Time Protocol)及びPTP(Precision Time Protocol)等により同期した時刻を使用してもよい。また例えば、制御情報生成部14は、時間情報を標準時とし、かつ、電波時計の受信機能を持つ場合には、当該受信機能により同期した時刻を使用してもよい。
送信情報生成部15は、制御情報生成部14により生成されたフレーム情報と時間情報とに基づいて、送信情報を生成する。送信情報生成部15は、さらに、受信情報記憶部12に記憶された受信情報に基づいて、確認応答情報を生成し、当該確認応答情報を送信情報に含めてもよい。
確認応答情報は、例えば最後のフレーム番号に含まれる各ノードからの受信結果に応じて、各ノードに1対1で対応するビットを設定した系列である。
決定部16は、フレーム情報に基づいて、自ノードが送信情報を送信するタイミングを決定する。フレーム情報に基づいてタイミングを決定する方法の詳細は後述する。なお複数の周波数チャネルを使用する場合には、送受信のための周波数チャネルを選択する方法は任意でよい。
次に実施形態の無線通信装置20の機能構成の例について説明する。
[無線通信装置の機能構成]
無線通信装置は記憶部と処理部とを備える。記憶部は、第1期間において送信する送信データを保持する。処理部は、スーパーフレームに含まれる複数のフレームのうちの最初の第1フレームにおいて送信データの全部を送信処理する、またはスーパーフレームに含まれ第1フレームを含み連続する複数のフレームにおいて送信データを分割して送信処理する。無線通信装置は、第1期間のうち、前記送信データを送信処理した後の一または複数のフレームにおいてスリープ状態である。記憶部は、中継情報記憶部23とセンサ情報記憶部ウ30の少なくともいずれかまたはこれら両方により構成することができる。処理部は、通信制御部21により構成することができる。処理部は、さらに図4に示す他の構成を含んでもよい。
図7は実施形態の無線通信装置20の機能構成の例を示す図である。実施形態の無線通信装置20は、通信制御部21、宛先判定部22、中継情報記憶部23、送信情報生成部24、送信先ノード決定部25、周辺ノード情報記憶部26、送受信リソース決定部27、フレーム情報記憶部28、センサ情報取得部29、センサ情報記憶部30、状態制御部31及び継続判定部32を備える。
通信制御部21は、受信した無線信号を電気信号に変換し、当該電気信号に所定の信号処理を施すことにより、無線信号から受信情報を取り出す。信号処理は任意でよい。信号処理には、例えばAD変換、及び、所定の通信プロトコルに従った復号化等の処理が含まれる。
受信情報には、少なくとも、送信元ノードのID、ホップ数、センサ情報、中継情報、及び、送信先ノードのIDが含まれる。受信情報の説明は、図6の説明と同様なので省略する。
また、通信制御部21は、送信情報生成部15により生成された送信情報に、所定の信号処理を施すことにより、当該送信情報を電気信号に変換する。信号処理は任意でよい。信号処理には、例えばAD変換、及び、所定の通信プロトコルに従った符号化等の処理が含まれる。
送信情報には、少なくとも、自ノードのホップ数、自ノードのノードID、中継情報、及び、送信先ノードのノードIDが含まれる。中継情報の説明は、図6の説明と同様なので省略する。
宛先判定部22は、通信制御部21から受信情報を受け付けると、当該受信情報の送信先が自ノードであるか否かを判定する。具体的には、宛先判定部22は、受信情報に含まれる送信先ノードのIDが、自ノードのIDである場合、受信情報の宛先が自ノードであると判定する。
中継情報記憶部23は、宛先判定部22により、自ノードが宛先と判定された受信情報を、中継情報として一時的に記憶する。
送信情報生成部24は、中継情報記憶部23に記憶された中継情報、及び、センサ情報記憶部30に記憶されたセンサ情報に基づいて、送信情報を生成する。送信情報は、自ノードのIDとホップ数、センサ情報及び送信先ノードのID等の情報を、中継情報に付加することにより生成される。送信情報生成部24により生成された送信情報は、通信制御部21により送信される。
送信先ノード決定部25は、通信制御部21から受信情報を受け付けると、当該受信情報に含まれる周辺ノード情報を、周辺ノード情報記憶部26に記憶する。そして送信先ノード決定部25は、一定期間以上または規定のタイミングまでに、周辺ノード情報記憶部26に記憶された周辺ノード情報に基づいて、送信情報の送信先ノードを決定する。
周辺ノード情報は、自ノードの周辺にあるノードを特定するための情報である。周辺ノード情報は、例えば受信情報を送信したノードのID、リンク情報、ホップ数及び経路情報等を含む。リンク情報は、例えば通信品質を示す指標、電力情報及び通信負荷情報等を含む。通信品質を示す指標は、例えば受信電力及びパケット誤り率等である。電力情報は、例えば電池残量及び発電量情報等である。通信負荷情報は、例えば接続数情報及びスループット等である。
経路情報は、経路全体の通信品質を示す指標、経路全体の電力情報、及び、通信負荷情報を含む。経路全体の通信品質を示す指標は、例えばETX(Expected Transmission Count)、及び、パケット誤り率等である。経路全体の電力情報は、例えば経路上の一部または全ノードの電池残量、及び、発電量から算出されたメトリック等である。通信負荷情報は、例えば経路上のノードの最大中継ノード数、及び、スループット値等である。
上りリンクの場合、送信先ノードは親ノードとなる。送信先ノード決定部25は、周辺ノード情報記憶部26で記憶された周辺情報に基づいて、送信先ノードを決定する。上り通信のみの場合には、送信先ノードが常に親ノードとなる。送信先ノード決定部25は、例えば受信情報に含まれるホップ数が、自ノードのホップ数より1小さいノードのうち、無線信号の信号強度が最も大きいノードを、送信先ノードに決定する。
また、送信先ノード決定部25は、決定した送信先ノードに基づいて、自ノードのホップ数を決定する。送信先ノード決定部25は、例えば上述の方法で送信先ノードを決定した後、自ノードのホップ数を、送信先ノードのホップ数より1大きいホップ数に決定する。
送受信リソース決定部27は、上述のフレーム情報に基づいて、自ノードが送信情報を送信する送信時間(上述のタイムスロット)を決定する。送信時間を決定する方法の詳細については後述する。フレーム情報は、フレーム情報記憶部28に予め記憶されていてもよいし、無線通信により、フレーム情報記憶部28に記憶及び更新されてもよい。
送受信リソース決定部27は、送信時間を決定する前に、同期処理を行ってもよい。同期処理は、自ノードでカウントしている時刻を、他のノードとの間で同期させる処理である。
送受信リソース決定部27は、例えば通信制御部21により受信された受信情報に含まれる送信元ノードのホップ数及びIDと、フレーム情報と、に基づいて、送信元ノードの送信時間(自ノードの受信時間)を決定する。送受信リソース決定部27は、この送信時間の開始時刻に自ノードの通信制御部21による信号処理時間を加算した第1の時刻と、自ノードでカウントしている第2の時刻と、を比較することにより同期処理を行うことができる。
同期処理の方法は任意でよい。同期処理は、例えば補正値を、第2の時刻に加えるか、または第2の時刻から差し引くことにより行われる。
補正値は、例えば第1の時刻と第2の時刻との差分、及び、時間経過に対する当該差分の標本値等を用いて、最小二乗法等により水晶発振子の周波数ドリフトを計算した結果に基づく。さらに、補正値には、送信元ノードからの無線信号の伝播に要する時間を加算または減算してもよい。
送受信リソース決定部27は、自ノードのホップ数、自ノードのID、フレーム情報、及び、継続判定部32による送受信の継続判定に基づいて、自ノードの送信タイミングと受信タイミングとを決定する。また、送受信リソース決定部27は、親ノード及び子ノードの送信タイミングと、継続判定部32による送受信の継続判定に基づいて、自ノードの受信タイミングを決定する。
センサ情報取得部29は、送受信リソース決定部27で決定されたタイムスロットを基準に、センサ情報を取得するタイミングを決定する。センサ情報取得部29は、決定されたタイミングで外部のセンサ装置からセンサ情報を取得する。
センサ情報記憶部30は、センサ情報取得部29により取得されたセンサ情報を記憶する。
状態制御部31は、電源が投入されている間、無線通信装置20の動作状態に拘らず機能する。状態制御部31は、時間をカウントし、カウントした時間と、送信先ノード決定部25により決定された自ノードのホップ数と、送受信リソース決定部27により決定された送信時間及び受信時間と、に基づいて、通信制御部21の動作状態を、スリープ状態と起床状態との間で制御する。
スリープ状態は、例えば、無線通信装置20の演算処理及び通信機能等が停止し、時間のカウントのみを行う状態である。スリープ状態では、情報の送受信が行われないため、無線通信装置20の消費電力が低くなる。以下では、無線通信装置20が、情報の送受信を可能な状態を起床状態という。また、無線通信装置20が起床状態からスリープ状態に移行することを、「スリープする」という。また、無線通信装置20が、スリープ状態から起床状態に移行することを「起床する」という。
継続判定部32は、フレーム情報と、接続されている子ノードの情報と、子ノードからの受信情報と、親ノードへの送信結果とに基づき、スーパーフレーム内の以降の送受信を継続するか否かを判定する。継続判定の詳細な方法の説明は後述する。
なお上述の機能ブロックの構成は、一例であり、上述の機能ブロックの構成は適宜、変更してもよい。例えば、通信制御部21と継続判定部32とを1つの機能ブロックにより実現してもよい。また例えば、送信先ノード決定部25と送受信リソース決定部27とを、1つの決定部として実現してもよい。
次に実施形態の無線通信装置20の状態遷移の例について説明する。
[状態遷移の例]
図8は実施形態の無線通信装置20の処理状態の遷移の例を示す図である。
無線通信装置20では、初期化処理、スリープ制御処理、親ノード探索受信処理、フレーム終端処理、親ノードデータ受信処理、子ノードデータ受信処理、自ノードデータ送信処理、接続要求受信処理、接続要求送信処理及びセンサ情報取得処理が行われる。接続要求受信処理、接続要求送信処理及びセンサ情報取得処理は、必要に応じて行われるオプションの処理である。
無線通信装置20は、起動後に初期化処理が行われ後に、スリープ制御処理が行われる。
初期化処理は、ハードウェア、インターフェース、オプション機能、各ソフトウェアモジュール及び変数の初期値を設定する処理である。
スリープ制御処理は、次のタスクまでの時間を取得し、RTCの割り込み周期を設定し、スリープモードに設定する処理と、当該割り込みにより起床した際に、RTCの割り込み周期を再設定する処理とを含む。スリープ制御処理は、状態制御部31により行われる。
フレーム終端処理は、現在のフレームで取得した情報に応じた処理と、次のフレームで実施する処理の登録等を行う処理である。具体的には、フレーム終端処理は、接続先の親ノードの選定処理、フレーム長の調整処理、同期処理、フレーム番号の更新処理、及び、タイムスロット番号の折り返し処理等を含む。
さらに、スーパーフレームの終端では、フレーム終端処理は、スーパーフレームで取得した情報に応じた処理と、次のスーパーフレームで実施する処理の登録処理等を含む。具体的には、スーパーフレームの終端では、フレーム終端処理は、親ノードの選定に応じたタスクの追加処理、センサに応じたタスクの追加処理、スーパーフレーム長の調整処理、スーパーフレーム番号の更新処理、及び、フレーム番号の折り返し処理等を含む。フレーム終端処理は、継続判定部32により行われる。
親ノード探索受信処理は、自ノードの起床処理、受信待機、受信処理、及び、受信情報に含まれる周辺ノード情報を周辺ノード情報記憶部26に記憶する処理等を含む。
親ノードデータ受信処理は、自ノードの起床処理、受信待機、取得したフレーム情報に基づくフレーム構成の更新、同期情報の取得、及び、同期処理等を含む。親ノードデータ受信処理は、受信結果を示す確認応答信号の送信処理を更に含んでいてもよい。
子ノードデータ受信処理は、自ノードの起床処理、受信待機、受信処理、受信情報を中継情報記憶部23に記憶する処理等を含む。子ノードデータ受信処理は、受信結果を示す確認応答信号の送信処理を更に含んでいてもよい。
自ノードデータ送信処理は、自ノードの起床処理、及び、送信データ生成処理等を含む。取得時間が閾値以下のセンサ情報であれば、センサ情報の取得処理も、自ノードデータ送信処理で実施してもよい。自ノードデータ送信処理で送信される送信情報は、上述のパケット(図3参照)により送信される。また、自ノードデータ送信処理で、確認応答の受信処理を実施してもよく、確認応答の内容に応じて送信データをバッファからクリアし、再度送信処理を実施してもよい。すなわち、処理部は、親ノードが受信に成功していないことを示す確認応答を受信した場合、送信処理済みの送信データを再度送信処理してもよい。
センサ情報取得処理は、自ノードの起床処理、及び、取得時間が閾値以上のセンサ情報を取得し、当該センサ情報をセンサ情報記憶部30に記憶させる処理等を含む。センサ情報取得処理は、センサ情報を取得した時間を示す時間情報を、当該センサ情報と合わせて、センサ情報記憶部30に記憶する処理を含んでいてもよい。なお時間情報は、スーパーフレームの番号、フレームの番号、サブフレームの番号、及び、タイムスロットの番号でもよい。
接続要求送信処理は、自ノードの起床処理、接続を要求する種別の接続要求の生成処理、送信先ノード決定部25により決定されたノードに接続要求を送信する処理、接続要求に対する確認応答信号の受信処理、及び、確認応答信号の受信結果に応じた処理等を含む。
接続要求受信処理は、自ノードの起床処理、受信待機、子ノード受信タスクの登録処理等を含む。接続要求受信処理は、受信結果を確認応答信号で送信する処理を含んでいてもよい。
次に実施形態の通信制御方法の例について説明する。
<通信制御方法の例1>
図9は実施形態の通信制御方法の例1を示すシーケンス図である。図9の例では、無線通信装置20の初期接続が終了後の状態における動作の例について説明する。なお初期接続時の動作については後述する。
図9では、説明のため、集約装置10をCで示し、無線通信装置20をNで示す。またNx(1≦x≦3)は、ホップ数がxの無線通信装置20を示す。また図9の例では、ホップ数が3の無線通信装置20が4つあるので、Nx−y(1≦y≦4)により識別する。
図9の例では、スーパーフレームは、4つのフレームを含む。またフレームは、4つのサブフレームを含む。スーパーフレームにおいて無線通信システムに含まれる複数の無線通信装置の送信データの全部が集約装置に集約される。
図9の例では、送受信リソース決定部27は、各ノードに割り当てられるサブフレームを、例えば当該ノードのホップ数を、フレームに含まれるサブフレームの数で割った余り(剰余)により決定している。
各フレームに含まれる1番目のサブフレームは、送受信リソース決定部27により、ホップ数が3のノード(N3−1〜N3−4)に割り当てられている。
各フレームに含まれる2番目のサブフレームは、送受信リソース決定部27により、ホップ数が2のノード(N2)に割り当てられている。
各フレームに含まれる3番目のサブフレームは、送受信リソース決定部27により、ホップ数が1のノード(N1)に割り当てられている。
各フレームに含まれる4番目のサブフレームは、送受信リソース決定部27により、ホップ数が0のノード(C)に割り当てられている。すなわち、集約装置10のホップ数は、0とみなされており、図9では最終タイムスロットが、集約装置10に割り当てられる。
サブフレームとホップ数との対応は、図9の例に限られないが、図9のように割り当てることにより、各ノードから集約装置10への上り通信の中継伝送の遅延時間をホップ数に基づき計算される期間以内に保証することができる。
また、各サブフレームに含まれるタイムスロットが、送受信リソース決定部27により、ノードの識別情報に基づいて、各ノード(C及びN1〜N3−4)に割り当てられている。
各ノードは、スーパーフレームあたりのフレーム数、フレームあたりのサブフレーム数、及び、サブフレームあたりのスロット数を、フレーム情報として共有する。これにより各ノードの送受信リソース決定部27は、ノードのIDから自ノードの送信に使用可能なタイムスロット、及び、ホップ数から自ノードの送信に使用可能なサブフレームを、自律的に決定することができる。
図9の例では、スーパーフレーム先頭のフレームで、ホップ数が3のノード(N3−1〜N3−4)により送信された送信情報が、ホップ数が2のノード(N2)により受信される。ホップ数が2のノード(N2)が、当該フレーム内で、ホップ数が1のノード(N1)に、自ノードのセンサ情報と子ノードのセンサ情報とを含む送信情報を送信する。しかしホップ数が2のノード(N2)が、送信情報を全て送りきることができずに、送りきれなかった送信情報を、次のフレームで送信している。ホップ数が3のノード(N3−1〜N3−4)は、先頭のフレームで送信し終えたため、2番目のフレームでは送受信のために起床することなくスリープしている。3番目以降のフレームでは、ホップ数が2のノード(N2)と、ホップ数が1のノード(N1)も送受信のために起床することなくスリープすることができる。これにより、中継伝送のために必要最小限の起床回数を実現することができる。
以下、図9の例について詳細に説明する。
1番目のフレームに含まれる1番目のサブフレームでは、ホップ数が3のノード(N3−1〜N3−4)の送信情報が、ホップ数が2のノード(N2)へ送信されている。図9の例では、送信情報に終了フラグ(F)が付与されているため、ホップ数が3のノード(N3−1〜N3−4)の送信処理は、1番目のフレームで終了する。
1番目のフレームに含まれる2番目のサブフレームでは、ホップ数が2のノード(N2)の送信情報が、ホップ数が1のノード(N1)、及び、ホップ数が3のノード(N3−1〜N3−4)へ送信されている。図9の例では、送信情報に終了フラグ(F)が付与されていないため、ホップ数が2のノード(N2)の送信処理は、2番目のフレームでも行われる。なおホップ数が3のノード(N3−1〜N3−4)は、1番目のフレームに含まれる2番目のサブフレームで送信された送信情報を受信することにより、1番目のフレームに含まれる1番目のサブフレームで行われた送信処理が正常に終了したことを確認する。
1番目のフレームに含まれる3番目のサブフレームでは、ホップ数が1のノード(N1)の送信情報が、ホップ数が0のノード(C)、及び、ホップ数が2のノード(N2)へ送信されている。図9の例では、送信情報に終了フラグ(F)が付与されていないため、ホップ数が1のノード(N1)の送信処理は、2番目のフレームでも行われる。なおホップ数が2のノード(N2)は、1番目のフレームに含まれる3番目のサブフレームで送信された送信情報を受信することにより、1番目のフレームに含まれる2番目のサブフレームで行われた送信処理が正常に終了したことを確認する。
2番目のフレームに含まれる2番目のサブフレームでは、ホップ数が2のノード(N2)の送信情報が、ホップ数が1のノード(N1)へ送信されている。図9の例では、送信情報に終了フラグ(F)が付与されているため、ホップ数が2のノード(N2)の送信処理は、このサブフレームで終了する。
2番目のフレームに含まれる3番目のサブフレームでは、ホップ数が1のノード(N1)の送信情報が、ホップ数が0のノード(C)、及び、ホップ数が2のノード(N2)へ送信されている。図9の例では、送信情報に終了フラグ(F)が付与されているため、ホップ数が1のノード(N1)の送信処理は、このサブフレームで終了する。なおホップ数が2のノード(N2)は、2番目のフレームに含まれる3番目のサブフレームで送信された送信情報を受信することにより、2番目のフレームに含まれる2番目のサブフレームで行われた送信処理が正常に終了したことを確認する。
各フレームの4番目のサブフレームでは、ホップ数が0のノード(C)が、基準信号を送信している。
各ノードの状態制御部31は、自ノードが送信処理または受信処理を行うタイムスロット以外のタイムスロットでは、スリープ状態に遷移する。具体的には、スーパーフレームのうち、送信情報を送信処理した後のフレームにおいてスリープ状態である。集約装置からのホップ数が大きい無線通信装置ほど、前記第1期間のうちの早いフレームからスリープ状態になる。これにより、ノードの消費電力を低減することができる。
次に実施形態の無線通信装置20が子ノードから受信情報を受信する方法の例について説明する。
図10は実施形態の無線通信装置20が子ノードから受信情報を受信する方法の例を示すフローチャートである。図10では、自ノードとの接続確立後に子ノードから受信情報を受信する方法について説明する。そのため、図10では、親ノードから受信情報を受信する方法、及び、親ノードとの接続確立のための制御データの送受信の方法等については説明しない。親ノードから受信情報を受信する方法、及び、親ノードとの接続確立方法の説明については後述する。
図10のフローチャートは、スーパーフレームの先頭または終端のタイミングから開始する。無線通信装置20は、受信に関しては、自ノードに接続する子ノードが存在しなければ、スリープに入り、スーパーフレーム終端まで子ノードの受信は行わない。
はじめに、状態制御部31が、自ノードに接続する子ノードが存在するか否かを判定する(ステップS1)。子ノードが存在する場合(ステップS1、Yes)、状態制御部31は、次回、子ノードから受信情報を受信する子ノード受信タスクを登録する(ステップS2)。子ノードが存在しない場合(ステップS1、No)、処理はステップS3に進む。
子ノード受信タスクのタイミングは、子ノードのホップ数、及び、子ノードのIDにより決定される。状態制御部31は、接続を受け付けている子ノードに対して、それぞれの子ノード受信タスクを登録した後、次回の子ノード受信タスクの開始時刻までの期間、自ノードをスリープ状態にする(ステップS3)。
次に、状態制御部31は、動作タイミングがスーパーフレームの終端になったか否かを判定する(ステップS4)。スーパーフレームの終端になった場合(ステップS4、Yes)、子ノードの送信継続情報の受信状態をリセットするため、ステップS1に戻る。スーパーフレームの終端になっていない場合(ステップS4、No)、処理は、ステップS5に進む。
次に、状態制御部31は、子ノード受信タスクの開始時刻になったか否かを判定する(ステップS5)。子ノード受信タスクの開始時刻になっていない場合(ステップS5、No)、スリープ状態を継続する(ステップS3)。
子ノード受信タスクの開始時刻になった場合(ステップS5、Yes)、状態制御部31が、RTCの割り込み等によりスリープ状態から、自ノードを起床させることにより、通信制御部21を、受信待機させる。これにより通信制御部21は、受信処理を行う(ステップS6)。
次に、通信制御部21は、受信待機中に、子ノードからの受信情報の受信に成功した場合(ステップS7、Yes)、当該受信情報を、中継情報として中継情報記憶部23に記憶する。そして通信制御部21は、送信の継続又は終了を示す情報(終了フラグ)が、送信ヘッダ情報に含まれているか否かを確認する(ステップS8)。
終了フラグ(F)が含まれている場合(ステップS8、Yes)、処理はステップS3に戻る。すなわち状態制御部31が、当該スーパーフレームにおいて子ノード受信タスクを登録することなくスリープモードに移行する。
終了フラグ(F)が含まれていない場合(ステップS8、No)、処理はステップS2に戻る。すなわち状態制御部31が、次回の子ノード受信タスクを登録した後に、スリープモードに移行する。次回とは、例えば次のフレームを指す。
なお、子ノード受信タスクの登録は、次回、子ノードが送信機会を得るまでの時間であればいかなるタイミングで行われてもよい。例えば、状態制御部31は、終了フラグの有無を子ノード別に記憶しておき、後から同じタイミングで子ノード受信タスクを登録してもよい。具体的には、状態制御部31は、自ノードを一旦スリープモードに移行させ、フレーム終端または先頭で、自ノードを起床させたときに、送信を継続する子ノードの子ノード受信タスクをまとめて登録してもよい。
子ノード受信タスクは、1つのタイムスロットの期間に限らず、受信処理やその事前処理と事後処理に必要な期間を考慮して期間を設定されてもよい。
次に、通信制御部21は、受信待機中に、子ノードからの受信情報の受信に成功しなかった場合(ステップS7、No)、当該子ノードとの接続を維持するか否かを判定する(ステップS9)。
接続を維持する場合(ステップS9、Yes)、処理はステップS2に戻る。すなわち、状態制御部31は、子ノードとの接続が維持される場合にのみ次回の当該子ノードの子ノード受信タスクを登録する。
接続を維持しない場合(ステップS9、No)、処理はステップS3に戻る。
上述のステップS9において、状態制御部31は、例えば受信成功が確認できない回数が規定回数未満の場合にのみ、子ノード受信タスクを登録する。
逆に、規定回数以上、受信成功が確認できなければ、通信制御部21が、当該子ノードとの接続を切断する切断処理を行う。切断処理は、子ノードとの接続を切断するか否かを判定する処理、及び、当該子ノードとの接続を切断した場合に、周辺ノード情報記憶部26から当該子ノードの情報を削除する処理等を含む。そして状態制御部31が、通信制御部21により子ノードとの切断処理が行われた後、当該子ノードの子ノード受信タスクの登録を行わずに、自ノードをスリープモードに移行させる。
なお、上述のステップS9の処理を省略してもよい。例えば状態制御部31は、子ノード受信タスクの期間中に、受信に失敗または受信が確認されなかった場合、次回の当該子ノードの子ノード受信タスクを常に登録してもよい。
また、上述のステップS8において、状態制御部31は、子ノードから受信した受信情報に終了フラグが含まれていても、さらに規定の回数だけ子ノード受信タスクを登録し、当該受信タスクで当該子ノードの送信信号を受信した場合には、確認応答を返す目的で送信タスクを登録してもよい。これは、子ノードが自ノードの送信信号を受信できず到達確認ができない場合に、送信を継続し無駄に電力消費することを回避するためである。また、代替の方法として、状態制御部31は、子ノード受信タスクを登録せずに、規定の回数だけ送信タスクを登録し、確認応答のみを送信してもよい。
次に、実施形態の無線通信装置が、親ノードに送信情報を送信する方法、及び、親ノードから受信情報を受信する方法の例について説明する。
図11は、実施形態の無線通信装置が、親ノードに送信情報を送信する方法、及び、親ノードから受信情報を受信する方法の例を示すフローチャートである。図11のフローチャートは、図10と同様に、親ノードとの接続確立後のスーパーフレームの終端または先頭のタイミングから開始する。
はじめに、状態制御部31が、次回、自ノードから送信情報を送信する自ノード送信タスクと、次回、親ノードから受信する受信情報の親ノード受信タスクとを登録する(ステップS21)。スーパーフレームの終端または先頭のタイミングでは、次回とは、すなわちスーパーフレームの先頭のフレーム内のタイミングを指す。
自ノード送信タスクの開始タイミングは、前述の通り、自ノードのホップ数と、自ノードのIDとにより決定される。親ノード受信タスクについても、親ノードのホップ数と、親ノードのIDとにより決定される。次に、状態制御部31は、次回のタスク開始時刻までの期間、自ノードをスリープモードにする(ステップS22)。
次に、状態制御部31は、動作タイミングがスーパーフレームの終端になったか否かを判定する(ステップS23)。スーパーフレームの終端になった場合(ステップS23、Yes)、ステップS21に戻る。このとき、継続判定部32は、スーパーフレーム終端または先頭において、送信継続情報を、送信終了を示さない情報(True(継続))に初期化してもよい。
スーパーフレームの終端になっていない場合(ステップS23、No)、処理は、ステップS24に進む。
<自ノード送信タスク>
次に、状態制御部31は、自ノード送信タスクの開始時刻になったか否かを判定する(ステップS24)。自ノード送信タスクの開始時刻になっていない場合(ステップS24、No)、処理はステップS29に進む。
自ノード送信タスクの開始時刻になった場合(ステップS24、Yes)、通信制御部21が、RTCの割り込み等により起床し、送信情報の送信処理を開始する。具体的には、送信情報生成部24は、子ノードから受信した受信情報が中継情報記憶部23に記憶されている場合、当該受信情報と、自ノードのセンサ情報とを合わせて1つのパケットを構成する。センサ情報は、例えばセンサ情報記憶部30に記憶されている。また、送信情報生成部24は、パケットのヘッダ情報に送信継続情報を付加する。
次に、継続判定部32が、当該スーパーフレームにおいて、全ての子ノードから終了フラグを受信済みであるか否かを判定する(ステップS25)。全ての子ノードから終了フラグを受信済みでない場合(ステップS25、No)、処理はステップS28に進む。
全ての子ノードから終了フラグを受信済みである場合(ステップS25、Yes)、継続判定部32は、送信情報が1度に送信可能なデータサイズ以下であるか否かを判定する(ステップS26)。送信情報が1度に送信可能なデータサイズ以下でない場合(ステップS26、No)、処理はステップS28に進む。
送信情報が1度に送信可能なデータサイズ以下である場合(ステップS26、Yes)、送信情報生成部24が、送信情報に含まれる送信継続情報の終了フラグを有効にする(ステップS27)。1度で送信情報が送信できる条件は、例えば当該自ノード送信タスク期間中に1パケットのみ送信するのであれば、自ノードのセンサ情報と、中継情報記憶部23に記憶されている子ノードのセンサ情報とを合わせて1パケットに収めることができることである。
なお、自ノードに接続されている子ノードがない場合、1度で送信情報が送信できる条件は、自ノードの送信対象データ(自ノードで取得されたセンサ情報等)が1パケットに収められることである。
次に、通信制御部21が、送信情報を親ノードに向けて送信する(ステップS28)。そして状態制御部31が、自ノードをスリープモードにする(ステップS22)。なお、通信制御部21が、当該自ノード送信タスクにおいて即座に確認応答を受信し、当該確認応答の確認処理結果に応じて、当該自ノード送信タスク期間内で再送を実施してもよい。
<親ノード受信タスク>
状態制御部31は、親ノード受信タスクの開始時刻になったか否かを判定する(ステップS29)。親ノード受信タスクの開始時刻になっていない場合(ステップS29、No)、処理はステップS22に戻る。
親ノード受信タスクの開始時刻になった場合(ステップS29、Yes)、通信制御部21は、RTCの割り込み等により起床し、受信待機する。そして通信制御部21は、親ノードから受信情報を受信する(ステップS30)。
次に、通信制御部21は、受信情報の受信に成功したか否かを判定する(ステップS31)。受信情報の受信に成功していない場合(ステップS31、No)、処理はステップS21に戻る。すなわち状態制御部31が、次回の自ノード送信タスクと親ノード受信タスクとを登録し(ステップS21)、自ノードをスリープモードにする(ステップS22)。
受信情報の受信に成功した場合(ステップS31、Yes)、通信制御部21が、前回の自ノード送信タスクで送信された送信情報の送信が成功したか否かを判定する(ステップS32)。具体的には、通信制御部21は、例えば親ノードから受信した受信情報(親ノードにより送信された送信情報)から、前回の自ノード送信タスクで送信された送信情報の送信が成功したか否かを判定する。
送信情報の送信が成功しなかった場合(ステップS32、No)、処理はステップS21に戻る。すなわち状態制御部31が、次回の自ノード送信タスクと親ノード受信タスクとを登録し(ステップS21)、自ノードをスリープモードにする(ステップS22)。
送信情報の送信が成功した場合(ステップS32、Yes)、処理はステップS22に戻る。このとき、通信制御部21は、親ノードに到達が確認された送信情報を、送信バッファ(または中継情報記憶部23及びセンサ情報記憶部30)から削除する。
上述の図11の説明における次回とは、例えば次のフレームを指す。なお、自ノードが、一度スリープに移行した後に、フレーム終端または先頭で起床したときに、状態制御部31が、自ノード送信タスクと親ノード受信タスクとを登録してもよい。自ノード送信タスクの登録は、次回の自ノードの送信機会までに実施されていれば、いかなるタイミングで行われてもよい。同様に、親ノード受信タスクの登録は、次回の親ノードの送信機会までに実施されていれば、いかなるタイミングで行われてもよい。
また、通信制御部21は、親ノードの受信に規定回数以上失敗した場合、切断を判断し、再接続の処理に移行してもよい。再接続のための処理については、図19を使用して後述する。
なお、実施形態におけるホップ数とサブフレームとの対応によれば、スーパーフレーム内で自ノード送信タスクよりも親ノード受信タスクが先に実行されることもある。
<通信制御方法の例2>
図12は実施形態の通信制御方法の例2を示すシーケンス図である。図12の例では、図9のネットワークトポロジに、ホップ数が4のノード(N4)を加えている。ホップ数が4のノード(N4)の親ノードは、ノードN3−2である。
図12の例では、ホップ数が3のノード(N3−2)は、スーパーフレームの先頭のサブフレームで、送信情報201を送信しているが、接続を認識している子ノード(N4)の受信情報を受信していない。そのため、ホップ数が3のノード(N3−2)から送信された送信情報201に含まれる送信継続情報の終了フラグは有効にされていない。
ホップ数が3のノード(N3−2)は、先頭フレーム内の4番目のサブフレーム(最終サブフレーム)で、子ノード(N4)から、受信情報203(終了フラグを含む送信情報202)を受信している。ホップ数が3のノード(N3−2)は、次の送信機会、すなわち、スーパーフレームの2番目のフレームの最初のサブフレームで、子ノード(N4)から受信された受信情報に含まれるセンサ情報と終了フラグとを含む送信情報204を、ホップ数が2のノード(N2)に送信する。本具体例により、スーパーフレーム内で最初の送信機会が親ノードよりも子ノードの方が後になっても、中継伝送と適切なスリープ(必要最小限の送受信のための起床)が行えることを示した。
また、図12の例では、ホップ数が2のノード(N2)の中継伝送用バッファ(中継情報記憶部23)の記憶領域が飽和し、ホップ数が3のノードのうち1台(N3−4)の受信をキャンセルした例を示す。具体的には、状態制御部31は、子ノード受信タスクの開始直後に中継情報記憶部23の残容量が閾値未満であれば、当該子ノード受信タスク内の処理を実施せずに、自ノードをスリープにする。
また、ホップ数が2のノード(N2)は、次回の自ノード送信タスクで、通常の受信失敗と区別する目的で、制御情報に中継情報記憶部23の残容量低下により受信処理をキャンセルしたことを示す情報を、送信情報205に設定する。
子ノード(N3−4)は、親ノード受信タスクで、送信情報205を受信情報206として受信すると、再送回数、及び、切断までの送信失敗回数を調整してもよい。子ノード(N3−4)は、次の送信機会、すなわち2番目のフレームの先頭サブフレームで、送信情報207を送信する。
図12の例では、ホップ数が2のノード(N2)が、先頭フレームで送信情報205の送信に成功し、中継情報記憶部23の記憶領域が空いたため、2番目のフレームで、送信情報207の受信と、当該送信情報207に含まれるセンサ情報を含む送信情報208の中継伝送が成功している。
ホップ数が2のノード(N2)は、2番目のフレームまでの処理で、接続を認識している全ての子ノード(N3−1〜N3−4)から終了フラグを受信し、かつ、自ノードのセンサ情報の送信に成功している。そのため、ホップ数が2のノード(N2)は、3番目以降のフレームは送受信のために起床しない。本具体例により、中継情報記憶部23の容量制限により受信できない場合に、受信処理を実施しないことで省電力性を高めることができることを示した。
<通信制御方法の例3>
図9及び図12では、サブフレーム中のスロット数が、無線通信装置20の台数よりも多いので、集約装置10が各サブフレーム内で固定のタイムスロットを、各無線通信装置20の送信用に割り当てることができる。
図13は実施形態の通信制御方法の例3を示すシーケンス図である。以下、図13を使用して、サブフレーム中のタイムスロット数が、無線通信装置20の台数と同数の場合に、集約装置10が送信するタイミングを流動的に決定する方法について説明する。
図13は、図9に比べてホップ数が3のノードの数が、4から8に増加している。また、ホップ数が1のノードと、ホップ数が2のノードがそれぞれ1ずつあるため、ノードの数は全部で10である。
一方、サブフレーム中のタイムスロット(a〜j)の数は10である。これまで説明したように、集約装置10の送信用のタイムスロットを、サブフレーム内の最終タイムスロット等に固定的に割り当てると、タイムスロットが1つ足りない。そのため、ネットワークトポロジ、及び、フレーム中のサブフレーム数の設定等によっては、干渉により通信品質が劣化してしまう恐れがある。
そこで、サブフレーム中のタイムスロットの数が、無線通信装置20の数と同数であっても、上記問題を回避する集約装置10の送信用タイムスロットの決定方法として、ホップ数が1のノードのIDに割り当てられたタイムスロットを使用する。
図13の例では、集約装置10は、ホップ数が0のノードに割り当てられたサブフレームに含まれるタイムスロットのうち、ホップ数が1のノード(N1)のタイムスロットを使用して、送信情報211、212及び213を送信している。
なお、この決定方法を使用するためには、フレーム内に少なくとも2以上のサブフレームが必要となる。上述のように集約装置10の送信用タイムスロットを決定することにより、周波数利用効率を高めることができる。また、無線通信装置20の収容台数を増加させることができる。
なお、ネットワーク80の構成の初期段階等、ホップ数が1のノードが存在しない場合は、集約装置10は、サブフレーム内の最終タイムスロット等を使用して、固定的に送信情報を送信してもよい。ネットワーク80の構成中の通信制御方法の詳細は、後述する具体例で説明する。
<通信制御方法の例4>
図14は実施形態の通信制御方法の例4を示すシーケンス図である。図14の例は、サブフレーム中のタイムスロットの数が、無線通信装置20の台数よりも多い場合の別の中継伝送の例を示す。図14では、ホップ数が3のノードが図13よりも1台少なくなっている。ホップ数が3の7台のノード(N3−1〜N3−7)が、ホップ数が2のノード(N2)に接続されている。
図14の中継伝送例がこれまで説明した中継伝送と異なる点は、中継伝送を連続するサブフレームで実施する点である。言い換えれば、親ノードは、スーパーフレーム内で子ノードから受信情報を受信した後は、毎サブフレームに送信機会が与えられる。これにより、図14に例で示す中継伝送が実現される。毎サブフレームに送信機会が与えられる送信方法を、サブフレーム連続送信という。
具体的には、先頭のフレームの先頭のサブフレームでは、ホップ数が2のノード(N2)が、ネットワーク80の末端のノード(N3−1〜N3−7)から送信された送信情報のうち、3つのノード(N3−1〜N3−3)の送信情報を受信情報として受信する。ホップ数が2のノード(N2)は、受信された受信情報を、中継情報として中継情報記憶部23に記憶する。そしてホップ数が2のノード(N2)は、中継情報記憶部23の容量が閾値を超えるため、4つのノード(N3−4〜N3−7)の受信情報の受信をキャンセルする。
先頭のフレームの2番目のサブフレームでは、ホップ数が2のノード(N2)は、自ノードの中継情報記憶部23に記憶されている中継情報の一部を1つのパケットにして送信する。そしてホップ数が2のノード(N2)は、パケットの送信後、例えば送信パケット内のデータを再送用バッファに制御情報と合わせて記憶する。制御情報は、再送回数等を含む。
先頭のフレームの3番目のサブフレームでは、ホップ数が2のノード(N2)は、親ノード(N1)の送信情報を受信することにより、前回、送信した送信情報の到達を確認する。ホップ数が2のノード(N2)は、到達が確認された場合、再送用バッファから、到達が確認されたデータをクリアする。
また、先頭のフレームの3番目のサブフレームでは、ホップ数が2のノード(N2)も、中継情報記憶部23に記憶されている中継情報の一部又は全てを送信する。
先頭のフレームの4番目のサブフレームでは、ホップ数が1のノード(N1)と、ホップ数が2のノード(N2)とが、前サブフレームに続いて、送信情報を送信する。
このサブフレーム連続送信の終了条件は、当該スーパーフレームにおいて接続を認識している全ての子ノードから終了フラグを受信し、かつ、当該子ノードから受信した受信情報と、自ノードの送信情報の送信を終えることである。
ホップ数が1のノード(N1)と、ホップ数が2のノード(N2)とは、送信バッファまたは中継情報記憶部23に送信対象中継情報がない場合は、送信をキャンセルしてもよい。
送信のキャンセル方法は任意でよい。例えば、送信のキャンセルは、自ノード送信タスク自体を次回の子ノード受信の後の送信機会に登録するか否かにより行ってもよい。また例えば、状態制御部31が、自ノード送信タスクは毎サブフレームに登録しておき、送信をキャンセルする場合は、自ノード送信タスク内で送信処理を実施せずに、自ノードをすぐにスリープに移行させてもよい。
<送信のキャンセルの連鎖の防止>
例えば、ホップ数が2のノード(N2)が、送信対象送信情報がなくなったが、全ての子ノードから終了フラグを受信していないときに、送信をキャンセルする場合について考える。この場合、親ノード(N1)は、子ノード(N2)からの送信情報を受信できないので、送信対象送信情報がない状態になる。これによりホップ数が1のノード(N1)も、送信をキャンセルすることになるので、送信のキャンセルが連鎖する。
送信のキャンセルによる切断を回避するため、通信制御部21は、データ部分を空にした送信情報を送信してもよい。また例えば、通信制御部21は、送信情報としてダミーデータを送信してもよい。
切断を判定する連続受信失敗回数の設定は、送信がキャンセルされる数の最大値に合わせて設定されてもよい。例えば図14の場合、送信をキャンセルする回数は、最大で3回(サブフレーム数4から1を引いた値)となる。そのため、親ノードが、子ノードとの切断を判定するために使用される受信失敗回数を、連続4回以上としてもよい。
さらに、通信制御部21は、送信対象送信情報がなくなった場合、最後の送信においてその旨を通知してもよい。この情報を送信一時停止情報という。送信一時停止情報は、パケットのいかなるフィールドに含まれてもよい。送信一時停止情報は、例えば1ビットで表現することができる。
ただし、送信一時停止情報は、上述の送信継続情報とは異なり、親ノードは当該送信一時停止情報を受信すると、連続サブフレームの受信タスクは登録しないが、次回の子ノードの送信機会には子ノード受信タスクを登録する。具体的には、次回の子ノードの送信機会は、図14の例では、子ノードのホップ数をサブフレーム数で除算した余り(剰余)に対応する次回のサブフレームである。
図14に示す中継伝送を実現するための各ノードの処理は、基本的には図10及び図11で示したフローと変わらないが、次回の各タスクを登録する時刻及びタイミングのルールにおいて、図9及び図12に示した中継伝送と異なる。
また、通信制御部21は、子ノードを1以上持ち、通信情報を連続サブフレームで送信する場合、その旨を子ノード存在情報として、親ノードに通知してもよい。子ノード存在情報は、パケットのいかなるフィールドに含まれてもよい。子ノード存在情報は、例えば1ビットで表現することができる。
子ノード存在情報の通知により、親ノードは、子ノードがさらに子ノードを持ち、以降の連続するサブフレームで送信をするか否かを知ることができる。
子ノードがさらに子ノードを持つ中継ノードである場合、状態制御部31は、以降の子ノード受信タスクを連続するサブフレームの子ノードの送信用タイムスロットに対応させて登録する必要がある。本具体例のように、中継ノードは、連続するサブフレームで送信情報を送信することにより、送信バッファまたは中継情報記憶部23の容量が小さい場合でも、送信機会を多く得られる。これにより中継伝送を円滑に行うことができるので、送信先ノードの受信キャンセルの回数を抑え、送信元ノードの無駄な送信を抑制することができる。すなわち送信元ノードを省電力化することができる。
次に実施形態のネットワーク構成方法の例について説明する。
<初期接続先探索の例1>
図15A〜Cは、実施形態の初期接続先探索の例1を示すシーケンス図である。集約装置(C)と、2つのノード(N1及びN2)とが存在し、集約装置(C)とノード(N1)とは通信範囲にあり、ノード(N1)とノード(N2)とが通信範囲にある場合を例にして説明する。
図15A〜Cの例では、集約装置(C)に先に電源が投入されている場合(本実施形態の無線通信を実現するプロセスが起動されている場合)について説明するが、電源が投入される順番は任意でよい。
集約装置(C)は、各フレームの最終タイムスロットで、基準信号を送信する。ノード(N1)とノード(N2)は、電源投入後、初期化処理とスリープ制御処理を経て、親ノードデータ受信処理を開始する。
なお初期化後の親ノードデータ受信処理の実行前に、必ずしもスリープ制御処理を実行する必要はない。ノード(N1)とノード(N2)とは、親ノードデータ受信処理が開始されると、受信待機状態になる。
ノード(N1)は、基準信号221を、受信情報222として受信すると、当該受信情報222に含まれる周辺ノード情報を周辺ノード情報記憶部26に記憶し、当該受信情報222に含まれるフレーム情報をフレーム情報記憶部28に記憶し、集約装置(C)に同期する。
そしてノード(N1)は、次のスーパーフレームまでスリープする。なおノード(N1)は、次のスーパーフレーム先頭までのフレーム期間、受信待機してもよい。ノード(N1)は、この受信待機中に受信情報を受信した場合、同様に、当該受信情報に含まれる周辺ノード情報を周辺ノード情報記憶部26に記憶し、当該受信情報に含まれるフレーム情報により、フレーム情報記憶部28を更新する。
ノード(N1)は、次のスーパーフレームの先頭のフレームで、周辺ノード情報記憶部26に記憶されている周辺ノード情報に基づいて、親ノードを選定する。親ノードの選定方法は任意でよい。親ノードの選定方法は、例えば規定の受信電力閾値を満たす最小ホップ数のノードを選定する方法である。
集約装置(C)を親ノードとして選定する場合は、集約装置(C)は常時受信できるため、ノード(N1)が接続要求を示す送信情報223を送信するタイミングは、例えば図15Cに示すように次のスーパーフレームの先頭フレームである。
また、ノード(N2)は、ノード(N1)の送信情報223を、受信情報224として受信することにより、初めてフレーム情報を取得することができる。図15Cの例では、受信情報224が受信されたフレームが、スーパーフレームの先頭のフレームであるため、ノード(N2)は、この期間が終わるまで受信待機した後、ノード(N1)を親ノードとして選定する。
親ノードが集約装置(C)でない場合、接続要求を送信するタイミングを同一スーパーフレーム内の最終フレームとする。最終フレームとすることにより、次のスーパーフレームから送信情報の送信を開始することができるので、ネットワーク80に参加するまでの遅延時間を短くすることができる。
ネットワーク80に参加したノード(N1)は、自ノードへの接続を受け付けるために、規定のタイムスロットで接続受付を行う。規定のタイムスロットは、例えば自ノードのホップ数から2を引いた値をサブフレーム数で割った余り(剰余)に応じたサブフレームに含まれる自ノードのIDに対応したタイムスロットである。
規定のタイムスロットは複数あってもよい。例えば上述の例に加えて、自ノードのホップ数から1及び3等を引いた値を、サブフレーム数で割った余りに応じたサブフレームにおいても、接続受付を行ってもよい。接続受付用のタイムスロットを複数設定することにより、スーパーフレーム内でより多くの接続を受け付けることができるので、ネットワーク80の構築がスムーズに行われる。
ネットワーク80に参加したノード(N1)は、接続受付のタスクを、フレームの終端または先頭で登録する。接続要求するノード(N2)は、親ノード(N1)の接続受付のタイムスロットを特定し、当該タイムスロットで接続要求を示す送信情報225を送信する。送信情報225は、少なくとも自ノードのIDを含む。
親ノード(N1)は、送信情報225を、受信情報226として受信した場合、即座に確認応答を示す送信情報227を、子ノード(N2)に返信してもよい。
なお、集約装置(C)は、常時電源が投入されている場合でスリープによる省電力化が必要ない場合、常時受信が可能となるため、接続受付を特段設ける必要がない。ノード(N1)は、集約装置(C)に接続要求の信号を送信することなく(図15A及びB参照)、次のスーパーフレーム(図15C参照)で、送信情報223の送信を開始している。ノード(N1)が送信情報223を送信すると、ノード(N2)が当該送信情報223を、受信情報224として受信する。そしてノード(N2)が、受信情報224に含まれる周辺ノード情報を周辺ノード情報記憶部26に記憶する。
ノード(N2)は、ノード(N1)を親ノードに選定し、スーパーフレーム内の最終フレームで、上述のルールにより決定されたタイムスロットで接続要求を示す送信情報225を送信する。図15Cの例では、スーパーフレームの最終フレームの先頭サブフレームにおいて接続受付が行われ、確認応答を示す送信情報227が即座に返信されている。そして図15Cに示すスーパーフレームの次のスーパーフレームで、ノード(N2)が、送信情報の送信を開始する。無線通信システム100は、以上のネットワーク構築方法を使用することにより、より少ない消費電力で、ネットワーク80を構築していくことができる。
<初期接続先探索の例2>
図16A〜Cは、実施形態の初期接続先探索の例2を示すシーケンス図である。上述の図15A〜Cでは、サブフレーム内のタイムスロットの数が無線通信装置20の台数よりも多い場合に、集約装置10の送信タイムスロットを固定的に割り当てていた。図16A〜Cでは、サブフレーム内のタイムスロットの数が無線通信装置20の台数と同一の場合に、集約装置10の送信用タイムスロットを流動的に割り当てる場合について説明する。
図17を使用して、図16A〜Cのシーケンス図の動作を実現する集約装置10の動作方法について説明する。
図17は実施形態の集約装置10の送信タイミングを決定する方法の例1を示すフローチャートである。図17の例1は、サブフレーム内のタイムスロットの数が、無線通信装置20の台数と同一の場合に、集約装置10の送信用タイムスロットを決定する方法を示す。
はじめに、集約装置10の決定部16が、ホップ数が1のノードが存在するか否かを判定する(ステップS41)。ホップ数1のノードが存在する場合(ステップS41、Yes)、決定部16が、ホップ数が0のノードに割り当てられたサブフレームにおいて、ホップ数が1のノードのIDに対応付けられたタイムスロットに送信タスクを登録することにより、送信タイミングを決定する(ステップS42)。
ホップ数1のノードが存在しない場合(ステップS41、No)、決定部16は、フレームの最終タイムスロットで、固定的に基準信号を送信する送信タスクを登録することにより、送信タイミングを決定する(ステップS43)。なお固定的に基準信号を送信する送信タスクを登録するタイムスロットは、必ずしも最終タイムスロットでなくてもよい。
ホップ数が1のノードは、集約装置10が自ノードに割り当てられているタイムスロットを使用して送信情報を送信するため、当該タイミングに受信が行われるように親ノード受信タスクを登録する。
図16Aに戻り、集約装置(C)は、電源投入後(プロセス起動後)、最初のスーパーフレームでは、ホップ数が1のノード(N1)を認識していない状態なので、毎フレームの最終スロットで基準信号を示す送信情報を送信する。
次のスーパーフレームを示す図16Bでは、図15で説明したようにノード(N1)が先頭フレームで、基準信号を示す送信情報231を、受信情報232として受信する。
さらに次のスーパーフレームを示す図16Cでは、ホップ数が2のノード(N2)は、先頭フレームでノード(N1)により送信された送信情報233を、受信情報234として受信することにより、ホップ数1のノード(N1)の存在を認識する。
以降のフレームでは、集約装置(C)は、ホップ数が0のノードの送信用サブフレーム内のノード(N1)のタイムスロットで、基準信号を示す送信情報を送信する。
集約装置(C)は、ホップ数が1のノードが複数存在する場合は、その数だけ基準信号を示す送信情報を送信する。集約装置(C)の送信機会を増やすことで新たにネットワーク80に参加するノードがフレーム情報をいち早く取得し、次のスーパーフレームの先頭フレームまでスリープすることができるので、ノードを省電力化することができる。図16の具体例におけるノード(N2)の動作は、図15で説明したノード(N2)の動作と同様であるため説明を省略する。
図18は実施形態の集約装置の送信タイミングを決定する方法の例2を示すフローチャートである。図18の例2では、ステップS41−2が追加されている点が、図17のフローチャートとは異なる。図18のフローにより集約装置(C)の送信用タイムスロットを決定する場合、図16Cの2番目以降のフレームにおいて、集約装置(C)はフレーム内最終スロットのみで、基準信号を示す送信情報を送信する。ホップ数が1のノードが複数存在する場合に、図17のフローに比べ、集約装置(C)の送信回数を削減することができる。
<近傍探索及び再接続の例>
図19は実施形態の無線通信装置20の切断時の接続先探索の例を示すシーケンス図である。図19の例は、一度ネットワーク80に接続したノード(N2)が、親ノード(N1)との接続が切れた場合に、当該親ノード(N1)と再接続するまでの処理の例を示す。
ノード(N2)は、例えば送信情報の到達確認が、規定回数を超えてできなかった場合、接続先を新たに探索する。実施形態の中継伝送の仕組みによれば、スーパーフレームの先頭フレームで送信情報の送信が行われる可能性が高い。そのため、ノード(N2)は、スーパーフレーム先頭のフレームで受信待機に移行し、周辺ノード情報の収集を試みる。
さらに省電力性を高めるために、ノード(N2)は、先頭のフレームの中で、切断前の自ノードのホップ数と、例えば±1ホップに対応するサブフレームのみ受信待機することで、より短い受信待機時間での周辺ノード情報収集を行う。これを近傍探索と呼ぶ。
図19は、ノード(N2)が近傍探索した結果、再びノードN1の送信情報241を、受信情報242として受信し、当該スーパーフレームの最終フレームで接続要求を示す送信情報243を送信する場合を示す。
また、図19は、ノード(N2)が、近傍探索で周辺ノード情報を取得できなかった場合、または、取得できたが規定の受信電力を満たしていない等、親ノード選定の基準を満たすノードからの受信がなかった場合、受信待機時間を拡大させる場合を示す。受信待機時間の拡大は、例えばフレーム単位で行われる。
なお、ノード(N2)は、省電力性を向上させるために、例えば近傍探索を規定のスーパーフレームの数だけ実施し、それでも親ノードの選定ができなければ、受信待機時間拡大を実施してもよい。また例えば、ノード(N2)は、規定回数だけスーパーフレーム内の同範囲の近傍探索を繰り返してから、受信待機時間を拡大してもよい。また例えば、ノード(N2)は、受信待機時間を拡大するか否かの判定をすることなく、最初から全時間の受信待機を実施してもよい。
なお、ノード(N2)は、一度いずれかの親ノードに接続後、親ノード受信タスクの受信処理に失敗した回数が閾値以上の場合、または、親ノード受信タスクで受信された受信情報を使用して確認した到達確認の失敗の回数が閾値以上の場合、近傍探索処理をスキップし、接続要求を示す送信情報を、親ノードに送信してもよい。
以上説明したように、実施形態の通信装置20は、通信可能な時間の長さを示すフレームを使用して、時分割通信する。送受信リソース決定部27(決定部)が、フレームに含まれるサブフレームの数と、サブフレームに含まれるタイムスロットの数と、タイムスロットの長さとを含むフレーム情報、及び、通信装置20を識別する識別情報に基づいて、通信装置20による送信に使用可能なタイムスロットを決定する。また送受信リソース決定部27が、フレーム情報と、通信装置20から集約装置10までのホップ数とに基づいて、通信装置20による送信に使用可能なサブフレームを決定する。状態制御部31は、通信装置20が送信又は受信を開始するときに、通信装置20の動作状態をスリープ状態から起床状態に遷移させ、通信装置20が送信又は受信を終了したときに、通信装置20の動作状態を起床状態からスリープ状態に遷移させる。そして通信制御部21(継続判定部32)が、送信を継続するか否かを判定し、送信を継続する場合、通信装置20による送信に使用可能な次のタイムスロットを使用して送信し、受信を継続するか否かを判定し、受信を継続する場合、少なくとも1つの送信元ノードによる送信に使用可能な次のタイムスロットを使用して受信する。
実施形態の無線通信システム100によれば、時分割通信方式のネットワーク80において、集約装置10までセンサ情報が収集される際に、必要最小限の送受信のための起床により高い通信負荷に対応し、かつ、省電力性も実現することができる。
さらに、無線通信装置20が、接続先を探索する過程においても、周辺ノードが送信している可能性の高い期間から優先的に受信待機し、その他の期間は積極的にスリープ動作に入ることにより、消費電力を抑えることができる。
例えば震度計をセンサとして、建築物に設置するとともに、無線通信装置20でそのセンサ情報を取得することができる。無線通信装置20を既存の建築物に据え付ける場合、無線通信装置20を電池で駆動させることにより、設置場所の自由度が広がる。そして本実施形態の無線通信システム100を適用することにより、無線通信装置20の電池交換頻度を低くし、すなわちメンテンスコストを低くすることができる。また、マルチホップ通信により、例えば集約装置10の電源及び通信線等による設置場所の制約を緩和することができる。
その他の応用例として、実施形態の無線通信システム100は、温湿度計をセンサとする温湿度管理システムのセンサ情報、CO2センサ及び照度センサ等を用いた植物生育監視システムのセンサ情報、角速度センサを用いた河川氾濫監視システム及び法面監視システムのセンサ情報、水分量センサを用いた土砂崩れ検出システムのセンサ情報、放射線量計を用いた放射線量監視システムのセンサ情報、画像センサを用いた侵入者検出システムのセンサ情報、並びに、既存空調システムのログ情報等を無線収集することもできる。
実施形態の無線通信システム100によれば、大容量化のために通信機会を多く割り当てるが、以降の通信予定の情報を適宜共有することにより、最小限の起床回数での動作を実現することができるので、無線通信装置20の省電力化が可能となる。すなわち、本実施形態によると、省電力化に加えて大容量化を図ることができる。
<プログラムにより実現する場合>
上述の集約装置10の機能ブロック(図6参照)、及び、上述の無線通信装置20の機能ブロック(図7参照)のうち、プログラムにより実現可能な機能ブロックは、プログラムにより実現してもよい。
実施形態の集約装置10及び無線通信装置20で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、メモリカード、CD−R、及び、DVD(Digital Versatile Disc)等のコンピュータで読み取り可能な記憶媒体に記憶されてコンピュータ・プログラム・プロダクトとして提供される。
また実施形態の集約装置10及び無線通信装置20で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。
また実施形態の集約装置10及び無線通信装置20が実行するプログラムを、ダウンロードさせずにインターネット等のネットワーク経由で提供するように構成してもよい。
また実施形態の集約装置10及び無線通信装置20で実行されるプログラムを、ROM等に予め組み込んで提供するように構成してもよい。
実施形態の集約装置10及び無線通信装置20で実行されるプログラムは、実施形態の集約装置10及び無線通信装置20の機能構成のうち、プログラムにより実現可能な機能を含むモジュール構成となっている。
なお実施形態の集約装置10及び無線通信装置20の機能の一部又は全部を、IC(Integrated Circuit)等のハードウェアにより実現してもよい。ICは、例えば専用の処理を実行するプロセッサである。
また複数のプロセッサを用いて各機能を実現する場合、各プロセッサは、各機能のうち1つを実現してもよいし、各機能のうち2つ以上を実現してもよい。
また実施形態の集約装置10及び無線通信装置20の動作形態は任意でよい。実施形態の集約装置10及び無線通信装置20を、例えばネットワーク上のクラウドシステムを構成する装置として動作させてもよい。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。