周波数差検出装置、周波数差検出方法、およびプログラム
【課題】ネットワーク上のマスタ機器との間で発振周波数を高精度に同期させる。
【解決手段】本開示の一側面である周波数差検出装置は、ネットワークを介して接続されたマスタ機器とスレーブ機器の発振周波数の誤差を検出する周波数差検出装置において、前記マスタ機器から周期的に送信されるシンクメッセージに含まれる送信時刻T1と、前記メッセージを受信した受信時刻T2との差分を算出する第1の減算部と、i回目に受信された前記シンクメッセージに対応する前記第1の減算部による減算結果T2i−T1iと、i−k回目に受信された前記シンクメッセージに対応する前記第1の減算部による減算結果T2i−k−T1i−kとの差分を算出する第2の減算部と、前記第2の減算部による減算結果をkで除算する第1の除算部とを備える。本開示は、例えば、PTPスレーブに適用できる。
【解決手段】本開示の一側面である周波数差検出装置は、ネットワークを介して接続されたマスタ機器とスレーブ機器の発振周波数の誤差を検出する周波数差検出装置において、前記マスタ機器から周期的に送信されるシンクメッセージに含まれる送信時刻T1と、前記メッセージを受信した受信時刻T2との差分を算出する第1の減算部と、i回目に受信された前記シンクメッセージに対応する前記第1の減算部による減算結果T2i−T1iと、i−k回目に受信された前記シンクメッセージに対応する前記第1の減算部による減算結果T2i−k−T1i−kとの差分を算出する第2の減算部と、前記第2の減算部による減算結果をkで除算する第1の除算部とを備える。本開示は、例えば、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を含めたPTPメッセージとしてのDelay_resをPTPスレーブに返信するようになされている。すなわち、PTPスレーブは、Delay_reqを送信し、その返信である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は、次式のように表すことができる。
【0010】
周波数ずれΔm−Δs
=(T12−T11)−(T22−T21)=(T21−T11)−(T22−T12)
【0011】
時刻同期については、上述したように周波数同期を確立した後、PTPスレーブがDelay_reqを送信し、その返信であるDelay_resを受信することにより、Delay_reqの送信時刻T23と受信時刻T13を得るようする。
【0012】
具体的には、ネットワーク遅延を表す以下の2式
ネットワーク遅延=(T22−時刻差)−T12
ネットワーク遅延=T13−(T23−時刻差)
から
時刻差={(T22−T12)−(T13−T23)}/2
が導かれる。この時刻差が0となるように、PTPスレーブにおいて内部時計T2を調整すればよい。
【先行技術文献】
【特許文献】
【0013】
【特許文献1】特開2010−190635号公報
【発明の概要】
【発明が解決しようとする課題】
【0014】
ところで、PTPマスタとPTPスレーブが接続されている当該ネットワーク上に映像信号などの高容量のパケットが高速で流されるとネットワークに輻輳が生じてしまい、上述したPTPメッセージのネットワーク遅延時間が一時的に増加してしまうことが起こり得る。
【0015】
すなわち、例えば図2に示されるように、送信時刻T11,T12,T13に送信されたSyncメッセージについては、ネットワーク遅延時間は一定であるが、送信時刻T14に送信されたSyncメッセージについては、さらに時間D1だけ多く遅延してしまうことがある。
【0016】
このような場合、上述したPTPメッセージのネットワーク遅延時間は常に一定であると仮定が成立しなくなってしまうので、上述した方法では周波数同期や時刻同期を正確に実行することができなかった。
【0017】
本開示はこのような状況に鑑みてなされたものであり、ネットワーク上のマスタ機器との間で発振周波数を高精度に同期できるようにするものである。
【課題を解決するための手段】
【0018】
本開示の一側面である周波数差検出装置は、ネットワークを介して接続されたマスタ機器とスレーブ機器の発振周波数の誤差を検出する周波数差検出装置において、前記マスタ機器から周期的に送信されるシンクメッセージに含まれる送信時刻T1と、前記メッセージを受信した受信時刻T2との差分を算出する第1の減算部と、i回目に受信された前記シンクメッセージに対応する前記第1の減算部による減算結果T2i−T1iと、i−k回目に受信された前記シンクメッセージに対応する前記第1の減算部による減算結果T2i−k−T1i−kとの差分を算出する第2の減算部と、前記第2の減算部による減算結果をkで除算する第1の除算部とを備える。
【0019】
本開示の一側面である周波数差検出装置は、i回目に受信された前記シンクメッセージに対応する前記第1の減算部による減算結果T2i−T1iと、i−k+j(jはkより小さい整数)回目に受信された前記シンクメッセージに対応する前記第1の減算部による減算結果T2i−k+j−T1i−k+jとの差を算出する第3の減算部と、前記第3の減算部による減算結果をk−jで除算する第2の除算部と、前記第1の除算部によるkでの除算結果、または前記第2の除算部によるk−jでの除算結果を出力するスイッチと、前記スイッチを制御するスイッチ制御部とをさらに備えることができる。
【0020】
前記スレーブ機器においては、前記スイッチから出力される前記第1の除算部によるkでの除算結果、または前記第2の除算部によるk−jでの除算結果が0となるように前記発振周波数が調整されるようにすることができる。
【0021】
前記スイッチは、前記スイッチ制御部からの制御に従い、前記第1の除算部によるkでの除算結果、前記第2の除算部によるk−jでの除算結果、または値0を出力することができる。
【0022】
前記スイッチ制御部は、前記第2の減算部による減算結果の絶対値が所定の閾値以下の場合、前記第1の除算部によるkでの除算結果を前記スイッチから出力させ、前記第2の減算部による減算結果の絶対値が所定の閾値よりも大きく、前記第3の減算部による減算結果の絶対値が所定の閾値以下の場合、前記第2の除算部によるk−jでの除算結果を前記スイッチから出力させ、前記第2の減算部による減算結果の絶対値が所定の閾値よりも大きく、前記第3の減算部による減算結果の絶対値が所定の閾値よりも大きい場合、値0を前記スイッチから出力させることができる。
【0023】
本開示の一側面である周波数差検出装置は、i回目に受信された前記シンクメッセージに対応する前記第1の減算部による減算結果T2i−T1iと、i−1回目に受信された前記シンクメッセージに対応する前記第1の減算部による減算結果T2i−1−T1i−1との差を算出する第4の減算部と、前記第4の減算部による減算結果に基づいてネットワーク遅延時間の増加、減少、または変化なしを判定する判定部とをさらに備えることができる。
【0024】
前記スイッチ制御部は、前記判定部による直近k回分の判定結果における前記ネットワーク遅延時間の増加と判定された回数と減少と判定された回数とが等しい場合、前記第1の除算部によるkでの除算結果を前記スイッチから出力させ、前記判定部による直近k回分の判定結果における前記ネットワーク遅延時間の増加と判定された回数と減少と判定された回数とが異なり、前記判定部による直近k−1回分の判定結果における前記ネットワーク遅延時間の増加と判定された回数と減少と判定された回数とが等しい場合、前記第2の除算部によるk−jでの除算結果を前記スイッチから出力させ、前記判定部による直近k回分の判定結果における前記ネットワーク遅延時間の増加と判定された回数と減少と判定された回数とが異なり、前記判定部による直近k−1回分の判定結果における前記ネットワーク遅延時間の増加と判定された回数と減少と判定された回数とが異なる場合、値0を前記スイッチから出力させることができる。
【0025】
本開示の一側面である周波数差検出方法は、ネットワークを介して接続されたマスタ機器とスレーブ機器の発振周波数の誤差を検出する周波数差検出装置の周波数差検出方法において、前記周波数差検出装置による、前記マスタ機器から周期的に送信されるシンクメッセージに含まれる送信時刻T1と、前記メッセージを受信した受信時刻T2との差分を算出する第1の減算ステップと、i回目に受信された前記シンクメッセージに対応する前記第1の減算ステップによる減算結果T2i−T1iと、i−k回目に受信された前記シンクメッセージに対応する前記第1の減算ステップによる減算結果T2i−k−T1i−kとの差分を算出する第2の減算ステップと、前記第2の減算ステップによる減算結果をkで除算する除算ステップとを含む。
【0026】
本開示の一側面であるプログラムは、ネットワークを介して接続されたマスタ機器とスレーブ機器の発振周波数の誤差を検出するコンピュータを、前記マスタ機器から周期的に送信されるシンクメッセージに含まれる送信時刻T1と、前記メッセージを受信した受信時刻T2との差分を算出する第1の減算部と、i回目に受信された前記シンクメッセージに対応する前記第1の減算部による減算結果T2i−T1iと、i−k回目に受信された前記シンクメッセージに対応する前記第1の減算部による減算結果T2i−k−T1i−kとの差分を算出する第2の減算部と、前記第2の減算部による減算結果をkで除算する除算部として機能させる。
【0027】
本開示の一側面においては、マスタ機器から周期的に送信されるシンクメッセージに含まれる送信時刻T1と、前記メッセージを受信した受信時刻T2との差分が算出され、i回目に受信された前記シンクメッセージに対応する減算結果T2i−T1iと、i−k回目に受信された前記シンクメッセージに対応する減算結果T2i−k−T1i−kとの差分がkで除算される。
【発明の効果】
【0028】
本開示の一側面によれば、ネットワーク上のマスタ機器との間で発振周波数を高精度に同期することができる。
【図面の簡単な説明】
【0029】
【図1】IEEE1588PTPを利用した従来の高精度時刻同期処理の概要を示す図である。
【図2】ネットワーク遅延時間が一時的に変化する例を示す図である。
【図3】本開示の実施の形態である周波数差検出装置の第1の構成例を示すブロック図である。
【図4】本開示の実施の形態である周波数差検出装置の第2の構成例を示すブロック図である。
【図5】本開示の実施の形態である周波数差検出装置の第3の構成例を示すブロック図である。
【図6】k回前に受信されたSyncメッセージの送信時刻T1i―kおよび受信時刻T2i―kとの関係を示す図である。
【図7】周波数差検出装置の第3の構成例の動作を説明するフローチャートである。
【図8】周波数差検出装置の第3の構成例の出力を示す図である。
【図9】本開示の実施の形態である周波数差検出装置の第4の構成例を示すブロック図である。
【図10】周波数差検出装置の第3の構成例の動作を説明するフローチャートである。
【図11】本開示の実施の形態である周波数差検出装置の第3の構成例を示すブロック図である。
【図12】周波数差検出装置の第4の構成例の動作を説明するための図である。
【図13】周波数差検出装置の第4の構成例の動作を説明するフローチャートである。
【図14】コンピュータの構成例を示すブロック図である。
【発明を実施するための形態】
【0030】
以下、本開示を実施するための最良の形態(以下、実施の形態と称する)について、図面を参照しながら詳細に説明する。
【0031】
本開示の実施の形態である周波数差検出装置は、ネットワーク上のPTPマスタ(マスタ機器)とPTPメッセージを通信することにより、PTPマスタとの間で時刻情報を同期させるPTPスレーブ(スレーブ機器)に内蔵されるものである。
【0032】
この周波数差検出装置は、PTPスレーブの発振周波数f2をPTPマスタの発振周波数f1に誤差なく同期させるための情報として、Δm−Δsを検出する。そして、この周波数差検出装置を内蔵するPTPスレーブにおいては、検出されたΔm−Δsが0になるように、発振周波数f2を調整することによって周波数同期が確立される。
【0033】
[周波数差検出装置の第1の構成例]
図3は、実施の形態である周波数差検出装置の第1の構成例を示している。この周波数差検出装置10は、減算部11、1シーケンス遅延部12、減算部13、およびメディアンフィルタ18から構成される。
【0034】
減算部11は、周波数差検出装置10を内蔵するPTPスレーブにてPTPメッセージとしてのSyncメッセージが受信される毎、その受信時刻T2iから送信時刻T1iを減算し、減算結果T2i−T1iを1シーケンス遅延部12および減算部13に出力する。
【0035】
1シーケンス遅延部12は、減算部11から入力される減算結果T2i−T1iを保持するとともに、それまで保持していた1回前に受信されたSyncメッセージに対応する減算結果T2i−1−T1i−1を減算部13に出力する。
【0036】
減算部13は、今回受信されたSyncメッセージに対応する減算結果T2i−T1iから、1回前に受信されたSyncメッセージに対応する減算結果T2i−1−T1i−1を減算し、減算結果(T2i−T1i)−(T2i−1−T1i−1)=周波数ずれΔm−Δsをメディアンフィルタ18に出力する。
【0037】
メディアンフィルタ18は、1シーケンス遅延部14−1乃至14−3、選択部15、加算部16、および除算部17から構成される。1シーケンス遅延部14−1乃至14−3は、前段から入力される周波数ずれΔm−Δsを保持するとともに、それまで保持していた1回目の入力された周波数ずれΔm−Δsを後段に出力する。選択部15は、減算部13および1シーケンス遅延部14−1乃至14−3から同時に入力される4回分の周波数ずれΔm−Δsを比較し、そのうちの最大値と最小値を除く2値を選択して加算部16に出力する。加算部16は、選択された2回分の周波数ずれΔm−Δsを加算して除算部17に出力する。除算部17は、2回分の周波数ずれΔm−Δsの加算結果を2で除算する。
【0038】
[動作説明]
周波数差検出装置10の動作について説明する。
【0039】
周波数差検出装置10を内蔵するPTPスレーブにてPTPメッセージとしてのSyncメッセージが受信されると、減算部11は、その受信時刻T2iから送信時刻T1iを減算し、減算結果T2i−T1iを1シーケンス遅延部12および減算部13に出力する。
【0040】
1シーケンス遅延部12は、減算部11から入力された減算結果T2i−T1iを保持するとともに、それまで保持していた1回前に受信されたSyncメッセージに対応する減算結果T2i−1−T1i−1を減算部13に出力する。
【0041】
減算部13は、今回受信されたSyncメッセージに対応する減算結果T2i−T1iから、1回前に受信されたSyncメッセージに対応する減算結果T2i−1−T1i−1を減算し、減算結果(T2i−T1i)−(T2i−1−T1i−1)=周波数ずれΔm−Δsをメディアンフィルタ18に出力する。
【0042】
メディアンフィルタ18は、減算部13から入力された周波数ずれΔm−Δsと、その1回前、2回前、および3回前にそれぞれ入力された合計4回分の周波数ずれΔm−Δsを比較し、そのうちの最大値と最小値を除く2値の平均値を出力する。
【0043】
そして、PTPスレーブにおいては、この平均化された周波数ずれΔm−Δsが0になるように、発振周波数f2が調整される。
【0044】
以上説明したように、周波数差検出装置10によれば、連続する4回分の周波数ずれΔm−Δsの最大値と最小値を除く2値の平均値を、最終的な周波数ずれΔm−Δsとして出力するので、パルス的に発生するネットワーク遅延時間の変動に対処することができる。
【0045】
ただし、周波数差検出装置10では、ネットワーク遅延時間の変動が複数回に亘って発生した場合、最終的な周波数ずれΔm−Δsにもネットワーク遅延時間の変動の影響が生じてしまうので、そのような場合には、高精度の周波数同期が確立できない。
【0046】
そこで次に、ネットワーク遅延時間の変動の影響を受けている周波数ずれΔm−Δsが最終的に出力されないようにした周波数差検出装置の構成例について説明する。
【0047】
[周波数差検出装置の第2の構成例]
図4は、実施の形態である周波数差検出装置の第2の構成例を示している。この周波数差検出装置20は、減算部21、1シーケンス遅延部22、減算部23、比較部24、およびスイッチ25から構成される。
【0048】
減算部21は、周波数差検出装置20を内蔵するPTPスレーブにてPTPメッセージとしてのSyncメッセージが受信される毎、その受信時刻T2iから送信時刻T1iを減算し、減算結果T2i−T1iを1シーケンス遅延部22および減算部23に出力する。
【0049】
1シーケンス遅延部22は、減算部21から入力される減算結果T2i−T1iを保持するとともに、それまで保持していた1回前に受信されたSyncメッセージに対応する減算結果T2i−1−T1i−1を減算部23に出力する。
【0050】
減算部23は、今回受信されたSyncメッセージに対応する減算結果T2i−T1iから、1回前に受信されたSyncメッセージに対応する減算結果T2i−1−T1i−1を減算し、減算結果(T2i−T1i)−(T2i−1−T1i−1)=周波数ずれΔm−Δsを比較部24およびスイッチ25の入力端子25aに出力する。
【0051】
比較部24は、減算部23から入力される周波数ずれの絶対値|Δm−Δs|と所定の閾値を比較し、比較結果に応じてスイッチ25のスイッチングを制御する。
【0052】
スイッチ25は、比較部24の制御に従ってスイッチングを行い、入力端子25aに入力される周波数ずれΔm−Δs、または入力端子25bに入力される値0を後段に出力する。
【0053】
[動作説明]
周波数差検出装置20の動作について説明する。
【0054】
周波数差検出装置20を内蔵するPTPスレーブにてPTPメッセージとしてのSyncメッセージが受信されると、減算部21は、その受信時刻T2iから送信時刻T1iを減算し、減算結果T2i−T1iを1シーケンス遅延部22および減算部23に出力する。
【0055】
1シーケンス遅延部22は、減算部21から入力された減算結果T2i−T1iを保持するとともに、それまで保持していた1回前に受信されたSyncメッセージに対応する減算結果T2i−1−T1i−1を減算部23に出力する。
【0056】
減算部23は、今回受信されたSyncメッセージに対応する減算結果T2i−T1iから、1回前に受信されたSyncメッセージに対応する減算結果T2i−1−T1i−1を減算し、減算結果(T2i−T1i)−(T2i−1−T1i−1)=周波数ずれΔm−Δsを比較部24およびスイッチ25の入力端子25aに出力する。
【0057】
比較部24は、減算部23から入力された周波数ずれの絶対値|Δm−Δs|が所定の閾値よりも大きいか否かを判定する。この判定結果が肯定である場合、スイッチ25を入力端子bにスイッチングさせる。これにより、スイッチ25は、値0を後段に出力する。反対に、判定結果が否定である場合、スイッチ25が入力端子aにスイッチングされる。これにより、スイッチ25は、減算部23からの周波数ずれΔm−Δsを後段に出力させる。
【0058】
以上説明したように、周波数差検出装置20によれば、減算部23からの周波数ずれの絶対値|Δm−Δs|が所定の閾値よりも大きい場合、すなわち、ネットワーク遅延時間の変動の影響が周波数ずれΔm−Δsに大きく生じているような場合には、周波数ずれΔm−Δsの代わりに値0を出力するようにした。これにより、ネットワーク遅延時間に変動が生じている状態で、PTPスレーブの発振周波数f2が調整されてしまう事態を抑止することができる。
【0059】
ただし、周波数ずれΔm−Δsの代わりに値0を出力すると、その間は発振周波数f2が調整されない。したがって、特に、周波数同期の初期段階においてこの状態であると、発振周波数f2をPTPマスタの発振周波数f1に同期させるまでの時間が長くなってしまうことがある。
【0060】
そこで次に、ネットワーク遅延時間の変動が生じたとしても、その影響を周波数ずれΔm−Δsから排除できるようにした周波数差検出装置の構成例について説明する。
【0061】
[周波数差検出装置の第3の構成例]
図5は、実施の形態である周波数差検出装置の第3の構成例を示している。この周波数差検出装置30は、減算部31、kシーケンス遅延部32、減算部33、および除算部34から構成される。
【0062】
減算部31は、周波数差検出装置30を内蔵するPTPスレーブにてPTPメッセージとしてのSyncメッセージが受信される毎、その受信時刻T2iから送信時刻T1iを減算し、差分T2i−T1iをkシーケンス遅延部32および減算部33に出力する。
【0063】
kシーケンス遅延部32は、減算部31から入力される差分T2i−T1iを保持するとともに、それまで保持していたk回前に受信されたSyncメッセージに対応する差分T2i−k−T1i−kを減算部33に出力する。なお、kは2以上の整数とし、kシーケンス遅延部32の回路設計を考慮すると2の倍数であることが望ましい。例えば、k=8,k=16などとする。
【0064】
図6は、k=8とした場合における、今回受信されたSyncメッセージの送信時刻T1iおよび受信時刻T2iと、k回前に受信されたSyncメッセージの送信時刻T1i―kおよび受信時刻T2i―kとの関係を示している。同図Aに示されるSyncメッセージk回分の通信期間に注目すると、その通信期間の内部にネットワーク遅延時間の変動が生じている。しかしながら、今回のSyncメッセージの送信時刻T1iおよび受信時刻T2iと、k回前のSyncメッセージの送信時刻T1i―kおよび受信時刻T2i―kとの関係だけを見れば、その通信期間の内部に生じたネットワーク遅延時間の変動が影響していないことがわかる。
【0065】
減算部33は、今回受信されたSyncメッセージに対応する差分T2i−T1iから、k回前に受信されたSyncメッセージに対応する差分T2i−k−T1i−kを減算し、差分(T2i−T1i)−(T2i−k−T1i−k)=Δm×k−Δs×kを除算部34に出力する。
【0066】
除算部34は、減算部33から入力される差分Δm×k−Δs×kをkで除算し、その結果得られる周波数ずれΔm−Δsを後段に出力する。
【0067】
[動作説明]
周波数差検出装置30の動作について説明する。
【0068】
図7は、周波数差検出装置30による周波数差検出処理を説明するフローチャートである。
【0069】
周波数差検出装置30を内蔵するPTPスレーブにてPTPメッセージとしてのSyncメッセージが受信されると、ステップS1において、減算部31は、その受信時刻T2iから送信時刻T1iを減算し、減算結果である差分T2i−T1iをkシーケンス遅延部32および減算部33に出力する。
【0070】
ステップS2において、kシーケンス遅延部32は、減算部31から入力された差分T2i−T1iを保持するとともに、それまで保持していたk回前に受信されたSyncメッセージに対応する差分T2i−k−T1i−kを減算部33に出力する。
【0071】
減算部33は、今回受信されたSyncメッセージに対応する差分T2i−T1iから、k回前に受信されたSyncメッセージに対応する差分T2i−k−T1i−kを減算し、減算結果(T2i−T1i)−(T2i−k−T1i−k)=Δm×k−Δs×kを除算部34に出力する。
【0072】
ステップS3において、除算部34は、減算部33から入力された差分Δm×k−Δs×kをkで除算し、除算結果として得られる周波数ずれΔm−Δsを後段に出力する。
【0073】
そして、PTPスレーブにおいては、除算結果として得られる周波数ずれΔm−Δsが0になるように、発振周波数f2が調整される。
【0074】
以上説明したように、周波数差検出装置30によれば、図6Aに示されたように、Syncメッセージk回分の通信期間の内部にネットワーク遅延時間の変動が生じていたとしても、その影響を受けることなく周波数ずれΔm−Δsを検出することができる。よって、周波数差検出装置30を内蔵するPTPスレーブにおいて、高精度に周波数同期を確立することができる。
【0075】
ただし、図6Bに示されるように、Syncメッセージk回分の通信期間の端(図6Aの場合には最初(k回前))にネットワーク遅延時間の変動が生じている場合、図8に示されるように、減算部33から出力される差分は、Δm×k−Δs×k−D1となる。よって、除算部34の出力は、Δm−Δs−D1/kとなり、−D1/kの分だけ発振周波数f2の調整に誤差が生じることになる。尤も、kの値が大きければ、−D1/kは小さい値となるので、この影響を無視するようにしてもよい。
【0076】
次に、Syncメッセージk回分の通信期間の端にネットワーク遅延時間の変動が生じた場合においても、その影響を周波数ずれΔm−Δsから排除できるようにした周波数差検出装置の構成例について説明する。
【0077】
[周波数差検出装置の第4の構成例]
図9は、実施の形態である周波数差検出装置の第4の構成例を示している。この周波数差検出装置40は、減算部41、k−1シーケンス遅延部42、1シーケンス遅延部43、減算部44、比較部45、除算部46、スイッチ47、減算部48、比較部49、除算部50、およびスイッチ51から構成される。
【0078】
減算部41は、周波数差検出装置40を内蔵するPTPスレーブにてPTPメッセージとしてのSyncメッセージが受信される毎、その受信時刻T2iから送信時刻T1iを減算し、差分T2i−T1iをk−1シーケンス遅延部42、減算部44、および減算部48に出力する。
【0079】
k−1シーケンス遅延部42は、減算部41から入力される差分T2i−T1iを保持するとともに、それまで保持していたk−1回前に受信されたSyncメッセージに対応する差分T2i−k+1−T1i−k+1を1シーケンス遅延部43および減算部44に出力する。なお、kは2以上の整数とする。例えば、k=8,k=16などとする。
【0080】
1シーケンス遅延部43は、k−1シーケンス遅延部42から入力される差分T2i−k+1−T1i−k+1を保持するとともに、それまで保持していたk回前に受信されたSyncメッセージに対応する差分T2i−k−T1i−kを減算部48に出力する。
【0081】
減算部44は、今回受信されたSyncメッセージに対応する差分T2i−T1iから、k−1回前に受信されたSyncメッセージに対応する差分T2i−k+1−T1i−k+1を減算し、差分(T2i−T1i)−(T2i−k+1−T1i−k+1)=Δm×(k−1)−Δs×(k−1)を比較部45および除算部46に出力する。
【0082】
比較部45は、減算部44から入力される差分の絶対値|(Δm−Δs)×(k−1)|と所定の閾値を比較し、比較結果に応じてスイッチ47のスイッチングを制御する。
【0083】
除算部46は、減算部44から入力される差分(Δm−Δs)×(k−1)をk−1で除算し、その結果得られる周波数ずれΔm−Δsをスイッチ47の入力端子47aに出力する。
【0084】
スイッチ47は、比較部45の制御に従ってスイッチングを行い、除算部46から入力端子47aに入力される周波数ずれΔm−Δs、または入力端子47bに入力される値0を、スイッチ51の入力端子51bに出力する。
【0085】
減算部48は、今回受信されたSyncメッセージに対応する差分T2i−T1iから、k回前に受信されたSyncメッセージに対応する差分T2i−k−T1i−kを減算し、差分(T2i−T1i)−(T2i−k−T1i−k)=Δm×k−Δs×kを比較部49および除算部50に出力する。
【0086】
比較部49は、減算部48から入力される差分の絶対値|(Δm−Δs)×k|と所定の閾値を比較し、比較結果に応じてスイッチ51のスイッチングを制御する。
【0087】
除算部50は、減算部48から入力される差分(Δm−Δs)×kをkで除算し、その結果得られる周波数ずれΔm−Δsをスイッチ51の入力端子51aに出力する。
【0088】
スイッチ51は、比較部49の制御に従ってスイッチングを行い、除算部50から入力端子51aに入力される周波数ずれΔm−Δs、または入力端子51bに入力されるスイッチ47の出力(除算部46が出力する周波数ずれΔm−Δs、または値0)を後段に出力する。
【0089】
[動作説明]
周波数差検出装置40の動作について説明する。図10は、周波数差検出装置40による周波数差検出処理を説明するフローチャートである。
【0090】
周波数差検出装置40を内蔵するPTPスレーブにてPTPメッセージとしてのSyncメッセージが受信されると、ステップS11において、減算部41は、その受信時刻T2iから送信時刻T1iを減算し、差分T2i−T1iをk−1シーケンス遅延部42、減算部44、および減算部48に出力する。
【0091】
ステップS12において、減算部44は、今回受信されたSyncメッセージに対応する差分T2i−T1iから、k−1シーケンス遅延部42からのk−1回前に受信されたSyncメッセージに対応する差分T2i−k+1−T1i−k+1を減算し、差分(T2i−T1i)−(T2i−k+1−T1i−k+1)=Δm×(k−1)−Δs×(k−1)を比較部45および除算部46に出力する。
【0092】
ステップS13において、除算部46は、減算部44から入力された差分(Δm−Δs)×(k−1)をk−1で除算し、その結果得られる周波数ずれΔm−Δsをスイッチ47の入力端子47aに出力する。一方、比較部45は、減算部44から入力される差分の絶対値|(Δm−Δs)×(k−1)|が所定の閾値よりも大きいか否かを判定する。この判定結果が肯定である場合、処理はステップS14に進められ、スイッチ47は、比較部45からの制御に従い、入力端子47b側にスイッチングして、値0をスイッチ51の入力端子51bに出力する。反対に、ステップS13での判定結果が否定である場合、処理はステップS15に進められ、スイッチ47は、比較部45からの制御に従い、入力端子47a側にスイッチングして、除算部46からの周波数ずれΔm−Δsをスイッチ51の入力端子51bに出力する。
【0093】
ステップS16において、減算部48は、今回受信されたSyncメッセージに対応する差分T2i−T1iから、1シーケンス遅延部43からのk回前に受信されたSyncメッセージに対応する差分T2i−k−T1i−kを減算し、差分(T2i−T1i)−(T2i−k−T1i−k)=Δm×k−Δs×kを比較部49および除算部50に出力する。
【0094】
ステップS17において、除算部50は、減算部48から入力された差分(Δm−Δs)×kをkで除算し、その結果得られる周波数ずれΔm−Δsをスイッチ51の入力端子51aに出力する。一方、比較部49は、減算部48から入力される差分の絶対値|(Δm−Δs)×k)|が所定の閾値よりも大きいか否かを判定する。この判定結果が肯定である場合、処理はステップS18に進められ、スイッチ51は、比較部49からの制御に従い、入力端子51b側にスイッチングして、スイッチ47の出力を後段に出力する。反対に、ステップS17での判定結果が否定である場合、処理はステップS19に進められ、スイッチ51は、比較部49からの制御に従い、入力端子51a側にスイッチングして、除算部50からの周波数ずれΔm−Δsを後段に出力する。
【0095】
そして、PTPスレーブにおいては、除算結果として得られる周波数ずれΔm−Δsが0になるように、発振周波数f2が調整される。
【0096】
以上説明したように、周波数差検出装置40によれば、例えば、図6Bに示されたように、Syncメッセージのk回分の通信区間にネットワーク遅延時間の変動が生じていた場合、図6Cに示されるように、それよりも1回分少ないネットワーク遅延時間が変動していないk−1回分の通信区間に基づいて周波数ずれを検出するようにした。周波数差検出装置40を内蔵するPTPスレーブにおいて、高精度に周波数同期を確立することができる。
【0097】
なお、周波数差検出装置40においては、k回分とk−1回分の通信区間に着目して周得た波数ずれのいずれかを出力するようにしたが、例えば、さらにk−2回分、k−3回分など多段階的に通信区間に着目して周波数ずれを検出し、その中から、ネットワーク遅延時間の変動の影響を受けていないものを選択して出力するようにしてもよい。
【0098】
ところで、周波数検出装置40の比較部49において減算部48からの入力と比較される所定の閾値は、例えば以下のように決定される。
【0099】
例えば、PTPマスタおよびPTPスレーブそれぞれに搭載されるVCO(voltage controlled oscillator)の周波数可変範囲を±300ppm、Syncメッセージの送信間隔を1/64秒とし、PTPスレーブの周波数f2がPTPマスタの周波数f1に対して最大100ppmずれ得るとする。この場合、この最大100ppmの周波数ずれを要因として、Syncメッセージの1回の通信で1.5μ秒(=100ppm/64)だけ受信時刻に誤差が生じ得るので、k回分のシーケンスにおけるネットワーク遅延時間には最大1.5kμ秒の時刻誤差を含むことになる。
【0100】
よって、比較部49における所定の閾値を1.5kμ秒とすれば、周波数ずれを要因とする時刻誤差を考慮して、ネットワーク遅延時間の変動の有無を判断することができる。例えば、k=8とした場合には比較部49における所定の閾値を12μ秒とすればよい。
【0101】
ただし、周波数ずれを要因とする時刻誤差ではなく、実際にネットワーク遅延時間に変動が生じている場合であっても、減算部48からの入力が当該所定の閾値よりもわずかに小さいような場合にはそれが検出されず、ネットワーク遅延時間に変動が生じていないものとして処理が行われてしまい、周波数f2の適切な調整が行われないことになる。
【0102】
したがって、周波数ずれを要因とする時刻誤差ではなく、実際に生じているネットワーク遅延時間の変動をより正確に検出できるようにする仕組みが必要となる。
【0103】
そこで次に、実際に生じているネットワーク遅延時間の変動を、周波数差の検出により正確に反映できるようにした周波数差検出装置の構成例について説明する。
【0104】
[周波数差検出装置の第5の構成例]
図11は、実施の形態である周波数差検出装置の第5の構成例を示している。この周波数差検出装置60は、減算部61、k−1シーケンス遅延部62、1シーケンス遅延部63、減算部64、除算部65、スイッチ66、減算部67、除算部68、スイッチ69、1シーケンス遅延部70、減算部71、判定部72、および比較部73,74から構成される。
【0105】
減算部61は、周波数差検出装置60を内蔵するPTPスレーブにてPTPメッセージとしてのSyncメッセージが受信される毎、その受信時刻T2iから送信時刻T1iを減算し、差分T2i−T1iをk−1シーケンス遅延部62、減算部64、減算部67、1シーケンス遅延部70、および減算部71に出力する。
【0106】
k−1シーケンス遅延部62は、減算部61から入力される差分T2i−T1iを保持するとともに、それまで保持していたk−1回前に受信されたSyncメッセージに対応する差分T2i−k+1−T1i−k+1を1シーケンス遅延部63および減算部67に出力する。なお、kは2以上の整数とする。例えば、k=8,k=16などとする。
【0107】
1シーケンス遅延部63は、k−1シーケンス遅延部42から入力される差分T2i−k+1−T1i−k+1を保持するとともに、それまで保持していたk回前に受信されたSyncメッセージに対応する差分T2i−k−T1i−kを減算部64に出力する。
【0108】
減算部64は、今回受信されたSyncメッセージに対応する差分T2i−T1iから、k回前に受信されたSyncメッセージに対応する差分T2i−k−T1i−kを減算し、差分(T2i−T1i)−(T2i−k−T1i−k)=Δm×k−Δs×k=(Δm−Δs)×kを除算部65に出力する。
【0109】
除算部65は、減算部64から入力される差分(Δm−Δs)×kをkで除算し、その結果得られる周波数ずれΔm−Δsをスイッチ66の入力端子66aに出力する。
【0110】
スイッチ66は、比較部74の制御に従ってスイッチングを行い、入力端子51aまたは入力端子51bに入力される値を後段に出力する。
【0111】
減算部67は、今回受信されたSyncメッセージに対応する差分T2i−T1iから、k−1回前に受信されたSyncメッセージに対応する差分T2i−k+1−T1i−k+1を減算し、差分(T2i−T1i)−(T2i−k+1−T1i−k+1)=Δm×(k−1)−Δs×(k−1)=(Δm−Δs)×(k−1)を除算部68に出力する。
【0112】
除算部68は、減算部67から入力される差分(Δm−Δs)×(k−1)をk−1で除算し、その結果得られる周波数ずれΔm−Δsをスイッチ69の入力端子69aに出力する。
【0113】
スイッチ69は、比較部73の制御に従ってスイッチングを行い、除算部46から入力端子69aに入力される周波数ずれΔm−Δs、または入力端子69bに入力される値0を、スイッチ66の入力端子66bに出力する。
【0114】
1シーケンス遅延部70は、減算部61から入力される差分T2i−T1iを保持するとともに、それまで保持していた1回前に受信されたSyncメッセージに対応する差分T2i−1−T1i−1を減算部71に出力する。
【0115】
減算部71は、今回受信されたSyncメッセージに対応する差分T2i−T1iから、1回前に受信されたSyncメッセージに対応する差分T2i−1−T1i−1を減算し、差分(T2i−T1i)−(T2i−1−T1i−1)=(T1i−1−T1i)−(T2i−1−T2i)=Δm−Δsを判定部72に出力する。
【0116】
判定部72は、減算部71からの入力、すなわち、1回分の通信区間から得られる周波数ずれΔm−Δsと所定の閾値と大小関係を判定する。この所定の閾値は、以下の仮定に基づいて例えば1.5μ秒とする。
【0117】
仮定:PTPマスタおよびPTPスレーブそれぞれのVCOの周波数可変範囲を±300ppm、Syncメッセージの送信間隔を1/64秒、周波数f2が周波数f1に対して最大100ppmずれ得る。この最大100ppmの周波数ずれを要因として、Syncメッセージの1回の通信で1.5μ秒(=100ppm/64)だけ受信時刻に誤差が生じ得る。
【0118】
さらに、判定部72は、判定結果としてL,SまたはOを比較73および74に通知する。具体的には、周波数ずれΔm−Δsが所定の閾値よりも大きい場合にはL、小さい場合にはS、Δm−Δs=0の場合にはOを通知する。
【0119】
図12は、判定部72から通知されるL,SまたはOの意味を図示している。Lは、今回と1回目のSyncメッセージのPTPスレーブにおける受信時刻の間隔Δsが一定である状態よりも長くなっていることを示す。Sは、今回と1回目のSyncメッセージのPTPスレーブにおける受信時刻の間隔Δsが一定である状態よりも短くなっていることを示す。Oは、今回と1回目のSyncメッセージのPTPスレーブにおける受信時刻の間隔Δsが一定の状態であることを示す。
【0120】
比較部73は、判定部72から判定結果が入力される毎、今回からk−1回前までのk−1個の判定結果のうち、Lの数CLと、Sの数CSをカウントして比較する。Lの数CLと、Sの数CSが等しい場合、LとSは相殺されるのでk−1回分の通信区間にネットワーク遅延時間の変動が生じなかったと判断されて、スイッチ69を入力端子69a側にスイッチさせる。反対に、Lの数CLと、Sの数CSとが異なる場合、k−1回分の通信区間にネットワーク遅延時間の変動が生じたと判断され、スイッチ69を入力端子69b側にスイッチさせる。
【0121】
比較部74は、判定部72から判定結果が入力される毎、今回からk回前までのk個の判定結果のうち、Lの数CLと、Sの数CSをカウントして比較する。Lの数CLと、Sの数CSが等しい場合、LとSは相殺されるのでk回分の通信区間にネットワーク遅延時間の変動が生じなかったと判断されて、スイッチ66を入力端子66a側にスイッチさせる。反対に、Lの数CLと、Sの数CSとが異なる場合、k回分の通信区間にネットワーク遅延時間の変動が生じたと判断され、スイッチ66を入力端子66b側にスイッチさせる。
【0122】
[動作説明]
周波数差検出装置60の動作について説明する。図13は、周波数差検出装置60による周波数差検出処理を説明するフローチャートである。
【0123】
周波数差検出装置60を内蔵するPTPスレーブにてPTPメッセージとしてのSyncメッセージが受信されると、ステップS31において、減算部61は、その受信時刻T2iから送信時刻T1iを減算し、差分T2i−T1iをk−1シーケンス遅延部62、減算部64、減算部67、1シーケンス遅延部70、および減算部71に出力する。
【0124】
ステップS32において、減算部64は、今回受信されたSyncメッセージに対応する差分T2i−T1iから、k−1シーケンス遅延部62および1シーケンス遅延部63を経て入力されたk回前に受信されたSyncメッセージに対応する差分T2i−k−T1i−kを減算し、差分(T2i−T1i)−(T2i−k−T1i−k)=Δm×k−Δs×k=(Δm−Δs)×kを除算部65に出力する。除算部65は、減算部64から入力された差分(Δm−Δs)×kをkで除算し、その演算結果である周波数ずれΔm−Δs(以下、第1の演算結果と称する)をスイッチ66の入力端子66aに出力する。
【0125】
ステップS33において、減算部67は、今回受信されたSyncメッセージに対応する差分T2i−T1iから、k−1シーケンス遅延部62を経て入力されたk−1回前に受信されたSyncメッセージに対応する差分T2i−k+1−T1i−k+1を減算し、差分(T2i−T1i)−(T2i−k+1−T1i−k+1)=Δm×(k−1)−Δs×(k−1)=(Δm−Δs)×(k−1)を除算部68に出力する。
【0126】
除算部68は、減算部67から入力された差分(Δm−Δs)×(k−1)をk−1で除算し、その演算結果である周波数ずれΔm−Δs(以下、第2の演算結果と称する)をスイッチ69の入力端子69aに出力する。
【0127】
ステップS34において、減算部71は、今回受信されたSyncメッセージに対応する差分T2i−T1iから、1シーケンス遅延部70を経て入力された1回前に受信されたSyncメッセージに対応する差分T2i−1−T1i−1を減算し、差分(T2i−T1i)−(T2i−1−T1i−1)=(T1i−1−T1i)−(T2i−1−T2i)=Δm−Δs(以下、第3の演算結果と称する)を判定部72に出力する。
【0128】
ステップS35において、判定部72は、減算部71から入力された第3の演算結果の所定の閾値に対する大小関係を判定し、判定結果としてL,SまたはOを比較73および74に通知する。
【0129】
ステップS36において、比較部74は、今回からk回前までのk個の判定結果のうち、Lの数CLと、Sの数CSをカウントし、Lの数CLとSの数CSが等しいか否かを判断する。この判定結果が肯定の場合、処理はステップS37に進められる。ステップS37において、比較部74は、スイッチ66を入力端子66a側にスイッチさせる。これにより、スイッチ66は、入力端子66a側に入力された第1の演算結果を周波数ずれΔm−Δsとして後段に出力することになる。
【0130】
ステップS36における判定結果が否定の場合、処理はステップS38に進められる。ステップS38において、比較部74は、スイッチ66を入力端子66b側にスイッチさせる。比較部73は、今回からk−1回前までのk−1個の判定結果のうち、Lの数CLと、Sの数CSをカウントし、Lの数CLとSの数CSが等しいか否かを判断する。この判定結果が肯定の場合、処理はステップS39に進められる。
【0131】
ステップS39において、比較部73は、スイッチ69を入力端子69a側にスイッチさせる。これにより、スイッチ69は、入力端子69a側に入力された第2の演算結果をスイッチ66の入力端子66bに出力する。スイッチ66は、すでに入力端子66b側にスイッチされているので、入力端子66b側に入力された第2の演算結果を周波数ずれΔm−Δsとして後段に出力することになる。
【0132】
ステップS38における判定結果が否定の場合、処理はステップS40に進められる。ステップS40において、比較部73は、スイッチ69を入力端子66b側にスイッチさせる。これにより、スイッチ69は、入力端子69b側に入力されている値0をスイッチ66の入力端子66bに出力する。スイッチ66は、すでに入力端子66b側にスイッチされているので、周波数ずれΔm−Δs=0を後段に出力することになる。
【0133】
そして、PTPスレーブにおいては、スイッチ66から出力される周波数ずれΔm−Δsが0になるように、発振周波数f2が調整される。
【0134】
以上説明したように、周波数差検出装置60によれば、判定部72における所定の閾値1.5μ秒との大小関係の判定結果の数CL,CSによりネットワーク遅延時間の変動が検出される。したがって、周波数差検出装置40に比較して、ネットワーク遅延時間の変動の有無をより高精度で検出することができ、より速やかに周波数同期を確立することができる。
【0135】
なお、周波数差検出装置60においては、周波数差検出装置40と同様、k回分とk−1回分の通信区間に着目して得た周波数ずれを出力するようにしたが、例えば、さらにk−2回分、k−3回分など多段階的に通信区間に着目して周波数ずれを検出し、その中から、ネットワーク遅延時間の変動の影響を受けていないものを選択して出力するようにしてもよい。
【0136】
[周波数差検出装置60の動作の変形例]
判定部72、比較部73、および比較部74を以下のように動作させてもよい。
【0137】
判定部72において、減算部71からの、1回分の通信区間から得られる周波数ずれΔm−Δsが0の場合には0を後段に出力し、周波数ずれΔm−Δsが0ではない場合、その値から所定の閾値(1.5μ秒)を減算し、その減算結果を後段に出力するようにする。
【0138】
比較部73では、判定部72から0または減算結果が入力される毎、今回からk−1回前までのk−1個の入力を加算し、その和が所定の閾値(1.5μ秒)以下の場合、ネットワーク遅延時間の変動が生じなかったとして、スイッチ69を入力端子69a側にスイッチさせる。反対に、その和が所定の閾値(1.5μ秒)よりも大きい場合、ネットワーク遅延時間の変動が生じたとして、スイッチ69を入力端子69b側にスイッチさせる。
【0139】
比較部74では、判定部72から0または減算結果が入力される毎、今回からk回前までのk個の入力を加算し、その和が所定の閾値(1.5μ秒)以下の場合、ネットワーク遅延時間の変動が生じなかったとして、スイッチ66を入力端子66a側にスイッチさせる。反対に、その和が所定の閾値(1.5μ秒)よりも大きい場合、ネットワーク遅延時間の変動が生じたとして、スイッチ66を入力端子66b側にスイッチさせる。
【0140】
このように動作させて場合においても、したがって、周波数差検出装置40に比較して、ネットワーク遅延時間の変動の有無をより高精度で検出することができ、より速やかに周波数同期を確立することができる。
【0141】
ところで、上述した周波数差検出装置10乃至60による一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウェアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
【0142】
図14は、上述した一連の処理をプログラムにより実行するコンピュータのハードウェアの構成例を示すブロック図である。
【0143】
コンピュータにおいて、CPU(Central Processing Unit)101,ROM(Read Only Memory)102,RAM(Random Access Memory)103は、バス104により相互に接続されている。
【0144】
バス104には、さらに、入出力インタフェース105が接続されている。入出力インタフェース105には、入力部106、出力部107、記憶部108、通信部109、およびドライブ110が接続されている。
【0145】
入力部106は、キーボード、マウス、マイクロフォンなどよりなる。出力部107は、ディスプレイ、スピーカなどよりなる。記憶部108は、ハードディスクや不揮発性のメモリなどよりなる。通信部109は、ネットワークインタフェースなどよりなる。ドライブ110は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブルメディア111を駆動する。
【0146】
以上のように構成されるコンピュータでは、CPU101が、例えば、記憶部108に記憶されているプログラムを、入出力インタフェース105およびバス104を介して、RAM103にロードして実行することにより、上述した一連の処理が行われる。
【0147】
コンピュータ(CPU101)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア111に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
【0148】
コンピュータでは、プログラムは、リムーバブルメディア111をドライブ110に装着することにより、入出力インタフェース105を介して、記憶部108にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部109で受信し、記憶部108にインストールすることができる。その他、プログラムは、ROM102や記憶部108に、あらかじめインストールしておくことができる。
【0149】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであってもよいし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであってもよい。
【0150】
なお、本開示の実施の形態は、上述した実施の形態に限定されるものではなく、本開示の要旨を逸脱しない範囲において種々の変更が可能である。
【符号の説明】
【0151】
10 周波数差検出装置, 11 減算部, 12 1シーケンス遅延部, 13 減算部, 14 1シーケンス遅延部, 15 選択部, 16 加算部, 17 除算部, 18 メディアンフィルタ, 20 周波数差検出装置, 21 減算部, 22 1シーケンス遅延部, 23 減算部, 24 比較部, 25 スイッチ, 30 周波数差検出装置, 31 減算部, 32 kシーケンス遅延部, 33 減算部, 34 除算部, 40 周波数差検出装置, 41 減算部, 42 k−1シーケンス遅延部, 43 1シーケンス遅延部, 44 減算部, 45 比較部, 46 除算部, 47 スイッチ, 48 減算部, 49 比較部, 50 除算部, 51 スイッチ, 60 周波数差検出装置, 61 減算部, 62 k−1シーケンス遅延部, 63 1シーケンス遅延部, 64 減算部, 65 比較部, 66 スイッチ, 67 減算部, 68 除算部, 69 スイッチ, 70 1シーケンス遅延部, 71 減算部, 72 判定部, 73,74 比較部
【技術分野】
【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を含めたPTPメッセージとしてのDelay_resをPTPスレーブに返信するようになされている。すなわち、PTPスレーブは、Delay_reqを送信し、その返信である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は、次式のように表すことができる。
【0010】
周波数ずれΔm−Δs
=(T12−T11)−(T22−T21)=(T21−T11)−(T22−T12)
【0011】
時刻同期については、上述したように周波数同期を確立した後、PTPスレーブがDelay_reqを送信し、その返信であるDelay_resを受信することにより、Delay_reqの送信時刻T23と受信時刻T13を得るようする。
【0012】
具体的には、ネットワーク遅延を表す以下の2式
ネットワーク遅延=(T22−時刻差)−T12
ネットワーク遅延=T13−(T23−時刻差)
から
時刻差={(T22−T12)−(T13−T23)}/2
が導かれる。この時刻差が0となるように、PTPスレーブにおいて内部時計T2を調整すればよい。
【先行技術文献】
【特許文献】
【0013】
【特許文献1】特開2010−190635号公報
【発明の概要】
【発明が解決しようとする課題】
【0014】
ところで、PTPマスタとPTPスレーブが接続されている当該ネットワーク上に映像信号などの高容量のパケットが高速で流されるとネットワークに輻輳が生じてしまい、上述したPTPメッセージのネットワーク遅延時間が一時的に増加してしまうことが起こり得る。
【0015】
すなわち、例えば図2に示されるように、送信時刻T11,T12,T13に送信されたSyncメッセージについては、ネットワーク遅延時間は一定であるが、送信時刻T14に送信されたSyncメッセージについては、さらに時間D1だけ多く遅延してしまうことがある。
【0016】
このような場合、上述したPTPメッセージのネットワーク遅延時間は常に一定であると仮定が成立しなくなってしまうので、上述した方法では周波数同期や時刻同期を正確に実行することができなかった。
【0017】
本開示はこのような状況に鑑みてなされたものであり、ネットワーク上のマスタ機器との間で発振周波数を高精度に同期できるようにするものである。
【課題を解決するための手段】
【0018】
本開示の一側面である周波数差検出装置は、ネットワークを介して接続されたマスタ機器とスレーブ機器の発振周波数の誤差を検出する周波数差検出装置において、前記マスタ機器から周期的に送信されるシンクメッセージに含まれる送信時刻T1と、前記メッセージを受信した受信時刻T2との差分を算出する第1の減算部と、i回目に受信された前記シンクメッセージに対応する前記第1の減算部による減算結果T2i−T1iと、i−k回目に受信された前記シンクメッセージに対応する前記第1の減算部による減算結果T2i−k−T1i−kとの差分を算出する第2の減算部と、前記第2の減算部による減算結果をkで除算する第1の除算部とを備える。
【0019】
本開示の一側面である周波数差検出装置は、i回目に受信された前記シンクメッセージに対応する前記第1の減算部による減算結果T2i−T1iと、i−k+j(jはkより小さい整数)回目に受信された前記シンクメッセージに対応する前記第1の減算部による減算結果T2i−k+j−T1i−k+jとの差を算出する第3の減算部と、前記第3の減算部による減算結果をk−jで除算する第2の除算部と、前記第1の除算部によるkでの除算結果、または前記第2の除算部によるk−jでの除算結果を出力するスイッチと、前記スイッチを制御するスイッチ制御部とをさらに備えることができる。
【0020】
前記スレーブ機器においては、前記スイッチから出力される前記第1の除算部によるkでの除算結果、または前記第2の除算部によるk−jでの除算結果が0となるように前記発振周波数が調整されるようにすることができる。
【0021】
前記スイッチは、前記スイッチ制御部からの制御に従い、前記第1の除算部によるkでの除算結果、前記第2の除算部によるk−jでの除算結果、または値0を出力することができる。
【0022】
前記スイッチ制御部は、前記第2の減算部による減算結果の絶対値が所定の閾値以下の場合、前記第1の除算部によるkでの除算結果を前記スイッチから出力させ、前記第2の減算部による減算結果の絶対値が所定の閾値よりも大きく、前記第3の減算部による減算結果の絶対値が所定の閾値以下の場合、前記第2の除算部によるk−jでの除算結果を前記スイッチから出力させ、前記第2の減算部による減算結果の絶対値が所定の閾値よりも大きく、前記第3の減算部による減算結果の絶対値が所定の閾値よりも大きい場合、値0を前記スイッチから出力させることができる。
【0023】
本開示の一側面である周波数差検出装置は、i回目に受信された前記シンクメッセージに対応する前記第1の減算部による減算結果T2i−T1iと、i−1回目に受信された前記シンクメッセージに対応する前記第1の減算部による減算結果T2i−1−T1i−1との差を算出する第4の減算部と、前記第4の減算部による減算結果に基づいてネットワーク遅延時間の増加、減少、または変化なしを判定する判定部とをさらに備えることができる。
【0024】
前記スイッチ制御部は、前記判定部による直近k回分の判定結果における前記ネットワーク遅延時間の増加と判定された回数と減少と判定された回数とが等しい場合、前記第1の除算部によるkでの除算結果を前記スイッチから出力させ、前記判定部による直近k回分の判定結果における前記ネットワーク遅延時間の増加と判定された回数と減少と判定された回数とが異なり、前記判定部による直近k−1回分の判定結果における前記ネットワーク遅延時間の増加と判定された回数と減少と判定された回数とが等しい場合、前記第2の除算部によるk−jでの除算結果を前記スイッチから出力させ、前記判定部による直近k回分の判定結果における前記ネットワーク遅延時間の増加と判定された回数と減少と判定された回数とが異なり、前記判定部による直近k−1回分の判定結果における前記ネットワーク遅延時間の増加と判定された回数と減少と判定された回数とが異なる場合、値0を前記スイッチから出力させることができる。
【0025】
本開示の一側面である周波数差検出方法は、ネットワークを介して接続されたマスタ機器とスレーブ機器の発振周波数の誤差を検出する周波数差検出装置の周波数差検出方法において、前記周波数差検出装置による、前記マスタ機器から周期的に送信されるシンクメッセージに含まれる送信時刻T1と、前記メッセージを受信した受信時刻T2との差分を算出する第1の減算ステップと、i回目に受信された前記シンクメッセージに対応する前記第1の減算ステップによる減算結果T2i−T1iと、i−k回目に受信された前記シンクメッセージに対応する前記第1の減算ステップによる減算結果T2i−k−T1i−kとの差分を算出する第2の減算ステップと、前記第2の減算ステップによる減算結果をkで除算する除算ステップとを含む。
【0026】
本開示の一側面であるプログラムは、ネットワークを介して接続されたマスタ機器とスレーブ機器の発振周波数の誤差を検出するコンピュータを、前記マスタ機器から周期的に送信されるシンクメッセージに含まれる送信時刻T1と、前記メッセージを受信した受信時刻T2との差分を算出する第1の減算部と、i回目に受信された前記シンクメッセージに対応する前記第1の減算部による減算結果T2i−T1iと、i−k回目に受信された前記シンクメッセージに対応する前記第1の減算部による減算結果T2i−k−T1i−kとの差分を算出する第2の減算部と、前記第2の減算部による減算結果をkで除算する除算部として機能させる。
【0027】
本開示の一側面においては、マスタ機器から周期的に送信されるシンクメッセージに含まれる送信時刻T1と、前記メッセージを受信した受信時刻T2との差分が算出され、i回目に受信された前記シンクメッセージに対応する減算結果T2i−T1iと、i−k回目に受信された前記シンクメッセージに対応する減算結果T2i−k−T1i−kとの差分がkで除算される。
【発明の効果】
【0028】
本開示の一側面によれば、ネットワーク上のマスタ機器との間で発振周波数を高精度に同期することができる。
【図面の簡単な説明】
【0029】
【図1】IEEE1588PTPを利用した従来の高精度時刻同期処理の概要を示す図である。
【図2】ネットワーク遅延時間が一時的に変化する例を示す図である。
【図3】本開示の実施の形態である周波数差検出装置の第1の構成例を示すブロック図である。
【図4】本開示の実施の形態である周波数差検出装置の第2の構成例を示すブロック図である。
【図5】本開示の実施の形態である周波数差検出装置の第3の構成例を示すブロック図である。
【図6】k回前に受信されたSyncメッセージの送信時刻T1i―kおよび受信時刻T2i―kとの関係を示す図である。
【図7】周波数差検出装置の第3の構成例の動作を説明するフローチャートである。
【図8】周波数差検出装置の第3の構成例の出力を示す図である。
【図9】本開示の実施の形態である周波数差検出装置の第4の構成例を示すブロック図である。
【図10】周波数差検出装置の第3の構成例の動作を説明するフローチャートである。
【図11】本開示の実施の形態である周波数差検出装置の第3の構成例を示すブロック図である。
【図12】周波数差検出装置の第4の構成例の動作を説明するための図である。
【図13】周波数差検出装置の第4の構成例の動作を説明するフローチャートである。
【図14】コンピュータの構成例を示すブロック図である。
【発明を実施するための形態】
【0030】
以下、本開示を実施するための最良の形態(以下、実施の形態と称する)について、図面を参照しながら詳細に説明する。
【0031】
本開示の実施の形態である周波数差検出装置は、ネットワーク上のPTPマスタ(マスタ機器)とPTPメッセージを通信することにより、PTPマスタとの間で時刻情報を同期させるPTPスレーブ(スレーブ機器)に内蔵されるものである。
【0032】
この周波数差検出装置は、PTPスレーブの発振周波数f2をPTPマスタの発振周波数f1に誤差なく同期させるための情報として、Δm−Δsを検出する。そして、この周波数差検出装置を内蔵するPTPスレーブにおいては、検出されたΔm−Δsが0になるように、発振周波数f2を調整することによって周波数同期が確立される。
【0033】
[周波数差検出装置の第1の構成例]
図3は、実施の形態である周波数差検出装置の第1の構成例を示している。この周波数差検出装置10は、減算部11、1シーケンス遅延部12、減算部13、およびメディアンフィルタ18から構成される。
【0034】
減算部11は、周波数差検出装置10を内蔵するPTPスレーブにてPTPメッセージとしてのSyncメッセージが受信される毎、その受信時刻T2iから送信時刻T1iを減算し、減算結果T2i−T1iを1シーケンス遅延部12および減算部13に出力する。
【0035】
1シーケンス遅延部12は、減算部11から入力される減算結果T2i−T1iを保持するとともに、それまで保持していた1回前に受信されたSyncメッセージに対応する減算結果T2i−1−T1i−1を減算部13に出力する。
【0036】
減算部13は、今回受信されたSyncメッセージに対応する減算結果T2i−T1iから、1回前に受信されたSyncメッセージに対応する減算結果T2i−1−T1i−1を減算し、減算結果(T2i−T1i)−(T2i−1−T1i−1)=周波数ずれΔm−Δsをメディアンフィルタ18に出力する。
【0037】
メディアンフィルタ18は、1シーケンス遅延部14−1乃至14−3、選択部15、加算部16、および除算部17から構成される。1シーケンス遅延部14−1乃至14−3は、前段から入力される周波数ずれΔm−Δsを保持するとともに、それまで保持していた1回目の入力された周波数ずれΔm−Δsを後段に出力する。選択部15は、減算部13および1シーケンス遅延部14−1乃至14−3から同時に入力される4回分の周波数ずれΔm−Δsを比較し、そのうちの最大値と最小値を除く2値を選択して加算部16に出力する。加算部16は、選択された2回分の周波数ずれΔm−Δsを加算して除算部17に出力する。除算部17は、2回分の周波数ずれΔm−Δsの加算結果を2で除算する。
【0038】
[動作説明]
周波数差検出装置10の動作について説明する。
【0039】
周波数差検出装置10を内蔵するPTPスレーブにてPTPメッセージとしてのSyncメッセージが受信されると、減算部11は、その受信時刻T2iから送信時刻T1iを減算し、減算結果T2i−T1iを1シーケンス遅延部12および減算部13に出力する。
【0040】
1シーケンス遅延部12は、減算部11から入力された減算結果T2i−T1iを保持するとともに、それまで保持していた1回前に受信されたSyncメッセージに対応する減算結果T2i−1−T1i−1を減算部13に出力する。
【0041】
減算部13は、今回受信されたSyncメッセージに対応する減算結果T2i−T1iから、1回前に受信されたSyncメッセージに対応する減算結果T2i−1−T1i−1を減算し、減算結果(T2i−T1i)−(T2i−1−T1i−1)=周波数ずれΔm−Δsをメディアンフィルタ18に出力する。
【0042】
メディアンフィルタ18は、減算部13から入力された周波数ずれΔm−Δsと、その1回前、2回前、および3回前にそれぞれ入力された合計4回分の周波数ずれΔm−Δsを比較し、そのうちの最大値と最小値を除く2値の平均値を出力する。
【0043】
そして、PTPスレーブにおいては、この平均化された周波数ずれΔm−Δsが0になるように、発振周波数f2が調整される。
【0044】
以上説明したように、周波数差検出装置10によれば、連続する4回分の周波数ずれΔm−Δsの最大値と最小値を除く2値の平均値を、最終的な周波数ずれΔm−Δsとして出力するので、パルス的に発生するネットワーク遅延時間の変動に対処することができる。
【0045】
ただし、周波数差検出装置10では、ネットワーク遅延時間の変動が複数回に亘って発生した場合、最終的な周波数ずれΔm−Δsにもネットワーク遅延時間の変動の影響が生じてしまうので、そのような場合には、高精度の周波数同期が確立できない。
【0046】
そこで次に、ネットワーク遅延時間の変動の影響を受けている周波数ずれΔm−Δsが最終的に出力されないようにした周波数差検出装置の構成例について説明する。
【0047】
[周波数差検出装置の第2の構成例]
図4は、実施の形態である周波数差検出装置の第2の構成例を示している。この周波数差検出装置20は、減算部21、1シーケンス遅延部22、減算部23、比較部24、およびスイッチ25から構成される。
【0048】
減算部21は、周波数差検出装置20を内蔵するPTPスレーブにてPTPメッセージとしてのSyncメッセージが受信される毎、その受信時刻T2iから送信時刻T1iを減算し、減算結果T2i−T1iを1シーケンス遅延部22および減算部23に出力する。
【0049】
1シーケンス遅延部22は、減算部21から入力される減算結果T2i−T1iを保持するとともに、それまで保持していた1回前に受信されたSyncメッセージに対応する減算結果T2i−1−T1i−1を減算部23に出力する。
【0050】
減算部23は、今回受信されたSyncメッセージに対応する減算結果T2i−T1iから、1回前に受信されたSyncメッセージに対応する減算結果T2i−1−T1i−1を減算し、減算結果(T2i−T1i)−(T2i−1−T1i−1)=周波数ずれΔm−Δsを比較部24およびスイッチ25の入力端子25aに出力する。
【0051】
比較部24は、減算部23から入力される周波数ずれの絶対値|Δm−Δs|と所定の閾値を比較し、比較結果に応じてスイッチ25のスイッチングを制御する。
【0052】
スイッチ25は、比較部24の制御に従ってスイッチングを行い、入力端子25aに入力される周波数ずれΔm−Δs、または入力端子25bに入力される値0を後段に出力する。
【0053】
[動作説明]
周波数差検出装置20の動作について説明する。
【0054】
周波数差検出装置20を内蔵するPTPスレーブにてPTPメッセージとしてのSyncメッセージが受信されると、減算部21は、その受信時刻T2iから送信時刻T1iを減算し、減算結果T2i−T1iを1シーケンス遅延部22および減算部23に出力する。
【0055】
1シーケンス遅延部22は、減算部21から入力された減算結果T2i−T1iを保持するとともに、それまで保持していた1回前に受信されたSyncメッセージに対応する減算結果T2i−1−T1i−1を減算部23に出力する。
【0056】
減算部23は、今回受信されたSyncメッセージに対応する減算結果T2i−T1iから、1回前に受信されたSyncメッセージに対応する減算結果T2i−1−T1i−1を減算し、減算結果(T2i−T1i)−(T2i−1−T1i−1)=周波数ずれΔm−Δsを比較部24およびスイッチ25の入力端子25aに出力する。
【0057】
比較部24は、減算部23から入力された周波数ずれの絶対値|Δm−Δs|が所定の閾値よりも大きいか否かを判定する。この判定結果が肯定である場合、スイッチ25を入力端子bにスイッチングさせる。これにより、スイッチ25は、値0を後段に出力する。反対に、判定結果が否定である場合、スイッチ25が入力端子aにスイッチングされる。これにより、スイッチ25は、減算部23からの周波数ずれΔm−Δsを後段に出力させる。
【0058】
以上説明したように、周波数差検出装置20によれば、減算部23からの周波数ずれの絶対値|Δm−Δs|が所定の閾値よりも大きい場合、すなわち、ネットワーク遅延時間の変動の影響が周波数ずれΔm−Δsに大きく生じているような場合には、周波数ずれΔm−Δsの代わりに値0を出力するようにした。これにより、ネットワーク遅延時間に変動が生じている状態で、PTPスレーブの発振周波数f2が調整されてしまう事態を抑止することができる。
【0059】
ただし、周波数ずれΔm−Δsの代わりに値0を出力すると、その間は発振周波数f2が調整されない。したがって、特に、周波数同期の初期段階においてこの状態であると、発振周波数f2をPTPマスタの発振周波数f1に同期させるまでの時間が長くなってしまうことがある。
【0060】
そこで次に、ネットワーク遅延時間の変動が生じたとしても、その影響を周波数ずれΔm−Δsから排除できるようにした周波数差検出装置の構成例について説明する。
【0061】
[周波数差検出装置の第3の構成例]
図5は、実施の形態である周波数差検出装置の第3の構成例を示している。この周波数差検出装置30は、減算部31、kシーケンス遅延部32、減算部33、および除算部34から構成される。
【0062】
減算部31は、周波数差検出装置30を内蔵するPTPスレーブにてPTPメッセージとしてのSyncメッセージが受信される毎、その受信時刻T2iから送信時刻T1iを減算し、差分T2i−T1iをkシーケンス遅延部32および減算部33に出力する。
【0063】
kシーケンス遅延部32は、減算部31から入力される差分T2i−T1iを保持するとともに、それまで保持していたk回前に受信されたSyncメッセージに対応する差分T2i−k−T1i−kを減算部33に出力する。なお、kは2以上の整数とし、kシーケンス遅延部32の回路設計を考慮すると2の倍数であることが望ましい。例えば、k=8,k=16などとする。
【0064】
図6は、k=8とした場合における、今回受信されたSyncメッセージの送信時刻T1iおよび受信時刻T2iと、k回前に受信されたSyncメッセージの送信時刻T1i―kおよび受信時刻T2i―kとの関係を示している。同図Aに示されるSyncメッセージk回分の通信期間に注目すると、その通信期間の内部にネットワーク遅延時間の変動が生じている。しかしながら、今回のSyncメッセージの送信時刻T1iおよび受信時刻T2iと、k回前のSyncメッセージの送信時刻T1i―kおよび受信時刻T2i―kとの関係だけを見れば、その通信期間の内部に生じたネットワーク遅延時間の変動が影響していないことがわかる。
【0065】
減算部33は、今回受信されたSyncメッセージに対応する差分T2i−T1iから、k回前に受信されたSyncメッセージに対応する差分T2i−k−T1i−kを減算し、差分(T2i−T1i)−(T2i−k−T1i−k)=Δm×k−Δs×kを除算部34に出力する。
【0066】
除算部34は、減算部33から入力される差分Δm×k−Δs×kをkで除算し、その結果得られる周波数ずれΔm−Δsを後段に出力する。
【0067】
[動作説明]
周波数差検出装置30の動作について説明する。
【0068】
図7は、周波数差検出装置30による周波数差検出処理を説明するフローチャートである。
【0069】
周波数差検出装置30を内蔵するPTPスレーブにてPTPメッセージとしてのSyncメッセージが受信されると、ステップS1において、減算部31は、その受信時刻T2iから送信時刻T1iを減算し、減算結果である差分T2i−T1iをkシーケンス遅延部32および減算部33に出力する。
【0070】
ステップS2において、kシーケンス遅延部32は、減算部31から入力された差分T2i−T1iを保持するとともに、それまで保持していたk回前に受信されたSyncメッセージに対応する差分T2i−k−T1i−kを減算部33に出力する。
【0071】
減算部33は、今回受信されたSyncメッセージに対応する差分T2i−T1iから、k回前に受信されたSyncメッセージに対応する差分T2i−k−T1i−kを減算し、減算結果(T2i−T1i)−(T2i−k−T1i−k)=Δm×k−Δs×kを除算部34に出力する。
【0072】
ステップS3において、除算部34は、減算部33から入力された差分Δm×k−Δs×kをkで除算し、除算結果として得られる周波数ずれΔm−Δsを後段に出力する。
【0073】
そして、PTPスレーブにおいては、除算結果として得られる周波数ずれΔm−Δsが0になるように、発振周波数f2が調整される。
【0074】
以上説明したように、周波数差検出装置30によれば、図6Aに示されたように、Syncメッセージk回分の通信期間の内部にネットワーク遅延時間の変動が生じていたとしても、その影響を受けることなく周波数ずれΔm−Δsを検出することができる。よって、周波数差検出装置30を内蔵するPTPスレーブにおいて、高精度に周波数同期を確立することができる。
【0075】
ただし、図6Bに示されるように、Syncメッセージk回分の通信期間の端(図6Aの場合には最初(k回前))にネットワーク遅延時間の変動が生じている場合、図8に示されるように、減算部33から出力される差分は、Δm×k−Δs×k−D1となる。よって、除算部34の出力は、Δm−Δs−D1/kとなり、−D1/kの分だけ発振周波数f2の調整に誤差が生じることになる。尤も、kの値が大きければ、−D1/kは小さい値となるので、この影響を無視するようにしてもよい。
【0076】
次に、Syncメッセージk回分の通信期間の端にネットワーク遅延時間の変動が生じた場合においても、その影響を周波数ずれΔm−Δsから排除できるようにした周波数差検出装置の構成例について説明する。
【0077】
[周波数差検出装置の第4の構成例]
図9は、実施の形態である周波数差検出装置の第4の構成例を示している。この周波数差検出装置40は、減算部41、k−1シーケンス遅延部42、1シーケンス遅延部43、減算部44、比較部45、除算部46、スイッチ47、減算部48、比較部49、除算部50、およびスイッチ51から構成される。
【0078】
減算部41は、周波数差検出装置40を内蔵するPTPスレーブにてPTPメッセージとしてのSyncメッセージが受信される毎、その受信時刻T2iから送信時刻T1iを減算し、差分T2i−T1iをk−1シーケンス遅延部42、減算部44、および減算部48に出力する。
【0079】
k−1シーケンス遅延部42は、減算部41から入力される差分T2i−T1iを保持するとともに、それまで保持していたk−1回前に受信されたSyncメッセージに対応する差分T2i−k+1−T1i−k+1を1シーケンス遅延部43および減算部44に出力する。なお、kは2以上の整数とする。例えば、k=8,k=16などとする。
【0080】
1シーケンス遅延部43は、k−1シーケンス遅延部42から入力される差分T2i−k+1−T1i−k+1を保持するとともに、それまで保持していたk回前に受信されたSyncメッセージに対応する差分T2i−k−T1i−kを減算部48に出力する。
【0081】
減算部44は、今回受信されたSyncメッセージに対応する差分T2i−T1iから、k−1回前に受信されたSyncメッセージに対応する差分T2i−k+1−T1i−k+1を減算し、差分(T2i−T1i)−(T2i−k+1−T1i−k+1)=Δm×(k−1)−Δs×(k−1)を比較部45および除算部46に出力する。
【0082】
比較部45は、減算部44から入力される差分の絶対値|(Δm−Δs)×(k−1)|と所定の閾値を比較し、比較結果に応じてスイッチ47のスイッチングを制御する。
【0083】
除算部46は、減算部44から入力される差分(Δm−Δs)×(k−1)をk−1で除算し、その結果得られる周波数ずれΔm−Δsをスイッチ47の入力端子47aに出力する。
【0084】
スイッチ47は、比較部45の制御に従ってスイッチングを行い、除算部46から入力端子47aに入力される周波数ずれΔm−Δs、または入力端子47bに入力される値0を、スイッチ51の入力端子51bに出力する。
【0085】
減算部48は、今回受信されたSyncメッセージに対応する差分T2i−T1iから、k回前に受信されたSyncメッセージに対応する差分T2i−k−T1i−kを減算し、差分(T2i−T1i)−(T2i−k−T1i−k)=Δm×k−Δs×kを比較部49および除算部50に出力する。
【0086】
比較部49は、減算部48から入力される差分の絶対値|(Δm−Δs)×k|と所定の閾値を比較し、比較結果に応じてスイッチ51のスイッチングを制御する。
【0087】
除算部50は、減算部48から入力される差分(Δm−Δs)×kをkで除算し、その結果得られる周波数ずれΔm−Δsをスイッチ51の入力端子51aに出力する。
【0088】
スイッチ51は、比較部49の制御に従ってスイッチングを行い、除算部50から入力端子51aに入力される周波数ずれΔm−Δs、または入力端子51bに入力されるスイッチ47の出力(除算部46が出力する周波数ずれΔm−Δs、または値0)を後段に出力する。
【0089】
[動作説明]
周波数差検出装置40の動作について説明する。図10は、周波数差検出装置40による周波数差検出処理を説明するフローチャートである。
【0090】
周波数差検出装置40を内蔵するPTPスレーブにてPTPメッセージとしてのSyncメッセージが受信されると、ステップS11において、減算部41は、その受信時刻T2iから送信時刻T1iを減算し、差分T2i−T1iをk−1シーケンス遅延部42、減算部44、および減算部48に出力する。
【0091】
ステップS12において、減算部44は、今回受信されたSyncメッセージに対応する差分T2i−T1iから、k−1シーケンス遅延部42からのk−1回前に受信されたSyncメッセージに対応する差分T2i−k+1−T1i−k+1を減算し、差分(T2i−T1i)−(T2i−k+1−T1i−k+1)=Δm×(k−1)−Δs×(k−1)を比較部45および除算部46に出力する。
【0092】
ステップS13において、除算部46は、減算部44から入力された差分(Δm−Δs)×(k−1)をk−1で除算し、その結果得られる周波数ずれΔm−Δsをスイッチ47の入力端子47aに出力する。一方、比較部45は、減算部44から入力される差分の絶対値|(Δm−Δs)×(k−1)|が所定の閾値よりも大きいか否かを判定する。この判定結果が肯定である場合、処理はステップS14に進められ、スイッチ47は、比較部45からの制御に従い、入力端子47b側にスイッチングして、値0をスイッチ51の入力端子51bに出力する。反対に、ステップS13での判定結果が否定である場合、処理はステップS15に進められ、スイッチ47は、比較部45からの制御に従い、入力端子47a側にスイッチングして、除算部46からの周波数ずれΔm−Δsをスイッチ51の入力端子51bに出力する。
【0093】
ステップS16において、減算部48は、今回受信されたSyncメッセージに対応する差分T2i−T1iから、1シーケンス遅延部43からのk回前に受信されたSyncメッセージに対応する差分T2i−k−T1i−kを減算し、差分(T2i−T1i)−(T2i−k−T1i−k)=Δm×k−Δs×kを比較部49および除算部50に出力する。
【0094】
ステップS17において、除算部50は、減算部48から入力された差分(Δm−Δs)×kをkで除算し、その結果得られる周波数ずれΔm−Δsをスイッチ51の入力端子51aに出力する。一方、比較部49は、減算部48から入力される差分の絶対値|(Δm−Δs)×k)|が所定の閾値よりも大きいか否かを判定する。この判定結果が肯定である場合、処理はステップS18に進められ、スイッチ51は、比較部49からの制御に従い、入力端子51b側にスイッチングして、スイッチ47の出力を後段に出力する。反対に、ステップS17での判定結果が否定である場合、処理はステップS19に進められ、スイッチ51は、比較部49からの制御に従い、入力端子51a側にスイッチングして、除算部50からの周波数ずれΔm−Δsを後段に出力する。
【0095】
そして、PTPスレーブにおいては、除算結果として得られる周波数ずれΔm−Δsが0になるように、発振周波数f2が調整される。
【0096】
以上説明したように、周波数差検出装置40によれば、例えば、図6Bに示されたように、Syncメッセージのk回分の通信区間にネットワーク遅延時間の変動が生じていた場合、図6Cに示されるように、それよりも1回分少ないネットワーク遅延時間が変動していないk−1回分の通信区間に基づいて周波数ずれを検出するようにした。周波数差検出装置40を内蔵するPTPスレーブにおいて、高精度に周波数同期を確立することができる。
【0097】
なお、周波数差検出装置40においては、k回分とk−1回分の通信区間に着目して周得た波数ずれのいずれかを出力するようにしたが、例えば、さらにk−2回分、k−3回分など多段階的に通信区間に着目して周波数ずれを検出し、その中から、ネットワーク遅延時間の変動の影響を受けていないものを選択して出力するようにしてもよい。
【0098】
ところで、周波数検出装置40の比較部49において減算部48からの入力と比較される所定の閾値は、例えば以下のように決定される。
【0099】
例えば、PTPマスタおよびPTPスレーブそれぞれに搭載されるVCO(voltage controlled oscillator)の周波数可変範囲を±300ppm、Syncメッセージの送信間隔を1/64秒とし、PTPスレーブの周波数f2がPTPマスタの周波数f1に対して最大100ppmずれ得るとする。この場合、この最大100ppmの周波数ずれを要因として、Syncメッセージの1回の通信で1.5μ秒(=100ppm/64)だけ受信時刻に誤差が生じ得るので、k回分のシーケンスにおけるネットワーク遅延時間には最大1.5kμ秒の時刻誤差を含むことになる。
【0100】
よって、比較部49における所定の閾値を1.5kμ秒とすれば、周波数ずれを要因とする時刻誤差を考慮して、ネットワーク遅延時間の変動の有無を判断することができる。例えば、k=8とした場合には比較部49における所定の閾値を12μ秒とすればよい。
【0101】
ただし、周波数ずれを要因とする時刻誤差ではなく、実際にネットワーク遅延時間に変動が生じている場合であっても、減算部48からの入力が当該所定の閾値よりもわずかに小さいような場合にはそれが検出されず、ネットワーク遅延時間に変動が生じていないものとして処理が行われてしまい、周波数f2の適切な調整が行われないことになる。
【0102】
したがって、周波数ずれを要因とする時刻誤差ではなく、実際に生じているネットワーク遅延時間の変動をより正確に検出できるようにする仕組みが必要となる。
【0103】
そこで次に、実際に生じているネットワーク遅延時間の変動を、周波数差の検出により正確に反映できるようにした周波数差検出装置の構成例について説明する。
【0104】
[周波数差検出装置の第5の構成例]
図11は、実施の形態である周波数差検出装置の第5の構成例を示している。この周波数差検出装置60は、減算部61、k−1シーケンス遅延部62、1シーケンス遅延部63、減算部64、除算部65、スイッチ66、減算部67、除算部68、スイッチ69、1シーケンス遅延部70、減算部71、判定部72、および比較部73,74から構成される。
【0105】
減算部61は、周波数差検出装置60を内蔵するPTPスレーブにてPTPメッセージとしてのSyncメッセージが受信される毎、その受信時刻T2iから送信時刻T1iを減算し、差分T2i−T1iをk−1シーケンス遅延部62、減算部64、減算部67、1シーケンス遅延部70、および減算部71に出力する。
【0106】
k−1シーケンス遅延部62は、減算部61から入力される差分T2i−T1iを保持するとともに、それまで保持していたk−1回前に受信されたSyncメッセージに対応する差分T2i−k+1−T1i−k+1を1シーケンス遅延部63および減算部67に出力する。なお、kは2以上の整数とする。例えば、k=8,k=16などとする。
【0107】
1シーケンス遅延部63は、k−1シーケンス遅延部42から入力される差分T2i−k+1−T1i−k+1を保持するとともに、それまで保持していたk回前に受信されたSyncメッセージに対応する差分T2i−k−T1i−kを減算部64に出力する。
【0108】
減算部64は、今回受信されたSyncメッセージに対応する差分T2i−T1iから、k回前に受信されたSyncメッセージに対応する差分T2i−k−T1i−kを減算し、差分(T2i−T1i)−(T2i−k−T1i−k)=Δm×k−Δs×k=(Δm−Δs)×kを除算部65に出力する。
【0109】
除算部65は、減算部64から入力される差分(Δm−Δs)×kをkで除算し、その結果得られる周波数ずれΔm−Δsをスイッチ66の入力端子66aに出力する。
【0110】
スイッチ66は、比較部74の制御に従ってスイッチングを行い、入力端子51aまたは入力端子51bに入力される値を後段に出力する。
【0111】
減算部67は、今回受信されたSyncメッセージに対応する差分T2i−T1iから、k−1回前に受信されたSyncメッセージに対応する差分T2i−k+1−T1i−k+1を減算し、差分(T2i−T1i)−(T2i−k+1−T1i−k+1)=Δm×(k−1)−Δs×(k−1)=(Δm−Δs)×(k−1)を除算部68に出力する。
【0112】
除算部68は、減算部67から入力される差分(Δm−Δs)×(k−1)をk−1で除算し、その結果得られる周波数ずれΔm−Δsをスイッチ69の入力端子69aに出力する。
【0113】
スイッチ69は、比較部73の制御に従ってスイッチングを行い、除算部46から入力端子69aに入力される周波数ずれΔm−Δs、または入力端子69bに入力される値0を、スイッチ66の入力端子66bに出力する。
【0114】
1シーケンス遅延部70は、減算部61から入力される差分T2i−T1iを保持するとともに、それまで保持していた1回前に受信されたSyncメッセージに対応する差分T2i−1−T1i−1を減算部71に出力する。
【0115】
減算部71は、今回受信されたSyncメッセージに対応する差分T2i−T1iから、1回前に受信されたSyncメッセージに対応する差分T2i−1−T1i−1を減算し、差分(T2i−T1i)−(T2i−1−T1i−1)=(T1i−1−T1i)−(T2i−1−T2i)=Δm−Δsを判定部72に出力する。
【0116】
判定部72は、減算部71からの入力、すなわち、1回分の通信区間から得られる周波数ずれΔm−Δsと所定の閾値と大小関係を判定する。この所定の閾値は、以下の仮定に基づいて例えば1.5μ秒とする。
【0117】
仮定:PTPマスタおよびPTPスレーブそれぞれのVCOの周波数可変範囲を±300ppm、Syncメッセージの送信間隔を1/64秒、周波数f2が周波数f1に対して最大100ppmずれ得る。この最大100ppmの周波数ずれを要因として、Syncメッセージの1回の通信で1.5μ秒(=100ppm/64)だけ受信時刻に誤差が生じ得る。
【0118】
さらに、判定部72は、判定結果としてL,SまたはOを比較73および74に通知する。具体的には、周波数ずれΔm−Δsが所定の閾値よりも大きい場合にはL、小さい場合にはS、Δm−Δs=0の場合にはOを通知する。
【0119】
図12は、判定部72から通知されるL,SまたはOの意味を図示している。Lは、今回と1回目のSyncメッセージのPTPスレーブにおける受信時刻の間隔Δsが一定である状態よりも長くなっていることを示す。Sは、今回と1回目のSyncメッセージのPTPスレーブにおける受信時刻の間隔Δsが一定である状態よりも短くなっていることを示す。Oは、今回と1回目のSyncメッセージのPTPスレーブにおける受信時刻の間隔Δsが一定の状態であることを示す。
【0120】
比較部73は、判定部72から判定結果が入力される毎、今回からk−1回前までのk−1個の判定結果のうち、Lの数CLと、Sの数CSをカウントして比較する。Lの数CLと、Sの数CSが等しい場合、LとSは相殺されるのでk−1回分の通信区間にネットワーク遅延時間の変動が生じなかったと判断されて、スイッチ69を入力端子69a側にスイッチさせる。反対に、Lの数CLと、Sの数CSとが異なる場合、k−1回分の通信区間にネットワーク遅延時間の変動が生じたと判断され、スイッチ69を入力端子69b側にスイッチさせる。
【0121】
比較部74は、判定部72から判定結果が入力される毎、今回からk回前までのk個の判定結果のうち、Lの数CLと、Sの数CSをカウントして比較する。Lの数CLと、Sの数CSが等しい場合、LとSは相殺されるのでk回分の通信区間にネットワーク遅延時間の変動が生じなかったと判断されて、スイッチ66を入力端子66a側にスイッチさせる。反対に、Lの数CLと、Sの数CSとが異なる場合、k回分の通信区間にネットワーク遅延時間の変動が生じたと判断され、スイッチ66を入力端子66b側にスイッチさせる。
【0122】
[動作説明]
周波数差検出装置60の動作について説明する。図13は、周波数差検出装置60による周波数差検出処理を説明するフローチャートである。
【0123】
周波数差検出装置60を内蔵するPTPスレーブにてPTPメッセージとしてのSyncメッセージが受信されると、ステップS31において、減算部61は、その受信時刻T2iから送信時刻T1iを減算し、差分T2i−T1iをk−1シーケンス遅延部62、減算部64、減算部67、1シーケンス遅延部70、および減算部71に出力する。
【0124】
ステップS32において、減算部64は、今回受信されたSyncメッセージに対応する差分T2i−T1iから、k−1シーケンス遅延部62および1シーケンス遅延部63を経て入力されたk回前に受信されたSyncメッセージに対応する差分T2i−k−T1i−kを減算し、差分(T2i−T1i)−(T2i−k−T1i−k)=Δm×k−Δs×k=(Δm−Δs)×kを除算部65に出力する。除算部65は、減算部64から入力された差分(Δm−Δs)×kをkで除算し、その演算結果である周波数ずれΔm−Δs(以下、第1の演算結果と称する)をスイッチ66の入力端子66aに出力する。
【0125】
ステップS33において、減算部67は、今回受信されたSyncメッセージに対応する差分T2i−T1iから、k−1シーケンス遅延部62を経て入力されたk−1回前に受信されたSyncメッセージに対応する差分T2i−k+1−T1i−k+1を減算し、差分(T2i−T1i)−(T2i−k+1−T1i−k+1)=Δm×(k−1)−Δs×(k−1)=(Δm−Δs)×(k−1)を除算部68に出力する。
【0126】
除算部68は、減算部67から入力された差分(Δm−Δs)×(k−1)をk−1で除算し、その演算結果である周波数ずれΔm−Δs(以下、第2の演算結果と称する)をスイッチ69の入力端子69aに出力する。
【0127】
ステップS34において、減算部71は、今回受信されたSyncメッセージに対応する差分T2i−T1iから、1シーケンス遅延部70を経て入力された1回前に受信されたSyncメッセージに対応する差分T2i−1−T1i−1を減算し、差分(T2i−T1i)−(T2i−1−T1i−1)=(T1i−1−T1i)−(T2i−1−T2i)=Δm−Δs(以下、第3の演算結果と称する)を判定部72に出力する。
【0128】
ステップS35において、判定部72は、減算部71から入力された第3の演算結果の所定の閾値に対する大小関係を判定し、判定結果としてL,SまたはOを比較73および74に通知する。
【0129】
ステップS36において、比較部74は、今回からk回前までのk個の判定結果のうち、Lの数CLと、Sの数CSをカウントし、Lの数CLとSの数CSが等しいか否かを判断する。この判定結果が肯定の場合、処理はステップS37に進められる。ステップS37において、比較部74は、スイッチ66を入力端子66a側にスイッチさせる。これにより、スイッチ66は、入力端子66a側に入力された第1の演算結果を周波数ずれΔm−Δsとして後段に出力することになる。
【0130】
ステップS36における判定結果が否定の場合、処理はステップS38に進められる。ステップS38において、比較部74は、スイッチ66を入力端子66b側にスイッチさせる。比較部73は、今回からk−1回前までのk−1個の判定結果のうち、Lの数CLと、Sの数CSをカウントし、Lの数CLとSの数CSが等しいか否かを判断する。この判定結果が肯定の場合、処理はステップS39に進められる。
【0131】
ステップS39において、比較部73は、スイッチ69を入力端子69a側にスイッチさせる。これにより、スイッチ69は、入力端子69a側に入力された第2の演算結果をスイッチ66の入力端子66bに出力する。スイッチ66は、すでに入力端子66b側にスイッチされているので、入力端子66b側に入力された第2の演算結果を周波数ずれΔm−Δsとして後段に出力することになる。
【0132】
ステップS38における判定結果が否定の場合、処理はステップS40に進められる。ステップS40において、比較部73は、スイッチ69を入力端子66b側にスイッチさせる。これにより、スイッチ69は、入力端子69b側に入力されている値0をスイッチ66の入力端子66bに出力する。スイッチ66は、すでに入力端子66b側にスイッチされているので、周波数ずれΔm−Δs=0を後段に出力することになる。
【0133】
そして、PTPスレーブにおいては、スイッチ66から出力される周波数ずれΔm−Δsが0になるように、発振周波数f2が調整される。
【0134】
以上説明したように、周波数差検出装置60によれば、判定部72における所定の閾値1.5μ秒との大小関係の判定結果の数CL,CSによりネットワーク遅延時間の変動が検出される。したがって、周波数差検出装置40に比較して、ネットワーク遅延時間の変動の有無をより高精度で検出することができ、より速やかに周波数同期を確立することができる。
【0135】
なお、周波数差検出装置60においては、周波数差検出装置40と同様、k回分とk−1回分の通信区間に着目して得た周波数ずれを出力するようにしたが、例えば、さらにk−2回分、k−3回分など多段階的に通信区間に着目して周波数ずれを検出し、その中から、ネットワーク遅延時間の変動の影響を受けていないものを選択して出力するようにしてもよい。
【0136】
[周波数差検出装置60の動作の変形例]
判定部72、比較部73、および比較部74を以下のように動作させてもよい。
【0137】
判定部72において、減算部71からの、1回分の通信区間から得られる周波数ずれΔm−Δsが0の場合には0を後段に出力し、周波数ずれΔm−Δsが0ではない場合、その値から所定の閾値(1.5μ秒)を減算し、その減算結果を後段に出力するようにする。
【0138】
比較部73では、判定部72から0または減算結果が入力される毎、今回からk−1回前までのk−1個の入力を加算し、その和が所定の閾値(1.5μ秒)以下の場合、ネットワーク遅延時間の変動が生じなかったとして、スイッチ69を入力端子69a側にスイッチさせる。反対に、その和が所定の閾値(1.5μ秒)よりも大きい場合、ネットワーク遅延時間の変動が生じたとして、スイッチ69を入力端子69b側にスイッチさせる。
【0139】
比較部74では、判定部72から0または減算結果が入力される毎、今回からk回前までのk個の入力を加算し、その和が所定の閾値(1.5μ秒)以下の場合、ネットワーク遅延時間の変動が生じなかったとして、スイッチ66を入力端子66a側にスイッチさせる。反対に、その和が所定の閾値(1.5μ秒)よりも大きい場合、ネットワーク遅延時間の変動が生じたとして、スイッチ66を入力端子66b側にスイッチさせる。
【0140】
このように動作させて場合においても、したがって、周波数差検出装置40に比較して、ネットワーク遅延時間の変動の有無をより高精度で検出することができ、より速やかに周波数同期を確立することができる。
【0141】
ところで、上述した周波数差検出装置10乃至60による一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウェアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
【0142】
図14は、上述した一連の処理をプログラムにより実行するコンピュータのハードウェアの構成例を示すブロック図である。
【0143】
コンピュータにおいて、CPU(Central Processing Unit)101,ROM(Read Only Memory)102,RAM(Random Access Memory)103は、バス104により相互に接続されている。
【0144】
バス104には、さらに、入出力インタフェース105が接続されている。入出力インタフェース105には、入力部106、出力部107、記憶部108、通信部109、およびドライブ110が接続されている。
【0145】
入力部106は、キーボード、マウス、マイクロフォンなどよりなる。出力部107は、ディスプレイ、スピーカなどよりなる。記憶部108は、ハードディスクや不揮発性のメモリなどよりなる。通信部109は、ネットワークインタフェースなどよりなる。ドライブ110は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブルメディア111を駆動する。
【0146】
以上のように構成されるコンピュータでは、CPU101が、例えば、記憶部108に記憶されているプログラムを、入出力インタフェース105およびバス104を介して、RAM103にロードして実行することにより、上述した一連の処理が行われる。
【0147】
コンピュータ(CPU101)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア111に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
【0148】
コンピュータでは、プログラムは、リムーバブルメディア111をドライブ110に装着することにより、入出力インタフェース105を介して、記憶部108にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部109で受信し、記憶部108にインストールすることができる。その他、プログラムは、ROM102や記憶部108に、あらかじめインストールしておくことができる。
【0149】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであってもよいし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであってもよい。
【0150】
なお、本開示の実施の形態は、上述した実施の形態に限定されるものではなく、本開示の要旨を逸脱しない範囲において種々の変更が可能である。
【符号の説明】
【0151】
10 周波数差検出装置, 11 減算部, 12 1シーケンス遅延部, 13 減算部, 14 1シーケンス遅延部, 15 選択部, 16 加算部, 17 除算部, 18 メディアンフィルタ, 20 周波数差検出装置, 21 減算部, 22 1シーケンス遅延部, 23 減算部, 24 比較部, 25 スイッチ, 30 周波数差検出装置, 31 減算部, 32 kシーケンス遅延部, 33 減算部, 34 除算部, 40 周波数差検出装置, 41 減算部, 42 k−1シーケンス遅延部, 43 1シーケンス遅延部, 44 減算部, 45 比較部, 46 除算部, 47 スイッチ, 48 減算部, 49 比較部, 50 除算部, 51 スイッチ, 60 周波数差検出装置, 61 減算部, 62 k−1シーケンス遅延部, 63 1シーケンス遅延部, 64 減算部, 65 比較部, 66 スイッチ, 67 減算部, 68 除算部, 69 スイッチ, 70 1シーケンス遅延部, 71 減算部, 72 判定部, 73,74 比較部
【特許請求の範囲】
【請求項1】
ネットワークを介して接続されたマスタ機器とスレーブ機器の発振周波数の誤差を検出する周波数差検出装置において、
前記マスタ機器から周期的に送信されるシンクメッセージに含まれる送信時刻T1と、前記メッセージを受信した受信時刻T2との差分を算出する第1の減算部と、
i回目に受信された前記シンクメッセージに対応する前記第1の減算部による減算結果T2i−T1iと、i−k回目に受信された前記シンクメッセージに対応する前記第1の減算部による減算結果T2i−k−T1i−kとの差分を算出する第2の減算部と、
前記第2の減算部による減算結果をkで除算する第1の除算部と
を備える周波数差検出装置。
【請求項2】
i回目に受信された前記シンクメッセージに対応する前記第1の減算部による減算結果T2i−T1iと、i−k+j(jはkより小さい整数)回目に受信された前記シンクメッセージに対応する前記第1の減算部による減算結果T2i−k+j−T1i−k+jとの差を算出する第3の減算部と、
前記第3の減算部による減算結果をk−jで除算する第2の除算部と、
前記第1の除算部によるkでの除算結果、または前記第2の除算部によるk−jでの除算結果を出力するスイッチと、
前記スイッチを制御するスイッチ制御部と
をさらに備える請求項1に記載の周波数差検出装置。
【請求項3】
前記スレーブ機器においては、前記スイッチから出力される前記第1の除算部によるkでの除算結果、または前記第2の除算部によるk−jでの除算結果が0となるように前記発振周波数が調整される
請求項2に記載の周波数差検出装置。
【請求項4】
前記スイッチは、前記スイッチ制御部からの制御に従い、前記第1の除算部によるkでの除算結果、前記第2の除算部によるk−jでの除算結果、または値0を出力する
請求項2に記載の周波数差検出装置。
【請求項5】
前記スイッチ制御部は、
前記第2の減算部による減算結果の絶対値が所定の閾値以下の場合、前記第1の除算部によるkでの除算結果を前記スイッチから出力させ、
前記第2の減算部による減算結果の絶対値が所定の閾値よりも大きく、前記第3の減算部による減算結果の絶対値が所定の閾値以下の場合、前記第2の除算部によるk−jでの除算結果を前記スイッチから出力させ、
前記第2の減算部による減算結果の絶対値が所定の閾値よりも大きく、前記第3の減算部による減算結果の絶対値が所定の閾値よりも大きい場合、値0を前記スイッチから出力させる
請求項4に記載の周波数差検出装置。
【請求項6】
i回目に受信された前記シンクメッセージに対応する前記第1の減算部による減算結果T2i−T1iと、i−1回目に受信された前記シンクメッセージに対応する前記第1の減算部による減算結果T2i−1−T1i−1との差を算出する第4の減算部と、
前記第4の減算部による減算結果に基づいてネットワーク遅延時間の増加、減少、または変化なしを判定する判定部と
をさらに備える請求項4に記載の周波数検出装置。
【請求項7】
前記スイッチ制御部は、
前記判定部による直近k回分の判定結果における前記ネットワーク遅延時間の増加と判定された回数と減少と判定された回数とが等しい場合、前記第1の除算部によるkでの除算結果を前記スイッチから出力させ、
前記判定部による直近k回分の判定結果における前記ネットワーク遅延時間の増加と判定された回数と減少と判定された回数とが異なり、前記判定部による直近k−1回分の判定結果における前記ネットワーク遅延時間の増加と判定された回数と減少と判定された回数とが等しい場合、前記第2の除算部によるk−jでの除算結果を前記スイッチから出力させ、
前記判定部による直近k回分の判定結果における前記ネットワーク遅延時間の増加と判定された回数と減少と判定された回数とが異なり、前記判定部による直近k−1回分の判定結果における前記ネットワーク遅延時間の増加と判定された回数と減少と判定された回数とが異なる場合、値0を前記スイッチから出力させる
請求項6に記載の周波数差検出装置。
【請求項8】
ネットワークを介して接続されたマスタ機器とスレーブ機器の発振周波数の誤差を検出する周波数差検出装置の周波数差検出方法において、
前記周波数差検出装置による、
前記マスタ機器から周期的に送信されるシンクメッセージに含まれる送信時刻T1と、前記メッセージを受信した受信時刻T2との差分を算出する第1の減算ステップと、
i回目に受信された前記シンクメッセージに対応する前記第1の減算ステップによる減算結果T2i−T1iと、i−k回目に受信された前記シンクメッセージに対応する前記第1の減算ステップによる減算結果T2i−k−T1i−kとの差分を算出する第2の減算ステップと、
前記第2の減算ステップによる減算結果をkで除算する除算ステップと
を含む周波数差検出方法。
【請求項9】
ネットワークを介して接続されたマスタ機器とスレーブ機器の発振周波数の誤差を検出するコンピュータを、
前記マスタ機器から周期的に送信されるシンクメッセージに含まれる送信時刻T1と、前記メッセージを受信した受信時刻T2との差分を算出する第1の減算部と、
i回目に受信された前記シンクメッセージに対応する前記第1の減算部による減算結果T2i−T1iと、i−k回目に受信された前記シンクメッセージに対応する前記第1の減算部による減算結果T2i−k−T1i−kとの差分を算出する第2の減算部と、
前記第2の減算部による減算結果をkで除算する除算部と
して機能させるプログラム。
【請求項1】
ネットワークを介して接続されたマスタ機器とスレーブ機器の発振周波数の誤差を検出する周波数差検出装置において、
前記マスタ機器から周期的に送信されるシンクメッセージに含まれる送信時刻T1と、前記メッセージを受信した受信時刻T2との差分を算出する第1の減算部と、
i回目に受信された前記シンクメッセージに対応する前記第1の減算部による減算結果T2i−T1iと、i−k回目に受信された前記シンクメッセージに対応する前記第1の減算部による減算結果T2i−k−T1i−kとの差分を算出する第2の減算部と、
前記第2の減算部による減算結果をkで除算する第1の除算部と
を備える周波数差検出装置。
【請求項2】
i回目に受信された前記シンクメッセージに対応する前記第1の減算部による減算結果T2i−T1iと、i−k+j(jはkより小さい整数)回目に受信された前記シンクメッセージに対応する前記第1の減算部による減算結果T2i−k+j−T1i−k+jとの差を算出する第3の減算部と、
前記第3の減算部による減算結果をk−jで除算する第2の除算部と、
前記第1の除算部によるkでの除算結果、または前記第2の除算部によるk−jでの除算結果を出力するスイッチと、
前記スイッチを制御するスイッチ制御部と
をさらに備える請求項1に記載の周波数差検出装置。
【請求項3】
前記スレーブ機器においては、前記スイッチから出力される前記第1の除算部によるkでの除算結果、または前記第2の除算部によるk−jでの除算結果が0となるように前記発振周波数が調整される
請求項2に記載の周波数差検出装置。
【請求項4】
前記スイッチは、前記スイッチ制御部からの制御に従い、前記第1の除算部によるkでの除算結果、前記第2の除算部によるk−jでの除算結果、または値0を出力する
請求項2に記載の周波数差検出装置。
【請求項5】
前記スイッチ制御部は、
前記第2の減算部による減算結果の絶対値が所定の閾値以下の場合、前記第1の除算部によるkでの除算結果を前記スイッチから出力させ、
前記第2の減算部による減算結果の絶対値が所定の閾値よりも大きく、前記第3の減算部による減算結果の絶対値が所定の閾値以下の場合、前記第2の除算部によるk−jでの除算結果を前記スイッチから出力させ、
前記第2の減算部による減算結果の絶対値が所定の閾値よりも大きく、前記第3の減算部による減算結果の絶対値が所定の閾値よりも大きい場合、値0を前記スイッチから出力させる
請求項4に記載の周波数差検出装置。
【請求項6】
i回目に受信された前記シンクメッセージに対応する前記第1の減算部による減算結果T2i−T1iと、i−1回目に受信された前記シンクメッセージに対応する前記第1の減算部による減算結果T2i−1−T1i−1との差を算出する第4の減算部と、
前記第4の減算部による減算結果に基づいてネットワーク遅延時間の増加、減少、または変化なしを判定する判定部と
をさらに備える請求項4に記載の周波数検出装置。
【請求項7】
前記スイッチ制御部は、
前記判定部による直近k回分の判定結果における前記ネットワーク遅延時間の増加と判定された回数と減少と判定された回数とが等しい場合、前記第1の除算部によるkでの除算結果を前記スイッチから出力させ、
前記判定部による直近k回分の判定結果における前記ネットワーク遅延時間の増加と判定された回数と減少と判定された回数とが異なり、前記判定部による直近k−1回分の判定結果における前記ネットワーク遅延時間の増加と判定された回数と減少と判定された回数とが等しい場合、前記第2の除算部によるk−jでの除算結果を前記スイッチから出力させ、
前記判定部による直近k回分の判定結果における前記ネットワーク遅延時間の増加と判定された回数と減少と判定された回数とが異なり、前記判定部による直近k−1回分の判定結果における前記ネットワーク遅延時間の増加と判定された回数と減少と判定された回数とが異なる場合、値0を前記スイッチから出力させる
請求項6に記載の周波数差検出装置。
【請求項8】
ネットワークを介して接続されたマスタ機器とスレーブ機器の発振周波数の誤差を検出する周波数差検出装置の周波数差検出方法において、
前記周波数差検出装置による、
前記マスタ機器から周期的に送信されるシンクメッセージに含まれる送信時刻T1と、前記メッセージを受信した受信時刻T2との差分を算出する第1の減算ステップと、
i回目に受信された前記シンクメッセージに対応する前記第1の減算ステップによる減算結果T2i−T1iと、i−k回目に受信された前記シンクメッセージに対応する前記第1の減算ステップによる減算結果T2i−k−T1i−kとの差分を算出する第2の減算ステップと、
前記第2の減算ステップによる減算結果をkで除算する除算ステップと
を含む周波数差検出方法。
【請求項9】
ネットワークを介して接続されたマスタ機器とスレーブ機器の発振周波数の誤差を検出するコンピュータを、
前記マスタ機器から周期的に送信されるシンクメッセージに含まれる送信時刻T1と、前記メッセージを受信した受信時刻T2との差分を算出する第1の減算部と、
i回目に受信された前記シンクメッセージに対応する前記第1の減算部による減算結果T2i−T1iと、i−k回目に受信された前記シンクメッセージに対応する前記第1の減算部による減算結果T2i−k−T1i−kとの差分を算出する第2の減算部と、
前記第2の減算部による減算結果をkで除算する除算部と
して機能させるプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2013−92515(P2013−92515A)
【公開日】平成25年5月16日(2013.5.16)
【国際特許分類】
【出願番号】特願2012−9641(P2012−9641)
【出願日】平成24年1月20日(2012.1.20)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】
【公開日】平成25年5月16日(2013.5.16)
【国際特許分類】
【出願日】平成24年1月20日(2012.1.20)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】
[ Back to top ]