(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-02-28
(45)【発行日】2025-03-10
(54)【発明の名称】通信装置、通信方法、プログラムおよび通信システム
(51)【国際特許分類】
H04L 7/00 20060101AFI20250303BHJP
【FI】
H04L7/00 990
(21)【出願番号】P 2022020347
(22)【出願日】2022-02-14
【審査請求日】2024-03-01
(73)【特許権者】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(73)【特許権者】
【識別番号】317015294
【氏名又は名称】東芝エネルギーシステムズ株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】金 瑞旭
(72)【発明者】
【氏名】工藤 浩喜
(72)【発明者】
【氏名】田中 康之
(72)【発明者】
【氏名】西尾 真貴
(72)【発明者】
【氏名】野上 侑馬
【審査官】川口 貴裕
(56)【参考文献】
【文献】国際公開第2014/199729(WO,A1)
【文献】特開2022-020453(JP,A)
【文献】特開2018-121250(JP,A)
【文献】特開昭61-015440(JP,A)
【文献】特開2001-066385(JP,A)
【文献】特開2000-356692(JP,A)
【文献】特開2012-117869(JP,A)
【文献】特開平05-346470(JP,A)
【文献】特開平05-142365(JP,A)
【文献】特開2018-013460(JP,A)
【文献】特開2021-165494(JP,A)
【文献】特開2007-178363(JP,A)
【文献】米国特許出願公開第2018/0176424(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 7/00
H04J 3/06
(57)【特許請求の範囲】
【請求項1】
1つ以上の電子機器から出力された出力データと、前記電子機器が管理する現在時刻情報と、を前記電子機器から取得する取得部と、
通信タイミングを示す番号を同期する通信方式によりサーバ装置と通信し、前記出力データを、前記サーバ装置に送信する通信制御部と、
基準となる前記番号を示す基準番号に基づいて、前記現在時刻情報を補正した補正時刻情報を算出する算出部と、
算出された前記補正時刻情報を前記電子機器に設定する設定部と、
を備える通信装置。
【請求項2】
前記基準番号は、毎正時を表し、
前記現在時刻情報は、現在の時、分および秒を示す現在時、現在分および現在秒を含み、
前記算出部は、前記現在分および前記現在秒を、前記基準番号が表す正時からの経過時間に相当する分および秒で置き換えることにより、前記補正時刻情報を算出する、
請求項1に記載の通信装置。
【請求項3】
前記現在時刻情報は、現在の時、分および秒を示す現在時、現在分および現在秒を含み、
前記算出部は、前記現在時、前記現在分および前記現在秒の少なくとも一部を補正した時、分および秒を含む前記補正時刻情報を記憶部に記憶する、
請求項1に記載の通信装置。
【請求項4】
前記取得部は、前記設定部が前記補正時刻情報を前記電子機器に設定してからの経過時間が第1閾値より小さい場合、前記現在時刻情報を取得しない、
請求項1に記載の通信装置。
【請求項5】
前記取得部は、前記基準番号を受信してからの経過時間が第2閾値より大きい場合、前記現在時刻情報を取得しない、
請求項1に記載の通信装置。
【請求項6】
前記取得部は、前記基準番号が表す正時からの経過時間が予め定められた補正期間に含まれる場合に、前記補正時刻情報を取得する、
請求項1に記載の通信装置。
【請求項7】
前記設定部は、前記補正時刻情報と、前記現在時刻情報と、の差分が第1基準値より小さい場合、前記補正時刻情報の設定を行わない、
請求項1に記載の通信装置。
【請求項8】
前記設定部は、前記差分が前記第1基準値以上であり、かつ、前記第1基準値より大きい値である第2基準値より前記差分が小さく、かつ、前記補正時刻情報と前記現在時刻情報との間の期間に、前記電子機器から前記出力データを取得する時刻がN個以上(Nは1以上の整数)含まれる場合、前記補正時刻情報の設定を行わない、
請求項7に記載の通信装置。
【請求項9】
前記設定部は、前記補正時刻情報と前記現在時刻情報との間の期間に、前記電子機器から前記出力データを取得する時刻がN個以上(Nは1以上の整数)含まれる場合、前記補正時刻情報の設定を行わない、
請求項1に記載の通信装置。
【請求項10】
前記取得部は、前記電子機器に対して時刻情報の補正処理を実行しない設定情報が設定されている場合、前記電子機器から前記現在時刻情報を取得しない、
請求項1に記載の通信装置。
【請求項11】
前記取得部は、前記電子機器が時刻を補正する機能を備えることが検出された場合、前記電子機器から前記現在時刻情報を取得しない、
請求項1に記載の通信装置。
【請求項12】
前記通信制御部は、第1時刻に送信した第1出力データと、前記第1時刻の後に取得された第2出力データとが同一であり、かつ、前記第1時刻からの経過時間が第3閾値より小さい場合、前記第2出力データを送信しない、
請求項1に記載の通信装置。
【請求項13】
前記電子機器は、予め定められた物理量の検知結果を前記出力データとして出力するセンサ、および、前記センサにより検知された前記出力データを記憶媒体に記録するデータ記録装置の少なくとも一方である、
請求項1に記載の通信装置。
【請求項14】
前記通信方式は、時分割多重方式である、
請求項1に記載の通信装置。
【請求項15】
前記番号は、前記時分割多重方式により管理される、タイムスロット番号、スロットフレーム番号、または、スーパーフレーム番号である、
請求項14に記載の通信装置。
【請求項16】
通信装置により実行される通信方法であって、
1つ以上の電子機器から出力された出力データと、前記電子機器が管理する現在時刻情報と、を前記電子機器から取得する取得ステップと、
通信タイミングを示す番号を同期する通信方式によりサーバ装置と通信し、前記出力データを、前記サーバ装置に送信する通信制御ステップと、
基準となる前記番号を示す基準番号に基づいて、前記現在時刻情報を補正した補正時刻情報を算出する算出ステップと、
算出された前記補正時刻情報を前記電子機器に設定する設定ステップと、
を含む通信方法。
【請求項17】
コンピュータに、
1つ以上の電子機器から出力された出力データと、前記電子機器が管理する現在時刻情報と、を前記電子機器から取得する取得ステップと、
通信タイミングを示す番号を同期する通信方式によりサーバ装置と通信し、前記出力データを、前記サーバ装置に送信する通信制御ステップと、
基準となる前記番号を示す基準番号に基づいて、前記現在時刻情報を補正した補正時刻情報を算出する算出ステップと、
算出された前記補正時刻情報を前記電子機器に設定する設定ステップと、
を実行させるためのプログラム。
【請求項18】
サーバ装置と、1つ以上の通信装置と、を備える通信システムであって、
前記サーバ装置は、通信タイミングを示す番号を同期する通信方式により1つ以上の前記通信装置と通信し、
1つ以上の前記通信装置のそれぞれは、
1つ以上の電子機器から出力された出力データと、前記電子機器が管理する現在時刻情報と、を前記電子機器から取得する取得部と、
前記出力データを、前記サーバ装置に送信する通信制御部と、
基準となる前記番号を示す基準番号に基づいて、前記現在時刻情報を補正した補正時刻情報を算出する算出部と、
算出された前記補正時刻情報を前記電子機器に設定する設定部と、を備える、
通信システム。
【請求項19】
前記サーバ装置は、管理する現在時刻が正しくない場合は、基準番号を前記通信装置に送信しない、
請求項18に記載の通信システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、通信装置、通信方法、プログラムおよび通信システムに関する。
【背景技術】
【0002】
ネットワーク上の複数の通信装置(ノード)から、各通信装置に接続されるセンサで取得されたセンサデータを収集する通信システムが提案されている。このような通信システムでは、センサデータの取得タイミング(センシングタイミング)の同期などのために、各装置の時刻を同期させる制御が必要になる場合がある。
【0003】
例えば、GPS(全地球測位システム)の受信機能を各通信装置に持たせる技術、および、IETF RFC5905(NTP:Network Time Protocol)などに基づき絶対時刻を配布する技術が提案されている。
【先行技術文献】
【特許文献】
【0004】
【非特許文献】
【0005】
【文献】D. Mills et al.、“RFC 5905、Network Time Protocol Version 4: Protocol and Algorithms Specification” [online]、June 2010、retrieved from the Internet: <URL:http://www.ietf.org/rfc/rfc5905.txt>
【文献】T. Mizrahi et al.、“RFC 7822、Network Time Protocol Version 4 (NTPv4) Extension Fields” [online]、March 2016、retrieved from the Internet: <URL:http://www.ietf.org/rfc/rfc7822.txt>
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、従来技術では、時刻を同期するための機能が複雑になる問題があった。例えば、GPSを用いる技術では、必ずしもセンサの設置場所でGPSが利用可能とは限らず、消費電力も増加する。絶対時刻を配布する技術では、制御トラフィックが増加することにより消費電力が増加するとともに、絶対時刻を管理するための追加のメモリおよび制御が通信装置内に必要になる。
【課題を解決するための手段】
【0007】
実施形態の通信装置は、取得部と、通信制御部と、算出部と、設定部と、を備える。取得部は、1つ以上の電子機器から出力された出力データと、電子機器が管理する現在時刻情報と、を電子機器から取得する。通信制御部は、通信タイミングを示す番号を同期する通信方式によりサーバ装置と通信し、出力データを、サーバ装置に送信する。算出部は、基準となる番号を示す基準番号に基づいて、現在時刻情報を補正した補正時刻情報を算出する。設定部は、算出された補正時刻情報を電子機器に設定する。
【図面の簡単な説明】
【0008】
【
図4】実時間と時分割多重方式のタイムスロットとの関係を示す図。
【
図8】実時間と時分割多重方式のスロットフレームとの関係を示す図。
【
図9】実時間と時分割多重方式のスロットフレームとの関係を示す図。
【
図10】実時間と時分割多重方式のスーパーフレームとの関係を示す図。
【
図11】実施形態にかかる装置のハードウェア構成図。
【発明を実施するための形態】
【0009】
以下に添付図面を参照して、この発明にかかる通信装置、通信方法、プログラムおよび通信システムの好適な実施形態を詳細に説明する。
【0010】
本実施形態にかかる通信システムは、タイミングを制御するための基準となる基準番号をコンセントレータ(通信装置のセンサデータを収集する装置の一例)から配布する。通信装置は、基準番号に基づいて処理のタイミング(センサデータの取得タイミングなど)を決定する。また、通信装置は、基準番号を用いて、センサデータの取得に用いられる電子機器の時刻を補正(調整)する。
【0011】
基準番号は、例えば、毎正時を表す番号に相当する。通信装置は、現在が何時であるかは把握できなくても、毎正時からの経過時間は把握することができる。通信装置は、電子機器に対して定期的に現在時刻を問い合わせ、経過時間を参照して現在時刻を補正する。これにより、NTPなどにより絶対時刻を管理する必要がなく、より簡易な構成により電子機器の時刻を調整可能となる。
【0012】
以下では、データロガー(電子機器の一例)から出力されたセンサデータ(出力データの一例)を収集する通信システムの例を主に説明する。適用可能な通信システムはこれに限られるものではなく、電子機器および出力データは、どのような機器およびデータであってもよい。例えば通信システムは、データロガーを介さずにセンサ(電子機器の一例)から出力されたセンサデータを収集するように構成されてもよい。また例えば、以下のような出力データが用いられてもよい。
・電子機器に内蔵または接続される電池の電圧を示す電圧データ
・電子機器が有するGPS受信機能により得られる緯度データおよび経度データ
・あるデータ(センサデータ)の変動が大きくなったことを示す警告データ
【0013】
図1は、本実施形態の通信システムの構成例を示す図である。
図1に示すように、本実施形態の通信システムは、コンセントレータ200(サーバ装置の一例)と、複数のノード100
1~100
13(通信装置の一例)と、を備えている。
【0014】
複数のノード1001~10013は、それぞれ、データロガーを介して接続されるセンサ(または内蔵されるセンサ)により取得されたセンサデータをコンセントレータ200に送信する。複数のノード1001~10013は同様の構成とすることができるため、区別する必要がない場合は単にノード100という場合がある。ノード100の個数は13に限られず、いくつであってもよい。
【0015】
コンセントレータ200は、複数のノード100のそれぞれから送信されたセンサデータを集約する装置(集約装置)である。
【0016】
コンセントレータ200とノード1001~10013とは、無線マルチホップネットワークを構成する。無線マルチホップネットワーク内の通信は、例えば時分割多重方式で制御される。無線通信方式は、どのような方式でもよいが、例えばIEEE 802.11、および、IEEE 802.15.4などの無線通信方式を適用できる。
【0017】
コンセントレータ200は、無線マルチホップネットワークに加えて、ネットワーク300に接続されてもよい。ネットワーク300は、どのようなネットワーク形態であってもよいが、例えば、インターネットのような広域ネットワーク、広域の閉域ネットワーク、または、企業内ネットワークなどのローカルネットワークである。
【0018】
コンセントレータ200とネットワーク300との間の接続は、イーサネット(登録商標)ケーブルまたは光ファイバ等を用いた有線接続でもよいし、携帯電話網または衛星回線を用いた無線接続でもよい。ネットワーク300への接続は必須ではなく、コンセントレータ200とノード1001~10013とにより構成される無線マルチホップネットワークのみで通信システムが構成されてもよい。
【0019】
なお、ネットワーク300は、例えば複数のコンセントレータ200からセンサデータを収集し、収集したセンサデータを用いた処理を実行するサーバ装置などに接続されてもよい。
【0020】
ここで、本実施形態の通信システムによるタイミング制御の概要を説明する。
【0021】
コンセントレータ200は、センサデータを取得するタイミング(取得タイミング)を算出するための基準時刻に対応する基準番号(基準時刻情報)を、無線マルチホップネットワーク上に送信する。基準番号は、時分割多重方式により同期される、通信タイミングを示す番号のうち基準とする番号である。時分割多重方式としては、例えば、TSCH(Time-Slotted Channel Hopping)などが適用できる。通信タイミングを示す番号は、例えば、タイムスロット番号(ASN:Absolute Slot Number)、スロットフレーム番号、および、スーパーフレーム番号などである。基準番号は、例えば、毎正時(午前0時00分を含む、以降1時間ごと)に対応する番号として決定される。以下では、基準番号が毎正時に対応する番号である場合を例に説明する。
【0022】
各ノード100には、少なくともセンサデータの取得間隔が事前に設定されている。ノード100は、コンセントレータ200から送信された基準番号、ノード100自身が管理する現在の番号、および、センサデータの取得間隔、の3つの値から、センサデータの次の取得タイミングを決定する。
【0023】
このような動作を複数のノード100それぞれに実行させることで、各ノード100によりセンサデータの取得タイミングを制御できるようになる。すなわち、センサデータの取得タイミングを、複数のセンサ間で同期させることも可能となる。また、ノード100は、絶対時刻を管理する必要がなく、より簡易な構成でタイミングの制御が実現できる。
【0024】
なお、基準番号を受信するまでは、ノード100は他の方法で決定される時刻(例えばネットワークに参入した時刻など)を起点とし、センサデータの取得間隔に従ってセンサデータの取得を繰り返す。言い換えると、コンセントレータ200が基準番号を送信しないことにより、ネットワーク内のノード100に対して、本実施形態を適用しない動作を実行させることができる。
【0025】
次に、本実施形態の通信システムによるセンサデータの収集処理の概要を説明する。
【0026】
ノード100にはデータロガーが接続される。データロガーにはさらにセンサが接続される。ノード100は、例えばポーリングなどの方法でデータロガーから新しいセンサデータを得る。このとき、ノード100は、センサデータ自体と、そのセンサデータのセンシング時刻のデータとを得る。センシング時刻は、例えばセンサデータがデータロガーに記録された時刻であるが、これに限られない。例えばセンサのプリヒートが行われる場合は、センシング時刻は、プリヒートを開始した時刻であってもよい。プリヒートは、例えば、センサからデータを得る前に、センサに電源を供給した状態で一定時間センサを暖める処理である。例えば、プリヒートの開始が10:00:00であり、プリヒートの完了が10:00:20であり、データロガーにセンサデータが記録された時刻が10:00:20であったとする。この場合、データロガーには、10:00:00がセンシング時刻として記録される。
【0027】
ノード100は、これらの2つのデータ(センサデータ、センシング時刻)に相当するデータを無線により送信する必要があるが、可能な限りデータ量を減らすことが望ましい。例えば、センシング時刻を示すデータのデータ量を減らすことが望ましい。なお、以下では例えば“2021/08/23 11:30:00.000”などのように、日常生活で用いる時刻(後述の実時刻)を表す形式のデータを時刻データという場合がある。
【0028】
データ量を減らすため、ノード100は、時刻データの代わりに、時分割多重方式の通信を実現するために既に無線マルチホップネットワーク内で使用している通信タイミングを示す番号(タイムスロット番号、スロットフレーム番号、および、スーパーフレーム番号)を、センシング時刻を示すデータとして送信してもよい。
【0029】
例えばノード100は、毎タイムスロットの始端でデータロガーに対してポーリングを行い、新しいセンサデータが得られているかを確認する。新しいデータが存在する場合は、ノード100は、得られたセンサデータを現在のタイムスロット番号とともに無線で送信する。
【0030】
また、他のノード100(外部通信装置の一例)から送信されたセンサデータをコンセントレータ200に中継する場合は、ノード100は、同じタイムスロット番号のセンサデータをまとめて送信してもよい。具体的には、無線で送信するメッセージの中にタイムスロット番号は1回のみ入れ、そのタイムスロット番号に対して複数のセンサデータを対応づけたメッセージを生成する。これにより、送信するデータ量をさらに減らすことができる。
【0031】
次に、コンセントレータ200の機能構成例について説明する。
図2は、コンセントレータ200の機能構成の一例を示すブロック図である。
図2に示すように、コンセントレータ200は、時刻管理部201と、通信制御部202と、通信部211、212と、記憶部221と、を備えている。
【0032】
記憶部221は、コンセントレータ200で用いられる各種データを記憶する。例えば記憶部221は、各ノード100から送信されたセンサデータや各ノードに送るべきデータ、例えば制御情報などを記憶する。センサデータをコンセントレータ200の外部の記憶装置などで保存および管理する場合は、記憶部221は備えられなくてもよい。
【0033】
記憶部221は、フラッシュメモリ、メモリカード、RAM(Random Access Memory)、HDD(Hard Disk Drive)、および、光ディスクなどの一般的に利用されているあらゆる記憶媒体により構成することができる。
【0034】
通信部211は、各ノード100と通信を行い、無線マルチホップネットワークを構成する。上記のように無線マルチホップネットワークは時分割多重方式で通信制御されるため、通信部211はタイムスロットごとに処理を切り替えて動作する。すなわち、自身がデータを送信できるタイムスロットでは通信部211は送信処理を行い、自身がデータ受信待ちをすべきタイムスロットでは通信部211は受信処理を行う。自身がデータを送信できるタイムスロットにも関わらず送信すべきデータがない場合、および、送信も受信もできないタイムスロットである場合は、通信部211は何の動作も行わない。送信処理も受信処理も行わないタイムスロットでは、通信部211は、超低消費電力モードおよび電源オフモードなどに遷移し、動作を停止することができる。通信部211が何の動作も行わない期間は、コンセントレータ200全体も超低消費電力モードで動作してもよい。
【0035】
通信部212は、ネットワーク300との間の通信に用いられる。ネットワーク300に接続しない場合は、通信部212が備えられなくてもよい。
【0036】
時刻管理部201は、現在時刻を実時刻で管理する。実時刻は、1日を24時間とする、日常生活で用いる時刻を意味する。時刻管理部201は、どのような手段で現在時刻を取得してもよいが、例えば以下のような手段を適用できる。
・ネットワーク300上の時刻サーバから現在時刻情報を得る。
・GPSを用いて現在時刻情報を得る。
・携帯電話の基地局から現在時刻情報を得る。
・現在の時刻を人が手動で入力する。
【0037】
時刻管理部201は、コンセントレータ200が有する水晶発振子(クロック)の精度に合わせて適切な頻度で現在時刻情報を取得し、以降で説明する動作中は実用上問題のない誤差範囲内で常に現在時刻を保持できているものとする。
【0038】
例えば工場出荷直後、かつ、電源投入直後のコンセントレータ200は正確な現在時刻を持たないかもしれないが、そのように現在時刻を持たない状態であることを時刻管理部201は認識できるものとする。現在時刻情報を持たない間は、コンセントレータ200は以降に説明する動作を行わない。例えば、現在時刻情報を取得すると、コンセントレータ200は以降に説明する動作を開始するとする。一度、現在時刻情報を取得した後、コンセントレータ200は所定のタイミング(一定時間経過後など)で現在時刻情報を取得し続けてもよいし、取得しなくてもよい。所定のタイミングで現在時刻情報を取得し続ける場合で、その取得に失敗したときには「現在時刻情報を持たない」状態としてコンセントレータ200が動作してもよいし、「時刻情報を持つ」状態としてコンセントレータ200が動作し続けてもよい。
【0039】
通信制御部202は、ノード100とネットワーク300との間の通信を制御する。例えば通信制御部202は、時分割多重方式のスケジュールに従い、上記のような通信部211の動作の切り替えを行う。また、通信制御部202は、無線マルチホップネットワークの構築および維持、並びに、無線マルチホップネットワーク経由で送信されるセンサデータの受信および転送処理を行う。コンセントレータ200がネットワーク300に接続している場合、通信制御部202は、通信部212を介して受信したセンサデータをネットワーク300へ転送してもよいし、転送しなくてもよい。また、通信制御部202は、記憶部221にセンサデータを記憶させてもよいし、記憶させなくてもよい。また、通信制御部202は、記憶部221に保存されているセンサデータをネットワーク300へ転送してもよいし、転送しなくてもよい。また、通信制御部202は、ノード100への制御情報などの送信処理を行う。
【0040】
また通信制御部202は、ノード100に対して基準番号を送信する。通信制御部202は、時刻管理部201により管理される現在時刻が正しくないと判断される場合は、基準番号を送信しないように構成されてもよい。例えば、通信制御部202は、時刻サーバ、GPSまたは基地局などとの間の現在時刻情報の同期が、通信異常などの理由により実行できなくなった場合、または、同期が実行できなくなってから一定時間が経過した場合、現在時刻が正しくないと判断し、基準番号を送信しない。その後、同期が再度実行可能となった場合、通信制御部202は、基準番号を送信する。
【0041】
図3は、記憶部221に記憶されるセンサデータのデータ構造の一例を示す図である。センサデータは、ノード識別子と生成時刻とに対応づけて記憶される。ノード識別子は、センサデータの送信元であるノード100を識別する識別情報の例である。生成時刻は、センサデータが取得(生成)された時刻である。
【0042】
センサデータは、センサから取得した値(読み取った値)に加え、その値を取得したときの時刻を表す時刻データと共にコンセントレータ200に送信される。時刻データの代わりに通信タイミングを示す番号(例えばタイムスロット番号)が送信される場合は、コンセントレータ200は、時刻管理部201と通信制御部202を用いて、センサデータに含まれるタイムスロット番号からそれに対応する実時刻を算出する。このような処理により、センサデータを生成時刻と共に管理できる。コンセントレータ200は、生成時刻を実時刻に変換せず、タイムスロット番号をそのまま生成時刻として扱ってもよい。また、コンセントレータ200が各センサデータを受信した時刻も同じ方法で管理することができるが、対応付けされた受信時刻を記憶部221に記録してもよいし、しなくてもよい。
【0043】
上記各部(時刻管理部201、通信制御部202)は、例えば、1または複数のプロセッサにより実現される。例えば上記各部は、CPU(Central Processing Unit)などのプロセッサにプログラムを実行させること、すなわちソフトウェアにより実現してもよい。上記各部は、専用のIC(Integrated Circuit)などのプロセッサ、すなわちハードウェアにより実現してもよい。上記各部は、ソフトウェアおよびハードウェアを併用して実現してもよい。複数のプロセッサを用いる場合、各プロセッサは、各部のうち1つを実現してもよいし、各部のうち2つ以上を実現してもよい。
【0044】
ここで、通信制御部202による時分割多重方式の通信制御の例について説明する。
図4は、実時間と時分割多重方式のタイムスロットとの関係を示す図である。
図4に示すように、コンセントレータ200が、19時38分15秒に無線マルチホップネットワークを開始したとする。1つのタイムスロットは例えば250ミリ秒の長さであり、4つのタイムスロットを時分割多重のスケジュール単位401とする。すなわち、19時38分15秒以降、スケジュールが変わらなければ、毎秒同じ通信スケジュールが繰り返される。A、B、C、Dは毎秒実行される4つのスケジュールを表している。
【0045】
各タイムスロットにはタイムスロット番号が付与される。
図4の例では、コンセントレータ200が無線マルチホップネットワークを開始した直後のタイムスロットのタイムスロット番号が整数nであるとすると、先頭から6番目のタイムスロット402にはタイムスロット番号n+5が付与される。例えば、最初のタイムスロット(
図4では左端のAに対応するタイムスロット)のタイムスロット番号nが0とすると、タイムスロット402のタイムスロット番号は5になる。基本的にタイムスロット番号は単調増加していく。タイムスロット番号の上限値がある場合はその上限値に達した後、タイムスロット番号が0に戻り、再び単調増加していく。
【0046】
このような時分割多重の通信スケジュールおよびタイムスロット番号は、コンセントレータ200の通信制御部202が管理する。通信制御部202は、時刻管理部201から現在時刻を得ることにより、実時刻とタイムスロット番号の対応を取ることができる。
図4の例では、通信制御部202は、19時38分17秒にタイムスロット番号n+8のタイムスロット403が始まることを判定できる。
【0047】
次に、ノード100の構成について説明する。
図5は、ノード100の機能構成の一例を示すブロック図である。
図5に示すように、ノード100は、データロガー制御部101(取得制御部の一例)と、通信制御部110と、通信部121と、1つ以上のデータロガーインタフェース122
1~122
m(mは1以上の整数)と、を備えている。
【0048】
各データロガーインタフェース1221~122mは、それぞれデータロガー1311~131mと接続される。データロガー1311~131mには、複数のセンサ1411~141m2のいずれかが接続される。
【0049】
データロガーインタフェース1221~122mは、区別する必要がない場合は単にデータロガーインタフェース122という。また、データロガー1311~131mは、区別する必要がない場合は単にデータロガー131という。同様に、センサ1411~141m2は、区別する必要がない場合は単にセンサ141という。
【0050】
センサ141は、予め定められた物理量の検知結果をセンサデータとして出力する電子機器である。検知する物理量はどのような物理量であってもよい。データロガー131は、センサ141により検知されたセンサデータを記憶媒体(内部メモリ)に記録するデータ記録装置として動作する電子機器である。
【0051】
データロガー131のそれぞれには、1台以上のセンサ141が接続される。
図5では、データロガー131
1および131
2に、それぞれ1台のセンサ141(センサ141
1、センサ141
2)が接続され、データロガー131
mに、2台のセンサ141
m1、141
m2が接続される例が示されているが、これに限られるものではない。
【0052】
通信部121は、コンセントレータ200の通信部211と同様の動作を行う。
【0053】
通信制御部110は、コンセントレータ200の通信制御部202と同様に時分割多重の通信スケジュールに従って通信部121の動作を切り替える。また、通信制御部110は、コンセントレータ200が開始した無線マルチホップネットワークの発見および接続、並びに、通信経路および通信スケジュールの設定および変更等を行う。通信制御部110は、これらの動作のために通信部121を介して、他のノード100との間で、ビーコンを含む制御フレームなどを送受信する。
【0054】
また、通信制御部110は、コンセントレータ200から基準番号を受信する。ノード100がコンセントレータ200に直接接続されていない場合(例えば
図1ではノード100
5~100
13の場合)、他のノード100を介してコンセントレータ200から基準番号を受信する。
【0055】
また、通信制御部110は、無線マルチホップネットワークを構成する他のノード100との間の通信を制御する。例えば通信制御部110は、他のノード100により取得されたセンサデータを他のノード100から受信する。また、通信制御部110は、他のノード100またはコンセントレータ200に送信するデータを管理し、送信メッセージを生成する。例えば通信制御部110は、センサデータを取得した時刻を対応づけたセンサデータを、コンセントレータ200を宛先として送信する。
【0056】
コンセントレータ200に直接接続されるノード100(
図1ではノード100
1~100
4)以外のノード100は、コンセントレータ200との間の通信を中継する中継装置となる他のノード100を介して、センサデータをコンセントレータ200に送信することになる。
【0057】
データロガー制御部101は、データロガーインタフェース122を介して、データロガー131からセンサデータおよび現在時刻情報を取得する機能、並びに、データロガー131に時刻を設定する機能を有する。
【0058】
図6は、データロガー制御部101の詳細な機能構成例を示すブロック図である。
図6に示すように、データロガー制御部101は、取得部151と、算出部152と、設定部153と、記憶部161と、を備えている。
【0059】
取得部151は、データロガー131から出力されたセンサデータをデータロガー131から取得する。例えばデータロガー制御部101はデータロガーインタフェース122を介してデータロガー131の内部メモリに記録されている最新のセンサデータの番号、または、最新のセンサデータ自体を読み取る。この処理をポーリングと呼ぶ。
【0060】
取得部151は、データロガーインタフェース122ごとにポーリング間隔を設定し、設定したポーリング間隔で対応するデータロガーインタフェース122を介してポーリングを行ってもよい。取得部151は、コンセントレータ200からの指示に応じてポーリングを行ってもよい。ポーリング間隔は、動作中に変更されてもよい。センサデータを取得するために、いわゆる予備通電やプリヒートが必要な場合は、取得部151は、センサデータを取得するタイムスロットから逆算して事前に予備通電を開始する。予備通電およびプリヒートは、データロガー131自身によって制御されてもよい。また、予備通電およびプリヒートは、センサデータを取得するタイムスロットから逆算した時刻に開始する必要はなく、例えば、センサデータを取得するタイムスロットから予備通電およびプリヒートが開始されてもよい。
【0061】
また、取得部151は、データロガー131が管理する現在時刻情報をデータロガー131から取得する。例えば取得部151は、データロガー131に対して現在時刻の取得コマンドを送信し、データロガー131が内部で管理している時刻を得る。
【0062】
データロガー131は、例えばリアルタイムクロック(RTC:Real Time Clock)などにより時刻を管理する。時刻の管理方法はこれに限られず、その他のどのような方法であってもよい。時刻は、実時刻で表されてもよいし、UNIX(登録商標)時間などのように特定のタイミングからの経過時間(経過秒)で表されてもよい。
【0063】
算出部152は、コンセントレータ200から送信される基準番号を用いて、データロガー131から取得される現在時刻情報を補正した時刻を表す補正時刻情報を算出する。
【0064】
ノード100は、時分割多重のスケジュール管理のため、タイムスロット番号をカウントする機能を備えている。算出部152は、例えば、基準番号と現在のタイムスロット番号との差分、および、1つのタイムスロット番号の長さ(例えば250ミリ秒)を用いて、基準番号が表す正時からの経過時間を算出することができる。
【0065】
算出部152は、現在時刻情報に含まれる現在時、現在分および現在秒のうち、現在分および現在秒を、経過時間に相当する分および秒で置き換えることにより、補正時刻情報を算出する。なお現在時、現在分および現在秒は、それぞれ、現在時刻情報が表す現在の時、分および秒を示す。
【0066】
このように、算出部152は、データロガー131から取得された現在時刻情報のうち現在時は正しいと解釈して、現在分および現在秒を、基準番号を用いて算出した経過時間に相当する分および秒に補正する。データロガー131が管理する時刻情報に生じる誤差が許容範囲内であれば、このように解釈しても正しく時刻を補正できる。すなわち、ノード100は、例えば絶対時刻を管理する機能を備えず、現在が何時であるか把握できないとしても、データロガー131が管理する時刻を補正することが可能となる。
【0067】
例えば、基準番号から算出された経過時間が2000秒(=33分20秒)であり、データロガー131から取得された現在時刻情報が「2021/01/12 13:30:00」であった場合、算出部152は、「2021/01/12 13:00:00」から33分20秒経過した時刻に相当する「2021/01/12 13:33:20」を、補正時刻情報として算出する。
【0068】
算出部152は、正時からの経過時間の差分を求め、差分に相当する時間により現在時刻情報を補正して補正時刻情報を算出してもよい。上記例では、算出部152は、現在時刻情報「2021/01/12 13:30:00」に基づいて、データロガー131が管理する時刻の正時からの経過時間を1800秒(=30分00秒)と算出する。算出部152は、基準番号から算出された経過時間に対する差分が200秒(=2000秒-1800秒)であること、すなわち、データロガー131が管理する時刻が200秒遅れていることを求めることができる。算出部152は、現在時刻情報「2021/01/12 13:30:00」に200秒(=3分20秒)を加算した「2021/01/12 13:33:20」を、補正時刻情報として算出する。
【0069】
設定部153は、算出された補正時刻情報をデータロガー131に設定する。例えば設定部153は、補正時刻情報を設定するための設定コマンドをデータロガー131に送信する。設定コマンドを受信したデータロガー131は、例えばリアルタイムクロックにより管理する時刻情報を補正時刻情報に補正する。
【0070】
なおノード100は、算出された補正時刻情報を現在時刻として、記憶部161などに記憶して時刻情報を管理するように構成されてもよい。これにより、ノード100は、NTPなどによりネットワークを介して、年月日および時を含む時刻情報を取得しなくても、年月日および時分秒を含む完全な時刻情報を得ることができる。
【0071】
記憶部161は、データロガー制御部101で用いられる各種データを記憶する。例えば記憶部161は、コンセントレータ200から受信された基準番号を記憶する。ノード100内で時刻情報を管理するように構成される場合、記憶部161は、現在時刻を記憶してもよい。記憶部161は、フラッシュメモリ、メモリカード、RAM、HDD、および、光ディスクなどの一般的に利用されているあらゆる記憶媒体により構成することができる。
【0072】
上記各部(データロガー制御部101、通信制御部110)は、例えば、1または複数のプロセッサにより実現される。例えば上記各部は、CPUなどのプロセッサにプログラムを実行させること、すなわちソフトウェアにより実現してもよい。上記各部は、専用のICなどのプロセッサ、すなわちハードウェアにより実現してもよい。上記各部は、ソフトウェアおよびハードウェアを併用して実現してもよい。複数のプロセッサを用いる場合、各プロセッサは、各部のうち1つを実現してもよいし、各部のうち2つ以上を実現してもよい。
【0073】
次に、このように構成された本実施形態にかかるノード100による時刻補正処理について説明する。
図7は、本実施形態における時刻補正処理の一例を示すフローチャートである。
【0074】
通信制御部110は、コンセントレータ200から基準番号を受信する(ステップS101)。受信された基準番号は、例えばノード100が備える記憶媒体(記憶部161など)に記憶される。
【0075】
データロガー制御部101は、予め定められたタイミングで、データロガー131の時刻を補正する補正処理(ステップS102~ステップS104)を実行する。補正処理を実行するタイミングの詳細は後述する。
【0076】
データロガー制御部101の取得部151は、データロガー131から現在時刻情報を取得する(ステップS102)。算出部152は、基準番号と現在時刻情報とから、補正時刻情報を算出する(ステップS103)。設定部153は、算出された補正時刻情報をデータロガー131に設定し(ステップS104)、補正処理を終了する。
【0077】
次に、補正処理を実行するタイミングの例について説明する。
【0078】
例えば基準番号を受信する直前または直後、すなわち、毎正時の直前または直後に補正処理を実行したとすると、データロガー131が管理する時刻情報の誤差が大きい場合、データロガー131から取得された現在時刻情報に含まれる現在時が正しいと解釈できなくなる可能性がある。
【0079】
そこで、補正処理は、データロガー131から取得された現在時刻情報に含まれる現在時が正しいと解釈できる期間として定められた補正期間に実行されてもよい。例えば、データロガー制御部101(取得部151)は、基準番号から算出された経過時間が補正期間に含まれる場合に補正時刻情報を取得する。補正期間は、例えば、毎正時の25分から35分までの10分間とすることができる。
【0080】
補正期間内に補正処理を実行する手法はどのような手法でもよいが、例えば、補正期間内のタイムスロットのうち、一定数ごとのタイムスロットの始端で実行する手法を用いることができる。一定数ごとのタイムスロットは、例えば1つ以上のスーパーフレーム(詳細は後述)に含まれる複数のタイムスロットであってもよい。例えば一定数のタイムスロットが30秒に相当する場合、毎正時の25分から35分までの10分間では20回のタイミングで補正処理が実行される。
【0081】
補正処理の後の経過時間が短く、データロガー131が管理する時刻が大きくずれる可能性が低いような場合は、補正処理が実行されないように構成されてもよい。例えば、データロガー制御部101(取得部151)は、設定部153により補正時刻情報を設定してからの経過時間が閾値(第1閾値)より小さい場合、現在時刻情報を取得しないように構成される。データロガー制御部101は、例えば、X時に補正処理を実行した場合に、(X+L)時以降(Lは1以上の整数)となるまで次の補正処理を実行しないように構成されてもよい。
【0082】
上記のように、現在時刻情報の同期が実行できなくなった場合等には、コンセントレータ200は、基準番号を送信しない場合がある。ノード100は、長期間、基準番号を受信できないと、直前に受信した基準番号に相当する正時からの経過時間を正しく算出できなくなるかもしれない。そこで、基準番号を受信してからの経過時間が大きい場合は、補正処理が実行されないように構成されてもよい。例えば、データロガー制御部101(取得部151)は、基準番号を受信してからの経過時間が閾値(第2閾値)より大きい場合、現在時刻情報を取得しないように構成される。データロガー制御部101は、例えば、X時に基準番号が受信された場合、(X+M)時以降(Mは1以上の整数)は補正処理を実行しないように構成されてもよい。
【0083】
データロガー131によるセンサデータの取得処理を考慮して補正処理のタイミングが決定されてもよい。取得部151は、例えば、現在時刻情報の他に、センサデータのセンシング間隔をデータロガー131から取得する。設定部153は、データロガー131から取得された現在時刻情報と、算出部152により算出された補正時刻情報(またはノード100内で管理されている現在時刻)との間の期間に、センサデータの取得時刻がN個以上(Nは1以上の整数)含まれる場合、補正時刻情報の設定を行わない。なおセンサデータの取得時刻は、センシング間隔から算出することができる。
【0084】
これにより、例えば、時刻の補正の影響で、センサデータの取得時刻がずれて取得すべきセンサデータが取得できなくなること、および、同じ時刻のセンサデータが重複して取得されること、などを回避することができる。
【0085】
以上のように、本実施形態によれば、各ノード100は、時分割多重方式により同期される基準番号と、電子機器によって管理される現在時刻情報とを用いて、電子機器によって管理される現在時刻情報を補正することができる。これにより、ノード100は自装置内で完全な時刻を管理する機能を備えない場合であっても、電子機器の時刻を補正することが可能となる。完全な時刻を管理するためにネットワーク内で絶対時刻を送受信する処理は不要とすることができる。このため、ノード100は、無線の送信に必要な時間をより減らし、スリープ時間を増やすことができるので、消費電力を抑えることが可能になる。
【0086】
(変形例1)
通信システムは、中継ノード(中継装置)を含んでもよい。中継ノードは、他のノード100から送信されたセンサデータを中継(転送)する機能を有するノードである。中継ノードは、例えば、
図5のノード100の各構成部のうち、センサデータを取得するための機能(データロガーインタフェース122、データロガー制御部101)の一部または全部を備えなくてもよい。
【0087】
図5のような構成のノード100が中継ノードとして動作してもよい。例えば、ノード100が、起動時にデータロガー131が接続されていないことを検出した場合に中継ノードとして動作してもよい。また、中継ノードとして動作するよう事前に動作モードが設定されている場合に、ノード100が中継ノードとして動作してもよい。
【0088】
(変形例2)
データロガー131から取得された現在時刻情報と算出された補正時刻情報との差分が基準値R1(第1基準値、例えば5秒)より小さい場合、設定部153は、補正時刻情報の設定を行わないように構成されてもよい。
【0089】
また、設定部153は、差分が基準値R1以上であり、かつ、基準値R2(第2基準値)より小さい場合、さらに、センサデータの取得処理を考慮して補正時刻情報を設定するか否かを判定してもよい。基準値R2は、基準値R1より大きい値である。例えば、設定部153は、差分が基準値R1以上であり、かつ、基準値R2より小さく、かつ、現在時刻情報と補正時刻情報との間の期間にセンサデータの取得時刻がN個以上含まれる場合、補正時刻情報の設定を行わない。
【0090】
以降、補正時刻情報を算出するタイミングで上記の判定を繰り返す。繰り返しの回数が閾値より大きくなった場合、設定部153は、補正時刻情報を設定してもよい。
【0091】
設定部153は、差分が基準値R1以上であり、かつ、基準値R2より小さく、かつ、現在時刻情報と補正時刻情報との間の期間に含まれるセンサデータの取得時刻の個数がN個より小さい場合、補正時刻情報を設定する。
【0092】
差分が基準値R2以上である場合、設定部153は、現在時刻情報と補正時刻情報との間の期間にセンサデータの取得時刻が含まれるか否かに関わらず、補正時刻情報を設定してもよい。
【0093】
(変形例3)
データロガー131が、例えばGPSなどに接続され、時刻を補正する機能を備える場合、ノード100が当該データロガー131の時刻情報を補正する必要はない。そこで、データロガー131の時刻情報の補正処理を実行するか否かの設定情報を参照して、補正処理の実行要否が判断されてもよい。複数のデータロガー131がノード100に接続される場合、設定情報は、データロガー131ごとに設定されてもよい。
【0094】
データロガー制御部101は、補正処理を実行することを示す設定情報が設定されている場合、上記実施形態に従い補正処理を実行する。データロガー制御部101は、補正処理を実行しないことを示す設定情報が設定されている場合、補正処理を実行しない。データロガー制御部101は、データロガー131に時刻を補正する機能を備えるか否かを問い合わせ、時刻を補正する機能を備えることを検出した場合、補正処理を実行しないように構成されてもよい。
【0095】
(変形例4)
データロガー131が管理する時刻情報は、補正処理により前の時刻に戻る可能性がある。このような場合、データロガー131の内部メモリにほぼ同じタイミングでセンサデータが複数回記録されるケースが発生しうる。しかし、複数回分のセンサデータはほぼ同じタイミングで記録されているため、いずれも無線マルチホップネットワークで送信する必要はないかもしれない。そこで、ノード100(通信制御部110)は、前回送信したときのセンサデータ(第1出力データ)、および、前回センサデータを送信した時刻(第1時刻)からの経過時間を考慮して、その後に取得されたセンサデータ(第2出力データ)を送信するか否かを判断してもよい。
【0096】
例えば、前回送信したセンサデータと、今回取得されたセンサデータとが同一であり、かつ、経過時間が閾値(第3閾値)より小さい場合、ノード100は、今回取得されたセンサデータを送信するためのメッセージを生成せず、センサデータを送信しない。これにより、送信するデータ量をさらに減らすことができる。
【0097】
(変形例5)
これまでは、主に通信タイミングを示す番号としてタイムスロット番号を用いる例を説明した。通信タイミングを示す番号としてスロットフレーム番号を用いるように構成してもよい。
【0098】
図8は、実時間と時分割多重方式のスロットフレームとの関係を示す図である。スロットフレームは、一定数のタイムスロットを含むスケジュールの単位である。
図8では、4つのタイムスロットそれぞれを含むスロットフレーム701
n、701
n+1の例が示されている。タイムスロットと同様にスロットフレームにもスロットフレーム番号が付与される。スロットフレーム番号を用いることにより、より多くのセンサデータをまとめて送信することが可能となる。
【0099】
(変形例6)
時分割多重方式によっては、1つ以上のチャネル(周波数)が用いられる場合がある。例えばTSCHでは、使用するチャネルがデータ送受信のたびに変更される。このような時分割多重方式に上記実施形態の手法を適用することもできる。
図9は、2つのチャネル811
1、811
2が用いられる場合の、実時間と時分割多重方式のスロットフレームとの関係を示す図である。
【0100】
このような時分割多重の通信スケジュールでは、タイムスロット番号に加えて通信に用いるチャネルが指定される。チャネルは、チャネルオフセットで指定されてもよい。コンセントレータ200およびノード100は、指定されたチャネルを用いてセンサデータを送受信する。
【0101】
(変形例7)
通信タイミングを示す番号としてスーパーフレーム番号を用いるように構成してもよい。
【0102】
図10は、実時間と時分割多重方式のスーパーフレームとの関係を示す図である。スーパーフレームは、一定数のスロットフレームを含むスケジュールの単位である。
図10では、2つのスロットフレームそれぞれを含むスーパーフレーム901
n、901
n+1の例が示されている。スーパーフレームにはスーパーフレーム番号が付与される。スーパーフレーム番号を用いることにより、さらに多くのセンサデータをまとめて送信することが可能となる。
【0103】
スーパーフレームはタイムスロットよりも期間が長い。このため、ノード100は、時刻をより高精度に通知するために、スーパーフレーム番号に加えて、スーパーフレーム内のタイムスロットのオフセットを送信してもよい。タイムスロットのオフセットは、例えばスーパーフレームの先頭のタイムスロットに対するオフセットである。例えば通信制御部110は、スーパーフレーム番号とスーパーフレーム内のタイムスロットのオフセットとを時刻を示すデータとして対応づけたセンサデータをコンセントレータ200に送信する。
【0104】
(変形例8)
ノード100(通信制御部110)は、センサデータが取得されたタイムスロット番号、スロットフレーム番号、または、スーパーフレーム番号自体ではなく、現在(メッセージを処理している時点)のタイムスロット番号、スロットフレーム番号、または、スーパーフレーム番号(第2番号の一例)に対する、センサデータが取得されたタイムスロット番号、スロットフレーム番号、または、スーパーフレーム番号の差分を送信してもよい。
【0105】
例えば、無線マルチホップネットワークで送受信するメッセージの中には、既に現在のタイムスロット番号、スロットフレーム番号、または、スーパーフレーム番号が含まれていることがある。このような場合、通信制御部110は、既に含まれている番号に対する差分のみを、時刻を示すデータとして送信する。これにより、送信するデータ量をさらに削減することができる。
【0106】
時分割多重方式などの通信方式で用いられる通信タイミングを示す番号を、センサデータなどの出力データが生成された時刻の代わりに使用する構成では、出力データを送信するときに必要なデータ量を削減することが可能となる。
【0107】
次に、実施形態にかかる装置(コンセントレータ、ノード)のハードウェア構成について
図11を用いて説明する。
図11は、実施形態にかかる装置のハードウェア構成例を示す説明図である。
【0108】
実施形態にかかる装置は、CPU51などの制御装置と、ROM(Read Only Memory)52やRAM53などの記憶装置と、ネットワークに接続して通信を行う通信I/F54と、各部を接続するバス61を備えている。
【0109】
実施形態にかかる装置で実行されるプログラムは、ROM52等に予め組み込まれて提供される。
【0110】
実施形態にかかる装置で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD-ROM(Compact Disk Read Only Memory)、フレキシブルディスク(FD)、CD-R(Compact Disk Recordable)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録してコンピュータプログラムプロダクトとして提供されるように構成してもよい。
【0111】
さらに、実施形態にかかる装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、実施形態にかかる装置で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
【0112】
実施形態にかかる装置で実行されるプログラムは、コンピュータを上述した装置の各部として機能させうる。このコンピュータは、CPU51がコンピュータ読取可能な記憶媒体からプログラムを主記憶装置上に読み出して実行することができる。
【0113】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0114】
1001~10013 ノード
101 データロガー制御部
110 通信制御部
121 通信部
1221~122m データロガーインタフェース
1311~131m データロガー
1411~141m センサ
151 取得部
152 算出部
153 設定部
200 コンセントレータ
201 時刻管理部
202 通信制御部
211、212 通信部
221 記憶部
300 ネットワーク