JP6254028B2 - スレーブノード及び時刻同期方法 - Google Patents

スレーブノード及び時刻同期方法 Download PDF

Info

Publication number
JP6254028B2
JP6254028B2 JP2014064791A JP2014064791A JP6254028B2 JP 6254028 B2 JP6254028 B2 JP 6254028B2 JP 2014064791 A JP2014064791 A JP 2014064791A JP 2014064791 A JP2014064791 A JP 2014064791A JP 6254028 B2 JP6254028 B2 JP 6254028B2
Authority
JP
Japan
Prior art keywords
time
node
master node
master
slave node
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.)
Active
Application number
JP2014064791A
Other languages
English (en)
Other versions
JP2015188159A (ja
Inventor
豪 矢沢
豪 矢沢
秀胤 村山
秀胤 村山
浩治 渡部
浩治 渡部
小林 正啓
正啓 小林
克俊 行田
克俊 行田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone East Corp
Original Assignee
Nippon Telegraph and Telephone East Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone East Corp filed Critical Nippon Telegraph and Telephone East Corp
Priority to JP2014064791A priority Critical patent/JP6254028B2/ja
Publication of JP2015188159A publication Critical patent/JP2015188159A/ja
Application granted granted Critical
Publication of JP6254028B2 publication Critical patent/JP6254028B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Synchronisation In Digital Transmission Systems (AREA)

Description

本発明は、時刻同期の技術に関する。
近年、複数の基地局間で連係した動作を行うため、高精度な時刻同期が求められている。そこで、ネットワーク接続された複数の機器の時刻をマイクロ秒以下の精度で同期させる技術として、IEEE1588で定義されたPTP(Precision Time Protocol)が知られている(例えば、非特許文献1参照)。PTPでは、マスターノードとスレーブノードとの間で時刻情報を含むメッセージが定期的に交換される。スレーブノードは、マスターノード及びスレーブノードにおけるメッセージが送受信された時刻情報から、マスターノードに対するスレーブノードの時刻のずれ(Offset)を計算する。そして、スレーブノードは、計算したOffsetに基づいてスレーブノードの時刻を補正して、スレーブノードの時刻をマスターノードの時刻に同期させる。
上述したPTPでは、マスターノードからスレーブノードへの遅延時間と、スレーブノードからマスターノードへの遅延時間とが等しいことを前提として時刻同期が行われる。しかしながら、一般的なネットワークでは、マスターノードとスレーブノードとがルータ等の中継装置を介して接続されることが多いため、中継装置内のキューイング遅延等の影響によりマスターノードとスレーブノードとの間の遅延時間に揺らぎが生じてしまう。このような場合、スレーブノードの時刻を補正する際に求められるOffsetの値には誤差が含まれる。つまり、中継装置内のキューイング遅延等の影響が大きい場合、求められるOffsetの値に含まれる誤差も大きくなってしまう。したがって、スレーブノードは、誤差の大きいOffsetの値でスレーブノードの時刻を補正してしまうおそれがあった。このような問題が発生すると、スレーブノードの時刻同期の精度が劣化してしまう。このような問題は、PTPに限らず、時刻同期を行う全ての通信プロトコルに共通する問題である。
上記事情に鑑み、本発明は、スレーブノードの時刻同期の精度低下を抑えることができる技術の提供を目的としている。
本発明の一態様は、スレーブノードにおける時刻をマスターノードにおける時刻に同期させるための処理である時刻同期処理に使用される制御メッセージを複数のマスターノードとの間で送受信する通信部と、前記通信部が前記制御メッセージを送受信した際に取得される時刻情報に基づいて自装置の時刻を補正する時刻補正部と、を備え、取得される時刻情報に基づいて各マスターノードの時刻と自装置の時刻との時刻差の統計値を算出する算出部をさらに備え、前記時刻補正部は、算出された前記統計値に基づいて自装置の時刻を補正し、前記算出部は、所定の期間の間に取得された前記時刻情報に基づいて、前記所定の期間におけるマスターノードの時刻と自装置の時刻との時刻差の統計値である第1の統計値を前記マスターノード毎に算出し、算出した前記マスターノード毎の第1の統計値に基づいて、各マスターノードの時刻と自装置の時刻との時刻差の統計値である第2の統計値を算出するスレーブノードである。
本発明の一態様は、スレーブノードにおける時刻をマスターノードにおける時刻に同期させるための処理である時刻同期処理に使用される制御メッセージを複数のマスターノードとの間で送受信する通信部と、前記通信部が前記制御メッセージを送受信した際に取得される時刻情報に基づいて自装置の時刻を補正する時刻補正部と、を備え、取得される時刻情報に基づいて各マスターノードの時刻と自装置の時刻との時刻差の統計値を算出する算出部をさらに備え、前記時刻補正部は、算出された前記統計値に基づいて自装置の時刻を補正し、前記算出部は、所定の期間の間に取得された前記時刻情報に基づいて、前記所定の期間におけるマスターノードの時刻と自装置の時刻との時刻差の統計値である第1の統計値を前記マスターノード毎に算出し、算出した前記マスターノード毎の第1の統計値に対し、所定の期間における前記マスターノード毎の時刻差の分散値で重み付けした後に、重み付けされた前記第1の統計値に基づいて、各マスターノードの時刻と自装置の時刻との時刻差の統計値である第2の統計値を算出するスレーブノードである。
本発明の一態様は、スレーブノードにおける時刻をマスターノードにおける時刻に同期させるための処理である時刻同期処理に使用される制御メッセージを複数のマスターノードとの間で送受信する通信ステップと、前記通信ステップによって前記制御メッセージを送受信した際に取得される時刻情報に基づいて前記スレーブノードの時刻を補正する時刻補正ステップと、を有し、取得される時刻情報に基づいて各マスターノードの時刻と自装置の時刻との時刻差の統計値を算出する算出ステップをさらに有し、前記時刻補正ステップにおいて、算出された前記統計値に基づいて自装置の時刻を補正し、前記算出ステップにおいて、所定の期間の間に取得された前記時刻情報に基づいて、前記所定の期間におけるマスターノードの時刻と自装置の時刻との時刻差の統計値である第1の統計値を前記マスターノード毎に算出し、算出した前記マスターノード毎の第1の統計値に基づいて、各マスターノードの時刻と自装置の時刻との時刻差の統計値である第2の統計値を算出する時刻同期方法である。また、本発明の一態様は、スレーブノードにおける時刻をマスターノードにおける時刻に同期させるための処理である時刻同期処理に使用される制御メッセージを複数のマスターノードとの間で送受信する通信ステップと、前記通信ステップによって前記制御メッセージを送受信した際に取得される時刻情報に基づいて前記スレーブノードの時刻を補正する時刻補正ステップと、を有し、取得される時刻情報に基づいて各マスターノードの時刻と自装置の時刻との時刻差の統計値を算出する算出ステップをさらに有し、前記時刻補正ステップにおいて、算出された前記統計値に基づいて自装置の時刻を補正し、前記算出ステップにおいて、所定の期間の間に取得された前記時刻情報に基づいて、前記所定の期間におけるマスターノードの時刻と自装置の時刻との時刻差の統計値である第1の統計値を前記マスターノード毎に算出し、算出した前記マスターノード毎の第1の統計値に対し、所定の期間における前記マスターノード毎の時刻差の分散値で重み付けした後に、重み付けされた前記第1の統計値に基づいて、各マスターノードの時刻と自装置の時刻との時刻差の統計値である第2の統計値を算出する時刻同期方法である。
本発明により、スレーブノードの時刻同期の精度低下を抑えることが可能となる。
本発明の時刻同期システム100のシステム構成を示す図である。 マスターノード10及びスレーブノード20の概略ブロック図である。 本発明の第1動作例における時刻同期処理の通信シーケンスの動作例を表すシーケンス図である。 本発明の第1動作例におけるスレーブノード20の処理の流れを示すフローチャートである。 本発明の第2動作例における時刻同期処理の通信シーケンスの動作例を表すシーケンス図である。 本発明の第2動作例におけるスレーブノード20の処理の流れを示すフローチャートである。 本発明の第3動作例における時刻同期処理の通信シーケンスの動作例を表すシーケンス図である。 本発明の第3動作例におけるスレーブノード20の処理の流れを示すフローチャートである。 本発明の第4動作例における時刻同期処理の通信シーケンスの動作例を表すシーケンス図である。 本発明の第4動作例におけるスレーブノード20の処理の流れを示すフローチャートである。 本発明の第5動作例における時刻同期処理の通信シーケンスの動作例を表すシーケンス図である。 所定の期間T0の間に算出されたマスターノード10毎のノード間時刻差の推移を表す図である。 本発明の第5動作例におけるスレーブノード20の処理の流れを示すフローチャートである。
以下、本発明の一実施形態を、図面を参照しながら説明する。
図1は、本発明の時刻同期システム100のシステム構成を示す図である。本発明の時刻同期システム100は、マスターノード10(10−1及び10−2)及びスレーブノード20を備える。マスターノード10−1及びスレーブノード20は、ネットワーク30−1を介して互いに通信可能に接続される。マスターノード10−2及びスレーブノード20は、ネットワーク30−2を介して互いに通信可能に接続される。図1では、時刻同期システム100が2台のマスターノード10を備える構成を示しているが、時刻同期システム100は3台以上のマスターノード10を備えるように構成されてもよい。また、図1では、時刻同期システム100が1台のスレーブノード20を備える構成を示しているが、時刻同期システム100は2台以上のスレーブノード20を備えるように構成されてもよい。
マスターノード10は、定期的にスレーブノード20との間でPTPメッセージ(制御メッセージ)を送受信する。PTPメッセージとは、時刻同期処理に使用される制御メッセージ(制御パケット)であり、例えばAnnounceメッセージ、Syncメッセージ、Follow_upメッセージ、Delay_Requestメッセージ、Delay_Responseメッセージである。時刻同期処理とは、スレーブノード20における時刻をマスターノード10における時刻に同期させるための処理である。
Announceメッセージは、自装置の状態情報を他の装置に通知するためのメッセージである。例えば、Announceメッセージには、マスターノード10の時刻源の品質を表すClockclass情報(以下、「品質情報」という。)が含まれる。Clockclass情報は、1〜255までの255段階でマスターノード10の時刻源の品質を表す情報であり、数字が小さいほど時刻源の品質が良いことを表す。つまり、Clockclass情報が“1”である場合にはマスターノード10の時刻源の品質が最も良いことを表し、Clockclass情報が“255”である場合にはマスターノード10の時刻源の品質が最も悪いことを表す。
Syncメッセージは、時刻同期化の動作を開始するために送信されるメッセージである。Follow_upメッセージは、Syncメッセージが送信された後に、Syncメッセージの送信時刻の時刻情報を通知するために送信されるメッセージである。Delay_Requestメッセージは、スレーブノード20がマスターノード10から送信されるFollow_upメッセージを受信した後に、マスターノード10にDelay_Responseメッセージを要求するために送信されるメッセージである。Delay_Responseメッセージは、Delay_Requestメッセージの応答として送信されるメッセージである。
スレーブノード20は、各マスターノード10との間でPTPメッセージを送受信した際に得られる時刻情報に基づいて、自装置(スレーブノード20)の時刻(以下、「スレーブ時刻」という。)を補正する。
ネットワーク30−1は、どのように構成されたネットワークでもよい。例えば、ネットワーク30−1はLAN(Local Area Network)を用いて構成されてもよい。
ネットワーク30−2は、どのように構成されたネットワークでもよい。例えば、ネットワーク30−2はLANを用いて構成されてもよい。
図2は、マスターノード10及びスレーブノード20の概略ブロック図である。
まず、マスターノード10の具体的な機能構成について説明する。マスターノード10は、バスで接続されたCPU(Central Processing Unit)やメモリや補助記憶装置などを備え、時刻同期用プログラムを実行する。時刻同期用プログラムの実行によって、マスターノード10は、マスタークロック生成部101、時計部102、パケット生成部103、通信部104を備える装置として機能する。なお、マスターノード10の各機能の全て又は一部は、ASIC(Application Specific Integrated Circuit)やPLD(Programmable Logic Device)やFPGA(Field Programmable Gate Array)等のハードウェアを用いて実現されてもよい。また、時刻同期用プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。また、時刻同期用プログラムは、電気通信回線を介して送受信されてもよい。
マスタークロック生成部101は、例えば、VCXO(Voltage controlled xtal oscillators)等の電圧可変型の水晶発振器等を用いて構成される。また、マスタークロック生成部101は、マスタークロックを生成する。具体的には、マスタークロック生成部101は、マスターノード10における1秒の時間幅を決定する。なお、マスタークロック生成部101は、マスターノード10の外部に存在してもよい。
時計部102は、マスタークロック生成部101が生成したマスタークロックに従い、マスター時刻を決定する。具体的には、時計部102は、マスターノード10において何時何分何秒であるかを決める。時計部102は、マスター時刻の時刻情報をパケット生成部103に出力する。
パケット生成部103は、各種パケットを生成する。パケット生成部103が生成するパケットは、例えばAnnounceメッセージ、Syncメッセージ、Follow_upメッセージ、Delay_Responseメッセージなどである。パケット生成部103は、Announceメッセージを生成する際、マスターノード10の時刻源の品質情報を付加する。パケット生成部103は、定期的にSyncメッセージを生成する。パケット生成部103は、通信部104を介してスレーブノード20にSyncメッセージを送信し、略同時に時計部102を参照してSyncメッセージの送信時刻(以下、「Sync送信時刻」という。)T1k(kは1以上の整数)を記録する。また、例えば、パケット生成部103は、Syncメッセージ送信後に、Sync送信時刻T1kを格納したFollow_upメッセージを生成する。パケット生成部103は、通信部104を介してスレーブノード20にFollow_upメッセージを送信する。
また、パケット生成部103は、通信部104によって受信されるDelay_Requestメッセージの受信時刻(以下、「Delay受信時刻」という。)T4kを、時計部102を参照して記録する。その後、パケット生成部103は、記録したDelay受信時刻T4kを格納したDelay_Responseメッセージを生成し、通信部104を介してスレーブノード20にDelay_Responseメッセージを送信する。
通信部104は、スレーブノード20との間でPTPメッセージの送受信を行う。例えば、通信部104は、スレーブノード20からDelay_Requestメッセージを受信し、パケット生成部103に転送する。また、例えば通信部104は、Announceメッセージ、Syncメッセージ、Follow_upメッセージ、Delay_Responseメッセージをスレーブノード20に送信する。
次に、スレーブノード20の機能構成を説明する。
スレーブノード20は、バスで接続されたCPUやメモリや補助記憶装置などを備え、時刻同期用プログラムを実行する。時刻同期用プログラムの実行によって、スレーブノード20は、通信部201、制御部202、同期処理部203、時計部204、算出部205、時刻補正部206を備える装置として機能する。なお、スレーブノード20の各機能の全て又は一部は、ASICやPLDやFPGA等のハードウェアを用いて実現されてもよい。また、時刻同期用プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。また、時刻同期用プログラムは、電気通信回線を介して送受信されてもよい。
通信部201は、各マスターノード10との間でPTPメッセージの送受信を行う。例えば、通信部201は、Announceメッセージ、Syncメッセージ、Follow_upメッセージ、Delay_Responseメッセージを各マスターノード10から受信する。また、例えば、通信部201は、Delay_Requestメッセージを各マスターノード10に送信する。
制御部202は、スレーブノード20の各機能部を制御する。制御部202は、Announceメッセージ中に格納されているマスターノード10の時刻源の品質情報を抽出する。制御部202は、Follow_upメッセージの受信後、Delay_Requestメッセージを生成する。その後、制御部202は、生成したDelay_Requestメッセージを通信部201に送信させ、略同時に時計部204を参照してDelay_Requestメッセージの送信時刻(以下、「Delay送信時刻」という。)T3kを記録する。また、制御部202は、Syncメッセージが通信部201から転送された際にSyncメッセージの受信時刻(以下、「Sync受信時刻」という。)T2kを記録する。また、制御部202は、Follow_upメッセージ中に格納されているSync送信時刻T1kを抽出し記録する。また、制御部202は、Delay_Responseメッセージ中に格納されているDelay受信時刻T4kを抽出し記録する。
同期処理部203は、スレーブノード20における1秒の時間幅を決定する。具体的には、同期処理部203は、通信部201によって受信されたSyncメッセージに基づいてスレーブクロックを生成することによって、スレーブノード20における1秒の時間幅を決定する。生成されたスレーブクロックは、マスターノード10のマスタークロックに同期される。同期処理部203は、自身のクロックから生成するタイムスタンプとマスターノード10から受信したタイムスタンプとの差分を計算し、計算された差分を元に自身のクロックを調整できる構成であれば、どのような構成であってもよい。
時計部204は、同期処理部203によって生成されたスレーブクロックに従い、スレーブ時刻を決定する。具体的には、時計部204は、スレーブノード20において何時何分何秒であるかを決める。時計部204は、スレーブ時刻の時刻情報を制御部202に出力する。
算出部205は、通信部201がPTPメッセージを送受信した際に取得される時刻情報に基づいて、各マスターノード10それぞれのマスター時刻とスレーブ時刻との時刻差の統計値を算出する。統計値は、例えば、平均値、最大値、最小値、最頻値などである。なお、以下の説明では、統計値の具体例として平均値を例に説明する。以下、算出部205の動作について説明する。スレーブノード20は、マスターノード10のマスター時刻と、スレーブ時刻との時刻差(以下、「ノード間時刻差」という。)を、接続しているマスターノード10毎に算出する。そして、スレーブノード20は、算出したマスターノード10毎のノード間時刻差に基づいて、ノード間時刻差の平均値(以下、「時刻差平均値」という。)を算出する。
以上で、算出部205の動作についての説明を終了する。
時刻補正部206は、算出部205によって算出された時刻差平均値に基づいてスレーブ時刻を補正する。
以下、本発明の時刻同期システム100の具体的な動作例(第1動作例〜第5動作例)について説明する。
[第1動作例]
図3は、本発明の第1動作例における時刻同期処理の通信シーケンスの動作例を表すシーケンス図である。なお、図3の説明では、マスターノード10の台数が2台(マスターノード10−1、マスターノード10−2)であり、スレーブノード20の台数が1台である場合を例に説明する。
マスターノード10−1は、スレーブノード20に対して定期的にSyncメッセージを送信する(ステップS101)。マスターノード10−1は、Sync送信時刻T11を記録する(ステップS102)。次に、マスターノード10−1は、スレーブノード20に対して、Follow_upメッセージを送信する(ステップS103)。この際、マスターノード10−1は、Follow_upメッセージの中に、Sync送信時刻T11を格納する。
スレーブノード20は、マスターノード10−1から送信されたSyncメッセージを受信すると、この受信処理をトリガとしてSync受信時刻T21を記録する(ステップS104)。次に、スレーブノード20は、マスターノード10−1から送信されたFollow_upメッセージを受信し、Follow_upメッセージ中に格納されるSync送信時刻T11を抽出し記録する。
マスターノード10−2は、スレーブノード20に対して定期的にSyncメッセージを送信する(ステップS105)。マスターノード10−1は、Sync送信時刻T12を記録する(ステップS106)。次に、マスターノード10−2は、スレーブノード20に対して、Follow_upメッセージを送信する(ステップS107)。この際、マスターノード10−2は、Follow_upメッセージの中に、Sync送信時刻T12を格納する。
スレーブノード20は、マスターノード10−2から送信されたSyncメッセージを受信すると、この受信処理をトリガとしてSync受信時刻T22を記録する(ステップS108)。次に、スレーブノード20は、マスターノード10−2から送信されたFollow_upメッセージを受信し、Follow_upメッセージ中に格納されるSync送信時刻T12を抽出し記録する。
次に、スレーブノード20は、マスターノード10−1に対して、Delay_Requestメッセージを送信する(ステップS109)。そして、スレーブノード20は、Delay送信時刻T31を記録する(ステップS110)。マスターノード10−1は、Delay_Requestメッセージを受信すると、この受信処理をトリガとしてDelay受信時刻T41を記録する(ステップS111)。
また、スレーブノード20は、マスターノード10−2に対して、Delay_Requestメッセージを送信する(ステップS112)。そして、スレーブノード20は、Delay送信時刻T32を記録する(ステップS113)。マスターノード10−2は、Delay_Requestメッセージを受信すると、この受信処理をトリガとしてDelay受信時刻T42を記録する(ステップS114)。
次に、マスターノード10−1は、スレーブノード20に対してDelay_Responseメッセージを送信する(ステップS115)。この際、マスターノード10−1は、Delay_Responseメッセージの中に、Delay受信時刻T41を格納する。スレーブノード20は、マスターノード10−1から送信されたDelay_Responseメッセージを受信すると、Delay_Responseメッセージ中に格納されるDelay受信時刻T41を抽出し記録する。
マスターノード10−2は、スレーブノード20に対してDelay_Responseメッセージを送信する(ステップS116)。この際、マスターノード10−2は、Delay_Responseメッセージの中に、Delay受信時刻T42を格納する。スレーブノード20は、マスターノード10−2から送信されたDelay_Responseメッセージを受信すると、Delay_Responseメッセージ中に格納されるDelay受信時刻T42を抽出し記録する。
スレーブノード20は、上述した処理によりマスターノード10−1及び10−2との間で各時刻情報(Sync送信時刻T11及びT12、Sync受信時刻T21及びT22、Delay送信時刻T31及びT32、Delay受信時刻T41及びT42)を取得する。スレーブノード20は、取得した各時刻情報に基づいて時刻差平均値aveを算出する(ステップS117)。時刻差平均値aveは、例えば以下の式1に基づいて算出される。
Figure 0006254028
スレーブノード20は、算出した時刻差平均値aveに基づいてスレーブ時刻を補正する(ステップS118)。
上述した処理によってスレーブノード20の時刻が補正される。時刻同期処理では、上述したように、スレーブノード20とマスターノード10との間で時刻同期に関わる一連のやり取りが行われる。時刻同期に関わる一連のやり取りとは、スレーブノード20とマスターノード10との間で、Syncメッセージ、Follow_upメッセージ、Delay_Requestメッセージ及びDelay_Responseメッセージの送受信が行われることを表す。
図4は、本発明の第1動作例におけるスレーブノード20の処理の流れを示すフローチャートである。
スレーブノード20の通信部201は、マスターノード10から送信されるSyncメッセージを受信する(ステップS201)。通信部201は、マスターノード10からSyncメッセージを受信すると、受信したSyncメッセージを制御部202に転送する。制御部202は、Syncメッセージが転送されると、時計部204を参照してSync受信時刻T2kを記録する。
次に、通信部201は、マスターノード10から送信されるFollow_upメッセージを受信する(ステップS202)。通信部201は、マスターノード10からFollow_upメッセージを受信すると、受信したFollow_upメッセージを制御部202に転送する。制御部202は、Follow_upメッセージ中に格納されているSync送信時刻T1kを抽出し記録する。
その後、制御部202は、Delay_Requestメッセージを生成し、通信部201を介してDelay_Requestメッセージをマスターノード10に送信する(ステップS203)。この際、制御部202は、時計部204を参照してDelay送信時刻T3kを記録する(ステップS204)。その後、通信部201は、マスターノード10から送信されるDelay_Responseメッセージを受信する(ステップS205)。通信部201は、マスターノード10からDelay_Responseメッセージ受信すると、受信したDelay_Responseメッセージを制御部202に転送する。制御部202は、Delay_Responseメッセージ中に格納されているDelay受信時刻T4kを抽出し記録する。
制御部202は、接続している全てのマスターノード10との間で時刻情報を取得したか否か判定する(ステップS206)。接続している全てのマスターノード10との間で時刻情報を取得していない場合(ステップS206−NO)、スレーブノード20はステップS201以降の処理を繰り返し実行する。
一方、接続している全てのマスターノード10との間で時刻情報を取得した場合(ステップS206−YES)、制御部202は記録している、各マスターノード10との間で取得した各時刻情報(Sync送信時刻T1k、Sync受信時刻T2k、Delay送信時刻T3k、Delay受信時刻T4k)を算出部205に出力する。
算出部205は、制御部202から出力された各時刻情報に基づいて時刻差平均値aveを算出する(ステップS207)。時刻補正部206は、算出された時刻差平均値aveに基づいてスレーブ時刻を補正する(ステップS208)。
以上のように構成されたスレーブノード20によれば、中継装置内のキューイング遅延等の影響によりマスターノード10とスレーブノード20との間の遅延時間に揺らぎが生じた場合であっても、正しい時刻から大きくずれた時刻でスレーブノード20の時刻が補正されるおそれが軽減される。具体的には、複数のマスターノード10との間でそれぞれ取得された時刻情報に基づいて算出される、ノード間時刻差の平均値でスレーブ時刻が補正される。このように、スレーブ時刻と、他のマスターノード10のマスター時刻との時刻差も含めた平均値でスレーブ時刻が補正されることにより、正しい時刻から大きくずれた値でスレーブ時刻が補正されてしまうおそれを軽減することができる。そのため、スレーブノード20の時刻同期の精度低下を抑えることが可能になる。
<変形例>
本動作例では、マスターノード10の台数が2台である場合の時刻差平均値aveを算出する式(式1)を示したが、マスターノード10の台数が3台以上である場合には、算出部205は以下の式2に基づいて時刻差平均値aveを算出する。
Figure 0006254028
式2のnは、スレーブノード20が接続しているマスターノード10の台数を表す。
また、本動作例では、スレーブノード20が、接続している全てのマスターノード10との間で各時刻情報を取得した後、つまり、全てのマスターノード10との間で時刻同期に関わる一連のやり取りが1回行われた後に時刻差平均値aveを算出する構成を示したが、これに限定される必要はない。例えば、以下のような処理が行なわれてもよい。スレーブノード20は、接続しているマスターノード10毎に、時刻同期に関わる一連のやり取りが行われた後に、時刻同期に関わる一連のやり取りが行われたマスターノード10と、スレーブノード20とのノード間時刻差を算出する。スレーブノード20は、この処理を繰り返し実行し、接続しているマスターノード10毎のノード間時刻差をそれぞれ算出した後に、算出したノード間時刻差に基づいて時刻差平均値aveを算出する。以下、具体例を挙げて説明する。
スレーブノード20が複数台(例えば、2台)のマスターノード10と接続している場合、スレーブノード20は複数台のマスターノード10それぞれとの間でPTPメッセージを送受信する。スレーブノード20が、マスターノード10−1との間で各時刻情報(Sync送信時刻T11、Sync受信時刻T21、Delay送信時刻T31、Delay受信時刻T41)を全て取得すると、スレーブノード20は以下の式3に基づいてマスターノード10−1とスレーブノード20とのノード間時刻差m1を算出する。
Figure 0006254028
同様に、スレーブノード20が、マスターノード10−2との間で各時刻情報(Sync送信時刻T12、Sync受信時刻T22、Delay送信時刻T32、Delay受信時刻T42)を全て取得すると、スレーブノード20は以下の式4に基づいてマスターノード10−2とスレーブノード20とのノード間時刻差m2を算出する。
Figure 0006254028
上述した処理により、スレーブノード20は、接続している全てのマスターノード10とのノード間時刻差を算出する。スレーブノード20が、全てのマスターノード10とのノード間時刻差を算出すると、スレーブノード20は算出した全てのノード間時刻差に基づいて時刻差平均値aveを算出する。スレーブノード20は、例えば以下の式5に基づいて時刻差平均値aveを算出する。
Figure 0006254028
[第2動作例]
図5は、本発明の第2動作例における時刻同期処理の通信シーケンスの動作例を表すシーケンス図である。なお、図5の説明では、マスターノード10の台数が2台(マスターノード10−1、マスターノード10−2)であり、スレーブノード20の台数が1台である場合を例に説明する。また、図3と同様の処理については、図5において図3と同様の符号を付して説明を省略する。
図5に示されるように、第2動作例における時刻同期処理の通信シーケンスでは、所定の期間T0の間、ステップS101からステップS116までの処理が繰り返し実行される。つまり、マスターノード10−1とスレーブノード20との間、及び、マスターノード10−2とスレーブノード20との間で、所定の期間T0の間、時刻同期に関わる一連のやり取りが行われる。スレーブノード20が、マスターノード10−1及び10−2との間で時刻同期に関わる一連のやり取りを行う回数は、例えば以下の式6及び7に基づいて算出される。
Figure 0006254028
Figure 0006254028
式6のxは、所定の期間T0の間にスレーブノード20がマスターノード10−1との間で時刻同期に関わる一連のやり取りを行う回数を表し、Xはスレーブノード20とマスターノード10−1との間で時刻同期に関わる一連のやり取りを行う周期を表す。式7のyは、所定の期間T0の間にスレーブノード20がマスターノード10−2との間で時刻同期に関わる一連のやり取りを行う回数を表し、Yはスレーブノード20とマスターノード10−2との間で時刻同期に関わる一連のやり取りを行う周期を表す。なお、所定の期間T0の間にスレーブノード20が各マスターノード10との間で時刻同期に関わる一連のやり取りを行う回数は、全てのマスターノード10で同じ回数であってもよいし、マスターノード10毎に予め決められていてもよい。
スレーブノード20は、マスターノード10毎に算出された回数に応じた回数で、各マスターノード10との間で時刻同期に関わる一連のやり取りを行う。これにより、スレーブノード20は、所定の期間T0における時刻情報をマスターノード10毎に取得する。所定の期間T0が経過すると、スレーブノード20は所定の期間T0の間に取得したマスターノード10毎の時刻情報に基づいて、所定の期間T0におけるノード間時刻差の平均値(以下、「期間平均値」という。)(第1の統計値)をマスターノード10毎に算出する(ステップS301)。例えば、マスターノード10−1とスレーブノード20との期間平均値M1は、以下の式8に基づいて算出される。また、例えば、マスターノード10−2とスレーブノード20との期間平均値M2は、以下の式9に基づいて算出される。
Figure 0006254028
Figure 0006254028
式8及び式9の(l)は、所定の期間T0の間に各時刻情報が取得された時点の時刻同期に関わる一連のやり取りの回数を表す。つまり、1回目の時刻同期に関わる一連のやり取りにおいて取得された時刻情報は(l)の値が(1)となる。その後、スレーブノード20は、マスターノード10毎に算出した期間平均値M1及びM2に基づいて時刻差平均値ave1(第2の統計値)を算出する(ステップS302)。時刻差平均値ave1は、例えば以下の式10に基づいて算出される。
Figure 0006254028
スレーブノード20は、算出した時刻差平均値ave1に基づいてスレーブ時刻を補正する(ステップS303)。
上述した処理によってスレーブノード20の時刻が補正される。
図6は、本発明の第2動作例におけるスレーブノード20の処理の流れを示すフローチャートである。また、図4と同様の処理については、図6において図4と同様の符号を付して説明を省略する。
ステップS206までの処理が終了し、ステップS206において、全てのマスターノード10との間で時刻情報が取得された場合(ステップS206−YES)、制御部202は所定の期間T0が経過したか否か判定する(ステップS401)。所定の期間T0が経過していない場合(ステップS401−NO)、スレーブノード20はステップS201以降の処理を繰り返し実行する。
一方、所定の期間T0が経過した場合(ステップS401−YES)、算出部205は所定の期間T0の間に取得された時刻情報に基づいてマスターノード10毎の期間平均値を算出する(ステップS402)。その後、算出部205は、算出したマスターノード10毎の期間平均値に基づいて時刻差平均値ave1を算出する(ステップS403)。時刻補正部206は、算出された時刻差平均値ave1に基づいてスレーブ時刻を補正する(ステップS404)。
以上のように構成されたスレーブノード20によれば、中継装置内のキューイング遅延等の影響によりマスターノード10とスレーブノード20との間の遅延時間に揺らぎが生じた場合であっても、正しい時刻から大きくずれた時刻でスレーブノード20の時刻が補正されるおそれが軽減される。具体的には、所定の期間T0の間に複数のマスターノード10との間でそれぞれ取得された複数の時刻情報に基づいて算出されるマスターノード10毎の期間平均値の平均値でスレーブ時刻が補正される。したがって、時刻同期に関わる一連のやり取りが1回行われた際に取得された時刻情報により算出される、スレーブ時刻と各マスターノードそれぞれのマスター時刻との時刻差の平均値でスレーブ時刻が補正されるよりも正しい時刻に近い時刻で補正することができる。そのため、スレーブノード20の時刻同期の精度低下を抑えることが可能になる。
<変形例>
本動作例では、マスターノード10の台数が2台である場合の時刻差平均値ave1を算出する式(式10)を示したが、マスターノード10の台数が3台以上である場合には、算出部205は以下の式11に基づいて時刻差平均値ave1を算出する。
Figure 0006254028
式11のnは、スレーブノード20が接続しているマスターノード10の台数を表す。
また、本動作例では、スレーブノード20が、所定の期間T0の間に取得した時刻情報を全て記憶し、所定の期間T0経過後に期間平均値及び時刻差平均値ave1を算出する構成を示したが、これに限定される必要はない。例えば、以下のような処理が行なわれてもよい。スレーブノード20は、接続しているマスターノード10毎に、時刻同期に関わる一連のやり取りが行われた後に、時刻同期に関わる一連のやり取りが行われたマスターノード10と、スレーブノード20とのノード間時刻差を算出する。スレーブノード20は、この処理を所定の期間T0の間、繰り返し実行し、所定の期間T0におけるノード間時刻差をマスターノード10毎に算出する。所定の期間T0経過後、スレーブノード20は、所定の期間T0の間に算出したマスターノード10毎のノード間時刻差に基づいて、期間平均値をマスターノード10毎に算出する。そして、スレーブノード20は、算出したマスターノード10毎の期間平均値に基づいて時刻差平均値ave1を算出する。以下、具体例を挙げて説明する。
スレーブノード20が複数台(例えば、2台)のマスターノード10と接続している場合、スレーブノード20は複数台のマスターノード10それぞれとの間でPTPメッセージを送受信する。スレーブノード20が、マスターノード10−1との間で各時刻情報を全て取得すると、スレーブノード20は以下の式12に基づいてマスターノード10−1とスレーブノード20とのノード間時刻差m1(l)を算出する。
Figure 0006254028
同様に、スレーブノード20が、マスターノード10−2との間で各時刻情報を全て取得すると、スレーブノード20は以下の式13に基づいてマスターノード10−2とスレーブノード20との時刻差m2(l)を算出する。
Figure 0006254028
上述した処理により、スレーブノード20は、所定の期間T0の間、接続している全てのマスターノード10とのノード間時刻差mk(l)を算出する。所定の期間T0経過後、スレーブノード20は所定の期間T0の間に算出したノード間時刻差mk(l)に基づいて、期間平均値Mkをマスターノード10毎に算出する。例えば、スレーブノード20は、所定の期間T0の間におけるマスターノード10−1とスレーブノード20とのノード間時刻差m1(l)の期間平均値M1を以下の式14に基づいて算出する。また、例えば、スレーブノード20は、所定の期間T0の間におけるマスターノード10−2とスレーブノード20とのノード間時刻差m2(l)の期間平均値M2を以下の式15に基づいて算出する。
Figure 0006254028
Figure 0006254028
その後、算出部205は、算出した期間平均値M1及びM2に基づいて時刻差平均値ave1を上記式10に基づいて算出する。
[第3動作例]
図7は、本発明の第3動作例における時刻同期処理の通信シーケンスの動作例を表すシーケンス図である。なお、図7の説明では、マスターノード10の台数が2台(マスターノード10−1、マスターノード10−2)であり、スレーブノード20の台数が1台である場合を例に説明する。また、図3と同様の処理については、図7において図3と同様の符号を付して説明を省略する。
マスターノード10−1は、定期的にスレーブノード20に対して、Announceメッセージを送信する(ステップS501)。この際、マスターノード10−1は、Announceメッセージの中に、マスターノード10−1の時刻源の品質情報を格納する。スレーブノード20は、マスターノード10−1から送信されたAnnounceメッセージを受信し、Announceメッセージ中に格納される品質情報を抽出し保持する。
また、マスターノード10−2は、定期的にスレーブノード20に対して、Announceメッセージを送信する(ステップS502)。この際、マスターノード10−2は、Announceメッセージの中に、マスターノード10−2の時刻源の品質情報を格納する。スレーブノード20は、マスターノード10−2から送信されたAnnounceメッセージを受信し、Announceメッセージ中に格納される品質情報を抽出し保持する。その後、ステップS101〜ステップS116までの処理が実行される。
第3動作例におけるスレーブノード20は、上述した処理(ステップS501〜ステップS116までの処理)によりマスターノード10−1及び10−2との間で品質情報及び時刻情報(Sync送信時刻T11及びT12、Sync受信時刻T21及びT22、Delay送信時刻T31及びT32、Delay受信時刻T41及びT42)を取得する。スレーブノード20は、品質情報と各時刻情報とに基づいて時刻差平均値ave2を算出する(ステップS503)。時刻差平均値ave2は、例えば以下の式16に基づいて算出される。
Figure 0006254028
式16のaはマスターノード10−1の時刻源の品質を表し、bはマスターノード10−2の時刻源の品質を表す。スレーブノード20は、算出した時刻差平均値ave2に基づいてスレーブ時刻を補正する(ステップS504)。
上述した処理によってスレーブノード20の時刻が補正される。
図8は、本発明の第3動作例におけるスレーブノード20の処理の流れを示すフローチャートである。また、図4と同様の処理については、図8において図4と同様の符号を付して説明を省略する。
スレーブノード20の通信部201は、マスターノード10から送信されるAnnounceメッセージを受信する(ステップS601)。通信部201は、マスターノード10からAnnounceメッセージを受信すると、受信したAnnounceメッセージを制御部202に転送する。制御部202は、Announceメッセージ中に格納されている品質情報を抽出し保持する。
その後、ステップS201〜ステップS205までの処理が実行されると、制御部202は接続している全てのマスターノード10との間で品質情報及び時刻情報を取得したか否か判定する(ステップS602)。全てのマスターノード10との間で品質情報及び時刻情報を取得していない場合(ステップS602−NO)、スレーブノード20はステップS601以降の処理を繰り返し実行する。
一方、全てのマスターノード10との間で品質情報及び時刻情報を取得した場合(ステップS602−YES)、制御部202は記録している、各マスターノード10との間で取得した品質情報及び各時刻情報(Sync送信時刻T1k、Sync受信時刻T2k、Delay送信時刻T3k、Delay受信時刻T4k)を算出部205に出力する。
算出部205は、制御部202から出力された品質情報及び各時刻情報に基づいて時刻差平均値ave2を算出する(ステップS603)。時刻補正部206は、算出された時刻差平均値ave2に基づいてスレーブ時刻を補正する(ステップS604)。
以上のように構成されたスレーブノード20によれば、中継装置内のキューイング遅延等の影響によりマスターノード10とスレーブノード20との間の遅延時間に揺らぎが生じた場合であっても、正しい時刻から大きくずれた時刻でスレーブノード20の時刻が補正されるおそれが軽減される。具体的には、複数のマスターノード10との間でそれぞれ取得された時刻情報に基づいて算出される、スレーブ時刻と各マスターノード10それぞれのマスター時刻との時刻差の平均値を各マスターノード10の時刻源の品質で重み付けした値の平均値でスレーブ時刻が補正される。したがって、より精度の高い同期を実現できる可能性を向上させることができる。例えば、マスターノード10の時刻源の品質は劣化するおそれがあるため、品質の高いものを重く時刻差平均値の算出に組み込むことで、より精度の高い同期が実現される。そのため、スレーブノード20の時刻同期の精度低下を抑えることが可能になる。
<変形例>
本動作例では、マスターノード10の台数が2台である場合の時刻差平均値ave2を算出する式(式16)を示したが、マスターノード10の台数が3台以上(例えば、n台)である場合には、算出部205は以下の式17に基づいて時刻差平均値ave2を算出する。
Figure 0006254028
式17のαkは、マスターノード10の時刻源の品質を表し、ここではマスターノード10の時刻源の品質が高い場合、αkの値は小さくなると定義している。算出部205は、ノード間時刻差の値が小さい順に、マスターノード10の時刻源の品質が高い値を順番に重みづけの値として割り当ててもよいし、その他の順番でマスターノード10の時刻源の品質を重みづけの値として割り当ててもよい。
本動作例では、マスターノード10の時刻源の品質が固定値である場合を例に説明したが、マスターノード10の時刻源の品質は時間に応じて変化してもよい。
また、本動作例では、スレーブノード20が、接続している全てのマスターノード10との間で品質情報及び各時刻情報を取得した後、つまり、全てのマスターノード10との間で品質情報が取得され、かつ、時刻同期に関わる一連のやり取りが1回行われた後に時刻差平均値ave2を算出する構成を示したが、これに限定される必要はない。例えば、以下のような処理が行なわれてもよい。スレーブノード20は、接続しているマスターノード10毎に、Announceメッセージを受信し、受信したAnnounceメッセージからマスターノード10毎の時刻源の品質情報を取得する。また、スレーブノード20は、接続しているマスターノード10毎に、時刻同期に関わる一連のやり取りが行われた後に、時刻同期に関わる一連のやり取りが行われたマスターノード10と、スレーブノードとのノード間時刻差を算出する。スレーブノード20は、この処理を繰り返し実行し、接続しているマスターノード10毎のノード間時刻差をそれぞれ算出した後に、算出した各ノード間時刻差と取得した品質情報とに基づいて時刻差平均値ave2を算出する。以下、具体例を挙げて説明する。
スレーブノード20が複数台(例えば、2台)のマスターノード10と接続している場合、スレーブノード20は複数台のマスターノード10それぞれとの間でPTPメッセージを送受信する。スレーブノード20が、マスターノード10−1との間で時刻源の品質情報(例えば、a及びb)及び各時刻情報を全て取得すると、スレーブノード20は上記式3に基づいてマスターノード10−1とスレーブノード20とのノード間時刻差m1を算出する。
同様に、スレーブノード20が、マスターノード10−2との間で時刻源の品質情報及び各時刻情報を全て取得すると、スレーブノード20は上記式4に基づいてマスターノード10−2とスレーブノード20とのノード間時刻差m2を算出する。
上述した処理により、スレーブノード20は、接続している全てのマスターノード10とのノード間時刻差を算出する。スレーブノード20が、全てのマスターノード10とのノード間時刻差を算出すると、スレーブノード20は算出した全てのノード間時刻差と、各マスターノード10の品質情報(例えば、a及びb)とに基づいて時刻差平均値ave2を算出する。スレーブノード20は、例えば以下の式18に基づいて時刻差平均値ave2を算出する。
Figure 0006254028
[第4動作例]
図9は、本発明の第4動作例における時刻同期処理の通信シーケンスの動作例を表すシーケンス図である。なお、図9の説明では、マスターノード10の台数が2台(マスターノード10−1、マスターノード10−2)であり、スレーブノード20の台数が1台である場合を例に説明する。また、図7と同様の処理については、図9において図7と同様の符号を付して説明を省略する。
図9に示されるように、第4動作例における時刻同期処理の通信シーケンスでは、スレーブノード20がマスターノード10−1及び10−2からAnnounceメッセージをそれぞれ受信した後、所定の期間T0の間、ステップS101からステップS116までの処理が繰り返し実行される。つまり、マスターノード10−1とスレーブノード20との間、及び、マスターノード10−2とスレーブノード20との間で、所定の期間T0の間、時刻同期に関わる一連のやり取りが行われる。スレーブノード20が、マスターノード10−1及び10−2との間で時刻同期に関わる一連のやり取りを行う回数は、例えば上記式6及び7に基づいて算出される。なお、所定の期間T0の間にスレーブノード20が各マスターノード10との間で時刻同期に関わる一連のやり取りを行う回数は、全てのマスターノード10で同じ回数であってもよいし、マスターノード10毎に予め決められていてもよい。
スレーブノード20は、マスターノード10毎に算出された回数に応じた回数で、各マスターノード10との間で時刻同期に関わる一連のやり取りを行う。これにより、スレーブノード20は、所定の期間T0における時刻情報をマスターノード10毎に取得する。所定の期間T0が経過すると、スレーブノード20は所定の期間T0の間に取得したマスターノード10毎の時刻情報に基づいて、所定の期間T0における期間平均値をマスターノード10毎に算出する(ステップS701)。例えば、マスターノード10−1とスレーブノード20との期間平均値M1は、上記式8に基づいて算出される。また、例えば、マスターノード10−2とスレーブノード20との期間平均値M2は、上記式9に基づいて算出される。
その後、スレーブノード20は、マスターノード10毎に算出した期間平均値M1及びM2と、マスターノード10−1及び10−2から取得した各マスターノード10の品質情報とに基づいて時刻差平均値ave3を算出する(ステップS702)。時刻差平均値ave3は、例えば以下の式19に基づいて算出される。
Figure 0006254028
スレーブノード20は、算出した時刻差平均値ave3に基づいてスレーブ時刻を補正する(ステップS703)。
上述した処理によってスレーブノード20の時刻が補正される。
図10は、本発明の第4動作例におけるスレーブノード20の処理の流れを示すフローチャートである。また、図8と同様の処理については、図10において図8と同様の符号を付して説明を省略する。
ステップS602までの処理が終了し、ステップS602において、全てのマスターノード10との間で品質情報及び時刻情報が取得された場合(ステップS602−YES)、制御部202は所定の期間T0が経過したか否か判定する(ステップS801)。所定の期間T0が経過していない場合(ステップS801−NO)、スレーブノード20はステップS201以降の処理を繰り返し実行する。
一方、所定の期間T0が経過した場合(ステップS801−YES)、算出部205は所定の期間T0の間に取得された時刻情報に基づいてマスターノード10毎の期間平均値を算出する(ステップS802)。その後、算出部205は、算出したマスターノード10毎の期間平均値と、各マスターノード10の品質情報とに基づいて時刻差平均値ave3を算出する(ステップS803)。時刻補正部206は、算出された時刻差平均値ave3に基づいてスレーブ時刻を補正する(ステップS804)。
以上のように構成されたスレーブノード20によれば、中継装置内のキューイング遅延等の影響によりマスターノード10とスレーブノード20との間の遅延時間に揺らぎが生じた場合であっても、正しい時刻から大きくずれた時刻でスレーブノード20の時刻が補正されるおそれが軽減される。具体的には、所定の期間T0の間に複数のマスターノード10との間でそれぞれ取得された複数の時刻情報に基づいて算出されるマスターノード10毎の期間平均値の平均値を各マスターノード10の時刻源の品質で重み付けした値の平均値でスレーブ時刻が補正される。したがって、より精度の高い同期が実現できる可能性を向上させることができる。例えば、マスターノード10の時刻源の品質は劣化するおそれがあるため、品質の高いものを重く時刻差平均値の算出に組み込むことで、より精度の高い同期が実現される。そのため、スレーブノード20の時刻同期の精度低下を抑えることが可能になる。
<変形例>
本動作例では、マスターノード10の台数が2台である場合の時刻差平均値ave3を算出する式(式19)を示したが、マスターノード10の台数が3台以上である場合には、算出部205は上記式17の時間間隔T0における平均で表される式に基づいて時刻差平均値ave3を算出する。
また、本動作例では、スレーブノード20が、所定の期間T0の間に取得した時刻情報を全て記憶し、所定の期間T0経過後に期間平均値及び時刻差平均値ave3を算出する構成を示したが、これに限定される必要はない。例えば、以下のような処理が行なわれてもよい。スレーブノード20は、接続しているマスターノード10毎に、時刻同期に関わる一連のやり取りが行われた後に、時刻同期に関わる一連のやり取りが行われたマスターノード10と、スレーブノード20とのノード間時刻差を算出する。スレーブノード20は、この処理を所定の期間T0の間、繰り返し実行し、所定の期間T0におけるノード間時刻差をマスターノード10毎に算出する。所定の期間T0経過後、スレーブノード20は、所定の期間T0の間に算出したマスターノード10毎のノード間時刻差に基づいて、期間平均値をマスターノード10毎に算出する。そして、スレーブノード20は、算出したマスターノード10毎の期間平均値と、各マスターノード10の時刻源の品質情報とに基づいて時刻差平均値ave3を算出する。以下、具体例を挙げて説明する。
スレーブノード20が複数台(例えば、2台)のマスターノード10と接続している場合、スレーブノード20は複数台のマスターノード10それぞれとの間でPTPメッセージを送受信する。これにより、スレーブノード20は、各マスターノード10の品質情報(例えば、a及びb)及び時刻情報を取得する。スレーブノード20が、マスターノード10−1との間で各時刻情報を全て取得すると、スレーブノード20は上記式12に基づいてマスターノード10−1とスレーブノード20とのノード間時刻差m1(l)を算出する。
同様に、スレーブノード20が、マスターノード10−2との間で各時刻情報を全て取得すると、スレーブノード20は上記式13に基づいてマスターノード10−2とスレーブノード20とのノード間時刻差m2(l)を算出する。
上述した処理により、スレーブノード20は、所定の期間T0の間、接続している全てのマスターノード10とのノード間時刻差mk(l)を算出する。所定の期間T0経過後、スレーブノード20は所定の期間T0の間に算出したノード間時刻差に基づいて、期間平均値Mkをマスターノード10毎に算出する。例えば、スレーブノード20は、所定の期間T0の間におけるマスターノード10−1とスレーブノード20とのノード間時刻差m1(l)の期間平均値M1を上記式14に基づいて算出する。スレーブノード20は、所定の期間T0の間におけるマスターノード10−2とスレーブノード20とのノード間時刻差m2(l)の期間平均値M2を上記式15に基づいて算出する。
その後、算出部205は、算出した各期間平均値M1及びM2と、品質情報(例えば、a及びb)とに基づいて時刻差平均値ave3を上記式19に基づいて算出する。
[第5動作例]
図11は、本発明の第5動作例における時刻同期処理の通信シーケンスの動作例を表すシーケンス図である。なお、図11の説明では、マスターノード10の台数が2台(マスターノード10−1、マスターノード10−2)であり、スレーブノード20の台数が1台である場合を例に説明する。また、図5と同様の処理については、図11において図5と同様の符号を付して説明を省略する。
図11に示されるように、第5動作例における時刻同期処理の通信シーケンスでは、所定の期間T0の間、ステップS101からステップS116までの処理が繰り返し実行される。つまり、マスターノード10−1とスレーブノード20との間、及び、マスターノード10−2とスレーブノード20との間で、所定の期間T0の間、時刻同期に関わる一連のやり取りが行われる。スレーブノード20が、マスターノード10−1及び10−2との間で時刻同期に関わる一連のやり取りを行う回数は、例えば上記式6及び7に基づいて算出される。なお、所定の期間T0の間にスレーブノード20が各マスターノード10との間で時刻同期に関わる一連のやり取りを行う回数は、全てのマスターノード10で同じ回数であってもよいし、マスターノード10毎に予め決められていてもよい。
スレーブノード20は、マスターノード10毎に算出された回数に応じた回数で、各マスターノード10との間で時刻同期に関わる一連のやり取りを行う。これにより、スレーブノード20は、所定の期間T0における時刻情報をマスターノード10毎に取得する。所定の期間T0が経過すると、スレーブノード20は所定の期間T0の間に取得したマスターノード10毎の時刻情報に基づいて、所定の期間T0におけるマスターノード10毎の期間平均値を算出する(ステップS901)。例えば、マスターノード10−1とスレーブノード20との期間平均値M1は、上記式8に基づいて算出される。また、例えば、マスターノード10−2とスレーブノード20との期間平均値M2は、上記式9に基づいて算出される。
その後、スレーブノード20は、マスターノード10毎に算出した期間平均値Mk(M1及びM2)と、所定の期間T0の間に行われた時刻同期に関わる一連のやり取り毎のノード間時刻差mk(l)とに基づいて、所定の期間T0におけるノード間時刻差mk(l)の分散値Vkをマスターノード10毎に算出する(ステップS902)。例えば、マスターノード10−1とスレーブノード20との所定の期間T0におけるノード間時刻差m1(l)の分散値V1は、以下の式20に基づいて算出される。また、例えば、マスターノード10−2とスレーブノード20との所定の期間T0の間におけるノード間時刻差m2(l)の分散値V2は、以下の式21に基づいて算出される。
Figure 0006254028
Figure 0006254028
式20のxは、所定の期間T0の間にスレーブノード20がマスターノード10−1との間で時刻同期に関わる一連のやり取りを行う回数を表す。式21のyは、所定の期間T0の間にスレーブノード20がマスターノード10−2との間で時刻同期に関わる一連のやり取りを行う回数を表す。式20及び式21の(l)は、所定の期間T0の間に各時刻情報が取得された時点の時刻同期に関わる一連のやり取りの回数を表す。
その後、スレーブノード20は、マスターノード10毎に算出した分散値Vk(V1及びV2)と、期間平均値Mk(M1及びM2)とに基づいて時刻差平均値ave4を算出する(ステップS903)。時刻差平均値ave4は、例えば以下の式22に基づいて算出される。
Figure 0006254028
スレーブノード20は、算出した時刻差平均値ave4に基づいてスレーブ時刻を補正する(ステップS904)。
上述した処理によってスレーブノード20の時刻が補正される。
図12は、所定の期間T0の間に算出されたマスターノード10毎のノード間時刻差の推移を表す図である。
図12において、縦軸はノード間時刻差mkを表し、横軸tは時間を表す。点線41は、所定の期間T0の間におけるマスターノード10−1とスレーブノード20とのノード間時刻差m1の推移を表す。長鎖線42は、所定の期間T0の間におけるマスターノード10−1とスレーブノード20とのノード間時刻差m2の推移を表す。矢印43は、マスターノード10−1とスレーブノード20との間で時刻同期に関わる一連のやり取りが行われたタイミングを表す。つまり、矢印43で示される時間にマスターノード10−1とスレーブノード20との間のノード間時刻差m1が算出されている。矢印44は、マスターノード10−2とスレーブノード20との間で時刻同期に関わる一連のやり取りが行われたタイミングを表す。つまり、矢印44で示される時間にマスターノード10−2とスレーブノード20との間のノード間時刻差m2が算出されている。
図12では、所定の期間T0の間に、マスターノード10−1とスレーブノード20との間で時刻同期に関わる一連のやり取りが3回行われ、マスターノード10−2とスレーブノード20との間で時刻同期に関わる一連のやり取りが2回行われたことが示されている。
スレーブノード20は、各タイミングで算出されたノード間時刻差mkと、所定の期間T0における期間平均値Mkとに基づいてノード間時刻差mkの分散値Vkを算出する。
図13は、本発明の第5動作例におけるスレーブノード20の処理の流れを示すフローチャートである。また、図6と同様の処理については、図13において図6と同様の符号を付して説明を省略する。
ステップS401までの処理が終了し、ステップS401において、所定の期間T0が経過した場合(ステップS401−YES)、算出部205は所定の期間T0の間に取得された時刻情報に基づいて期間平均値をマスターノード10毎に算出する(ステップS1001)。算出部205は、算出されたマスターノード10毎の期間平均値と、所定の期間T0の間に行われた時刻同期に関わる一連のやり取り毎のノード間時刻差とに基づいて分散値をマスターノード10毎に算出する(ステップS1002)。算出部205は、マスターノード10毎の期間平均値と、マスターノード10毎の分散値とに基づいて時刻差平均値ave4を算出する(ステップS1003)。時刻補正部206は、算出された時刻差平均値ave2に基づいてスレーブ時刻を補正する(ステップS1004)。
以上のように構成されたスレーブノード20によれば、中継装置内のキューイング遅延等の影響によりマスターノード10とスレーブノード20との間の遅延時間に揺らぎが生じた場合であっても、正しい時刻から大きくずれた時刻でスレーブノード20の時刻が補正されるおそれが軽減される。具体的には、所定の期間T0の間に複数のマスターノード10との間でそれぞれ取得された複数の時刻情報に基づいて算出されるマスターノード10毎の期間平均値と、所定の期間T0の間で行われる時刻同期に関わる一連のやり取り毎の時刻差とに基づいて、分散値が算出される。そして、算出された分散値とマスターノード10毎の期間平均値とに基づいて算出された平均値でスレーブ時刻が補正される。したがって、より精度の高い同期が実現できる可能性を向上させることができる。例えば、ネットワークの揺らぎにより同期する時刻の精度は劣化するおそれがあるため、揺らぎの小さいものを重く時刻差平均値の算出に組み込むことで、より精度の高い同期が実現される。そのため、スレーブノード20の時刻同期の精度低下を抑えることが可能になる。
<変形例>
本動作例では、マスターノード10の台数が2台である場合の時刻差平均値ave4を算出する式(式22)を示したが、マスターノード10の台数が3台以上である場合には、算出部205は以下の式23に基づいて時刻差平均値ave4を算出する。
Figure 0006254028
式23のβkは、分散値の逆数(1/Vk)を表す。算出部205は、期間平均値Mkの値が小さい順に、分散値の逆数βkが高い値を順番に重みづけの値として割り当ててもよいし、その他の順番で分散値の逆数βkを重みづけの値として割り当ててもよい。
分散値に代えて、分散値の平方根であるσkが重み付けの値として用いられてもよい。このように構成される場合、算出部205は以下の式24に基づいて時刻差平均値ave4を算出する。
Figure 0006254028
また、本動作例では、スレーブノード20が、所定の期間T0の間に取得した時刻情報を全て記憶し、所定の期間T0経過後に期間平均値及び時刻差平均値ave4を算出する構成を示したが、これに限定される必要はない。例えば、以下のような処理が行なわれてもよい。スレーブノード20は、接続しているマスターノード10毎に、時刻同期に関わる一連のやり取りが行われた後に、時刻同期に関わる一連のやり取りが行われたマスターノード10と、スレーブノード20とのノード間時刻差を算出する。スレーブノード20は、この処理を所定の期間T0の間、繰り返し実行し、所定の期間T0におけるノード間時刻差をマスターノード10毎に算出する。所定の期間T0経過後、スレーブノード20は、所定の期間T0の間に算出したマスターノード10毎のノード間時刻差と、所定の期間T0におけるマスターノード毎の期間平均値とに基づいて、ノード間時刻差の分散値をマスターノード毎に算出する。スレーブノード20は、マスターノード10毎に算出された分散値と、マスターノード毎の期間平均値とに基づいて時刻差平均値ave4を算出する。以下、具体例を挙げて説明する。
スレーブノード20が複数台(例えば、2台)のマスターノード10と接続している場合、スレーブノード20は複数台のマスターノード10それぞれとの間でPTPメッセージを送受信する。スレーブノード20が、マスターノード10−1との間で各時刻情報を全て取得すると、スレーブノード20は上記式12に基づいてマスターノード10−1とスレーブノード20とのノード間時刻差m1(l)を算出する。
同様に、スレーブノード20が、マスターノード10−2との間で各時刻情報を全て取得すると、スレーブノード20は上記式13に基づいてマスターノード10−2とスレーブノード20とのノード間時刻差m2(l)を算出する。
上述した処理により、スレーブノード20は、所定の期間T0の間、接続している全てのマスターノード10とのノード間時刻差mk(l)を算出する。所定の期間T0経過後、スレーブノード20は所定の期間T0の間に算出したノード間時刻差mk(l)に基づいて、期間平均値Mkをマスターノード10毎に算出する。例えば、スレーブノード20は、所定の期間T0の間におけるマスターノード10−1とスレーブノード20とのノード間時刻差m1(l)の期間平均値M1を上記式14に基づいて算出する。また、例えば、スレーブノード20は、所定の期間T0の間におけるマスターノード10−2とスレーブノード20とのノード間時刻差m2(l)の期間平均値M2を上記式15に基づいて算出する。
その後、スレーブノード20は、所定の期間T0の間に算出したマスターノード10毎のノード間時刻差と、算出した所定の期間T0における期間平均値とに基づいてノード間時刻差の分散値Vkをマスターノード毎に算出する。マスターノード10毎に算出された分散値Vkと、マスターノード毎の期間平均値とに基づいて時刻差平均値ave4を上記式22に基づいて算出する。
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
10(10−1〜10−2)…マスターノード, 20…スレーブノード, 30(30−1〜30−2)…ネットワーク, 101…マスタークロック生成部, 102…時計部, 103…パケット生成部, 104…通信部、 201…通信部, 202、…制御部, 203…同期処理部, 204…時計部, 205…算出部, 206…時刻補正部

Claims (4)

  1. スレーブノードにおける時刻をマスターノードにおける時刻に同期させるための処理である時刻同期処理に使用される制御メッセージを複数のマスターノードとの間で送受信する通信部と、
    前記通信部が前記制御メッセージを送受信した際に取得される時刻情報に基づいて自装置の時刻を補正する時刻補正部と、
    を備え、
    取得される時刻情報に基づいて各マスターノードの時刻と自装置の時刻との時刻差の統計値を算出する算出部をさらに備え、
    前記時刻補正部は、算出された前記統計値に基づいて自装置の時刻を補正し、
    前記算出部は、所定の期間の間に取得された前記時刻情報に基づいて、前記所定の期間におけるマスターノードの時刻と自装置の時刻との時刻差の統計値である第1の統計値を前記マスターノード毎に算出し、算出した前記マスターノード毎の第1の統計値に基づいて、各マスターノードの時刻と自装置の時刻との時刻差の統計値である第2の統計値を算出するスレーブノード。
  2. スレーブノードにおける時刻をマスターノードにおける時刻に同期させるための処理である時刻同期処理に使用される制御メッセージを複数のマスターノードとの間で送受信する通信部と、
    前記通信部が前記制御メッセージを送受信した際に取得される時刻情報に基づいて自装置の時刻を補正する時刻補正部と、
    を備え、
    取得される時刻情報に基づいて各マスターノードの時刻と自装置の時刻との時刻差の統計値を算出する算出部をさらに備え、
    前記時刻補正部は、算出された前記統計値に基づいて自装置の時刻を補正し、
    前記算出部は、所定の期間の間に取得された前記時刻情報に基づいて、前記所定の期間におけるマスターノードの時刻と自装置の時刻との時刻差の統計値である第1の統計値を前記マスターノード毎に算出し、算出した前記マスターノード毎の第1の統計値に対し、所定の期間における前記マスターノード毎の時刻差の分散値で重み付けした後に、重み付けされた前記第1の統計値に基づいて、各マスターノードの時刻と自装置の時刻との時刻差の統計値である第2の統計値を算出するスレーブノード。
  3. スレーブノードにおける時刻をマスターノードにおける時刻に同期させるための処理である時刻同期処理に使用される制御メッセージを複数のマスターノードとの間で送受信する通信ステップと、
    前記通信ステップによって前記制御メッセージを送受信した際に取得される時刻情報に基づいて前記スレーブノードの時刻を補正する時刻補正ステップと、
    を有し、
    取得される時刻情報に基づいて各マスターノードの時刻と自装置の時刻との時刻差の統計値を算出する算出ステップをさらに有し、
    前記時刻補正ステップにおいて、算出された前記統計値に基づいて自装置の時刻を補正し、
    前記算出ステップにおいて、所定の期間の間に取得された前記時刻情報に基づいて、前記所定の期間におけるマスターノードの時刻と自装置の時刻との時刻差の統計値である第1の統計値を前記マスターノード毎に算出し、算出した前記マスターノード毎の第1の統計値に基づいて、各マスターノードの時刻と自装置の時刻との時刻差の統計値である第2の統計値を算出する時刻同期方法。
  4. スレーブノードにおける時刻をマスターノードにおける時刻に同期させるための処理である時刻同期処理に使用される制御メッセージを複数のマスターノードとの間で送受信する通信ステップと、
    前記通信ステップによって前記制御メッセージを送受信した際に取得される時刻情報に基づいて前記スレーブノードの時刻を補正する時刻補正ステップと、
    を有し、
    取得される時刻情報に基づいて各マスターノードの時刻と自装置の時刻との時刻差の統計値を算出する算出ステップをさらに有し、
    前記時刻補正ステップにおいて、算出された前記統計値に基づいて自装置の時刻を補正し、
    前記算出ステップにおいて、所定の期間の間に取得された前記時刻情報に基づいて、前記所定の期間におけるマスターノードの時刻と自装置の時刻との時刻差の統計値である第1の統計値を前記マスターノード毎に算出し、算出した前記マスターノード毎の第1の統計値に対し、所定の期間における前記マスターノード毎の時刻差の分散値で重み付けした後に、重み付けされた前記第1の統計値に基づいて、各マスターノードの時刻と自装置の時刻との時刻差の統計値である第2の統計値を算出する時刻同期方法。
JP2014064791A 2014-03-26 2014-03-26 スレーブノード及び時刻同期方法 Active JP6254028B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014064791A JP6254028B2 (ja) 2014-03-26 2014-03-26 スレーブノード及び時刻同期方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014064791A JP6254028B2 (ja) 2014-03-26 2014-03-26 スレーブノード及び時刻同期方法

Publications (2)

Publication Number Publication Date
JP2015188159A JP2015188159A (ja) 2015-10-29
JP6254028B2 true JP6254028B2 (ja) 2017-12-27

Family

ID=54430200

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014064791A Active JP6254028B2 (ja) 2014-03-26 2014-03-26 スレーブノード及び時刻同期方法

Country Status (1)

Country Link
JP (1) JP6254028B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5937243B1 (ja) * 2015-02-17 2016-06-22 日本電信電話株式会社 時刻同期方法および時刻同期装置
JP6488195B2 (ja) * 2015-05-27 2019-03-20 株式会社日立製作所 時刻同期を行う通信装置
JP6820586B2 (ja) 2016-08-31 2021-01-27 株式会社メディアリンクス 時刻同期システム
US11159303B1 (en) 2018-11-20 2021-10-26 Mitsubishi Electric Corporation Communication system, list distribution station, communication method, and computer readable medium
JP7029428B2 (ja) * 2019-07-09 2022-03-03 株式会社日立製作所 時刻同期システム、時刻同期方法及び時刻スレーブ装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2658962B2 (ja) * 1995-03-15 1997-09-30 日本電気株式会社 ネットワークの時刻情報同期方式
JP5025130B2 (ja) * 2005-12-27 2012-09-12 株式会社日立製作所 通信装置および通信方法ならびに通信方式
JP2009065579A (ja) * 2007-09-10 2009-03-26 Nec Corp 時刻同期システム、時刻同期方法、ノード及びプログラム
CN104396180A (zh) * 2012-06-19 2015-03-04 日本电气株式会社 时钟同步***、时钟同步方法和存储有时钟同步程序的存储介质

Also Published As

Publication number Publication date
JP2015188159A (ja) 2015-10-29

Similar Documents

Publication Publication Date Title
JP5561426B2 (ja) 同期システム、同期方法、第一の同期装置、第二の同期装置及びコンピュータプログラム
US10615898B2 (en) System and method of clock management in a packet data network
JP6254028B2 (ja) スレーブノード及び時刻同期方法
US9634782B2 (en) Clock synchronization system, clock synchronization method, and storage medium whereupon clock synchronization program is stored
JP6192995B2 (ja) 通信装置、通信システム、通信方法およびコンピュータプログラム
US20180097610A1 (en) Synchronization apparatus, synchronization system, radio communication apparatus and synchronization method
JP2010527193A (ja) ネットワークコンポーネントのクロックを別のネットワークコンポーネントのクロックに同期させる方法及びネットワークコンポーネント
JP2004186877A (ja) 無線アクセスネットワークシステム、無線通信方法、同期サーバ及びノード装置
CN106464397B (zh) 在分组交换网络中动态重新分配定时和同步的***和方法
US9651984B2 (en) Feed-forward time transfer mechanism for time synchronization
JP6036179B2 (ja) 通信装置及び同期方法
EP3593572B1 (en) Remote signal synchronization
JP2016139846A (ja) 時刻同期システム、マスタ装置およびスレーブ装置、並びに時刻同期方法
JP2017069669A (ja) 時刻同期装置、基地局装置、及び、時刻同期方法
Resner et al. Speculative Precision Time Protocol: submicrosecond clock synchronization for the IoT
JP2011176768A (ja) プッシュ型時刻配信装置、時刻同期サーバおよび時刻同期クライアント
JP6010802B2 (ja) 時刻同期システム、時刻同期方法、スレーブノード及びコンピュータプログラム
JP6170456B2 (ja) スレーブノード、制御サーバ、時刻同期先決定方法及びコンピュータプログラム
Gong et al. Temperature compensated Kalman distributed clock synchronization
US20170117980A1 (en) Time synchronization for network device
WO2020090664A1 (ja) 時刻同期システム
JP6085864B2 (ja) 時刻同期システム、時刻同期方法、スレーブノード及びコンピュータプログラム
JP6216692B2 (ja) 通信システム、通信方法、及び、通信プログラム
Saarnisaari et al. Internetwork time synchronization of mobile ad hoc networks
JPWO2020095413A1 (ja) 通信システム、通信装置、及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160705

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170428

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170516

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170718

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170912

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171027

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20171114

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171129

R150 Certificate of patent or registration of utility model

Ref document number: 6254028

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250