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