(57)【要約】【課題】ノード間においてマスターノード又はスレーブノードの状態変化が生じた場合における時刻同期の精度低下を抑えること。【解決手段】マスターノードは、マスターノード又はスレーブノードの状態変化が検出されると、スレーブノードにおける時刻をマスターノードにおける時刻に同期させるための処理である時刻同期処理の実行間隔を制御するタイミング制御部と、スレーブノードとの間で時刻同期処理に使用される制御メッセージの送受信を行う通信部と、を備え、スレーブノードは、マスターノードと制御メッセージの送受信を行う通信部と、制御メッセージを送受信した際に取得される時刻情報に基づいてスレーブノードの時刻をマスターノードの時刻に同期させる時刻同期処理部と、を備える時刻同期システム。【選択図】図２
2015099983.tif 000002
【特許請求の範囲】
【請求項１】
双方向通信を行うマスターノードとスレーブノードとを備え、前記スレーブノードにおける時刻を前記マスターノードにおける時刻に同期させる時刻同期システムであって、
前記マスターノードは、
前記マスターノード又は前記スレーブノードの状態変化が検出されると、前記スレーブノードにおける時刻を前記マスターノードにおける時刻に同期させるための処理である時刻同期処理の実行間隔を制御するタイミング制御部と、
前記タイミング制御部の制御に従って、前記スレーブノードとの間で前記時刻同期処理に使用される制御メッセージの送受信を行う通信部と、
を備え、
前記スレーブノードは、
前記マスターノードと前記制御メッセージの送受信を行う通信部と、
前記通信部が前記制御メッセージを送受信した際に取得される時刻情報に基づいて前記スレーブノードの時刻を前記マスターノードの時刻に同期させる時刻同期処理部と、
を備える時刻同期システム。
【請求項２】
前記マスターノードは、
自装置の動作基準となる周波数の異常を検出する検出部を更に備え、
前記タイミング制御部は、前記マスターノード又は前記スレーブノードの状態変化として自装置の動作基準となる周波数の異常が検出されると、前記時刻同期処理の実行間隔を制御する、請求項１に記載の時刻同期システム。
【請求項３】
前記スレーブノードは、
周波数の精度の劣化を検出する検出部を更に備え、
前記タイミング制御部は、前記マスターノード又は前記スレーブノードの状態変化として周波数の精度の劣化が検出されると、前記時刻同期処理の実行間隔を制御する、請求項１に記載の時刻同期システム。
【請求項４】
双方向通信を行うマスターノードとスレーブノードとを備え、前記スレーブノードにおける時刻を前記マスターノードにおける時刻に同期させる時刻同期システムが行う時刻同期方法であって、
前記マスターノードが、前記マスターノード又は前記スレーブノードの状態変化が検出されると、前記スレーブノードにおける時刻を前記マスターノードにおける時刻に同期させるための処理である時刻同期処理の実行間隔を制御するタイミング制御ステップと、
前記マスターノードが、前記タイミング制御ステップにおける制御に従って、前記スレーブノードとの間で前記時刻同期処理に使用される制御メッセージの送受信を行う通信ステップと、
前記スレーブノードが、前記マスターノードと前記制御メッセージの送受信を行う通信ステップと、
前記スレーブノードが、前記通信ステップにおいて前記制御メッセージを送受信した際に取得される時刻情報に基づいて前記スレーブノードの時刻を前記マスターノードの時刻に同期させる時刻同期処理ステップと、
を有する時刻同期方法。
【請求項５】
双方向通信を行うマスターノードとスレーブノードとを備え、前記スレーブノードにおける時刻を前記マスターノードにおける時刻に同期させる時刻同期システムとして、前記マスターノードに相当する第１のコンピュータ及び前記スレーブノードに相当する第２のコンピュータを動作させるためのコンピュータプログラムであって、
前記第１のコンピュータに対し、
前記マスターノード又は前記スレーブノードの状態変化が検出されると、前記スレーブノードにおける時刻を前記マスターノードにおける時刻に同期させるための処理である時刻同期処理の実行間隔を制御するタイミング制御ステップと、
前記タイミング制御ステップにおける制御に従って、前記スレーブノードとの間で前記時刻同期処理に使用される制御メッセージの送受信を行う通信ステップと、
を実行させ、
前記第２のコンピュータに対し、
前記マスターノードと前記制御メッセージの送受信を行う通信ステップと、
前記通信ステップにおいて前記制御メッセージを送受信した際に取得される時刻情報に基づいて前記スレーブノードの時刻を前記マスターノードの時刻に同期させる時刻同期処理ステップと、
を実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、時刻同期の技術に関する。
【背景技術】
【０００２】
従来、ネットワーク接続された複数の機器の時刻をマイクロ秒以下の精度で同期させる技術として、ＩＥＥＥ１５８８で定義されたＰＴＰ（Precision Time Protocol）が知られている。ＰＴＰでは、マスターノードとスレーブノードとの間で時刻情報を含むメッセージが定期的に交換される。スレーブノードは、マスターノード及びスレーブノードにおけるメッセージが送受信された時刻情報から、マスターノードに対するスレーブノードの時刻のずれ（Ｏｆｆｓｅｔ）を計算する。そして、スレーブノードは、計算したＯｆｆｓｅｔに基づいてスレーブノードの時刻を補正して、スレーブノードの時刻をマスターノードの時刻に同期させる。
【０００３】
また、上述した方法より高精度にマスターノードとスレーブノードとの間での同期機能を実現するため、物理層で得られたクロックを用いてＰＴＰによるハイブリットな周波数・時刻同期手法が提案されている（例えば、非特許文献１参照）。このようなハイブリットな周波数・時刻同期手法では、Ｓｙｎｃ−Ｅ（Synchronous Ethernet（登録商標）：同期イーサネット（登録商標））等により高精度に周波数同期したクロックが用いられるため、ノード間で高精度に時刻同期が実現される。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】田代隆義、外６名、“モバイルバックホール適用に向けた周波数・時刻同期機能対応１０Ｇ−ＥＰＯＮシステム”、社団法人電子情報通信学会、平成25年3月1日、p.321-329
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した周波数・時刻同期手法において、Ｓｙｎｃ−Ｅの基準となるクロックの故障等によって正確なクロックが伝送できなくなった場合やクロックを抽出する装置の故障等によって正確なクロックを抽出できなくなった場合にはノード間における周波数同期の精度が劣化してしまう。その結果、ノード間で高精度な時刻同期が実現できなくなってしまうという問題があった。
【０００６】
上記事情に鑑み、本発明は、ノード間においてマスターノード又はスレーブノードの状態変化が生じた場合における時刻同期の精度低下を抑えることができる技術の提供を目的としている。
【課題を解決するための手段】
【０００７】
本発明の一態様は、双方向通信を行うマスターノードとスレーブノードとを備え、前記スレーブノードにおける時刻を前記マスターノードにおける時刻に同期させる時刻同期システムであって、前記マスターノードは、前記マスターノード又は前記スレーブノードの状態変化が検出されると、前記スレーブノードにおける時刻を前記マスターノードにおける時刻に同期させるための処理である時刻同期処理の実行間隔を制御するタイミング制御部と、前記タイミング制御部の制御に従って、前記スレーブノードとの間で前記時刻同期処理に使用される制御メッセージの送受信を行う通信部と、を備え、前記スレーブノードは、前記マスターノードと前記制御メッセージの送受信を行う通信部と、前記通信部が前記制御メッセージを送受信した際に取得される時刻情報に基づいて前記スレーブノードの時刻を前記マスターノードの時刻に同期させる時刻同期処理部と、を備える時刻同期システムである。
【０００８】
本発明の一態様は、前記マスターノードは、自装置の動作基準となる周波数の異常を検出する検出部を更に備え、前記タイミング制御部は、前記マスターノード又は前記スレーブノードの状態変化として自装置の動作基準となる周波数の異常が検出されると、前記時刻同期処理の実行間隔を制御する。
【０００９】
前記スレーブノードは、周波数の精度の劣化を検出する検出部を更に備え、前記タイミング制御部は、前記マスターノード又は前記スレーブノードの状態変化として周波数の精度の劣化が検出されると、前記時刻同期処理の実行間隔を制御する。
【００１０】
本発明の一態様は、双方向通信を行うマスターノードとスレーブノードとを備え、前記スレーブノードにおける時刻を前記マスターノードにおける時刻に同期させる時刻同期システムが行う時刻同期方法であって、前記マスターノードが、前記マスターノード又は前記スレーブノードの状態変化が検出されると、前記スレーブノードにおける時刻を前記マスターノードにおける時刻に同期させるための処理である時刻同期処理の実行間隔を制御するタイミング制御ステップと、前記マスターノードが、前記タイミング制御ステップにおける制御に従って、前記スレーブノードとの間で前記時刻同期処理に使用される制御メッセージの送受信を行う通信ステップと、前記スレーブノードが、前記マスターノードと前記制御メッセージの送受信を行う通信ステップと、前記スレーブノードが、前記通信ステップにおいて前記制御メッセージを送受信した際に取得される時刻情報に基づいて前記スレーブノードの時刻を前記マスターノードの時刻に同期させる時刻同期処理ステップと、を有する時刻同期方法である。
【００１１】
本発明の一態様は、双方向通信を行うマスターノードとスレーブノードとを備え、前記スレーブノードにおける時刻を前記マスターノードにおける時刻に同期させる時刻同期システムとして、前記マスターノードに相当する第１のコンピュータ及び前記スレーブノードに相当する第２のコンピュータを動作させるためのコンピュータプログラムであって、前記第１のコンピュータに対し、前記マスターノード又は前記スレーブノードの状態変化が検出されると、前記スレーブノードにおける時刻を前記マスターノードにおける時刻に同期させるための処理である時刻同期処理の実行間隔を制御するタイミング制御ステップと、前記タイミング制御ステップにおける制御に従って、前記スレーブノードとの間で前記時刻同期処理に使用される制御メッセージの送受信を行う通信ステップと、を実行させ、前記第２のコンピュータに対し、前記マスターノードと前記制御メッセージの送受信を行う通信ステップと、前記通信ステップにおいて前記制御メッセージを送受信した際に取得される時刻情報に基づいて前記スレーブノードの時刻を前記マスターノードの時刻に同期させる時刻同期処理ステップと、を実行させるためのコンピュータプログラムである。
【発明の効果】
【００１２】
本発明により、ノード間においてマスターノード又はスレーブノードの状態変化が生じた場合における時刻同期の精度低下を抑えることが可能となる。
【図面の簡単な説明】
【００１３】
【図１】ＩＥＥＥ１５８８の時刻同期アルゴリズムによる通信シーケンスの動作を表すシーケンス図である。
【図２】本発明の第１実施形態における時刻同期システム１００のシステム構成を示す概略ブロック図である。
【図３】第１実施形態における時刻同期システム１００の時刻同期処理の動作を示すシーケンス図である。
【図４】時刻同期システム１００の変形例である時刻同期システム１００ａのシステム構成を示す概略ブロック図である。
【図５】第１実施形態の変形例における時刻同期システム１００ａの時刻同期処理の動作を示すシーケンス図である。
【図６】本発明の第２実施形態における時刻同期システム１００ｂのシステム構成を示す概略ブロック図である。
【図７】第２実施形態における時刻同期システム１００ｂの動作を示すシーケンス図である。
【図８】時刻同期システム１００ｂの変形例である時刻同期システム１００ｃのシステム構成を示す概略ブロック図である。
【発明を実施するための形態】
【００１４】
以下、本発明の一実施形態を、図面を参照しながら説明する。
まず、図１を用いてＩＥＥＥ１５８８の時刻同期アルゴリズムについて説明する。図１は、ＩＥＥＥ１５８８の時刻同期アルゴリズムによる通信シーケンスの動作を表すシーケンス図である。図１では、マスターノード１０とスレーブノード２０とが双方向通信を行っており、スレーブノード２０が定期的にマスターノード１０の時刻にスレーブノード２０の時刻を同期させる。
【００１５】
マスターノード１０は、スレーブノード２０に対して定期的にＳｙｎｃメッセージを送信する（ステップＳ１００）。Ｓｙｎｃメッセージは、時刻同期化の動作を開始するために送信されるメッセージである。マスターノード１０は、Ｓｙｎｃメッセージの送信時刻（以下、「Ｓｙｎｃ送信時刻」という。）Ｔｍ（０）を記録する（ステップＳ１０１）。次に、マスターノード１０は、スレーブノード２０に対して、Ｆｏｌｌｏｗ＿ｕｐメッセージを送信する（ステップＳ１０２）。この際、マスターノード１０は、Ｆｏｌｌｏｗ＿ｕｐメッセージの中に、Ｓｙｎｃ送信時刻Ｔｍ（０）を格納する。Ｆｏｌｌｏｗ＿ｕｐメッセージは、Ｓｙｎｃメッセージが送信された後に、Ｓｙｎｃ送信時刻Ｔｍ（０）の時刻情報を通知するために送信されるメッセージである。
【００１６】
スレーブノード２０は、Ｓｙｎｃメッセージを受信すると、この受信処理をトリガとしてＳｙｎｃメッセージの受信時刻（以下、「Ｓｙｎｃ受信時刻」という。）Ｔｓ（０）を記録する（ステップＳ１０３）。次に、スレーブノード２０はＦｏｌｌｏｗ＿ｕｐメッセージを受信し、Ｆｏｌｌｏｗ＿ｕｐメッセージ中に格納されるＳｙｎｃ送信時刻Ｔｍ（０）を抽出し記録する。次に、スレーブノード２０は、マスターノード１０に対して、Ｄｅｌａｙ＿Ｒｅｑｕｅｓｔメッセージを送信する（ステップＳ１０４）。Ｄｅｌａｙ＿Ｒｅｑｕｅｓｔメッセージは、通信部２０１がマスターノード１０から送信されるＦｏｌｌｏｗ＿ｕｐメッセージを受信した後に、マスターノード１０にＤｅｌａｙ＿Ｒｅｓｐｏｎｓｅメッセージを要求するために送信されるメッセージである。そして、スレーブノード２０は、Ｄｅｌａｙ＿Ｒｅｑｕｅｓｔメッセージの送信時刻（以下、「Ｄｅｌａｙ送信時刻」という。）Ｔｓ（１）を記録する（ステップＳ１０５）。
【００１７】
マスターノード１０は、Ｄｅｌａｙ＿Ｒｅｑｕｅｓｔメッセージを受信すると、この受信処理をトリガとしてＤｅｌａｙ＿Ｒｅｑｕｅｓｔメッセージの受信時刻（以下、「Ｄｅｌａｙ受信時刻」という。）Ｔｍ（１）を記録する（ステップＳ１０６）。次に、マスターノード１０は、スレーブノード２０に対してＤｅｌａｙ＿Ｒｅｓｐｏｎｓｅメッセージを送信する（ステップＳ１０７）。この際、マスターノード１０は、Ｄｅｌａｙ＿Ｒｅｓｐｏｎｓｅメッセージの中に、Ｄｅｌａｙ受信時刻Ｔｍ（１）を格納する。Ｄｅｌａｙ＿Ｒｅｓｐｏｎｓｅメッセージは、マスターノード１０がスレーブノード２０から送信されるＰＴＰメッセージ（制御メッセージ）に応答するために送信されるメッセージである。
【００１８】
スレーブノード２０は、Ｄｅｌａｙ＿Ｒｅｓｐｏｎｓｅメッセージを受信すると、Ｄｅｌａｙ＿Ｒｅｓｐｏｎｓｅメッセージ中に格納されるＤｅｌａｙ受信時刻Ｔｍ（１）を抽出し記録する。
スレーブノード２０は、Ｓｙｎｃ送信時刻Ｔｍ（０）、Ｓｙｎｃ受信時刻Ｔｓ（０）に基づいて、以下の式１によってマスターノード１０における時刻（以下、「マスター時刻」という。）とスレーブノード２０における時刻（以下、「スレーブ時刻」という。）との差分ＭＳ＿Ｄｉｆｆを算出する。
【数１】
2015099983.tif 000003
【００１９】
また、スレーブノード２０は、Ｄｅｌａｙ送信時刻Ｔｓ（１）、Ｄｅｌａｙ受信時刻Ｔｍ（１）に基づいて、以下の式２によってスレーブ時刻とマスター時刻との差分ＳＭ＿Ｄｉｆｆを求める。
【数２】
2015099983.tif 000004
【００２０】
式１のＭＳ＿Ｄｅｌａｙはマスターノード１０からスレーブノード２０への伝送遅延を表し、式２のＳＭ＿Ｄｅｌａｙはスレーブノード２０からマスターノード１０への伝送遅延を表し、式１及び式２のＯｆｆｓｅｔ（オフセット）はマスターノード１０に対するスレーブノード２０の時刻オフセット（進み）を表す。なお、伝送遅延ＭＳ＿Ｄｅｌａｙ及びＳＭ＿Ｄｅｌａｙは、マスターノード１０とスレーブノード２０との間の伝播遅延と、マスターノード１０とスレーブノード２０との間のネットワーク上の中継ノードで生じるキューイング遅延から構成される。
【００２１】
以上のように、マスターノード１０に対するスレーブノード２０の時刻のずれであるＯｆｆｓｅｔに関して、式１及び式２の２つの式が得られる。しかし、この２つの式には、Ｏｆｆｓｅｔの他にＭＳ＿Ｄｅｌａｙ及びＳＭ＿Ｄｅｌａｙという未知のパラメータが含まれている。したがって、３つの未知のパラメータに対し２つの式しか存在しないため、Ｏｆｆｓｅｔを算出することができない。そのため、ＩＥＥＥ１５８８では、マスターノード１０からスレーブノード２０への伝送遅延ＭＳ＿Ｄｅｌａｙと、スレーブノード２０からマスターノード１０への伝送遅延ＳＭ＿Ｄｅｌａｙとが等しく、いずれの値もＤｅｌａｙであると仮定して、上記の式１及び式２を以下の式３及び式４に変形する。
【００２２】
【数３】
2015099983.tif 000005
【数４】
2015099983.tif 000006
式３及び式４の連立方程式を解くことによって、以下の式５が導出される。
【数５】
2015099983.tif 000007
【００２３】
スレーブノード２０は、導出された式５に基づいてＯｆｆｓｅｔを算出する。スレーブノード２０は、算出したＯｆｆｓｅｔに基づいてスレーブ時刻を補正することによって、スレーブ時刻をマスター時刻に同期させる。以上が、ＩＥＥＥ１５８８に規定される時刻同期アルゴリズムである。なお、以下の説明では、上述した時刻同期アルゴリズムによる処理を時刻同期処理と称する。
以下、本発明の具体的な構成例（第１実施形態及び第２実施形態）について説明する。
【００２４】
［第１実施形態］
図２は、本発明の第１実施形態における時刻同期システム１００のシステム構成を示す概略ブロック図である。第１実施形態における時刻同期システム１００は、マスターノード１０及びスレーブノード２０を備える。マスターノード１０及びスレーブノード２０は、Ｓｙｎｃ−Ｅ対応の装置であり、Ｓｙｎｃ−Ｅ対応の中継装置（不図示）により通信可能に接続される。
まず、マスターノード１０の具体的な機能構成について説明する。マスターノード１０は、バスで接続されたＣＰＵ（Central Processing Unit）やメモリや補助記憶装置などを備え、時刻同期用プログラムを実行する。時刻同期用プログラムの実行によって、マスターノード１０は、Ｓｙｎｃ−Ｅ処理部１０１、検出部１０２、タイミング制御部１０３、時刻情報取得部１０４、パケット生成部１０５、制御部１０６、通信部１０７を備える装置として機能する。なお、マスターノード１０の各機能の全て又は一部は、ＡＳＩＣ（Application Specific Integrated Circuit）やＰＬＤ（Programmable Logic Device）やＦＰＧＡ（Field Programmable Gate Array）等のハードウェアを用いて実現されてもよい。また、時刻同期用プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。また、時刻同期用プログラムは、電気通信回線を介して送受信されてもよい。
【００２５】
Ｓｙｎｃ−Ｅ処理部１０１は、マスターノード１０における１秒の時間幅を決定する。具体的には、まず、Ｓｙｎｃ−Ｅ処理部１０１は、マスターノード１０の動作基準となるクロック周波数の情報（以下、「周波数情報」という。）を取得する。そして、Ｓｙｎｃ−Ｅ処理部１０１は、取得した周波数情報に基づいてマスタークロックを生成することによって、マスターノード１０における１秒の時間幅を決定する。Ｓｙｎｃ−Ｅ処理部１０１は、例えばマスターノード１０の外部に設置されている高精度の発振器から周波数情報を取得してもよいし、マスターノード１０が高精度の発振器を内部に備えている場合には内部に備えられている高精度の発振器から周波数情報を取得してもよい。
【００２６】
検出部１０２は、マスターノード１０又はスレーブノード２０の状態変化を検出する。例えば、検出部１０２は、マスターノード１０又はスレーブノード２０の状態変化として周波数情報の異常を検出する。検出部１０２は、例えばＳｙｎｃ−Ｅ処理部１０１によって周波数情報が取得されたか否かに基づいて周波数情報の異常を検出する。状態変化とは、マスターノード１０又はスレーブノード２０の状態に影響を与える変化であり、例えばマスターノード１０に供給される周波数情報の異常やスレーブノード２０に供給される周波数の精度の劣化やパケットロスの発生などである。
タイミング制御部１０３は、検出部１０２の検出結果に応じて時刻同期処理の実行タイミングの間隔（実行間隔）を制御する。より具体的には、タイミング制御部１０３は、Ｓｙｎｃメッセージの送信タイミングの間隔を制御する。例えば、検出部１０２によって周波数情報の異常が検出された場合、タイミング制御部１０３は時刻同期処理の実行タイミングの間隔を、高精度の発振器が正常に動作しているときにマスターノード１０が時刻同期処理を実行するタイミングの間隔と比べて短い間隔に変更する。一方、検出部１０２によって周波数情報の異常が検出されなかった場合、タイミング制御部１０３は時刻同期処理の実行タイミングの間隔を、高精度の発振器が正常に動作しているときにマスターノード１０が時刻同期処理を実行するタイミングの間隔と比べて長い間隔又は現状の間隔に変更する。
【００２７】
時刻情報取得部１０４は、現在時刻の情報を取得する。時刻情報取得部１０４は、例えばクロックを備え、クロックから出力される信号に基づいて現在時刻を取得してもよいし、外部装置から時刻を表す信号を受信することによって現在時刻を取得してもよい。
パケット生成部１０５は、ＰＴＰメッセージを生成する。ＰＴＰメッセージとは、具体的には、Ｓｙｎｃメッセージ、Ｆｏｌｌｏｗ＿ｕｐメッセージ、Ｄｅｌａｙ＿Ｒｅｓｐｏｎｓｅメッセージである。パケット生成部１０５は、タイミング制御部１０３の制御に従ってＳｙｎｃメッセージを生成し、生成したＳｙｎｃメッセージを通信部１０７を介してスレーブノード２０に送信する。この際、パケット生成部１０５は、時刻情報取得部１０４によって取得された現在時刻の情報に基づいてＳｙｎｃ送信時刻Ｔｍ（０）を記録する。
【００２８】
また、パケット生成部１０５は、Ｓｙｎｃメッセージ送信後に、Ｓｙｎｃ送信時刻Ｔｍ（０）を格納したＦｏｌｌｏｗ＿ｕｐメッセージを生成する。その後、パケット生成部１０５は、通信部１０７を介してスレーブノード２０にＦｏｌｌｏｗ＿ｕｐメッセージを送信する。パケット生成部１０５は、通信部１０７によって受信されるＤｅｌａｙ＿Ｒｅｑｕｅｓｔメッセージの受信時刻（Ｄｅｌａｙ受信時刻）Ｔｍ（１）を格納したＤｅｌａｙ＿Ｒｅｓｐｏｎｓｅメッセージを生成する。その後、パケット生成部１０５は、通信部１０７を介してスレーブノード２０にＤｅｌａｙ＿Ｒｅｓｐｏｎｓｅメッセージを送信する。
【００２９】
制御部１０６は、マスターノード１０の各機能部を制御する。例えば、検出部１０２によって周波数情報の異常が検出された場合、制御部１０６は周波数情報の異常が検出されたことを通知するためのメッセージ（以下、「通知用メッセージ」という。）を生成する。また、例えば、制御部１０６は、マスタークロックの情報を通知するためのメッセージ（以下、「同期用メッセージ」という。）を生成する。また、例えば、制御部１０６は、時刻同期処理の実行タイミングの変更を通知するためのメッセージ（以下、「タイミング変更通知」という。）を生成する。
【００３０】
通信部１０７は、スレーブノード２０との間で通信を行う。例えば、通信部１０７は、スレーブノード２０からＤｅｌａｙ＿Ｒｅｑｕｅｓｔメッセージを受信し、パケット生成部１０５に転送する。また、通信部１０７は、各種メッセージをスレーブノード２０に送信する。通信部１０７が送信する各種メッセージとは、通知用メッセージ、同期用メッセージ、タイミング変更通知、Ｓｙｎｃメッセージ、Ｆｏｌｌｏｗ＿ｕｐメッセージ及びＤｅｌａｙ＿Ｒｅｓｐｏｎｓｅメッセージなどである。
【００３１】
次に、スレーブノード２０の具体的な機能構成について説明する。スレーブノード２０は、バスで接続されたＣＰＵやメモリや補助記憶装置などを備え、時刻同期用プログラムを実行する。時刻同期用プログラムの実行によって、スレーブノード２０は、通信部２０１、制御部２０２、Ｓｙｎｃ−Ｅ処理部２０３、同期処理部２０４を備える装置として機能する。なお、スレーブノード２０の各機能の全て又は一部は、ＡＳＩＣやＰＬＤやＦＰＧＡ等のハードウェアを用いて実現されてもよい。また、時刻同期用プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。また、時刻同期用プログラムは、電気通信回線を介して送受信されてもよい。
【００３２】
通信部２０１は、マスターノード１０との間で通信を行う。例えば、通信部２０１は、各種メッセージをマスターノード１０から受信する。通信部２０１が受信する各種メッセージとは、通知用メッセージ、同期用メッセージ、タイミング変更通知、Ｓｙｎｃメッセージ、Ｆｏｌｌｏｗ＿ｕｐメッセージ及びＤｅｌａｙ＿Ｒｅｓｐｏｎｓｅメッセージなどである。また、通信部２０１は、Ｄｅｌａｙ＿Ｒｅｑｕｅｓｔメッセージをマスターノード１０に送信する。
【００３３】
制御部２０２は、スレーブノード２０の各機能部を制御する。制御部２０２は、Ｄｅｌａｙ＿Ｒｅｑｕｅｓｔメッセージを生成する。この際、制御部２０２は、Ｄｅｌａｙ送信時刻Ｔｓ（１）を記録する。また、制御部２０２は、Ｓｙｎｃメッセージが通信部２０１から転送された際にＳｙｎｃ受信時刻Ｔｓ（０）を記録する。また、制御部２０２は、Ｆｏｌｌｏｗ＿ｕｐメッセージ中に格納されているＳｙｎｃ送信時刻Ｔｍ（０）を抽出し記録する。また、制御部２０２は、Ｄｅｌａｙ＿Ｒｅｓｐｏｎｓｅメッセージ中に格納されているＤｅｌａｙ受信時刻Ｔｍ（１）を抽出し記録する。その後、制御部２０２は、各時刻情報（Ｓｙｎｃ送信時刻Ｔｍ（０）、Ｓｙｎｃ受信時刻Ｔｓ（０）、Ｄｅｌａｙ送信時刻Ｔｓ（１）、Ｄｅｌａｙ受信時刻Ｔｍ（１））に基づいてＯｆｆｓｅｔを算出する。そして、制御部２０２は、算出したＯｆｆｓｅｔに基づいてスレーブノード２０の時刻を補正する。
【００３４】
Ｓｙｎｃ−Ｅ処理部２０３は、スレーブノード２０における１秒の時間幅を決定する。具体的には、Ｓｙｎｃ−Ｅ処理部２０３は、通信部２０１によって受信された同期用メッセージに格納されるマスタークロックの情報に基づいてスレーブクロックを生成することによって、スレーブノード２０における１秒の時間幅を決定する。
【００３５】
図３は、第１実施形態における時刻同期システム１００の時刻同期処理の動作を示すシーケンス図である。なお、図３では、マスターノード１０に供給される周波数情報に異常があった場合の動作について説明する。
検出部１０２は、マスターノード１０に供給される周波数情報の異常を検出する（ステップＳ２０１）。例えば、Ｓｙｎｃ−Ｅ処理部１０１によって周波数情報が取得されなかった場合、検出部１０２は周波数情報に異常があったと検出する。制御部１０６は、通知用メッセージを生成する（ステップＳ２０２）。通信部１０７は、生成された通知用メッセージをスレーブノード２０に送信する（ステップＳ２０３）。
【００３６】
スレーブノード２０の通信部２０１は、マスターノード１０から送信された通知用メッセージを受信する（ステップＳ２０４）。
タイミング制御部１０３は、時刻同期処理の実行タイミングの間隔を制御する（ステップＳ２０５）。具体的には、タイミング制御部１０３は時刻同期処理の実行タイミングの間隔を、高精度の発振器が正常に動作しているときにマスターノード１０が時刻同期処理を実行するタイミングの間隔と比べて短い間隔に変更する。その後、制御部１０６は、タイミング変更通知を生成する（ステップＳ２０６）。通信部１０７は、生成されたタイミング変更通知をスレーブノード２０に送信する（ステップＳ２０７）。
【００３７】
スレーブノード２０の通信部２０１は、マスターノード１０から送信されたタイミング変更通知を受信する（ステップＳ２０８）。その後、通信部２０１は、タイミング変更通知を受信したことを示す受信確認信号（ＡＣＫ信号）を生成し、生成した受信確認信号をマスターノード１０に送信する（ステップＳ２０９）。
マスターノード１０の通信部１０７は、スレーブノード２０から受信確認信号を受信する（ステップＳ２１０）。パケット生成部１０５は、タイミング制御部１０３の制御に従ってＰＴＰメッセージ（Ｓｙｎｃメッセージ）を生成する（ステップＳ２１１）。通信部１０７がＰＴＰメッセージ（Ｓｙｎｃメッセージ）をスレーブノード２０に送信した後、マスターノード１０とスレーブノード２０との間で時刻同期処理が実行される（ステップＳ２１２）。その後、パケット生成部１０５がタイミング制御部１０３の制御タイミングでＰＴＰメッセージ（Ｓｙｎｃメッセージ）を生成することにより、マスターノード１０とスレーブノード２０との間で時刻同期処理が繰り返し実行される（ステップＳ２１３）。
【００３８】
以上のように構成された時刻同期システム１００によれば、マスターノード１０に供給される周波数基準が失われた場合に、マスターノード１０とスレーブノード２０との間において高精度の発振器が正常に動作しているときよりも短い間隔で時刻同期処理が実行される。したがって、時間の経過とともにマスターノード１０とスレーブノード２０との時刻のずれが大きくなってしまう前に、定期的にスレーブノード２０の時刻をマスターノード１０の時刻に同期させることができる。そのため、ノード間においてマスターノード１０の状態変化が生じた場合における時刻同期の精度低下を抑えることが可能になる。
【００３９】
＜変形例＞
１台のマスターノード１０に対して複数台のスレーブノード２０が接続されるように構成されてもよい。
また、本実施例では、マスターノード１０とスレーブノード２０との間で送受信されるメッセージとしてＰＴＰメッセージを示したが、これに限定される必要はない。例えば、ＮＴＰ（Network Time Protocol）メッセージやＳＮＴＰ（Simple Network Time Protocol）メッセージなどのメッセージが用いられてもよいし、その他のメッセージが用いられてもよい。
本実施形態では、検出部１０２は、Ｓｙｎｃ−Ｅ処理部１０１によって周波数情報が取得されなかった場合に周波数情報の異常を検出する構成を示したが、その他の方法で周波数情報の異常を検出するように構成されてもよい。例えば、検出部１０２は、マスターノード１０に新たに供給された周波数情報に基づいて生成されるマスタークロックと、マスターノード１０が動作している現時点のマスタークロックとのずれが閾値以上である場合に周波数情報に異常があると検出してもよい。
本実施形態では、状態変化の具体例として、検出部１０２が自装置の周波数の異常を検出する構成を示したが、これに限定される必要はない。例えば、検出部１０２は、トラフィックの輻輳や中継装置（不図示）の異常等によるパケットロスの発生を状態変化として検出してもよいし、その他の情報を状態変化として検出してもよい。
【００４０】
第１実施形態では、Ｓｙｎｃ−Ｅ処理部１０１、検出部１０２、タイミング制御部１０３、時刻情報取得部１０４、パケット生成部１０５、制御部１０６、通信部１０７の全ての機能部が１台の装置（マスターノード１０）に備えられる構成を示したが、これに限定される必要はない。図４は、時刻同期システム１００の変形例である時刻同期システム１００ａのシステム構成を示す概略ブロック図である。図４に示されるように、マスターノード１０は、例えばＳｙｎｃ−Ｅマスタ１１及びＰＴＰマスタ１２の２つの装置で構成されてもよい。このように構成される場合、Ｓｙｎｃ−Ｅマスタ１１はＳｙｎｃ−Ｅ処理部１１１、検出部１１２、制御部１１３及び通信部１１４を備え、ＰＴＰマスタ１２は通信部１２１、制御部１２２、タイミング制御部１２３、パケット生成部１２４、時刻情報取得部１２５及びＳｙｎｃ−Ｅ処理部１２６を備える。
【００４１】
なお、Ｓｙｎｃ−Ｅマスタ１１が備えるＳｙｎｃ−Ｅ処理部１１１、検出部１１２、制御部１１３及び通信部１１４は、図２のＳｙｎｃ−Ｅ処理部１０１、検出部１０２、制御部１０６及び通信部１０７に相当する。また、ＰＴＰマスタ１２が備える通信部１２１、制御部１２２、タイミング制御部１２３、パケット生成部１２４、時刻情報取得部１２５及びＳｙｎｃ−Ｅ処理部１２６は、図２の通信部１０７、制御部１０６、タイミング制御部１０３、パケット生成部１０５、時刻情報取得部１０４及びＳｙｎｃ−Ｅ処理部１０１に相当する。また、Ｓｙｎｃ−Ｅマスタ１１、ＰＴＰマスタ１２及びスレーブノード２０ａは、Ｓｙｎｃ−Ｅ対応の装置である。なお、時刻同期システム１００ａにおけるＳｙｎｃ−Ｅマスタ１１とＰＴＰマスタ１２との順番は、図４の例に限定される必要はない。例えば、Ｓｙｎｃ−Ｅマスタ１１とＰＴＰマスタ１２との順番が逆であってもよい。すなわち、図４に示される例では、Ｓｙｎｃ−Ｅマスタ１１、ＰＴＰマスタ１２、スレーブノード２０ａの順番であるが、ＰＴＰマスタ１２、Ｓｙｎｃ−Ｅマスタ１１、スレーブノード２０ａの順番で構成されてもよい。このように構成される場合、ＰＴＰマスタ１２は必ずしもＳｙｎｃ−Ｅ対応の装置である必要はない。
以下、図５を用いて時刻同期システム１００ａの時刻同期処理の動作について具体的に説明する。
【００４２】
図５は、第１実施形態の変形例における時刻同期システム１００ａの時刻同期処理の動作を示すシーケンス図である。なお、図５では、Ｓｙｎｃ−Ｅマスタ１１に供給される周波数情報に異常があった場合の動作について説明する。
Ｓｙｎｃ−Ｅマスタ１１の検出部１１２は、周波数情報の異常を検出する（ステップＳ３０１）。例えば、Ｓｙｎｃ−Ｅ処理部１１１によって周波数情報が取得されなかった場合、検出部１１２は周波数情報に異常があったと検出する。制御部１１３は、通知用メッセージを生成する（ステップＳ３０２）。通信部１１４は、生成された通知用メッセージをＰＴＰマスタ１２に送信する（ステップＳ３０３）。
【００４３】
ＰＴＰマスタ１２の通信部１２１は、通知用メッセージをＳｙｎｃ−Ｅマスタ１１から受信し、受信した通知用メッセージをスレーブノード２０ａに転送する（ステップＳ３０４）。
スレーブノード２０ａの通信部２０１ａは、通知用メッセージをＰＴＰマスタ１２から受信する（ステップＳ３０５）。制御部２０２ａは、通知用メッセージを生成する（ステップＳ３０６）。通信部２０１ａは、生成された通知用メッセージをＰＴＰマスタ１２に送信する（ステップＳ３０７）。
【００４４】
ＰＴＰマスタ１２の通信部１２１は、通知用メッセージをスレーブノード２０ａから受信する（ステップＳ３０８）。タイミング制御部１２３は、スレーブノード２０ａから通知用メッセージが受信されると、時刻同期処理の実行タイミングの間隔を制御する（ステップＳ３０９）。具体的には、タイミング制御部１２３は、時刻同期処理の実行タイミングの間隔を、高精度の発振器が正常に動作しているときにＰＴＰマスタ１２が時刻同期処理を実行するタイミングの間隔と比べて短い間隔に変更する。その後、制御部１２２は、タイミング変更通知を生成する（ステップＳ３１０）。通信部１２１は、生成されたタイミング変更通知をスレーブノード２０ａに送信する（ステップＳ３１１）。
【００４５】
スレーブノード２０ａの通信部２０１ａは、ＰＴＰマスタ１２から送信されたタイミング変更通知を受信する（ステップＳ３１２）。通信部２０１ａは、受信確認信号（ＡＣＫ信号）を生成し、生成した受信確認信号をＰＴＰマスタ１２に送信する（ステップＳ３１３）。
ＰＴＰマスタ１２の通信部１２１は、受信確認信号をスレーブノード２０ａから受信する（ステップＳ３１４）。その後、パケット生成部１２４は、タイミング制御部１２３の制御に従ってＰＴＰメッセージ（Ｓｙｎｃメッセージ）を生成する（ステップＳ３１５）。通信部１２１がパケット生成部１２４によって生成されたＰＴＰメッセージ（Ｓｙｎｃメッセージ）をスレーブノード２０ａに送信した後、ＰＴＰマスタ１２とスレーブノード２０ａとの間で時刻同期処理が実行される（ステップＳ３１６）。その後、パケット生成部１２４がタイミング制御部１２３の制御タイミングでＰＴＰメッセージ（Ｓｙｎｃメッセージ）を生成することにより、ＰＴＰマスタ１２とスレーブノード２０ａとの間で時刻同期処理が繰り返し実行される。
【００４６】
以上のように構成された時刻同期システム１００ａによれば、スレーブノード２０ａと時刻同期を行うＰＴＰマスタ１２がＳｙｎｃ−Ｅマスタ１１から伝送される高精度の周波数に同期するため、高精度な時刻同期を行うことができる。
時刻同期システム１００ａでは、ＰＴＰマスタ１２がスレーブノード２０ａから通知用メッセージを受信した場合に、時刻同期処理の実行タイミングを変更する構成を示したが、これに限定される必要はない。例えば、Ｓｙｎｃ−Ｅマスタ１１の検出部１１２が周波数情報の異常を検知した場合に、Ｓｙｎｃ−Ｅマスタ１１からＰＴＰマスタ１２宛てに通知用メッセージを送信し、ＰＴＰマスタ１２が受信した通知用メッセージに基づいて時刻同期処理の実行タイミングを変更するように構成されてもよい。
【００４７】
［第２実施形態］
図６は、本発明の第２実施形態における時刻同期システム１００ｂのシステム構成を示す概略ブロック図である。第２実施形態における時刻同期システム１００ｂは、マスターノード１０ｂ及びスレーブノード２０ｂを備える。マスターノード１０ｂ及びスレーブノード２０ｂは、Ｓｙｎｃ−Ｅ対応の装置であり、Ｓｙｎｃ−Ｅ対応の中継装置（不図示）により通信可能に接続される。
まず、マスターノード１０ｂの具体的な機能構成について説明する。マスターノード１０ｂは、バスで接続されたＣＰＵやメモリや補助記憶装置などを備え、時刻同期用プログラムを実行する。時刻同期用プログラムの実行によって、マスターノード１０ｂは、Ｓｙｎｃ−Ｅ処理部１０１ｂ、タイミング制御部１０３ｂ、時刻情報取得部１０４ｂ、パケット生成部１０５ｂ、制御部１０６ｂ、通信部１０７ｂを備える装置として機能する。なお、マスターノード１０ｂの各機能の全て又は一部は、ＡＳＩＣやＰＬＤやＦＰＧＡ等のハードウェアを用いて実現されてもよい。また、時刻同期用プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。また、時刻同期用プログラムは、電気通信回線を介して送受信されてもよい。
【００４８】
Ｓｙｎｃ−Ｅ処理部１０１ｂは、マスターノード１０ｂにおける１秒の時間幅を決定する。具体的には、まず、Ｓｙｎｃ−Ｅ処理部１０１ｂは周波数情報を取得する。そして、Ｓｙｎｃ−Ｅ処理部１０１ｂは、取得した周波数情報に基づいてマスタークロックを生成することによって、マスターノード１０ｂにおける１秒の時間幅を決定する。Ｓｙｎｃ−Ｅ処理部１０１ｂは、例えばマスターノード１０ｂの外部に設置されている高精度の発振器から周波数情報を取得してもよいし、マスターノード１０ｂが高精度の発振器を内部に備えている場合には内部に備えられている高精度の発振器から周波数情報を取得してもよい。
【００４９】
タイミング制御部１０３ｂは、時刻同期処理の実行タイミングの間隔を制御する。より具体的には、タイミング制御部１０３ｂは、Ｓｙｎｃメッセージの送信タイミングの間隔を制御する。例えば、スレーブノード２０ｂから通知用メッセージが受信されると、タイミング制御部１０３ｂは時刻同期処理の実行タイミングの間隔を、高精度の発振器が正常に動作しているときにマスターノード１０ｂが時刻同期処理を実行するタイミングの間隔と比べて短い間隔に変更する。一方、スレーブノード２０ｂから通知用メッセージが受信されなかった場合、タイミング制御部１０３ｂは時刻同期処理の実行タイミングの間隔を、高精度の発振器が正常に動作しているときにマスターノード１０ｂが時刻同期処理を実行するタイミングの間隔と比べて長い間隔又は現状の間隔に変更する。
【００５０】
時刻情報取得部１０４ｂは、現在時刻の情報を取得する。時刻情報取得部１０４ｂは、例えばクロックを備え、クロックから出力される信号に基づいて現在時刻を取得してもよいし、外部装置から時刻を表す信号を受信することによって現在時刻を取得してもよい。
パケット生成部１０５ｂは、ＰＴＰメッセージを生成する。パケット生成部１０５ｂは、タイミング制御部１０３ｂの制御に従ってＳｙｎｃメッセージを生成し、生成したＳｙｎｃメッセージを通信部１０７ｂを介してスレーブノード２０ｂに送信する。この際、パケット生成部１０５ｂは、時刻情報取得部１０４ｂによって取得された現在時刻の情報に基づいてＳｙｎｃ送信時刻Ｔｍ（０）を記録する。
【００５１】
また、パケット生成部１０５ｂは、Ｓｙｎｃメッセージ送信後に、Ｓｙｎｃ送信時刻Ｔｍ（０）を格納したＦｏｌｌｏｗ＿ｕｐメッセージを生成する。その後、パケット生成部１０５ｂは、通信部１０７ｂを介してスレーブノード２０ｂにＦｏｌｌｏｗ＿ｕｐメッセージを送信する。パケット生成部１０５ｂは、通信部１０７ｂによって受信されるＤｅｌａｙ＿Ｒｅｑｕｅｓｔメッセージの受信時刻（Ｄｅｌａｙ受信時刻）Ｔｍ（１）を格納したＤｅｌａｙ＿Ｒｅｓｐｏｎｓｅメッセージを生成する。その後、パケット生成部１０５ｂは、通信部１０７ｂを介してスレーブノード２０ｂにＤｅｌａｙ＿Ｒｅｓｐｏｎｓｅメッセージを送信する。
【００５２】
制御部１０６ｂは、マスターノード１０ｂの各機能部を制御する。例えば、制御部１０６ｂは、同期用メッセージを生成する。また、例えば、制御部１０６ｂは、タイミング変更通知を生成する。
通信部１０７ｂは、スレーブノード２０ｂとの間で通信を行う。
【００５３】
次に、スレーブノード２０ｂの具体的な機能構成について説明する。スレーブノード２０ｂは、バスで接続されたＣＰＵやメモリや補助記憶装置などを備え、時刻同期用プログラムを実行する。時刻同期用プログラムの実行によって、スレーブノード２０ｂは、通信部２０１ｂ、制御部２０２ｂ、Ｓｙｎｃ−Ｅ処理部２０３ｂ、検出部２０４ｂを備える装置として機能する。なお、スレーブノード２０ｂの各機能の全て又は一部は、ＡＳＩＣやＰＬＤやＦＰＧＡ等のハードウェアを用いて実現されてもよい。また、時刻同期用プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。また、時刻同期用プログラムは、電気通信回線を介して送受信されてもよい。
【００５４】
通信部２０１ｂは、マスターノード１０ｂとの間で通信を行う。例えば、通信部２０１ｂは、マスターノード１０ｂとの間でＰＴＰメッセージの送受信を行う。
制御部２０２ｂは、スレーブノード２０ｂの各機能部を制御する。例えば、制御部２０２ｂは、通信部２０１ｂがマスターノード１０ｂとの間でＰＴＰメッセージを送受信した際に取得される時刻情報（（Ｓｙｎｃ送信時刻Ｔｍ（０）、Ｓｙｎｃ受信時刻Ｔｓ（０）、Ｄｅｌａｙ送信時刻Ｔｓ（１）、Ｄｅｌａｙ受信時刻Ｔｍ（１））に基づいてＯｆｆｓｅｔを算出する。そして、制御部２０２ｂは、算出したＯｆｆｓｅｔに基づいてスレーブノード２０ｂの時刻を補正する。  Ｓｙｎｃ−Ｅ処理部２０３ｂは、スレーブノード２０ｂにおける１秒の時間幅を決定する。具体的には、Ｓｙｎｃ−Ｅ処理部２０３ｂは、通信部２０１ｂによって受信された同期用メッセージに格納されるマスタークロックの情報に基づいてスレーブクロックを生成することによって、スレーブノード２０ｂにおける１秒の時間幅を決定する。
【００５５】
検出部２０４ｂは、マスターノード１０ｂ又はスレーブノード２０ｂの状態変化を検出する。例えば、検出部２０４は、マスターノード１０ｂ又はスレーブノード２０ｂの状態変化として周波数の精度の劣化を検出する。より具体的には、検出部２０４ｂは、Ｓｙｎｃ−Ｅ処理部２０３ｂによって生成されたスレーブクロックと、スレーブノード２０ｂが動作している現時点のスレーブクロックとのずれが閾値以上であるか否かに応じて周波数の精度の劣化を検出する。ずれが閾値以上である場合、検出部２０４ｂは周波数の精度が劣化していると検出する。つまり、検出部２０４ｂは、マスターノード１０ｂに供給される周波数情報の異常を検出する。具体的には、マスターノード１０ｂに供給される周波数情報が、マスターノード１０ｂの動作基準となるクロック周波数の情報であり、当該周波数情報に含まれるクロック周波数に基づいてスレーブノード２０ｂのスレーブクロックがマスターノード１０ｂのマスタークロックに同期される。しかし、マスターノード１０ｂに供給される周波数情報に異常が発生した場合（例えば、高精度な周波数情報が取得できない場合）、周波数の精度が劣化する。検出部２０４ｂは、このような周波数精度の劣化を検出する。検出部２０４ｂが周波数の精度の劣化を検出した場合、制御部２０２ｂは周波数の精度が劣化した旨の通知を通知用メッセージとして生成する。状態変化とは、マスターノード１０ｂ又はスレーブノード２０ｂの状態に影響を与える変化であり、例えばマスターノード１０ｂに供給される周波数情報の異常やスレーブノード２０ｂに供給される周波数の精度の劣化やパケットロスの発生などである。
【００５６】
図７は、第２実施形態における時刻同期システム１００ｂの動作を示すシーケンス図である。なお、図７では、スレーブノード２０ｂの周波数の劣化が検出された場合の動作について説明する。また、図２と同様の処理については、図７において図２と同様の符号を付して説明を省略する。
スレーブノード２０ｂの検出部２０４ｂは、周波数の精度の劣化を検出する（ステップＳ４０１）。制御部２０２ｂは、通知用メッセージを生成する（ステップＳ４０２）。通信部２０１ｂは、生成された通知用メッセージをマスターノード１０ｂに送信する（ステップＳ４０３）。
マスターノード１０ｂの通信部１０７ｂは、スレーブノード２０ｂから通知用メッセージを受信する（ステップＳ４０４）。その後、ステップＳ２０５からステップＳ２１３までの処理が実行される。
【００５７】
以上のように構成された時刻同期システム１００ｂによれば、スレーブノード２０ｂの周波数の精度の劣化が検出された場合に、マスターノード１０ｂとスレーブノード２０ｂとの間において高精度の発振器が正常に動作しているときよりも短い間隔で時刻同期処理が実行される。したがって、時間の経過とともにマスターノード１０とスレーブノード２０との時刻のずれが大きくなってしまう前に、定期的にスレーブノード２０の時刻をマスターノード１０の時刻に同期させることができる。そのため、ノード間においてスレーブノード２０ｂの状態変化が生じた場合における時刻同期の精度低下を抑えることが可能になる。
【００５８】
＜変形例＞
１台のマスターノード１０ｂに対して複数台のスレーブノード２０ｂが接続されるように構成されてもよい。
また、本実施例では、マスターノード１０ｂとスレーブノード２０ｂとの間で送受信されるメッセージとしてＰＴＰメッセージを示したが、これに限定される必要はない。例えば、ＮＴＰ（Network Time Protocol）メッセージやＳＮＴＰ（Simple Network Time Protocol）メッセージなどのメッセージが用いられてもよいし、その他のメッセージが用いられてもよい。
本実施形態では、状態変化の具体例として、検出部２０４ｂが周波数の精度の劣化を検出する構成を示したが、これに限定される必要はない。例えば、検出部２０４ｂは、トラフィックの輻輳や中継装置（不図示）の異常等によるパケットロスの発生を状態変化として検出してもよいし、その他の情報を状態変化として検出してもよい。
第２実施形態では、Ｓｙｎｃ−Ｅ処理部１０１ｂ、タイミング制御部１０３ｂ、時刻情報取得部１０４ｂ、パケット生成部１０５ｂ、制御部１０６ｂ、通信部１０７ｂの全ての機能部が１台の装置（マスターノード１０ｂ）に備えられる構成を示したが、これに限定される必要はない。図８は、時刻同期システム１００ｂの変形例である時刻同期システム１００ｃのシステム構成を示す概略ブロック図である。図８に示されるように、マスターノード１０ｂは、例えばＳｙｎｃ−Ｅマスタ１１ｃ及びＰＴＰマスタ１２ｃの２つの装置で構成されてもよい。このように構成される場合、Ｓｙｎｃ−Ｅマスタ１１ｃはＳｙｎｃ−Ｅ処理部１１１ｃ、制御部１１３ｃ及び通信部１１４ｃを備え、ＰＴＰマスタ１２ｃは通信部１２１ｃ、制御部１２２ｃ、タイミング制御部１２３ｃ、パケット生成部１２４ｃ、時刻情報取得部１２５ｃ及びＳｙｎｃ−Ｅ処理部１２６ｃを備える。
【００５９】
なお、Ｓｙｎｃ−Ｅマスタ１１ｃが備えるＳｙｎｃ−Ｅ処理部１１１ｃ、制御部１１３ｃ及び通信部１１４ｃは、図６のＳｙｎｃ−Ｅ処理部１０１ｂ、制御部１０６ｂ及び通信部１０７ｂに相当する。また、ＰＴＰマスタ１２ｃが備える通信部１２１ｃ、制御部１２２ｃ、タイミング制御部１２３ｃ、パケット生成部１２４ｃ、時刻情報取得部１２５ｃ及びＳｙｎｃ−Ｅ処理部１２６ｃは、図６の通信部１０７ｂ、制御部１０６ｂ、タイミング制御部１０３ｂ、パケット生成部１０５ｂ、時刻情報取得部１０４ｂ及びＳｙｎｃ−Ｅ処理部１０１ｂに相当する。また、Ｓｙｎｃ−Ｅマスタ１１ｃ、ＰＴＰマスタ１２ｃ及びスレーブノード２０ｃは、Ｓｙｎｃ−Ｅ対応の装置である。なお、時刻同期システム１００ｃにおけるＳｙｎｃ−Ｅマスタ１１ｃとＰＴＰマスタ１２ｃとの順番は、図８の例に限定される必要はない。例えば、Ｓｙｎｃ−Ｅマスタ１１ｃとＰＴＰマスタ１２ｃとの順番が逆であってもよい。すなわち、図８に示される例では、Ｓｙｎｃ−Ｅマスタ１１ｃ、ＰＴＰマスタ１２ｃ、スレーブノード２０ｃの順番であるが、ＰＴＰマスタ１２ｃ、Ｓｙｎｃ−Ｅマスタ１１ｃ、スレーブノード２０ｃの順番で構成されてもよい。このように構成される場合、ＰＴＰマスタ１２ｃは必ずしもＳｙｎｃ−Ｅ対応の装置である必要はない。
以上のように構成された時刻同期システム１００ｃにおける時刻同期処理の動作については、図７と同様の処理が行なわれる。
【００６０】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【００６１】
１０、１０ｂ…マスターノード，１１、１１ｃ…Ｓｙｎｃ−Ｅマスタ，１２、１２ｃ…ＰＴＰマスタ，  ２０、２０ａ、２０ｂ、２０ｃ…スレーブノード，  １０１、１０１ｂ…Ｓｙｎｃ−Ｅ処理部，  １０２…検出部，  １０３、１０３ｂ…タイミング制御部，  １０４、１０４ｂ…時刻情報取得部，  １０５、１０５ｂ…パケット生成部，  １０６、１０６ｂ…制御部，  １０７、１０７ｂ…通信部，  １１１、１１１ｃ…Ｓｙｎｃ−Ｅ処理部，  １１２、１１２ｃ…検出部，  １１３、１１３ｃ…制御部，  １１４、１１４ｃ…通信部，  １２１、１２１ｃ…通信部，  １２２、１２２ｃ…制御部，  １２３、１２３ｃ…タイミング制御部，  １２４、１２４ｃ…パケット生成部，  １２５、１２５ｃ…時刻情報取得部，  １２６、１２６ｃ…Ｓｙｎｃ−Ｅ処理部，  ２０１、２０１ａ、２０１ｂ、２０１ｃ…通信部，  ２０２、２０２ａ、２０２ｂ、２０２ｃ…制御部（時刻同期処理部），  ２０３、２０３ａ、２０３ｂ、２０３ｃ…Ｓｙｎｃ−Ｅ処理部，  ２０４ｂ、２０４ｃ…検出部
【図１】
2015099983.tif 000008
【図２】
2015099983.tif 000009
【図３】
2015099983.tif 000010
【図４】
2015099983.tif 000011
【図５】
2015099983.tif 000012
【図６】
2015099983.tif 000013
【図７】
2015099983.tif 000014
【図８】
2015099983.tif 000015