(57)【要約】【課題】ネットワーク上のマスタ機器との間で時刻情報を高精度に同期させる。【解決手段】本開示の一側面である時刻制御装置は、マスタ機器との間で送受信したメッセージの送受信時刻に基づいて、前記マスタ機器との時刻差、および前記メッセージを前記ネットワークを介して通信するために要する時間を示すネットワーク遅延を算出する算出部と、算出された前記時刻差に基づき、前記スレーブ機器の時刻情報をフィードバック制御するためのフィードバック制御値ｆ１を生成するPID処理部と、生成された前記フィードバック制御値ｆ１に基づいてフィードバック制御値ｆ０を生成するｆ０生成部と、算出された前記ネットワーク遅延に基づいて選択された前記フィードバック制御値ｆ１または前記フィードバック制御値ｆ０に従い、前記スレーブ機器の時刻情報を調整する調整部とを備える。本開示は、例えば、PTPスレーブに適用できる。【選択図】図３
2013083450.tif 000002
【特許請求の範囲】
【請求項１】
スレーブ機器に内蔵され、ネットワークを介して接続されたマスタ機器との間で時刻情報を同期させる時刻制御装置において、
前記マスタ機器との間で送受信したメッセージの送受信時刻に基づいて、前記マスタ機器との時刻差、および前記メッセージを前記ネットワークを介して通信するために要する時間を示すネットワーク遅延を算出する算出部と、
算出された前記時刻差に基づき、前記スレーブ機器の時刻情報をフィードバック制御するためのフィードバック制御値ｆ１を生成するPID処理部と、
生成された前記フィードバック制御値ｆ１に基づいてフィードバック制御値ｆ０を生成するｆ０生成部と、
算出された前記ネットワーク遅延に基づいて選択された前記フィードバック制御値ｆ１または前記フィードバック制御値ｆ０に従い、前記スレーブ機器の時刻情報を調整する調整部と
を備える時刻制御装置。
【請求項２】
前記調整部は、算出された前記ネットワーク遅延がその最小値から所定の範囲の値である場合には前記フィードバック制御値ｆ１に従って前記スレーブ機器の時刻情報を調整し、算出された前記ネットワーク遅延がその最小値から所定の範囲外の値である場合には前記フィードバック制御値ｆ０に従って前記スレーブ機器の時刻情報を調整する
請求項１に記載の時刻制御装置。
【請求項３】
前記ｆ０生成部は、所定の条件を満たすときに生成された複数の前記フィードバック制御値ｆ１を平均化することにより前記フィードバック制御値ｆ０を生成する
請求項２に記載の時刻制御装置。
【請求項４】
前記ｆ０生成部は、算出された前記時刻差が０であるときに生成された複数の前記フィードバック制御値ｆ１を平均化することにより前記フィードバック制御値ｆ０を生成する
請求項３に記載の時刻制御装置。
【請求項５】
前記ｆ０生成部は、算出された前記時刻差が所定の閾値よりも小さいときに生成された複数の前記フィードバック制御値ｆ１を平均化することにより前記フィードバック制御値ｆ０を生成する
請求項３に記載の時刻制御装置。
【請求項６】
前記ｆ０生成部は、算出された前記ネットワーク遅延が所定の閾値よりも小さいときに生成された複数の前記フィードバック制御値ｆ１を平均化することにより前記フィードバック制御値ｆ０を生成する
請求項３に記載の時刻制御装置。
【請求項７】
前記ｆ０生成部は、
所定の動作開始期間において、算出された前記時刻差が所定の閾値よりも小さいときに生成された複数の前記フィードバック制御値ｆ１を平均化することにより前記フィードバック制御値ｆ０を生成し、
前記所定の動作開始期間終了後において、算出された前記時刻差が０であるときに生成された複数の前記フィードバック制御値ｆ１を平均化することにより前記フィードバック制御値ｆ０を生成する
請求項３に記載の時刻制御装置。
【請求項８】
前記ｆ０生成部は、
所定の動作開始期間において、算出された前記時刻差が第１の閾値よりも小さいときに生成された複数の前記フィードバック制御値ｆ１を平均化することにより前記フィードバック制御値ｆ０を生成し、
前記所定の動作開始期間終了後において、算出された前記時刻差が前記第１の閾値よりも小さな第２の閾値よりも小さいときに生成された複数の前記フィードバック制御値ｆ１を平均化することにより前記フィードバック制御値ｆ０を生成する
請求項３に記載の時刻制御装置。
【請求項９】
前記ｆ０生成部は、
所定の動作開始期間において、算出された前記ネットワーク遅延が第１の閾値よりも小さいときに生成された複数の前記フィードバック制御値ｆ１を平均化することにより前記フィードバック制御値ｆ０を生成し、
前記所定の動作開始期間終了後において、算出された前記ネットワーク遅延が前記第１の閾値よりも小さな第２の閾値よりも小さいときに生成された複数の前記フィードバック制御値ｆ１を平均化することにより前記フィードバック制御値ｆ０を生成する
請求項３に記載の時刻制御装置。
【請求項１０】
スレーブ機器に内蔵され、ネットワークを介して接続されたマスタ機器との間で時刻情報を同期させる時刻制御装置の時刻制御方法において、
前記時刻制御装置による、
前記マスタ機器との間で送受信したメッセージの送受信時刻に基づいて、前記マスタ機器との時刻差、および前記メッセージを前記ネットワークを介して通信するために要する時間を示すネットワーク遅延を算出する算出ステップと、
算出された前記時刻差に基づき、前記スレーブ機器の時刻情報をフィードバック制御するためのフィードバック制御値ｆ１を生成するPID処理ステップと、
生成された前記フィードバック制御値ｆ１に基づいてフィードバック制御値ｆ０を生成するｆ０生成ステップと、
算出された前記ネットワーク遅延に基づいて選択された前記フィードバック制御値ｆ１または前記フィードバック制御値ｆ０に従い、前記スレーブ機器の時刻情報を調整する調整ステップと
を含む時刻制御方法。
【請求項１１】
スレーブ機器に内蔵され、ネットワークを介して接続されたマスタ機器との間で時刻情報を同期させるコンピュータを、
前記マスタ機器との間で送受信したメッセージの送受信時刻に基づいて、前記マスタ機器との時刻差、および前記メッセージを前記ネットワークを介して通信するために要する時間を示すネットワーク遅延を算出する算出部と、
算出された前記時刻差に基づき、前記スレーブ機器の時刻情報をフィードバック制御するためのフィードバック制御値ｆ１を生成するPID処理部と、
生成された前記フィードバック制御値ｆ１に基づいてフィードバック制御値ｆ０を生成するｆ０生成部と、
算出された前記ネットワーク遅延に基づいて選択された前記フィードバック制御値ｆ１または前記フィードバック制御値ｆ０に従い、前記スレーブ機器の時刻情報を調整する調整部と
して機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、時刻制御装置、時刻制御方法、およびプログラムに関し、特に、ネットワーク上に存在するマスタ機器との間で時刻情報を高い精度で同期させる場合に用いて好適な時刻制御装置、時刻制御方法、およびプログラムに関する。
【背景技術】
【０００２】
従来、ネットワークを介して接続されている装置間でそれぞれの時刻情報を同期させる仕組みが存在し、その代表的なものとしてIEEE1588PTP(precision time protocol)が知られている（例えば、特許文献１参照）。
【０００３】
IEEE1588PTPによれば、ネットワークを介して接続されているマスタ機器（以下、PTPマスタと称する）とスレーブ機器（以下、PTPスレーブと称する）との間でPTPメッセージを通信することにより、PTPマスタの時刻情報Ｔ１に対して、PTPスレーブの時刻情報Ｔ２をsubμsecの高精度で同期させることができる。具体的には、PTPマスタ内部の発振周波数Ｆ１にPTPスレーブ内部の発振周波数Ｆ２を同期させ、その後、時刻情報Ｔ１に時刻情報Ｔ２を同期させることができる。
【０００４】
図１は、IEEE1588PTPを利用した従来の高精度時刻同期処理の概要を示している。
【０００５】
PTPマスタは、発振周波数Ｆ１に基づく所定の周期Δｍで、送信時刻Ｔ１iを示すタイムスタンプを含むPTPメッセージとしてのSyncメッセージを、ネットワーク上に送信するようになされている。一方、PTPスレーブは、PTPマスタが送信したSyncメッセージを受信すると、そこに含まれる送信時刻Ｔ１iを示すタイムスタンプを抽出するとともに、その受信時刻Ｔ２iを取得するようになされている。すなわち、PTPスレーブは、Syncパケットを受信する毎に、送信時刻Ｔ１iと受信時刻Ｔ２iを得ることになる。
【０００６】
また、PTPスレーブは、PTPメッセージとしてのDelay_reqを、ネットワークを介してPTPマスタに送信し、そのときの送信時刻Ｔ２Xを記憶するようになされている。これを受信したPTPマスタは、その受信時刻Ｔ１Xを示すタイムスタンプを含めたDelay_resをPTPメッセージとしてのPTPスレーブに返信するようになされている。すなわち、PTPスレーブは、Delay_reqを送信し、それに応じてPTPマスタから返信されるDelay_resを受信することにより、Delay_reqの送信時刻Ｔ２Xと受信時刻Ｔ１Xを得ることになる。
【０００７】
なお、Syncメッセージ、Delay_req、Delay_resなどのPTPメッセージを、ネットワークを介して通信するために要する時間（以下、ネットワーク遅延と称する）は変動せず常に一定であると仮定する。
【０００８】
この場合、PTPマスタの発振周波数Ｆ１に対してPTPスレーブの発振周波数Ｆ２が完全に同期していれば、PTPマスタにおけるSyncメッセージの送信間隔Δｍ＝Ｔ１2−Ｔ１1とPTPスレーブにおけるSyncメッセージの受信間隔Δｓ＝Ｔ２2−Ｔ２1が等しくなる。換言すれば、ΔｍとΔｓの差Δｍ−Δｓが０ではない場合、PTPマスタの発振周波数Ｆ１に対してPTPスレーブの発振周波数Ｆ２は誤差があって同期していない。
【０００９】
したがって、周波数同期については、PTPスレーブにおいて、ΔｍとΔｓの差Δｍ−Δｓが０になるように、発振周波数Ｆ２を調整すればよい。以下、ΔｍとΔｓの差Δｍ−Δｓを周波数ずれと称する。周波数ずれは、次式（１）に従って算出する。
【００１０】
周波数ずれΔｍ−Δｓ
＝（Ｔ１2−Ｔ１1）−（Ｔ２2−Ｔ２1）＝（Ｔ２1−Ｔ１1）−（Ｔ２2−Ｔ１2）
・・・（１）
【００１１】
時刻同期については、上述したように周波数同期を確立した後、PTPスレーブがDelay_reqを送信し、その返信であるDelay_resを受信することにより、Delay_reqの送信時刻Ｔ２3と受信時刻Ｔ１3を得るようにする。
【００１２】
PTPマスタの時刻情報Ｔ１に対するPTPスレーブの時刻情報Ｔ２の差を時刻差とすれば、次式（２）および（３）が成立し、式（２）および（３）より次式（４）が求まる。
受信時刻Ｔ２2−送信時刻Ｔ１2＝ネットワーク遅延＋時刻差
・・・（２）
受信時刻Ｔ１3−送信時刻Ｔ２3＝ネットワーク遅延−時刻差
・・・（３）
時刻差＝｛（Ｔ２2−Ｔ１3）−（Ｔ１2−Ｔ２3）｝／２
・・・（４）
【００１３】
PTPスレーブにおいては、式（４）に示された時刻差が０となるように、時刻情報Ｔ２を調整すればよい。
【００１４】
図２は、PTPスレーブにおいて時刻同期を確立するための時刻制御装置の構成の一例を示している。
【００１５】
この時刻制御装置１０は、減算部１１，１２，１３、除算部１４、平均値算出部１５、PID(proportional integral differential)処理部１６、および時刻調整部１７から構成される。
【００１６】
減算部１１は、上述した式（２）に出現する受信時刻Ｔ２2−送信時刻Ｔ１2を算出して減算部１３に出力する。減算部１２は、上述した式（３）に出現する受信時刻Ｔ２3−送信時刻Ｔ１3を算出して減算部１３に出力する。減算部１３および除算部１４は、上述した式（４）で示される時刻差を算出して平均値算出部１５に出力する。
【００１７】
平均値算出部１５は、前段の除算部１４から入力される時刻差を最新のものから順に所定の数だけ保持しており、除算部１４から時刻差が入力される毎、保持している所定の数の時刻差との平均値を算出してPID処理部１６に出力する。
【００１８】
PID処理部１６は、平均値算出部１５からの時刻差の平均値を入力とし、後段の時刻調整部１７をPID制御するためのフィードバック制御値ｆ１を算出して時刻調整部１７に出力する。時刻調整部１７は、フィードバック制御値ｆ１に基づいて時刻情報Ｔ２を調整する。
【先行技術文献】
【特許文献】
【００１９】
【特許文献１】特開２０１０−１９０６３５号公報
【発明の概要】
【発明が解決しようとする課題】
【００２０】
ところで、PTPマスタとPTPスレーブが接続されている当該ネットワーク上に映像信号などの高容量のパケットが高速で流されるとネットワークに輻輳が生じてしまい、上述したPTPメッセージのネットワーク遅延が一時的に増加してしまうことが起こり得る。
【００２１】
このような場合、上述した仮定「PTPメッセージのネットワーク遅延は変動せず常に一定である」が成立しなくなってしまうので、上述した方法では周波数同期や時刻同期を正確に実行することができなかった。
【００２２】
本開示はこのような状況に鑑みてなされたものであり、ネットワーク上のマスタ機器との間で時刻情報を高精度に同期できるようにするものである。
【課題を解決するための手段】
【００２３】
本開示の一側面である時刻制御装置は、スレーブ機器に内蔵され、ネットワークを介して接続されたマスタ機器との間で時刻情報を同期させる時刻制御装置において、前記マスタ機器との間で送受信したメッセージの送受信時刻に基づいて、前記マスタ機器との時刻差、および前記メッセージを前記ネットワークを介して通信するために要する時間を示すネットワーク遅延を算出する算出部と、算出された前記時刻差に基づき、前記スレーブ機器の時刻情報をフィードバック制御するためのフィードバック制御値ｆ１を生成するPID処理部と、生成された前記フィードバック制御値ｆ１に基づいてフィードバック制御値ｆ０を生成するｆ０生成部と、算出された前記ネットワーク遅延に基づいて選択された前記フィードバック制御値ｆ１または前記フィードバック制御値ｆ０に従い、前記スレーブ機器の時刻情報を調整する調整部とを備える。
【００２４】
前記調整部は、算出された前記ネットワーク遅延がその最小値から所定の範囲の値である場合には前記フィードバック制御値ｆ１に従って前記スレーブ機器の時刻情報を調整し、算出された前記ネットワーク遅延がその最小値から所定の範囲外の値である場合には前記フィードバック制御値ｆ０に従って前記スレーブ機器の時刻情報を調整することができる。
【００２５】
前記ｆ０生成部は、所定の条件を満たすときに生成された複数の前記フィードバック制御値ｆ１を平均化することにより前記フィードバック制御値ｆ０を生成することができる。
【００２６】
前記ｆ０生成部は、算出された前記時刻差が０であるときに生成された複数の前記フィードバック制御値ｆ１を平均化することにより前記フィードバック制御値ｆ０を生成することができる。
【００２７】
前記ｆ０生成部は、算出された前記時刻差が所定の閾値よりも小さいときに生成された複数の前記フィードバック制御値ｆ１を平均化することにより前記フィードバック制御値ｆ０を生成することができる。
【００２８】
前記ｆ０生成部は、算出された前記ネットワーク遅延が所定の閾値よりも小さいときに生成された複数の前記フィードバック制御値ｆ１を平均化することにより前記フィードバック制御値ｆ０を生成することができる。
【００２９】
前記ｆ０生成部は、  所定の動作開始期間において、算出された前記時刻差が所定の閾値よりも小さいときに生成された複数の前記フィードバック制御値ｆ１を平均化することにより前記フィードバック制御値ｆ０を生成し、前記所定の動作開始期間終了後において、算出された前記時刻差が０であるときに生成された複数の前記フィードバック制御値ｆ１を平均化することにより前記フィードバック制御値ｆ０を生成することができる。
【００３０】
前記ｆ０生成部は、所定の動作開始期間において、算出された前記時刻差が第１の閾値よりも小さいときに生成された複数の前記フィードバック制御値ｆ１を平均化することにより前記フィードバック制御値ｆ０を生成し、前記所定の動作開始期間終了後において、算出された前記時刻差が前記第１の閾値よりも小さな第２の閾値よりも小さいときに生成された複数の前記フィードバック制御値ｆ１を平均化することにより前記フィードバック制御値ｆ０を生成することができる。
【００３１】
前記ｆ０生成部は、所定の動作開始期間において、算出された前記ネットワーク遅延が第１の閾値よりも小さいときに生成された複数の前記フィードバック制御値ｆ１を平均化することにより前記フィードバック制御値ｆ０を生成し、前記所定の動作開始期間終了後において、算出された前記ネットワーク遅延が前記第１の閾値よりも小さな第２の閾値よりも小さいときに生成された複数の前記フィードバック制御値ｆ１を平均化することにより前記フィードバック制御値ｆ０を生成することができる。
【００３２】
本開示の一側面である時刻制御方法は、スレーブ機器に内蔵され、ネットワークを介して接続されたマスタ機器との間で時刻情報を同期させる時刻制御装置の時刻制御方法において、前記時刻制御装置による、前記マスタ機器との間で送受信したメッセージの送受信時刻に基づいて、前記マスタ機器との時刻差、および前記メッセージを前記ネットワークを介して通信するために要する時間を示すネットワーク遅延を算出する算出ステップと、算出された前記時刻差に基づき、前記スレーブ機器の時刻情報をフィードバック制御するためのフィードバック制御値ｆ１を生成するPID処理ステップと、生成された前記フィードバック制御値ｆ１に基づいてフィードバック制御値ｆ０を生成するｆ０生成ステップと、算出された前記ネットワーク遅延に基づいて選択された前記フィードバック制御値ｆ１または前記フィードバック制御値ｆ０に従い、前記スレーブ機器の時刻情報を調整する調整ステップとを含む。
【００３３】
本開示の一側面であるプログラムは、スレーブ機器に内蔵され、ネットワークを介して接続されたマスタ機器との間で時刻情報を同期させるコンピュータを、前記マスタ機器との間で送受信したメッセージの送受信時刻に基づいて、前記マスタ機器との時刻差、および前記メッセージを前記ネットワークを介して通信するために要する時間を示すネットワーク遅延を算出する算出部と、算出された前記時刻差に基づき、前記スレーブ機器の時刻情報をフィードバック制御するためのフィードバック制御値ｆ１を生成するPID処理部と、生成された前記フィードバック制御値ｆ１に基づいてフィードバック制御値ｆ０を生成するｆ０生成部と、算出された前記ネットワーク遅延に基づいて選択された前記フィードバック制御値ｆ１または前記フィードバック制御値ｆ０に従い、前記スレーブ機器の時刻情報を調整する調整部として機能させる。
【００３４】
本開示の一側面においては、マスタ機器との間で送受信したメッセージの送受信時刻に基づいて、前記マスタ機器との時刻差、および前記メッセージを前記ネットワークを介して通信するために要する時間を示すネットワーク遅延が算出され、算出された前記時刻差に基づき、前記スレーブ機器の時刻情報をフィードバック制御するためのフィードバック制御値ｆ１が生成され、生成された前記フィードバック制御値ｆ１に基づいてフィードバック制御値ｆ０が生成される。そして、算出された前記ネットワーク遅延に基づいて選択された前記フィードバック制御値ｆ１または前記フィードバック制御値ｆ０に従い、前記スレーブ機器の時刻情報が調整される。
【発明の効果】
【００３５】
本開示の一側面によれば、ネットワーク上のマスタ機器との間で時刻情報を高精度に同期させることができる。
【図面の簡単な説明】
【００３６】
【図１】IEEE1588PTPを利用した従来の高精度時刻同期処理の概要を示す図である。
【図２】従来の時刻制御装置の構成の一例を示すブロック図である。
【図３】本開示を適用した時刻制御装置の構成例を示すブロック図である。
【図４】図３のｆ０生成部の第１の構成例を示すブロック図である。
【図５】図３の時刻制御装置の動作を説明するフローチャートである。
【図６】図３のｆ０生成部の第２の構成例を示すブロック図である。
【図７】コンピュータの構成例を示すブロック図である。
【発明を実施するための形態】
【００３７】
以下、本開示を実施するための最良の形態（以下、実施の形態と称する）について、図面を参照しながら詳細に説明する。
【００３８】
本開示の実施の形態である時刻制御装置は、ネットワーク上のPTPマスタ（マスタ機器）とPTPメッセージを通信することにより、PTPマスタとの間で時刻情報を同期させるPTPスレーブ（スレーブ機器）に内蔵されるものである。なお、PTPマスタとの間で時刻情報を同期させるに先立ち、既にPTPスレーブの発振周波数Ｆ２については、PTPマスタの発振周波数Ｆ１と高精度に同期が確立しているものとする。
【００３９】
［時刻制御装置の構成例］
図３は、実施の形態である時刻制御装置の構成例を示している。この時刻制御装置３０は、ネットワーク遅延・時刻差算出部３１、スイッチ３７、最小値検出部３８、比較部３９、PID処理部４０、ｆ０生成部４１、セレクタ４２、および時刻調整部４３から構成される。
【００４０】
ネットワーク遅延・時刻差算出部３１は、減算部３２乃至３４、除算部３５、および加算部３６からなる。
【００４１】
減算部３２は、上述した式（２）に出現する受信時刻Ｔ２2−送信時刻Ｔ１2を算出して減算部３４および加算部３６に出力する。減算部３３は、上述した式（３）に出現する受信時刻Ｔ２3−送信時刻Ｔ１3を算出して減算部３４および加算部３６に出力する。減算部３４および除算部３５は、上述した式（４）に従い、時刻差を算出してスイッチ３７に出力する。加算部３６は、上述した式（２）および式（３）を加算することによりネットワーク遅延×２を算出して最小値検出部３８および比較部３９に出力する。
【００４２】
スイッチ３７は、比較部３９からの制御に従ってオン、オフすることにより、ネットワーク遅延・時刻差算出部３１の除算部３５から入力される時間差をPID処理部４０およびｆ０生成部４１に出力する。
【００４３】
最小値検出部３８は、ネットワーク遅延・時刻差算出部３１の加算部３６から入力されるネットワーク遅延×２を随時監視し、その入力値が保持している最小値よりも小さい場合には、その入力値により保持する最小値を更新する。また、最小値検出部３８は、保持する最小値を比較部３９に通知する。
【００４４】
比較部３９は、加算部３６から入力されるネットワーク遅延×２が、最小値検出部３８にて保持されている最小値を基準とする所定の閾値以下であるか否かを判定し、判定結果に基づいてスイッチ３７およびセレクタ４２を制御する。具体的には、判定結果が肯定である場合、スイッチ３７をオンとし、セレクタ４２を入力端子４２ａ側にスイッチングさせる。反対に、判定結果が否定である場合、スイッチ３７をオフとし、セレクタ４２を入力端子４２ｂ側にスイッチングさせる。
【００４５】
PID処理部４０は、スイッチ３７を介するネットワーク遅延・時刻差算出部３１からの時刻差を入力とし、後段の時刻調整部４３をPID制御するためのフィードバック制御値ｆ１を算出してセレクタ４２の入力端子４２ａおよびｆ０生成部４１に出力する。
【００４６】
ｆ０生成部４１は、PID処理部４０から順次入力されるフィードバック制御値ｆ１のうち、スイッチ３７を介してネットワーク遅延・時刻差算出部３１から入力される時刻差が所定の条件を満たすときのタイミングで入力されるものを複数保持する。また、ｆ０生成部４１は、保持する複数のフィードバック制御値ｆ１を平均化することによりフィードバック制御値ｆ０を算出してセレクタ４２の入力端子４２ｂに出力する。
【００４７】
セレクタ４２は、比較部３９からの制御に従い、入力端子４２ａに入力されるフィードバック制御値ｆ１、または入力端子４２ｂに入力されるフィードバック制御値ｆ０を時刻調整部４３に出力する。時刻調整部４３は、フィードバック制御値ｆ０またはフィードバック制御値ｆ１に基づいて内部時計の時刻情報Ｔ２を調整する。
【００４８】
[ｆ０生成部４１の第１の構成例]
図４は、ｆ０生成部４１の第１の構成例を示している。
【００４９】
ｆ０生成部４１の第１の構成例は、タイミング生成部５０、ラッチ５１、遅延部５２−１乃至５２−Ｎ、および平均値算出部５３から構成される。
【００５０】
タイミング生成部５０は、スイッチ３７を介してネットワーク遅延・時刻差算出部３１から入力される時刻差を監視し、時刻差が０であるときにラッチ５１に対する制御信号を出力する。
【００５１】
ラッチ５１は、PID処理部４０から順次入力されるフィードバック制御値ｆ１のうち、タイミング生成部５０から制御信号が入力されるタイミングで入力されるものを遅延部５２−１および平均値算出部５３に出力する。
【００５２】
遅延部５２−１は、ラッチ５１からフィードバック制御値ｆ１が入力される場合、それまで保持していたフィードバック制御値ｆ１を後段の遅延部５２−２および平均値算出部５３に出力するとともに、ラッチ５１から入力されるフィードバック制御値ｆ１を保持する。同様に、遅延部５１−２乃至５２−Ｎは、前段からフィードバック制御値ｆ１が入力される場合、それまで保持していたフィードバック制御値ｆ１を後段に出力するとともに、前段から入力されるフィードバック制御値ｆ１を保持する。
【００５３】
平均値算出部５３は、ラッチ５１および遅延部５２−１乃至５２−Ｎから入力されるＮ＋１個のフィードバック制御値ｆ１の平均値を算出してセレクタ４２の入力端子４２ｂに出力する。
【００５４】
なお、タイミング生成部５０において、時刻差が０であるときにラッチ５１に対する制御信号を出力する代わりに、時刻差が所定の閾値よりも小さいときにラッチ５１に対する制御信号を出力するようにしてもよい。あるいは、加算部３６にて算出されたネットワーク遅延をタイミング生成部５０に入力するようにし、ネットワーク遅延が所定の閾値よりも小さいときにラッチ５１に対する制御信号を出力するようにしてもよい。
【００５５】
[動作説明]
次に、時刻制御装置３０の動作について説明する。図５は、時刻制御装置３０による時刻制御処理を説明するフローチャートである。
【００５６】
この時刻制御処理は、所定の間隔で定期的に実行される。ステップＳ１において、ネットワーク遅延・時刻差算出部３１の減算部３２は、上述した式（２）に出現する受信時刻Ｔ２2−送信時刻Ｔ１2を算出して減算部３４および加算部３６に出力する。ステップＳ２において、減算部３３は、上述した式（３）に出現する受信時刻Ｔ２3−送信時刻Ｔ１3を算出して減算部３４および加算部３６に出力する。
【００５７】
ステップＳ３において、減算部３４および除算部３５は、上述した式（４）に従い、時刻差を算出してスイッチ３７に出力する。加算部３６は、上述した式（２）および式（３）を加算することによりネットワーク遅延×２を算出して最小値検出部３８および比較部３９に出力する。
【００５８】
ステップＳ４において、比較部３９は、加算部３６から入力されたネットワーク遅延×２が、最小値検出部３８にて保持されている最小値を基準とする所定の閾値以下であるか否かを判定する。ここで、判定結果が肯定である場合、処理はステップＳ５に進められる。
【００５９】
ステップＳ５において、スイッチ３７は、比較部３９からの制御に従ってオンとされる。PID処理部４０は、スイッチ３７を介してネットワーク遅延・時刻差算出部３１から入力された時刻差に基づき、時刻調整部４３をPID制御するためのフィードバック制御値ｆ１を算出してセレクタ４２の入力端子４２ａおよびｆ０生成部４１に出力する。
【００６０】
ステップＳ６において、ｆ０生成部４１は、PID処理部４０から順次入力されるフィードバック制御値ｆ１に基づき、フィードバック制御値ｆ０を算出してセレクタ４２の入力端子４２ｂに出力する。
【００６１】
ステップＳ７において、セレクタ４２は、比較部３９からの制御に従い、入力端子４２ａ側にスイッチングし、時刻調整部４３に対してフィードバック制御値ｆ１を出力する。ステップＳ８において、時刻調整部４３は、フィードバック制御値ｆ１に基づいて内部時計の時刻情報Ｔ２を調整する。
【００６２】
なお、ステップＳ４において、判定結果が否定である場合、処理はステップＳ９に進められる。ステップＳ９において、スイッチ３７は、比較部３９からの制御に従ってオフとされる。また、セレクタ４２は、比較部３９からの制御に従い、入力端子４２ｂ側にスイッチングし、ステップＳ６にて生成されているフィードバック制御値ｆ０を時刻調整部４３に出力する。以上で、時刻制御処理は終了される。
【００６３】
以上説明したように、時刻制御装置３０による時刻制御処理によれば、ネットワーク遅延が大きい場合（ネットワーク遅延×２が所定の閾値以上である場合）においても、時刻差が０であるときの複数のフィードバック制御値ｆ１の平均値であるフィードバック制御値ｆ０に基づいて、時刻調整部４３にて時刻情報Ｔ２の調整が行われる。したがって、ネットワーク遅延が大きい場合（ネットワーク遅延×２が所定の閾値以上である場合）には時刻調整を行わない従来に比較して、マスタ機器の時刻情報Ｔ１とのずれを小さくすることができる。
【００６４】
[ｆ０生成部４１の第２の構成例]
図６は、ｆ０生成部４１の第２の構成例を示している。
【００６５】
ｆ０生成部４１の第２の構成例は、カウンタ６１、比較部６２、第１タイミング生成部６３、第２タイミング生成部６４、ラッチ５１、遅延部５２−１乃至５２−Ｎ、および平均値算出部５３から成る。
【００６６】
カウンタ６１は、時刻制御装置３０の動作開始時に０にリセットされ、その後、PID処理部４０からフィードバック制御値ｆ１が入力される毎に１ずつカウントアップし、そのカウント値を比較部６２に通知する。比較部６２は、カウンタ６１のカウント値と所定の固定値とを比較し、比較結果に応じて第１タイミング生成部６３または第２タイミング生成部６４を動作させる。具体的には、カウント値が所定の固定値を越えるまでは第１タイミング生成部６３を動作させ、カウント値が所定の固定値を越えた後は第２タイミング生成部６４を動作させる。
【００６７】
第１タイミング生成部６３は、スイッチ３７を介してネットワーク遅延・時刻差算出部３１から入力される時刻差を監視し、時刻差が所定の閾値（正の数）よりも小さいときにラッチ５１に対する制御信号を出力する。
【００６８】
第２タイミング生成部６４は、スイッチ３７を介してネットワーク遅延・時刻差算出部３１から入力される時刻差を監視し、時刻差が０であるときにラッチ５１に対する制御信号を出力する。
【００６９】
ラッチ５１、遅延部５２−１乃至５２−Ｎ、および平均値算出部５３については、図４に示されたｆ０生成部４１の第１の構成例と同様であるので、その説明は省略する。
【００７０】
ｆ０生成部４１の第２の構成例によれば、図４に示されたｆ０生成部４１の第１の構成例に比較し、時刻制御装置３０の動作開始の初期においては、ラッチ５１に対する制御信号の発生頻度が高くなるので、フィードバック制御値ｆ０をより早く生成することができる。なお、このとき生成されるフィードバック制御値ｆ０は、時刻差＝０に対するフィードバック制御値ｆ１に基づくものではなく、フィードバック制御値ｆ１に誤差（正負ランダム分布）も含まれている。しかしながら、フィードバック制御値ｆ０は複数のフィードバック制御値ｆ１の平均値なので、その誤差も互いに相殺されて低減することが期待できる。
【００７１】
したがって、ネットワーク遅延×２が最小値検出部３８にて保持されている最小値を基準とする所定の閾値よりも大きく、時刻調整部４３にフィードバック制御値ｆ０が入力される場合において、第１の構成例を採用した場合に比較して、より短時間で時刻調整を行うことが可能である。
【００７２】
さらに、ネットワーク遅延×２が最小値検出部３８にて保持されている最小値を基準とする所定の閾値以下であり、時刻調整部４３にフィードバック制御値ｆ１が入力される場合において、第１の構成例と同じ精度で時刻調整を行うことができる。
【００７３】
なお、第１タイミング生成部６３にて時刻差が所定の閾値よりも小さいか否かを判定し、第２タイミング生成部６４にて時刻差が０であるか否かを判定する代わりに、第１タイミング生成部６３にて時刻差が所定の第１の閾値よりも小さいか否かを判定し、第２タイミング生成部６４にて時刻差が第１の閾値よりも小さな第２の閾値よりも小さいか否かを判定するようにしてもよい。
【００７４】
あるいは、第１タイミング生成部６３にてネットワーク遅延が所定の第１の閾値よりも小さいか否かを判定し、第２タイミング生成部６４にてネットワーク遅延が第１の閾値よりも小さな第２の閾値よりも小さいか否かを判定するようにしてもよい。
【００７５】
ところで、上述した時刻制御装置３０による一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウェアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
【００７６】
図７は、上述した一連の処理をプログラムにより実行するコンピュータのハードウェアの構成例を示すブロック図である。
【００７７】
コンピュータにおいて、CPU（Central Processing Unit）１０１，ROM（Read Only Memory）１０２，RAM（Random Access Memory）１０３は、バス１０４により相互に接続されている。
【００７８】
バス１０４には、さらに、入出力インタフェース１０５が接続されている。入出力インタフェース１０５には、入力部１０６、出力部１０７、記憶部１０８、通信部１０９、およびドライブ１１０が接続されている。
【００７９】
入力部１０６は、キーボード、マウス、マイクロフォンなどよりなる。出力部１０７は、ディスプレイ、スピーカなどよりなる。記憶部１０８は、ハードディスクや不揮発性のメモリなどよりなる。通信部１０９は、ネットワークインタフェースなどよりなる。ドライブ１１０は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブルメディア１１１を駆動する。
【００８０】
以上のように構成されるコンピュータでは、CPU１０１が、例えば、記憶部１０８に記憶されているプログラムを、入出力インタフェース１０５およびバス１０４を介して、RAM１０３にロードして実行することにより、上述した一連の処理が行われる。
【００８１】
コンピュータ（CPU１０１）が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア１１１に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
【００８２】
コンピュータでは、プログラムは、リムーバブルメディア１１１をドライブ１１０に装着することにより、入出力インタフェース１０５を介して、記憶部１０８にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部１０９で受信し、記憶部１０８にインストールすることができる。その他、プログラムは、ROM１０２や記憶部１０８に、あらかじめインストールしておくことができる。
【００８３】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであってもよいし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであってもよい。
【００８４】
なお、本開示の実施の形態は、上述した実施の形態に限定されるものではなく、本開示の要旨を逸脱しない範囲において種々の変更が可能である。
【符号の説明】
【００８５】
３０  時刻制御装置，  ３１  ネットワーク遅延・時刻差算出部，  ３２乃至３４  減算部，  ３５  除算部，  ３６  加算部，  ３７  スイッチ，  ３８  最小値検出部，  ３９  比較部，  ４０  PID処理部，  ４１  ｆ０生成部，  ４２  セレクタ，  ４３  時刻調整部，  ５０  タイミング生成部，  ５１  ラッチ，  ５２  遅延部，  ５３  平均値算出部，  ６１  カウンタ，  ６２  比較部，  ６３  第１タイミング生成部，  ６４  第２タイミング生成部
【図１】
2013083450.tif 000003
【図２】
2013083450.tif 000004
【図３】
2013083450.tif 000005
【図４】
2013083450.tif 000006
【図５】
2013083450.tif 000007
【図６】
2013083450.tif 000008
【図７】
2013083450.tif 000009