説明

時刻制御装置、時刻制御方法、およびプログラム

【課題】ネットワーク上のマスタ機器との間で時刻情報を高精度に同期させる。
【解決手段】本開示の一側面である時刻制御装置は、マスタ機器との間で送受信したメッセージの送受信時刻に基づいて、前記マスタ機器の時刻情報とスレーブ機器の時刻情報との差を表す第1の時刻差を算出する第1の算出部と、前記マスタ機器から前記スレーブ機器に送信したメッセージの送受信時刻に基づいて第2の時刻差を算出する第2の算出部と、前記スレーブ機器から前記マスタ機器に送信したメッセージの送受信時刻に基づいて第3の時刻差を算出する第3の算出部と、選択された前記第1乃至第3の時刻差のいずれかに基づいて生成されたフィードバック制御値に従い、前記スレーブ機器の時刻情報を調整する調整部とを備える。本開示は、例えば、PTPスレーブに適用できる。

【発明の詳細な説明】
【技術分野】
【0001】
本開示は、時刻制御装置、時刻制御方法、およびプログラムに関し、特に、ネットワーク上に存在するマスタ機器との間で時刻情報を高い精度で同期させる場合に用いて好適な時刻制御装置、時刻制御方法、およびプログラムに関する。
【背景技術】
【0002】
従来、ネットワークを介して接続されている装置間でそれぞれの時刻情報を同期させる仕組みが存在し、その代表的なものとしてIEEE1588PTP(precision time protocol)が知られている(例えば、特許文献1参照)。
【0003】
IEEE1588PTPによれば、ネットワークを介して接続されているマスタ機器(以下、PTPマスタと称する)とスレーブ機器(以下、PTPスレーブと称する)との間でPTPメッセージを通信することにより、PTPマスタの時刻情報T1に対して、PTPスレーブの時刻情報T2をsubμsecの高精度で同期させることができる。具体的には、PTPマスタ内部の発振周波数F1にPTPスレーブ内部の発振周波数F2を同期させ、その後、時刻情報T1に時刻情報T2を同期させることができる。
【0004】
図1は、IEEE1588PTPを利用した従来の高精度時刻同期処理の概要を示している。
【0005】
PTPマスタは、発振周波数F1に基づく所定の周期Δmで、送信時刻T1iを示すタイムスタンプを含むPTPメッセージとしてのSyncメッセージを、ネットワーク上に送信するようになされている。一方、PTPスレーブは、PTPマスタが送信したSyncメッセージを受信すると、そこに含まれる送信時刻T1iを示すタイムスタンプを抽出するとともに、その受信時刻T2iを取得するようになされている。すなわち、PTPスレーブは、Syncパケットを受信する毎に、送信時刻T1iと受信時刻T2iを得ることになる。
【0006】
また、PTPスレーブは、PTPメッセージとしてのDelay_reqを、ネットワークを介してPTPマスタに送信し、そのときの送信時刻T2Xを記憶するようになされている。これを受信したPTPマスタは、その受信時刻T1Xを示すタイムスタンプを含めたDelay_resをPTPメッセージとしてのPTPスレーブに返信するようになされている。すなわち、PTPスレーブは、Delay_reqを送信し、それに応じてPTPマスタから返信されるDelay_resを受信することにより、Delay_reqの送信時刻T2Xと受信時刻T1Xを得ることになる。
【0007】
なお、Syncメッセージ、Delay_req、Delay_resなどのPTPメッセージを、ネットワークを介して通信するために要する片道分の時間を、以下、ネットワーク遅延と称し、ネットワーク遅延は変動せず常に一定であると仮定する。
【0008】
この場合、PTPマスタの発振周波数F1に対してPTPスレーブの発振周波数F2が完全に同期していれば、PTPマスタにおけるSyncメッセージの送信間隔Δm=T12−T11とPTPスレーブにおけるSyncメッセージの受信間隔Δs=T22−T21とが等しくなる。換言すれば、ΔmとΔsの差Δm−Δsが0ではない場合、PTPマスタの発振周波数F1に対してPTPスレーブの発振周波数F2は誤差があって同期していない。
【0009】
したがって、周波数同期については、PTPスレーブにおいて、ΔmとΔsの差Δm−Δsが0になるように、発振周波数F2を調整すればよい。以下、ΔmとΔsの差Δm−Δsを周波数ずれと称する。周波数ずれは、次式(1)に従って算出する。
【0010】
周波数ずれΔm−Δs
=(T12−T11)−(T22−T21)=(T21−T11)−(T22−T12
・・・(1)
【0011】
時刻同期については、上述したように周波数同期を確立した後、PTPスレーブがDelay_reqを送信し、その返信であるDelay_resを受信することにより、Delay_reqの送信時刻T23と受信時刻T13を得るようにする。
【0012】
PTPマスタの時刻情報T1に対するPTPスレーブの時刻情報T2の差を、以下、時刻差と称することにすれば、次式(2)および(3)が成立し、式(2)および(3)より次式(4)が求まる。
受信時刻T22−送信時刻T12=ネットワーク遅延+時刻差
・・・(2)
受信時刻T13−送信時刻T23=ネットワーク遅延−時刻差
・・・(3)
時刻差={(T22−T13)−(T12−T23)}/2
・・・(4)
【0013】
PTPスレーブにおいては、式(4)に示された時刻差が0となるように、時刻情報T2を調整すればよい。
【0014】
図2は、PTPスレーブにおいて時刻同期を確立するための時刻制御装置の構成の一例を示している。
【0015】
この時刻制御装置10は、減算部11,12,13、除算部14、平均値算出部15、PID(proportional integral differential)処理部16、および時刻調整部17から構成される。
【0016】
減算部11は、上述した式(2)に出現する受信時刻T22−送信時刻T12を算出して減算部13に出力する。減算部12は、上述した式(3)に出現する受信時刻T23−送信時刻T13を算出して減算部13に出力する。減算部13および除算部14は、上述した式(4)で示される時刻差を算出して平均値算出部15に出力する。
【0017】
平均値算出部15は、前段の除算部14から入力される時刻差を最新のものから順に所定の数だけ保持しており、除算部14から時刻差が入力される毎、保持している所定の数の時刻差との平均値を算出してPID処理部16に出力する。
【0018】
PID処理部16は、平均値算出部15からの時刻差の平均値を入力とし、後段の時刻調整部17をPID制御するためのフィードバック制御値f1を算出して時刻調整部17に出力する。時刻調整部17は、フィードバック制御値f1に基づいて時刻情報T2を調整する。
【先行技術文献】
【特許文献】
【0019】
【特許文献1】特開2010−190635号公報
【発明の概要】
【発明が解決しようとする課題】
【0020】
ところで、PTPマスタとPTPスレーブが接続されている当該ネットワーク上に映像信号などの高容量のパケットが高速で流されるとネットワークに輻輳が生じてしまい、上述したPTPメッセージのネットワーク遅延が一時的に増加してしまうことが起こり得る。
【0021】
このような場合、上述した仮定「PTPメッセージのネットワーク遅延は変動せず常に一定である」が成立しなくなってしまうので、上述した方法では周波数同期や時刻同期を正確に実行することができなかった。
【0022】
本開示はこのような状況に鑑みてなされたものであり、ネットワーク上のマスタ機器との間で時刻情報を高精度に同期できるようにするものである。
【課題を解決するための手段】
【0023】
本開示の一側面である時刻制御装置は、スレーブ機器に内蔵され、ネットワークを介して接続されたマスタ機器との間で時刻情報を同期させる時刻制御装置において、前記マスタ機器との間で送受信したメッセージの送受信時刻に基づいて、前記マスタ機器の時刻情報と前記スレーブ機器の時刻情報との差を表す第1の時刻差を算出する第1の算出部と、前記マスタ機器から前記スレーブ機器に送信したメッセージの送受信時刻に基づいて、前記マスタ機器の時刻情報と前記スレーブ機器の時刻情報との差を表す第2の時刻差を算出する第2の算出部と、前記スレーブ機器から前記マスタ機器に送信したメッセージの送受信時刻に基づいて、前記マスタ機器の時刻情報と前記スレーブ機器の時刻情報との差を表す第3の時刻差を算出する第3の算出部と、算出された前記第1乃至第3の時刻差のいずれかを選択する選択部と、選択された前記時刻差に基づき、前記スレーブ機器の時刻情報をフィードバック制御するためのフィードバック制御値を生成するフィードバック制御値生成部と、生成された前記フィードバック制御値に従い、前記スレーブ機器の時刻情報を調整する調整部とを備える。
【0024】
前記第1の算出手段は、さらに、前記マスタ機器との間で送受信したメッセージの送受信時刻に基づいて、前記メッセージを前記ネットワークを介して通信するために要する時間を表すネットワーク遅延を算出し、前記選択部は、前記ネットワーク遅延に基づいて前記第1乃至第3の時刻差のいずれかを選択することができる。
【0025】
前記選択部は、前記ネットワーク遅延が第1の閾値よりも小さい場合、前記第1の時刻差を選択し、前記ネットワーク遅延が前記第1の閾値以上である場合、前記第2の時刻差または前記第3の閾値の絶対値が小さい方を選択することができる。
【0026】
前記選択部は、前記ネットワーク遅延が第1の閾値よりも小さい場合、前記第1の時刻差を選択し、前記ネットワーク遅延が前記第1の閾値以上である場合、前記第2の時刻差または前記第3の閾値の絶対値が小さい方を選択し、選択した前記第2の時刻差または前記第3の閾値の絶対値が第2の閾値よりも小さいときには時刻差=0を前記フィードバック制御値生成部に通知することができる。
【0027】
本開示の一側面である時刻制御装置は、前記第1の閾値よりも小さい前記ネットワーク遅延の最小値を保持する保持部をさらに備えることができ、前記第2の算出部は、保持された前記ネットワーク遅延の前記最小値と前記マスタ機器から前記スレーブ機器に送信したメッセージの送受信時刻とに基づいて、前記マスタ機器の時刻情報と前記スレーブ機器の時刻情報との差を表す第2の時刻差を算出し、前記第3の算出部は、保持された前記ネットワーク遅延の前記最小値と前記スレーブ機器から前記マスタ機器に送信したメッセージの送受信時刻とに基づいて、前記マスタ機器の時刻情報と前記スレーブ機器の時刻情報との差を表す第3の時刻差を算出することができる。
【0028】
本開示の一側面である時刻制御方法は、スレーブ機器に内蔵され、ネットワークを介して接続されたマスタ機器との間で時刻情報を同期させる時刻制御装置の時刻制御方法において、前記時刻制御装置による、前記マスタ機器との間で送受信したメッセージの送受信時刻に基づいて、前記マスタ機器の時刻情報と前記スレーブ機器の時刻情報との差を表す第1の時刻差を算出する第1の算出ステップと、前記マスタ機器から前記スレーブ機器に送信したメッセージの送受信時刻に基づいて、前記マスタ機器の時刻情報と前記スレーブ機器の時刻情報との差を表す第2の時刻差を算出する第2の算出ステップと、前記スレーブ機器から前記マスタ機器に送信したメッセージの送受信時刻に基づいて、前記マスタ機器の時刻情報と前記スレーブ機器の時刻情報との差を表す第3の時刻差を算出する第3の算出ステップと、算出された前記第1乃至第3の時刻差のいずれかを選択する選択ステップと、選択された前記時刻差に基づき、前記スレーブ機器の時刻情報をフィードバック制御するためのフィードバック制御値を生成するPID処理ステップと、生成された前記フィードバック制御値に従い、前記スレーブ機器の時刻情報を調整する調整ステップとを含む。
【0029】
本開示の一側面であるプログラムは、スレーブ機器に内蔵され、ネットワークを介して接続されたマスタ機器との間で時刻情報を同期させるコンピュータに、前記マスタ機器との間で送受信したメッセージの送受信時刻に基づいて、前記マスタ機器の時刻情報と前記スレーブ機器の時刻情報との差を表す第1の時刻差を算出する第1の算出部と、前記マスタ機器から前記スレーブ機器に送信したメッセージの送受信時刻に基づいて、前記マスタ機器の時刻情報と前記スレーブ機器の時刻情報との差を表す第2の時刻差を算出する第2の算出部と、前記スレーブ機器から前記マスタ機器に送信したメッセージの送受信時刻に基づいて、前記マスタ機器の時刻情報と前記スレーブ機器の時刻情報との差を表す第3の時刻差を算出する第3の算出部と、算出された前記第1乃至第3の時刻差のいずれかを選択する選択部と、選択された前記時刻差に基づき、前記スレーブ機器の時刻情報をフィードバック制御するためのフィードバック制御値を生成するフィードバック制御値生成部と、生成された前記フィードバック制御値に従い、前記スレーブ機器の時刻情報を調整する調整部として機能させる。
【0030】
本開示の一側面においては、マスタ機器との間で送受信したメッセージの送受信時刻に基づいて、前記マスタ機器の時刻情報とスレーブ機器の時刻情報との差を表す第1の時刻差が算出され、前記マスタ機器から前記スレーブ機器に送信したメッセージの送受信時刻に基づいて、前記マスタ機器の時刻情報と前記スレーブ機器の時刻情報との差を表す第2の時刻差が算出され、前記スレーブ機器から前記マスタ機器に送信したメッセージの送受信時刻に基づいて、前記マスタ機器の時刻情報と前記スレーブ機器の時刻情報との差を表す第3の時刻差が算出される。また、算出された前記第1乃至第3の時刻差のいずれかが選択され、選択された前記時刻差に基づき、前記スレーブ機器の時刻情報をフィードバック制御するためのフィードバック制御値が生成され、生成された前記フィードバック制御値に従い、前記スレーブ機器の時刻情報が調整される。
【発明の効果】
【0031】
本開示の一側面によれば、ネットワーク上のマスタ機器との間で時刻情報を高精度に同期させることができる。
【図面の簡単な説明】
【0032】
【図1】IEEE1588PTPを利用した従来の高精度時刻同期処理の概要を示す図である。
【図2】従来の時刻制御装置の構成の一例を示すブロック図である。
【図3】ネットワーク遅延の状態の例を示す図である。
【図4】本開示を適用した時刻制御装置の構成例を示すブロック図である。
【図5】図4の時刻制御装置の動作を説明するフローチャートである。
【図6】コンピュータの構成例を示すブロック図である。
【発明を実施するための形態】
【0033】
以下、本開示を実施するための最良の形態(以下、実施の形態と称する)について説明するが、その前に「ネットワーク遅延は変動せず常に一定である」とする仮定が成立していない、ネットワーク遅延が一時的に増加してしまう状態について説明する。
【0034】
図3は、PTPマスタからPTPスレーブにSyncメッセージを送信したとき(以下、順方向と称する)と、PTPスレーブからPTPマスタにDelay_reqを送信したとき(以下、逆方向と称する)のネットワーク遅延の異なる4種類の状態を示している。
【0035】
同図Aは、上記した仮定が成立している、すなわち、順方向のネットワーク遅延と逆方向のネットワーク遅延は一定である場合を示している。この場合、PTPメッセージの順方向および逆方向の送受信時刻に基づいて算出されるネットワーク遅延は真の値となり、所定の第1の閾値よりも小さくなる。この場合、本開示の実施の形態では、上述した式(4)に従って算出した時刻差を採用する。
【0036】
同図B乃至同図Dは、上記した仮定が成立していない場合を示している。
【0037】
同図Bは、順方向のネットワーク遅延が逆方向のネットワーク遅延よりも小さく、さらに所定の第2の閾値よりも小さい場合を示している。この場合、PTPメッセージの順方向および逆方向の送受信時刻に基づいて算出されるネットワーク遅延は誤差が含まれるので、所定の第1の閾値よりも大きくなる。なお、この場合において、順方向のネットワーク遅延は、逆方向のネットワーク遅延よりもネットワークの輻輳の影響を受けていないと考えられるので、本開示の実施の形態では、PTPメッセージの順方向の送受信時刻を利用して時刻差を算出するようにする。
【0038】
同図Cは、逆方向のネットワーク遅延が順方向のネットワーク遅延よりも小さく、さらに所定の第2の閾値よりも小さい場合を示している。この場合、PTPメッセージの順方向および逆方向の送受信時刻に基づいて算出されるネットワーク遅延は誤差が含まれるので、所定の第1の閾値よりも大きくなる。なお、この場合において、逆方向のネットワーク遅延は、順方向のネットワーク遅延よりもネットワークの輻輳の影響を受けていないと考えられるので、本開示の実施の形態では、PTPメッセージの逆方向の送受信時刻を利用して時刻差を算出するようにする。
【0039】
同図Dは、順方向および逆方向のネットワーク遅延が所定の第2の閾値よりも大きい場合を示している。この場合、PTPメッセージの順方向および逆方向の送受信時刻に基づいて算出されるネットワーク遅延は誤差が含まれるので、所定の第1の閾値よりも大きくなる。なお、この場合において、順方向、および逆方向のネットワーク遅延はともにネットワークの輻輳の影響を受けていないと考えられるので、本開示の実施の形態では、時刻差を0として時刻調整を行わないないようにする。
【0040】
上述したように、従来においては、同図Aの場合にのみ、PTPメッセージの送受信時刻を利用して時刻差を算出し、算出した時刻差に基づいてフィードバック制御値f1を生成するようにしていた。本開示の実施の形態においては、同図Aの場合のみならず、同図Bまたは同図Cの場合の場合においても、PTPメッセージの送受信時刻を利用して時刻差を算出し、算出した時刻差に基づいてフィードバック制御値f1を生成するようにする。これにより、「ネットワーク遅延は変動せず常に一定である」とする仮定が成立していない状態においても、できる限り速やかに時刻情報を高精度で調整できるようするものである。
【0041】
[時刻制御装置の構成例]
図4は、本開示の実施の形態である時刻制御装置の構成例を示している。この時刻制御装置30は、ネットワーク遅延・時刻差算出部31、最小値検出部38、減算部39,40、セレクタ41乃至43、PID処理部44、および時刻調整部45から構成される。
【0042】
ネットワーク遅延・時刻差算出部31は、減算部32乃至34、加算部35、および除算部36,37からなる。
【0043】
減算部32は、上述した式(2)に出現するSyncメッセージについての受信時刻T22−送信時刻T12を算出して減算部34、加算部35、および減算部39に出力する。減算部33は、上述した式(3)に出現するDelay_reqについての受信時刻T13−送信時刻T23を算出して減算部34、加算部35、および減算部40に出力する。
【0044】
減算部34および除算部36は、上述した式(4)に従い、時刻差を算出してセレクタ43に出力する。以下、SyncメッセージとDelay_reqの送受信時刻に基づき、式(4)に従って算出された時刻差を時刻差SDと称する。
【0045】
加算部35および除算部37は、上述した式(2)および式(3)に出現するネットワーク遅延を算出して最小値検出部38およびセレクタ43に出力する。
【0046】
最小値検出部38は、ネットワーク遅延・時刻差算出部31の除算部37から入力されるネットワーク遅延を随時監視し、そのネットワーク遅延の値が所定の第1の閾値よりも小さく、且つ、保持している最小値よりも小さい場合には、入力されたネットワーク遅延の値により保持する最小値を更新する。また、最小値検出部38は、保持するネットワーク遅延の最小値(ネットワーク遅延min)を減算部39および40に出力する。
【0047】
減算部39は、減算部32から入力される受信時刻T22−送信時刻T12(=ネットワーク遅延+時刻差)からネットワーク遅延minを減算することにより、Syncメッセージの送受信時刻のみに基づく時刻差Syncを算出してセレクタ41に出力する。
【0048】
減算部40は、ネットワーク遅延minから、減算部33から入力される受信時刻T13−送信時刻T23(=ネットワーク遅延−時刻差)を減算することにより、Delay_reqの送受信時刻のみに基づく時刻差Delayを算出してセレクタ41に出力する。
【0049】
セレクタ41は、減算部39から入力される時刻差Sync、または減算部40から入力される時刻差Delayのうち、その絶対値が小さい方をセレクタ42に出力する。
【0050】
セレクタ42は、セレクタ41からの入力(時刻差Syncまたは時刻差Delay)の絶対値が所定の第2の閾値よりも小さいか否かを判定し、判定結果が肯定である場合にはその入力をセレクタ43に出力する。反対に、判定結果が否定である場合には時刻差として0をセレクタ43に出力する。
【0051】
セレクタ43は、ネットワーク遅延・時刻差算出部31の除算部37から入力されるネットワーク遅延が所定の第1の閾値よりも小さいか否かを判定し、判定結果が肯定である場合、ネットワーク遅延・時刻差算出部31の除算部36から入力される時刻差SDをPID処理部44に出力する。反対に、判定結果が否定である場合、セレクタ42からの入力(時刻差Sync、時刻差Delay、または時刻差=0)をPID処理部44に出力する。
【0052】
PID処理部44は、セレクタ43からの入力(時刻差Sync、時刻差Delay、または時刻差=0)に基づき、後段の時刻調整部45をPID制御するためのフィードバック制御値f1を算出して時刻調整部45に出力する。時刻調整部45は、フィードバック制御値f1に従い、スレーブ機器の時刻情報T2を調整する。
【0053】
[動作説明]
次に、時刻制御装置30の動作について説明する。図5は、時刻制御装置30による時刻制御処理を説明するフローチャートである。
【0054】
この時刻制御処理は、所定の間隔で定期的に実行される。ステップS1において、ネットワーク遅延・時刻差算出部31の減算部32は、上述した式(2)に出現するSyncメッセージについての受信時刻T22−送信時刻T12を算出して減算部34、加算部35、および減算部39に出力する。一方、減算部33は、上述した式(3)に出現するDelay_reqについての受信時刻T13−送信時刻T23を算出して減算部34、加算部35、および減算部40に出力する。
【0055】
ステップS2において、ネットワーク遅延・時刻差算出部31の減算部34および除算部36は、上述した式(4)に従い、時刻差SDを算出してセレクタ42,43に出力する。一方、加算部35および除算部37は、上述した式(2)および式(3)に出現するネットワーク遅延を算出して最小値検出部38およびセレクタ43に出力する。
【0056】
ステップS3において、減算部39は、減算部32からの受信時刻T22−送信時刻T12(=ネットワーク遅延+時刻差)から、最小値検出部38からのネットワーク遅延minを減算することにより、Syncメッセージの送受信時刻のみに基づく時刻差Syncを算出してセレクタ41に出力する。一方、減算部40は、最小値検出部38からのネットワーク遅延minから、減算部33からの受信時刻T13−送信時刻T23(=ネットワーク遅延−時刻差)を減算することにより、Delay_reqの送受信時刻のみに基づく時刻差Delayを算出してセレクタ41に出力する。
【0057】
ステップS4において、セレクタ41は、減算部39から入力された時刻差Sync、または減算部40から入力された時刻差Delayのうち、その絶対値が小さい方をセレクタ42に出力する。
【0058】
ステップS5において、セレクタ43は、ネットワーク遅延・時刻差算出部31の除算部37から入力されたネットワーク遅延が所定の第1の閾値よりも小さいか否かを判定する。この判定結果が肯定である場合、処理はステップS6に進められ、セレクタ43は、除算部36から入力された時刻差SDをPID処理部44に出力する。反対に、判定結果が否定である場合、セレクタ43は、セレクタ42からの入力(時刻差Sync、時刻差Delay、または時刻差=0)をPID処理部44に出力する状態となって、処理はステップS7に進められる。
【0059】
ステップS7において、セレクタ42は、セレクタ41からの入力(時刻差Sync、または時刻差Delay)の絶対値が所定の第2の閾値よりも小さいか否かを判定する。この判定結果が肯定である場合、処理はステップS8に進められ、セレクタ41からの入力がセレクタ43に出力される。よって、セレクタ43からPID処理部44に対しては、セレクタ41からの入力(時刻差Sync、または時刻差Delay)が出力されることになる。
【0060】
反対に、ステップS7における判定結果が否定である場合、処理はステップS9に進められ、時刻差=0がセレクタ43に出力される。よって、セレクタ43からPID処理部44に対しては、時刻差=0が出力されることになる。
【0061】
ステップS10において、PID処理部44は、セレクタ43からの入力(時刻差Sync、時刻差Delay、または時刻差=0)に基づき、後段の時刻調整部45をPID制御するためのフィードバック制御値f1を算出して時刻調整部45に出力する。ステップS11において、時刻調整部45は、フィードバック制御値f1に従い、スレーブ機器の時刻情報T2を調整する。以上で、時刻制御処理は終了される。
【0062】
以上説明したように、時刻制御装置30による時刻制御処理によれば、算出されたネットワーク遅延が第1の閾値よりも小さい場合(図3Aに対応)には、PTPメッセージの送受信時刻を利用して算出した時刻差SDに基づいてフィードバック制御値f1を生成するようした。
【0063】
また、算出されたネットワーク遅延が第1の閾値よりも大きく、Syncメッセージの送受信時刻を利用して算出した時刻差Syncが、Delay_reqの送受信時刻を利用して算出した時刻差Delayよりもその絶対値が小さく、さらに、第2の閾値よりも小さい場合(図3Bに対応)には、時刻差Syncに基づいてフィードバック制御値f1を生成するようした。
【0064】
また、算出されたネットワーク遅延が第1の閾値よりも大きく、Delay_reqの送受信時刻を利用して算出した時刻差Delayが、Syncメッセージの送受信時刻を利用して算出した時刻差Syncよりもその絶対値が小さく、さらに、第2の閾値よりも小さい場合(図3Cに対応)には、時刻差Delayに基づいてフィードバック制御値f1を生成するようした。
【0065】
さらに、算出されたネットワーク遅延が第1の閾値よりも大きく、Delay_reqの送受信時刻を利用して算出した時刻差Delayと、Syncメッセージの送受信時刻を利用して算出した時刻差Syncとがともに第2の閾値以上である場合(図3Dに対応)には、時刻差=0に基づいてフィードバック制御値f1を生成するようした。
【0066】
すなわち、「ネットワーク遅延は変動せず常に一定である」とする仮定が成立していない状態においても、フィードバック制御値f1を生成するようにしたので、できる限り速やかにスレーブ機器の時刻情報T2を高精度で調整することが可能となる。
【0067】
ところで、上述した時刻制御装置30による一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウェアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
【0068】
図6は、上述した一連の処理をプログラムにより実行するコンピュータのハードウェアの構成例を示すブロック図である。
【0069】
コンピュータにおいて、CPU(Central Processing Unit)101,ROM(Read Only Memory)102,RAM(Random Access Memory)103は、バス104により相互に接続されている。
【0070】
バス104には、さらに、入出力インタフェース105が接続されている。入出力インタフェース105には、入力部106、出力部107、記憶部108、通信部109、およびドライブ110が接続されている。
【0071】
入力部106は、キーボード、マウス、マイクロフォンなどよりなる。出力部107は、ディスプレイ、スピーカなどよりなる。記憶部108は、ハードディスクや不揮発性のメモリなどよりなる。通信部109は、ネットワークインタフェースなどよりなる。ドライブ110は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブルメディア111を駆動する。
【0072】
以上のように構成されるコンピュータでは、CPU101が、例えば、記憶部108に記憶されているプログラムを、入出力インタフェース105およびバス104を介して、RAM103にロードして実行することにより、上述した一連の処理が行われる。
【0073】
コンピュータ(CPU101)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア111に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
【0074】
コンピュータでは、プログラムは、リムーバブルメディア111をドライブ110に装着することにより、入出力インタフェース105を介して、記憶部108にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部109で受信し、記憶部108にインストールすることができる。その他、プログラムは、ROM102や記憶部108に、あらかじめインストールしておくことができる。
【0075】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであってもよいし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであってもよい。
【0076】
なお、本開示の実施の形態は、上述した実施の形態に限定されるものではなく、本開示の要旨を逸脱しない範囲において種々の変更が可能である。
【符号の説明】
【0077】
30 時刻制御装置, 31 ネットワーク遅延・時刻差算出部, 32乃至34 減算部, 35 加算部, 36,37 除算部, 38 最小値検出部, 39,40 減算部, 41乃至43 セレクタ, 44 PID処理部, 45 時刻調整部, 100 コンピュータ, 101 CPU

【特許請求の範囲】
【請求項1】
スレーブ機器に内蔵され、ネットワークを介して接続されたマスタ機器との間で時刻情報を同期させる時刻制御装置において、
前記マスタ機器との間で送受信したメッセージの送受信時刻に基づいて、前記マスタ機器の時刻情報と前記スレーブ機器の時刻情報との差を表す第1の時刻差を算出する第1の算出部と、
前記マスタ機器から前記スレーブ機器に送信したメッセージの送受信時刻に基づいて、前記マスタ機器の時刻情報と前記スレーブ機器の時刻情報との差を表す第2の時刻差を算出する第2の算出部と、
前記スレーブ機器から前記マスタ機器に送信したメッセージの送受信時刻に基づいて、前記マスタ機器の時刻情報と前記スレーブ機器の時刻情報との差を表す第3の時刻差を算出する第3の算出部と、
算出された前記第1乃至第3の時刻差のいずれかを選択する選択部と、
選択された前記時刻差に基づき、前記スレーブ機器の時刻情報をフィードバック制御するためのフィードバック制御値を生成するフィードバック制御値生成部と、
生成された前記フィードバック制御値に従い、前記スレーブ機器の時刻情報を調整する調整部と
を備える時刻制御装置。
【請求項2】
前記第1の算出手段は、さらに、前記マスタ機器との間で送受信したメッセージの送受信時刻に基づいて、前記メッセージを前記ネットワークを介して通信するために要する時間を表すネットワーク遅延を算出し、
前記選択部は、前記ネットワーク遅延に基づいて前記第1乃至第3の時刻差のいずれかを選択する
請求項1に記載の時刻制御装置。
【請求項3】
前記選択部は、
前記ネットワーク遅延が第1の閾値よりも小さい場合、前記第1の時刻差を選択し、
前記ネットワーク遅延が前記第1の閾値以上である場合、前記第2の時刻差または前記第3の閾値の絶対値が小さい方を選択する
請求項2に記載の時刻制御装置。
【請求項4】
前記選択部は、
前記ネットワーク遅延が第1の閾値よりも小さい場合、前記第1の時刻差を選択し、
前記ネットワーク遅延が前記第1の閾値以上である場合、前記第2の時刻差または前記第3の閾値の絶対値が小さい方を選択し、選択した前記第2の時刻差または前記第3の閾値の絶対値が第2の閾値よりも小さいときには時刻差=0を前記フィードバック制御値生成部に通知する
請求項2に記載の時刻制御装置。
【請求項5】
前記第1の閾値よりも小さい前記ネットワーク遅延の最小値を保持する保持部を
さらに備え、
前記第2の算出部は、保持された前記ネットワーク遅延の前記最小値と前記マスタ機器から前記スレーブ機器に送信したメッセージの送受信時刻とに基づいて、前記マスタ機器の時刻情報と前記スレーブ機器の時刻情報との差を表す第2の時刻差を算出し、
前記第3の算出部は、保持された前記ネットワーク遅延の前記最小値と前記スレーブ機器から前記マスタ機器に送信したメッセージの送受信時刻とに基づいて、前記マスタ機器の時刻情報と前記スレーブ機器の時刻情報との差を表す第3の時刻差を算出する
請求項2に記載の時刻制御装置。
【請求項6】
スレーブ機器に内蔵され、ネットワークを介して接続されたマスタ機器との間で時刻情報を同期させる時刻制御装置の時刻制御方法において、
前記時刻制御装置による、
前記マスタ機器との間で送受信したメッセージの送受信時刻に基づいて、前記マスタ機器の時刻情報と前記スレーブ機器の時刻情報との差を表す第1の時刻差を算出する第1の算出ステップと、
前記マスタ機器から前記スレーブ機器に送信したメッセージの送受信時刻に基づいて、前記マスタ機器の時刻情報と前記スレーブ機器の時刻情報との差を表す第2の時刻差を算出する第2の算出ステップと、
前記スレーブ機器から前記マスタ機器に送信したメッセージの送受信時刻に基づいて、前記マスタ機器の時刻情報と前記スレーブ機器の時刻情報との差を表す第3の時刻差を算出する第3の算出ステップと、
算出された前記第1乃至第3の時刻差のいずれかを選択する選択ステップと、
選択された前記時刻差に基づき、前記スレーブ機器の時刻情報をフィードバック制御するためのフィードバック制御値を生成するPID処理ステップと、
生成された前記フィードバック制御値に従い、前記スレーブ機器の時刻情報を調整する調整ステップと
を含む時刻制御方法。
【請求項7】
スレーブ機器に内蔵され、ネットワークを介して接続されたマスタ機器との間で時刻情報を同期させるコンピュータに、
前記マスタ機器との間で送受信したメッセージの送受信時刻に基づいて、前記マスタ機器の時刻情報と前記スレーブ機器の時刻情報との差を表す第1の時刻差を算出する第1の算出部と、
前記マスタ機器から前記スレーブ機器に送信したメッセージの送受信時刻に基づいて、前記マスタ機器の時刻情報と前記スレーブ機器の時刻情報との差を表す第2の時刻差を算出する第2の算出部と、
前記スレーブ機器から前記マスタ機器に送信したメッセージの送受信時刻に基づいて、前記マスタ機器の時刻情報と前記スレーブ機器の時刻情報との差を表す第3の時刻差を算出する第3の算出部と、
算出された前記第1乃至第3の時刻差のいずれかを選択する選択部と、
選択された前記時刻差に基づき、前記スレーブ機器の時刻情報をフィードバック制御するためのフィードバック制御値を生成するフィードバック制御値生成部と、
生成された前記フィードバック制御値に従い、前記スレーブ機器の時刻情報を調整する調整部と
して機能させるプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2013−83451(P2013−83451A)
【公開日】平成25年5月9日(2013.5.9)
【国際特許分類】
【出願番号】特願2011−221471(P2011−221471)
【出願日】平成23年10月6日(2011.10.6)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】