(57)【要約】【課題】ネットワーク上のマスタ機器との間で時刻情報を高精度に同期させる。【解決手段】本開示の一側面である時刻制御装置は、マスタ機器との間で送受信したメッセージの送受信時刻に基づいて、前記マスタ機器の時刻情報とスレーブ機器の時刻情報との差を表す第１の時刻差を算出する第１の算出部と、前記マスタ機器から前記スレーブ機器に送信したメッセージの送受信時刻に基づいて第２の時刻差を算出する第２の算出部と、前記スレーブ機器から前記マスタ機器に送信したメッセージの送受信時刻に基づいて第３の時刻差を算出する第３の算出部と、選択された前記第１乃至第３の時刻差のいずれかに基づいて生成されたフィードバック制御値に従い、前記スレーブ機器の時刻情報を調整する調整部とを備える。本開示は、例えば、PTPスレーブに適用できる。【選択図】図３
2013083451.tif 000002
【特許請求の範囲】
【請求項１】
スレーブ機器に内蔵され、ネットワークを介して接続されたマスタ機器との間で時刻情報を同期させる時刻制御装置において、
前記マスタ機器との間で送受信したメッセージの送受信時刻に基づいて、前記マスタ機器の時刻情報と前記スレーブ機器の時刻情報との差を表す第１の時刻差を算出する第１の算出部と、
前記マスタ機器から前記スレーブ機器に送信したメッセージの送受信時刻に基づいて、前記マスタ機器の時刻情報と前記スレーブ機器の時刻情報との差を表す第２の時刻差を算出する第２の算出部と、
前記スレーブ機器から前記マスタ機器に送信したメッセージの送受信時刻に基づいて、前記マスタ機器の時刻情報と前記スレーブ機器の時刻情報との差を表す第３の時刻差を算出する第３の算出部と、
算出された前記第１乃至第３の時刻差のいずれかを選択する選択部と、
選択された前記時刻差に基づき、前記スレーブ機器の時刻情報をフィードバック制御するためのフィードバック制御値を生成するフィードバック制御値生成部と、
生成された前記フィードバック制御値に従い、前記スレーブ機器の時刻情報を調整する調整部と
を備える時刻制御装置。
【請求項２】
前記第１の算出手段は、さらに、前記マスタ機器との間で送受信したメッセージの送受信時刻に基づいて、前記メッセージを前記ネットワークを介して通信するために要する時間を表すネットワーク遅延を算出し、
前記選択部は、前記ネットワーク遅延に基づいて前記第１乃至第３の時刻差のいずれかを選択する
請求項１に記載の時刻制御装置。
【請求項３】
前記選択部は、
前記ネットワーク遅延が第１の閾値よりも小さい場合、前記第１の時刻差を選択し、
前記ネットワーク遅延が前記第１の閾値以上である場合、前記第２の時刻差または前記第３の閾値の絶対値が小さい方を選択する
請求項２に記載の時刻制御装置。
【請求項４】
前記選択部は、
前記ネットワーク遅延が第１の閾値よりも小さい場合、前記第１の時刻差を選択し、
前記ネットワーク遅延が前記第１の閾値以上である場合、前記第２の時刻差または前記第３の閾値の絶対値が小さい方を選択し、選択した前記第２の時刻差または前記第３の閾値の絶対値が第２の閾値よりも小さいときには時刻差＝０を前記フィードバック制御値生成部に通知する
請求項２に記載の時刻制御装置。
【請求項５】
前記第１の閾値よりも小さい前記ネットワーク遅延の最小値を保持する保持部を
さらに備え、
前記第２の算出部は、保持された前記ネットワーク遅延の前記最小値と前記マスタ機器から前記スレーブ機器に送信したメッセージの送受信時刻とに基づいて、前記マスタ機器の時刻情報と前記スレーブ機器の時刻情報との差を表す第２の時刻差を算出し、
前記第３の算出部は、保持された前記ネットワーク遅延の前記最小値と前記スレーブ機器から前記マスタ機器に送信したメッセージの送受信時刻とに基づいて、前記マスタ機器の時刻情報と前記スレーブ機器の時刻情報との差を表す第３の時刻差を算出する
請求項２に記載の時刻制御装置。
【請求項６】
スレーブ機器に内蔵され、ネットワークを介して接続されたマスタ機器との間で時刻情報を同期させる時刻制御装置の時刻制御方法において、
前記時刻制御装置による、
前記マスタ機器との間で送受信したメッセージの送受信時刻に基づいて、前記マスタ機器の時刻情報と前記スレーブ機器の時刻情報との差を表す第１の時刻差を算出する第１の算出ステップと、
前記マスタ機器から前記スレーブ機器に送信したメッセージの送受信時刻に基づいて、前記マスタ機器の時刻情報と前記スレーブ機器の時刻情報との差を表す第２の時刻差を算出する第２の算出ステップと、
前記スレーブ機器から前記マスタ機器に送信したメッセージの送受信時刻に基づいて、前記マスタ機器の時刻情報と前記スレーブ機器の時刻情報との差を表す第３の時刻差を算出する第３の算出ステップと、
算出された前記第１乃至第３の時刻差のいずれかを選択する選択ステップと、
選択された前記時刻差に基づき、前記スレーブ機器の時刻情報をフィードバック制御するためのフィードバック制御値を生成する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処理ステップと、生成された前記フィードバック制御値に従い、前記スレーブ機器の時刻情報を調整する調整ステップとを含む。
【００２９】
本開示の一側面であるプログラムは、スレーブ機器に内蔵され、ネットワークを介して接続されたマスタ機器との間で時刻情報を同期させるコンピュータに、前記マスタ機器との間で送受信したメッセージの送受信時刻に基づいて、前記マスタ機器の時刻情報と前記スレーブ機器の時刻情報との差を表す第１の時刻差を算出する第１の算出部と、前記マスタ機器から前記スレーブ機器に送信したメッセージの送受信時刻に基づいて、前記マスタ機器の時刻情報と前記スレーブ機器の時刻情報との差を表す第２の時刻差を算出する第２の算出部と、前記スレーブ機器から前記マスタ機器に送信したメッセージの送受信時刻に基づいて、前記マスタ機器の時刻情報と前記スレーブ機器の時刻情報との差を表す第３の時刻差を算出する第３の算出部と、算出された前記第１乃至第３の時刻差のいずれかを選択する選択部と、選択された前記時刻差に基づき、前記スレーブ機器の時刻情報をフィードバック制御するためのフィードバック制御値を生成するフィードバック制御値生成部と、生成された前記フィードバック制御値に従い、前記スレーブ機器の時刻情報を調整する調整部として機能させる。
【００３０】
本開示の一側面においては、マスタ機器との間で送受信したメッセージの送受信時刻に基づいて、前記マスタ機器の時刻情報とスレーブ機器の時刻情報との差を表す第１の時刻差が算出され、前記マスタ機器から前記スレーブ機器に送信したメッセージの送受信時刻に基づいて、前記マスタ機器の時刻情報と前記スレーブ機器の時刻情報との差を表す第２の時刻差が算出され、前記スレーブ機器から前記マスタ機器に送信したメッセージの送受信時刻に基づいて、前記マスタ機器の時刻情報と前記スレーブ機器の時刻情報との差を表す第３の時刻差が算出される。また、算出された前記第１乃至第３の時刻差のいずれかが選択され、選択された前記時刻差に基づき、前記スレーブ機器の時刻情報をフィードバック制御するためのフィードバック制御値が生成され、生成された前記フィードバック制御値に従い、前記スレーブ機器の時刻情報が調整される。
【発明の効果】
【００３１】
本開示の一側面によれば、ネットワーク上のマスタ機器との間で時刻情報を高精度に同期させることができる。
【図面の簡単な説明】
【００３２】
【図１】IEEE1588PTPを利用した従来の高精度時刻同期処理の概要を示す図である。
【図２】従来の時刻制御装置の構成の一例を示すブロック図である。
【図３】ネットワーク遅延の状態の例を示す図である。
【図４】本開示を適用した時刻制御装置の構成例を示すブロック図である。
【図５】図４の時刻制御装置の動作を説明するフローチャートである。
【図６】コンピュータの構成例を示すブロック図である。
【発明を実施するための形態】
【００３３】
以下、本開示を実施するための最良の形態（以下、実施の形態と称する）について説明するが、その前に「ネットワーク遅延は変動せず常に一定である」とする仮定が成立していない、ネットワーク遅延が一時的に増加してしまう状態について説明する。
【００３４】
図３は、PTPマスタからPTPスレーブにSyncメッセージを送信したとき（以下、順方向と称する）と、PTPスレーブからPTPマスタにDelay_reqを送信したとき（以下、逆方向と称する）のネットワーク遅延の異なる４種類の状態を示している。
【００３５】
同図Ａは、上記した仮定が成立している、すなわち、順方向のネットワーク遅延と逆方向のネットワーク遅延は一定である場合を示している。この場合、PTPメッセージの順方向および逆方向の送受信時刻に基づいて算出されるネットワーク遅延は真の値となり、所定の第１の閾値よりも小さくなる。この場合、本開示の実施の形態では、上述した式（４）に従って算出した時刻差を採用する。
【００３６】
同図Ｂ乃至同図Ｄは、上記した仮定が成立していない場合を示している。
【００３７】
同図Ｂは、順方向のネットワーク遅延が逆方向のネットワーク遅延よりも小さく、さらに所定の第２の閾値よりも小さい場合を示している。この場合、PTPメッセージの順方向および逆方向の送受信時刻に基づいて算出されるネットワーク遅延は誤差が含まれるので、所定の第１の閾値よりも大きくなる。なお、この場合において、順方向のネットワーク遅延は、逆方向のネットワーク遅延よりもネットワークの輻輳の影響を受けていないと考えられるので、本開示の実施の形態では、PTPメッセージの順方向の送受信時刻を利用して時刻差を算出するようにする。
【００３８】
同図Ｃは、逆方向のネットワーク遅延が順方向のネットワーク遅延よりも小さく、さらに所定の第２の閾値よりも小さい場合を示している。この場合、PTPメッセージの順方向および逆方向の送受信時刻に基づいて算出されるネットワーク遅延は誤差が含まれるので、所定の第１の閾値よりも大きくなる。なお、この場合において、逆方向のネットワーク遅延は、順方向のネットワーク遅延よりもネットワークの輻輳の影響を受けていないと考えられるので、本開示の実施の形態では、PTPメッセージの逆方向の送受信時刻を利用して時刻差を算出するようにする。
【００３９】
同図Ｄは、順方向および逆方向のネットワーク遅延が所定の第２の閾値よりも大きい場合を示している。この場合、PTPメッセージの順方向および逆方向の送受信時刻に基づいて算出されるネットワーク遅延は誤差が含まれるので、所定の第１の閾値よりも大きくなる。なお、この場合において、順方向、および逆方向のネットワーク遅延はともにネットワークの輻輳の影響を受けていないと考えられるので、本開示の実施の形態では、時刻差を０として時刻調整を行わないないようにする。
【００４０】
上述したように、従来においては、同図Ａの場合にのみ、PTPメッセージの送受信時刻を利用して時刻差を算出し、算出した時刻差に基づいてフィードバック制御値ｆ１を生成するようにしていた。本開示の実施の形態においては、同図Ａの場合のみならず、同図Ｂまたは同図Ｃの場合の場合においても、PTPメッセージの送受信時刻を利用して時刻差を算出し、算出した時刻差に基づいてフィードバック制御値ｆ１を生成するようにする。これにより、「ネットワーク遅延は変動せず常に一定である」とする仮定が成立していない状態においても、できる限り速やかに時刻情報を高精度で調整できるようするものである。
【００４１】
［時刻制御装置の構成例］
図４は、本開示の実施の形態である時刻制御装置の構成例を示している。この時刻制御装置３０は、ネットワーク遅延・時刻差算出部３１、最小値検出部３８、減算部３９，４０、セレクタ４１乃至４３、PID処理部４４、および時刻調整部４５から構成される。
【００４２】
ネットワーク遅延・時刻差算出部３１は、減算部３２乃至３４、加算部３５、および除算部３６，３７からなる。
【００４３】
減算部３２は、上述した式（２）に出現するSyncメッセージについての受信時刻Ｔ２2−送信時刻Ｔ１2を算出して減算部３４、加算部３５、および減算部３９に出力する。減算部３３は、上述した式（３）に出現するDelay_reqについての受信時刻Ｔ１3−送信時刻Ｔ２3を算出して減算部３４、加算部３５、および減算部４０に出力する。
【００４４】
減算部３４および除算部３６は、上述した式（４）に従い、時刻差を算出してセレクタ４３に出力する。以下、SyncメッセージとDelay_reqの送受信時刻に基づき、式（４）に従って算出された時刻差を時刻差ＳＤと称する。
【００４５】
加算部３５および除算部３７は、上述した式（２）および式（３）に出現するネットワーク遅延を算出して最小値検出部３８およびセレクタ４３に出力する。
【００４６】
最小値検出部３８は、ネットワーク遅延・時刻差算出部３１の除算部３７から入力されるネットワーク遅延を随時監視し、そのネットワーク遅延の値が所定の第１の閾値よりも小さく、且つ、保持している最小値よりも小さい場合には、入力されたネットワーク遅延の値により保持する最小値を更新する。また、最小値検出部３８は、保持するネットワーク遅延の最小値（ネットワーク遅延min）を減算部３９および４０に出力する。
【００４７】
減算部３９は、減算部３２から入力される受信時刻Ｔ２2−送信時刻Ｔ１2（＝ネットワーク遅延＋時刻差）からネットワーク遅延minを減算することにより、Syncメッセージの送受信時刻のみに基づく時刻差Syncを算出してセレクタ４１に出力する。
【００４８】
減算部４０は、ネットワーク遅延minから、減算部３３から入力される受信時刻Ｔ１3−送信時刻Ｔ２3（＝ネットワーク遅延−時刻差）を減算することにより、Delay_reqの送受信時刻のみに基づく時刻差Delayを算出してセレクタ４１に出力する。
【００４９】
セレクタ４１は、減算部３９から入力される時刻差Sync、または減算部４０から入力される時刻差Delayのうち、その絶対値が小さい方をセレクタ４２に出力する。
【００５０】
セレクタ４２は、セレクタ４１からの入力（時刻差Syncまたは時刻差Delay）の絶対値が所定の第２の閾値よりも小さいか否かを判定し、判定結果が肯定である場合にはその入力をセレクタ４３に出力する。反対に、判定結果が否定である場合には時刻差として０をセレクタ４３に出力する。
【００５１】
セレクタ４３は、ネットワーク遅延・時刻差算出部３１の除算部３７から入力されるネットワーク遅延が所定の第１の閾値よりも小さいか否かを判定し、判定結果が肯定である場合、ネットワーク遅延・時刻差算出部３１の除算部３６から入力される時刻差ＳＤをPID処理部４４に出力する。反対に、判定結果が否定である場合、セレクタ４２からの入力（時刻差Sync、時刻差Delay、または時刻差＝０）をPID処理部４４に出力する。
【００５２】
PID処理部４４は、セレクタ４３からの入力（時刻差Sync、時刻差Delay、または時刻差＝０）に基づき、後段の時刻調整部４５をPID制御するためのフィードバック制御値ｆ１を算出して時刻調整部４５に出力する。時刻調整部４５は、フィードバック制御値ｆ１に従い、スレーブ機器の時刻情報Ｔ２を調整する。
【００５３】
[動作説明]
次に、時刻制御装置３０の動作について説明する。図５は、時刻制御装置３０による時刻制御処理を説明するフローチャートである。
【００５４】
この時刻制御処理は、所定の間隔で定期的に実行される。ステップＳ１において、ネットワーク遅延・時刻差算出部３１の減算部３２は、上述した式（２）に出現するSyncメッセージについての受信時刻Ｔ２2−送信時刻Ｔ１2を算出して減算部３４、加算部３５、および減算部３９に出力する。一方、減算部３３は、上述した式（３）に出現するDelay_reqについての受信時刻Ｔ１3−送信時刻Ｔ２3を算出して減算部３４、加算部３５、および減算部４０に出力する。
【００５５】
ステップＳ２において、ネットワーク遅延・時刻差算出部３１の減算部３４および除算部３６は、上述した式（４）に従い、時刻差ＳＤを算出してセレクタ４２，４３に出力する。一方、加算部３５および除算部３７は、上述した式（２）および式（３）に出現するネットワーク遅延を算出して最小値検出部３８およびセレクタ４３に出力する。
【００５６】
ステップＳ３において、減算部３９は、減算部３２からの受信時刻Ｔ２2−送信時刻Ｔ１2（＝ネットワーク遅延＋時刻差）から、最小値検出部３８からのネットワーク遅延minを減算することにより、Syncメッセージの送受信時刻のみに基づく時刻差Syncを算出してセレクタ４１に出力する。一方、減算部４０は、最小値検出部３８からのネットワーク遅延minから、減算部３３からの受信時刻Ｔ１3−送信時刻Ｔ２3（＝ネットワーク遅延−時刻差）を減算することにより、Delay_reqの送受信時刻のみに基づく時刻差Delayを算出してセレクタ４１に出力する。
【００５７】
ステップＳ４において、セレクタ４１は、減算部３９から入力された時刻差Sync、または減算部４０から入力された時刻差Delayのうち、その絶対値が小さい方をセレクタ４２に出力する。
【００５８】
ステップＳ５において、セレクタ４３は、ネットワーク遅延・時刻差算出部３１の除算部３７から入力されたネットワーク遅延が所定の第１の閾値よりも小さいか否かを判定する。この判定結果が肯定である場合、処理はステップＳ６に進められ、セレクタ４３は、除算部３６から入力された時刻差ＳＤをPID処理部４４に出力する。反対に、判定結果が否定である場合、セレクタ４３は、セレクタ４２からの入力（時刻差Sync、時刻差Delay、または時刻差＝０）をPID処理部４４に出力する状態となって、処理はステップＳ７に進められる。
【００５９】
ステップＳ７において、セレクタ４２は、セレクタ４１からの入力（時刻差Sync、または時刻差Delay）の絶対値が所定の第２の閾値よりも小さいか否かを判定する。この判定結果が肯定である場合、処理はステップＳ８に進められ、セレクタ４１からの入力がセレクタ４３に出力される。よって、セレクタ４３からPID処理部４４に対しては、セレクタ４１からの入力（時刻差Sync、または時刻差Delay）が出力されることになる。
【００６０】
反対に、ステップＳ７における判定結果が否定である場合、処理はステップＳ９に進められ、時刻差＝０がセレクタ４３に出力される。よって、セレクタ４３からPID処理部４４に対しては、時刻差＝０が出力されることになる。
【００６１】
ステップＳ１０において、PID処理部４４は、セレクタ４３からの入力（時刻差Sync、時刻差Delay、または時刻差＝０）に基づき、後段の時刻調整部４５をPID制御するためのフィードバック制御値ｆ１を算出して時刻調整部４５に出力する。ステップＳ１１において、時刻調整部４５は、フィードバック制御値ｆ１に従い、スレーブ機器の時刻情報Ｔ２を調整する。以上で、時刻制御処理は終了される。
【００６２】
以上説明したように、時刻制御装置３０による時刻制御処理によれば、算出されたネットワーク遅延が第１の閾値よりも小さい場合（図３Ａに対応）には、PTPメッセージの送受信時刻を利用して算出した時刻差ＳＤに基づいてフィードバック制御値ｆ１を生成するようした。
【００６３】
また、算出されたネットワーク遅延が第１の閾値よりも大きく、Syncメッセージの送受信時刻を利用して算出した時刻差Syncが、Delay_reqの送受信時刻を利用して算出した時刻差Delayよりもその絶対値が小さく、さらに、第２の閾値よりも小さい場合（図３Ｂに対応）には、時刻差Syncに基づいてフィードバック制御値ｆ１を生成するようした。
【００６４】
また、算出されたネットワーク遅延が第１の閾値よりも大きく、Delay_reqの送受信時刻を利用して算出した時刻差Delayが、Syncメッセージの送受信時刻を利用して算出した時刻差Syncよりもその絶対値が小さく、さらに、第２の閾値よりも小さい場合（図３Ｃに対応）には、時刻差Delayに基づいてフィードバック制御値ｆ１を生成するようした。
【００６５】
さらに、算出されたネットワーク遅延が第１の閾値よりも大きく、Delay_reqの送受信時刻を利用して算出した時刻差Delayと、Syncメッセージの送受信時刻を利用して算出した時刻差Syncとがともに第２の閾値以上である場合（図３Ｄに対応）には、時刻差＝０に基づいてフィードバック制御値ｆ１を生成するようした。
【００６６】
すなわち、「ネットワーク遅延は変動せず常に一定である」とする仮定が成立していない状態においても、フィードバック制御値ｆ１を生成するようにしたので、できる限り速やかにスレーブ機器の時刻情報Ｔ２を高精度で調整することが可能となる。
【００６７】
ところで、上述した時刻制御装置３０による一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウェアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
【００６８】
図６は、上述した一連の処理をプログラムにより実行するコンピュータのハードウェアの構成例を示すブロック図である。
【００６９】
コンピュータにおいて、CPU（Central Processing Unit）１０１，ROM（Read Only Memory）１０２，RAM（Random Access Memory）１０３は、バス１０４により相互に接続されている。
【００７０】
バス１０４には、さらに、入出力インタフェース１０５が接続されている。入出力インタフェース１０５には、入力部１０６、出力部１０７、記憶部１０８、通信部１０９、およびドライブ１１０が接続されている。
【００７１】
入力部１０６は、キーボード、マウス、マイクロフォンなどよりなる。出力部１０７は、ディスプレイ、スピーカなどよりなる。記憶部１０８は、ハードディスクや不揮発性のメモリなどよりなる。通信部１０９は、ネットワークインタフェースなどよりなる。ドライブ１１０は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブルメディア１１１を駆動する。
【００７２】
以上のように構成されるコンピュータでは、CPU１０１が、例えば、記憶部１０８に記憶されているプログラムを、入出力インタフェース１０５およびバス１０４を介して、RAM１０３にロードして実行することにより、上述した一連の処理が行われる。
【００７３】
コンピュータ（CPU１０１）が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア１１１に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
【００７４】
コンピュータでは、プログラムは、リムーバブルメディア１１１をドライブ１１０に装着することにより、入出力インタフェース１０５を介して、記憶部１０８にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部１０９で受信し、記憶部１０８にインストールすることができる。その他、プログラムは、ROM１０２や記憶部１０８に、あらかじめインストールしておくことができる。
【００７５】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであってもよいし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであってもよい。
【００７６】
なお、本開示の実施の形態は、上述した実施の形態に限定されるものではなく、本開示の要旨を逸脱しない範囲において種々の変更が可能である。
【符号の説明】
【００７７】
３０  時刻制御装置，  ３１  ネットワーク遅延・時刻差算出部，  ３２乃至３４  減算部，  ３５  加算部，  ３６，３７  除算部，  ３８  最小値検出部，  ３９，４０  減算部，  ４１乃至４３  セレクタ，  ４４  PID処理部，  ４５  時刻調整部，  １００  コンピュータ，  １０１  CPU
【図１】
2013083451.tif 000003
【図２】
2013083451.tif 000004
【図３】
2013083451.tif 000005
【図４】
2013083451.tif 000006
【図５】
2013083451.tif 000007
【図６】
2013083451.tif 000008