JP2021072457A - 通信方法、および、通信システム - Google Patents
通信方法、および、通信システム Download PDFInfo
- Publication number
- JP2021072457A JP2021072457A JP2019195797A JP2019195797A JP2021072457A JP 2021072457 A JP2021072457 A JP 2021072457A JP 2019195797 A JP2019195797 A JP 2019195797A JP 2019195797 A JP2019195797 A JP 2019195797A JP 2021072457 A JP2021072457 A JP 2021072457A
- Authority
- JP
- Japan
- Prior art keywords
- command
- synchronization
- time
- communication
- slave
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Synchronisation In Digital Transmission Systems (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
【課題】マスタ機器のシステム制御とスレーブ機器のシステム制御との同期を、より確実かつ簡易に実現する。【解決手段】マスタ機器20のシステム制御部21は、通信周期Ttと同じ時間長の待機時間Tcmの間隔で、順次、同期用コマンドCm1と同期用コマンドCm2とを生成する。通信部22は、同期用コマンドCm1と同期用コマンドCm2とをそれぞれに、通信周期Ttによって設定された通信イベントで通信部32に送信する。スレーブ機器30のシステム制御部31は、同期用コマンドCm1を受信すると、応答時間Trを待って、応答コマンドCm1Rを生成する。通信部32は、応答コマンドCm1Rを、通信周期Ttによって設定された通信イベントで通信部22に送信する。システム制御部21は、応答コマンドCm1Rの受信時刻に基づいて同期基準時刻tsyを設定する。システム制御部31は、同期用コマンドCm2の受信時刻に基づいて同期基準時刻tsyを設定する。【選択図】 図1
Description
本発明は、マスタ機器とスレーブ機器との間で同期をとる技術に関する。
特許文献1には、マスタ機器と複数のスレーブ機器とを備えた無線通信システムが記載されている。
マスタ機器と各スレーブ機器は、同期ソースとして無線ネットワークのネットワーククロックを共有することで、機器相互間の同期をとっている。
しかしながら、例えば、スマートホン等の汎用のOSを用いた機器をマスタ機器とした特定の環境においては、システム制御部から無線通信部へのアクセスが制限されることがある。この場合、ネットワーククロックを共有することができず、同期をとることができない。
本発明の目的は、マスタ機器のシステム制御とスレーブ機器のシステム制御との同期を、より確実かつ簡易に実現する通信方法、通信システムを提供することにある。
この発明の通信方法では、マスタ機器とスレーブ機器は、次の各処理を行う。マスタ機器と1以上のスレーブ機器とは、一定の通信周期で互いに通信を行う。マスタ機器は、順次、第1の同期用コマンドと第2の同期用コマンドを、スレーブ機器に送信する。スレーブ機器は、第1の同期用コマンドを受信すると、後の通信イベントで、応答コマンドを、マスタ機器に送信する。マスタ機器は、応答コマンドの受信に応じて同期基準時刻を設定する。スレーブ機器は、第2の同期用コマンドの受信に応じて同期基準時刻を設定する。
この方法では、マスタ機器とスレーブ機器とが、マスタ機器とスレーブ機器との通信時刻を制御できなくても、予め決定されている通信周期によって実行される通信イベントを用いて、同期をとることができる。例えば、上述の場合、マスタ機器がスレーブ機器に第2の同期用コマンドを送信する通信イベントと、スレーブ機器がマスタ機器に応答コマンドを送信する通信イベントとは、同じになる。したがって、この通信イベントの時刻を同期基準時刻に用いることで、マスタ機器とスレーブ機器とは、同期をとることができる。
この発明によれば、マスタ機器のシステム制御とスレーブ機器のシステム制御との同期を、より確実に実現できる。
(第1実施形態)
第1の実施形態に係る通信方法および通信システムについて、図を参照して説明する。図1は、第1の実施形態に係る通信方法の概念を示すタイミングチャートである。図2は、第1の実施形態に係る通信システムの構成を示す機能ブロック図である。
第1の実施形態に係る通信方法および通信システムについて、図を参照して説明する。図1は、第1の実施形態に係る通信方法の概念を示すタイミングチャートである。図2は、第1の実施形態に係る通信システムの構成を示す機能ブロック図である。
図1、図2に示すように、通信システム10は、マスタ機器20、および、スレーブ機器30を備える。マスタ機器20は、システム制御部21、および、通信部22を備える。システム制御部21は、本発明の「マスタ側システム制御部」に対応し、通信部22は、本発明の「マスタ側通信部」に対応する。スレーブ機器30は、システム制御部31、および、通信部32を備える。システム制御部31は、本発明の「スレーブ側システム制御部」に対応し、通信部32は、本発明の「スレーブ側通信部」に対応する。マスタ機器20のシステム制御部21のより具体的な機能構成、および、スレーブ機器30のシステム制御部31のより具体的な機能構成は、後述する。
図1に示すように、マスタ機器20の通信部22とスレーブ機器30の通信部32とは、一定の通信周期Ttでデータ通信を行う。通信は、例えば、Bluetooth Low Energy(登録商標)等によって実現される。
また、システム制御部21は、マスタ側時刻tmに基づいて、各種の制御を行っている。システム制御部31は、スレーブ側時刻tsに基づいて、各種の制御を行っている。
このような構成および制御状態において、マスタ機器20とスレーブ機器30とは、次に示すように、システム制御部21の制御とシステム制御部31の制御との同期をとる。
(マスタ機器20の制御、処理)
システム制御部21は、マスタ側時刻tmにおける時刻t11に、同期用コマンドCm1を生成し、通信部22に出力する。また、システム制御部21は、マスタ側時刻tmにおける時刻t11から待機時間Tcmを経過した時刻t12に、同期用コマンドCm2を生成し、通信部22に出力する。同期用コマンドCm1は、本発明の「第1の同期用コマンド」に対応し、同期用コマンドCm2は、本発明の「第2の同期用コマンド」に対応する。
システム制御部21は、マスタ側時刻tmにおける時刻t11に、同期用コマンドCm1を生成し、通信部22に出力する。また、システム制御部21は、マスタ側時刻tmにおける時刻t11から待機時間Tcmを経過した時刻t12に、同期用コマンドCm2を生成し、通信部22に出力する。同期用コマンドCm1は、本発明の「第1の同期用コマンド」に対応し、同期用コマンドCm2は、本発明の「第2の同期用コマンド」に対応する。
待機時間Tcmの時間長は、通信周期Ttの時間長と同じに設定されている。
通信部22は、同期用コマンドCm1が入力されると、この入力タイミングの直後の通信イベント(本発明の「第1通信機会」に対応する。)に、同期用コマンドCm1を、通信部32に送信する。通信部22は、同期用コマンドCm2が入力されると、この入力タイミングの直後の通信イベント(本発明の「第2通信機会」に対応する。)に、同期用コマンドCm2を、通信部32に送信する。なお、直後の通信イベントとは、同期用コマンドが入力された後の最初にマスタ機器20とスレーブ機器30との間で通信が行われる機会を示す。
(スレーブ機器30の制御、処理)
通信部32は、通信部22との通信によって同期用コマンドCm1を受信すると、同期用コマンドCm1を、システム制御部31に出力する。
通信部32は、通信部22との通信によって同期用コマンドCm1を受信すると、同期用コマンドCm1を、システム制御部31に出力する。
システム制御部31は、同期用コマンドCm1を、スレーブ側時刻tsにおける時刻t21に受け付けると、応答時間Trで待機する。応答時間Trの時間長は、通信周期Ttの時間長よりも短い。例えば、応答時間Trの時間長は、通信周期Ttの時間長の1/3以下であることが好ましい。システム制御部31は、応答時間Trの待機の後、スレーブ側時刻tsにおける時刻t21Rに、応答コマンドCm1Rを生成し、通信部32に出力する。
通信部32は、応答コマンドCm1Rが入力されると、この入力タイミングの直後の通信イベントにおいて、応答コマンドCm1Rを、通信部22に送信する。
(同期の原理)
マスタ機器20における待機時間Tcmと通信周期Ttとは、同じである。したがって、通信部22と通信部32との通信が正常であれば、一度の通信イベントにおいて、送信される同期用コマンドの個数は1個である。すなわち、同期用コマンドCm1と同期用コマンドCm2とは、同じ通信イベントで送信されることは無い。そして、図1に示すように、同期用コマンドCm2の送信は、同期用コマンドCm1を送信する通信イベントの次の通信イベントである。
マスタ機器20における待機時間Tcmと通信周期Ttとは、同じである。したがって、通信部22と通信部32との通信が正常であれば、一度の通信イベントにおいて、送信される同期用コマンドの個数は1個である。すなわち、同期用コマンドCm1と同期用コマンドCm2とは、同じ通信イベントで送信されることは無い。そして、図1に示すように、同期用コマンドCm2の送信は、同期用コマンドCm1を送信する通信イベントの次の通信イベントである。
スレーブ機器30における応答時間Trの時間長が通信周期Ttの時間長よりも短いことによって、図1に示すように、応答コマンドCm1Rを送信する通信イベントは、通信部32が同期用コマンドCm1を受信する通信イベントの次の通信イベントとなる。特に、応答時間Trの時間長は、通信周期Ttの時間長の1/3以下とすることで、通信が正常であれば、応答コマンドCm1Rを送信する通信イベントは、必ず、通信部32が同期用コマンドCm1を受信する通信イベントの次の通信イベントとなる。
したがって、図1に示すように、同期用コマンドCm2を送受信する通信イベントと、応答コマンドCm1Rを送受信する通信イベントとは、同じ通信イベントになる。すなわち、スレーブ側時刻tsにおける同期用コマンドCm2の受信時刻t22と、マスタ側時刻tmにおける応答コマンドCm1Rの受信時刻t101とは、同じであるといえる。
この関係を利用して、マスタ機器20のシステム制御部21は、応答コマンドCm1Rの受信時刻t101を、マスタ側時刻tmにおける同期基準時刻tsyに設定する。スレーブ機器30のシステム制御部31は、同期用コマンドCm2の受信時刻t22を、スレーブ側時刻tsにおける同期基準時刻tsyに設定する。これにより、マスタ機器20のシステム制御部21とスレーブ機器30のシステム制御部31とは、同期をとることができる。
以上のように、本実施形態の構成を備え、上記制御、処理を行うことによって、通信部での通信イベントの時刻が制御できない場合であっても、マスタ機器のシステム制御とスレーブ機器のシステム制御との同期を、より確実に簡易に実現できる。
(通信システム10の構成)
上述の制御、処理を実現するため、通信システム10は、例えば、図3に示すような構成を備える。上述、および、図2に示すように、通信システム10は、マスタ機器20とスレーブ機器30とを備える。
上述の制御、処理を実現するため、通信システム10は、例えば、図3に示すような構成を備える。上述、および、図2に示すように、通信システム10は、マスタ機器20とスレーブ機器30とを備える。
(マスタ機器20の構成)
上述、図2に示すように、マスタ機器20は、システム制御部21、および、通信部22を備える。システム制御部21は、計時部210、コマンド生成部211、コマンド検出部212、および、同期時刻決定部213を備える。コマンド生成部211、コマンド検出部212、および、同期時刻決定部213は、例えば、マイコン、CPU等の演算処理装置と、該演算処理装置で実行されるプログラムを記憶するメモリ等からなる。計時部210が、本発明の「マスタ側計時部」に対応し、コマンド生成部211が、本発明の「マスタ側コマンド生成部」に対応し、同期時刻決定部213が、本発明の「マスタ側同期時刻決定部」に対応する。
上述、図2に示すように、マスタ機器20は、システム制御部21、および、通信部22を備える。システム制御部21は、計時部210、コマンド生成部211、コマンド検出部212、および、同期時刻決定部213を備える。コマンド生成部211、コマンド検出部212、および、同期時刻決定部213は、例えば、マイコン、CPU等の演算処理装置と、該演算処理装置で実行されるプログラムを記憶するメモリ等からなる。計時部210が、本発明の「マスタ側計時部」に対応し、コマンド生成部211が、本発明の「マスタ側コマンド生成部」に対応し、同期時刻決定部213が、本発明の「マスタ側同期時刻決定部」に対応する。
計時部210は、例えば、クロック発振回路等を備える電子回路によって実現される。計時部210は、クロック信号およびマスタ側時刻tmを生成する。システム制御部21で実行される各種の処理は、計時部210のクロック信号に基づいて実行される。
コマンド生成部211は、同期用コマンドの生成、制御コマンドの生成等を行う。コマンド生成部211は、生成した同期用コマンドや制御コマンドを、通信部22に出力する。この際、コマンド生成部211は、クロック信号すなわちマスタ側時刻tmに基づいて、上述の待機時間Tcmを設定する。
コマンド検出部212は、通信部22からの通信データを復調、解析して、応答コマンドCm1Rを検出する。コマンド検出部212は、検出した応答コマンドCm1Rを、同期時刻決定部213に出力する。同期時刻決定部213は、応答コマンドCm1Rを受けると、計時部210のマスタ側時刻tmを参照して、同期基準時刻tsyを設定する。
通信部22は、上述のように、同期用コマンドCm1、同期用コマンドCm2の送信、応答コマンドCm1Rの受信を行う。また、通信部22は、後述する制御コマンドCCA、CCBの送信を行う。
(スレーブ機器30の構成)
上述、図2に示すように、スレーブ機器30は、システム制御部31、および、通信部32を備える。
上述、図2に示すように、スレーブ機器30は、システム制御部31、および、通信部32を備える。
通信部32は、上述のように、同期用コマンドCm1、同期用コマンドCm2の受信、応答コマンドCm1Rの送信を行う。また、通信部32は、後述する制御コマンドCCA、CCBの受信を行う。
システム制御部31は、計時部310、コマンド生成部311、コマンド検出部312、同期時刻決定部313、および、制御コマンド実行部314を備える。コマンド生成部311、コマンド検出部312、同期時刻決定部313、および、制御コマンド実行部314は、例えば、マイコン、CPU等の演算処理装置と、該演算処理装置で実行されるプログラムを記憶するメモリ等からなる。計時部310が、本発明の「スレーブ側計時部」に対応し、コマンド生成部311が、本発明の「スレーブ側コマンド生成部」に対応し、同期時刻決定部313が、本発明の「スレーブ側同期時刻決定部」に対応する。
計時部310は、例えば、クロック発振回路等を備える電子回路によって実現される。計時部310は、クロック信号およびスレーブ側時刻tsを生成する。システム制御部31で実行される各種の処理は、計時部310のクロック信号に基づいて実行される。
コマンド検出部312は、通信部32からの通信データを復調、解析して、同期用コマンドCm1、同期用コマンドCm2を検出する。コマンド検出部312は、検出した同期用コマンドCm1を、コマンド生成部311に出力。コマンド検出部312は、検出した同期用コマンドCm2を、同期時刻決定部313に出力する。
また、コマンド検出部312は、通信データを復調、解析して、制御コマンドを検出する。図示を省略しているが、コマンド検出部312は、検出した制御コマンドを、制御コマンド実行部314に出力する。
コマンド生成部311は、応答コマンドCm1Rの生成を行う。コマンド生成部311は、生成した応答コマンドCm1Rを、通信部32に出力する。この際、コマンド生成部311は、クロック信号すなわちスレーブ側時刻tsに基づいて、上述の応答時間Trを設定する。
同期時刻決定部213は、同期用コマンドCm2を受けると、計時部310のスレーブ側時刻tsを参照して、同期基準時刻tsyを設定する。
制御コマンド実行部314は、制御コマンドを受け付けると、当該制御コマンドを解析して、制御コマンドに応じた処理、制御を実行する。この際、詳細は後述するが、制御コマンド実行部314は、制御コマンドに含まれる制御開始用の待機時間DTca、DTcbに応じて、制御開始を待機した後に、制御コマンドに応じた処理、制御を開始する。
(通信システム10での同期をとるときの処理フロー)
上述の説明では、同期をとる処理を複数の機能部に分けて実行する場合を説明したが、複数の機能部の構成はこれに限るものではない。そして、マスタ機器20とスレーブ機器30とは、例えば、同期をとる処理を実現するため、以下に示す処理を実行する。
上述の説明では、同期をとる処理を複数の機能部に分けて実行する場合を説明したが、複数の機能部の構成はこれに限るものではない。そして、マスタ機器20とスレーブ機器30とは、例えば、同期をとる処理を実現するため、以下に示す処理を実行する。
(マスタ機器20の処理フロー)
図3(A)は、同期用コマンドの生成処理を示すフローチャートであり、図3(B)は、スレーブ機器との通信処理を示すフローチャートであり、図3(C)は、マスタ機器での同期基準時刻の設定処理を示すフローチャートである。
図3(A)は、同期用コマンドの生成処理を示すフローチャートであり、図3(B)は、スレーブ機器との通信処理を示すフローチャートであり、図3(C)は、マスタ機器での同期基準時刻の設定処理を示すフローチャートである。
(同期用コマンドの生成処理)
図3(A)に示すように、マスタ機器20のシステム制御部21は、マスタ側時刻tmにおいて、生成時刻になれば(S111:YES)、同期用コマンド(同期用コマンドCm1、Cm2)を生成する(S112)。生成時刻は、上述の待機時間Tcmによって決定され、待機時間Tcm毎に生じる。マスタ機器20のシステム制御部21は、生成時刻でなければ(S111:NO)、同期用コマンドの生成を行わない。
図3(A)に示すように、マスタ機器20のシステム制御部21は、マスタ側時刻tmにおいて、生成時刻になれば(S111:YES)、同期用コマンド(同期用コマンドCm1、Cm2)を生成する(S112)。生成時刻は、上述の待機時間Tcmによって決定され、待機時間Tcm毎に生じる。マスタ機器20のシステム制御部21は、生成時刻でなければ(S111:NO)、同期用コマンドの生成を行わない。
マスタ機器20のシステム制御部21は、生成した同期用コマンド(同期用コマンドCm1、Cm2)を、待機することなく、通信部22に出力する(S113)。
(スレーブ機器30との通信処理)
図3(B)に示すように、マスタ機器20の通信部22は、スレーブ機器30の通信部32との共通クロックにおいて、通信イベントのタイミングになれば(S121:YES)、スレーブ機器30の通信部32と通信を行う(S122)。通信は、例えば、Bluetooth(登録商標)等によって実行される。この通信によって、通信部22は、同期用コマンド(同期用コマンドCm1、Cm2)の送信、応答コマンド(応答コマンドCm1R)の受信を行う。
図3(B)に示すように、マスタ機器20の通信部22は、スレーブ機器30の通信部32との共通クロックにおいて、通信イベントのタイミングになれば(S121:YES)、スレーブ機器30の通信部32と通信を行う(S122)。通信は、例えば、Bluetooth(登録商標)等によって実行される。この通信によって、通信部22は、同期用コマンド(同期用コマンドCm1、Cm2)の送信、応答コマンド(応答コマンドCm1R)の受信を行う。
通信部22は、通信イベントのタイミングでなければ(S121:NO)、同期用コマンド(同期用コマンドCm1、Cm2)をシステム制御部21から受けていても、通信を行わない。
(同期基準時刻の設定処理)
図3(C)に示すように、マスタ機器20のシステム制御部21は、通信部22から応答コマンド(応答コマンドCm1R)を受け取っていれば(S131:YES)、マスタ側時刻tmにおける応答コマンドCm1Rを受け取った時刻(例えば、図1のt101)を、同期基準時刻tsyに設定する(S132)。システム制御部21は、応答コマンド(応答コマンドCm1R)を受け取るまで(S131:NO)、応答コマンドの検出待機状態を維持する。
図3(C)に示すように、マスタ機器20のシステム制御部21は、通信部22から応答コマンド(応答コマンドCm1R)を受け取っていれば(S131:YES)、マスタ側時刻tmにおける応答コマンドCm1Rを受け取った時刻(例えば、図1のt101)を、同期基準時刻tsyに設定する(S132)。システム制御部21は、応答コマンド(応答コマンドCm1R)を受け取るまで(S131:NO)、応答コマンドの検出待機状態を維持する。
(スレーブ機器30の処理フロー)
図4(A)は、マスタ機器との通信処理を示すフローチャートであり、図4(B)は、応答コマンドの生成処理を示すフローチャートであり、図4(C)は、スレーブ機器での同期基準時刻の設定処理を示すフローチャートである。
図4(A)は、マスタ機器との通信処理を示すフローチャートであり、図4(B)は、応答コマンドの生成処理を示すフローチャートであり、図4(C)は、スレーブ機器での同期基準時刻の設定処理を示すフローチャートである。
(マスタ機器20との通信処理)
図4(A)に示すように、スレーブ機器30の通信部32は、マスタ機器20の通信部22との共通クロックにおいて、通信イベントのタイミングになれば(S211:YES)、マスタ機器20の通信部22と通信を行う(S212)。この通信によって、通信部32は、同期用コマンド(同期用コマンドCm1、Cm2)の受信、応答コマンド(応答コマンドCm1R)の送信を行う。
図4(A)に示すように、スレーブ機器30の通信部32は、マスタ機器20の通信部22との共通クロックにおいて、通信イベントのタイミングになれば(S211:YES)、マスタ機器20の通信部22と通信を行う(S212)。この通信によって、通信部32は、同期用コマンド(同期用コマンドCm1、Cm2)の受信、応答コマンド(応答コマンドCm1R)の送信を行う。
通信部32は、通信イベントのタイミングでなければ(S211:NO)、応答コマンド(応答コマンドCm1R)をシステム制御部31から受けていても、通信を行わない。
(応答コマンドの生成処理)
図4(B)に示すように、スレーブ機器30のシステム制御部31は、同期用コマンド(同期用コマンドCm1)を検出していれば(S221:YES)、応答時間Trで待機する(S222)。システム制御部31は、同期用コマンド(同期用コマンドCm1)を検出するまで(S221:NO)、同期用コマンド(同期用コマンドCm1)の検出待機状態を維持する。
図4(B)に示すように、スレーブ機器30のシステム制御部31は、同期用コマンド(同期用コマンドCm1)を検出していれば(S221:YES)、応答時間Trで待機する(S222)。システム制御部31は、同期用コマンド(同期用コマンドCm1)を検出するまで(S221:NO)、同期用コマンド(同期用コマンドCm1)の検出待機状態を維持する。
システム制御部31は、応答時間Trの待機後、応答コマンドCm1Rを生成し(S223)、通信部32に出力する(S224)。
(同期基準時刻の設定処理)
図4(C)に示すように、スレーブ機器30のシステム制御部31は、応答コマンド(応答コマンドCm1R)の出力済みであり(S231:YES)、同期用コマンド(同期用コマンドCm2)を検出していれば(S232:YES)、スレーブ側時刻tsにおける同期用コマンド(同期用コマンドCm2)を受け取った時刻(例えば、図1のt22)を、同期基準時刻tsyに設定する(S132)。
図4(C)に示すように、スレーブ機器30のシステム制御部31は、応答コマンド(応答コマンドCm1R)の出力済みであり(S231:YES)、同期用コマンド(同期用コマンドCm2)を検出していれば(S232:YES)、スレーブ側時刻tsにおける同期用コマンド(同期用コマンドCm2)を受け取った時刻(例えば、図1のt22)を、同期基準時刻tsyに設定する(S132)。
システム制御部31は、応答コマンド(応答コマンドCm1R)が未出力であるとき(S231:NO)、同期用コマンド(同期用コマンドCm2)が未検出であるとき(S232:NO)、同期基準時刻tsyの設定待機状態を維持する。
なお、上述の構成では、例えば、次に示すような通信が異常な場合にも、同期をとることができたり、無理な同期をとることがない。図5は、第1の実施形態に係る通信方法における2回目の通信が失敗した場合を示すタイミングチャートである。図6は、第1の実施形態に係る通信方法における同期をとれない場合の概念を示すタイミングチャートである。
図5に示す例では、同期用コマンドCm2の生成、および、応答コマンドCm1Rの生成の直後の通信が失敗した場合を示している。この場合、同期用コマンドCm2と応答コマンドCm1Rは、失敗した通信イベントの次に発生する正常な通信イベント(図5の場合、失敗した通信イベントの次の通信イベント)によって、送受信される。
これにより、スレーブ機器30が同期用コマンドCm2を受信する時刻と、マスタ機器20が応答コマンドCm1Rを受信する時刻とは同じになる。したがって、マスタ機器20のシステム制御部21とスレーブ機器30のシステム制御部31とは、同期をとることができる。
図6に示す例では、同期用コマンドCm1の生成の直後の通信が失敗した場合を示している。この場合、同期用コマンドCm1と同期用コマンドCm2は、失敗した通信イベントの次に発生する正常な通信(図6の場合、失敗した通信の次の通信)によって、送受信される。したがって、スレーブ機器30は、同期用コマンドCm1と同期用コマンドCm2とを、同じ通信で受信する。
そして、スレーブ機器30は、同期用コマンドCm1に基づいて、応答コマンドCm1Rを生成し、さらに次の通信でマスタ機器20に送信する。このため、マスタ機器20が応答コマンドCm1Rを受信する通信は、スレーブ機器30が同期用コマンドCm2を受信する通信よりも後の通信であり、同じではない。
したがって、マスタ機器20のシステム制御部21とスレーブ機器30のシステム制御部31とは、同期をとることができない。そして、スレーブ機器30のシステム制御部31は、2個の同期用コマンドCm1、Cm2を、同じ通信イベントの通信で受信している。このため、スレーブ機器30のシステム制御部31は、同期用コマンドCm1、Cm2の同時受信を検出することで、同期の失敗を検出できる。
なお、図6に示すように、システム制御部31は、この同期の失敗を示す失敗通知コマンドCerを、失敗の検出以降の通信において、マスタ機器20に送信することもできる。マスタ機器20のシステム制御部21は、失敗通知コマンドCerを受信することで、システム制御部31との同期の失敗を検出できる。この失敗通知コマンドCerの送信は、省略することも可能である。
(第2の実施形態)
第2の実施形態に係る通信方法および通信システムについて、図を参照して説明する。図7は、第2の実施形態に係る通信方法の概念を示すタイミングチャートである。
第2の実施形態に係る通信方法および通信システムについて、図を参照して説明する。図7は、第2の実施形態に係る通信方法の概念を示すタイミングチャートである。
第2の実施形態に係る通信システムは、第1の実施形態に係る通信システムに対して、スレーブ機器が複数ある点で異なる。また、第2の実施形態に係る通信システムは、制御コマンドの送信、および、各スレーブ機器での制御の開始までを行う点で異なる。第2の実施形態に係る通信システムにおけるマスタ機器および各スレーブ機器のその他の基本的な構成は、第1の実施形態に係る通信システムと同様であり、同様の箇所の説明は省略する。なお、以下では、スレーブ機器が2個の場合を示すが、スレーブ機器の個数は、これに限らず、3個以上であってもよい。
図7に示すように、通信システムは、マスタ機器20、スレーブ機器30A、および、スレーブ機器30Bを備える。マスタ機器20は、スレーブ機器30Aとスレーブ機器30Bとのそれぞれに対して、個別に同期をとる。言い換えれば、マスタ機器20は、スレーブ機器30Aとスレーブ機器30Bとのそれぞれに対して、1対1の通信によって同期をとる。
例えば、マスタ機器20の通信部22は、スレーブ機器30Aの通信部32Aと、通信周期Ttで通信を行う。この状態において、上述の方法を用いて、マスタ機器20のシステム制御部21とスレーブ機器30Aのシステム制御部31Aとは、同期をとる。この際、システム制御部21は、マスタ側時刻tmにおける時刻t101Aを、システム制御部31Aに対する同期基準時刻tsyAとして記憶する。同期基準時刻tsyAが本発明の「第1同期時刻」に対応する。
この際、スレーブ機器30Aのシステム制御部31Aは、同期基準時刻tsyA(スレーブ側時刻tsAにおける時刻t22A)を記憶する。
次に、マスタ機器20の通信部22は、スレーブ機器30Bの通信部32Bと、通信周期Ttで通信を行う。この状態において、上述の方法を用いて、マスタ機器20のシステム制御部21とスレーブ機器30Bのシステム制御部31Bとは、同期をとる。この際、システム制御部21は、マスタ側時刻tmにおける時刻t101Bを、システム制御部31Bに対する同期基準時刻tsyBとして記憶する。同期基準時刻tsyBが、本発明の「第2同期時刻」に対応する。
この際、スレーブ機器30Bのシステム制御部31Bは、同期基準時刻tsyB(スレーブ側時刻tsBにおける時刻t22B)を記憶する。
マスタ機器20のシステム制御部21は、同期基準時刻tsyA(本発明の「第1同期時刻」に対応する。)と同期基準時刻tsyB(本発明の「第2同期時刻」に対応する。)との時間差Δtを算出して記憶する。この際、システム制御部21は、マスタ側時刻tmを用いて、時間差Δtを算出する。すなわち、システム制御部21は、時刻t101Aと時刻t101Bから、時間差Δtを算出する。
次に、マスタ機器20は、スレーブ機器30Aに対する制御コマンドCCAを生成し、スレーブ機器30Bに対する制御コマンドCCBを生成する。そして、マスタ機器20は、スレーブ機器30Aに制御コマンドCCAを送信し、スレーブ機器30Bに制御コマンドCCBを送信する。制御コマンドCCAと制御コマンドCCBの送信は、個別の通信によって行われる。
この際、制御コマンドCCAには、制御開始用の待機時間DTcaが添付されており、制御コマンドCCBには、制御開始用の待機時間DTcbが添付されている。制御開始用の待機時間DTcaは、同期基準時刻tsyAから制御開始時刻tscaまでの時間であり、制御開始用の待機時間DTcbは、同期基準時刻tsyBから制御開始時刻tscbまでの時間である。システム制御部21は、これらの制御開始用の待機時間DTca、DTcbを、マスタ側時刻tmによって算出し、添付している。制御開始用の待機時間DTcaが、本発明の「第1時間長」に対応し、制御開始用の待機時間DTcbが、本発明の「第2時間長」に対応する。
スレーブ機器30Aのシステム制御部31Aは、制御コマンドCCAを取得すると、これを復調、解析し、制御開始用の待機時間DTcaを抽出する。そして、システム制御部31Aは、同期基準時刻tsyA(スレーブ側時刻tsAにおける時刻t22A)から、制御開始用の待機時間DTcaを待って、制御を開始する。
スレーブ機器30Bのシステム制御部31Bは、制御コマンドCCBを取得すると、これを復調、解析し、制御開始用の待機時間DTcbを抽出する。そして、システム制御部31Bは、同期基準時刻tsyB(スレーブ側時刻tsBにおける時刻t22B)から、制御開始用の待機時間DTcbを待って、制御を開始する。
ここで、上述のように、システム制御部21とシステム制御部31Aとは同期をとっており、システム制御部21とシステム制御部31Bとは同期をとっている。したがって、マスタ側時刻tmとスレーブ側時刻tsAおよびスレーブ側時刻tsBとの関係は、一意的に決まっている。これにより、スレーブ側時刻tsAとスレーブ側時刻tsBとが同期をとっていることと同義になる。
この状態において、マスタ側時刻tmによって決定された時間差Δtを用いて、制御開始時刻tcsaおよび制御開始時刻tcsbを設定することで、スレーブ機器30Aのシステム制御部31Aによる制御の開始と、スレーブ機器30Bのシステム制御部31Bによる制御の開始とを一致させることができる。すなわち、システム制御部31Aによる制御の開始とシステム制御部31Bによる制御の開始との同期をとることができる。
なお、制御開始用の待機時間DTca、DTcbは、通信周期Ttの少なくとも2回分の時間長と複数のスレーブ機器に対する同期処理の間隔との加算時間に対して、さらに所定の余裕時間を加算した時間よりも長く設定される。これにより、制御開始の遅れ、特に、同期をとるのが後になるスレーブ機器30Bの制御開始の遅れを抑制でき、スレーブ機器30Aとスレーブ機器30Bとの制御開始時刻のズレを抑制できる。
(第2の実施形態に係る通信システム、通信方法での同期をとるときの処理フロー)
上述の処理、制御を実現するため、マスタ機器20、スレーブ機器30A、および、スレーブ機器30Bは、例えば、次の処理を行えばよい。なお、各処理の具体的な内容は、上述しており、具体的な説明は省略する。
上述の処理、制御を実現するため、マスタ機器20、スレーブ機器30A、および、スレーブ機器30Bは、例えば、次の処理を行えばよい。なお、各処理の具体的な内容は、上述しており、具体的な説明は省略する。
(マスタ機器20の処理フロー)
図8(A)は、マスタ機器の処理を示すフローチャートである。図8(A)に示すように、マスタ機器20は、第1スレーブ機器であるスレーブ機器30Aと同期をとる(S31)。マスタ機器20は、第2スレーブ機器であるスレーブ機器30Bと同期をとる(S32)。マスタ機器20は、スレーブ機器30Aに対する同期基準時刻tsyA(マスタ側時刻tmにおける時刻t101A)とスレーブ機器30Bに対する同期基準時刻tsyB(マスタ側時刻tmにおける時刻t101B)との時間差Δtを算出する(S33)。
図8(A)は、マスタ機器の処理を示すフローチャートである。図8(A)に示すように、マスタ機器20は、第1スレーブ機器であるスレーブ機器30Aと同期をとる(S31)。マスタ機器20は、第2スレーブ機器であるスレーブ機器30Bと同期をとる(S32)。マスタ機器20は、スレーブ機器30Aに対する同期基準時刻tsyA(マスタ側時刻tmにおける時刻t101A)とスレーブ機器30Bに対する同期基準時刻tsyB(マスタ側時刻tmにおける時刻t101B)との時間差Δtを算出する(S33)。
マスタ機器20は、スレーブ機器30A、スレーブ機器30B毎に、個別の制御開始用の待機時間DTca、DTcbを設定する(S34)。マスタ機器20は、制御開始用の待機時間DTcaが添付された制御コマンドを、スレーブ機器30Aに送信し、制御開始用の待機時間DTcaが添付された制御コマンドを、スレーブ機器30Bに送信する(S35)。
(スレーブ機器30A、スレーブ機器30Bの処理フロー)
図8(B)は、スレーブ機器の処理を示すフローチャートである。図8(B)に示すように、スレーブ機器30Aおよびスレーブ機器30Bは、それぞれ個別に、マスタ機器20と同期をとる(S41)。スレーブ機器30Aは、制御開始用の待機時間DTcaが添付された制御コマンドを受信し、スレーブ機器30Bは、制御開始用の待機時間DTcbが添付された制御コマンドを受信する(S42)。
図8(B)は、スレーブ機器の処理を示すフローチャートである。図8(B)に示すように、スレーブ機器30Aおよびスレーブ機器30Bは、それぞれ個別に、マスタ機器20と同期をとる(S41)。スレーブ機器30Aは、制御開始用の待機時間DTcaが添付された制御コマンドを受信し、スレーブ機器30Bは、制御開始用の待機時間DTcbが添付された制御コマンドを受信する(S42)。
スレーブ機器30Aは、制御開始用の待機時間DTcaを抽出し、スレーブ機器30Bは、制御開始用の待機時間DTcbを抽出する(S43)。スレーブ機器30Aは、同期基準時刻tsyA(スレーブ側時刻tsAにおける時刻t22A)から、制御開始用の待機時間DTca、待機する。スレーブ機器30Bは、同期基準時刻tsyB(スレーブ側時刻tsBにおける時刻t22B)から、制御開始用の待機時間DTcb、待機する(S44)。スレーブ機器30A、スレーブ機器30Bは、待機後、制御コマンドを実行する(S45)。
このような通信システムは、例えば、次に示すようなアプリケーションに適用できる。図9は、通信システムが適用されるアプリケーションの一例を示す概念図である。図10は、適用対象のアプリケーションにおけるスレーブ機器の適用対象装置の構成例を示す機能ブロック図である。
図9に示すように、通信システムが適用されるアプリケーションの一例としては、生体信号のモニタリングシステムがある。生体信号のモニタリングシステムは、情報通信端末2、生体センサ3A、および、生体センサ3Bを備える。なお、生体センサの個数は、これに限らない。
情報通信端末2は、例えば、所謂スマートホン等である。情報通信端末2は、上述のマスタ機器20を備える。生体センサ3Aおよび生体センサ3Bは、小型の筐体を備え、被検知体(図9の例であれば人体)90のモニタリング箇所(図9の例であれば肩)91やモニタリング箇所(図9の例であれば腕)92に装着される。生体センサ3Aは、上述のスレーブ機器30Aを備え、生体センサ3Bは、上述のスレーブ機器30Bを備える。
より具体的には、生体センサ3Aおよび生体センサ3Bは、図10に示す構成を備える。生体センサ3Aと生体センサ3Bとは同様の構成を備えており、図10に示す生体センサ3の構成と同様の構成を備える。
生体センサ3は、制御通信モジュール300、メモリ301、ADC302、検出用電極303、バッテリ304、および、発光素子305を備える。制御通信モジュール300は、上述のスレーブ機器30の構成を備えている。メモリ301は、スレーブ機器30のシステム制御部31の処理を実現するプログラム、演算用のデータスペースを備える。ADC302は、アナログデジタル変換回路である。検出用電極303は、生体信号の検出対象に装着される電極である。バッテリ304は、一次電池、二次電池等からなる。発光素子305は、LED等からなる。
生体センサ3では、検出用電極303は、生体信号を検出し、ADC302に出力する。ADC302は、生体信号をAD変換(アナログデジタル変換)して、制御通信モジュール300に出力する。制御通信モジュール300は、スレーブ機器30の構成を備えているので、取得した生体信号を、外部、例えば、情報通信端末2に送信できる。
したがって、生体センサ3Aおよび生体センサ3Bは、取得した生体信号を、情報通信端末2に送信する。これにより、情報通信端末2は、生体センサ3Aおよび生体センサ3Bで取得した生体信号を、集中管理できる。
このような生体信号のモニタリングを行う際、上述のように、複数のスレーブ装置の同期をとることができることで、生体センサ3Aの生体信号の検出タイミングと、生体センサ3Bの生体信号の検出タイミングとを合わせることができる。すなわち、被検知体90のモニタリング箇所91とモニタリング箇所92とで、同期して、生体信号を検出できる。そして、例えば、情報通信端末2は、生体センサ3Aで検出した生体信号と、生体センサ3Bで検出した生体信号とを、時間的なズレを生じることなく、表示できる。
特に、本実施形態の構成では、マスタ機器20のシステム制御部21、スレーブ機器30A、30Bのシステム制御部31A、31Bが、互いの通信周期を制御できなくても、生体信号の検出の同期をとることができる。これにより、例えば、汎用のOSを備える情報通信端末2を利用可能である等、機器を制限することなく、複数箇所で同期した生体信号のモニタリングシステムを構築できる。
(第3の実施形態)
第3の実施形態に係る通信方法および通信システムについて、図を参照して説明する。図11は、第3の実施形態に係る通信方法の概念を示すタイミングチャートである。
第3の実施形態に係る通信方法および通信システムについて、図を参照して説明する。図11は、第3の実施形態に係る通信方法の概念を示すタイミングチャートである。
第3の実施形態に係る通信システムは、第1の実施形態に係る通信システムに対して、スレーブ機器がマスタ機器に対して同期できるタイミングを検出する点で異なる。第3の実施形態に係る通信システムにおけるマスタ機器20およびスレーブ機器30の基本的な構成は、第1の実施形態に係る通信システムと同様であり、同期のための処理の方法が異なる。以下では、異なる箇所のみを具体的に説明する。
(マスタ機器20の処理)
マスタ機器20のシステム制御部21は、マスタ側時刻tmにおける時刻t11に、同期用コマンドCm11を生成し、通信部22に出力する。システム制御部21は、同期用コマンドCm11の生成、出力後、時間間隔ΔT1をおいた時刻t112にて、同期用補助コマンドCm12を生成し、通信部22に出力する。言い換えれば、システム制御部21は、時間間隔ΔT1を有する同期用コマンドCm11と同期用補助コマンドCm12との対を生成し、生成した毎に、通信部22に出力する。時間間隔ΔT1の時間長は、待機時間Tcmの時間長よりも短い。時間間隔ΔT1は、例えば、同期用補助コマンドCm12に添付され、通信部22に出力される。
マスタ機器20のシステム制御部21は、マスタ側時刻tmにおける時刻t11に、同期用コマンドCm11を生成し、通信部22に出力する。システム制御部21は、同期用コマンドCm11の生成、出力後、時間間隔ΔT1をおいた時刻t112にて、同期用補助コマンドCm12を生成し、通信部22に出力する。言い換えれば、システム制御部21は、時間間隔ΔT1を有する同期用コマンドCm11と同期用補助コマンドCm12との対を生成し、生成した毎に、通信部22に出力する。時間間隔ΔT1の時間長は、待機時間Tcmの時間長よりも短い。時間間隔ΔT1は、例えば、同期用補助コマンドCm12に添付され、通信部22に出力される。
次に、システム制御部21は、マスタ側時刻tmにおける時刻t11から待機時間Tcmを経過した時刻t12に、同期用コマンドCm21を生成し、通信部22に出力する。システム制御部21は、同期用コマンドCm21の生成、出力後、時間間隔ΔT2をおいた時刻t122にて、同期用補助コマンドCm22を生成し、通信部22に出力する。言い換えれば、システム制御部21は、時間間隔ΔT2を有する同期用コマンドCm21と同期用補助コマンドCm22との対を生成し、生成した毎に、通信部22に出力する。時間間隔ΔT2の時間長は、待機時間Tcmの時間長よりも短く、時間間隔ΔT1よりも長い。時間間隔ΔT2は、例えば、同期用補助コマンドCm22に添付され、通信部22に出力される。
次に、システム制御部21は、マスタ側時刻tmにおける時刻t12から待機時間Tcmを経過した時刻t13に、同期用コマンドCm31を生成し、通信部22に出力する。システム制御部21は、同期用コマンドCm31の生成、出力後、時間間隔ΔT3をおいた時刻t132にて、同期用補助コマンドCm32を生成し、通信部22に出力する。言い換えれば、システム制御部21は、時間間隔ΔT3を有する同期用コマンドCm31と同期用補助コマンドCm32との対を生成し、生成した毎に、通信部22に出力する。時間間隔ΔT3の時間長は、待機時間Tcmの時間長よりも短く、時間間隔ΔT2よりも長い。時間間隔ΔT3は、例えば、同期用補助コマンドCm32に添付され、通信部22に出力される。
以下、nを4以上の整数として、システム制御部21は、待機時間Tcmの経過毎に、時間間隔ΔTnを有する同期用コマンドCmn1と同期用補助コマンドCmn2との対を生成し、生成した毎に(時刻t1nと時刻t1n2)、通信部22に出力する。時間間隔ΔTnの時間長は、待機時間Tcmの時間長よりも短く、時間間隔ΔTn−1よりも長い。この処理は、時間間隔ΔTnが待機時間Tcm以上になるまで繰り返される。時間間隔ΔTn(nは任意の整数)は、例えば、同期用補助コマンドCmn2に添付され、通信部22に出力される。
なお、本実施形態では、時間間隔を順次長くする態様を示したが、時間間隔を順次変化させればよく、例えば、時間間隔を順次短くする態様であってもよい。
マスタ機器20の通信部22は、システム制御部21から入力された同期用コマンドおよび同期用補助コマンドを、入力された直後の通信イベントに、スレーブ機器30の通信部32に送信する。言い換えれば、通信部22は、通信イベント時において、既に入力されており、未送信(未通信)の同期用コマンドおよび同期用補助コマンドを、通信部32に送信する。この際、通信部22は、同期用補助コマンドに時間間隔ΔTを添付している。
例えば、図11の場合、同期用補助コマンドCm12の通信部22への入力は、同期用コマンドCm11を送信する通信イベントよりも前である。したがって、通信部22は、同期用コマンドCm11と同期用補助コマンドCm12とを同じ通信イベントで、通信部32に送信する。
同様に、同期用補助コマンドCm22の通信部22への入力は、同期用コマンドCm21を送信する通信イベントよりも前である。したがって、通信部22は、同期用コマンドCm21と同期用補助コマンドCm22とを同じ通信イベントで、通信部32に送信する。また、同期用補助コマンドCm32の通信部22への入力は、同期用コマンドCm31を送信する通信イベントよりも前である。したがって、通信部22は、同期用コマンドCm31と同期用補助コマンドCm32とを同じ通信イベントで、通信部32に送信する。
一方、図11に示すように、同期用補助コマンドCmn2の通信部22への入力は、同期用コマンドCmn1を送信する通信イベントよりも後である。したがって、通信部22は、同期用コマンドCmn1と同期用補助コマンドCmn2とを同じ通信イベントで、通信部32に送信することはできない。すなわち、通信部22は、同期用コマンドCmn1と同期用補助コマンドCm12とを別の通信イベントで、通信部32に送信する。
(スレーブ機器30の処理)
通信部32は、通信部22から同期用コマンドおよび同期用補助コマンドを受信すると、システム制御部31に出力する。図11の場合、通信部32は、通信部22から同期用コマンドCm11および同期用補助コマンドCm12を、同じ通信イベントの通信で受信すると、これらをシステム制御部31に出力する。同様に、通信部32は、通信部22から同期用コマンドCm21および同期用補助コマンドCm22を、同じ通信イベントの通信で受信すると、これらをシステム制御部31に出力する。また、通信部32は、通信部22から同期用コマンドCm31および同期用補助コマンドCm32を、同じ通信イベントの通信で受信すると、これらをシステム制御部31に出力する。
通信部32は、通信部22から同期用コマンドおよび同期用補助コマンドを受信すると、システム制御部31に出力する。図11の場合、通信部32は、通信部22から同期用コマンドCm11および同期用補助コマンドCm12を、同じ通信イベントの通信で受信すると、これらをシステム制御部31に出力する。同様に、通信部32は、通信部22から同期用コマンドCm21および同期用補助コマンドCm22を、同じ通信イベントの通信で受信すると、これらをシステム制御部31に出力する。また、通信部32は、通信部22から同期用コマンドCm31および同期用補助コマンドCm32を、同じ通信イベントの通信で受信すると、これらをシステム制御部31に出力する。
一方、図11に示すように、通信部32は、通信部22から同期用コマンドCmn1を受信すると、同期用コマンドCmn1をシステム制御部31に出力する。この際、同期用補助コマンドCmn2は、同期用コマンドCmn1と同時に送信されていないので、通信部32で受信されず、システム制御部31に出力されない。
システム制御部31は、通信部32から取得した同期用コマンドと同期用補助コマンドとの対を確認し、これらの対が同時に受信できない最初の受信時刻を、同期基準時刻tsyに設定する。具体的には、図11の場合、システム制御部31は、同期用コマンドCmn1と同期用補助コマンドCmn2とが、対として、同時に受信できない最初の場合であり、同期用コマンドCmn1の受信時刻を検出する。システム制御部31は、この受信時刻から、時間間隔ΔTを減算することで、同期基準時刻tsyを推定する。なお、システム制御部31は、時間間隔ΔTを、例えば、同期用補助コマンドCmn2とともに取得することで把握できる。
これは、次の原理による。対となる同期用コマンドと同期用補助コマンドとの時間差が、同期用コマンドの生成時刻と通信周期Ttに基づく通信イベントとの時間差よりも短ければ、対となる同期用コマンドと同期用補助コマンドとは、同時に送信される。一方、対となる同期用コマンドと同期用補助コマンドとの時間差が、同期用コマンドの生成時刻と通信周期Ttに基づく通信イベントとの時間差よりも長ければ、対となる同期用コマンドと同期用補助コマンドとは、同時に送信されない。すなわち、同期用補助コマンドは、同期用コマンドの送信の通信イベントに間に合わない。
したがって、同期用コマンドCmn1と同期用補助コマンドCmn2とを対として同時に受信できない最初の通信イベントを検出した場合、この時の時間間隔ΔTnが、同期用コマンドの生成時刻と通信周期Ttに基づく通信イベントとの時間差と略同じであると見做すことができる。
このため、同期用コマンドCmn1と同期用補助コマンドCmn2とを対として同時に受信できない最初の通信イベントの時刻から時間間隔ΔTnを減算することで、システム制御部31は、システム制御部21による同期用コマンドの生成時刻、すなわち同期基準時刻tsyを推定できる。なお、n回目の同期用コマンドおよび同期用補助コマンドの生成時の時間間隔ΔTnは、例えば、同期基準時刻tsyの推定の前に、システム制御部21からシステム制御部31に通知しておけばよい。または、通信システムの初期構築時に、システム制御部21だけでなく、システム制御部31に記憶させておけばよい。
これにより、システム制御部31は、システム制御部21に対して、同期をとることができる。
なお、対となる同期用コマンドCmn1と同期用補助コマンドCmn2との時間差の増加量は、小さくすることが好ましい。これにより、同期基準時刻tsyの推定精度を向上させることができる。ただし、時間差を小さくしすぎると、同期基準時刻tsyの推定完了までの時間が長くなる可能性がある。したがって、時間差は、通信システムの同期精度を満足できるように、適宜設定すればよい。
また、上述の構成および処理では、スレーブ機器30は、マスタ機器20に、同期基準時刻tsyの推定完了を通知していないが、通知してもよい。この場合、スレーブ機器30のシステム制御部31は、同期基準時刻tsyの推定完了後の次の通信によって、同期基準時刻tsyの推定完了を通知すればよい。これにより、場合によっては、同期基準時刻tsyの推定処理を短くできる。例えば、同期用補助コマンドの生成時刻と直後の通信イベントの時刻との時間差が短い場合に、特に有効であり、同期基準時刻tsyの推定処理を短くできる。
(第3の実施形態に係る通信システム、通信方法での同期をとるときの処理フロー)
上述の処理、制御を実現するため、マスタ機器20、スレーブ機器30は、例えば、次の処理を行えばよい。なお、各処理の具体的な内容は、上述しており、具体的な説明は省略する。
上述の処理、制御を実現するため、マスタ機器20、スレーブ機器30は、例えば、次の処理を行えばよい。なお、各処理の具体的な内容は、上述しており、具体的な説明は省略する。
(マスタ機器20の処理フロー)
図12は、マスタ機器の処理を示すフローチャートである。図12に示すように、マスタ機器20のシステム制御部21は、同期用コマンドの生成時刻になると(S51:YES)、同期用コマンドを生成し(S52)、通信部22に出力する(S53)。システム制御部21は、同期用コマンドの生成時刻になるまでは、同期用コマンドの生成の待機状態となる(S51:NO)。
図12は、マスタ機器の処理を示すフローチャートである。図12に示すように、マスタ機器20のシステム制御部21は、同期用コマンドの生成時刻になると(S51:YES)、同期用コマンドを生成し(S52)、通信部22に出力する(S53)。システム制御部21は、同期用コマンドの生成時刻になるまでは、同期用コマンドの生成の待機状態となる(S51:NO)。
システム制御部21は、時間間隔ΔT(上述のΔT1等)で待機し(S54)、同期用補助コマンドを生成し(S55)、通信部22に出力する(S56)。システム制御部21は、時間間隔ΔTを変更、更新する(S57)。
そして、システム制御部21は、指定数の送信が完了していなければ(S58:NO)、同期用コマンドの生成の待機状態に戻る。一方、システム制御部21は、指定数の送信が完了していれば(S58:YES)、処理を終了する。
(スレーブ機器30の処理フロー)
図13は、スレーブ機器の処理を示すフローチャートである。図13に示すように、スレーブ機器30のシステム制御部31は、通信データを受信、解析する(S61)。システム制御部31は、同期用コマンドがあり(S62:YES)、これに対となる同期用補助コマンドがあれば(S63:YES)、この受信時刻から、同期基準時刻を推定する(S64)。システム制御部31は、同期用コマンドがない(S62:NO)、または、同期用補助コマンドがなければ(S63:NO)、通信データの受信待機状態に戻る。
図13は、スレーブ機器の処理を示すフローチャートである。図13に示すように、スレーブ機器30のシステム制御部31は、通信データを受信、解析する(S61)。システム制御部31は、同期用コマンドがあり(S62:YES)、これに対となる同期用補助コマンドがあれば(S63:YES)、この受信時刻から、同期基準時刻を推定する(S64)。システム制御部31は、同期用コマンドがない(S62:NO)、または、同期用補助コマンドがなければ(S63:NO)、通信データの受信待機状態に戻る。
2:情報通信端末
3、3A、3B:生体センサ
10:通信システム
20:マスタ機器
21:システム制御部
22:通信部
30、30A、30B:スレーブ機器
31、31A、31B:システム制御部
32、32A、32B:通信部
90:被検知体
91、92:モニタリング箇所
210:計時部
211:コマンド生成部
212:コマンド検出部
213:同期時刻決定部
300:制御通信モジュール
301:メモリ
302:ADC
303:検出用電極
304:バッテリ
305:発光素子
310:計時部
311:コマンド生成部
312:コマンド検出部
313:同期時刻決定部
314:制御コマンド実行部
3、3A、3B:生体センサ
10:通信システム
20:マスタ機器
21:システム制御部
22:通信部
30、30A、30B:スレーブ機器
31、31A、31B:システム制御部
32、32A、32B:通信部
90:被検知体
91、92:モニタリング箇所
210:計時部
211:コマンド生成部
212:コマンド検出部
213:同期時刻決定部
300:制御通信モジュール
301:メモリ
302:ADC
303:検出用電極
304:バッテリ
305:発光素子
310:計時部
311:コマンド生成部
312:コマンド検出部
313:同期時刻決定部
314:制御コマンド実行部
Claims (14)
- マスタ機器と1以上のスレーブ機器とは、一定の通信周期で互いに通信を行い、
前記マスタ機器は、順次、第1の同期用コマンドと第2の同期用コマンドを、スレーブ機器に送信し、
前記スレーブ機器は、前記第1の同期用コマンドを受信すると、後の通信イベントで、応答コマンドを、前記マスタ機器に送信し、
前記マスタ機器は、前記応答コマンドの受信に応じて同期基準時刻を設定し、
前記スレーブ機器は、前記第2の同期用コマンドの受信に応じて前記同期基準時刻を設定する、
通信方法。 - 前記マスタ機器のマスタ側通信部と前記スレーブ機器のスレーブ側通信部とは、前記一定の通信周期で前記通信を行い、
前記マスタ機器のマスタ側システム制御部は、前記マスタ側通信部に対して前記第1の同期用コマンドを出力し、さらに、前記第1の同期用コマンドを出力した時刻から前記通信周期と同じ時間長の経過後に、前記第2の同期用コマンドを出力し、
前記マスタ側通信部は、前記通信周期によって決められた第1通信機会に、前記第1の同期用コマンドを前記スレーブ側通信部に送信し、さらに、前記通信周期によって決められた前記第1通信機会の後の第2通信機会に、前記第2の同期用コマンドを前記スレーブ側通信部に送信し、
前記スレーブ側通信部は、受信した前記第1の同期用コマンド、および、受信した前記第2の同期用コマンドを、それぞれの受信時刻に、前記スレーブ機器のスレーブ側システム制御部に出力し、
前記スレーブ側システム制御部は、前記第1の同期用コマンドに対する前記応答コマンドを生成して、前記第1の同期用コマンドを取得した時刻から、前記通信周期よりも短い応答時間の後に、前記スレーブ側通信部に出力し、
前記スレーブ側通信部は、前記通信周期によって決められた前記第2通信機会に、前記応答コマンドを前記マスタ側通信部に送信し、
前記マスタ側通信部は、前記応答コマンドを、該応答コマンドの受信時刻に、前記マスタ側システム制御部に出力し、
前記マスタ側システム制御部は、前記マスタ側システム制御部の時刻における前記応答コマンドの取得の時刻に基づき同期基準時刻を設定し、
前記スレーブ側システム制御部は、前記スレーブ側システム制御部の時刻における前記第2の同期用コマンドの取得の時刻に基づき前記同期基準時刻を設定する、
請求項1に記載の通信方法。 - 前記マスタ機器は、前記1以上のスレーブ機器に含まれる第1スレーブ機器と第2スレーブ機器に対して、それぞれに1対1の通信によって、同期を個別に行う、
請求項1または請求項2に記載の通信方法。 - 前記マスタ機器は、
前記第1スレーブ機器と前記第2スレーブ機器とに対して、制御コマンドを送信するとき、前記第1スレーブ機器の第1同期時刻と前記第2スレーブ機器の第2同期時刻との差によって決められる制御開始の時間差を含む情報を、前記制御コマンドに添付する、
請求項3に記載の通信方法。 - 前記制御コマンドに添付する情報は、前記第1同期時刻から前記制御開始までの第1時間長と、前記第2同期時刻から前記制御開始までの第2時間長であり、
前記マスタ機器は、
前記第1スレーブ機器に与える制御コマンドに、前記第1時間長を添付し、
前記第2スレーブ機器に与える制御コマンドに、前記第2時間長を添付する、
請求項4に記載の通信方法。 - マスタ機器と1以上のスレーブ機器とは、一定の通信周期で互いに通信を行い、
前記マスタ機器は、
前記一定の通信周期毎に、それぞれに時間間隔が異なる同期用コマンドと同期用補助コマンドとを対にして生成し、
前記同期用コマンドと前記同期用補助コマンドとを、前記一定の通信周期にしたがって、通信イベントまでに生成され、未通信のものを、前記スレーブ機器に送信し、
前記スレーブ機器は、
前記対を構成する前記同期用コマンドと前記同期用補助コマンドとを、同じ通信機会に受信できないことに基づき、同期基準時刻を推定する、
通信方法。 - 前記マスタ機器のマスタ側通信部と前記スレーブ機器のスレーブ側通信部とは、前記一定の通信周期で通信を行い、
前記マスタ機器のマスタ側システム制御部は、それぞれに時間間隔が異なる同期用コマンドと同期用補助コマンドとを対にして生成し、
前記マスタ側通信部は、前記通信周期によって決められた通信イベントに、この通信イベントまでに生成された前記同期用コマンドまたは前記同期用補助コマンドを、前記スレーブ側通信部に送信し、
前記スレーブ側通信部は、受信した前記同期用コマンドまたは前記同期用補助コマンドを、前記スレーブ機器のスレーブ側システム制御部に出力し、
前記スレーブ側システム制御部は、
前記対を構成する前記同期用コマンドと前記同期用補助コマンドとを、同じ通信機会に取得できないことに基づき、前記同期基準時刻を推定する、
請求項6に記載の通信方法。 - 前記マスタ機器は、前記時間間隔を、順次変化させる、
請求項6または請求項7に記載の通信方法。 - マスタ側システム制御部、および、マスタ側通信部を備えるマスタ機器と、
スレーブ側システム制御部、および、前記マスタ側通信部と一定の通信周期で通信するスレーブ側通信部を備えるスレーブ機器と、を備え、
前記マスタ側システム制御部は、
マスタ側時刻を計時するマスタ側計時部と、
前記マスタ側時刻を用いて、前記通信周期と同じ時間間隔で、順次、第1の同期用コマンドと第2の同期用コマンドとを生成して出力するマスタ側コマンド生成部と、
前記マスタ側時刻における前記第1の同期用コマンドの応答コマンドの受信に応じて同期時刻を決定する、マスタ側同期時刻決定部と、を備え、
前記マスタ側通信部は、
前記第1の同期用コマンドと前記第2の同期用コマンドとを、前記通信周期を用いて、前記スレーブ側通信部に順次送信し、
前記スレーブ側通信部からの前記応答コマンドを受信して、前記マスタ側システム制御部に出力し、
前記スレーブ側通信部は、
前記マスタ側通信部からの前記第1の同期用コマンドと前記第2の同期用コマンドとを受信して、前記スレーブ側システム制御部に出力し、
前記スレーブ側システム制御部からの前記応答コマンドを、前記通信周期を用いて、前記マスタ側通信部に送信し、
前記スレーブ側システム制御部は、
スレーブ側時刻を計時するスレーブ側計時部と、
前記第1の同期用コマンドの取得時刻から、前記通信周期よりも短い応答時間の後に、前記第1の同期用コマンドに対する前記応答コマンドを生成して、前記スレーブ側通信部に出力するスレーブ側コマンド生成部と、
前記スレーブ側時刻における前記第2の同期用コマンドの受信に応じて前記同期時刻を決定する、スレーブ側同期時刻決定部と、を備える、
通信システム。 - 前記1以上のスレーブ機器は、第1スレーブ機器と第2スレーブ機器とを含み、
前記マスタ機器は、前記第1スレーブ機器と前記第2スレーブ機器に対して、それぞれに1対1の通信によって、前記同期時刻の決定を個別に行う、
請求項9に記載の通信システム。 - 前記マスタ機器は、
前記第1スレーブ機器と前記第2スレーブ機器とに対して、制御コマンドを送信するとき、前記第1スレーブ機器の第1同期時刻と前記第2スレーブ機器の第2同期時刻との差によって決められる制御開始の時間差を含む情報を、前記制御コマンドに添付する、
請求項10に記載の通信システム。 - 前記制御コマンドに添付する情報は、前記第1同期時刻から前記制御開始までの第1時間長と、前記第2同期時刻から前記制御開始までの第2時間長であり、
前記マスタ機器は、
前記第1スレーブ機器に与える制御コマンドに、前記第1時間長を添付し、
前記第2スレーブ機器に与える制御コマンドに、前記第2時間長を添付する、
請求項11に記載の通信システム。 - マスタ側システム制御部、および、マスタ側通信部を備えるマスタ機器と、
スレーブ側システム制御部、および、前記マスタ側通信部と一定の通信周期で通信するスレーブ側通信部を備えるスレーブ機器と、を備え、
前記マスタ側システム制御部は、
マスタ側時刻を計時するマスタ側計時部と、
前記マスタ側時刻を用いて、それぞれに時間間隔が異なる同期用コマンドと同期用補助コマンドとを対にして、順次、生成して出力するマスタ側コマンド生成部と、を備え、
前記マスタ側通信部は、
前記通信周期によって決められた通信イベントに、この通信イベントまでに生成された前記同期用コマンドまたは前記同期用補助コマンドを、前記スレーブ側通信部に送信し、
前記スレーブ側通信部は、
受信した前記同期用コマンドまたは前記同期用補助コマンドを、前記スレーブ機器のスレーブ側システム制御部に出力し、
前記スレーブ側システム制御部は、
スレーブ側時刻を計時するスレーブ側計時部と、
前記対を構成する前記同期用コマンドと前記同期用補助コマンドとを、同じ通信機会に取得できないことに基づき、同期基準時刻を推定する、スレーブ側同期時刻決定部と、を備える、
通信システム。 - 前記マスタ機器は、前記時間間隔を、順次変化させる、
請求項13に記載の通信システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019195797A JP2021072457A (ja) | 2019-10-29 | 2019-10-29 | 通信方法、および、通信システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019195797A JP2021072457A (ja) | 2019-10-29 | 2019-10-29 | 通信方法、および、通信システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2021072457A true JP2021072457A (ja) | 2021-05-06 |
Family
ID=75713498
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019195797A Pending JP2021072457A (ja) | 2019-10-29 | 2019-10-29 | 通信方法、および、通信システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2021072457A (ja) |
-
2019
- 2019-10-29 JP JP2019195797A patent/JP2021072457A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4185926B2 (ja) | ロボット協調制御方法及びシステム | |
US9979998B1 (en) | System for time synchronization of audio devices | |
CN101682443B (zh) | 供在网络中使用的网络装置 | |
JP2007060400A (ja) | 通信タイミング制御方法および通信タイミング制御システム | |
KR20100080191A (ko) | 네트워크에 연결된 슬레이브 장치들의 동기 제어장치 및 방법 | |
JP5120097B2 (ja) | 時間同期システムおよび時間同期装置 | |
KR100726476B1 (ko) | 이기종 센서노드의 전력소모 최소화를 위한 시간동기화방법 및 이를 적용한 네트워크 | |
US10849084B1 (en) | Asynchronous realizations based on accurate, energy-efficient, decentralized, single-hop time synchronization protocol for WSNs | |
JP5643240B2 (ja) | 時刻設定方法、通信装置、および時刻設定プログラム | |
JP2021072457A (ja) | 通信方法、および、通信システム | |
JP2002252606A (ja) | 同期補正回路 | |
US20170117980A1 (en) | Time synchronization for network device | |
KR101645260B1 (ko) | 복수의 제어기간의 정밀한 시간 기록을 포함하는 데이터 동기화 시스템 및 방법 | |
EP3893566B1 (en) | Systems and methods for synchronizing wireless sensor devices connected to a control panel device via multiple access point devices | |
JP2018098902A (ja) | 監視システムおよび監視装置 | |
JP6115478B2 (ja) | 通信システム | |
US11616660B2 (en) | Serial time triggered data bus | |
JP2012227564A (ja) | 通信装置、通信システム、通信装置の制御方法およびプログラム | |
JP2016008911A (ja) | 時刻同期方法、時刻同期システム、時刻マスタ機器及び時刻スレーブ機器 | |
JP2015216438A (ja) | 時刻同期システム、マスタ装置およびスレーブ装置、並びに時刻同期方法 | |
KR102104967B1 (ko) | 이중화 보드에서 마스터/슬레이브 설정방법 및 그 보드 | |
WO2020095413A1 (ja) | 通信システム、通信装置、方法、及びプログラム | |
JP2009253360A (ja) | センサネットワークシステム | |
JP2013168884A (ja) | 時刻同期システム、時刻送信装置、時刻受信装置、時刻同期方法およびプログラム | |
JP2014157386A (ja) | データ処理システム |