(57)【要約】【課題】パケットの欠落およびパケットの到達順序の不連続それぞれがもたらす影響の低減、ならびに簡単な処理で安定に動作させることができる通信装置およびそのクロック再生方法を提供。【解決手段】スレーブ装置10は、送受信間隔比較部50で受信パケットにスレーブ装置10の時刻情報と受信パケットが含む順序情報とを設定し、この受信の時刻情報と順序情報とパケットが含む送信の時刻情報と順序情報とを基に、少なくともパケットの到達順序の入れ替わりおよび欠落のいずれかを調べて、この結果に応じた制御で送信と受信の時刻情報の間隔を算出し、算出した送信と受信の時刻情報の間隔の差を送受信の時刻情報間隔として算出し、平滑化部52で調査結果に応じた制御により算出した値に対応する送受信の時刻情報間隔にわたりパケットを平滑化して、調べたパケットの前後のパケットが含むズレを補正する。【選択図】図１
2008177913.tif 000002
【特許請求の範囲】
【請求項１】
通信ネットワークを介して、マスタ側から供給される送信の時刻情報および送信の順序情報を含むパケットを受信するスレーブ側における通信装置において、該装置は、
該装置で受信したパケットに該装置の時刻情報および前記パケットが含む順序情報を受信の時刻情報および受信の順序情報と設定し、該受信の時刻情報および受信の順序情報と前記パケットが含む前記送信の時刻情報および送信の順序情報とを基に、少なくとも、前記パケットの供給順序および欠落のいずれかを調べて、調べた結果に応じた制御により前記送信および前記受信の時刻情報の間隔を算出し、算出した前記送信および前記受信の時刻情報の間隔の差を送受信の時刻情報間隔として算出し、算出で得られた差が示す値を出力する比較手段と、
前記調べた結果に応じた制御により前記値に対応する前記送受信の時刻情報間隔にわたって供給されるパケットを平滑化して、平均値を算出する平滑化手段と、
該平均値に応じて利得調整する情報を生成する利得調整手段と、
該装置における基準のクロックを生成するクロック生成手段と、
該クロックの供給を受けて、所定の間隔で前記受信の時刻情報を生成する時刻情報生成手段とを含み、
該時刻情報生成手段は、生成した受信の時刻情報を前記比較手段に入力することを特徴とする通信装置。
【請求項２】
請求項１に記載の該装置において、前記比較手段は、前記パケットから前記送信の時刻情報および送信の順序情報を抽出する抽出手段と、
前記受信の時刻情報を供給されるパケットに設定し、前記受信の順序情報として供給されるパケットに含まれる送信の順序情報を抽出し、前記受信の時刻情報および前記受信の順序情報を出力する打刻手段と、
該受信の時刻情報および受信の順序情報と前記送信の時刻情報および送信の順序情報とを基に、少なくとも、前記パケットの供給順序および欠落のいずれかを調べて、調べた結果に応じた制御信号を生成する確認制御手段と、
前記送信の時刻情報および送信の順序情報と前記受信の時刻情報および受信の順序情報を所定の期間にわたって記憶し、これらの情報に履歴を持たせる記憶手段と、
最新の送信の時刻情報と前回の送信の時刻情報との送信時刻間隔および最新の受信の時刻情報と前回の受信の時刻情報との受信時刻間隔を算出する第１の間隔算出手段と、
前記送信時刻間隔と前記受信時刻間隔の差を算出する第２の間隔算出手段とを含むことを特徴とする通信装置。
【請求項３】
請求項２に記載の装置において、第１の間隔算出手段は、前記送信時刻間隔および前記受信時刻間隔を算出し、前記パケットの欠落の発生に応じて生成される制御信号により算出した前記送信時刻間隔および前記受信時刻間隔をそれぞれ、欠落したパケットに対する前後のパケットが有する順序情報の差が示す値で分割し、得られた分割値を、前記送信時刻間隔および前記受信時刻間隔と設定することを特徴とする通信装置。
【請求項４】
請求項２に記載の装置において、前記確認制御手段は、供給されるパケットが含む前記順序情報と前記記憶手段に記憶した順序情報との新旧を比較し、比較結果に応じて前記制御信号を生成することを特徴とする通信装置。
【請求項５】
請求項２に記載の装置において、前記確認制御手段は、前記パケットの異常発生に応じて異常発生したパケットを含む平滑化する区間における前記送信時刻間隔と前記受信時刻間隔の差である差分情報による補正を回避し、該差分情報を次回の平滑化する区間に繰り越す制御信号を生成することを特徴とする通信装置。
【請求項６】
通信ネットワークを介して、マスタ側から供給される送信の時刻情報および送信の順序情報を含むパケットをスレーブ側にて受信し、同期クロックを再生するクロック再生方法において、該方法は、
受信したパケットにスレーブの時刻情報および前記パケットが含む順序情報を受信の時刻情報および受信の順序情報と設定し、該受信の時刻情報および受信の順序情報と前記パケットが含む前記送信の時刻情報および送信の順序情報とを基に、少なくとも、前記パケットの供給順序および欠落のいずれかを調べて、調べた結果に応じた制御により前記送信および前記受信の時刻情報の間隔を算出し、算出した前記送信および前記受信の時刻情報の間隔の差を送受信の時刻情報間隔として算出し、算出で得られた差が示す値を出力する第１の工程と、
前記調べた結果に応じた制御により前記値に対応する前記送受信の時刻情報間隔にわたって供給されるパケットを平滑化して、平均値を算出する第２の工程と、
該平均値に応じて利得調整する情報を生成する第３の工程と、
前記スレーブ側における基準のクロックを生成する第４の工程と、
該クロックの供給を受けて、所定の間隔で前記受信の時刻情報を生成する第５の工程と、
供給されるパケットに生成した受信の時刻情報を打刻する第６の工程とを含むことを特徴とするクロック再生方法。
【請求項７】
請求項６に記載の方法において、第１の工程は、前記パケットから送信の時刻情報および送信の順序情報を抽出する第７の工程と、
前記パケットから抽出した送信の順序情報を受信の順序情報と設定し、前記送信の時刻情報、前記送信の順序情報、供給されるパケットに設定した受信の時刻情報、および前記受信の順序情報とを基に、少なくとも、前記パケットの供給順序および欠落のいずれかを調べて、調べた結果に応じた制御信号を生成する第８の工程と、
前記送信の時刻情報および送信の順序情報と前記受信の時刻情報および受信の順序情報を所定の期間にわたって記憶する第９の工程と、
最新の送信の時刻情報と以前の送信の時刻情報との送信時刻間隔および最新の受信の時刻情報と以前の受信の時刻情報との受信時刻間隔を算出する第10の工程と、
前記送信時刻間隔と前記受信時刻間隔の差を算出する第11の工程とを含むことを特徴とするクロック再生方法。
【請求項８】
請求項７に記載の方法において、第10の工程は、前記送信時刻間隔および前記受信時刻間隔を算出し、前記パケットの欠落の発生に応じて生成される制御信号により算出した前記送信時刻間隔および前記受信時刻間隔をそれぞれ、欠落したパケットに対する前後のパケットが有する順序情報の差が示す値で分割し、得られた分割値を、前記送信時刻間隔および前記受信時刻間隔と設定することを特徴とするクロック再生方法。
【請求項９】
請求項７に記載の方法において、第８の工程は、供給されるパケットが含む前記順序情報と前記記憶手段に記憶した順序情報との新旧を比較し、比較結果に応じて前記制御信号を生成することを特徴とするクロック再生方法。
【請求項１０】
請求項７に記載の方法において、第８の工程は、前記パケットの異常発生に応じて異常発生したパケットを含む平滑化する区間における前記送信時刻間隔と前記受信時刻間隔の差である差分情報による補正を回避し、該差分情報を次回の平滑化する区間に繰り越す制御信号を生成することを特徴とするクロック再生方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置およびそのクロック再生方法に関するものである。とくに、本発明に係る通信装置は、IP(Internet Protocol）網に接続されたマスタ装置から配信される基準のマスタクロックにスレーブ装置のクロックを同期させるスレーブ装置に関するものである。また、本発明に係るクロック再生方法は、IP網を介して、供給されるマスタ側のクロックに対するスレーブ側のクロックを、マスタクロックに同期させて、再生する方法に関するものである。
【背景技術】
【０００２】
IP網での同期クロック伝送は、マスタ装置でスレーブ装置に送信するパケットに送信時の時刻情報である送信タイムスタンプと、パケットの順次番号であるシーケンス番号とを付与する方法を用いる。送信タイムスタンプは、マスタクロックを基に一定の規則で生成する連続した数列であり、具体的にはマスタクロックを基に動作させる数十ビットのカウンタが生成する出力である。スレーブ装置は、パケットの受信毎に、受信時の時刻情報である受信タイムスタンプを生成し、記憶する。受信タイムスタンプは、スレーブクロックを基にマスタ装置と同様の規則で生成した数十ビットの数列である。また、スレーブクロックは、マスタクロックと同一周波数、逓倍周波数、または分周周波数になる。
【０００３】
スレーブ装置は、上述した送信タイムスタンプ、受信タイムスタンプおよびシーケンス番号を用いて、送信間隔と受信間隔を算出し、マスタクロックとスレーブクロックの周波数差分を検出し、スレーブクロックを補正する。
【０００４】
先ず、送信タイムスタンプ間隔は送信タイムスタンプとシーケンス番号より算出し、受信タイムスタンプ間隔は受信タイムスタンプとシーケンス番号より算出する。送受信タイムスタンプの差分は、送信タイムスタンプ間隔と受信タイムスタンプ間隔との差から算出する。理想的には、送信間隔と受信間隔は同じであるから、マスタクロックとスレーブクロックの周波数が同一の場合、周波数が完全に一致していると、送信タイムスタンプ間隔と受信タイムスタンプ間隔が等しくなり、差分は生じない。逆に、差分が生じた場合は周波数が不一致で、差分がプラスの場合、スレーブクロックの周波数がマスタクロックよりも低く、マイナスの場合、スレーブクロックの周波数がマスタクロックよりも高いことになる。周波数の不一致を検出した場合、スレーブ装置は、送受信タイムスタンプ差分をフィードバックし、スレーブクロックを補正する。
【０００５】
なお、スレーブクロックがマスタクロックの周波数の逓倍である場合、送信タイムスタンプ間隔を逓倍した値と受信タイムスタンプ間隔とを比較し、分周した周波数である場合、受信タイムスタンプ間隔に分周数の逆数を掛けた値と送信タイムスタンプ間隔とを比較する処理が要求される。
【０００６】
しかしながら、IP網上でのパケット到達遅延時間にはIP網上のジッタと呼ばれるバラツキがあり、これによりミクロ的には送信間隔と受信間隔は必ずしも同じにはならない。むしろパケット到達遅延時間は、ほとんど一致しない。
【０００７】
したがって、マスタクロックとスレーブクロックの周波数が完全に一致している場合でも、送信タイムスタンプ間隔と受信タイムスタンプ間隔が一致することはなく、周波数の不一致として見えてしまう。スレーブ装置は、その都度、スレーブクロックを補正すると、補正を誤ってジッタが大きくなってしまう。とくに、バースト遅延やパケットの到達順序の逆転が発生した場合、影響が大きくなる。
【０００８】
この問題に対する対処方法には、二つの方法がある。第１の方法は、送受信タイムスタンプの一定区間の差分を平滑化または平均化し、この結果を用いて補正する方法である。この方法の目的は、長期的に見た場合、送信間隔と受信間隔が一致するから、受信パケット毎に算出した差分を長期間蓄積し、平滑化することで、IP網上のジッタによる影響を低減させることにある。
【０００９】
しかしながら、蓄積できる区間には限界があり、送信間隔と受信間隔を完全に一致させることはできない。したがって、IP網上のジッタによる影響は完全に拭い去れない。
【００１０】
そこで、第２の方法は、応答特性の遅いPLL（Phase Locked Loop）を使い、利得調整の利得を小さくして、スレーブクロックの出力ジッタを抑制する方法である。これにより、送受信タイムスタンプ差分を検出しても、緩やかに補正して、IP網状のジッタによる影響を抑制させている。
【００１１】
なお、この技術分野における具体例を開示する。特許文献１は、パケットネットワーク上のクロック同期についての提案である。特許文献１は、TDM（時分割多重）回線間を中継するパケットネットワークにおいて、このパケットネットワーク上の連続した時間間隔における最短パケット伝送時間を計算する処理と、この最短パケット伝送時間の変動に追跡してパケットネットワークの出口におけるクロックの周波数を調整する処理とを含み、このパケットネットワークの入口と出口のクロック同期を再生する方法を記載する。
【００１２】
また、特許文献２は、データ通信方法、データ通信装置およびデータ通信システムである。特許文献２は、パケット欠落が生じても、受信側の装置で受信したパケットに付与されたシーケンス番号を基にパケット所定時間内の受信パケット数を算出し、この受信パケット数と所定の閾値とを比較し、この比較結果に応じて動作周波数を調整して、受信側の装置におけるデータ処理の基準周波数を調整することを開示する。
【特許文献１】特開2004−274766号公報
【特許文献２】特開2003−37620号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
しかしながら、上述した２つの方法だけでは、パケット欠落やパケット到達順序逆転といった、パケットの到達順序が不連続した場合、いくつかの課題が生じる。第１に、連続性を有する周波数情報がパケットの欠落で途切れることにより、マスタクロックの周波数を正確に再生することができなくなってしまう。パケットの欠落が発生すると、スレーブ装置は欠落したパケットの送信タイムスタンプを知る術がなく、受信スタンプも生成されないことから、スレーブ装置は、欠落パケットとその前後のパケットとの送受信タイムスタンプ差分を算出することができなかった。スレーブ装置は、連続性を有するマスタクロックの周波数情報がこの欠落パケットにより途切れてしまい、この結果、マスタクロックの周波数を正確に算出することができなくなる。
【００１４】
この不正確なマスタクロックの周波数情報を用いてスレーブクロックを補正することで、マスタクロックの周波数を正確に再生できなくなっていた。具体的には、マスタクロックとスレーブクロックの周波数が完全に一致していて、シーケンス番号が0と6のパケットの区間で、IP網上のジッタが相殺されていると仮定する。この場合、本来、シーケンス番号が0と6のパケットの区間では、仮定から送受信タイムスタンプ差分の累積値は0となる。しかしながら、たとえばシーケンス番号2のパケットが欠落した場合、シーケンス番号1と3のパケットの区間で送受信タイムスタンプ差分情報が算出できなくなり無効区間となる。スレーブ装置は、この区間を除いた区間で差分を算出することから、シーケンス番号が0と1、3と4、4と5および5と6のパケット区間の送受信タイムスタンプ差分値が-1700,
-900, 500および500とすると、これら差分値の累積値は-1600になる。このように、パケットが欠落すると、スレーブ装置は、本来の周波数差分情報とは異なる値を算出し、この不正確な情報によりスレーブクロックに対して補正している。
【００１５】
第２に、到達順序逆転対処用の複雑な処理回路が用意されることになる。パケット到達順序の連続性が損なわれ、所望のシーケンス番号以外のパケットを受信した場合、所望パケットがネットワーク上で欠落したのか、またはパケット到達順序の逆転が発生したのかを、当該パケット受信時点では知ることができない。このため、対処方法として、第１の対処方法は、所望パケットとこのパケットに相前後するパケットとの区間を無効とし、パケット欠落時と同様の処理する方法である。この方法は、パケット欠落が発生した場合で記述した通り、マスタクロックの周波数を正確に再生できない原因となる。
【００１６】
第２の対処方法は、各受信パケットのシーケンス番号と送受信タイムスタンプをメモリに格納し、パケットを受信する度に、相前後するシーケンス番号のパケット情報が格納されていないかメモリを検索する。この検索結果、スレーブ装置は、パケット情報が格納されていた場合、送受信タイムスタンプ差分を算出し、格納されていない場合、算出を見送る。また、ネットワーク上の遅延揺らぎが大きい場合は、この遅延揺らぎに応じて格納するパケット数を大きくする要求が生じることから、結果としてメモリ容量が大きくなると同時に、スレーブ装置は、検索回数・検索時間も大きくなり、装置の処理が煩雑になる。
【００１７】
第３に、パケットの到達順序が不連続となる場合、ネットワーク上の遅延、ジッタが通常よりも大きいことから、通常と同じように送受信タイムスタンプ差分を平滑化する方法では、安定したクロックの再生が困難となる。パケット欠落や到達順序逆転が発生する場合、ネットワーク上のトラフィックが高いことから、パケットを中継するネットワーク機器は過負荷になりこれにともなって処理時間が大きくなっていることが想定される。想定される状態において、ネットワーク遅延およびジッタが大きく、受信タイムスタンプ間隔が通常よりも大きくなり、バラツキも大きくなる。これにより、スレーブ装置は、通常と同じ平滑化方法を適用すると、これらのバラツキ等による誤差成分を除去できず、マスタクロックの周波数を正確に算出できない。この不正確なマスタクロックの周波数情報でスレーブクロックに対して補正することから、スレーブ装置はマスタクロックの周波数を正確に再生できない。
【００１８】
本発明はこのような従来技術の欠点を解消し、パケットの欠落およびパケットの到達順序の不連続それぞれがもたらす影響の低減、ならびに簡単な処理で安定に動作させることができる通信装置およびそのクロック再生方法を提供することを目的とする。
【課題を解決するための手段】
【００１９】
本発明は上述の課題を解決するために、通信ネットワークを介して、マスタ側から供給される送信の時刻情報および送信の順序情報を含むパケットを受信するスレーブ側における通信装置において、この装置は、この装置で受信したパケットにこの装置の時刻情報およびパケットが含む順序情報を受信の時刻情報および受信の順序情報と設定し、この受信の時刻情報および受信の順序情報とパケットが含む送信の時刻情報および送信の順序情報とを基に、少なくとも、パケットの供給順序および欠落のいずれかを調べて、調べた結果に応じた制御により送信および受信の時刻情報の間隔を算出し、算出した送信および受信の時刻情報の間隔の差を送受信の時刻情報間隔として算出し、算出で得られた差が示す値を出力する比較手段と、調べた結果に応じた制御により値に対応する送受信の時刻情報間隔にわたって供給されるパケットを平滑化して、平均値を算出する平滑化手段と、この平均値に応じて利得調整する情報を生成する利得調整手段と、この装置における基準のクロックを生成するクロック生成手段と、このクロックの供給を受けて、所定の間隔で前記受信の時刻情報を生成する時刻情報生成手段とを含み、この時刻情報生成手段は、生成した受信の時刻情報を前記比較手段に入力することを特徴とする。
【００２０】
また、本発明は上述の課題を解決するために、通信ネットワークを介して、マスタ側から供給される送信の時刻情報および送信の順序情報を含むパケットをスレーブ側にて受信し、同期クロックを再生するクロック再生方法において、この方法は、受信したパケットにスレーブ側の時刻情報およびパケットが含む順序情報を受信の時刻情報および受信の順序情報と設定し、この受信の時刻情報および受信の順序情報とパケットが含む送信の時刻情報および送信の順序情報とを基に、少なくとも、パケットの供給順序および欠落のいずれかを調べて、調べた結果に応じた制御により送信および受信の時刻情報の間隔を算出し、算出した送信および受信の時刻情報の間隔の差を送受信の時刻情報間隔として算出し、算出で得られた差が示す値を出力する第１の工程と、調べた結果に応じた制御により値に対応する送受信の時刻情報間隔にわたって供給されるパケットを平滑化して、平均値を算出する第２の工程と、この平均値に応じて利得調整する情報を生成する第３の工程と、スレーブ側における基準のクロックを生成する第４の工程と、このクロックの供給を受けて、所定の間隔で受信の時刻情報を生成する第５の工程と、供給されるパケットに生成した受信の時刻情報を打刻する第６の工程とを含むことを特徴とする。
【発明の効果】
【００２１】
本発明の通信装置およびそのクロック再生方法によれば、マスタ装置のマスタクロックを基に送信時刻情報および送信順序情報を含むパケットを生成し、IP網を介してスレーブ装置に配信し、スレーブ装置で受信したパケットにスレーブ装置の時刻情報およびパケットが含む順序情報を受信の時刻情報および受信の順序情報と設定し、この受信の時刻情報および受信の順序情報とパケットが含む送信の時刻情報および送信の順序情報とを基に、少なくとも、パケットの供給順序および欠落のいずれかを調べて、調べた結果に応じた制御により送信および受信の時刻情報の間隔を算出し、算出した送信および受信の時刻情報の間隔の差を送受信の時刻情報間隔として算出し、算出で得られた差が示す値を出力し、平滑化手段で調べた結果に応じた制御により値に対応する送受信の時刻情報間隔にわたって供給されるパケットを平滑化して、平均値を求め、パケットの欠落やパケットの到達順序の入れ替わりが発生したパケットの前後のパケットから得られた周波数差分情報を基にこの前後のパケットの周波数差分情報として補填し、補正し、利得調整手段で平均値に応じて利得調整する情報を生成し、クロック生成手段でスレーブ装置における基準のクロックを生成し、時刻情報生成手段で所定の間隔で受信の時刻情報を生成することにより、周波数情報の連続性を保たせることができ、異常なパケットによるスレーブクロック再生への影響を容易に低減することができる。
【発明を実施するための最良の形態】
【００２２】
次に添付図面を参照して本発明による通信装置の一実施例を詳細に説明する。図１を参照すると、本発明による通信装置の実施例は、送受信間隔比較部50で受信したパケットにスレーブ装置の時刻情報およびパケットが含む順序情報を受信の時刻情報および受信の順序情報と設定し、この受信の時刻情報および受信の順序情報とパケットが含む送信の時刻情報および送信の順序情報とを基に、少なくとも、パケットの供給順序（到達順序の入れ替わり）および欠落のいずれかを調べて、調べた結果に応じた制御により送信および受信の時刻情報の間隔を算出し、算出した送信および受信の時刻情報の間隔の差を送受信の時刻情報間隔として算出し、算出で得られた差が示す値を出力し、平滑化部52で調べた結果に応じた制御により値に対応する送受信の時刻情報間隔にわたって供給されるパケットを平滑化して、平均値を求め、到達順序の入れ替わりや欠落が発生したパケットの前後のパケットから得られた周波数差分情報を基にこの前後のパケットの周波数差分情報として補填し、補正し、利得調整部54で平均値に応じて利得調整する情報を生成し、スレーブクロック部56でスレーブ装置における基準のクロックを生成し、タイムスタンプ生成部58でマスタ装置で生成する送信の時刻情報と同様な方法で受信の時刻情報を生成することにより、周波数情報の連続性を保たせることができ、異常なパケットによるスレーブクロック再生への影響を容易に低減することができる。
【００２３】
本実施例は、本発明の通信装置を通信システムのスレーブ装置10に適用した場合である。本発明と直接関係のない部分について図示および説明を省略する。以下の説明で、信号はその現れる接続線の参照番号で指示する。
【００２４】
本実施例の通信システム12は、図２に示すように、マスタ装置14、ならびに複数のスレーブ装置10、16、18および20を含む。通信システム12において、マスタ装置14、ならびに複数のスレーブ装置10、16、18および20のそれぞれは、信号線22ないし30によってIP（Internet Protocol）ネットワーク32に接続される。
【００２５】
マスタ装置14は、図３に示すように、マスタクロック部34、タイムスタンプ生成部36、シーケンス番号生成部37、データ生成部38およびパケット生成部40を含む。マスタ装置14は、IPネットワーク32を介して、スレーブ装置10、16、18および20のそれぞれにパケットを送信する機能を有する。パケットは、パケットの先頭からヘッダ、タイムスタンプ、シーケンス番号、データを格納するペイロードを有する。ヘッダは、所定の領域にマスタ装置14、ならびにスレーブ装置10、16、18および20それぞれの送信元/送信先のアドレス等を含む。タイムスタンプ、シーケンス番号、データペイロードについては、後述する。
【００２６】
マスタクロック部34は、マスタ装置14、ならびに複数のスレーブ装置10、16、18および20に対する基準となる時間情報を生成する機能を有し、基準発振器を含む。マスタクロック部34は、生成した時間情報、すなわちクロック42をタイムスタンプ生成部36に送信する。
【００２７】
タイムスタンプ生成部36は、供給されるクロック42に基づき所定の時間間隔でカウンタ値を歩進させる機能を有し、この歩進をカウントするカウンタを含む。このカウンタ値をタイムスタンプ44として使用するため、パケット生成部40からこのカウンタ値を参照可能とし、パケット生成部40は所定のカウンタ値間隔でパケットを送信する。
【００２８】
シーケンス番号生成部37は、パケットを生成する毎に１ずつ歩進するカウンタを有し、このカウンタ値をシーケンス番号45として、パケット生成部40へ送信する。
【００２９】
データ生成部38は、マスタ装置14からスレーブ装置10、16、18および20のそれぞれに送信するデータを生成する機能を有する。データ生成部38は、生成したデータ46をパケット生成部40に送る。
【００３０】
パケット生成部40は、パケットの先頭からヘッダに続けて、供給されるタイムスタンプ44、シーケンス番号45およびデータ46を各所定の領域に格納して、パケット48を生成し、生成したパケット48を送信する機能を有する。
【００３１】
スレーブ装置10、16、18および20のそれぞれは、同じ構成要素を含む。そこで、記述の繰り返しによる煩雑さを回避するため、スレーブ装置は、スレーブ装置10を代表し、スレーブ装置10を参照して、各構成要素について記載する。
【００３２】
スレーブ装置10は、図１に示すように、送受信間隔比較部50、平滑部52、利得調整部54、スレーブクロック部56およびタイムスタンプ生成部58を含む。送受信間隔比較部50は、マスタ装置14から供給されるパケット48に含まれる情報を抽出し、抽出した情報を基に算出した送信情報の間隔と供給されるパケット48に応じてスレーブ装置10での算出した受信情報の間隔とを比較し、送受信間隔を求める機能を有する。この比較は、マスタ装置の基準発振器とスレーブ装置のスレーブクロックとの周波数比較でもある。送受信間隔比較部50は、情報抽出部60、打刻部62、履歴抽出部64、シーケンス番号確認部66、間隔算出部68および間隔比較部70を含む。
【００３３】
情報抽出部60は、マスタ装置14から送信されるパケット48を分解し、パケット48が含むタイムスタンプおよびシーケンス番号を送信抽出情報72として抽出し、出力する機能を有する。情報抽出部60は、送信抽出情報72を現送信タイムスタンプと現シーケンス番号として、履歴抽出部64、シーケンス番号確認部66および間隔算出部68にそれぞれ、送信する。
【００３４】
打刻部62は、マスタ装置14からパケット48を受信する毎に、タイムスタンプ生成部58から受信したタイムスタンプ74を現受信タイムスタンプとして打刻する機能を有する。また、打刻部62は、マスタ装置14から受信したパケット48が含むシーケンス番号を抽出する機能も有する。打刻部62は、打刻したタイムスタンプと抽出したシーケンス番号を受信抽出情報76として履歴抽出部64および間隔算出部68に送信する。受信抽出情報76は、送信抽出情報72に対する現受信タイムスタンプと現シーケンス番号である。
【００３５】
履歴抽出部64は、タイムスタンプ履歴抽出部78および80を含む。履歴抽出部64は、現タイムスタンプと現シーケンス番号を関連付けて格納し、前回の確認結果に基づき、格納したタイムスタンプとシーケンス番号を送信履歴情報82および受信履歴情報84を出力する機能を有する。タイムスタンプ履歴抽出部78および80は、送信履歴情報82および受信履歴情報84をそれぞれ、シーケンス番号確認部66および間隔算出部68に出力する。送信履歴情報82は、通常、前回に格納された送信タイムスタンプとシーケンス番号である。タイムスタンプ履歴抽出部78は、パケットの到達順序入れ替わりにより前回送受信間隔の算出処理をスキップした場合、処理をスキップしたパケットの前に格納した送信タイムスタンプとシーケンス番号を出力する。また、受信履歴情報84も、通常、前回に格納された受信タイムスタンプとシーケンス番号である。タイムスタンプ履歴抽出部80は、パケットの到達順序入れ替わりにより前回送受信間隔の算出処理をスキップした場合、処理をスキップしたパケットの前に格納した受信タイムスタンプとシーケンス番号を出力する。
【００３６】
シーケンス番号確認部66は、送信抽出情報72が含む現シーケンス番号と送信履歴情報82が含む前シーケンス番号とをこれらの番号の新旧により比較し、シーケンス番号の順序とシーケンス番号の欠落をチェックし、チェック結果に応じて制御信号を生成する機能を有する。シーケンス番号確認部66は、現シーケンス番号が前シーケンス番号より大きく、現シーケンス番号と前シーケンス番号が連番となるとき、間隔算出部68の送信間隔算出部86と受信間隔算出部88に現送信タイムスタンプと前送信タイムスタンプとの間隔の算出を指示する制御信号90を生成し、出力する。また、シーケンス番号確認部66は、現シーケンス番号が前シーケンス番号より大きく、現シーケンス番号と前シーケンス番号との間に欠番があるとき、送信間隔算出部86と受信間隔算出部88に現送信タイムスタンプと欠番のタイムスタンプと格納された送信タイムスタンプとの間隔の算出を指示する制御信号90を送信する。このとき、制御信号90は、平滑部52にも供給される。
【００３７】
さらに、シーケンス番号確認部66は、現シーケンス番号が前シーケンス番号より小さく、現シーケンス番号と前シーケンス番号との間に到達順序に逆転があるとき、送信間隔算出部86と受信間隔算出部88に処理のスキップを指示する制御信号90を出力する。同時に、シーケンス番号確認部66は、タイムスタンプ履歴抽出部78および80に次回の送信する送信履歴情報82および受信履歴情報84を、スキップ処理したパケットの前に格納された送信タイムスタンプとシーケンス番号、ならびに受信タイムスタンプとシーケンス番号の送信を指示する制御信号90を出力する。シーケンス番号確認部66は、平滑部52にも制御信号90を出力する。
【００３８】
間隔算出部68は、送信間隔算出部86および受信間隔算出部88を含む。間隔算出部68は、制御信号90の受信に応じて隣り合ったシーケンス番号における現送信タイムスタンプと前送信タイムスタンプとの間隔、ならびに現受信タイムスタンプと前の受信タイムスタンプとの間隔を算出する機能を有する。また、間隔算出部68は、欠落の検出時に生成される制御信号90の受信に応じて現送信タイムスタンプと前送信タイムスタンプからの補間による間隔、ならびに現受信タイムスタンプと前の受信タイムスタンプからの補間による間隔を算出する機能を有する。送信間隔算出部86が上述した送信における間隔算出機能を有し、受信間隔算出部88が上述した受信における間隔算出機能を有することは言うまでもない。送信間隔算出部86および受信間隔算出部88は、たとえば１シーケンス番号間や所定のシーケンス番号ｎに分割する演算機能も有する。上述した条件にて分割値は新たに間隔92および94としてもよい。
【００３９】
送信間隔算出部86は、算出した現送信タイムスタンプと前送信タイムスタンプとの間隔92を間隔比較部70に出力する。また、受信間隔算出部88も、算出した現受信タイムスタンプと前の受信タイムスタンプとの間隔94を間隔比較部70に出力する。
【００４０】
間隔比較部70は、間隔92と間隔94との差を送受信タイムスタンプ間隔として算出する機能を有する。送受信タイムスタンプ間隔は、マスタクロックとスレーブクロックに応じて生成された時刻情報であるから、これらのクロックの周波数情報を反映している。したがって、間隔比較部70は、マスタクロックとスレーブクロックとの周波数比較とも言える。間隔比較部70は、算出した送受信タイムスタンプ間隔96を平滑部52に出力する。
【００４１】
平滑部52は、供給される送受信タイムスタンプ間隔96を基にたとえば、送受信タイムスタンプ間隔のデータを平滑化して、送受信間隔平均値を算出する機能を有する。平滑部52は、算出した送受信間隔平均値98を利得調整部54に出力する。
【００４２】
ただし、平滑部52は、平滑化にて用いる送受信タイムスタンプ間隔96に欠落や順序逆転に応じた制御信号90を受信した場合、パケット到達順序が不連続となっている平滑化区間があることから、利得調整部54に対する算出した送受信間隔平均値98の出力を保留し、出力を次回の平滑化区間へ繰り越すようにしてもよい。同様に、平滑部52は、平滑にて用いる送受信タイムスタンプ間隔96が所定の閾値を超えた場合、利得調整部54に対する算出した送受信間隔平均値98の出力を保留し、出力を次回の平滑化区間へ繰り越すことが好ましい。
【００４３】
利得調整部54は、供給される送受信間隔平均値98に基づいて利得調整情報100を生成する機能を有する。利得調整部54は、送信タイムスタンプ間隔が受信タイムスタンプ間隔よりも小さい場合、スレーブクロックの周波数の方がマスタクロックよりも高いと判定し、スレーブクロック部56が生成する時間情報102の周波数を低くする利得調整情報100を生成する。また、利得調整部54は、送信タイムスタンプ間隔が受信タイムスタンプ間隔よりも大きい場合、スレーブクロックの周波数の方がマスタクロックよりも低いと判定し、スレーブクロック部54が生成する時間情報102の周波数を高くする利得調整情報100を生成する。利得調整部54は、生成した利得調整情報100をスレーブクロック部56に出力する。
【００４４】
スレーブクロック部56は、供給される利得調整情報100に基づきスレーブ装置10の基準となる時間情報を生成する機能を有する。スレーブクロック部56は、生成した時間情報であるスレーブクロック102をタイムスタンプ生成部58に出力する。
【００４５】
タイムスタンプ生成部58は、供給されるスレーブクロック102に基づき所定の時間間隔でカウンタ値を歩進させる機能を有し、この歩進をカウントするカウンタを含む。このカウンタ値を受信タイムスタンプとして使用するため、タイムスタンプ74として打刻部62に出力する。
【００４６】
このように構成することにより、スレーブ装置10にて送受信間隔比較部50で送受信タイムスタンプの差分を算出し、算出した差分を合計値として扱い、この合計値を分割した値をシーケンス番号間の差分として補填して、周波数情報の連続性を保ち、平滑部52で送受信タイムスタンプ差分を長期間蓄積して、平滑化し、予測して算出した差分の誤差を吸収し、影響を低減することができる。
【００４７】
次に本発明の通信装置を適用したスレーブ装置10における動作について簡単に記述する。スレーブ装置10において、パケットの欠落およびパケットの到達順序の不連続それぞれがもたらす影響は、パケットの到連順序が不連続となった場合でも、周波数情報の連続性を保つ処理およびパケット到達順序逆転が発生時に受信パケット毎に処理しないことで低減する。
【００４８】
スレーブ装置10は、図４に示すように、シーケンス番号０と１の間隔110を（0,1）で表わすように定義する。間隔112は（1,3）、間隔114は（3,4）、間隔116は（4,6）および間隔118は（6,7）と表わす。間隔112は（1,2）および（2,3）の差分の和に等しい。また、間隔116も（4,5）および（5,6）の差分の和に等しい関係にあるが、シーケンス番号5と6のパケット到達順序が逆転しており、間隔122はマイナスの値となり、処理が煩雑となる。そのため、間隔120が表わす（4,5）と間隔122が表わす（5,6）のように、パケットの到達順序が不連続となった場合すなわち、たとえばシーケンス番号５のパケットにて受信パケットのシーケンス番号が期待値より前に到達すべきパケットを受信した場合は処理せず、たとえばシーケンス番号が３や６のパケットにて期待値より後に受信すべきパケットを受信した場合、送受信タイムスタンプの差分を算出し、補正処理するとよい。
【００４９】
また、シーケンス番号２のパケットが欠落した場合、シーケンス番号が１と２、ならびにシーケンス番号２と３の送受信タイムスタンプ差分を算出することはできない。しかしながら、シーケンス番号１と３の送受信タイムスタンプの差分は算出可能である。これは、前述したように、シーケンス番号１と２、ならびにシーケンス番号２と３の差分の合計値である。スレーブ装置10は、この合計値を分割した値をシーケンス番号１と２、ならびにシーケンス番号２と３の差分として補填する。スレーブ装置10は、これにより周波数情報の連続性を保つようにすることができる。この補填をミクロ的に見れば、周波数情報の誤差を大きくする可能性はあるが、スレーブ装置10は、送受信タイムスタンプ差分を長期間蓄積し平滑化している。スレーブ装置10は、毎回の周波数情報によりスレーブクロックを補正する訳ではない。したがって、予測して算出した差分の誤差は、スレーブ装置10にほとんど影響を与えない。
【００５０】
さらに、シーケンス番号５と６のように、第２の課題のパケット到達順序が逆転した場合、スレーブ装置10は、シーケンス番号４と６の送受信タイムスタンプの差分が、シーケンス番号４と５、ならびにシーケンス番号５と６の差分の合計値であることを利用する。スレーブ装置10は、シーケンス番号４と６の差分を分割した値をシーケンス番号４と５、ならびにシーケンス番号５と６の差分として扱い、前後パケットを遡って検索する。これにより、スレーブ装置10は、面倒な差分の算出という処理を回避できる。この処理も、パケット欠落と同様に、ミクロ的に見れば、周波数情報の誤差は大きくなる傾向がある。しかしながら、平滑処理等により影響はほとんど生じない。したがって、パケット毎に処理する場合と効果は変わらない。
【００５１】
次にパケットの到達順序が不連続な状況においても安定したクロックを再生するための方法について記載する。図５のマスタ装置14-スレーブ装置10の通信は、シーケンス番号100と200の間では平均的な平滑化区間124、シーケンス番号200と300の間ではパケット到達順序が不連続となっている平滑化区間126およびシーケンス番号300と400の間ではネットワーク安定後の平滑化区間128を示す。スレーブ装置10は、パケット到達順序が不連続となっている平滑化区間や、送受信タイムスタンプ差分が所定の値を超えた場合、スレーブクロックヘの補正を保留し、送受信タイムスタンプの差分情報を次回の平滑化区間へ繰り越す。したがって、スレーブ装置10は、シーケンス番号200と400の間のように複数区間130の周波数情報により、バースト的に発生した遅延によるスレーブクロックヘの補正の回避、平滑化区間の増加で影響を低減することができる。また、パケット到達順序が不達続となっている区間の送受信タイムスタンプ差分情報を繰り越すことで、周波数情報の連続性を保つこともできる。
【００５２】
前述した２つの課題における解決策について、基本動作を記述する。スレーブ装置10は、パケットを受信時、差分算出対象パケットのシーケンス番号と比較し、受信パケットのシーケンス番号の方が新しければ、差分算出対象パケットから送受信タイムスタンプ差分を算出する。差分算出対象パケットは、最新のシーケンス番号のパケットで、基本的には前回受信したパケットである。受信パケットと差分算出対象パケットのシーケンス番号の差がｎ個の場合、差分算出結果をｎ分割し、各シーケンス番号のパケットの送受信タイムスタンプ差分として補填する。この後、受信パケットの送受信タイムスタンプ、シーケンス番号を差分算出対象パケットの情報に上書きする。もし、受信パケットのシーケンス番号の方が古ければ、送受信タイムスタンプの算出、差分算出対象パケットの情報の上書き等を処理しない。
【００５３】
次に図６を用いて、具体的に記載する。図６のシーケンス番号１のパケットを受信した場合、差分算出対象パケットのシーケンス番号が０であるから、通常通り、送受信タイムスタンプ差分を算出し、差分算出対象パケットの情報にシーケンス番号１のパケットの情報を上書きする。
【００５４】
これに続いて、パケットの欠落によりシーケンス番号３のパケットを受信した場合、差分算出対象パケットのシーケンス番号が１でシーケンス番号に２つの開きがある。このため、スレーブ装置10は、差分算出対象パケットから送受信タイムスタンプを算出する。この場合、送信タイムスタンプ間隔は2000であり、受信タイムスタンプ間隔は1600である。送受信タイムスタンプ間隔は、（（受信タイムスタンプ間隔）−（送信タイムスタンプ間隔））/ｎであるから、400である。スレーブ装置10は、送受信タイムスタンプ間隔、すなわち２つの開きに応じてｎ＝２で分割した値200をシーケンス番号１と２、ならびにシーケンス番号２と３の送受信タイムスタンプ差分として補填をする。この後、シーケンス番号３の情報を差分算出対象パケットの情報に上書きをする。
【００５５】
図示しないが、たとえば、シーケンス番号２と３のパケットが達続して欠落する場合もある。この場合、シーケンス番号４のパケットの受信時に、差分算出対象パケットのシーケンス番号は１である。したがって、シーケンス番号の間隔には３つの開きがある。このため、スレーブ装置10は、差分算出対象パケットから送受信タイムスタンプを算出した結果をｎ＝３で３分割する。スレーブ装置10は、３分割した値をシーケンス番号１と２、シーケンス番号２と３、ならびにシーケンス番号３と４の送受信タイムスタンプ差分として、それぞれ補填をする。この後、スレーブ装置10は、シーケンス番号４の情報を差分算出対象パケットの情報へ上書きするとよい。
【００５６】
図６に示すように、シーケンス番号５と６の到達順序が入れ替わった場合について記述する。シーケンス番号６のパケットを受信した際に、差分算出対象パケットのシーケンス番号は４である。したがって、シーケンス番号には２つの開きがある。この場合、スレーブ装置10は、差分算出対象パケットから送受信タイムスタンプの差分を算出する（2000-1000=1000）。スレーブ装置10は、この算出結果を２等分した値500を、シーケンス番号４と５、シーケンス番号５と６の送受信タイムスタンプ差分（間隔）として、それぞれ補填をする。この後、スレーブ装置10は、シーケンス番号６の情報を差分算出対象パケットの情報へ上書きする。この後でシーケンス番号５のパケットを受信しても、スレーブ装置10は、差分算出対象パケットのシーケンス番号が６であり、受信パケットのシーケンス番号の方が古いことから、このパケットの受信に際して一切処理しない。
【００５７】
次に図７を参照しながら、解決策を記述する。送受信タイムスタンプ差分を算出する平滑化区間132、134および136において、パケット欠落や到達順序逆転が発生した場合、平滑化区間134や送受信タイムスタンプ差分が所定の値よりも大きい場合、平滑化区間134における送受信タイムスタンプ差分を用いてスレーブクロックを補正せず、差分を次回の平滑化区間136に繰り越す。
【００５８】
また、次回の平滑化区間136でパケット欠落や到達順序逆転が発生しない場合、スレーブ装置10は、間隔（200,300）における送受信タイムスタンプ差分の繰越値と間隔（300,400）における送受信タイムスタンプ差分との合計を算出する（3400+(-3200)=200）。この合計値が所定の値の範囲内であれば、スレーブ装置10は、この区間と前回の差分繰越値の合計値を用いて、スレーブクロックを補正する。次回の平滑化区間でも、パケット欠落、到達順序逆転の発生または送受信タイムスタンプ差分の大きい場合、スレーブ装置10はネットワークが安定するまで差分の繰返し処理を繰り越す。
【００５９】
なお、本実施例は、タイムスタンプ、シーケンス番号を利用したIPネットワークでの同期クロック伝送方式について記述したが、マスタ装置の送信間隔を一定とすることで送信タイムスタンプ間隔も一定となることから、シーケンス番号情報だけで同期クロック伝送を実現することができる。
【００６０】
このように動作させることにより、パケットが欠落した場合でも、この前後のパケットから欠落パケットとこの前後のパケットの周波数差分を予測し、補填することで、周波数情報の連続性を保つことができ、パケット欠落によるスレーブクロックヘの影響を低減することができる。
【００６１】
また、これにより、パケットの到達順序送転用のメモリ等を削減することで回路の縮小化をすることができ、煩雑な処理も不要にできる。
【００６２】
さらに、パケット到達順序が不連続となった区間、ネットワーク遅延の大きい区間によるスレーブクロックの補正の回避、およびこの区間の送受信タイムスタンプ差分情報の繰越しにより、ネットワーク上の遅延による影響を低減することができる。
【図面の簡単な説明】
【００６３】
【図１】本発明に係る通信装置を適用した通信システムにおけるスレーブ装置の概略的な構成を示すブロック図である。
【図２】図１の通信システムにおける概略的な構成を示す図である。
【図３】図１の通信システムが有するマスタ装置の概略的な構成を示すブロック図である。
【図４】図１の通信システムにおけるパケットの到達順序が不連続な場合に対する通信方法を説明するタイミングチャートである。
【図５】図１の通信システムにおけるパケットの到達順序が不連続な場合に対する通信方法を説明するタイミングチャートである。
【図６】図１の通信システムにおけるパケットが欠落した場合に対する通信方法を説明するタイミングチャートである。
【図７】図１の通信システムにおけるパケットの到達順序が不連続な場合に対する通信方法を説明するタイミングチャートである。
【符号の説明】
【００６４】
10  スレーブ装置
50  送受信間隔比較部
52  平滑部
54  利得調整部
56  スレーブクロック部
58  タイムスタンプ生成部
60  情報抽出部
62  打刻部
64  履歴抽出部
66  シーケンス番号確認部
68  間隔算出部
70  間隔比較部
【図１】
2008177913.tif 000003
【図２】
2008177913.tif 000004
【図３】
2008177913.tif 000005
【図４】
2008177913.tif 000006
【図５】
2008177913.tif 000007
【図６】
2008177913.tif 000008
【図７】
2008177913.tif 000009