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