(57)【要約】【課題】マスタ装置と複数のスレーブ装置とのネットワークを介する時刻同期において、スレーブ装置の初期起動時の時刻同期精度の低下を防ぎ、ネットワークへの負荷を軽減し、かつ、時刻同期までの時間を短縮する。【解決手段】カウンタ１１の値が発振器１５の安定を示す値を超えると、判定部１２がマスタ装置のビジー状態を判定し、ビジー状態でない場合、送信部１３は、第１メッセージをマスタ装置に送信する。受信部１４は、第２メッセージと第２メッセージの送信時刻を含むフォローアップメッセージとを受信する。処理部１７は、第２メッセージの送信時刻と受信時刻との差に基づいて、タイマ１６のオフセット補正を行う。送信部１３は、第３メッセージをマスタ装置に送信する。受信部１４は、第３メッセージの受信時刻を含む第４メッセージを受信する。処理部１７は、第３メッセージの受信時刻と送信時刻との差に基づいて、タイマ１６の伝搬遅延補正を行う。【選択図】図３
2013029319.tif 000002
【特許請求の範囲】
【請求項１】
マスタ装置とネットワークを介して時刻同期を行うスレーブ装置であって、
時刻情報を生成するタイマと、
前記時刻情報を生成するためのクロックを発生させる発振器と、
所定の間隔でカウントアップするカウンタと、
前記カウンタの値が所定の値を超えた場合に、前記マスタ装置が他のスレーブ装置と時刻同期を行っているビジー状態であるか否かを判定する判定手段と、
前記判定手段が前記ビジー状態でないと判定した場合、前記マスタ装置に時刻同期の開始を要求する第１メッセージを送信する第１送信手段と、
前記マスタ装置から、前記マスタ装置と前記スレーブ装置との間のオフセット時間差を求めるための第２メッセージと、前記第２メッセージが前記マスタ装置から送信された時刻を含むフォローアップメッセージとを受信する第１受信手段と、
前記第１受信手段が前記第２メッセージを受信した時刻と、前記フォローアップメッセージに含まれる前記第２メッセージが前記マスタ装置から送信された時刻とに基づいて、前記オフセット時間差を算出するオフセット算出手段と、
前記第１受信手段が前記マスタ装置から前記フォローアップメッセージを受信したのちに、前記マスタ装置に前記マスタ装置と前記スレーブ装置との間の伝搬遅延時間を求めるための第３メッセージを送信する第２送信手段と、
前記マスタ装置から前記第３メッセージを前記マスタ装置が受信した時刻を含む第４メッセージを受信する第２受信手段と、
前記第２送信手段が前記第３メッセージを送信した時刻と、前記第４メッセージに含まれる前記第３メッセージを前記マスタ装置が受信した時刻とに基づいて、前記伝搬遅延時間を算出する遅延時間算出手段と、
前記オフセット時間差および前記伝搬遅延時間に基づいて、前記タイマの時刻を補正する補正手段と、
を備えることを特徴とするスレーブ装置。
【請求項２】
前記第２送信手段が、前記マスタ装置に前記第３メッセージを送信し、
前記第２受信手段が、前記マスタ装置から前記第４メッセージを受信し、および、
前記遅延時間算出手段が、前記第２送信手段が前記第３メッセージを送信した時刻と、前記第４メッセージに含まれる前記第３メッセージを前記マスタ装置が受信した時刻とに基づいて、前記伝搬遅延時間を算出する、
伝搬遅延時間算出処理を所定の周期で繰り返し、
前記補正手段は、前記オフセット時間差と、前記伝搬遅延時間算出処理で算出した複数の前記伝搬遅延時間とに基づいて、前記タイマの時刻を補正することを特徴とする請求項１に記載のスレーブ装置。
【請求項３】
前記伝搬遅延時間算出処理を繰り返し、前記伝搬遅延時間算出処理を所定の回数行って算出した複数の前記伝搬遅延時間に基づいて、前記発振器が安定したときの前記伝搬遅延時間を予測する予測手段をさらに備え、
前記補正手段は、前記オフセット時間差と、前記予測手段が予測した前記伝搬遅延時間とに基づいて、前記タイマの時刻を補正することを特徴とする請求項２に記載のスレーブ装置。
【請求項４】
前記伝搬遅延時間算出処理を繰り返し、前記伝搬遅延時間算出処理で算出した前記伝搬遅延時間と、それより前に算出した前記伝搬遅延時間との差が閾値以下になった場合に、
前記補正手段は、前記オフセット時間差と、最後に算出した前記伝搬遅延時間とに基づいて、前記タイマの時刻を補正することを特徴とする請求項２に記載のスレーブ装置。
【請求項５】
前記所定の値は、前記スレーブ装置が起動してから前記発振器が安定することを示す時間を表す前記カウンタの値であることを特徴とする請求項１に記載のスレーブ装置。
【請求項６】
ネットワークを介して時刻同期を行うマスタ装置と２以上のスレーブ装置とを備える電子機器システムであって、
前記スレーブ装置はそれぞれ、
時刻情報を生成するタイマ、
前記時刻情報を生成するためのクロックを発生させる発振器、
所定の間隔でカウントアップするカウンタ、
前記カウンタの値が所定の値を超えた場合に、前記マスタ装置が他のスレーブ装置と時刻同期を行っているビジー状態であるか否かを判定する判定手段、
前記判定手段が前記ビジー状態でないと判定した場合、前記マスタ装置に時刻同期の開始を要求する第１メッセージを送信する第１送信手段、
前記マスタ装置から、前記マスタ装置と前記スレーブ装置との間のオフセット時間差を求めるための第２メッセージと、前記第２メッセージが前記マスタ装置から送信された時刻を含むフォローアップメッセージとを受信する第１受信手段、
前記第１受信手段が前記第２メッセージを受信した時刻と、前記フォローアップメッセージに含まれる前記第２メッセージが前記マスタ装置から送信された時刻とに基づいて、前記オフセット時間差を算出するオフセット算出手段、
前記第１受信手段が前記マスタ装置から前記フォローアップメッセージを受信したのちに、前記マスタ装置に前記マスタ装置と前記スレーブ装置との間の伝搬遅延時間を求めるための第３メッセージを送信する第２送信手段、
前記マスタ装置から前記第３メッセージを前記マスタ装置が受信した時刻を含む第４メッセージを受信する第２受信手段、
前記第２送信手段が前記第３メッセージを送信した時刻と、前記第４メッセージに含まれる前記第３メッセージを前記マスタ装置が受信した時刻とに基づいて、前記伝搬遅延時間を算出する遅延時間算出手段、および、
前記オフセット時間差および前記伝搬遅延時間に基づいて、前記タイマの時刻を補正する補正手段、
を含み、
前記マスタ装置は、
前記スレーブ装置から前記第１メッセージを受信する第３受信手段、
前記第３受信手段が前記スレーブ装置から前記第１メッセージを受信すると、前記第２メッセージと、前記フォローアップメッセージとを、前記第１メッセージを受信した相手の前記スレーブ装置である対象スレーブ装置に送信する第３送信手段、
前記第３送信手段が前記第２メッセージを前記対象スレーブ装置に送信すると、前記ビジー状態であることを示す第５メッセージを、前記対象スレーブ装置以外の前記スレーブ装置に送信する第４送信手段、
前記対象スレーブ装置から前記第３メッセージを受信する第４受信手段、および、
前記第４受信手段が前記対象スレーブ装置から前記第３メッセージを受信すると、前記対象スレーブ装置に前記第４メッセージを送信する第５送信手段、
を含むことを特徴とする電子機器システム。
【請求項７】
２以上のスレーブ装置とネットワークを介して時刻同期を行うマスタ装置であって、
前記スレーブ装置から時刻同期の開始を要求する第１メッセージを受信する第３受信手段と、
前記第３受信手段が前記スレーブ装置から前記第１メッセージを受信すると、前記マスタ装置と前記スレーブ装置との間のオフセット時間差を求めるための第２メッセージと、前記第２メッセージを送信した時刻を含むフォローアップメッセージとを、前記第１メッセージを受信した相手の前記スレーブ装置である対象スレーブ装置に送信する第３送信手段と、
前記第３送信手段が前記第２メッセージを前記対象スレーブ装置に送信すると、前記ビジー状態であることを示す第５メッセージを、前記対象スレーブ装置以外の前記スレーブ装置に送信する第４送信手段と、
前記対象スレーブ装置から前記マスタ装置と前記スレーブ装置との間の伝搬遅延時間を求めるための第３メッセージを受信する第４受信手段と、
前記第４受信手段が前記対象スレーブ装置から前記第３メッセージを受信すると、前記対象スレーブ装置に前記第３メッセージを受信した時刻を含む第４メッセージを送信する第５送信手段と、
を備えることを特徴とするマスタ装置。
【請求項８】
前記第４送信手段は、前記第５送信手段が前記第４メッセージを送信する度に、前記対象スレーブ装置以外の前記スレーブ装置に前記第５メッセージを送信することを特徴とする請求項７に記載のマスタ装置。
【請求項９】
ネットワークを介して時刻同期を行うマスタ装置と２以上のスレーブ装置とを備える電子機器システムにおいて、時刻情報を生成するためのクロックを発生させる発振器と、所定の間隔でカウントアップするカウンタとを備える前記スレーブ装置が実行する
前記カウンタの値が所定の値を超えた場合に、前記マスタ装置が他のスレーブ装置と時刻同期を行っているビジー状態であるか否かを判定する判定ステップと、
前記判定ステップで前記ビジー状態でないと判定した場合、前記マスタ装置に時刻同期の開始を要求する第１メッセージを送信する第１送信ステップと、
前記マスタ装置が実行する
前記スレーブ装置から前記第１メッセージを受信する第３受信ステップと、
前記第３受信ステップで前記スレーブ装置から前記第１メッセージを受信すると、前記マスタ装置と前記スレーブ装置との間のオフセット時間差を求めるための第２メッセージと、前記第２メッセージを送信した時刻を含むフォローアップメッセージとを、前記第１メッセージを受信した相手の前記スレーブ装置である対象スレーブ装置に送信する第３送信ステップと、
前記第３送信ステップで前記第２メッセージを前記対象スレーブ装置に送信すると、前記ビジー状態であることを示す第５メッセージを、前記対象スレーブ装置以外の前記スレーブ装置に送信する第４送信ステップと、
前記対象スレーブ装置が実行する
前記マスタ装置から、前記第２メッセージと、前記フォローアップメッセージとを受信する第１受信ステップと、
前記第１受信ステップで前記第２メッセージを受信した時刻と、前記フォローアップメッセージに含まれる前記第２メッセージが前記マスタ装置から送信された時刻とに基づいて、前記オフセット時間差を算出するオフセット算出ステップと、
前記第１受信ステップで前記マスタ装置から前記フォローアップメッセージを受信したのちに、前記マスタ装置に前記マスタ装置と前記スレーブ装置との間の伝搬遅延時間を求めるための第３メッセージを送信する第２送信ステップと、
前記マスタ装置が実行する
前記対象スレーブ装置から前記第３メッセージを受信する第４受信ステップと、
前記第４受信ステップで前記対象スレーブ装置から前記第３メッセージを受信すると、前記対象スレーブ装置に前記第３メッセージを受信した時刻を含む前記第４メッセージを送信する第５送信ステップと、
前記対象スレーブ装置が実行する
前記マスタ装置から前記第４メッセージを受信する第２受信ステップと、
前記第３メッセージを送信した時刻と、前記第４メッセージに含まれる前記第３メッセージを前記マスタ装置が受信した時刻とに基づいて、前記伝搬遅延時間を算出する遅延時間算出ステップと、
前記オフセット時間差および前記伝搬遅延時間に基づいて、前記タイマの時刻を補正する補正ステップと、
を備えることを特徴とする時刻同期方法。
【請求項１０】
コンピュータを
時刻情報を生成するタイマ、
前記時刻情報を生成するためのクロックを発生させる発振器、
所定の間隔でカウントアップするカウンタ、
前記カウンタの値が所定の値を超えた場合に、前記マスタ装置が他のスレーブ装置と時刻同期を行っているビジー状態であるか否かを判定する判定手段、
前記判定手段が前記ビジー状態でないと判定した場合、前記マスタ装置に時刻同期の開始を要求する第１メッセージを送信する第１送信手段、
前記マスタ装置から、前記マスタ装置と前記スレーブ装置との間のオフセット時間差を求めるための第２メッセージと、前記第２メッセージが前記マスタ装置から送信された時刻を含むフォローアップメッセージとを受信する第１受信手段、
前記第１受信手段が前記第２メッセージを受信した時刻と、前記フォローアップメッセージに含まれる前記第２メッセージが前記マスタ装置から送信された時刻とに基づいて、前記オフセット時間差を算出するオフセット算出手段、
前記第１受信手段が前記マスタ装置から前記フォローアップメッセージを受信したのちに、前記マスタ装置に前記マスタ装置と前記スレーブ装置との間の伝搬遅延時間を求めるための第３メッセージを送信する第２送信手段、
前記マスタ装置から前記第３メッセージを前記マスタ装置が受信した時刻を含む第４メッセージを受信する第２受信手段、
前記第２送信手段が前記第３メッセージを送信した時刻と、前記第４メッセージに含まれる前記第３メッセージを前記マスタ装置が受信した時刻とに基づいて、前記伝搬遅延時間を算出する遅延時間算出手段、および、
前記オフセット時間差および前記伝搬遅延時間に基づいて、前記タイマの時刻を補正する補正手段、
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マスタ装置と時刻同期を行うスレーブ装置、時刻同期を行うマスタ装置と複数のスレーブ装置とで構成する電子機器システム、スレーブ装置と時刻同期を行うマスタ装置、マスタ装置とスレーブ装置との時刻同期方法およびプログラムに関する。
【背景技術】
【０００２】
Ｅｔｈｅｒｎｅｔ（登録商標）等のネットワークを用いた時刻同期方法として、ＩＥＥＥ１５８８規格によるマスタ装置からスレーブ装置への時刻パケットの通信（ＰＴＰ：Precision Time Protocol）による方法がある。ＩＥＥＥ１５８８方式において、ネットワークで接続されたマスタ装置とスレーブ装置とで構成される場合、スレーブ装置の時刻同期精度は、スレーブ装置に実装された発振器の安定度及びマスタ装置との時刻パケット通信を行うネットワークの負荷状態に依存する。
【０００３】
ここで、マスタ装置とネットワーク上で接続されているスレーブ装置が電源起動後に新規に時刻パケット通信により時刻同期を行う場合、スレーブ装置の電源起動初期には、時刻同期精度はスレーブ装置内部の発振器の安定度に依存する。電源起動後の時間経過によってスレーブ装置内部の発振器の安定度が向上すると、時刻同期精度はマスタ装置との時刻パケット通信を行うネットワークの負荷状態に依存する。これは、スレーブ装置の電源起動直後では発振器が安定していないため、たとえばマスタ装置から受信した時刻に対し、スレーブ装置の発振器の安定度が低いことによる誤差が加わり、マスタ装置との正確なオフセット時間差が求められないためである。
【０００４】
スレーブ装置に実装された発振器の周波数が電源起動後の時間経過とともに安定し、時刻同期に支障のない精度の範囲内になることにより、この問題は回避される。一方、ネットワークによるマスタ装置とスレーブ装置との間の時刻パケット通信は、１つのマスタ装置に接続されるスレーブ装置が多いほど、ネットワーク負荷が大きくなる。また、時刻パケット通信以外のデータパケット通信の影響を受けることにより、さらにネットワーク負荷が大きくなる。ネットワーク負荷が大きいほど揺らぎが大きくなり、揺らぎの大きさによっては１回のパケット通信では時刻精度が低い場合がある。このため、通常は複数回の時刻パケット通信の結果を用いて時刻精度を高めることになる。
【０００５】
特許文献１では、ネットワークのトラフィックを不必要に増加させることなく、応答性よく時刻補正をすることができる技術が開示されている。特許文献１のクライアント装置では、時刻補正要求の送信間隔は誤差に基づいて決定される。送信間隔は、誤差が大きいときは短く、誤差が小さいときは長くなるように決定される。したがって、ネットワークのトラフィックを不必要に増加させることなく、時刻補正をすることができる。
【０００６】
特許文献２では、スレーブ装置でマスタ装置との時刻同期化を正確に実現する電子機器システムが提案されている。特許文献２の電子機器システムでは、スレーブ装置の時計部の時刻補正を、従来のように誤差が含まれるオフセット（Offset）の演算結果を使用しないで行うことにより、スレーブ装置ではマスタ装置との時刻同期化を高精度で実現する。
【０００７】
特許文献３には、スレーブ装置においてマスタ装置との完全な時刻同期化を実現する電子機器システムが提示されている。この電子機器システムでは、マスタ装置からスレーブ装置に時刻情報がカウンタ値で送られることで、マスタ装置でカウンタ値を例えばナノセコンド（ns）単位の値に変換する処理、およびスレーブ装置でナノセコンド（ns）単位の値をカウンタ値に変換する処理は行われない。そのため、マスタ装置からスレーブ装置に供給される時刻情報は、変換時の演算誤差を含まない正確な時刻情報となる。これにより、スレーブ装置ではマスタ装置との時刻同期化をより高精度に実現できる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００７−２１４６７０号公報
【特許文献２】特開２０１０−１９０６３５号公報
【特許文献３】特開２０１０−１９７３２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ＩＥＥＥ１５８８を用いたネットワーク構成によるマスタ装置と複数のスレーブ装置の運用環境下で、新たにスレーブ装置を接続する場合、スレーブ装置を電源起動すると、スレーブ装置に実装された発振器の周波数が安定していない状態で、かつ既に運用されているネットワーク負荷の環境下でマスタ装置との時刻パケット通信を行うこととなるため、所定の時刻同期精度を満足するまでの同期引き込み時間が長くなる可能性がある。
【００１０】
特許文献１〜３に記載の技術は、ＩＥＥＥ１５８８を用いたネットワーク構成によるマスタ装置と複数のスレーブ装置の時刻同期において、スレーブ装置の初期起動時の時刻同期精度の低下を防ぎ、ネットワークへの負荷を軽減し、かつ、時刻同期までの時間を短縮するものではない。
【００１１】
本発明は、上述のような事情に鑑みてなされたもので、マスタ装置と複数のスレーブ装置とのネットワークを介する時刻同期において、スレーブ装置の初期起動時の時刻同期精度の低下を防ぎ、ネットワークへの負荷を軽減し、かつ、時刻同期までの時間を短縮することができるスレーブ装置、電子機器システム、マスタ装置、時刻同期方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明の第１の観点に係るスレーブ装置は、
マスタ装置とネットワークを介して時刻同期を行うスレーブ装置であって、
時刻情報を生成するタイマと、
前記時刻情報を生成するためのクロックを発生させる発振器と、
所定の間隔でカウントアップするカウンタと、
前記カウンタの値が所定の値を超えた場合に、前記マスタ装置が他のスレーブ装置と時刻同期を行っているビジー状態であるか否かを判定する判定手段と、
前記判定手段が前記ビジー状態でないと判定した場合、前記マスタ装置に時刻同期の開始を要求する第１メッセージを送信する第１送信手段と、
前記マスタ装置から、前記マスタ装置と前記スレーブ装置との間のオフセット時間差を求めるための第２メッセージと、前記第２メッセージが前記マスタ装置から送信された時刻を含むフォローアップメッセージとを受信する第１受信手段と、
前記第１受信手段が前記第２メッセージを受信した時刻と、前記フォローアップメッセージに含まれる前記第２メッセージが前記マスタ装置から送信された時刻とに基づいて、前記オフセット時間差を算出するオフセット算出手段と、
前記第１受信手段が前記マスタ装置から前記フォローアップメッセージを受信したのちに、前記マスタ装置に前記マスタ装置と前記スレーブ装置との間の伝搬遅延時間を求めるための第３メッセージを送信する第２送信手段と、
前記マスタ装置から前記第３メッセージを前記マスタ装置が受信した時刻を含む第４メッセージを受信する第２受信手段と、
前記第２送信手段が前記第３メッセージを送信した時刻と、前記第４メッセージに含まれる前記第３メッセージを前記マスタ装置が受信した時刻とに基づいて、前記伝搬遅延時間を算出する遅延時間算出手段と、
前記オフセット時間差および前記伝搬遅延時間に基づいて、前記タイマの時刻を補正する補正手段と、
を備えることを特徴とする。
【００１３】
本発明の第２の観点に係る電子機器システムは、
ネットワークを介して時刻同期を行うマスタ装置と２以上のスレーブ装置とを備える電子機器システムであって、
前記スレーブ装置はそれぞれ、
時刻情報を生成するタイマ、
前記時刻情報を生成するためのクロックを発生させる発振器、
所定の間隔でカウントアップするカウンタ、
前記カウンタの値が所定の値を超えた場合に、前記マスタ装置が他のスレーブ装置と時刻同期を行っているビジー状態であるか否かを判定する判定手段、
前記判定手段が前記ビジー状態でないと判定した場合、前記マスタ装置に時刻同期の開始を要求する第１メッセージを送信する第１送信手段、
前記マスタ装置から、前記マスタ装置と前記スレーブ装置との間のオフセット時間差を求めるための第２メッセージと、前記第２メッセージが前記マスタ装置から送信された時刻を含むフォローアップメッセージとを受信する第１受信手段、
前記第１受信手段が前記第２メッセージを受信した時刻と、前記フォローアップメッセージに含まれる前記第２メッセージが前記マスタ装置から送信された時刻とに基づいて、前記オフセット時間差を算出するオフセット算出手段、
前記第１受信手段が前記マスタ装置から前記フォローアップメッセージを受信したのちに、前記マスタ装置に前記マスタ装置と前記スレーブ装置との間の伝搬遅延時間を求めるための第３メッセージを送信する第２送信手段、
前記マスタ装置から前記第３メッセージを前記マスタ装置が受信した時刻を含む第４メッセージを受信する第２受信手段、
前記第２送信手段が前記第３メッセージを送信した時刻と、前記第４メッセージに含まれる前記第３メッセージを前記マスタ装置が受信した時刻とに基づいて、前記伝搬遅延時間を算出する遅延時間算出手段、および、
前記オフセット時間差および前記伝搬遅延時間に基づいて、前記タイマの時刻を補正する補正手段、
を含み、
前記マスタ装置は、
前記スレーブ装置から前記第１メッセージを受信する第３受信手段、
前記第３受信手段が前記スレーブ装置から前記第１メッセージを受信すると、前記第２メッセージと、前記フォローアップメッセージとを、前記第１メッセージを受信した相手の前記スレーブ装置である対象スレーブ装置に送信する第３送信手段、
前記第３送信手段が前記第２メッセージを前記対象スレーブ装置に送信すると、前記ビジー状態であることを示す第５メッセージを、前記対象スレーブ装置以外の前記スレーブ装置に送信する第４送信手段、
前記対象スレーブ装置から前記第３メッセージを受信する第４受信手段、および、
前記第４受信手段が前記対象スレーブ装置から前記第３メッセージを受信すると、前記対象スレーブ装置に前記第４メッセージを送信する第５送信手段、
を含むことを特徴とする。
【００１４】
本発明の第３の観点に係るマスタ装置は、
２以上のスレーブ装置とネットワークを介して時刻同期を行うマスタ装置であって、
前記スレーブ装置から時刻同期の開始を要求する第１メッセージを受信する第３受信手段と、
前記第３受信手段が前記スレーブ装置から前記第１メッセージを受信すると、前記マスタ装置と前記スレーブ装置との間のオフセット時間差を求めるための第２メッセージと、前記第２メッセージを送信した時刻を含むフォローアップメッセージとを、前記第１メッセージを受信した相手の前記スレーブ装置である対象スレーブ装置に送信する第３送信手段と、
前記第３送信手段が前記第２メッセージを前記対象スレーブ装置に送信すると、前記ビジー状態であることを示す第５メッセージを、前記対象スレーブ装置以外の前記スレーブ装置に送信する第４送信手段と、
前記対象スレーブ装置から前記マスタ装置と前記スレーブ装置との間の伝搬遅延時間を求めるための第３メッセージを受信する第４受信手段と、
前記第４受信手段が前記対象スレーブ装置から前記第３メッセージを受信すると、前記対象スレーブ装置に前記第３メッセージを受信した時刻を含む第４メッセージを送信する第５送信手段と、
を備えることを特徴とする。
【００１５】
本発明の第４の観点に係る時刻同期方法は、
ネットワークを介して時刻同期を行うマスタ装置と２以上のスレーブ装置とを備える電子機器システムにおいて、時刻情報を生成するためのクロックを発生させる発振器と、所定の間隔でカウントアップするカウンタとを備える前記スレーブ装置が実行する
前記カウンタの値が所定の値を超えた場合に、前記マスタ装置が他のスレーブ装置と時刻同期を行っているビジー状態であるか否かを判定する判定ステップと、
前記判定ステップで前記ビジー状態でないと判定した場合、前記マスタ装置に時刻同期の開始を要求する第１メッセージを送信する第１送信ステップと、
前記マスタ装置が実行する
前記スレーブ装置から前記第１メッセージを受信する第３受信ステップと、
前記第３受信ステップで前記スレーブ装置から前記第１メッセージを受信すると、前記マスタ装置と前記スレーブ装置との間のオフセット時間差を求めるための第２メッセージと、前記第２メッセージを送信した時刻を含むフォローアップメッセージとを、前記第１メッセージを受信した相手の前記スレーブ装置である対象スレーブ装置に送信する第３送信ステップと、
前記第３送信ステップで前記第２メッセージを前記対象スレーブ装置に送信すると、前記ビジー状態であることを示す第５メッセージを、前記対象スレーブ装置以外の前記スレーブ装置に送信する第４送信ステップと、
前記対象スレーブ装置が実行する
前記マスタ装置から、前記第２メッセージと、前記フォローアップメッセージとを受信する第１受信ステップと、
前記第１受信ステップで前記第２メッセージを受信した時刻と、前記フォローアップメッセージに含まれる前記第２メッセージが前記マスタ装置から送信された時刻とに基づいて、前記オフセット時間差を算出するオフセット算出ステップと、
前記第１受信ステップで前記マスタ装置から前記フォローアップメッセージを受信したのちに、前記マスタ装置に前記マスタ装置と前記スレーブ装置との間の伝搬遅延時間を求めるための第３メッセージを送信する第２送信ステップと、
前記マスタ装置が実行する
前記対象スレーブ装置から前記第３メッセージを受信する第４受信ステップと、
前記第４受信ステップで前記対象スレーブ装置から前記第３メッセージを受信すると、前記対象スレーブ装置に前記第３メッセージを受信した時刻を含む前記第４メッセージを送信する第５送信ステップと、
前記対象スレーブ装置が実行する
前記マスタ装置から前記第４メッセージを受信する第２受信ステップと、
前記第３メッセージを送信した時刻と、前記第４メッセージに含まれる前記第３メッセージを前記マスタ装置が受信した時刻とに基づいて、前記伝搬遅延時間を算出する遅延時間算出ステップと、
前記オフセット時間差および前記伝搬遅延時間に基づいて、前記タイマの時刻を補正する補正ステップと、
を備えることを特徴とする。
【００１６】
本発明の第５の観点に係るプログラムは、コンピュータを、
時刻情報を生成するタイマ、
前記時刻情報を生成するためのクロックを発生させる発振器、
所定の間隔でカウントアップするカウンタ、
前記カウンタの値が所定の値を超えた場合に、前記マスタ装置が他のスレーブ装置と時刻同期を行っているビジー状態であるか否かを判定する判定手段、
前記判定手段が前記ビジー状態でないと判定した場合、前記マスタ装置に時刻同期の開始を要求する第１メッセージを送信する第１送信手段、
前記マスタ装置から、前記マスタ装置と前記スレーブ装置との間のオフセット時間差を求めるための第２メッセージと、前記第２メッセージが前記マスタ装置から送信された時刻を含むフォローアップメッセージとを受信する第１受信手段、
前記第１受信手段が前記第２メッセージを受信した時刻と、前記フォローアップメッセージに含まれる前記第２メッセージが前記マスタ装置から送信された時刻とに基づいて、前記オフセット時間差を算出するオフセット算出手段、
前記第１受信手段が前記マスタ装置から前記フォローアップメッセージを受信したのちに、前記マスタ装置に前記マスタ装置と前記スレーブ装置との間の伝搬遅延時間を求めるための第３メッセージを送信する第２送信手段、
前記マスタ装置から前記第３メッセージを前記マスタ装置が受信した時刻を含む第４メッセージを受信する第２受信手段、
前記第２送信手段が前記第３メッセージを送信した時刻と、前記第４メッセージに含まれる前記第３メッセージを前記マスタ装置が受信した時刻とに基づいて、前記伝搬遅延時間を算出する遅延時間算出手段、および、
前記オフセット時間差および前記伝搬遅延時間に基づいて、前記タイマの時刻を補正する補正手段、
として機能させることを特徴とする。
【発明の効果】
【００１７】
本発明によれば、マスタ装置と複数のスレーブ装置とのネットワークを介する時刻同期において、スレーブ装置の初期起動時の時刻同期精度の低下を防ぎ、ネットワークへの負荷を軽減し、かつ、時刻同期までの時間を短縮することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の実施の形態に係る電子機器システムの構成例を示すブロック図である。
【図２】ＰＴＰを用いた時刻同期を説明する図である。
【図３】実施の形態に係るスレーブ装置の構成の一例を示すブロック図である。
【図４】実施の形態に係る電子機器システムにおける時刻同期の一例を説明する図である。
【図５】実施の形態に係るスレーブ装置の時刻同期の動作の一例を示すフローチャートである。
【図６】実施の形態に係るスレーブ装置の判定処理の動作の一例を示すフローチャートである。
【図７】他の実施の形態に係るスレーブ装置の時刻同期の動作の一例を示すフローチャートである。
【図８】他の実施の形態に係るスレーブ装置の時刻同期の動作の一例を示すフローチャートである。
【図９】他の実施の形態に係る電子機器システムにおける時刻同期の一例を説明する図である。
【図１０】実施の形態に係るスレーブ装置のハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【００１９】
本実施の形態において、第１メッセージはAnnounce Message 1、第２メッセージはAnnounce Message 2、フォローアップメッセージはFollow Up Message、第３メッセージはDelay Request Message、第４メッセージはDelay Response Message、第５メッセージは、Announce Message 3である。
【００２０】
以下、本発明を実施するための形態について図を参照して詳細に説明する。なお図中、同一または同等の部分には同一の符号を付す。
【００２１】
図１は、本発明の実施の形態に係る電子機器システムの構成例を示すブロック図である。電子機器システム１００は、ネットワーク上のマスタ装置Ｍ１とＸ個のスレーブ装置Ｓ１〜ＳＸとから構成される。マスタ装置Ｍ１は、スレーブ装置Ｓ１〜ＳＸに対してそれぞれパス２１〜Ｘで接続されており、それぞれのスレーブ装置Ｓ１〜ＳＸに対して時刻同期を行う。本実施の形態では、時刻同期としてＩＥＥＥ１５８８を採用しており、ＰＴＰによって時刻同期を行う。ＰＴＰでは、システムが備えるすべての装置のタイマのうち、最も正確なタイマに同期する。すなわち、最も正確なタイマを有する装置をマスタ装置とし、それ以外の装置をスレーブ装置とする。このため、マスタ装置は変更される可能性がある。
【００２２】
図２は、ＰＴＰを用いる時刻同期を説明する図である。ＩＥＥＥ１５８８規格で定義されたＰＴＰによる時刻同期の一般的な動作フローの例を示す。ここでは、マスタ装置がSync Messageを送出したときのマスタ装置の時刻を００：００として説明する。まず、マスタ装置から時刻００：００にマスタ装置とスレーブ装置との間のオフセット時間差を求めるためのSync Messageをスレーブ装置へ送出する。次に、マスタ装置から時刻００：００にSync Messageを送出したことを伝えるFollow Up Messageをスレーブ装置へ送出する。
【００２３】
スレーブ装置は、時刻００：０６にSync Messageを受信し、時刻００：０８にFollow UP Messageを受信する。スレーブ装置は、Sync Messageを受信した時刻００：０６と、Follow UP Messageに含まれるマスタ装置からSync Messageが送出された時刻００：００とに基づいて、オフセット時間差｛００：０６−００：００＝００：０６｝を算出し、時刻００：０８からオフセット時間差００：０６を引いて、時刻００：０２にするオフセット補正を行なう。
【００２４】
次に、マスタ装置とスレーブ装置の間の伝搬遅延時間を求めるために、スレーブ装置からオフセット補正後の時刻００：０６にマスタ装置とスレーブ装置との間の伝搬遅延時間を求めるためのDelay Request Messageをマスタ装置へ送出する。マスタ装置は、時刻００：１２にDelay Request Messageを受信したことを伝えるDelay Response Messageを時刻００：１３にスレーブ装置へ送出する。
【００２５】
スレーブ装置は、オフセット補正後の時刻００：１３にDelay Response Messageを受信する。スレーブ装置は、Delay Request Messageを送信したオフセット補正後の時刻００：０６と、Delay Response Messageに含まれるマスタ装置がDelay Request Messageを受信した時刻００：１２とに基づいて、マスタ装置とスレーブ装置との伝搬遅延時間｛（００：１２−００：０６）／２＝００：０３｝を算出し、オフセット補正後の時刻００：１５に伝搬遅延時間００：０３を足して、時刻００：１８にする伝搬遅延補正を行なう。以上によりマスタ装置とスレーブ装置の時刻同期が行なわれる。
【００２６】
図３は、実施の形態に係るスレーブ装置の構成の一例を示すブロック図である。スレーブ装置Ｓ１は、カウンタ１１、判定部１２、送信部１３、受信部１４、発振器１５、タイマ１６および処理部１７を備える。スレーブ装置Ｓ２〜ＳＸも同様の構成である。
【００２７】
カウンタ１１は、スレーブ装置Ｓ１を起動すると、所定の間隔で（たとえば１秒ごと）にカウントアップする。カウンタ１１は、カウンタ値を判定部１２に送る。
【００２８】
判定部１２は、カウンタ１１から受け取ったカウンタ値が所定の値以上になった場合、マスタ装置Ｍ１が他のスレーブ装置と時刻同期を行っているビジー状態であるか否かを判定する判定処理を行う。所定の値とは、たとえば、タイマ１６にクロックを供給する発振器１５が安定するまでの時間を示す値、あるいは、発振器１５が安定する時間から判定処理を実行する最短時間を引いた時間を示す値であって、あらかじめ設定されている。
【００２９】
送信部１３は、マスタ装置Ｍ１に各種Messageを送信する。送信部１３は、判定部１２がビジー状態でないと判定した場合に、時刻同期の開始を要求するAnnounce Message 1をマスタ装置Ｍ１に送信する。送信部１３は、判定部１２がビジー状態であると判定した場合は、Announce Message 1をマスタ装置Ｍ１に送信しない。
【００３０】
受信部１４は、マスタ装置Ｍ１から各種メッセージを受信する。受信部１４は、マスタ装置Ｍ１から、マスタ装置Ｍ１とスレーブ装置Ｓ１との間のオフセット時間差を求めるためのAnnounce Message 2を受信し、Announce Message 2がマスタ装置Ｍ１から送信された時刻を含むFollow UP Messageを受信する。受信部１４は、マスタ装置Ｍ１から受信したAnnounce Message 2およびFollow UP Messageを処理部１７に送る。
【００３１】
送信部１３は、受信部１４がマスタ装置Ｍ１からFollow UP Messageを受信すると、送信部１３は、マスタ装置Ｍ１とスレーブ装置Ｓ１との間の伝搬遅延時間を求めるためのDelay Request Messageをマスタ装置Ｍ１に送信する。
【００３２】
受信部１４は、マスタ装置Ｍ１がDelay Request Messageを受信した時刻を含むDelay Response Messageを受信する。受信部１４は、マスタ装置Ｍ１から受信したDelay Response Messageを処理部１７に送る。また、受信部１４は、マスタ装置Ｍ１からビジー状態であることを示すAnnounce Message 3を受信した場合は、Announce Message 3を判定部１２に送る。
【００３３】
送信部１３は、判定部１２がビジー状態でないと判定してから、時刻同期のための各Messageを送信するので、衝突を考慮する必要がなく、通常の時刻パケット通信よりも送信間隔を短くして送信することができる。
【００３４】
発振器１５は、時刻情報を生成するためのクロックを発生させてタイマ１６に供給する。
【００３５】
タイマ１６は、発振器１５から供給されるクロックに基づいて計時し、時刻情報を生成する。なお、タイマ１６はカウンタ１１により構成され、カウンタ１１は、発振器１５が発生させるクロックに従ってカウントアップしてもよい。
【００３６】
処理部１７は、受信部１４から受け取ったFollow UP Messageに含まれるAnnounce Message 2がマスタ装置Ｍ１から送信された時刻と、受信部１４がAnnounce Message 2を受信した時刻との差に基づいて、オフセット時間差を算出し、タイマ１６の時刻のオフセット補正を行う。また、処理部１７は、受信部１４から受け取ったDelay Response Messageに含まれるマスタ装置Ｍ１がDelay Request Messageを受信した時刻と、送信部１３がDelay Request Messageを送信した時刻との差に基づいて、伝搬遅延時間を算出し、タイマ１６の伝搬時間補正を行う。このようにして、処理部１７は、タイマ１６の時刻とマスタ装置Ｍ１の時刻とを同期させる。
【００３７】
図４は、実施の形態に係る電子機器システムにおける時刻同期を説明する図である。図４の例では、便宜上、電子機器システム１００は、マスタ装置１とスレーブ装置Ｓ１およびスレーブ装置Ｓ２とで構成され、スレーブ装置Ｓ１の時刻同期を実行する場合を示す。
【００３８】
スレーブ装置Ｓ１が起動すると、カウンタ１１がカウントアップを開始する。カウンタ１１のカウンタ値がＮ以上になってから、受信部１４がAnnounce Message 3を受信せずに所定の時間（１０秒）経過すると、判定部１２は、マスタ装置Ｍ１が他のスレーブ装置と時刻同期を行っているビジー状態ではないと判定する。カウンタ値Ｎは、タイマ１６にクロックを供給する発振器１５が安定するまでの時間を示す値、あるいは、発振器１５が安定する時間から判定処理を実行する最短時間を引いた時間を示す値である。
【００３９】
判定部１２がビジー状態ではないと判定した時刻００：１５に、送信部１３は、時刻同期の開始を要求するAnnounce Message 1をマスタ装置Ｍ１に送信する。マスタ装置Ｍ１は、時刻００：０３にAnnounce Message 1を受信すると、時刻００：０４に、マスタ装置Ｍ１とスレーブ装置Ｓ１との間のオフセット時間差を求めるためのAnnounce Message 2をスレーブ装置Ｓ１に対して送信する。同時に、マスタ装置Ｍ１がビジー状態になったことを示すAnnounce Message 3をスレーブ装置Ｓ２に対して送信する。そして、Announce Message 2を送出した時刻００：０４を含むFollow UP Messageを時刻００：０５にスレーブ装置Ｓ１へ送出する。
【００４０】
スレーブ装置Ｓ１の受信部１４は、時刻００：２２にAnnounce Message 2を受信し、時刻００：２３にFollow UP Messageを受信する。処理部１７は、受信部１４がAnnounce Message 2を受信した時刻００：２２と、Follow UP Messageに含まれるマスタ装置からAnnounce Message 2が送信された時刻００：０４とに基づいて、マスタ装置とのオフセット時間差｛００：２２−００：０４＝００：１８｝を算出し、時刻００：２３からオフセット時間差００：１８を引いて、時刻００：０５にするオフセット補正を行なう。
【００４１】
次に、スレーブ装置Ｓ１の送信部１３は、オフセット補正後の時刻００：０６にマスタ装置とスレーブ装置の間の伝搬遅延時間を求めるためのDelay Request Messageをマスタ装置Ｍ１に送信する。マスタ装置は、Delay Request Messageを受信した時刻００：１２を含むDelay Response Messageを時刻００：１３にスレーブ装置Ｓ１に送信する。
【００４２】
スレーブ装置Ｓ１の受信部１４は、オフセット補正後の時刻００：１３にDelay Response Messageを受信する。処理部１７は、送信部１３がDelay Request Messageを送信したオフセット補正後の時刻００：０６と、Delay Response Messageに含まれるマスタ装置Ｍ１がDelay Request Messageを受信した時刻００：１２とに基づいて、マスタ装置Ｍ１とスレーブ装置Ｓ１との伝搬遅延時間｛（００：１２−００：０６）／２＝００：０３｝を算出し、オフセット補正後の時刻００：１５に伝搬遅延時間００：０３を足して、時刻００：１８にする伝搬遅延補正を行なう。以上によりマスタ装置とスレーブ装置の時刻同期が行なわれる。
【００４３】
一方、スレーブ装置Ｓ２は、カウンタ１１のカウンタ値がＮ以上になってから、所定の時間（１０秒）が経過するよりも前の時刻００：０２にマスタ装置Ｍ１からAnnounce Message 3を受信する。これにより、判定部１２は、ビジー状態であると判定する。その後、所定の時間（１０秒）が経過する時刻００：１２までにAnnounce Message 3を受信しないので、判定部１２は、ビジー状態が解除されたと判定する。判定部１２がビジー状態でないと判定したので、送信部１３は、時刻００：１３に時刻同期の開始を要求するAnnounce Message 1をマスタ装置Ｍ１に送信する。
【００４４】
図５は、実施の形態に係るスレーブ装置の時刻同期の動作の一例を示すフローチャートである。ここでは、スレーブ装置Ｓ１の時刻同期の動作の一例を説明する。スレーブ装置Ｓ２〜ＳＸも同様の時刻同期の動作を行う。スレーブ装置Ｓ１の電源が起動すると同時にスレーブ装置Ｓ１内部のカウンタ１１が起動し（ステップＳ１１）、カウントアップを開始する。カウンタ値がＮ以上になっていない場合には（ステップＳ１２；ＮＯ）、発振器１５の安定度が悪く時刻同期に使用できないものとし、時刻同期を開始せずにステップＳ１２を繰り返す。カウンタ値Ｎは、タイマ１６にクロックを供給する発振器１５が安定するまでの時間を示す値、あるいは、発振器１５が安定する時間から判定処理を実行する最短時間を引いた時間を示す値である。
【００４５】
カウンタ値がＮ以上になった場合には（ステップＳ１２；ＹＥＳ）、発振器１５の安定度が時刻同期に使用できる安定度に達したものとし、判定部１２は、マスタ装置Ｍ１が他のスレーブ装置と時刻同期を行っているビジー状態であるか否かを判定する（ステップＳ１３）。
【００４６】
判定部１２がビジー状態であると判定した場合（ステップＳ１３；ＹＥＳ）、マスタ装置Ｍ１のビジー状態が解除されるまで、ステップＳ１３を繰り返す。判定部１２がビジー状態でないと判定した場合（ステップＳ１３；ＮＯ）、送信部１３は、時刻同期の開始を要求するAnnounce Message 1をマスタ装置Ｍ１に送信する（ステップＳ１４）。
【００４７】
マスタ装置Ｍ１は、スレーブ装置Ｓ１からのAnnounce Message 1を受信すると、マスタ装置Ｍ１とスレーブ装置Ｓ１との間のオフセット時間差を求めるためのAnnounce Message 2をスレーブ装置Ｓ１に対して送信する。同時に、マスタ装置Ｍ１がビジー状態になったことを示すAnnounce Message 3をその他のスレーブ装置に対して送信する。あるいは、マスタ装置Ｍ１は、ステーブ装置Ｓ１との時刻同期を開始してビジー状態になったことを、その他のスレーブ装置に報知するために、ステーブ装置Ｓ１を宛先とするAnnounce Message 2をブロードキャストしてもよい。そして、マスタ装置Ｍ１は、Announce Message 2を送信した時刻を含むFollow UP Messageをスレーブ装置Ｓ１に送信する。
【００４８】
マスタ装置Ｍ１は、複数のスレーブ装置からAnnounce Message 1を同時に受信した場合は、これらのスレーブ装置のうちいずれかを無作為に選出し、選出したスレーブ装置に対してAnnounce Message 2を送信してもよい。この場合、マスタ装置Ｍ１は、選出しなかったスレーブ装置に対してAnnounce Message 3を送信する。選出されなかったスレーブ装置は、Announce Message 3を受信すると、マスタ装置Ｍ１がビジー状態であると判定し、その後マスタ装置Ｍ１がビジー状態でなくなったと判定した場合にあらためてAnnounce Message 1を送信する。
【００４９】
スレーブ装置Ｓ１の受信部１４がマスタ装置Ｍ１からAnnounce Message 2を受信し（ステップＳ１５）、マスタ装置Ｍ１からAnnounce Message 2が送信された時刻を含むFollow UP Messageを受信すると（ステップＳ１６）、処理部１７は、Follow UP Messageに含まれるマスタ装置Ｍ１からAnnounce Message 2が送信された時刻と、受信部１４がAnnounce Message 2を受信した時刻とに基づいてオフセット時間差を算出し（ステップＳ１７）、タイマ１６のオフセット補正を行う（ステップＳ１８）。
【００５０】
次に、送信部１３は、マスタ装置Ｍ１とスレーブ装置Ｓ１との間の伝搬遅延時間を求めるためのDelay Request Messageを通常の時刻パケット通信よりも短い送信間隔でマスタ装置Ｍ１に送信する（ステップＳ１９）。ここでの送信間隔とは、受信部１４がFollow UP Messageを受信してから送信部１３がDelay Request Messageを送信するまでの時間である。他のスレーブ装置からマスタ装置Ｍ１にMessageが送信されることがないので、通常の時刻パケット通信よりも送信間隔を短くしたDelay Request Messageをマスタ装置Ｍ１に送信することが可能となる。これにより、時刻同期完了までの期間を通常よりも短くすることが可能となる。
【００５１】
マスタ装置Ｍ１は、スレーブ装置Ｓ１からのDelay Request Messageを受信すると、Delay Request Messageを受信した時刻を含むDelay Response Messageをスレーブ装置Ｓ１に送信する。
【００５２】
スレーブ装置Ｓ１の受信部１４がマスタ装置Ｍ１からDelay Response Messageを受信すると（ステップＳ２０）、処理部１７は、Delay Response Messageに含まれるマスタ装置Ｍ１がDelay Request Messageを受信した時刻と、送信部１３がDelay Request Messageを送信した時刻とに基づいて伝搬遅延時間を算出し（ステップＳ２１）、タイマ１６の伝搬遅延補正を行い（ステップＳ２２）、処理を終了する。
【００５３】
図６は、実施の形態に係るスレーブ装置の判定処理の動作の一例を示すフローチャートである。ここでは、スレーブ装置Ｓ１が図６のステップＳ１３行う判定処理の動作の一例を説明する。スレーブ装置Ｓ２〜ＳＸも同様の判定処理の動作を行う。スレーブ装置Ｓ１の受信部１４がマスタ装置Ｍ１からAnnounce Message 3を受信した場合（ステップＳ３１；ＹＥＳ）、判定部１２は、ビジー状態であると判定し（ステップＳ３２）、ステップＳ３３を実行する。受信部１４がマスタ装置Ｍ１からAnnounce Message 3を受信しない場合（ステップＳ３１；ＮＯ）、所定の時間経過したか否かを判定する（ステップＳ３３）。
【００５４】
ここでの所定の時間とは、マスタ装置Ｍ１からAnnounce Message 3が送信される間隔の最大値よりも長い時間である。図５のフローのように、ステップＳ１８〜ステップＳ２０を１度のみ実行することが決まっている場合は、Announce Message 3が送信されてから時刻同期が終了するまでの時間の最大値よりも長い時間に設定する。すなわち、所定の時間とは、マスタ装置Ｍ１のビジー状態が解除されたと想定しうる時間である。
【００５５】
所要時間が経過していない場合には（ステップＳ３３；ＮＯ）、ステップＳ３１に戻り、ステップＳ３１〜ステップＳ３３を繰り返す。所要時間が経過した場合には（ステップＳ３３；ＹＥＳ）、ビジー状態でないと判定し（ステップＳ３４）、処理を終了する。
【００５６】
以上説明したように、本実施の形態の電子機器システム１００によれば、スレーブ装置の電源起動後の発振器が安定するまでの所定の時間はマスタ装置との時刻パケット通信を実施しないようにしたことにより、初期起動時の時刻同期精度の劣化を防ぐことができ、ネットワークへの負荷を軽減することができる。さらに、マスタ装置がビジー状態でないことを確認してから、時刻同期を開始するので、衝突を考慮する必要がなく、通常の時刻パケット通信よりも送信間隔を短くしてメッセージを送信することができ、時刻同期までの時間を短縮することができる。
【００５７】
上述の実施の形態では、スレーブ装置は、発振器１５が安定するのを待って、時刻同期を行った。しかし本発明はこれに限らず、発振器１５が安定する前から伝搬遅延時間の算出を繰り返し行って、所定の回数行ったときに、その結果から発振器１５が安定したときの伝搬遅延時間を予測してもよい。また、発振器１５が安定する前から伝搬遅延時間の算出を繰り返し行って、前回の伝搬遅延時間と今回の伝搬遅延時間との差が閾値以下になった場合に、伝搬遅延時間の算出の繰り返しを終了してもよい。
【００５８】
図７は、他の実施の形態に係るスレーブ装置の時刻同期の動作の一例を示すフローチャートである。図７の実施の形態では、発振器１５が安定する前から伝搬遅延時間の算出を繰り返し行って、所定の回数行ったときに、その結果から発振器１５が安定したときの伝搬遅延時間を予測する。ここでは、スレーブ装置Ｓ１の時刻同期の動作の一例を説明する。スレーブ装置Ｓ２〜ＳＸも同様の時刻同期の動作を行う。スレーブ装置Ｓ１の電源が起動すると同時にスレーブ装置Ｓ１内部のカウンタ１１が起動し（ステップＳ４１）、カウントアップを開始する。カウンタ値がＮ１以上になっていない場合には（ステップＳ４２；ＮＯ）、ステップＳ４２を繰り返す。カウンタ値Ｎ１は、発振器１５が安定する時間よりも短い時間を示す値、あるいは、発振器１５が安定する時間から判定処理を実行する最短時間を引いた時間よりも短い時間を示す値である。
【００５９】
カウンタ値がＮ１以上になった場合には（ステップＳ４２；ＹＥＳ）、判定部１２は、マスタ装置Ｍ１が他のスレーブ装置と時刻同期を行っているビジー状態であるか否かを判定する（ステップＳ４３）。判定部１２がビジー状態であると判定した場合（ステップＳ４３；ＹＥＳ）、マスタ装置Ｍ１のビジー状態が解除されるまで、ステップＳ４３を繰り返す。マスタ装置Ｍ１がビジー状態でない場合（ステップＳ４３；ＮＯ）、送信部１３は、時刻同期の開始を要求するAnnounce Message 1をマスタ装置Ｍ１に送信する（ステップＳ４４）。
【００６０】
マスタ装置Ｍ１は、スレーブ装置Ｓ１からのAnnounce Message 1を受信すると、マスタ装置Ｍ１とスレーブ装置Ｓ１との間のオフセット時間差を求めるためのAnnounce Message 2をスレーブ装置Ｓ１に対して送信する。同時に、マスタ装置Ｍ１がビジー状態になったことを示すAnnounce Message 3をその他のスレーブ装置に対して送信する。あるいは、マスタ装置Ｍ１は、ステーブ装置Ｓ１との時刻同期を開始してビジー状態になったことを、その他のスレーブ装置に報知するために、ステーブ装置Ｓ１を宛先とするAnnounce Message 2をブロードキャストしてもよい。そして、マスタ装置Ｍ１は、Announce Message 2を送信した時刻を含むFollow UP Messageをスレーブ装置Ｓ１に送信する。
【００６１】
スレーブ装置Ｓ１の受信部１４がマスタ装置Ｍ１からAnnounce Message 2を受信し（ステップＳ４５）、マスタ装置Ｍ１からAnnounce Message 2が送信された時刻を含むFollow UP Messageを受信すると（ステップＳ４６）、処理部１７は、Follow UP Messageに含まれるマスタ装置Ｍ１からAnnounce Message 2が送信された時刻と、受信部１４がAnnounce Message 2を受信した時刻とに基づいてオフセット時間差を算出し（ステップＳ４７）、タイマ１６のオフセット補正を行う（ステップＳ４８）。
【００６２】
次に、送信部１３は、マスタ装置Ｍ１とスレーブ装置Ｓ１との間の伝搬遅延時間を求めるためのDelay Request Messageを通常の時刻パケット通信よりも短い送信間隔でマスタ装置Ｍ１に送信する（ステップＳ４９）。ここでの送信間隔とは、受信部１４がFollow UP Messageを受信してから送信部１３がDelay Request Messageを送信するまでの時間である。
【００６３】
マスタ装置Ｍ１は、スレーブ装置Ｓ１からのDelay Request Messageを受信すると、Delay Request Messageを受信した時刻を含むDelay Response Messageをスレーブ装置Ｓ１に送信する。同時に、マスタ装置Ｍ１がビジー状態であることを示すAnnounce Message 3をその他のスレーブ装置に対して送信する。あるいは、マスタ装置Ｍ１は、ステーブ装置Ｓ１との時刻同期のためビジー状態であることを、その他のスレーブ装置に報知するために、ステーブ装置Ｓ１を宛先とするDelay Response Messageをブロードキャストしてもよい。
【００６４】
スレーブ装置Ｓ１の受信部１４がマスタ装置Ｍ１からDelay Response Messageを受信すると（ステップＳ５０）、処理部１７は、送信部１３がDelay Request Messageを送信した時刻と、Delay Response Messageに含まれるマスタ装置Ｍ１がDelay Request Messageを受信した時刻とに基づいて伝搬遅延時間を算出する（ステップＳ５１）。ステップＳ４９〜ステップＳ５１を所定の回数繰り返していない場合（ステップＳ５２；ＮＯ）、ステップＳ４９に戻り、ステップＳ４９〜ステップＳ５２を繰り返す。ステップＳ４９〜ステップＳ５１を所定の回数繰り返した場合（ステップＳ５２；ＹＥＳ）、処理部１７は、タイマ１６の伝搬遅延補正を行う（ステップＳ５２）。こうして、所定の回数分の伝搬遅延時間が算出される。
【００６５】
処理部１７は、所定の回数分の伝搬遅延時間から、発振器１５が安定したときの伝搬遅延時間を予測し（ステップＳ５３）、予測した伝搬遅延時間に基づいて、タイマ１６の伝搬遅延補正を行い（ステップＳ５４）、処理を終了する。
【００６６】
所定の回数は、発振器１５が安定したときの同期時刻を予測可能な程度の回数であればよい。また、処理部１７は、発振器１５が安定したときの伝搬遅延時間を予測して伝搬遅延補正を行うとともに、伝搬遅延補正の補正値に基づいて、発振器１５が安定しないことによる誤差を算出し、改めてオフセット補正を行ってもよい。
【００６７】
図７の例では、所定の回数ステップＳ４９〜ステップＳ５２を繰り返す。このとき、送信部１３は、通常の時刻パケット通信よりも短い送信間隔でDelay Request Messageをマスタ装置Ｍ１に送信する。ここでの送信間隔とは、受信部１４がDelay Response Messageを受信してから送信部１３が次のDelay Request Messageを送信するまでの時間である。
【００６８】
この実施の形態によれば、スレーブ装置の発振器１５が安定する前から複数回伝搬遅延時間を算出し、その伝搬遅延時間の変移から発振器１５が安定したときの伝搬遅延時間を予測することにより、時刻同期までの時間をさらに短縮することができる。
【００６９】
図８は、他の実施の形態に係るスレーブ装置の時刻同期の動作の一例を示すフローチャートである。図８の実施の形態では、発振器１５が安定する前から伝搬遅延時間の算出を繰り返し行って、前回の伝搬遅延時間と今回の伝搬遅延時間との差が閾値以下になった場合に、伝搬遅延時間の算出の繰り返しを終了する。ここでは、スレーブ装置Ｓ１の時刻同期の動作の一例を説明する。スレーブ装置Ｓ２〜ＳＸも同様の時刻同期の動作を行う。スレーブ装置Ｓ１の電源が起動すると同時にスレーブ装置Ｓ１内部のカウンタ１１が起動し（ステップＳ６１）、カウントアップを開始する。カウンタ値がＮ１以上になっていない場合には（ステップＳ６２；ＮＯ）、ステップＳ６２を繰り返す。カウンタ値Ｎ１は、発振器１５が安定する時間よりも短い時間を示す値、あるいは、発振器１５が安定する時間から判定処理を実行する最短時間を引いた時間よりも短い時間を示す値である。
【００７０】
カウンタ値がＮ１以上になった場合には（ステップＳ６２；ＹＥＳ）、判定部１２は、マスタ装置Ｍ１が他のスレーブ装置と時刻同期を行っているビジー状態であるか否かを判定する（ステップＳ６３）。判定部１２がビジー状態であると判定した場合（ステップＳ６３；ＹＥＳ）、マスタ装置Ｍ１のビジー状態が解除されるまで、ステップＳ６３を繰り返す。マスタ装置Ｍ１がビジー状態でない場合（ステップＳ６３；ＮＯ）、送信部１３は、時刻同期の開始を要求するAnnounce Message 1をマスタ装置Ｍ１に送信する（ステップＳ６４）。
【００７１】
マスタ装置Ｍ１は、スレーブ装置Ｓ１からのAnnounce Message 1を受信すると、マスタ装置Ｍ１とスレーブ装置Ｓ１との間のオフセット時間差を求めるためのAnnounce Message 2をスレーブ装置Ｓ１に対して送信する。同時に、マスタ装置Ｍ１がビジー状態になったことを示すAnnounce Message 3をその他のスレーブ装置に対して送信する。あるいは、マスタ装置Ｍ１は、ステーブ装置Ｓ１との時刻同期を開始してビジー状態になったことを、その他のスレーブ装置に報知するために、ステーブ装置Ｓ１を宛先とするAnnounce Message 2をブロードキャストしてもよい。そして、マスタ装置Ｍ１は、Announce Message 2を送信した時刻を含むFollow UP Messageをスレーブ装置Ｓ１に送信する。
【００７２】
スレーブ装置Ｓ１の受信部１４がマスタ装置Ｍ１からAnnounce Message 2を受信し（ステップＳ６５）、マスタ装置Ｍ１からAnnounce Message 2が送信された時刻を含むFollow UP Messageを受信すると（ステップＳ６６）、処理部１７は、Follow UP Messageに含まれるマスタ装置Ｍ１からAnnounce Message 2が送信された時刻と、受信部１４がAnnounce Message 2を受信した時刻とに基づいてオフセット時間差を算出し（ステップＳ６７）、タイマ１６のオフセット補正を行う（ステップＳ６８）。
【００７３】
次に、送信部１３は、マスタ装置Ｍ１とスレーブ装置Ｓ１との間の伝搬遅延時間を求めるためのDelay Request Messageを通常の時刻パケット通信よりも短い送信間隔でマスタ装置Ｍ１に送信する（ステップＳ６９）。ここでの送信間隔とは、受信部１４がFollow UP Messageを受信してから送信部１３がDelay Request Messageを送信するまでの時間である。
【００７４】
マスタ装置Ｍ１は、スレーブ装置Ｓ１からのDelay Request Messageを受信すると、Delay Request Messageを受信した時刻を含むDelay Response Messageをスレーブ装置Ｓ１に送信する。同時に、マスタ装置Ｍ１がビジー状態であることを示すAnnounce Message 3をその他のスレーブ装置に対して送信する。あるいは、マスタ装置Ｍ１は、ステーブ装置Ｓ１との時刻同期のためビジー状態であることを、その他のスレーブ装置に報知するために、ステーブ装置Ｓ１を宛先とするDelay Response Messageをブロードキャストしてもよい。
【００７５】
スレーブ装置Ｓ１の受信部１４がマスタ装置Ｍ１からDelay Response Messageを受信すると（ステップＳ７０）、処理部１７は、送信部１３がDelay Request Messageを送信した時刻と、Delay Response Messageに含まれるマスタ装置Ｍ１がDelay Request Messageを受信した時刻とに基づいて伝搬遅延時間を算出する（ステップＳ７１）。前回算出した伝搬遅延時間と、今回算出した伝搬遅延時間との差が閾値（たとえば１秒）以下でなかった場合（ステップＳ７２；ＮＯ）、ステップＳ６９に戻り、ステップＳ６９〜ステップＳ７２を繰り返す。前回算出した伝搬遅延時間と、今回算出した伝搬遅延時間との差が閾値（たとえば１秒）以下であった場合（ステップＳ７２；ＹＥＳ）、処理部１７は、今回算出した伝搬遅延時間に基づいて、タイマ１６の伝搬遅延補正を行い（ステップＳ７３）、処理を終了する。
【００７６】
ステップＳ５１で判定する閾値は、０以上の値であって、求められている時刻同期精度の許容範囲内であればよい。また、処理部１７は、値が収束した伝搬遅延時間に基づいて伝搬遅延補正を行うとともに、伝搬遅延補正の補正値に基づいて、発振器１５が安定しないことによる誤差を算出し、改めてオフセット補正を行ってもよい。
【００７７】
図８の例では、ステップＳ６９〜ステップＳ７２を繰り返す。このとき、送信部１３は、通常の時刻パケット通信よりも短い送信間隔でDelay Request Messageをマスタ装置Ｍ１に送信する。ここでの送信間隔とは、受信部１４がDelay Response Messageを受信してから送信部１３が次のDelay Request Messageを送信するまでの時間である。
【００７８】
この実施の形態によれば、スレーブ装置の発振器１５が安定する前から伝搬遅延時間の算出を繰り返し行い、その伝搬遅延時間の値が所定の範囲まで収束したときの伝搬遅延時間の算出の繰り返しを終了することにより、時刻同期までの時間をさらに短縮することができる。
【００７９】
図９は、他の実施の形態に係る電子機器システムにおける時刻同期を説明する図である。図６、図７および図８のフローチャートを参照しながら、図９を用いて本実施の形態に係る電子機器システム１００における時刻同期の動作フローの例を説明する。図９の例では、便宜上、電子機器システム１００は、マスタ装置１とスレーブ装置Ｓ１およびスレーブ装置Ｓ２とで構成され、スレーブ装置Ｓ１の時刻同期を実行する場合を示す。
【００８０】
スレーブ装置Ｓ１が起動し（ステップＳ４１、ステップＳ６１）、スレーブ装置Ｓ１のカウンタ１１のカウンタ値がＮ以上になり（ステップＳ４２、ステップＳ６２；ＹＥＳ）、Announce Message 3を受信せずに（ステップＳ３１；ＮＯ）、所定の時間（１２秒）経過すると（ステップＳ３３；ＮＯ）、判定部１２は、マスタ装置Ｍ１はビジー状態ではないと判定する（ステップＳ４３、ステップＳ６３；ＮＯ）。判定部１２がビジー状態ではないと判定した時刻００：１５に、送信部１３は、時刻同期の開始を要求するAnnounce Message 1をマスタ装置Ｍ１に送信する（ステップＳ４４、ステップＳ６４）。マスタ装置Ｍ１は、時刻００：０３にAnnounce Message 1を受信すると、時刻００：０４に、マスタ装置Ｍ１とスレーブ装置Ｓ１との間のオフセット時間差を求めるためのAnnounce Message 2をスレーブ装置Ｓ１に対して送信する。同時に、マスタ装置Ｍ１がビジー状態になったことを示すAnnounce Message 3をスレーブ装置Ｓ２に対して送信する。そして、Announce Message 2を送出した時刻００：０４を含むFollow UP Messageを時刻００：０５にスレーブ装置Ｓ１へ送出する。
【００８１】
スレーブ装置Ｓ１の受信部１４は、時刻００：２２にAnnounce Message 2を受信し（ステップＳ４５、ステップＳ６５）、時刻００：２３にFollow UP Messageを受信する（ステップＳ４６、ステップＳ６６）。処理部１７は、受信部１４がAnnounce Message 2を受信した時刻００：２２と、Follow UP Messageに含まれるマスタ装置からAnnounce Message 2が送信された時刻００：０４とに基づいて、マスタ装置とのオフセット時間差｛００：２２−００：０４＝００：１８｝を算出し（ステップＳ４７、ステップＳ６７）、時刻００：２３からオフセット時間差００：１８を引いて、時刻００：０５にするオフセット補正を行なう（ステップＳ４８、ステップＳ６８）。
【００８２】
次に、スレーブ装置Ｓ１の送信部１３は、オフセット補正後の時刻００：０６にマスタ装置とスレーブ装置の間の伝搬遅延時間を求めるためのDelay Request Messageをマスタ装置Ｍ１に送信する（ステップＳ４９、ステップＳ６９）。マスタ装置は、Delay Request Messageを受信した時刻００：１２を含むDelay Response Messageを時刻００：１３にスレーブ装置Ｓ１に送信する。
【００８３】
スレーブ装置Ｓ１の受信部１４は、オフセット補正後の時刻００：１３にDelay Response Messageを受信する（ステップＳ５０、ステップＳ７０）。処理部１７は、送信部１３がDelay Request Messageを送信したオフセット補正後の時刻００：０６と、Delay Response Messageに含まれるマスタ装置Ｍ１がDelay Request Messageを受信した時刻００：１２とに基づいて、マスタ装置Ｍ１とスレーブ装置Ｓ１との伝搬遅延時間｛（００：１２−００：０６）／２＝００：０３｝を算出する（ステップＳ５１、ステップＳ７１）。
【００８４】
ここで、所定の回数（２回）伝搬遅延時間の算出を繰り返していない（ステップＳ５２；ＮＯ）、あるいは、前回算出した伝搬遅延時間がないので（ステップＳ７２；ＮＯ）、スレーブ装置Ｓ１の送信部１３は、オフセット補正後の時刻００：１３にマスタ装置とスレーブ装置の間の伝搬遅延時間を求めるためのDelay Request Messageをマスタ装置Ｍ１に再度送信する（ステップＳ４９、ステップＳ６９）。マスタ装置は、Delay Request Messageを受信した時刻００：２０を含むDelay Response Messageを時刻００：２１にスレーブ装置Ｓ１に送信する。
【００８５】
スレーブ装置Ｓ１の受信部１４は、オフセット補正後の時刻００：２１にDelay Response Messageを受信する（ステップＳ５０、ステップＳ７０）。処理部１７は、送信部１３がDelay Request Messageを送信したオフセット補正後の時刻００：１４と、Delay Response Messageに含まれるマスタ装置Ｍ１がDelay Request Messageを受信した時刻００：２０とに基づいて、マスタ装置Ｍ１とスレーブ装置Ｓ１との伝搬遅延時間｛（００：２０−００：１４）／２＝００：０３｝を算出する（ステップＳ５１、ステップＳ７１）。
【００８６】
所定の回数（２回）伝搬遅延時間の算出を繰り返した（ステップＳ５２；ＹＥＳ）、ので、１回目に算出した伝搬遅延時間３秒と、２回目に算出した伝搬遅延時間３秒とに基づいて、発振器１５が安定したときの伝搬遅延時間は３秒と予測する（ステップＳ５３）。
【００８７】
あるいは、前回算出した伝搬遅延時間３秒と、今回算出した伝搬遅延時間３秒との差が閾値（１秒）以下であるので（ステップＳ７２；ＹＥＳ）、伝搬遅延時間は３秒とする。
【００８８】
処理部１７は、オフセット補正後の時刻００：２３に伝搬遅延時間００：０３を足して、時刻００：２６にする伝搬遅延補正を行なう（ステップＳ５４、ステップＳ７３）。以上によりマスタ装置とスレーブ装置の時刻同期が行なわれる。
【００８９】
一方、スレーブ装置Ｓ２は、カウンタ１１のカウンタ値がＮ以上になってから（ステップＳ４２、ステップＳ６２；ＹＥＳ）、所定の時間（１２秒）が経過するよりも前の時刻００：０２にマスタ装置Ｍ１からAnnounce Message 3を受信する（ステップＳ３１；ＹＥＳ）。これにより、判定部１２は、ビジー状態であると判定する（ステップＳ３２）。また、所定の時間（１２秒）が経過する前の時刻００：１３にマスタ装置Ｍ１からAnnounce Message 3を受信する（ステップＳ３１）。これにより、判定部１２は、ビジー状態であると判定する（ステップＳ３２）。さらに、所定の時間（１２秒）が経過する前の時刻００：２１にマスタ装置Ｍ１からAnnounce Message 3を受信する（ステップＳ３１）。これにより、判定部１２は、ビジー状態であると判定する（ステップＳ３２）。そして、所定の時間（１２秒）が経過する時刻００：３３までにAnnounce Message 3を受信していないので（ステップＳ３３；ＹＥＳ）、判定部１２は、マスタ装置Ｍ１のビジー状態が解除されたと判定する（ステップＳ３４）。判定部１２がビジー状態でないと判定したので、送信部１３は、時刻００：３４に時刻同期の開始を要求するAnnounce Message 1をマスタ装置Ｍ１に送信する（ステップＳ４４、ステップＳ６４）。
【００９０】
図１０は、実施の形態に係るスレーブ装置のハードウェア構成例を示すブロック図である。スレーブ装置Ｓ１〜ＳＸは、図１０に示すように、制御部３１、主記憶部３２、外部記憶部３３、操作部３４、表示部３５および発振器３６を備える。主記憶部３２、外部記憶部３３、操作部３４、表示部３５および発振器３６はいずれも内部バス３０を介して制御部３１に接続されている。
【００９１】
制御部３１はＣＰＵ（Central Processing Unit）等から構成され、外部記憶部３３に記憶されている制御プログラム３０に従って、カウンタ１１、送信部１３、受信部１４、タイマ１６および処理部１７の各処理を実行する。
【００９２】
主記憶部３２はＲＡＭ（Random-Access Memory）等から構成され、外部記憶部３３に記憶されている制御プログラム３０をロードし、制御部３１の作業領域として用いられる。
【００９３】
外部記憶部３３は、フラッシュメモリ、ハードディスク、ＤＶＤ−ＲＡＭ（Digital Versatile Disc Random-Access Memory）、ＤＶＤ−ＲＷ（Digital Versatile Disc ReWritable）等の不揮発性メモリから構成され、スレーブ装置Ｓ１〜ＳＸの処理を制御部３１に行わせるためのプログラムをあらかじめ記憶し、また、制御部３１の指示に従って、このプログラムが記憶するデータを制御部３１に供給し、制御部３１から供給されたデータを記憶する。
【００９４】
操作部３４はキーボードやテンキーなどのポインティングデバイス等と、キーボードやテンキー等を内部バス３０に接続するインタフェース装置から構成されている。さらに操作部３４は音声入力装置を備えることとしてもよい。ユーザがカウンタ値Ｎや閾値時刻同期の間隔αなどの入力を行う場合は、操作部３４を介して、指示が制御部３１に供給される。
【００９５】
表示部３５は、ＣＲＴ（Cathode Ray Tube）またはＬＣＤ（Liquid Crystal Display）などから構成され、制御部３１から送られてきた情報を表示する。ユーザがカウンタ値Ｎや閾値時刻同期の間隔αなどの入力を行う場合は、表示部３５は、操作画面を表示する。
【００９６】
発振器３７は、所定の周波数のクロックを発生させて、制御部３１に供給する。発振器３７は、発振器１５として機能する。
【００９７】
図３に示すスレーブ装置Ｓ１（スレーブ装置Ｓ２〜ＳＸ）のカウンタ１１、送信部１３、受信部１４、発振器１５、タイマ１６および処理部１７の処理は、制御プログラム３０が、制御部３１、主記憶部３２、外部記憶部３３、操作部３４、表示部３５、発振器３６および発振器３７などを資源として用いて処理することによって実行する。
【００９８】
その他、前記のハードウェア構成やフローチャートは一例であり、任意に変更および修正が可能である。
【００９９】
制御部３１、主記憶部３２、外部記憶部３３、操作部３４、内部バス３０などから構成される時刻同期処理を行う中心となる部分は、専用のシステムによらず、通常のコンピュータシステムを用いて実現可能である。たとえば、前記の動作を実行するためのコンピュータプログラムを、コンピュータが読み取り可能な記録媒体（フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等）に格納して配布し、当該コンピュータプログラムをコンピュータにインストールすることにより、前記の処理を実行するスレーブ装置Ｓ１〜ＳＸを構成してもよい。また、インターネット等の通信ネットワーク上のサーバ装置が有する記憶装置に当該コンピュータプログラムを格納しておき、通常のコンピュータシステムがダウンロード等することでスレーブ装置Ｓ１〜ＳＸを構成してもよい。
【０１００】
また、スレーブ装置Ｓ１〜ＳＸの機能を、ＯＳ（オペレーティングシステム）とアプリケーションプログラムの分担、またはＯＳとアプリケーションプログラムとの協働により実現する場合などには、アプリケーションプログラム部分のみを記録媒体や記憶装置に格納してもよい。
【０１０１】
また、搬送波にコンピュータプログラムを重畳し、通信ネットワークを介して配信することも可能である。たとえば、通信ネットワーク上の掲示板（BBS, Bulletin Board System）に前記コンピュータプログラムを掲示し、ネットワークを介して前記コンピュータプログラムを配信してもよい。そして、このコンピュータプログラムを起動し、ＯＳの制御下で、他のアプリケーションプログラムと同様に実行することにより、前記の処理を実行できるように構成してもよい。
【０１０２】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【０１０３】
（付記１）
マスタ装置とネットワークを介して時刻同期を行うスレーブ装置であって、
時刻情報を生成するタイマと、
前記時刻情報を生成するためのクロックを発生させる発振器と、
所定の間隔でカウントアップするカウンタと、
前記カウンタの値が所定の値を超えた場合に、前記マスタ装置が他のスレーブ装置と時刻同期を行っているビジー状態であるか否かを判定する判定手段と、
前記判定手段が前記ビジー状態でないと判定した場合、前記マスタ装置に時刻同期の開始を要求する第１メッセージを送信する第１送信手段と、
前記マスタ装置から、前記マスタ装置と前記スレーブ装置との間のオフセット時間差を求めるための第２メッセージと、前記第２メッセージが前記マスタ装置から送信された時刻を含むフォローアップメッセージとを受信する第１受信手段と、
前記第１受信手段が前記第２メッセージを受信した時刻と、前記フォローアップメッセージに含まれる前記第２メッセージが前記マスタ装置から送信された時刻とに基づいて、前記オフセット時間差を算出するオフセット算出手段と、
前記第１受信手段が前記マスタ装置から前記フォローアップメッセージを受信したのちに、前記マスタ装置に前記マスタ装置と前記スレーブ装置との間の伝搬遅延時間を求めるための第３メッセージを送信する第２送信手段と、
前記マスタ装置から前記第３メッセージを前記マスタ装置が受信した時刻を含む第４メッセージを受信する第２受信手段と、
前記第２送信手段が前記第３メッセージを送信した時刻と、前記第４メッセージに含まれる前記第３メッセージを前記マスタ装置が受信した時刻とに基づいて、前記伝搬遅延時間を算出する遅延時間算出手段と、
前記オフセット時間差および前記伝搬遅延時間に基づいて、前記タイマの時刻を補正する補正手段と、
を備えることを特徴とするスレーブ装置。
【０１０４】
（付記２）
前記第２送信手段が、前記マスタ装置に前記第３メッセージを送信し、
前記第２受信手段が、前記マスタ装置から前記第４メッセージを受信し、および、
前記遅延時間算出手段が、前記第２送信手段が前記第３メッセージを送信した時刻と、前記第４メッセージに含まれる前記第３メッセージを前記マスタ装置が受信した時刻とに基づいて、前記伝搬遅延時間を算出する、
伝搬遅延時間算出処理を所定の周期で繰り返し、
前記補正手段は、前記オフセット時間差と、前記伝搬遅延時間算出処理で算出した複数の前記伝搬遅延時間とに基づいて、前記タイマの時刻を補正することを特徴とする付記１に記載のスレーブ装置。
【０１０５】
（付記３）
前記伝搬遅延時間算出処理を繰り返し、前記伝搬遅延時間算出処理を所定の回数行って算出した複数の前記伝搬遅延時間に基づいて、前記発振器が安定したときの前記伝搬遅延時間を予測する予測手段をさらに備え、
前記補正手段は、前記オフセット時間差と、前記予測手段が予測した前記伝搬遅延時間とに基づいて、前記タイマの時刻を補正することを特徴とする付記２に記載のスレーブ装置。
【０１０６】
（付記４）
前記伝搬遅延時間算出処理を繰り返し、前記伝搬遅延時間算出処理で算出した前記伝搬遅延時間と、それより前に算出した前記伝搬遅延時間との差が閾値以下になった場合に、
前記補正手段は、前記オフセット時間差と、最後に算出した前記伝搬遅延時間とに基づいて、前記タイマの時刻を補正することを特徴とする付記２に記載のスレーブ装置。
【０１０７】
（付記５）
前記所定の値は、前記スレーブ装置が起動してから前記発振器が安定することを示す時間を表す前記カウンタの値であることを特徴とする付記１に記載のスレーブ装置。
【０１０８】
（付記６）
ネットワークを介して時刻同期を行うマスタ装置と２以上のスレーブ装置とを備える電子機器システムであって、
前記スレーブ装置はそれぞれ、
時刻情報を生成するタイマ、
前記時刻情報を生成するためのクロックを発生させる発振器、
所定の間隔でカウントアップするカウンタ、
前記カウンタの値が所定の値を超えた場合に、前記マスタ装置が他のスレーブ装置と時刻同期を行っているビジー状態であるか否かを判定する判定手段、
前記判定手段が前記ビジー状態でないと判定した場合、前記マスタ装置に時刻同期の開始を要求する第１メッセージを送信する第１送信手段、
前記マスタ装置から、前記マスタ装置と前記スレーブ装置との間のオフセット時間差を求めるための第２メッセージと、前記第２メッセージが前記マスタ装置から送信された時刻を含むフォローアップメッセージとを受信する第１受信手段、
前記第１受信手段が前記第２メッセージを受信した時刻と、前記フォローアップメッセージに含まれる前記第２メッセージが前記マスタ装置から送信された時刻とに基づいて、前記オフセット時間差を算出するオフセット算出手段、
前記第１受信手段が前記マスタ装置から前記フォローアップメッセージを受信したのちに、前記マスタ装置に前記マスタ装置と前記スレーブ装置との間の伝搬遅延時間を求めるための第３メッセージを送信する第２送信手段、
前記マスタ装置から前記第３メッセージを前記マスタ装置が受信した時刻を含む第４メッセージを受信する第２受信手段、
前記第２送信手段が前記第３メッセージを送信した時刻と、前記第４メッセージに含まれる前記第３メッセージを前記マスタ装置が受信した時刻とに基づいて、前記伝搬遅延時間を算出する遅延時間算出手段、および、
前記オフセット時間差および前記伝搬遅延時間に基づいて、前記タイマの時刻を補正する補正手段、
を含み、
前記マスタ装置は、
前記スレーブ装置から前記第１メッセージを受信する第３受信手段、
前記第３受信手段が前記スレーブ装置から前記第１メッセージを受信すると、前記第２メッセージと、前記フォローアップメッセージとを、前記第１メッセージを受信した相手の前記スレーブ装置である対象スレーブ装置に送信する第３送信手段、
前記第３送信手段が前記第２メッセージを前記対象スレーブ装置に送信すると、前記ビジー状態であることを示す第５メッセージを、前記対象スレーブ装置以外の前記スレーブ装置に送信する第４送信手段、
前記対象スレーブ装置から前記第３メッセージを受信する第４受信手段、および、
前記第４受信手段が前記対象スレーブ装置から前記第３メッセージを受信すると、前記対象スレーブ装置に前記第４メッセージを送信する第５送信手段、
を含むことを特徴とする電子機器システム。
【０１０９】
（付記７）
２以上のスレーブ装置とネットワークを介して時刻同期を行うマスタ装置であって、
前記スレーブ装置から時刻同期の開始を要求する第１メッセージを受信する第３受信手段と、
前記第３受信手段が前記スレーブ装置から前記第１メッセージを受信すると、前記マスタ装置と前記スレーブ装置との間のオフセット時間差を求めるための第２メッセージと、前記第２メッセージを送信した時刻を含むフォローアップメッセージとを、前記第１メッセージを受信した相手の前記スレーブ装置である対象スレーブ装置に送信する第３送信手段と、
前記第３送信手段が前記第２メッセージを前記対象スレーブ装置に送信すると、前記ビジー状態であることを示す第５メッセージを、前記対象スレーブ装置以外の前記スレーブ装置に送信する第４送信手段と、
前記対象スレーブ装置から前記マスタ装置と前記スレーブ装置との間の伝搬遅延時間を求めるための第３メッセージを受信する第４受信手段と、
前記第４受信手段が前記対象スレーブ装置から前記第３メッセージを受信すると、前記対象スレーブ装置に前記第３メッセージを受信した時刻を含む第４メッセージを送信する第５送信手段と、
を備えることを特徴とするマスタ装置。
【０１１０】
（付記８）
前記第４送信手段は、前記第５送信手段が前記第４メッセージを送信する度に、前記対象スレーブ装置以外の前記スレーブ装置に前記第５メッセージを送信することを特徴とする付記７に記載のマスタ装置。
【０１１１】
（付記９）
ネットワークを介して時刻同期を行うマスタ装置と２以上のスレーブ装置とを備える電子機器システムにおいて、時刻情報を生成するためのクロックを発生させる発振器と、所定の間隔でカウントアップするカウンタとを備える前記スレーブ装置が実行する
前記カウンタの値が所定の値を超えた場合に、前記マスタ装置が他のスレーブ装置と時刻同期を行っているビジー状態であるか否かを判定する判定ステップと、
前記判定ステップで前記ビジー状態でないと判定した場合、前記マスタ装置に時刻同期の開始を要求する第１メッセージを送信する第１送信ステップと、
前記マスタ装置が実行する
前記スレーブ装置から前記第１メッセージを受信する第３受信ステップと、
前記第３受信ステップで前記スレーブ装置から前記第１メッセージを受信すると、前記マスタ装置と前記スレーブ装置との間のオフセット時間差を求めるための第２メッセージと、前記第２メッセージを送信した時刻を含むフォローアップメッセージとを、前記第１メッセージを受信した相手の前記スレーブ装置である対象スレーブ装置に送信する第３送信ステップと、
前記第３送信ステップで前記第２メッセージを前記対象スレーブ装置に送信すると、前記ビジー状態であることを示す第５メッセージを、前記対象スレーブ装置以外の前記スレーブ装置に送信する第４送信ステップと、
前記対象スレーブ装置が実行する
前記マスタ装置から、前記第２メッセージと、前記フォローアップメッセージとを受信する第１受信ステップと、
前記第１受信ステップで前記第２メッセージを受信した時刻と、前記フォローアップメッセージに含まれる前記第２メッセージが前記マスタ装置から送信された時刻とに基づいて、前記オフセット時間差を算出するオフセット算出ステップと、
前記第１受信ステップで前記マスタ装置から前記フォローアップメッセージを受信したのちに、前記マスタ装置に前記マスタ装置と前記スレーブ装置との間の伝搬遅延時間を求めるための第３メッセージを送信する第２送信ステップと、
前記マスタ装置が実行する
前記対象スレーブ装置から前記第３メッセージを受信する第４受信ステップと、
前記第４受信ステップで前記対象スレーブ装置から前記第３メッセージを受信すると、前記対象スレーブ装置に前記第３メッセージを受信した時刻を含む前記第４メッセージを送信する第５送信ステップと、
前記対象スレーブ装置が実行する
前記マスタ装置から前記第４メッセージを受信する第２受信ステップと、
前記第３メッセージを送信した時刻と、前記第４メッセージに含まれる前記第３メッセージを前記マスタ装置が受信した時刻とに基づいて、前記伝搬遅延時間を算出する遅延時間算出ステップと、
前記オフセット時間差および前記伝搬遅延時間に基づいて、前記タイマの時刻を補正する補正ステップと、
を備えることを特徴とする時刻同期方法。
【０１１２】
（付記１０）
前記スレーブ装置が実行する
前記第２送信ステップと、
前記マスタ装置が実行する
前記第４受信ステップと、
前記第５送信ステップと、
前記対象スレーブ装置が実行する
前記第２受信ステップと、
前記遅延時間算出ステップと、
を含む伝搬遅延時間算出処理を所定の周期で繰り返し、
前記補正ステップでは、前記オフセット時間差と、前記伝搬遅延時間算出処理で算出した複数の前記伝搬遅延時間とに基づいて、前記タイマの時刻を補正することを特徴とする付記９に記載の時刻同期方法。
【０１１３】
（付記１１）
前記伝搬遅延時間算出処理を繰り返し、前記伝搬遅延時間算出処理を所定の回数行って算出した複数の前記伝搬遅延時間に基づいて、前記発振器が安定したときの前記伝搬遅延時間を予測する予測ステップをさらに備え、
前記補正ステップでは、前記オフセット時間差と、前記予測手段が予測した前記伝搬遅延時間とに基づいて、前記タイマの時刻を補正することを特徴とする付記１０に記載の時刻同期方法。
【０１１４】
（付記１２）
前記伝搬遅延時間算出処理を繰り返し、前記伝搬遅延時間算出処理で算出した前記伝搬遅延時間と、それより前に算出した前記伝搬遅延時間との差が閾値以下になった場合に、
前記補正ステップでは、前記オフセット時間差と、最後に算出した前記伝搬遅延時間とに基づいて、前記タイマの時刻を補正することを特徴とする付記１０に記載の時刻同期方法。
【０１１５】
（付記１３）
前記所定の値は、前記スレーブ装置が起動してから前記発振器が安定することを示す時間を表す前記カウンタの値であることを特徴とする付記９に記載の時刻同期方法。
【０１１６】
（付記１４）
前記第４送信ステップでは、前記第５送信ステップで前記第４メッセージを送信する度に、前記対象スレーブ装置以外の前記スレーブ装置に前記第５メッセージを送信することを特徴とする付記９ないし１３に記載の時刻同期方法。
【０１１７】
（付記１５）
コンピュータを
時刻情報を生成するタイマ、
前記時刻情報を生成するためのクロックを発生させる発振器、
所定の間隔でカウントアップするカウンタ、
前記カウンタの値が所定の値を超えた場合に、前記マスタ装置が他のスレーブ装置と時刻同期を行っているビジー状態であるか否かを判定する判定手段、
前記判定手段が前記ビジー状態でないと判定した場合、前記マスタ装置に時刻同期の開始を要求する第１メッセージを送信する第１送信手段、
前記マスタ装置から、前記マスタ装置と前記スレーブ装置との間のオフセット時間差を求めるための第２メッセージと、前記第２メッセージが前記マスタ装置から送信された時刻を含むフォローアップメッセージとを受信する第１受信手段、
前記第１受信手段が前記第２メッセージを受信した時刻と、前記フォローアップメッセージに含まれる前記第２メッセージが前記マスタ装置から送信された時刻とに基づいて、前記オフセット時間差を算出するオフセット算出手段、
前記第１受信手段が前記マスタ装置から前記フォローアップメッセージを受信したのちに、前記マスタ装置に前記マスタ装置と前記スレーブ装置との間の伝搬遅延時間を求めるための第３メッセージを送信する第２送信手段、
前記マスタ装置から前記第３メッセージを前記マスタ装置が受信した時刻を含む第４メッセージを受信する第２受信手段、
前記第２送信手段が前記第３メッセージを送信した時刻と、前記第４メッセージに含まれる前記第３メッセージを前記マスタ装置が受信した時刻とに基づいて、前記伝搬遅延時間を算出する遅延時間算出手段、および、
前記オフセット時間差および前記伝搬遅延時間に基づいて、前記タイマの時刻を補正する補正手段、
として機能させることを特徴とするプログラム。
【符号の説明】
【０１１８】
Ｍ１  マスタ装置
Ｓ１、Ｓ２、ＳＸ  スレーブ装置
１１  カウンタ
１２  判定部
１３  送信部
１４  受信部
１５  発振器
１６  タイマ
１７  処理部
３１  制御部
３２  主記憶部
３３  外部記憶部
３４  操作部
３５  表示部
３６  発振器
１００  電子機器システム
【図１】
2013029319.tif 000003
【図２】
2013029319.tif 000004
【図３】
2013029319.tif 000005
【図４】
2013029319.tif 000006
【図５】
2013029319.tif 000007
【図６】
2013029319.tif 000008
【図７】
2013029319.tif 000009
【図８】
2013029319.tif 000010
【図９】
2013029319.tif 000011
【図１０】
2013029319.tif 000012