説明

スレーブ装置、電子機器システム、マスタ装置、時刻同期方法およびプログラム

【課題】マスタ装置と複数のスレーブ装置とのネットワークを介する時刻同期において、スレーブ装置の初期起動時の時刻同期精度の低下を防ぎ、ネットワークへの負荷を軽減し、かつ、時刻同期までの時間を短縮する。
【解決手段】カウンタ11の値が発振器15の安定を示す値を超えると、判定部12がマスタ装置のビジー状態を判定し、ビジー状態でない場合、送信部13は、第1メッセージをマスタ装置に送信する。受信部14は、第2メッセージと第2メッセージの送信時刻を含むフォローアップメッセージとを受信する。処理部17は、第2メッセージの送信時刻と受信時刻との差に基づいて、タイマ16のオフセット補正を行う。送信部13は、第3メッセージをマスタ装置に送信する。受信部14は、第3メッセージの受信時刻を含む第4メッセージを受信する。処理部17は、第3メッセージの受信時刻と送信時刻との差に基づいて、タイマ16の伝搬遅延補正を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、マスタ装置と時刻同期を行うスレーブ装置、時刻同期を行うマスタ装置と複数のスレーブ装置とで構成する電子機器システム、スレーブ装置と時刻同期を行うマスタ装置、マスタ装置とスレーブ装置との時刻同期方法およびプログラムに関する。
【背景技術】
【0002】
Ethernet(登録商標)等のネットワークを用いた時刻同期方法として、IEEE1588規格によるマスタ装置からスレーブ装置への時刻パケットの通信(PTP:Precision Time Protocol)による方法がある。IEEE1588方式において、ネットワークで接続されたマスタ装置とスレーブ装置とで構成される場合、スレーブ装置の時刻同期精度は、スレーブ装置に実装された発振器の安定度及びマスタ装置との時刻パケット通信を行うネットワークの負荷状態に依存する。
【0003】
ここで、マスタ装置とネットワーク上で接続されているスレーブ装置が電源起動後に新規に時刻パケット通信により時刻同期を行う場合、スレーブ装置の電源起動初期には、時刻同期精度はスレーブ装置内部の発振器の安定度に依存する。電源起動後の時間経過によってスレーブ装置内部の発振器の安定度が向上すると、時刻同期精度はマスタ装置との時刻パケット通信を行うネットワークの負荷状態に依存する。これは、スレーブ装置の電源起動直後では発振器が安定していないため、たとえばマスタ装置から受信した時刻に対し、スレーブ装置の発振器の安定度が低いことによる誤差が加わり、マスタ装置との正確なオフセット時間差が求められないためである。
【0004】
スレーブ装置に実装された発振器の周波数が電源起動後の時間経過とともに安定し、時刻同期に支障のない精度の範囲内になることにより、この問題は回避される。一方、ネットワークによるマスタ装置とスレーブ装置との間の時刻パケット通信は、1つのマスタ装置に接続されるスレーブ装置が多いほど、ネットワーク負荷が大きくなる。また、時刻パケット通信以外のデータパケット通信の影響を受けることにより、さらにネットワーク負荷が大きくなる。ネットワーク負荷が大きいほど揺らぎが大きくなり、揺らぎの大きさによっては1回のパケット通信では時刻精度が低い場合がある。このため、通常は複数回の時刻パケット通信の結果を用いて時刻精度を高めることになる。
【0005】
特許文献1では、ネットワークのトラフィックを不必要に増加させることなく、応答性よく時刻補正をすることができる技術が開示されている。特許文献1のクライアント装置では、時刻補正要求の送信間隔は誤差に基づいて決定される。送信間隔は、誤差が大きいときは短く、誤差が小さいときは長くなるように決定される。したがって、ネットワークのトラフィックを不必要に増加させることなく、時刻補正をすることができる。
【0006】
特許文献2では、スレーブ装置でマスタ装置との時刻同期化を正確に実現する電子機器システムが提案されている。特許文献2の電子機器システムでは、スレーブ装置の時計部の時刻補正を、従来のように誤差が含まれるオフセット(Offset)の演算結果を使用しないで行うことにより、スレーブ装置ではマスタ装置との時刻同期化を高精度で実現する。
【0007】
特許文献3には、スレーブ装置においてマスタ装置との完全な時刻同期化を実現する電子機器システムが提示されている。この電子機器システムでは、マスタ装置からスレーブ装置に時刻情報がカウンタ値で送られることで、マスタ装置でカウンタ値を例えばナノセコンド(ns)単位の値に変換する処理、およびスレーブ装置でナノセコンド(ns)単位の値をカウンタ値に変換する処理は行われない。そのため、マスタ装置からスレーブ装置に供給される時刻情報は、変換時の演算誤差を含まない正確な時刻情報となる。これにより、スレーブ装置ではマスタ装置との時刻同期化をより高精度に実現できる。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2007−214670号公報
【特許文献2】特開2010−190635号公報
【特許文献3】特開2010−197320号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
IEEE1588を用いたネットワーク構成によるマスタ装置と複数のスレーブ装置の運用環境下で、新たにスレーブ装置を接続する場合、スレーブ装置を電源起動すると、スレーブ装置に実装された発振器の周波数が安定していない状態で、かつ既に運用されているネットワーク負荷の環境下でマスタ装置との時刻パケット通信を行うこととなるため、所定の時刻同期精度を満足するまでの同期引き込み時間が長くなる可能性がある。
【0010】
特許文献1〜3に記載の技術は、IEEE1588を用いたネットワーク構成によるマスタ装置と複数のスレーブ装置の時刻同期において、スレーブ装置の初期起動時の時刻同期精度の低下を防ぎ、ネットワークへの負荷を軽減し、かつ、時刻同期までの時間を短縮するものではない。
【0011】
本発明は、上述のような事情に鑑みてなされたもので、マスタ装置と複数のスレーブ装置とのネットワークを介する時刻同期において、スレーブ装置の初期起動時の時刻同期精度の低下を防ぎ、ネットワークへの負荷を軽減し、かつ、時刻同期までの時間を短縮することができるスレーブ装置、電子機器システム、マスタ装置、時刻同期方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0012】
本発明の第1の観点に係るスレーブ装置は、
マスタ装置とネットワークを介して時刻同期を行うスレーブ装置であって、
時刻情報を生成するタイマと、
前記時刻情報を生成するためのクロックを発生させる発振器と、
所定の間隔でカウントアップするカウンタと、
前記カウンタの値が所定の値を超えた場合に、前記マスタ装置が他のスレーブ装置と時刻同期を行っているビジー状態であるか否かを判定する判定手段と、
前記判定手段が前記ビジー状態でないと判定した場合、前記マスタ装置に時刻同期の開始を要求する第1メッセージを送信する第1送信手段と、
前記マスタ装置から、前記マスタ装置と前記スレーブ装置との間のオフセット時間差を求めるための第2メッセージと、前記第2メッセージが前記マスタ装置から送信された時刻を含むフォローアップメッセージとを受信する第1受信手段と、
前記第1受信手段が前記第2メッセージを受信した時刻と、前記フォローアップメッセージに含まれる前記第2メッセージが前記マスタ装置から送信された時刻とに基づいて、前記オフセット時間差を算出するオフセット算出手段と、
前記第1受信手段が前記マスタ装置から前記フォローアップメッセージを受信したのちに、前記マスタ装置に前記マスタ装置と前記スレーブ装置との間の伝搬遅延時間を求めるための第3メッセージを送信する第2送信手段と、
前記マスタ装置から前記第3メッセージを前記マスタ装置が受信した時刻を含む第4メッセージを受信する第2受信手段と、
前記第2送信手段が前記第3メッセージを送信した時刻と、前記第4メッセージに含まれる前記第3メッセージを前記マスタ装置が受信した時刻とに基づいて、前記伝搬遅延時間を算出する遅延時間算出手段と、
前記オフセット時間差および前記伝搬遅延時間に基づいて、前記タイマの時刻を補正する補正手段と、
を備えることを特徴とする。
【0013】
本発明の第2の観点に係る電子機器システムは、
ネットワークを介して時刻同期を行うマスタ装置と2以上のスレーブ装置とを備える電子機器システムであって、
前記スレーブ装置はそれぞれ、
時刻情報を生成するタイマ、
前記時刻情報を生成するためのクロックを発生させる発振器、
所定の間隔でカウントアップするカウンタ、
前記カウンタの値が所定の値を超えた場合に、前記マスタ装置が他のスレーブ装置と時刻同期を行っているビジー状態であるか否かを判定する判定手段、
前記判定手段が前記ビジー状態でないと判定した場合、前記マスタ装置に時刻同期の開始を要求する第1メッセージを送信する第1送信手段、
前記マスタ装置から、前記マスタ装置と前記スレーブ装置との間のオフセット時間差を求めるための第2メッセージと、前記第2メッセージが前記マスタ装置から送信された時刻を含むフォローアップメッセージとを受信する第1受信手段、
前記第1受信手段が前記第2メッセージを受信した時刻と、前記フォローアップメッセージに含まれる前記第2メッセージが前記マスタ装置から送信された時刻とに基づいて、前記オフセット時間差を算出するオフセット算出手段、
前記第1受信手段が前記マスタ装置から前記フォローアップメッセージを受信したのちに、前記マスタ装置に前記マスタ装置と前記スレーブ装置との間の伝搬遅延時間を求めるための第3メッセージを送信する第2送信手段、
前記マスタ装置から前記第3メッセージを前記マスタ装置が受信した時刻を含む第4メッセージを受信する第2受信手段、
前記第2送信手段が前記第3メッセージを送信した時刻と、前記第4メッセージに含まれる前記第3メッセージを前記マスタ装置が受信した時刻とに基づいて、前記伝搬遅延時間を算出する遅延時間算出手段、および、
前記オフセット時間差および前記伝搬遅延時間に基づいて、前記タイマの時刻を補正する補正手段、
を含み、
前記マスタ装置は、
前記スレーブ装置から前記第1メッセージを受信する第3受信手段、
前記第3受信手段が前記スレーブ装置から前記第1メッセージを受信すると、前記第2メッセージと、前記フォローアップメッセージとを、前記第1メッセージを受信した相手の前記スレーブ装置である対象スレーブ装置に送信する第3送信手段、
前記第3送信手段が前記第2メッセージを前記対象スレーブ装置に送信すると、前記ビジー状態であることを示す第5メッセージを、前記対象スレーブ装置以外の前記スレーブ装置に送信する第4送信手段、
前記対象スレーブ装置から前記第3メッセージを受信する第4受信手段、および、
前記第4受信手段が前記対象スレーブ装置から前記第3メッセージを受信すると、前記対象スレーブ装置に前記第4メッセージを送信する第5送信手段、
を含むことを特徴とする。
【0014】
本発明の第3の観点に係るマスタ装置は、
2以上のスレーブ装置とネットワークを介して時刻同期を行うマスタ装置であって、
前記スレーブ装置から時刻同期の開始を要求する第1メッセージを受信する第3受信手段と、
前記第3受信手段が前記スレーブ装置から前記第1メッセージを受信すると、前記マスタ装置と前記スレーブ装置との間のオフセット時間差を求めるための第2メッセージと、前記第2メッセージを送信した時刻を含むフォローアップメッセージとを、前記第1メッセージを受信した相手の前記スレーブ装置である対象スレーブ装置に送信する第3送信手段と、
前記第3送信手段が前記第2メッセージを前記対象スレーブ装置に送信すると、前記ビジー状態であることを示す第5メッセージを、前記対象スレーブ装置以外の前記スレーブ装置に送信する第4送信手段と、
前記対象スレーブ装置から前記マスタ装置と前記スレーブ装置との間の伝搬遅延時間を求めるための第3メッセージを受信する第4受信手段と、
前記第4受信手段が前記対象スレーブ装置から前記第3メッセージを受信すると、前記対象スレーブ装置に前記第3メッセージを受信した時刻を含む第4メッセージを送信する第5送信手段と、
を備えることを特徴とする。
【0015】
本発明の第4の観点に係る時刻同期方法は、
ネットワークを介して時刻同期を行うマスタ装置と2以上のスレーブ装置とを備える電子機器システムにおいて、時刻情報を生成するためのクロックを発生させる発振器と、所定の間隔でカウントアップするカウンタとを備える前記スレーブ装置が実行する
前記カウンタの値が所定の値を超えた場合に、前記マスタ装置が他のスレーブ装置と時刻同期を行っているビジー状態であるか否かを判定する判定ステップと、
前記判定ステップで前記ビジー状態でないと判定した場合、前記マスタ装置に時刻同期の開始を要求する第1メッセージを送信する第1送信ステップと、
前記マスタ装置が実行する
前記スレーブ装置から前記第1メッセージを受信する第3受信ステップと、
前記第3受信ステップで前記スレーブ装置から前記第1メッセージを受信すると、前記マスタ装置と前記スレーブ装置との間のオフセット時間差を求めるための第2メッセージと、前記第2メッセージを送信した時刻を含むフォローアップメッセージとを、前記第1メッセージを受信した相手の前記スレーブ装置である対象スレーブ装置に送信する第3送信ステップと、
前記第3送信ステップで前記第2メッセージを前記対象スレーブ装置に送信すると、前記ビジー状態であることを示す第5メッセージを、前記対象スレーブ装置以外の前記スレーブ装置に送信する第4送信ステップと、
前記対象スレーブ装置が実行する
前記マスタ装置から、前記第2メッセージと、前記フォローアップメッセージとを受信する第1受信ステップと、
前記第1受信ステップで前記第2メッセージを受信した時刻と、前記フォローアップメッセージに含まれる前記第2メッセージが前記マスタ装置から送信された時刻とに基づいて、前記オフセット時間差を算出するオフセット算出ステップと、
前記第1受信ステップで前記マスタ装置から前記フォローアップメッセージを受信したのちに、前記マスタ装置に前記マスタ装置と前記スレーブ装置との間の伝搬遅延時間を求めるための第3メッセージを送信する第2送信ステップと、
前記マスタ装置が実行する
前記対象スレーブ装置から前記第3メッセージを受信する第4受信ステップと、
前記第4受信ステップで前記対象スレーブ装置から前記第3メッセージを受信すると、前記対象スレーブ装置に前記第3メッセージを受信した時刻を含む前記第4メッセージを送信する第5送信ステップと、
前記対象スレーブ装置が実行する
前記マスタ装置から前記第4メッセージを受信する第2受信ステップと、
前記第3メッセージを送信した時刻と、前記第4メッセージに含まれる前記第3メッセージを前記マスタ装置が受信した時刻とに基づいて、前記伝搬遅延時間を算出する遅延時間算出ステップと、
前記オフセット時間差および前記伝搬遅延時間に基づいて、前記タイマの時刻を補正する補正ステップと、
を備えることを特徴とする。
【0016】
本発明の第5の観点に係るプログラムは、コンピュータを、
時刻情報を生成するタイマ、
前記時刻情報を生成するためのクロックを発生させる発振器、
所定の間隔でカウントアップするカウンタ、
前記カウンタの値が所定の値を超えた場合に、前記マスタ装置が他のスレーブ装置と時刻同期を行っているビジー状態であるか否かを判定する判定手段、
前記判定手段が前記ビジー状態でないと判定した場合、前記マスタ装置に時刻同期の開始を要求する第1メッセージを送信する第1送信手段、
前記マスタ装置から、前記マスタ装置と前記スレーブ装置との間のオフセット時間差を求めるための第2メッセージと、前記第2メッセージが前記マスタ装置から送信された時刻を含むフォローアップメッセージとを受信する第1受信手段、
前記第1受信手段が前記第2メッセージを受信した時刻と、前記フォローアップメッセージに含まれる前記第2メッセージが前記マスタ装置から送信された時刻とに基づいて、前記オフセット時間差を算出するオフセット算出手段、
前記第1受信手段が前記マスタ装置から前記フォローアップメッセージを受信したのちに、前記マスタ装置に前記マスタ装置と前記スレーブ装置との間の伝搬遅延時間を求めるための第3メッセージを送信する第2送信手段、
前記マスタ装置から前記第3メッセージを前記マスタ装置が受信した時刻を含む第4メッセージを受信する第2受信手段、
前記第2送信手段が前記第3メッセージを送信した時刻と、前記第4メッセージに含まれる前記第3メッセージを前記マスタ装置が受信した時刻とに基づいて、前記伝搬遅延時間を算出する遅延時間算出手段、および、
前記オフセット時間差および前記伝搬遅延時間に基づいて、前記タイマの時刻を補正する補正手段、
として機能させることを特徴とする。
【発明の効果】
【0017】
本発明によれば、マスタ装置と複数のスレーブ装置とのネットワークを介する時刻同期において、スレーブ装置の初期起動時の時刻同期精度の低下を防ぎ、ネットワークへの負荷を軽減し、かつ、時刻同期までの時間を短縮することができる。
【図面の簡単な説明】
【0018】
【図1】本発明の実施の形態に係る電子機器システムの構成例を示すブロック図である。
【図2】PTPを用いた時刻同期を説明する図である。
【図3】実施の形態に係るスレーブ装置の構成の一例を示すブロック図である。
【図4】実施の形態に係る電子機器システムにおける時刻同期の一例を説明する図である。
【図5】実施の形態に係るスレーブ装置の時刻同期の動作の一例を示すフローチャートである。
【図6】実施の形態に係るスレーブ装置の判定処理の動作の一例を示すフローチャートである。
【図7】他の実施の形態に係るスレーブ装置の時刻同期の動作の一例を示すフローチャートである。
【図8】他の実施の形態に係るスレーブ装置の時刻同期の動作の一例を示すフローチャートである。
【図9】他の実施の形態に係る電子機器システムにおける時刻同期の一例を説明する図である。
【図10】実施の形態に係るスレーブ装置のハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【0019】
本実施の形態において、第1メッセージはAnnounce Message 1、第2メッセージはAnnounce Message 2、フォローアップメッセージはFollow Up Message、第3メッセージはDelay Request Message、第4メッセージはDelay Response Message、第5メッセージは、Announce Message 3である。
【0020】
以下、本発明を実施するための形態について図を参照して詳細に説明する。なお図中、同一または同等の部分には同一の符号を付す。
【0021】
図1は、本発明の実施の形態に係る電子機器システムの構成例を示すブロック図である。電子機器システム100は、ネットワーク上のマスタ装置M1とX個のスレーブ装置S1〜SXとから構成される。マスタ装置M1は、スレーブ装置S1〜SXに対してそれぞれパス21〜Xで接続されており、それぞれのスレーブ装置S1〜SXに対して時刻同期を行う。本実施の形態では、時刻同期としてIEEE1588を採用しており、PTPによって時刻同期を行う。PTPでは、システムが備えるすべての装置のタイマのうち、最も正確なタイマに同期する。すなわち、最も正確なタイマを有する装置をマスタ装置とし、それ以外の装置をスレーブ装置とする。このため、マスタ装置は変更される可能性がある。
【0022】
図2は、PTPを用いる時刻同期を説明する図である。IEEE1588規格で定義されたPTPによる時刻同期の一般的な動作フローの例を示す。ここでは、マスタ装置がSync Messageを送出したときのマスタ装置の時刻を00:00として説明する。まず、マスタ装置から時刻00:00にマスタ装置とスレーブ装置との間のオフセット時間差を求めるためのSync Messageをスレーブ装置へ送出する。次に、マスタ装置から時刻00:00にSync Messageを送出したことを伝えるFollow Up Messageをスレーブ装置へ送出する。
【0023】
スレーブ装置は、時刻00:06にSync Messageを受信し、時刻00:08にFollow UP Messageを受信する。スレーブ装置は、Sync Messageを受信した時刻00:06と、Follow UP Messageに含まれるマスタ装置からSync Messageが送出された時刻00:00とに基づいて、オフセット時間差{00:06−00:00=00:06}を算出し、時刻00:08からオフセット時間差00:06を引いて、時刻00:02にするオフセット補正を行なう。
【0024】
次に、マスタ装置とスレーブ装置の間の伝搬遅延時間を求めるために、スレーブ装置からオフセット補正後の時刻00:06にマスタ装置とスレーブ装置との間の伝搬遅延時間を求めるためのDelay Request Messageをマスタ装置へ送出する。マスタ装置は、時刻00:12にDelay Request Messageを受信したことを伝えるDelay Response Messageを時刻00:13にスレーブ装置へ送出する。
【0025】
スレーブ装置は、オフセット補正後の時刻00:13にDelay Response Messageを受信する。スレーブ装置は、Delay Request Messageを送信したオフセット補正後の時刻00:06と、Delay Response Messageに含まれるマスタ装置がDelay Request Messageを受信した時刻00:12とに基づいて、マスタ装置とスレーブ装置との伝搬遅延時間{(00:12−00:06)/2=00:03}を算出し、オフセット補正後の時刻00:15に伝搬遅延時間00:03を足して、時刻00:18にする伝搬遅延補正を行なう。以上によりマスタ装置とスレーブ装置の時刻同期が行なわれる。
【0026】
図3は、実施の形態に係るスレーブ装置の構成の一例を示すブロック図である。スレーブ装置S1は、カウンタ11、判定部12、送信部13、受信部14、発振器15、タイマ16および処理部17を備える。スレーブ装置S2〜SXも同様の構成である。
【0027】
カウンタ11は、スレーブ装置S1を起動すると、所定の間隔で(たとえば1秒ごと)にカウントアップする。カウンタ11は、カウンタ値を判定部12に送る。
【0028】
判定部12は、カウンタ11から受け取ったカウンタ値が所定の値以上になった場合、マスタ装置M1が他のスレーブ装置と時刻同期を行っているビジー状態であるか否かを判定する判定処理を行う。所定の値とは、たとえば、タイマ16にクロックを供給する発振器15が安定するまでの時間を示す値、あるいは、発振器15が安定する時間から判定処理を実行する最短時間を引いた時間を示す値であって、あらかじめ設定されている。
【0029】
送信部13は、マスタ装置M1に各種Messageを送信する。送信部13は、判定部12がビジー状態でないと判定した場合に、時刻同期の開始を要求するAnnounce Message 1をマスタ装置M1に送信する。送信部13は、判定部12がビジー状態であると判定した場合は、Announce Message 1をマスタ装置M1に送信しない。
【0030】
受信部14は、マスタ装置M1から各種メッセージを受信する。受信部14は、マスタ装置M1から、マスタ装置M1とスレーブ装置S1との間のオフセット時間差を求めるためのAnnounce Message 2を受信し、Announce Message 2がマスタ装置M1から送信された時刻を含むFollow UP Messageを受信する。受信部14は、マスタ装置M1から受信したAnnounce Message 2およびFollow UP Messageを処理部17に送る。
【0031】
送信部13は、受信部14がマスタ装置M1からFollow UP Messageを受信すると、送信部13は、マスタ装置M1とスレーブ装置S1との間の伝搬遅延時間を求めるためのDelay Request Messageをマスタ装置M1に送信する。
【0032】
受信部14は、マスタ装置M1がDelay Request Messageを受信した時刻を含むDelay Response Messageを受信する。受信部14は、マスタ装置M1から受信したDelay Response Messageを処理部17に送る。また、受信部14は、マスタ装置M1からビジー状態であることを示すAnnounce Message 3を受信した場合は、Announce Message 3を判定部12に送る。
【0033】
送信部13は、判定部12がビジー状態でないと判定してから、時刻同期のための各Messageを送信するので、衝突を考慮する必要がなく、通常の時刻パケット通信よりも送信間隔を短くして送信することができる。
【0034】
発振器15は、時刻情報を生成するためのクロックを発生させてタイマ16に供給する。
【0035】
タイマ16は、発振器15から供給されるクロックに基づいて計時し、時刻情報を生成する。なお、タイマ16はカウンタ11により構成され、カウンタ11は、発振器15が発生させるクロックに従ってカウントアップしてもよい。
【0036】
処理部17は、受信部14から受け取ったFollow UP Messageに含まれるAnnounce Message 2がマスタ装置M1から送信された時刻と、受信部14がAnnounce Message 2を受信した時刻との差に基づいて、オフセット時間差を算出し、タイマ16の時刻のオフセット補正を行う。また、処理部17は、受信部14から受け取ったDelay Response Messageに含まれるマスタ装置M1がDelay Request Messageを受信した時刻と、送信部13がDelay Request Messageを送信した時刻との差に基づいて、伝搬遅延時間を算出し、タイマ16の伝搬時間補正を行う。このようにして、処理部17は、タイマ16の時刻とマスタ装置M1の時刻とを同期させる。
【0037】
図4は、実施の形態に係る電子機器システムにおける時刻同期を説明する図である。図4の例では、便宜上、電子機器システム100は、マスタ装置1とスレーブ装置S1およびスレーブ装置S2とで構成され、スレーブ装置S1の時刻同期を実行する場合を示す。
【0038】
スレーブ装置S1が起動すると、カウンタ11がカウントアップを開始する。カウンタ11のカウンタ値がN以上になってから、受信部14がAnnounce Message 3を受信せずに所定の時間(10秒)経過すると、判定部12は、マスタ装置M1が他のスレーブ装置と時刻同期を行っているビジー状態ではないと判定する。カウンタ値Nは、タイマ16にクロックを供給する発振器15が安定するまでの時間を示す値、あるいは、発振器15が安定する時間から判定処理を実行する最短時間を引いた時間を示す値である。
【0039】
判定部12がビジー状態ではないと判定した時刻00:15に、送信部13は、時刻同期の開始を要求するAnnounce Message 1をマスタ装置M1に送信する。マスタ装置M1は、時刻00:03にAnnounce Message 1を受信すると、時刻00:04に、マスタ装置M1とスレーブ装置S1との間のオフセット時間差を求めるためのAnnounce Message 2をスレーブ装置S1に対して送信する。同時に、マスタ装置M1がビジー状態になったことを示すAnnounce Message 3をスレーブ装置S2に対して送信する。そして、Announce Message 2を送出した時刻00:04を含むFollow UP Messageを時刻00:05にスレーブ装置S1へ送出する。
【0040】
スレーブ装置S1の受信部14は、時刻00:22にAnnounce Message 2を受信し、時刻00:23にFollow UP Messageを受信する。処理部17は、受信部14がAnnounce Message 2を受信した時刻00:22と、Follow UP Messageに含まれるマスタ装置からAnnounce Message 2が送信された時刻00:04とに基づいて、マスタ装置とのオフセット時間差{00:22−00:04=00:18}を算出し、時刻00:23からオフセット時間差00:18を引いて、時刻00:05にするオフセット補正を行なう。
【0041】
次に、スレーブ装置S1の送信部13は、オフセット補正後の時刻00:06にマスタ装置とスレーブ装置の間の伝搬遅延時間を求めるためのDelay Request Messageをマスタ装置M1に送信する。マスタ装置は、Delay Request Messageを受信した時刻00:12を含むDelay Response Messageを時刻00:13にスレーブ装置S1に送信する。
【0042】
スレーブ装置S1の受信部14は、オフセット補正後の時刻00:13にDelay Response Messageを受信する。処理部17は、送信部13がDelay Request Messageを送信したオフセット補正後の時刻00:06と、Delay Response Messageに含まれるマスタ装置M1がDelay Request Messageを受信した時刻00:12とに基づいて、マスタ装置M1とスレーブ装置S1との伝搬遅延時間{(00:12−00:06)/2=00:03}を算出し、オフセット補正後の時刻00:15に伝搬遅延時間00:03を足して、時刻00:18にする伝搬遅延補正を行なう。以上によりマスタ装置とスレーブ装置の時刻同期が行なわれる。
【0043】
一方、スレーブ装置S2は、カウンタ11のカウンタ値がN以上になってから、所定の時間(10秒)が経過するよりも前の時刻00:02にマスタ装置M1からAnnounce Message 3を受信する。これにより、判定部12は、ビジー状態であると判定する。その後、所定の時間(10秒)が経過する時刻00:12までにAnnounce Message 3を受信しないので、判定部12は、ビジー状態が解除されたと判定する。判定部12がビジー状態でないと判定したので、送信部13は、時刻00:13に時刻同期の開始を要求するAnnounce Message 1をマスタ装置M1に送信する。
【0044】
図5は、実施の形態に係るスレーブ装置の時刻同期の動作の一例を示すフローチャートである。ここでは、スレーブ装置S1の時刻同期の動作の一例を説明する。スレーブ装置S2〜SXも同様の時刻同期の動作を行う。スレーブ装置S1の電源が起動すると同時にスレーブ装置S1内部のカウンタ11が起動し(ステップS11)、カウントアップを開始する。カウンタ値がN以上になっていない場合には(ステップS12;NO)、発振器15の安定度が悪く時刻同期に使用できないものとし、時刻同期を開始せずにステップS12を繰り返す。カウンタ値Nは、タイマ16にクロックを供給する発振器15が安定するまでの時間を示す値、あるいは、発振器15が安定する時間から判定処理を実行する最短時間を引いた時間を示す値である。
【0045】
カウンタ値がN以上になった場合には(ステップS12;YES)、発振器15の安定度が時刻同期に使用できる安定度に達したものとし、判定部12は、マスタ装置M1が他のスレーブ装置と時刻同期を行っているビジー状態であるか否かを判定する(ステップS13)。
【0046】
判定部12がビジー状態であると判定した場合(ステップS13;YES)、マスタ装置M1のビジー状態が解除されるまで、ステップS13を繰り返す。判定部12がビジー状態でないと判定した場合(ステップS13;NO)、送信部13は、時刻同期の開始を要求するAnnounce Message 1をマスタ装置M1に送信する(ステップS14)。
【0047】
マスタ装置M1は、スレーブ装置S1からのAnnounce Message 1を受信すると、マスタ装置M1とスレーブ装置S1との間のオフセット時間差を求めるためのAnnounce Message 2をスレーブ装置S1に対して送信する。同時に、マスタ装置M1がビジー状態になったことを示すAnnounce Message 3をその他のスレーブ装置に対して送信する。あるいは、マスタ装置M1は、ステーブ装置S1との時刻同期を開始してビジー状態になったことを、その他のスレーブ装置に報知するために、ステーブ装置S1を宛先とするAnnounce Message 2をブロードキャストしてもよい。そして、マスタ装置M1は、Announce Message 2を送信した時刻を含むFollow UP Messageをスレーブ装置S1に送信する。
【0048】
マスタ装置M1は、複数のスレーブ装置からAnnounce Message 1を同時に受信した場合は、これらのスレーブ装置のうちいずれかを無作為に選出し、選出したスレーブ装置に対してAnnounce Message 2を送信してもよい。この場合、マスタ装置M1は、選出しなかったスレーブ装置に対してAnnounce Message 3を送信する。選出されなかったスレーブ装置は、Announce Message 3を受信すると、マスタ装置M1がビジー状態であると判定し、その後マスタ装置M1がビジー状態でなくなったと判定した場合にあらためてAnnounce Message 1を送信する。
【0049】
スレーブ装置S1の受信部14がマスタ装置M1からAnnounce Message 2を受信し(ステップS15)、マスタ装置M1からAnnounce Message 2が送信された時刻を含むFollow UP Messageを受信すると(ステップS16)、処理部17は、Follow UP Messageに含まれるマスタ装置M1からAnnounce Message 2が送信された時刻と、受信部14がAnnounce Message 2を受信した時刻とに基づいてオフセット時間差を算出し(ステップS17)、タイマ16のオフセット補正を行う(ステップS18)。
【0050】
次に、送信部13は、マスタ装置M1とスレーブ装置S1との間の伝搬遅延時間を求めるためのDelay Request Messageを通常の時刻パケット通信よりも短い送信間隔でマスタ装置M1に送信する(ステップS19)。ここでの送信間隔とは、受信部14がFollow UP Messageを受信してから送信部13がDelay Request Messageを送信するまでの時間である。他のスレーブ装置からマスタ装置M1にMessageが送信されることがないので、通常の時刻パケット通信よりも送信間隔を短くしたDelay Request Messageをマスタ装置M1に送信することが可能となる。これにより、時刻同期完了までの期間を通常よりも短くすることが可能となる。
【0051】
マスタ装置M1は、スレーブ装置S1からのDelay Request Messageを受信すると、Delay Request Messageを受信した時刻を含むDelay Response Messageをスレーブ装置S1に送信する。
【0052】
スレーブ装置S1の受信部14がマスタ装置M1からDelay Response Messageを受信すると(ステップS20)、処理部17は、Delay Response Messageに含まれるマスタ装置M1がDelay Request Messageを受信した時刻と、送信部13がDelay Request Messageを送信した時刻とに基づいて伝搬遅延時間を算出し(ステップS21)、タイマ16の伝搬遅延補正を行い(ステップS22)、処理を終了する。
【0053】
図6は、実施の形態に係るスレーブ装置の判定処理の動作の一例を示すフローチャートである。ここでは、スレーブ装置S1が図6のステップS13行う判定処理の動作の一例を説明する。スレーブ装置S2〜SXも同様の判定処理の動作を行う。スレーブ装置S1の受信部14がマスタ装置M1からAnnounce Message 3を受信した場合(ステップS31;YES)、判定部12は、ビジー状態であると判定し(ステップS32)、ステップS33を実行する。受信部14がマスタ装置M1からAnnounce Message 3を受信しない場合(ステップS31;NO)、所定の時間経過したか否かを判定する(ステップS33)。
【0054】
ここでの所定の時間とは、マスタ装置M1からAnnounce Message 3が送信される間隔の最大値よりも長い時間である。図5のフローのように、ステップS18〜ステップS20を1度のみ実行することが決まっている場合は、Announce Message 3が送信されてから時刻同期が終了するまでの時間の最大値よりも長い時間に設定する。すなわち、所定の時間とは、マスタ装置M1のビジー状態が解除されたと想定しうる時間である。
【0055】
所要時間が経過していない場合には(ステップS33;NO)、ステップS31に戻り、ステップS31〜ステップS33を繰り返す。所要時間が経過した場合には(ステップS33;YES)、ビジー状態でないと判定し(ステップS34)、処理を終了する。
【0056】
以上説明したように、本実施の形態の電子機器システム100によれば、スレーブ装置の電源起動後の発振器が安定するまでの所定の時間はマスタ装置との時刻パケット通信を実施しないようにしたことにより、初期起動時の時刻同期精度の劣化を防ぐことができ、ネットワークへの負荷を軽減することができる。さらに、マスタ装置がビジー状態でないことを確認してから、時刻同期を開始するので、衝突を考慮する必要がなく、通常の時刻パケット通信よりも送信間隔を短くしてメッセージを送信することができ、時刻同期までの時間を短縮することができる。
【0057】
上述の実施の形態では、スレーブ装置は、発振器15が安定するのを待って、時刻同期を行った。しかし本発明はこれに限らず、発振器15が安定する前から伝搬遅延時間の算出を繰り返し行って、所定の回数行ったときに、その結果から発振器15が安定したときの伝搬遅延時間を予測してもよい。また、発振器15が安定する前から伝搬遅延時間の算出を繰り返し行って、前回の伝搬遅延時間と今回の伝搬遅延時間との差が閾値以下になった場合に、伝搬遅延時間の算出の繰り返しを終了してもよい。
【0058】
図7は、他の実施の形態に係るスレーブ装置の時刻同期の動作の一例を示すフローチャートである。図7の実施の形態では、発振器15が安定する前から伝搬遅延時間の算出を繰り返し行って、所定の回数行ったときに、その結果から発振器15が安定したときの伝搬遅延時間を予測する。ここでは、スレーブ装置S1の時刻同期の動作の一例を説明する。スレーブ装置S2〜SXも同様の時刻同期の動作を行う。スレーブ装置S1の電源が起動すると同時にスレーブ装置S1内部のカウンタ11が起動し(ステップS41)、カウントアップを開始する。カウンタ値がN1以上になっていない場合には(ステップS42;NO)、ステップS42を繰り返す。カウンタ値N1は、発振器15が安定する時間よりも短い時間を示す値、あるいは、発振器15が安定する時間から判定処理を実行する最短時間を引いた時間よりも短い時間を示す値である。
【0059】
カウンタ値がN1以上になった場合には(ステップS42;YES)、判定部12は、マスタ装置M1が他のスレーブ装置と時刻同期を行っているビジー状態であるか否かを判定する(ステップS43)。判定部12がビジー状態であると判定した場合(ステップS43;YES)、マスタ装置M1のビジー状態が解除されるまで、ステップS43を繰り返す。マスタ装置M1がビジー状態でない場合(ステップS43;NO)、送信部13は、時刻同期の開始を要求するAnnounce Message 1をマスタ装置M1に送信する(ステップS44)。
【0060】
マスタ装置M1は、スレーブ装置S1からのAnnounce Message 1を受信すると、マスタ装置M1とスレーブ装置S1との間のオフセット時間差を求めるためのAnnounce Message 2をスレーブ装置S1に対して送信する。同時に、マスタ装置M1がビジー状態になったことを示すAnnounce Message 3をその他のスレーブ装置に対して送信する。あるいは、マスタ装置M1は、ステーブ装置S1との時刻同期を開始してビジー状態になったことを、その他のスレーブ装置に報知するために、ステーブ装置S1を宛先とするAnnounce Message 2をブロードキャストしてもよい。そして、マスタ装置M1は、Announce Message 2を送信した時刻を含むFollow UP Messageをスレーブ装置S1に送信する。
【0061】
スレーブ装置S1の受信部14がマスタ装置M1からAnnounce Message 2を受信し(ステップS45)、マスタ装置M1からAnnounce Message 2が送信された時刻を含むFollow UP Messageを受信すると(ステップS46)、処理部17は、Follow UP Messageに含まれるマスタ装置M1からAnnounce Message 2が送信された時刻と、受信部14がAnnounce Message 2を受信した時刻とに基づいてオフセット時間差を算出し(ステップS47)、タイマ16のオフセット補正を行う(ステップS48)。
【0062】
次に、送信部13は、マスタ装置M1とスレーブ装置S1との間の伝搬遅延時間を求めるためのDelay Request Messageを通常の時刻パケット通信よりも短い送信間隔でマスタ装置M1に送信する(ステップS49)。ここでの送信間隔とは、受信部14がFollow UP Messageを受信してから送信部13がDelay Request Messageを送信するまでの時間である。
【0063】
マスタ装置M1は、スレーブ装置S1からのDelay Request Messageを受信すると、Delay Request Messageを受信した時刻を含むDelay Response Messageをスレーブ装置S1に送信する。同時に、マスタ装置M1がビジー状態であることを示すAnnounce Message 3をその他のスレーブ装置に対して送信する。あるいは、マスタ装置M1は、ステーブ装置S1との時刻同期のためビジー状態であることを、その他のスレーブ装置に報知するために、ステーブ装置S1を宛先とするDelay Response Messageをブロードキャストしてもよい。
【0064】
スレーブ装置S1の受信部14がマスタ装置M1からDelay Response Messageを受信すると(ステップS50)、処理部17は、送信部13がDelay Request Messageを送信した時刻と、Delay Response Messageに含まれるマスタ装置M1がDelay Request Messageを受信した時刻とに基づいて伝搬遅延時間を算出する(ステップS51)。ステップS49〜ステップS51を所定の回数繰り返していない場合(ステップS52;NO)、ステップS49に戻り、ステップS49〜ステップS52を繰り返す。ステップS49〜ステップS51を所定の回数繰り返した場合(ステップS52;YES)、処理部17は、タイマ16の伝搬遅延補正を行う(ステップS52)。こうして、所定の回数分の伝搬遅延時間が算出される。
【0065】
処理部17は、所定の回数分の伝搬遅延時間から、発振器15が安定したときの伝搬遅延時間を予測し(ステップS53)、予測した伝搬遅延時間に基づいて、タイマ16の伝搬遅延補正を行い(ステップS54)、処理を終了する。
【0066】
所定の回数は、発振器15が安定したときの同期時刻を予測可能な程度の回数であればよい。また、処理部17は、発振器15が安定したときの伝搬遅延時間を予測して伝搬遅延補正を行うとともに、伝搬遅延補正の補正値に基づいて、発振器15が安定しないことによる誤差を算出し、改めてオフセット補正を行ってもよい。
【0067】
図7の例では、所定の回数ステップS49〜ステップS52を繰り返す。このとき、送信部13は、通常の時刻パケット通信よりも短い送信間隔でDelay Request Messageをマスタ装置M1に送信する。ここでの送信間隔とは、受信部14がDelay Response Messageを受信してから送信部13が次のDelay Request Messageを送信するまでの時間である。
【0068】
この実施の形態によれば、スレーブ装置の発振器15が安定する前から複数回伝搬遅延時間を算出し、その伝搬遅延時間の変移から発振器15が安定したときの伝搬遅延時間を予測することにより、時刻同期までの時間をさらに短縮することができる。
【0069】
図8は、他の実施の形態に係るスレーブ装置の時刻同期の動作の一例を示すフローチャートである。図8の実施の形態では、発振器15が安定する前から伝搬遅延時間の算出を繰り返し行って、前回の伝搬遅延時間と今回の伝搬遅延時間との差が閾値以下になった場合に、伝搬遅延時間の算出の繰り返しを終了する。ここでは、スレーブ装置S1の時刻同期の動作の一例を説明する。スレーブ装置S2〜SXも同様の時刻同期の動作を行う。スレーブ装置S1の電源が起動すると同時にスレーブ装置S1内部のカウンタ11が起動し(ステップS61)、カウントアップを開始する。カウンタ値がN1以上になっていない場合には(ステップS62;NO)、ステップS62を繰り返す。カウンタ値N1は、発振器15が安定する時間よりも短い時間を示す値、あるいは、発振器15が安定する時間から判定処理を実行する最短時間を引いた時間よりも短い時間を示す値である。
【0070】
カウンタ値がN1以上になった場合には(ステップS62;YES)、判定部12は、マスタ装置M1が他のスレーブ装置と時刻同期を行っているビジー状態であるか否かを判定する(ステップS63)。判定部12がビジー状態であると判定した場合(ステップS63;YES)、マスタ装置M1のビジー状態が解除されるまで、ステップS63を繰り返す。マスタ装置M1がビジー状態でない場合(ステップS63;NO)、送信部13は、時刻同期の開始を要求するAnnounce Message 1をマスタ装置M1に送信する(ステップS64)。
【0071】
マスタ装置M1は、スレーブ装置S1からのAnnounce Message 1を受信すると、マスタ装置M1とスレーブ装置S1との間のオフセット時間差を求めるためのAnnounce Message 2をスレーブ装置S1に対して送信する。同時に、マスタ装置M1がビジー状態になったことを示すAnnounce Message 3をその他のスレーブ装置に対して送信する。あるいは、マスタ装置M1は、ステーブ装置S1との時刻同期を開始してビジー状態になったことを、その他のスレーブ装置に報知するために、ステーブ装置S1を宛先とするAnnounce Message 2をブロードキャストしてもよい。そして、マスタ装置M1は、Announce Message 2を送信した時刻を含むFollow UP Messageをスレーブ装置S1に送信する。
【0072】
スレーブ装置S1の受信部14がマスタ装置M1からAnnounce Message 2を受信し(ステップS65)、マスタ装置M1からAnnounce Message 2が送信された時刻を含むFollow UP Messageを受信すると(ステップS66)、処理部17は、Follow UP Messageに含まれるマスタ装置M1からAnnounce Message 2が送信された時刻と、受信部14がAnnounce Message 2を受信した時刻とに基づいてオフセット時間差を算出し(ステップS67)、タイマ16のオフセット補正を行う(ステップS68)。
【0073】
次に、送信部13は、マスタ装置M1とスレーブ装置S1との間の伝搬遅延時間を求めるためのDelay Request Messageを通常の時刻パケット通信よりも短い送信間隔でマスタ装置M1に送信する(ステップS69)。ここでの送信間隔とは、受信部14がFollow UP Messageを受信してから送信部13がDelay Request Messageを送信するまでの時間である。
【0074】
マスタ装置M1は、スレーブ装置S1からのDelay Request Messageを受信すると、Delay Request Messageを受信した時刻を含むDelay Response Messageをスレーブ装置S1に送信する。同時に、マスタ装置M1がビジー状態であることを示すAnnounce Message 3をその他のスレーブ装置に対して送信する。あるいは、マスタ装置M1は、ステーブ装置S1との時刻同期のためビジー状態であることを、その他のスレーブ装置に報知するために、ステーブ装置S1を宛先とするDelay Response Messageをブロードキャストしてもよい。
【0075】
スレーブ装置S1の受信部14がマスタ装置M1からDelay Response Messageを受信すると(ステップS70)、処理部17は、送信部13がDelay Request Messageを送信した時刻と、Delay Response Messageに含まれるマスタ装置M1がDelay Request Messageを受信した時刻とに基づいて伝搬遅延時間を算出する(ステップS71)。前回算出した伝搬遅延時間と、今回算出した伝搬遅延時間との差が閾値(たとえば1秒)以下でなかった場合(ステップS72;NO)、ステップS69に戻り、ステップS69〜ステップS72を繰り返す。前回算出した伝搬遅延時間と、今回算出した伝搬遅延時間との差が閾値(たとえば1秒)以下であった場合(ステップS72;YES)、処理部17は、今回算出した伝搬遅延時間に基づいて、タイマ16の伝搬遅延補正を行い(ステップS73)、処理を終了する。
【0076】
ステップS51で判定する閾値は、0以上の値であって、求められている時刻同期精度の許容範囲内であればよい。また、処理部17は、値が収束した伝搬遅延時間に基づいて伝搬遅延補正を行うとともに、伝搬遅延補正の補正値に基づいて、発振器15が安定しないことによる誤差を算出し、改めてオフセット補正を行ってもよい。
【0077】
図8の例では、ステップS69〜ステップS72を繰り返す。このとき、送信部13は、通常の時刻パケット通信よりも短い送信間隔でDelay Request Messageをマスタ装置M1に送信する。ここでの送信間隔とは、受信部14がDelay Response Messageを受信してから送信部13が次のDelay Request Messageを送信するまでの時間である。
【0078】
この実施の形態によれば、スレーブ装置の発振器15が安定する前から伝搬遅延時間の算出を繰り返し行い、その伝搬遅延時間の値が所定の範囲まで収束したときの伝搬遅延時間の算出の繰り返しを終了することにより、時刻同期までの時間をさらに短縮することができる。
【0079】
図9は、他の実施の形態に係る電子機器システムにおける時刻同期を説明する図である。図6、図7および図8のフローチャートを参照しながら、図9を用いて本実施の形態に係る電子機器システム100における時刻同期の動作フローの例を説明する。図9の例では、便宜上、電子機器システム100は、マスタ装置1とスレーブ装置S1およびスレーブ装置S2とで構成され、スレーブ装置S1の時刻同期を実行する場合を示す。
【0080】
スレーブ装置S1が起動し(ステップS41、ステップS61)、スレーブ装置S1のカウンタ11のカウンタ値がN以上になり(ステップS42、ステップS62;YES)、Announce Message 3を受信せずに(ステップS31;NO)、所定の時間(12秒)経過すると(ステップS33;NO)、判定部12は、マスタ装置M1はビジー状態ではないと判定する(ステップS43、ステップS63;NO)。判定部12がビジー状態ではないと判定した時刻00:15に、送信部13は、時刻同期の開始を要求するAnnounce Message 1をマスタ装置M1に送信する(ステップS44、ステップS64)。マスタ装置M1は、時刻00:03にAnnounce Message 1を受信すると、時刻00:04に、マスタ装置M1とスレーブ装置S1との間のオフセット時間差を求めるためのAnnounce Message 2をスレーブ装置S1に対して送信する。同時に、マスタ装置M1がビジー状態になったことを示すAnnounce Message 3をスレーブ装置S2に対して送信する。そして、Announce Message 2を送出した時刻00:04を含むFollow UP Messageを時刻00:05にスレーブ装置S1へ送出する。
【0081】
スレーブ装置S1の受信部14は、時刻00:22にAnnounce Message 2を受信し(ステップS45、ステップS65)、時刻00:23にFollow UP Messageを受信する(ステップS46、ステップS66)。処理部17は、受信部14がAnnounce Message 2を受信した時刻00:22と、Follow UP Messageに含まれるマスタ装置からAnnounce Message 2が送信された時刻00:04とに基づいて、マスタ装置とのオフセット時間差{00:22−00:04=00:18}を算出し(ステップS47、ステップS67)、時刻00:23からオフセット時間差00:18を引いて、時刻00:05にするオフセット補正を行なう(ステップS48、ステップS68)。
【0082】
次に、スレーブ装置S1の送信部13は、オフセット補正後の時刻00:06にマスタ装置とスレーブ装置の間の伝搬遅延時間を求めるためのDelay Request Messageをマスタ装置M1に送信する(ステップS49、ステップS69)。マスタ装置は、Delay Request Messageを受信した時刻00:12を含むDelay Response Messageを時刻00:13にスレーブ装置S1に送信する。
【0083】
スレーブ装置S1の受信部14は、オフセット補正後の時刻00:13にDelay Response Messageを受信する(ステップS50、ステップS70)。処理部17は、送信部13がDelay Request Messageを送信したオフセット補正後の時刻00:06と、Delay Response Messageに含まれるマスタ装置M1がDelay Request Messageを受信した時刻00:12とに基づいて、マスタ装置M1とスレーブ装置S1との伝搬遅延時間{(00:12−00:06)/2=00:03}を算出する(ステップS51、ステップS71)。
【0084】
ここで、所定の回数(2回)伝搬遅延時間の算出を繰り返していない(ステップS52;NO)、あるいは、前回算出した伝搬遅延時間がないので(ステップS72;NO)、スレーブ装置S1の送信部13は、オフセット補正後の時刻00:13にマスタ装置とスレーブ装置の間の伝搬遅延時間を求めるためのDelay Request Messageをマスタ装置M1に再度送信する(ステップS49、ステップS69)。マスタ装置は、Delay Request Messageを受信した時刻00:20を含むDelay Response Messageを時刻00:21にスレーブ装置S1に送信する。
【0085】
スレーブ装置S1の受信部14は、オフセット補正後の時刻00:21にDelay Response Messageを受信する(ステップS50、ステップS70)。処理部17は、送信部13がDelay Request Messageを送信したオフセット補正後の時刻00:14と、Delay Response Messageに含まれるマスタ装置M1がDelay Request Messageを受信した時刻00:20とに基づいて、マスタ装置M1とスレーブ装置S1との伝搬遅延時間{(00:20−00:14)/2=00:03}を算出する(ステップS51、ステップS71)。
【0086】
所定の回数(2回)伝搬遅延時間の算出を繰り返した(ステップS52;YES)、ので、1回目に算出した伝搬遅延時間3秒と、2回目に算出した伝搬遅延時間3秒とに基づいて、発振器15が安定したときの伝搬遅延時間は3秒と予測する(ステップS53)。
【0087】
あるいは、前回算出した伝搬遅延時間3秒と、今回算出した伝搬遅延時間3秒との差が閾値(1秒)以下であるので(ステップS72;YES)、伝搬遅延時間は3秒とする。
【0088】
処理部17は、オフセット補正後の時刻00:23に伝搬遅延時間00:03を足して、時刻00:26にする伝搬遅延補正を行なう(ステップS54、ステップS73)。以上によりマスタ装置とスレーブ装置の時刻同期が行なわれる。
【0089】
一方、スレーブ装置S2は、カウンタ11のカウンタ値がN以上になってから(ステップS42、ステップS62;YES)、所定の時間(12秒)が経過するよりも前の時刻00:02にマスタ装置M1からAnnounce Message 3を受信する(ステップS31;YES)。これにより、判定部12は、ビジー状態であると判定する(ステップS32)。また、所定の時間(12秒)が経過する前の時刻00:13にマスタ装置M1からAnnounce Message 3を受信する(ステップS31)。これにより、判定部12は、ビジー状態であると判定する(ステップS32)。さらに、所定の時間(12秒)が経過する前の時刻00:21にマスタ装置M1からAnnounce Message 3を受信する(ステップS31)。これにより、判定部12は、ビジー状態であると判定する(ステップS32)。そして、所定の時間(12秒)が経過する時刻00:33までにAnnounce Message 3を受信していないので(ステップS33;YES)、判定部12は、マスタ装置M1のビジー状態が解除されたと判定する(ステップS34)。判定部12がビジー状態でないと判定したので、送信部13は、時刻00:34に時刻同期の開始を要求するAnnounce Message 1をマスタ装置M1に送信する(ステップS44、ステップS64)。
【0090】
図10は、実施の形態に係るスレーブ装置のハードウェア構成例を示すブロック図である。スレーブ装置S1〜SXは、図10に示すように、制御部31、主記憶部32、外部記憶部33、操作部34、表示部35および発振器36を備える。主記憶部32、外部記憶部33、操作部34、表示部35および発振器36はいずれも内部バス30を介して制御部31に接続されている。
【0091】
制御部31はCPU(Central Processing Unit)等から構成され、外部記憶部33に記憶されている制御プログラム30に従って、カウンタ11、送信部13、受信部14、タイマ16および処理部17の各処理を実行する。
【0092】
主記憶部32はRAM(Random-Access Memory)等から構成され、外部記憶部33に記憶されている制御プログラム30をロードし、制御部31の作業領域として用いられる。
【0093】
外部記憶部33は、フラッシュメモリ、ハードディスク、DVD−RAM(Digital Versatile Disc Random-Access Memory)、DVD−RW(Digital Versatile Disc ReWritable)等の不揮発性メモリから構成され、スレーブ装置S1〜SXの処理を制御部31に行わせるためのプログラムをあらかじめ記憶し、また、制御部31の指示に従って、このプログラムが記憶するデータを制御部31に供給し、制御部31から供給されたデータを記憶する。
【0094】
操作部34はキーボードやテンキーなどのポインティングデバイス等と、キーボードやテンキー等を内部バス30に接続するインタフェース装置から構成されている。さらに操作部34は音声入力装置を備えることとしてもよい。ユーザがカウンタ値Nや閾値時刻同期の間隔αなどの入力を行う場合は、操作部34を介して、指示が制御部31に供給される。
【0095】
表示部35は、CRT(Cathode Ray Tube)またはLCD(Liquid Crystal Display)などから構成され、制御部31から送られてきた情報を表示する。ユーザがカウンタ値Nや閾値時刻同期の間隔αなどの入力を行う場合は、表示部35は、操作画面を表示する。
【0096】
発振器37は、所定の周波数のクロックを発生させて、制御部31に供給する。発振器37は、発振器15として機能する。
【0097】
図3に示すスレーブ装置S1(スレーブ装置S2〜SX)のカウンタ11、送信部13、受信部14、発振器15、タイマ16および処理部17の処理は、制御プログラム30が、制御部31、主記憶部32、外部記憶部33、操作部34、表示部35、発振器36および発振器37などを資源として用いて処理することによって実行する。
【0098】
その他、前記のハードウェア構成やフローチャートは一例であり、任意に変更および修正が可能である。
【0099】
制御部31、主記憶部32、外部記憶部33、操作部34、内部バス30などから構成される時刻同期処理を行う中心となる部分は、専用のシステムによらず、通常のコンピュータシステムを用いて実現可能である。たとえば、前記の動作を実行するためのコンピュータプログラムを、コンピュータが読み取り可能な記録媒体(フレキシブルディスク、CD−ROM、DVD−ROM等)に格納して配布し、当該コンピュータプログラムをコンピュータにインストールすることにより、前記の処理を実行するスレーブ装置S1〜SXを構成してもよい。また、インターネット等の通信ネットワーク上のサーバ装置が有する記憶装置に当該コンピュータプログラムを格納しておき、通常のコンピュータシステムがダウンロード等することでスレーブ装置S1〜SXを構成してもよい。
【0100】
また、スレーブ装置S1〜SXの機能を、OS(オペレーティングシステム)とアプリケーションプログラムの分担、またはOSとアプリケーションプログラムとの協働により実現する場合などには、アプリケーションプログラム部分のみを記録媒体や記憶装置に格納してもよい。
【0101】
また、搬送波にコンピュータプログラムを重畳し、通信ネットワークを介して配信することも可能である。たとえば、通信ネットワーク上の掲示板(BBS, Bulletin Board System)に前記コンピュータプログラムを掲示し、ネットワークを介して前記コンピュータプログラムを配信してもよい。そして、このコンピュータプログラムを起動し、OSの制御下で、他のアプリケーションプログラムと同様に実行することにより、前記の処理を実行できるように構成してもよい。
【0102】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【0103】
(付記1)
マスタ装置とネットワークを介して時刻同期を行うスレーブ装置であって、
時刻情報を生成するタイマと、
前記時刻情報を生成するためのクロックを発生させる発振器と、
所定の間隔でカウントアップするカウンタと、
前記カウンタの値が所定の値を超えた場合に、前記マスタ装置が他のスレーブ装置と時刻同期を行っているビジー状態であるか否かを判定する判定手段と、
前記判定手段が前記ビジー状態でないと判定した場合、前記マスタ装置に時刻同期の開始を要求する第1メッセージを送信する第1送信手段と、
前記マスタ装置から、前記マスタ装置と前記スレーブ装置との間のオフセット時間差を求めるための第2メッセージと、前記第2メッセージが前記マスタ装置から送信された時刻を含むフォローアップメッセージとを受信する第1受信手段と、
前記第1受信手段が前記第2メッセージを受信した時刻と、前記フォローアップメッセージに含まれる前記第2メッセージが前記マスタ装置から送信された時刻とに基づいて、前記オフセット時間差を算出するオフセット算出手段と、
前記第1受信手段が前記マスタ装置から前記フォローアップメッセージを受信したのちに、前記マスタ装置に前記マスタ装置と前記スレーブ装置との間の伝搬遅延時間を求めるための第3メッセージを送信する第2送信手段と、
前記マスタ装置から前記第3メッセージを前記マスタ装置が受信した時刻を含む第4メッセージを受信する第2受信手段と、
前記第2送信手段が前記第3メッセージを送信した時刻と、前記第4メッセージに含まれる前記第3メッセージを前記マスタ装置が受信した時刻とに基づいて、前記伝搬遅延時間を算出する遅延時間算出手段と、
前記オフセット時間差および前記伝搬遅延時間に基づいて、前記タイマの時刻を補正する補正手段と、
を備えることを特徴とするスレーブ装置。
【0104】
(付記2)
前記第2送信手段が、前記マスタ装置に前記第3メッセージを送信し、
前記第2受信手段が、前記マスタ装置から前記第4メッセージを受信し、および、
前記遅延時間算出手段が、前記第2送信手段が前記第3メッセージを送信した時刻と、前記第4メッセージに含まれる前記第3メッセージを前記マスタ装置が受信した時刻とに基づいて、前記伝搬遅延時間を算出する、
伝搬遅延時間算出処理を所定の周期で繰り返し、
前記補正手段は、前記オフセット時間差と、前記伝搬遅延時間算出処理で算出した複数の前記伝搬遅延時間とに基づいて、前記タイマの時刻を補正することを特徴とする付記1に記載のスレーブ装置。
【0105】
(付記3)
前記伝搬遅延時間算出処理を繰り返し、前記伝搬遅延時間算出処理を所定の回数行って算出した複数の前記伝搬遅延時間に基づいて、前記発振器が安定したときの前記伝搬遅延時間を予測する予測手段をさらに備え、
前記補正手段は、前記オフセット時間差と、前記予測手段が予測した前記伝搬遅延時間とに基づいて、前記タイマの時刻を補正することを特徴とする付記2に記載のスレーブ装置。
【0106】
(付記4)
前記伝搬遅延時間算出処理を繰り返し、前記伝搬遅延時間算出処理で算出した前記伝搬遅延時間と、それより前に算出した前記伝搬遅延時間との差が閾値以下になった場合に、
前記補正手段は、前記オフセット時間差と、最後に算出した前記伝搬遅延時間とに基づいて、前記タイマの時刻を補正することを特徴とする付記2に記載のスレーブ装置。
【0107】
(付記5)
前記所定の値は、前記スレーブ装置が起動してから前記発振器が安定することを示す時間を表す前記カウンタの値であることを特徴とする付記1に記載のスレーブ装置。
【0108】
(付記6)
ネットワークを介して時刻同期を行うマスタ装置と2以上のスレーブ装置とを備える電子機器システムであって、
前記スレーブ装置はそれぞれ、
時刻情報を生成するタイマ、
前記時刻情報を生成するためのクロックを発生させる発振器、
所定の間隔でカウントアップするカウンタ、
前記カウンタの値が所定の値を超えた場合に、前記マスタ装置が他のスレーブ装置と時刻同期を行っているビジー状態であるか否かを判定する判定手段、
前記判定手段が前記ビジー状態でないと判定した場合、前記マスタ装置に時刻同期の開始を要求する第1メッセージを送信する第1送信手段、
前記マスタ装置から、前記マスタ装置と前記スレーブ装置との間のオフセット時間差を求めるための第2メッセージと、前記第2メッセージが前記マスタ装置から送信された時刻を含むフォローアップメッセージとを受信する第1受信手段、
前記第1受信手段が前記第2メッセージを受信した時刻と、前記フォローアップメッセージに含まれる前記第2メッセージが前記マスタ装置から送信された時刻とに基づいて、前記オフセット時間差を算出するオフセット算出手段、
前記第1受信手段が前記マスタ装置から前記フォローアップメッセージを受信したのちに、前記マスタ装置に前記マスタ装置と前記スレーブ装置との間の伝搬遅延時間を求めるための第3メッセージを送信する第2送信手段、
前記マスタ装置から前記第3メッセージを前記マスタ装置が受信した時刻を含む第4メッセージを受信する第2受信手段、
前記第2送信手段が前記第3メッセージを送信した時刻と、前記第4メッセージに含まれる前記第3メッセージを前記マスタ装置が受信した時刻とに基づいて、前記伝搬遅延時間を算出する遅延時間算出手段、および、
前記オフセット時間差および前記伝搬遅延時間に基づいて、前記タイマの時刻を補正する補正手段、
を含み、
前記マスタ装置は、
前記スレーブ装置から前記第1メッセージを受信する第3受信手段、
前記第3受信手段が前記スレーブ装置から前記第1メッセージを受信すると、前記第2メッセージと、前記フォローアップメッセージとを、前記第1メッセージを受信した相手の前記スレーブ装置である対象スレーブ装置に送信する第3送信手段、
前記第3送信手段が前記第2メッセージを前記対象スレーブ装置に送信すると、前記ビジー状態であることを示す第5メッセージを、前記対象スレーブ装置以外の前記スレーブ装置に送信する第4送信手段、
前記対象スレーブ装置から前記第3メッセージを受信する第4受信手段、および、
前記第4受信手段が前記対象スレーブ装置から前記第3メッセージを受信すると、前記対象スレーブ装置に前記第4メッセージを送信する第5送信手段、
を含むことを特徴とする電子機器システム。
【0109】
(付記7)
2以上のスレーブ装置とネットワークを介して時刻同期を行うマスタ装置であって、
前記スレーブ装置から時刻同期の開始を要求する第1メッセージを受信する第3受信手段と、
前記第3受信手段が前記スレーブ装置から前記第1メッセージを受信すると、前記マスタ装置と前記スレーブ装置との間のオフセット時間差を求めるための第2メッセージと、前記第2メッセージを送信した時刻を含むフォローアップメッセージとを、前記第1メッセージを受信した相手の前記スレーブ装置である対象スレーブ装置に送信する第3送信手段と、
前記第3送信手段が前記第2メッセージを前記対象スレーブ装置に送信すると、前記ビジー状態であることを示す第5メッセージを、前記対象スレーブ装置以外の前記スレーブ装置に送信する第4送信手段と、
前記対象スレーブ装置から前記マスタ装置と前記スレーブ装置との間の伝搬遅延時間を求めるための第3メッセージを受信する第4受信手段と、
前記第4受信手段が前記対象スレーブ装置から前記第3メッセージを受信すると、前記対象スレーブ装置に前記第3メッセージを受信した時刻を含む第4メッセージを送信する第5送信手段と、
を備えることを特徴とするマスタ装置。
【0110】
(付記8)
前記第4送信手段は、前記第5送信手段が前記第4メッセージを送信する度に、前記対象スレーブ装置以外の前記スレーブ装置に前記第5メッセージを送信することを特徴とする付記7に記載のマスタ装置。
【0111】
(付記9)
ネットワークを介して時刻同期を行うマスタ装置と2以上のスレーブ装置とを備える電子機器システムにおいて、時刻情報を生成するためのクロックを発生させる発振器と、所定の間隔でカウントアップするカウンタとを備える前記スレーブ装置が実行する
前記カウンタの値が所定の値を超えた場合に、前記マスタ装置が他のスレーブ装置と時刻同期を行っているビジー状態であるか否かを判定する判定ステップと、
前記判定ステップで前記ビジー状態でないと判定した場合、前記マスタ装置に時刻同期の開始を要求する第1メッセージを送信する第1送信ステップと、
前記マスタ装置が実行する
前記スレーブ装置から前記第1メッセージを受信する第3受信ステップと、
前記第3受信ステップで前記スレーブ装置から前記第1メッセージを受信すると、前記マスタ装置と前記スレーブ装置との間のオフセット時間差を求めるための第2メッセージと、前記第2メッセージを送信した時刻を含むフォローアップメッセージとを、前記第1メッセージを受信した相手の前記スレーブ装置である対象スレーブ装置に送信する第3送信ステップと、
前記第3送信ステップで前記第2メッセージを前記対象スレーブ装置に送信すると、前記ビジー状態であることを示す第5メッセージを、前記対象スレーブ装置以外の前記スレーブ装置に送信する第4送信ステップと、
前記対象スレーブ装置が実行する
前記マスタ装置から、前記第2メッセージと、前記フォローアップメッセージとを受信する第1受信ステップと、
前記第1受信ステップで前記第2メッセージを受信した時刻と、前記フォローアップメッセージに含まれる前記第2メッセージが前記マスタ装置から送信された時刻とに基づいて、前記オフセット時間差を算出するオフセット算出ステップと、
前記第1受信ステップで前記マスタ装置から前記フォローアップメッセージを受信したのちに、前記マスタ装置に前記マスタ装置と前記スレーブ装置との間の伝搬遅延時間を求めるための第3メッセージを送信する第2送信ステップと、
前記マスタ装置が実行する
前記対象スレーブ装置から前記第3メッセージを受信する第4受信ステップと、
前記第4受信ステップで前記対象スレーブ装置から前記第3メッセージを受信すると、前記対象スレーブ装置に前記第3メッセージを受信した時刻を含む前記第4メッセージを送信する第5送信ステップと、
前記対象スレーブ装置が実行する
前記マスタ装置から前記第4メッセージを受信する第2受信ステップと、
前記第3メッセージを送信した時刻と、前記第4メッセージに含まれる前記第3メッセージを前記マスタ装置が受信した時刻とに基づいて、前記伝搬遅延時間を算出する遅延時間算出ステップと、
前記オフセット時間差および前記伝搬遅延時間に基づいて、前記タイマの時刻を補正する補正ステップと、
を備えることを特徴とする時刻同期方法。
【0112】
(付記10)
前記スレーブ装置が実行する
前記第2送信ステップと、
前記マスタ装置が実行する
前記第4受信ステップと、
前記第5送信ステップと、
前記対象スレーブ装置が実行する
前記第2受信ステップと、
前記遅延時間算出ステップと、
を含む伝搬遅延時間算出処理を所定の周期で繰り返し、
前記補正ステップでは、前記オフセット時間差と、前記伝搬遅延時間算出処理で算出した複数の前記伝搬遅延時間とに基づいて、前記タイマの時刻を補正することを特徴とする付記9に記載の時刻同期方法。
【0113】
(付記11)
前記伝搬遅延時間算出処理を繰り返し、前記伝搬遅延時間算出処理を所定の回数行って算出した複数の前記伝搬遅延時間に基づいて、前記発振器が安定したときの前記伝搬遅延時間を予測する予測ステップをさらに備え、
前記補正ステップでは、前記オフセット時間差と、前記予測手段が予測した前記伝搬遅延時間とに基づいて、前記タイマの時刻を補正することを特徴とする付記10に記載の時刻同期方法。
【0114】
(付記12)
前記伝搬遅延時間算出処理を繰り返し、前記伝搬遅延時間算出処理で算出した前記伝搬遅延時間と、それより前に算出した前記伝搬遅延時間との差が閾値以下になった場合に、
前記補正ステップでは、前記オフセット時間差と、最後に算出した前記伝搬遅延時間とに基づいて、前記タイマの時刻を補正することを特徴とする付記10に記載の時刻同期方法。
【0115】
(付記13)
前記所定の値は、前記スレーブ装置が起動してから前記発振器が安定することを示す時間を表す前記カウンタの値であることを特徴とする付記9に記載の時刻同期方法。
【0116】
(付記14)
前記第4送信ステップでは、前記第5送信ステップで前記第4メッセージを送信する度に、前記対象スレーブ装置以外の前記スレーブ装置に前記第5メッセージを送信することを特徴とする付記9ないし13に記載の時刻同期方法。
【0117】
(付記15)
コンピュータを
時刻情報を生成するタイマ、
前記時刻情報を生成するためのクロックを発生させる発振器、
所定の間隔でカウントアップするカウンタ、
前記カウンタの値が所定の値を超えた場合に、前記マスタ装置が他のスレーブ装置と時刻同期を行っているビジー状態であるか否かを判定する判定手段、
前記判定手段が前記ビジー状態でないと判定した場合、前記マスタ装置に時刻同期の開始を要求する第1メッセージを送信する第1送信手段、
前記マスタ装置から、前記マスタ装置と前記スレーブ装置との間のオフセット時間差を求めるための第2メッセージと、前記第2メッセージが前記マスタ装置から送信された時刻を含むフォローアップメッセージとを受信する第1受信手段、
前記第1受信手段が前記第2メッセージを受信した時刻と、前記フォローアップメッセージに含まれる前記第2メッセージが前記マスタ装置から送信された時刻とに基づいて、前記オフセット時間差を算出するオフセット算出手段、
前記第1受信手段が前記マスタ装置から前記フォローアップメッセージを受信したのちに、前記マスタ装置に前記マスタ装置と前記スレーブ装置との間の伝搬遅延時間を求めるための第3メッセージを送信する第2送信手段、
前記マスタ装置から前記第3メッセージを前記マスタ装置が受信した時刻を含む第4メッセージを受信する第2受信手段、
前記第2送信手段が前記第3メッセージを送信した時刻と、前記第4メッセージに含まれる前記第3メッセージを前記マスタ装置が受信した時刻とに基づいて、前記伝搬遅延時間を算出する遅延時間算出手段、および、
前記オフセット時間差および前記伝搬遅延時間に基づいて、前記タイマの時刻を補正する補正手段、
として機能させることを特徴とするプログラム。
【符号の説明】
【0118】
M1 マスタ装置
S1、S2、SX スレーブ装置
11 カウンタ
12 判定部
13 送信部
14 受信部
15 発振器
16 タイマ
17 処理部
31 制御部
32 主記憶部
33 外部記憶部
34 操作部
35 表示部
36 発振器
100 電子機器システム

