(57)【要約】【課題】マスタ端末のマスタ時刻と容易に同期可能なスレーブ端末を提供する。【解決手段】時間間隔毎にティックレートを加算してサブカウントを算出するサブカウンタ３０２と、サブカウントが閾値に達した場合に、メインカウントをインクリメントするメインカウンタ３０３と、未補正のティックレートを用いた場合にメインカウントから算出される未補正スレーブ時刻と、マスタ端末のマスタ時刻との時刻誤差を算出する誤差算出部３０５と、ティックレートに補正変数を加えた場合にメインカウントから算出される補正スレーブ時刻と未補正スレーブ時刻との補正時刻差が時刻誤差と等しくなる補正変数の値を算出する補正値算出部３０６と、算出された補正変数の値をティックレートに加えるクロック補正部３０７と、を備える、スレーブ端末を提供する。【選択図】図２
2011035696.tif 000002
【特許請求の範囲】
【請求項１】
伝送路を介してマスタ端末に接続可能なスレーブ端末であって、
時間間隔毎にティックレートを加算してサブカウントを算出するサブカウンタと、
前記サブカウントが閾値に達した場合に、メインカウントをインクリメントするメインカウンタと、
未補正の前記ティックレートを用いた場合に前記メインカウントから算出される未補正スレーブ時刻と、前記マスタ端末のマスタ時刻との時刻誤差を算出する誤差算出部と、
前記ティックレートに補正変数を加えた場合に前記メインカウントから算出される補正スレーブ時刻と前記未補正スレーブ時刻との補正時刻差が前記時刻誤差と等しくなる前記補正変数の値を算出する補正値算出部と、
前記算出された補正変数の値を前記ティックレートに加えるクロック補正部と、
を備える、スレーブ端末。
【請求項２】
前記誤差算出部が、前記伝送路における伝送路遅延がないものとして、前記時刻誤差を算出する、請求項１に記載のスレーブ端末。
【請求項３】
あらかじめ取得された、前記伝送路における伝送路遅延の値を保存する、伝送路遅延記憶装置を更に備える、請求項１に記載のスレーブ端末。
【請求項４】
前記誤差算出部が、前記伝送路遅延の値を用いて、前記時刻誤差を算出する、請求項３に記載のスレーブ端末。
【請求項５】
時間間隔毎にティックレートを加算してサブカウントを算出することと、
前記サブカウントが閾値に達した場合に、メインカウントをインクリメントすることと、
伝送路を介してマスタ端末からマスタ時刻を取得することと、
未補正の前記ティックレートを用いた場合に前記メインカウントから算出される未補正スレーブ時刻と、前記マスタ時刻との時刻誤差を算出することと、
前記ティックレートに補正変数を加えた場合に前記メインカウントから算出される補正スレーブ時刻と前記未補正スレーブ時刻との補正時刻差が前記時刻誤差と等しくなる前記補正変数の値を算出することと、
前記算出された補正変数の値を前記ティックレートに加えることと、
を含む、スレーブ端末のクロックの補正方法。
【請求項６】
前記伝送路における伝送路遅延がないものとして、前記時刻誤差を算出する、請求項５に記載のスレーブ端末のクロックの補正方法。
【請求項７】
あらかじめ取得された、前記伝送路における伝送路遅延の値を用いて、前記時刻誤差を算出する、請求項５に記載のスレーブ端末のクロックの補正方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はネットワーク技術に係り、スレーブ端末及びスレーブ端末のクロック補正方法に関する。
【背景技術】
【０００２】
計測及び制御システムが複雑化し、多数のノードをサポートするようになった現在、分散型ネットワーク技術の必要性が高まっている。ここで、各ノードにローカル・クロックを保持させ、分散型ネットワーク全体において正確な時間を保持することが重要となっている（例えば、特許文献１参照。）。しかし、各ノードの電源を個別にオン／オフすると、個々のローカル・クロックにおいて、正確な時刻からのずれが生じる場合がある。そのため、分散型ネットワーク全体で正確なクロック・タイミングを維持するためには、正確なクロックに対して個々のローカル・クロックの同期をとる必要がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−３１９９７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、正確なクロックに対するローカル・クロックの時刻差が大きい場合、同期をとるのが困難な場合がある。そこで本発明は、マスタ端末のマスタ時刻と容易に同期可能なスレーブ端末及びスレーブ端末のクロック補正方法を提供することを目的の一つとする。
【課題を解決するための手段】
【０００５】
本発明の態様によれば、伝送路を介してマスタ端末に接続可能なスレーブ端末であって、時間間隔毎にティックレートを加算してサブカウントを算出するサブカウンタと、サブカウントが閾値に達した場合に、メインカウントをインクリメントするメインカウンタと、未補正のティックレートを用いた場合にメインカウントから算出される未補正スレーブ時刻と、マスタ端末のマスタ時刻との時刻誤差を算出する誤差算出部と、ティックレートに補正変数を加えた場合にメインカウントから算出される補正スレーブ時刻と未補正スレーブ時刻との補正時刻差が時刻誤差と等しくなる補正変数の値を算出する補正値算出部と、算出された補正変数の値をティックレートに加えるクロック補正部と、を備える、スレーブ端末が提供される。
【０００６】
本発明の他の態様によれば、時間間隔毎にティックレートを加算してサブカウントを算出することと、サブカウントが閾値に達した場合に、メインカウントをインクリメントすることと、伝送路を介してマスタ端末からマスタ時刻を取得することと、未補正のティックレートを用いた場合にメインカウントから算出される未補正スレーブ時刻と、マスタ時刻との時刻誤差を算出することと、ティックレートに補正変数を加えた場合にメインカウントから算出される補正スレーブ時刻と未補正スレーブ時刻との補正時刻差が時刻誤差と等しくなる補正変数の値を算出することと、算出された補正変数の値をティックレートに加えることと、を含む、スレーブ端末のクロックの補正方法が提供される。
【発明の効果】
【０００７】
本発明によれば、マスタ端末のマスタ時刻と容易に同期可能なスレーブ端末及びスレーブ端末のクロック補正方法を提供可能である。
【図面の簡単な説明】
【０００８】
【図１】本発明の第１の実施の形態に係るコンピュータネットワークの模式図である。
【図２】本発明の第１の実施の形態に係るスレーブ端末の模式図である。
【図３】本発明の第１の実施の形態に係るサブカウント及びメインカウントと時間との関係を模式的に示すグラフである。
【図４】本発明の第１の実施の形態に係るマスタ端末からスレーブ端末に送信されるメッセージと時刻との関係を示す模式図である。
【図５】本発明の第１の実施の形態に係るスレーブ端末のクロックの補正方法を示すフローチャートである。
【図６】本発明の第１の実施の形態の比較例に係るマスタ端末及びスレーブ端末のクロック時刻データの推移を示すグラフである。
【図７】本発明の第１の実施の形態に係るマスタ端末及びスレーブ端末のクロック時刻データの推移を示すグラフである。
【図８】本発明の第１の実施の形態の変形例に係るスレーブ端末のクロックの補正方法を示すフローチャートである。
【図９】本発明の第３の実施の形態に係るスレーブ端末の模式図である。
【図１０】本発明の第３の実施の形態に係るマスタ端末及びスレーブ端末間で送信されるメッセージと時刻との関係を示す模式図である。
【図１１】本発明のその他の実施の形態に係るマスタ端末及びスレーブ端末のクロック時刻データの推移を示すグラフである。
【発明を実施するための形態】
【０００９】
以下に本発明の実施の形態を説明する。以下の図面の記載において、同一又は類似の部分には同一又は類似の符号で表している。但し、図面は模式的なものである。したがって、具体的な寸法等は以下の説明を照らし合わせて判断するべきものである。また、図面相互間においても互いの寸法の関係や比率が異なる部分が含まれていることは勿論である。
【００１０】
（第１の実施の形態）
図１に示すように、第１の実施の形態に係るスレーブ端末１０は、ネットワーク５の伝送路を介して、マスタ端末１に電気的に接続可能である。マスタ端末１は、全地球測位システム（ＧＰＳ：Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）や原子時計等の正確な時刻源に接続され、正確なマスタ時刻を提供可能なマスタクロックを有している。スレーブ端末１０は、マスタ端末１とデータを送受信するための図２に示すポート３０１と、スレーブクロック２０１と、を含む中央演算処理装置（ＣＰＵ）３００を備える。スレーブクロック２０１は、時間間隔毎にティックレートを加算してサブカウントを算出するサブカウンタ３０２と、サブカウントが閾値に達した場合に、メインカウントをインクリメントするメインカウンタ３０３と、メインカウントに基づいてスレーブ時刻を算出する時刻算出部３０４と、を含む。
【００１１】
さらにＣＰＵ３００は、未補正のティックレートを用いた場合にメインカウントから算出される未補正スレーブ時刻と、図１に示すマスタ端末１のマスタ時刻との時刻誤差を算出する図２に示す誤差算出部３０５と、ティックレートに補正変数を加えた場合にメインカウントから算出される補正スレーブ時刻と未補正スレーブ時刻との補正時刻差が、誤差算出部３０５が算出した時刻誤差と等しくなる補正変数の値を算出する補正値算出部３０６と、算出された補正変数の値をサブカウンタ３０２のティックレートに加えるクロック補正部３０７と、を含む。
【００１２】
スレーブクロック２０１のサブカウンタ３０２において、図３に示すように、固定の時間間隔ωごとに所定のティックレートＡが加算されて、サブカウントＣｓが算出される。固定の時間間隔ωは、例えば２０ナノ秒である。ティックレートＡの値は、時間間隔ωと後述するメインカウントＣｍの周期Ωとを考慮して、スレーブクロック２０１に対する分解能の要求に基づいて決定される。サブカウントＣｓが所定の閾値Ｒを超えると、図２に示すメインカウンタ３０３において、図３に示すように、メインカウントＣｍが１だけインクリメントされる。また、サブカウントＣｓが閾値Ｒを超えるたびに、サブカウントＣｓの値から閾値Ｒの値が引かれる。その後、サブカウントＣｓが閾値Ｒを超えるたびに、メインカウントＣｍが１ずつインクリメントされる。
【００１３】
サブカウンタ３０２のティックレートＡには、補正変数Ｎを加えることが可能である。正の値の補正変数ＮをティックレートＡに加えた場合、補正変数ＮをティックレートＡに加えなかった場合と比較して、サブカウントＣｓが閾値Ｒを超えるまでの時間が短くなる。そのため、メインカウントＣｍがインクリメントする周期Ωも短くなる。また、負の値の補正変数ＮをティックレートＡに加えた場合、補正変数ＮをティックレートＡに加えなかった場合と比較して、サブカウントＣｓが閾値Ｒを超えるまでの時間が長くなる。そのため、メインカウントＣｍがインクリメントする周期Ωも長くなる。メインカウントＣｍがインクリメントする周期Ωは、下記（１）式に示すように、補正変数Ｎの関数として与えられる。なお、下記（１）式から算出されるメインカウントＣｍがインクリメントする周期Ωが小数点以下の端数を含む場合、端数を切り捨て等してもよい。
Ω(N) = Rω/ (A+N)      ・・・(1)
【００１４】
図２に示す時刻算出部３０４は、下記（２）式に示すように、補正変数Ｎをサブカウンタ３０２のサブカウントのティックレートＡに加えなかった場合にメインカウンタ３０３のメインカウントＣｍがインクリメントする周期Ω（０）に、メインカウントＣｍを乗じて、スレーブ時刻Ｔｓを算出する。
Ts = Cm × Ω(0)                ・・・(2)
【００１５】
図１に示すマスタ端末１は、スレーブ端末１０に、図４に示す「同期メッセージ」及び「フォローメッセージ」を定期的に送信する。「同期メッセージ」を送信する際、マスタ端末１内部の指示部が、マスタ端末１内部のポートに、「同期メッセージ」を送信するよう指示する。また、マスタ端末１内部の指示部は、ポートから実際に「同期メッセージ」が送信されたマスタ時刻Ｔm_t1をマスタクロックから取得する。さらに、マスタ端末１内部の指示部は、ポートに、マスタ時刻Ｔm_t1が付与された「フォローメッセージ」を送信するよう指示する。
【００１６】
「同期メッセージ」及び「フォローメッセージ」は、図２に示すスレーブ端末１０のポート３０１で受信される。スレーブクロック２０１のサブカウンタ３０２のティックレートＡに補正変数Ｎが加えられていない状態において、誤差算出部３０５は、ポート３０１が「同期メッセージ」を受信した時の未補正スレーブ時刻Ｔs_r1をスレーブクロック２０１から取得する。さらに誤差算出部３０５は、「フォローメッセージ」から、マスタ時刻Ｔm_t1を取得する。
【００１７】
図１に示すマスタ端末１が保持するマスタ時刻Ｔm_t1と、スレーブ端末１０が保持する未補正スレーブ時刻Ｔs_r1との時刻誤差Ｅは、ネットワーク５におけるマスタ端末１からスレーブ端末１０への伝送路遅延をＤmsとして、下記（３）式で与えられる。
E = Ts_r1 - (Tm_t1 + Dms)               ・・・(3)
第１の実施の形態において、図２に示す誤差算出部３０５は、下記（４）式に示すように、マスタ端末１からスレーブ端末１０への伝送路遅延Ｄmsがないものとして、時刻誤差Ｅを算出する。
E = Ts_r1 - Tm_t1               ・・・(4)
【００１８】
ＣＰＵ３００は、判定部３０８をさらに備える。判定部３０８は、時刻誤差Ｅが許容範囲内にあるか否かを判定する。なお、許容範囲は、オペレータ等によって予め任意に設定される。ここで、所定の調整時間τの間において、サブカウンタ３０２のティックレートＡに補正変数Ｎを加えなかった場合のメインカウントと、ティックレートＡに補正変数Ｎを加えた場合のメインカウントとの差ΔＣｍは、下記（５）式で与えられる。
ΔCm = τ/Ω(0) - τ/Ω(N)              ・・・(5)
上記（１）式より、（５）式は下記（６）式のように変形可能である。
ΔCm = τ/Ω(0) - τ/Ω(N) 
= τ/（Rω/A） - τ/[Rω/(A+N)]
=   [τ(A+N) - τA] / (Rω)
= (Nτ) / (Rω)             ・・・(6)
【００１９】
また、所定の調整時間τの間において、ティックレートＡに補正変数Ｎを加えなかった場合に算出される未補正スレーブ時刻と、ティックレートＡに補正変数Ｎを加えた場合に算出される補正スレーブ時刻との補正時刻差ΔＴｓは、下記（７）式で与えられる。
ΔTs = ΔCm×Ω(0)              ・・・(7)
上記（１）式及び（６）式より、（７）式は下記（８）式のように変形可能である。
ΔTs = ΔCm×Ω(0) 
= (Nτ) / (Rω) × （Rω/A）
= Nτ/ A           ・・・(8)
【００２０】
判定部３０８が、時刻誤差Ｅが許容範囲外であると判定した場合、補正値算出部３０６は、下記（９）式に示すように、時刻誤差Ｅと、所定の調整時間τの間において生じる補正時刻差ΔＴｓと、が等しくなる補正変数Ｎの値を算出する。
E = ΔTs                ・・・(9)
上記（８）式及び（９）式より、時刻誤差Ｅと、所定の調整時間τの間において生じる補正時刻差ΔＴｓと、が等しくなる補正変数Ｎの値は、下記（１０）式を用いて算出可能である。なお、所定の調整時間τの値は、オペレータ等によって予め任意の値に設定される。
N = A×E / τ           ・・・(10)
（１０）式から算出される補正変数Ｎの値を、所定の調整時間τの間、サブカウンタ３０２のティックレートＡに加えることにより、時刻誤差Ｅが０になりうる。具体的には、所定の調整時間τの間にマスタクロックが進む時間τmと、所定の調整時間τの間にメインカウンタの周期がΩ（０）のスレーブクロック２０１が進む時間τsとが等しい場合、（１０）式から算出される補正変数Ｎの値をサブカウンタ３０２のティックレートＡに加えると、時刻誤差Ｅが０になる。
【００２１】
また、所定の調整時間τの間にマスタクロックが進む時間τmと、所定の調整時間τの間にスレーブクロック２０１が進む時間τsとは、厳密には等しくない場合がある。しかし、下記（１１）式に示すように、時刻誤差Ｅと比較して、時間τmと時間τsとの差は、通常、非常に小さい。
E >> (τm - τs) + α   ・・・(11)
したがって、所定の調整時間τの後に、時刻誤差Ｅは充分に減少しうる。なお、（１１）式において、αは伝送路遅延の見積もり誤差等の誤差要因である。
【００２２】
さらに、図１に示すネットワーク５におけるマスタ端末１からスレーブ端末１０への伝送路遅延Ｄmsが無視しえない値の場合は、算出される補正変数Ｎの値をティックレートＡに加えても、時刻誤差Ｅが０にならない場合もある。しかし、算出される補正変数Ｎの値をティックレートＡに加えることにより、補正変数Ｎの値をティックレートＡに加えなかった場合と比較して、時刻誤差Ｅは減少しうる。
【００２３】
図２に示すクロック補正部３０７は、補正値算出部３０６が算出した補正変数Ｎの値を、所定の調整時間τの間、サブカウンタ３０２のティックレートＡに加え、スレーブクロック２０１を補正する。所定の調整時間τを経過した後、クロック補正部３０７は、補正変数Ｎの値をサブカウンタ３０２のティックレートＡに加えることを止める。すなわち、所定の調整時間τを経過した後、補正変数Ｎの値を０にする。
【００２４】
また、判定部３０８が、時刻誤差Ｅが許容範囲内にあると判定した場合は、補正値算出部３０６は、下記（１２）式を用い、補正変数Ｎの値を算出してもよい。この場合、クロック補正部３０７は、（１２）式を用いて算出された補正変数Ｎの値をサブカウンタ３０２のティックレートＡに加える、比例―積分（ＰＩ）制御をおこなう。
N = E / P + Σ(E / I)           ・・・(12)
ここで、Ｐは比例帯、Ｉは積分時間を表す。
【００２５】
図２に示すＣＰＵ３００には、パラメータ記憶装置３５０及び補正時刻差関数記憶装置３５１が接続されている。パラメータ記憶装置３５０は、オペレータ等によって設定された調整時間τの値を保存する。また、パラメータ記憶装置３５０は、オペレータ等によって設定された補正スレーブ時刻とマスタ時刻との時刻誤差の許容範囲のデータを保存する。さらに、補正時刻差関数記憶装置３５１は、上記（８）式を、補正時刻差関数として保存する。ＣＰＵ３００には、さらに入力装置３１２、出力装置３１３、プログラム記憶装置３３０、及び一時記憶装置３３１が接続されている。入力装置３１２としては、キーボード、マウス等が使用可能である。出力装置３１３としては液晶表示装置（ＬＣＤ）、発光ダイオード（ＬＥＤ）等によるモニタ画面等が使用可能である。プログラム記憶装置３３０は、ＣＰＵ３００で実行されるプログラムを保存している。一時記憶装置３３１は、ＣＰＵ３００の演算過程でのデータを一時的に保存する。
【００２６】
次に、図５に示すフローチャートを用いて第１の実施の形態に係るスレーブ端末のクロックの補正方法について説明する。なお、図２に示すＣＰＵ３００の演算結果は、一時記憶装置３３１に逐次保存されうる。
【００２７】
（ａ）ステップＳ１００で、図１に示すスレーブ端末１０の電源がオンにされる。これにより、マスタ端末１に対するスレーブ端末１０の同期処理が開始される。図２に示すサブカウンタ３０２は、図３に示すように、固定の時間間隔ωごとに所定のティックレートＡを加算して、サブカウントＣｓを算出する。サブカウントＣｓが所定の閾値Ｒを超える度に、図２に示すメインカウンタ３０３は、図３に示すように、メインカウントＣｍを１だけインクリメントする。また、図２に示す時刻算出部３０４は、上記（２）式を用いて、未補正スレーブ時刻を算出する。
【００２８】
（ｂ）ステップＳ１０１で、スレーブ端末１０は、図１に示すマスタ端末１から「同期メッセージ」を受信するまで待機する。図２に示すポート３０１が「同期メッセージ」を受信した場合、ポート３０１は、「同期メッセージ」を誤差算出部３０５に伝送する。ステップＳ１０２で、誤差算出部３０５は、ポート３０１が「同期メッセージ」を受信した時の未補正スレーブ時刻Ｔs_r1をスレーブクロック２０１から取得する。
【００２９】
（ｃ）ステップＳ１０３で、スレーブ端末１０は、図１に示すマスタ端末１から「フォローメッセージ」を受信するまで待機する。図２に示すポート３０１が「フォローメッセージ」を受信した場合、ポート３０１は、「フォローメッセージ」を誤差算出部３０５に伝送する。ステップＳ１０４で、誤差算出部３０５は、「フォローメッセージ」から、マスタ時刻Ｔm_t1を取得する。次に、ステップＳ１０５で、誤差算出部３０５は、上記（４）式を用いて、図１に示すネットワーク５におけるマスタ端末１からスレーブ端末１０への伝送路遅延Ｄmsがないものとして、マスタ時刻Ｔm_t1と、未補正スレーブ時刻Ｔs_r1との時刻誤差Ｅを算出する。その後、図２に示す誤差算出部３０５は、算出した時刻誤差Ｅを判定部３０８に伝送する。
【００３０】
（ｄ）ステップＳ１０６で判定部３０８は、パラメータ記憶装置３５０から許容範囲のデータを読みだし、時刻誤差Ｅが許容範囲内か否かを判定する。時刻誤差Ｅが許容範囲外である場合、ステップＳ１０７に進む。ステップＳ１０７で、補正値算出部３０６は、補正時刻差関数記憶装置３５１から、上記（８）式で与えられる、未補正スレーブ時刻と補正スレーブ時刻との補正時刻差ΔＴｓを与える補正時刻差関数を読みだす。また、補正値算出部３０６は、予めオペレータ等によって保存された調整時間τの値をパラメータ記憶装置３５０から読みだす。次に、補正値算出部３０６は、（８）式の補正時刻差関数の補正時刻差ΔＴｓの変数に、誤差算出部３０５が算出した時刻誤差Ｅの値を代入する。また、補正値算出部３０６は、補正時刻差関数の調整時間τの変数に、パラメータ記憶装置３５０から読みだした調整時間τの値を代入し、ティックレートＡの変数に、サブカウンタ３０３に固有のティックレートＡの値を代入して、補正変数Ｎの値を算出する。補正値算出部３０６は、算出した補正変数Ｎの値をクロック補正部３０７に伝送する。
【００３１】
（ｅ）ステップＳ１０８及びステップＳ１０９で、クロック補正部３０７は、調整時間τの間、補正値算出部３０６が算出した補正変数Ｎの値をサブカウンタ３０２のティックレートＡに加える。サブカウンタ３０２は、時間間隔ωごとに補正変数Ｎの値を加えられたティックレートＡを加算して、サブカウントＣｓを算出する。ティックレートＡが補正されたことにより、メインカウンタ３０３は、補正された周期Ω（Ｎ）でメインカウントＣｍをインクリメントする。また、時刻算出部３０４は、補正された周期Ω（Ｎ）でインクリメントするメインカウントＣｍに基づいて、補正スレーブ時刻を算出する。調整時間τを経過した後、ステップＳ１１０で、クロック補正部３０７は、サブカウンタ３０２のティックレートＡに加える補正変数Ｎの値を０にリセットする。その後、ステップＳ１３０で、マスタ端末１に対するスレーブ端末１０の同期処理を継続するか判定し、同期処理を継続する場合は、ステップＳ１０１に戻る。
【００３２】
（ｆ）ステップＳ１０６の判定結果が許容範囲内である場合、ステップＳ１２０に進み、補正値算出部３０６は、上記（１２）式を用いて補正変数Ｎの値を算出し、クロック補正部３０７は、サブカウンタ３０２を、定常特性に優れたＰＩ制御方法で補正する。その後、ステップＳ１３０で、マスタ端末１に対するスレーブ端末１０の同期処理を継続するか判定し、同期処理を継続する場合は、ステップＳ１０１に戻る。スレーブ端末１０の電源がオフにする場合等、同期処理を継続する必要がなくなった場合は、同期処理を終了する。
【００３３】
従来、図６に示すようにスレーブ端末の電源をオンした後、マスタ端末から1回目の同期メッセージ及びフォローメッセージを受信し、Ｐ−Ｉ制御方法のみによってマスタ時刻とスレーブ時刻との時刻誤差をなくすこころみがなされていた。しかし、電源をオンした直後の時刻誤差は大きいため、最初からＰ−Ｉ制御方法によって時刻誤差を補正しようとすると、時刻誤差が正負の間で発振し、時刻誤差が許容範囲内に収まるまで時間がかかるという問題があった。
【００３４】
これに対し、第１の実施の形態に係るスレーブ端末のクロックの補正方法を用いれば、図７に示すように、マスタ端末から1回目の同期メッセージ及びフォローメッセージを受信した後、短時間でマスタ時刻とスレーブ時刻との時刻誤差を許容範囲内に減少させることが可能となる。また、Ｐ−Ｉ制御は、定常的な補正には優れているため、時刻誤差が許容範囲内になった後は、Ｐ−Ｉ制御により、時刻誤差の補正を継続してもよい。
【００３５】
なお、上記（３）式及び（４）式で説明したように、第１の実施の形態において、図２に示す誤差算出部３０５は、図１に示すネットワーク５におけるマスタ端末１からスレーブ端末１０への伝送路遅延Ｄmsがないものとして、時刻誤差Ｅを算出する。ここで、ネットワーク５における双方向の伝送路遅延Ｄは、後述するように、マスタ時刻及びスレーブ時刻に基づいて算出可能である。しかし、マスタ時刻とスレーブ時刻との時刻誤差Ｅが大きい場合、マスタ時刻及びスレーブ時刻に基づいて算出される伝送路遅延Ｄも大きな誤差を含みうる。したがって、伝送路遅延Ｄを０として時刻誤差Ｅを算出したほうが、上記（１０）式で算出される補正変数の値Ｎの精度が向上しうる。
【００３６】
また、図５のステップＳ１０８及びステップＳ１０９において、調整時間τの間に図２に示すスレーブ端末１０が新たな同期メッセージを受信しても、調整時間τの間に受信した同期メッセージはスレーブクロック２０１の補正に利用されない。しかし、調整時間τを経過した後、ステップＳ１０１に戻った時に受信する新たな同期メッセージをその後のスレーブクロック２０１の補正に利用することで、正確なタイミングでスレーブクロック２０１を補正することが可能となる。
【００３７】
（第１の実施の形態の変形例）
図５においては、ステップＳ１０８及びステップＳ１０９において、調整時間τの間に受信される同期メッセージを図２に示すスレーブクロック２０１の補正に利用しない例を説明した。これに対し、図８に示すように、ステップＳ１０８とステップＳ１０９との間に、「同期メッセージ」を受信したか否かを判定するステップを挿入してもよい。この場合、調整時間τの間にスレーブ端末１０が新たな「同期メッセージ」を受信すると、ステップＳ１０２に戻り、調整時間τの経過を待つことなく、新たな補正変数Ｎの算出が開始される。
【００３８】
（第２の実施の形態）
第１の実施の形態において、図２に示す誤差算出部３０５が、図１に示すネットワーク５におけるマスタ端末１からスレーブ端末１０への伝送路遅延Ｄmsがないものとして、上記（４）式に示すように時刻誤差Ｅを算出する例を説明した。しかし、ネットワーク５が、構内通信網（ＬＡＮ：Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）のように小規模であり、接続ノードの数も限定的であれば、ネットワーク５における双方向の伝送路遅延Ｄの値が例えば２０マイクロ秒程度で一定であり、変動が少ない場合がある。そこで、図２に示す第２の実施の形態に係るスレーブ端末１０においては、例えば不揮発性のパラメータ記憶装置３５０に、オペレータ等によって入力された所定の伝送路遅延Ｄの値が保存されている。この場合、図２に示す誤差算出部３０５は、上記（３）式の伝送路遅延Ｄmsの変数に、パラメータ記憶装置３５０から読みだした伝送路遅延Ｄの値を代入して、時刻誤差Ｅを算出する。第２の実施の形態に係るスレーブ端末１０のその他の構成要素は、第１の実施の形態に係るスレーブ端末１０と同様であるので、説明は省略する。
【００３９】
（第３の実施の形態）
図９に示すように、第３の実施の形態に係るスレーブ端末１０のＣＰＵ３００は、遅延取得部３０９をさらに備える。遅延取得部３０９は、ポート３０１を介して、図１に示すマスタ端末１に図１０に示す「要求メッセージ」を送信する。また、図９に示す遅延取得部３０９は、ポート３０１が「要求メッセージ」を送信した時の未補正スレーブ時刻Ｔs_t1をスレーブクロック２０１から取得する。図１に示すマスタ端末１は、ポートが「要求メッセージ」を受信したときのマスタ時刻Ｔm_r1をマスタクロックから取得する。さらに、マスタ端末１は、マスタ時刻Ｔm_r1が付与された「応答メッセージ」をスレーブ端末１０に送信するよう指示する。
【００４０】
ネットワーク１におけるマスタ端末１からスレーブ端末１０への伝送路遅延Ｄmsは、上記（３）式を変形して下記（１３）式で与えられる。
Dms = (Ts_r1 -E) - Tm_t1        ・・・(13)
また、ネットワーク１におけるスレーブ端末１０からマスタ端末１への伝送路遅延Ｄsmは、「要求メッセージ」及び「応答メッセージ」を用いて取得された未補正スレーブ時刻Ｔs_t1、マスタ時刻Ｔm_r1、及び時刻誤差Ｅを用いて、下記（１４）式で与えられる。
Dsm = Tm_r1 - (Ts_t1 - E)       ・・・(14)
図９に示す遅延取得部３０９は、ネットワーク１における伝送路遅延Ｄが対称的であるとみなしうる場合、下記（１５）に示すように、マスタ端末１からスレーブ端末１０への伝送路遅延Ｄmsと、スレーブ端末１０からマスタ端末１への伝送路遅延Ｄsmとの平均値を、ネットワーク１における伝送路遅延Ｄとして算出する。
D = (Dms + Dsm) / 2
= [(Ts_r1 -E) - Tm_t1 + Tm_r1 - (Ts_t1 - E)] / 2
= (Ts_r1 - Tm_t1 + Tm_r1 - Ts_t1) / 2         ・・・(15)
そこで、第３の実施の形態においては、誤差算出部３０５は、遅延取得部３０９が算出した伝送路遅延Ｄの値を、上記（３）式の変数Ｄmsに代入して、時刻誤差Ｅを算出する。第３の実施の形態に係るスレーブ端末１０のその他の構成要素は、第１の実施の形態に係るスレーブ端末１０と同様であるので、説明は省略する。
【００４１】
（その他の実施の形態）
上記のように、本発明は実施の形態によって記載したが、この開示の一部をなす記述及び図面はこの発明を限定するものであると理解するべきではない。この開示から当業者には様々な代替実施の形態、実施の形態及び運用技術が明らかになるはずである。
【００４２】
例えば、図１に示すマスタ端末１は、スレーブ端末１０と同様のサブカウンタ及びメインカウンタを有していてもよい。また、マスタ端末１と同期したスレーブ端末１０は、他のスレーブ端末１４，１８に対して、マスタ端末として機能してもよい。また、図２において、スレーブクロック２０１等をＣＰＵ３００のモジュールとして表現したが、スレーブクロック２０１等は独立したハードウェアであってもよいことはもちろんである。
【００４３】
なお、図１１に示すように、調整時間τを経過し、時刻誤差Ｅが許容範囲内になった後も、１回目の同期メッセージ及びフォローメッセージに基づいて算出された補正変数Ｎの値を続けると、時刻誤差Ｅが再び拡大する場合がある。この場合、調整時間τを経過した後は、補正変数Ｎの値を０にリセットするか、あるいは、時刻誤差Ｅが許容範囲内になった後は、Ｐ−Ｉ制御方法等による補正に切り替えるとよい。ただし、マスタクロックとのティックレートと、スレーブクロックのティックレートとが十分に等しい場合は、時刻誤差Ｅが再び拡大することは生じない。この様に、本発明はここでは記載していない様々な実施の形態等を包含するということを理解すべきである。
【符号の説明】
【００４４】
１    マスタ端末
５    ネットワーク
１０  スレーブ端末
２０１        スレーブクロック
３０１        ポート
３０２        サブカウンタ
３０３        メインカウンタ
３０４        時刻算出部
３０５        誤差算出部
３０６        補正値算出部
３０７        クロック補正部
【図４】
2011035696.tif 000003
【図６】
2011035696.tif 000004
【図１０】
2011035696.tif 000005
【図１】
2011035696.tif 000006
【図２】
2011035696.tif 000007
【図３】
2011035696.tif 000008
【図５】
2011035696.tif 000009
【図７】
2011035696.tif 000010
【図８】
2011035696.tif 000011
【図９】
2011035696.tif 000012
【図１１】
2011035696.tif 000013