【特許請求の範囲】
【請求項1】
マスタ装置とネットワークを介して時刻同期を行うスレーブ装置であって、
時刻情報を生成するタイマと、
前記時刻情報を生成するためのクロックを発生させる発振器と、
所定の間隔でカウントアップするカウンタと、
前記カウンタの値が所定の値を超えた場合に、前記マスタ装置が他のスレーブ装置と時刻同期を行っているビジー状態であるか否かを判定する判定手段と、
前記判定手段が前記ビジー状態でないと判定した場合、前記マスタ装置に時刻同期の開始を要求する第1メッセージを送信する第1送信手段と、
前記マスタ装置から、前記マスタ装置と前記スレーブ装置との間のオフセット時間差を求めるための第2メッセージと、前記第2メッセージが前記マスタ装置から送信された時刻を含むフォローアップメッセージとを受信する第1受信手段と、
前記第1受信手段が前記第2メッセージを受信した時刻と、前記フォローアップメッセージに含まれる前記第2メッセージが前記マスタ装置から送信された時刻とに基づいて、前記オフセット時間差を算出するオフセット算出手段と、
前記第1受信手段が前記マスタ装置から前記フォローアップメッセージを受信したのちに、前記マスタ装置に前記マスタ装置と前記スレーブ装置との間の伝搬遅延時間を求めるための第3メッセージを送信する第2送信手段と、
前記マスタ装置から前記第3メッセージを前記マスタ装置が受信した時刻を含む第4メッセージを受信する第2受信手段と、
前記第2送信手段が前記第3メッセージを送信した時刻と、前記第4メッセージに含まれる前記第3メッセージを前記マスタ装置が受信した時刻とに基づいて、前記伝搬遅延時間を算出する遅延時間算出手段と、
前記オフセット時間差および前記伝搬遅延時間に基づいて、前記タイマの時刻を補正する補正手段と、
を備えることを特徴とするスレーブ装置。
【請求項2】
前記第2送信手段が、前記マスタ装置に前記第3メッセージを送信し、
前記第2受信手段が、前記マスタ装置から前記第4メッセージを受信し、および、
前記遅延時間算出手段が、前記第2送信手段が前記第3メッセージを送信した時刻と、前記第4メッセージに含まれる前記第3メッセージを前記マスタ装置が受信した時刻とに基づいて、前記伝搬遅延時間を算出する、
伝搬遅延時間算出処理を所定の周期で繰り返し、
前記補正手段は、前記オフセット時間差と、前記伝搬遅延時間算出処理で算出した複数の前記伝搬遅延時間とに基づいて、前記タイマの時刻を補正することを特徴とする請求項1に記載のスレーブ装置。
【請求項3】
前記伝搬遅延時間算出処理を繰り返し、前記伝搬遅延時間算出処理を所定の回数行って算出した複数の前記伝搬遅延時間に基づいて、前記発振器が安定したときの前記伝搬遅延時間を予測する予測手段をさらに備え、
前記補正手段は、前記オフセット時間差と、前記予測手段が予測した前記伝搬遅延時間とに基づいて、前記タイマの時刻を補正することを特徴とする請求項2に記載のスレーブ装置。
【請求項4】
前記伝搬遅延時間算出処理を繰り返し、前記伝搬遅延時間算出処理で算出した前記伝搬遅延時間と、それより前に算出した前記伝搬遅延時間との差が閾値以下になった場合に、
前記補正手段は、前記オフセット時間差と、最後に算出した前記伝搬遅延時間とに基づいて、前記タイマの時刻を補正することを特徴とする請求項2に記載のスレーブ装置。
【請求項5】
前記所定の値は、前記スレーブ装置が起動してから前記発振器が安定することを示す時間を表す前記カウンタの値であることを特徴とする請求項1に記載のスレーブ装置。
【請求項6】
ネットワークを介して時刻同期を行うマスタ装置と2以上のスレーブ装置とを備える電子機器システムであって、
前記スレーブ装置はそれぞれ、
時刻情報を生成するタイマ、
前記時刻情報を生成するためのクロックを発生させる発振器、
所定の間隔でカウントアップするカウンタ、
前記カウンタの値が所定の値を超えた場合に、前記マスタ装置が他のスレーブ装置と時刻同期を行っているビジー状態であるか否かを判定する判定手段、
前記判定手段が前記ビジー状態でないと判定した場合、前記マスタ装置に時刻同期の開始を要求する第1メッセージを送信する第1送信手段、
前記マスタ装置から、前記マスタ装置と前記スレーブ装置との間のオフセット時間差を求めるための第2メッセージと、前記第2メッセージが前記マスタ装置から送信された時刻を含むフォローアップメッセージとを受信する第1受信手段、
前記第1受信手段が前記第2メッセージを受信した時刻と、前記フォローアップメッセージに含まれる前記第2メッセージが前記マスタ装置から送信された時刻とに基づいて、前記オフセット時間差を算出するオフセット算出手段、
前記第1受信手段が前記マスタ装置から前記フォローアップメッセージを受信したのちに、前記マスタ装置に前記マスタ装置と前記スレーブ装置との間の伝搬遅延時間を求めるための第3メッセージを送信する第2送信手段、
前記マスタ装置から前記第3メッセージを前記マスタ装置が受信した時刻を含む第4メッセージを受信する第2受信手段、
前記第2送信手段が前記第3メッセージを送信した時刻と、前記第4メッセージに含まれる前記第3メッセージを前記マスタ装置が受信した時刻とに基づいて、前記伝搬遅延時間を算出する遅延時間算出手段、および、
前記オフセット時間差および前記伝搬遅延時間に基づいて、前記タイマの時刻を補正する補正手段、
を含み、
前記マスタ装置は、
前記スレーブ装置から前記第1メッセージを受信する第3受信手段、
前記第3受信手段が前記スレーブ装置から前記第1メッセージを受信すると、前記第2メッセージと、前記フォローアップメッセージとを、前記第1メッセージを受信した相手の前記スレーブ装置である対象スレーブ装置に送信する第3送信手段、
前記第3送信手段が前記第2メッセージを前記対象スレーブ装置に送信すると、前記ビジー状態であることを示す第5メッセージを、前記対象スレーブ装置以外の前記スレーブ装置に送信する第4送信手段、
前記対象スレーブ装置から前記第3メッセージを受信する第4受信手段、および、
前記第4受信手段が前記対象スレーブ装置から前記第3メッセージを受信すると、前記対象スレーブ装置に前記第4メッセージを送信する第5送信手段、
を含むことを特徴とする電子機器システム。
【請求項7】
2以上のスレーブ装置とネットワークを介して時刻同期を行うマスタ装置であって、
前記スレーブ装置から時刻同期の開始を要求する第1メッセージを受信する第3受信手段と、
前記第3受信手段が前記スレーブ装置から前記第1メッセージを受信すると、前記マスタ装置と前記スレーブ装置との間のオフセット時間差を求めるための第2メッセージと、前記第2メッセージを送信した時刻を含むフォローアップメッセージとを、前記第1メッセージを受信した相手の前記スレーブ装置である対象スレーブ装置に送信する第3送信手段と、
前記第3送信手段が前記第2メッセージを前記対象スレーブ装置に送信すると、前記ビジー状態であることを示す第5メッセージを、前記対象スレーブ装置以外の前記スレーブ装置に送信する第4送信手段と、
前記対象スレーブ装置から前記マスタ装置と前記スレーブ装置との間の伝搬遅延時間を求めるための第3メッセージを受信する第4受信手段と、
前記第4受信手段が前記対象スレーブ装置から前記第3メッセージを受信すると、前記対象スレーブ装置に前記第3メッセージを受信した時刻を含む第4メッセージを送信する第5送信手段と、
を備えることを特徴とするマスタ装置。
【請求項8】
前記第4送信手段は、前記第5送信手段が前記第4メッセージを送信する度に、前記対象スレーブ装置以外の前記スレーブ装置に前記第5メッセージを送信することを特徴とする請求項7に記載のマスタ装置。
【請求項9】
ネットワークを介して時刻同期を行うマスタ装置と2以上のスレーブ装置とを備える電子機器システムにおいて、時刻情報を生成するためのクロックを発生させる発振器と、所定の間隔でカウントアップするカウンタとを備える前記スレーブ装置が実行する
前記カウンタの値が所定の値を超えた場合に、前記マスタ装置が他のスレーブ装置と時刻同期を行っているビジー状態であるか否かを判定する判定ステップと、
前記判定ステップで前記ビジー状態でないと判定した場合、前記マスタ装置に時刻同期の開始を要求する第1メッセージを送信する第1送信ステップと、
前記マスタ装置が実行する
前記スレーブ装置から前記第1メッセージを受信する第3受信ステップと、
前記第3受信ステップで前記スレーブ装置から前記第1メッセージを受信すると、前記マスタ装置と前記スレーブ装置との間のオフセット時間差を求めるための第2メッセージと、前記第2メッセージを送信した時刻を含むフォローアップメッセージとを、前記第1メッセージを受信した相手の前記スレーブ装置である対象スレーブ装置に送信する第3送信ステップと、
前記第3送信ステップで前記第2メッセージを前記対象スレーブ装置に送信すると、前記ビジー状態であることを示す第5メッセージを、前記対象スレーブ装置以外の前記スレーブ装置に送信する第4送信ステップと、
前記対象スレーブ装置が実行する
前記マスタ装置から、前記第2メッセージと、前記フォローアップメッセージとを受信する第1受信ステップと、
前記第1受信ステップで前記第2メッセージを受信した時刻と、前記フォローアップメッセージに含まれる前記第2メッセージが前記マスタ装置から送信された時刻とに基づいて、前記オフセット時間差を算出するオフセット算出ステップと、
前記第1受信ステップで前記マスタ装置から前記フォローアップメッセージを受信したのちに、前記マスタ装置に前記マスタ装置と前記スレーブ装置との間の伝搬遅延時間を求めるための第3メッセージを送信する第2送信ステップと、
前記マスタ装置が実行する
前記対象スレーブ装置から前記第3メッセージを受信する第4受信ステップと、
前記第4受信ステップで前記対象スレーブ装置から前記第3メッセージを受信すると、前記対象スレーブ装置に前記第3メッセージを受信した時刻を含む前記第4メッセージを送信する第5送信ステップと、
前記対象スレーブ装置が実行する
前記マスタ装置から前記第4メッセージを受信する第2受信ステップと、
前記第3メッセージを送信した時刻と、前記第4メッセージに含まれる前記第3メッセージを前記マスタ装置が受信した時刻とに基づいて、前記伝搬遅延時間を算出する遅延時間算出ステップと、
前記オフセット時間差および前記伝搬遅延時間に基づいて、前記タイマの時刻を補正する補正ステップと、
を備えることを特徴とする時刻同期方法。
【請求項10】
コンピュータを
時刻情報を生成するタイマ、
前記時刻情報を生成するためのクロックを発生させる発振器、
所定の間隔でカウントアップするカウンタ、
前記カウンタの値が所定の値を超えた場合に、前記マスタ装置が他のスレーブ装置と時刻同期を行っているビジー状態であるか否かを判定する判定手段、
前記判定手段が前記ビジー状態でないと判定した場合、前記マスタ装置に時刻同期の開始を要求する第1メッセージを送信する第1送信手段、
前記マスタ装置から、前記マスタ装置と前記スレーブ装置との間のオフセット時間差を求めるための第2メッセージと、前記第2メッセージが前記マスタ装置から送信された時刻を含むフォローアップメッセージとを受信する第1受信手段、
前記第1受信手段が前記第2メッセージを受信した時刻と、前記フォローアップメッセージに含まれる前記第2メッセージが前記マスタ装置から送信された時刻とに基づいて、前記オフセット時間差を算出するオフセット算出手段、
前記第1受信手段が前記マスタ装置から前記フォローアップメッセージを受信したのちに、前記マスタ装置に前記マスタ装置と前記スレーブ装置との間の伝搬遅延時間を求めるための第3メッセージを送信する第2送信手段、
前記マスタ装置から前記第3メッセージを前記マスタ装置が受信した時刻を含む第4メッセージを受信する第2受信手段、
前記第2送信手段が前記第3メッセージを送信した時刻と、前記第4メッセージに含まれる前記第3メッセージを前記マスタ装置が受信した時刻とに基づいて、前記伝搬遅延時間を算出する遅延時間算出手段、および、
前記オフセット時間差および前記伝搬遅延時間に基づいて、前記タイマの時刻を補正する補正手段、
として機能させることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate