(57)【要約】【課題】高精度なクロック同期を実現する。【解決手段】送信側ノードであるマスターノード７００が定期的に送信してくるＴＳパケット１２０を受け取る受信手段であるＴＳパケット受信部７１１と、ＴＳパケット１２０のタイムスタンプを基にした計算により周波数調整量と受信側ノードであるスレーブノード７１０のクロックとを生成する位相同期手段であるＰＬＬ７１２と、周波数調整量の絶対値が所定の閾値以下であるか否かを判定し、周波数調整量の絶対値が閾値以下のＴＳパケット１２０を採用するパケットフィルタ部７１３と、ＰＬＬ７１２での計算の過程で生じ、ＰＬＬ７１２が保持するパラメータを別途保持し、パケットフィルタ部７１３の判定の結果に従い、自身が保持するパラメータ及びＰＬＬ７１２で保持するパラメータを更新するパラメータ制御手段であるパラメータ制御器７１４と、を備える。【選択図】図７
2010212945.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して送信側ノードと相互に接続され、前記送信側ノードから受信したタイムスタンプを含むパケットに基づいてクロックを同期させる受信側ノードであって、
前記送信側ノードが定期的に送信してくる前記パケットを受け取る受信手段と、
前記パケットのタイムスタンプを基にした計算により周波数調整量と該受信側ノードのクロックとを生成する位相同期手段と、
前記周波数調整量の絶対値が所定の閾値以下であるか否かを判定し、前記周波数調整量の絶対値が該閾値以下の前記パケットを採用するパケットフィルタ手段と、
前記位相同期手段での該計算の過程で生じ、前記位相同期手段が保持するパラメータを別途保持し、前記パケットフィルタ手段の該判定の結果に従い、自身が保持する前記パラメータ及び前記位相同期手段で保持する前記パラメータを更新するパラメータ制御手段と、
を備えることを特徴とする受信側ノード。
【請求項２】
前記パラメータは、ｎ個目の前記パケットの前記タイムスタンプであるＴｍ（ｎ）と、該パケットの受信時に前記位相同期手段で生成しているＴｓ（ｎ）と、以下の式とで関係づけられるＳ（ｎ）及びＹ（ｎ）であり、下記式中のＺ（ｎ）は前記周波数調整量であることを特徴とする請求項１に記載の受信側ノード。
Ｅ（ｎ）＝Ｔｍ（ｎ）−Ｔｓ（ｎ）
Ｓ（ｎ）＝（１−ａ１）×Ｓ（ｎ−１）＋ａ１×Ｅ（ｎ）
Ｚ（ｎ）＝ａ２×Ｓ（ｎ）＋ａ３×Ｙ（ｎ）  
（ここで、Ｙ（ｎ）＝Ｓ（ｎ）×Ｙ（ｎ−１）、又ａ１、ａ２、ａ３は所定の定数）。
【請求項３】
前記パラメータ制御手段は、最後に採用したパケットのパラメータを保持し、前記パケットフィルタ手段での前記判定の結果に基づいて前記パケットを採用する場合、前記位相同期手段で保持する前記パラメータで自身が保持するパラメータを更新し、前記パケットフィルタ手段での前記判定の結果に基づいて前記パケットを不採用とする場合、前記位相同期手段で保持するパラメータを更新し、自身が保持する前記パラメータを新たに保持するパラメータとすることを特徴とする請求項１又は２に記載の受信側ノード。
【請求項４】
前記受け取ったパケットの到着状況と出力状況をカウンタ値として管理するパケットカウンタと、
前記カウンタ値を監視することにより、前記送信側ノードと受信側ノードとのクロック周波数差を計測する速度差判定手段と、
前記速度差判定手段で計測したクロック周波数差の情報から前記閾値の条件を更新するパケットフィルタ手段と、
を更に備えることを特徴とする請求項１又は２に記載の受信側ノード。
【請求項５】
前記速度差判定手段は、所定の計測時間の間、前記カウンタ値を監視してその最大値を検出し、該最大値と前回計測時間の間におけるカウンタ値の最大値との変化から、前記送信側ノードと受信側ノードのクロック周波数差を計測することを特徴とする請求項１乃至４のいずれか１項に記載の受信側ノード。
【請求項６】
前記パケットフィルタ手段は、前記速度差判定手段が前記カウンタ値の最大値が増加していると判定した場合、前記周波数調整量が前記閾値の負の値からゼロの間である場合に前記パケットを採用し、前記カウンタ値の最大値が減少していると判定した場合、前記周波数調整量がゼロから前記閾値の正の値の間である場合に前記パケットを採用し、前記カウンタ値の最大値が変動していないと判定した場合、閾値条件を変更しないことを特徴とする請求項１乃至５のいずれか１項に記載の受信側ノード。
【請求項７】
前記請求項１乃至６のいずれか１項に記載の受信側ノードと、前記送信側ノードとが前記ネットワークを介して相互に接続され、
前記送信側ノードは、
前記タイムスタンプを含む前記パケットを生成する手段と、
前記パケットを送信する手段と、
を備え、
前記受信側ノードは、前記ネットワークを通じて前記パケットを受信することを特徴とするクロック同期システム。
【請求項８】
ネットワークを介して送信側ノードと相互に接続され、前記送信側ノードから受信したタイムスタンプを含むパケットに基づいて受信側ノードのクロックを同期させる方法であって、前記受信側ノードにおいて、
前記送信側ノードが定期的に送信してくる前記パケットを受け取る受信手順と、
前記パケットのタイムスタンプを基にした計算により周波数調整量と該受信側ノードのクロックとを生成する位相同期手順と、
前記周波数調整量の絶対値が所定の閾値以下であるか否かを判定し、前記周波数調整量の絶対値が該閾値以下の前記パケットを採用するパケットフィルタ手順と、
前記位相同期手順での該計算の過程で生じ、前記位相同期手順が保持するパラメータを別途保持し、前記パケットフィルタ手順での該判定の結果に従い、自身が保持する前記パラメータ及び前記位相同期手順で保持する前記パラメータを更新するパラメータ制御手順と、
を備えることを特徴とする受信側ノードのクロックを同期させる方法。
【請求項９】
前記パラメータは、ｎ個目の前記パケットの前記タイムスタンプであるＴｍ（ｎ）と、該パケットの受信時に前記位相同期手順で生成しているＴｓ（ｎ）と、以下の式とで関係づけられるＳ（ｎ）及びＹ（ｎ）であり、下記式中のＺ（ｎ）は前記周波数調整量であることを特徴とする請求項８に記載の受信側ノードのクロックを同期させる方法。
Ｅ（ｎ）＝Ｔｍ（ｎ）−Ｔｓ（ｎ）
Ｓ（ｎ）＝（１−ａ１）×Ｓ（ｎ−１）＋ａ１×Ｅ（ｎ）
Ｚ（ｎ）＝ａ２×Ｓ（ｎ）＋ａ３×Ｙ（ｎ）  
（ここで、Ｙ（ｎ）＝Ｓ（ｎ）×Ｙ（ｎ−１）、又ａ１、ａ２、ａ３は所定の定数）。
【請求項１０】
前記パラメータ制御手順は、最後に採用したパケットのパラメータを保持し、前記パケットフィルタ手順での前記判定の結果に基づいて前記パケットを採用する場合、前記位相同期手順で保持する前記パラメータで自身が保持するパラメータを更新し、前記パケットフィルタ手順での前記判定の結果に基づいて前記パケットを不採用とする場合、前記位相同期手順で保持するパラメータを更新し、自身が保持する前記パラメータを新たに保持するパラメータとすることを特徴とする請求項８又は９に記載の受信側ノードのクロックを同期させる方法。
【請求項１１】
前記受け取ったパケットの到着状況と出力状況をカウンタ値として管理するパケットカウンタの手順と、
前記カウンタ値を監視することにより、前記送信側ノードと受信側ノードとのクロック周波数差を計測する速度差判定手順と、
前記速度差判定手順で計測したクロック周波数差の情報から前記閾値の条件を更新するパケットフィルタ手順と、
を更に備えることを特徴とする請求項８又は９に記載の受信側ノードのクロックを同期させる方法。
【請求項１２】
前記速度差判定手順は、所定の計測時間の間、前記カウンタ値を監視してその最大値を検出し、該最大値と前回計測時間の間におけるカウンタ値の最大値との変化から、前記送信側ノードと受信側ノードのクロック周波数差を計測することを特徴とする請求項８乃至１１のいずれか１項に記載の受信側ノードのクロックを同期させる方法。
【請求項１３】
前記パケットフィルタ手順は、前記速度差判定手順が前記カウンタ値の最大値が増加していると判定した場合、前記周波数調整量が前記閾値の負の値からゼロの間である場合に前記パケットを採用し、前記カウンタ値の最大値が減少していると判定した場合、前記周波数調整量がゼロから前記閾値の正の値の間である場合に前記パケットを採用し、前記カウンタ値の最大値が変動していないと判定した場合、閾値条件を変更しないことを特徴とする請求項８乃至１２のいずれか１項に記載の受信側ノードのクロックを同期させる方法。
【請求項１４】
前記送信側ノードにおいて、
前記タイムスタンプを含む前記パケットを生成する手順と、
前記パケットを前記受信側ノードに送信する手順と、
を備えることを特徴とする請求項８乃至１３のいずれか１項に記載の受信側ノードのクロックを同期させる方法。
【請求項１５】
ネットワークを介して送信側ノードと相互に接続され、前記送信側ノードから受信したタイムスタンプを含むパケットに基づいて受信側ノードのクロックを同期させるプログラムであって、
前記送信側ノードが定期的に送信してくる前記パケットをが受け取る受信処理と、
前記パケットのタイムスタンプを基にした計算により周波数調整量と該受信側ノードのクロックとを生成する位相同期処理と、
前記周波数調整量の絶対値が所定の閾値以下であるか否かを判定し、前記周波数調整量の絶対値が該閾値以下の前記パケットを採用するパケットフィルタ処理と、
前記位相同期処理での該計算の過程で生じ、前記位相同期処理が保持するパラメータを別途保持し、前記パケットフィルタ処理での該判定の結果に従い、自身が保持する前記パラメータ及び前記位相同期処理で保持する前記パラメータを更新するパラメータ制御処理と、
を前記受信側ノードに実行させることを特徴とする受信側ノードのクロックを同期させるプログラム。
【請求項１６】
前記パラメータは、ｎ個目の前記パケットの前記タイムスタンプであるＴｍ（ｎ）と、該パケットの受信時に前記位相同期処理で生成しているＴｓ（ｎ）と、以下の式とで関係づけられるＳ（ｎ）及びＹ（ｎ）であり、下記式中のＺ（ｎ）は前記周波数調整量であることを特徴とする請求項１５に記載の受信側ノードのクロックを同期させるプログラム。
Ｅ（ｎ）＝Ｔｍ（ｎ）−Ｔｓ（ｎ）
Ｓ（ｎ）＝（１−ａ１）×Ｓ（ｎ−１）＋ａ１×Ｅ（ｎ）
Ｚ（ｎ）＝ａ２×Ｓ（ｎ）＋ａ３×Ｙ（ｎ）  
（ここで、Ｙ（ｎ）＝Ｓ（ｎ）×Ｙ（ｎ−１）、又ａ１、ａ２、ａ３は所定の定数）。
【請求項１７】
前記パラメータ制御処理は、最後に採用したパケットのパラメータを保持し、前記パケットフィルタ処理での前記判定の結果に基づいて前記パケットを採用する場合、前記位相同期処理で保持する前記パラメータで自身が保持するパラメータを更新し、前記パケットフィルタ処理での前記判定の結果に基づいて前記パケットを不採用とする場合、前記位相同期処理で保持するパラメータを更新し、自身が保持する前記パラメータを新たに保持するパラメータとすることを特徴とする請求項１５又は１６に記載の受信側ノードのクロックを同期させるプログラム。
【請求項１８】
前記受け取ったパケットの到着状況と出力状況をカウンタ値として管理するパケットカウンタの処理と、
前記カウンタ値を監視することにより、前記送信側ノードと受信側ノードとのクロック周波数差を計測する速度差判定処理と、
前記速度差判定処理で計測したクロック周波数差の情報から前記閾値の条件を更新するパケットフィルタ処理と、
を更に前記受信側ノードに実行させることを特徴とする請求項１５又は１６に記載の受信側ノードのクロックを同期させるプログラム。
【請求項１９】
前記速度差判定処理は、所定の計測時間の間、前記カウンタ値を監視してその最大値を検出し、該最大値と前回計測時間の間におけるカウンタ値の最大値との変化から、前記送信側ノードと受信側ノードのクロック周波数差を計測することを特徴とする請求項１５乃至１８のいずれか１項に記載の受信側ノードのクロックを同期させるプログラム。
【請求項２０】
前記パケットフィルタ処理は、前記速度差判定処理が前記カウンタ値の最大値が増加していると判定した場合、前記周波数調整量が前記閾値の負の値からゼロの間である場合に前記パケットを採用し、前記カウンタ値の最大値が減少していると判定した場合、前記周波数調整量がゼロから前記閾値の正の値の間である場合に前記パケットを採用し、前記カウンタ値の最大値が変動していないと判定した場合、閾値条件を変更しないことを特徴とする請求項１５乃至１９のいずれか１項に記載の受信側ノードのクロックを同期させるプログラム。
【請求項２１】
前記タイムスタンプを含む前記パケットを生成する処理と、
前記パケットを前記受信側ノードに送信する処理と、
を前記送信側ノードに実行させることを特徴とする請求項１５乃至２０のいずれか１項に記載の受信側ノードのクロックを同期させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケットネットワークを介して装置間のクロックを同期させるクロック同期のための受信側ノード、その方法及びそのプログラム。
【背景技術】
【０００２】
ネットワークの転送されるデータ量の増大に伴い、通信事業者にとって、高速データ通信網を安価に実現する必要性が増している。そのため、時分割多重（ＴＤＭ： Time Division Multiplexing）方式（以下、ＴＤＭ方式と記載する）を用いた高コストなネットワークからインターネットプロトコル（ＩＰ：Internet Protocol）方式（以下、ＩＰ方式と記載する）を用いた低コストかつ高効率なネットワークへの移行が進められつつある。
【０００３】
ネットワークに転送されるトラヒックの中には、送信ノード側と受信ノード側とで正確なクロック同期が求められるものがある。例えば音声やビデオなどのリアルタイムデータの送信及び再生である。このようなリアルタイムデータを高品質にやり取りするためには、予め決められたタイミングでデータを再生する必要があり、そのために安定したクロックが必要となる。
【０００４】
又、他の例として、モバイルネットワークサービスでは、セル間のハンドオーバを滞りなく実現するために正確なクロック同期が求められている。具体的には、モバイルネットワーク上の各基地局装置は無線ネットワーク制御装置との間で、５０parts per billion（ｐｐｂ）という非常に高精度のクロック同期が求められている。サービス中にもしも基地局装置のクロック同期精度がこの要求値を超えてしまうと、セル間のハンドオーバが失敗してしまう可能性があり、データが欠落し、通信品質が劣化する恐れがある。
【０００５】
関連技術のＴＤＭ方式ベースのネットワークでは、受信ノードは伝送路を介して送信ノードのクロック情報を抽出することができるため、送受信ノード間で高精度のクロック同期が実現可能だった。これに対して、ＩＰネットワーク方式では、この機能が具備されていないため、受信ノードにおいて送信側のクロックを再生する技術が不可欠である。
【０００６】
上述の問題に鑑みて、ＩＰネットワークのようなパケットネットワークを介して高精度のクロック再生を実現する技術として、タイムスタンプ方式が提案されている。タイムスタンプ方式の構成図を図１に示す。
【０００７】
タイムスタンプ方式では、送信側ノードにあたるマスタノード１００がタイムスタンプ（以下、ＴＳと記載する）を格納したＴＳパケット１２０を受信側ノードにあたるスレーブノード１１０に向けて送信する。ＴＳパケット１２０はパケットネットワーク１３０を経由して、スレーブノード１１０に到着する（図１上部分参照）。
【０００８】
ＴＳパケット１２０を受信したスレーブノード１１０は、格納されたＴＳ情報を利用して自身のクロックを調整することにより、マスタノード１００のクロックと同期する。次に、スレーブノード１１０の構成を説明しながら、より詳細にクロック同期の動作を説明する。
【０００９】
スレーブノード１１０は位相同期ループ（ＰＬＬ：Phase-locked loop）１４０を有し、自身のクロックから生成するＴＳとマスタノード１００から受信したＴＳとの差分を計算し、ＰＬＬ１４０において、その差分を元に自身のクロックを調整することにより、クロック同期を実現する。
【００１０】
ＰＬＬ１４０の構成の一例としては、位相比較器１４１、ループフィルタ（ＬＰＦ：Low Pass Filter）１４２、比例・積分（ＰＩ：Proportion・Integration）制御器１４３、電圧制御発振器（ＶＣＯ：Voltage Control Oscillator）１４４及びカウンタ１４５を有するものが挙げられる。
【００１１】
位相比較器１４１は、受信したＴＳパケット１２０に格納されているＴＳである「受信ＴＳ」と自身のクロックから生成するＴＳである「生成ＴＳ」との差分信号を計算する。この差分信号はＬＰＦ１４２に入力され、ジッタやノイズが除去される。
【００１２】
ＬＰＦ１４２において平滑化された差分信号は、ＰＩ制御器１４３に入力される。ＰＩ制御器１４３では、差分信号を最終的にゼロに収束させる制御信号を計算し、ＶＣＯ１４４に出力する。
【００１３】
ＶＣＯ１４４はＰＩ制御器１４３からの制御信号によって決定される周波数のクロックを出力する。これにより、スレーブ側のクロックが調整される。又、カウンタ１４５は調整されたクロックに基づき、スレーブ側の生成するＴＳである「生成ＴＳ」を生成し、位相比較器１４１に渡す。このようなＰＬＬ１４０の動作により、スレーブノード１１０では、パケットネットワーク１３０を経由しても、マスタノード１００のクロックを再生し、マスタノード１００と同期することができる（例えば特許文献１参照）。
【００１４】
パケットネットワークの入り口側エッジに位置するマスタノードと出口側エッジに位置するスレーブノードが、以上説明した構成を有することにより、パケットネットワークを経由するＴＤＭフローのクロック同期制御を行なうことができる。
【００１５】
他方、以下のような問題も存在する。この点について説明する。
【００１６】
現実のネットワークにおいては、パケットがパケットネットワーク内を転送される際にルータやスイッチにおいてキューイング遅延を受ける。なお、「遅延」という文言は、固定された遅延である伝播遅延と、変動する遅延であるキューイング遅延の組合せを指すこともあるが、本願では特に断りのない限り、以下でいう「遅延」とはキューイング遅延のことを指すものとする。
【００１７】
そして、上述のようにスレーブノードに到着するＴＳパケットには遅延が含まれており、中には遅延量が大きいパケットも存在する。上述したようにスレーブノードにおけるＬＰＦにより、遅延のランダム性を平準化し、その影響を軽減する処理が施されるものの、遅延量が大きいＴＳパケットが到着するとＬＰＦにおいてもその影響を十分に軽減できない場合がある。この場合、クロック同期回路に対してある種のノイズが入力されることになり、同期精度の劣化をもたらす。
【００１８】
これを回避するために、ＴＳパケットの遅延量に応じてパケットを選択的に廃棄するパケットフィルタ機能が用いられている。すなわち、或る閾値を定め、閾値を超える遅延のパケットは廃棄し、格納されるＴＳ情報を同期制御に使用しないという機能である。
【００１９】
図２は、遅延量の分布の一例を示している。この例では遅延がほぼゼロから数１００マイクロ  秒まで分布している。パケットフィルタ機能では、遅延量に関して閾値を設定し、遅延がこの閾値以下のパケットは採用し、閾値を超えるパケットは廃棄する。このように、遅延が閾値を超過するパケットを選択的に廃棄することにより、遅延が小さいパケットのみを用いてクロック同期制御を行なうことが可能になるため、同期精度の向上が期待できる。
【００２０】
ここで、上述のクロック同期制御を実現するために遅延を計測する方法としては、マスタノードとスレーブノードとが、例えばＧＰＳ（Global Positioning System）等を用いて時刻同期をするという方法が例示出来る。両ノードが時刻同期している場合には、マスタノードがパケット送信時に送信時刻情報をパケット内に格納して送信することにより、スレーブノードはパケット受信時の受信時刻とパケット内に格納された送信時刻情報の差分を計算することが可能となる。そして、計算した送信時刻情報の差分を用いることでそのパケットの伝播遅延を含む遅延を計測することができる。
【００２１】
しかしながら、ここで説明した方法はマスタ／スレーブノード間が時刻同期していることを前提としている。現状のパケットネットワークでは、各ノードが時刻同期していない場合も多く、その場合はこの方法で遅延を計測することはできない。このように、時刻同期していない場合は以下のような方法を用いる。
【００２２】
続いて、時刻同期していない場合の例を説明する。図３は、パケットフィルタを備えたスレーブノード３１０を示している。図１におけるスレーブノード１１０に対して、パケットフィルタ３５０が追加されている。パケットフィルタ３５０は到着したＴＳパケットに格納される受信ＴＳの値（受信ＴＳ：Ｔｍ）とＴＳパケットの受信時に自身で生成しているＴＳの値（生成ＴＳ：Ｔｓ）とから遅延Ｄを求め、遅延Ｄが所定の閾値Ｄｔｈ以下の場合にそのＴＳパケットを採用し、閾値を超える場合には廃棄する。パケットを採用した場合には、そのパケットをＰＬＬ１４０に渡す。
【００２３】
ＰＬＬ１４０において、ｎ個目の受信パケットの受信ＴＳをＴｍ（ｎ）として、位相比較器１４１の出力をＥ（ｎ）、ＬＰＦ１４２の出力をＳ（ｎ）、ＰＩ制御器１４３の出力をＺ（ｎ）とした場合、以下の式で実現する例がある。
Ｅ（ｎ）＝Ｔｍ（ｎ）−Ｔｓ（ｎ）
Ｓ（ｎ）＝（１−ａ１）×Ｓ（ｎ−１）＋ａ１×Ｅ（ｎ）
Ｚ（ｎ）＝ａ２×Ｓ（ｎ）＋ａ３×Ｙ（ｎ）  
（ここで、Ｙ（ｎ）＝Ｓ（ｎ）×Ｙ（ｎ−１）、又ａ１、ａ２、ａ３は所定の定数）。
【００２４】
図４に、上記算式を実現する位相比較器４４１、ＬＰＦ４４２、ＰＩ制御器４４３の構成例を示した。ＬＰＦ４４２のＦＦではＳ（ｎ−１）が、ＰＩ制御器４４３のＦＦではＹ（ｎ−１）が格納され、計算に用いられる。
【００２５】
続いて、図５は、パケットフィルタ機能を使用する際のＴＳパケットのタイミングフローを示している。時間軸Ｌ１１はマスタノードにおけるパケット送信タイミングを示す時間軸を示している。又、時間軸Ｌ１１の下部にマスタノードにおけるクロックＬ１２が示されている。
【００２６】
この例では、ＴＳパケットＰ１１が送信されている。マスタノードにおいては、ＴＳパケットＰ１１がマスタ側のクロック５５のタイミングで送信されている。そのため、ＴＳパケットＰ１１にはタイムスタンプとして５５が格納されている。
【００２７】
続いて、その下部にはスレーブノードにおける時間軸Ｌ１３とスレーブノードにおけるクロックＬ１４が示されている。この例では、マスタノードのクロックＬ１２とスレーブノードのクロックＬ１４は同期している。そのため、各クロックの時間幅は同一である。
マスタノードにおいて送信タイミング＝５５で送信されたＴＳパケットＰ１１は、スレーブノードにおいて、スレーブノードのクロックＬ１４（この例では、理想状態として、マスタノードと完全に同期していることを想定しているため、クロックＬ１４をＩｄｅａｌ  ＣＬＫと書くこととする）の５５のタイミングで到着するはずだが（図中ではＰ１２として図示する）、マスタ／スレーブ間のパケットネットワークにおいて遅延量＝Ｄが付加されることにより、Ｐ１３としてはＩｄｅａｌ  ＣＬＫ＝５９のタイミング、Ｐ１４としてはＩｄｅａｌ  ＣＬＫ＝７０のタイミングで到着している。
【００２８】
特許文献２にも紹介されているように、遅延量Ｄは到着タイミングにおけるスレーブノードのＴＳ（Ｔｓ）と受信したＴＳパケットに格納されるＴＳ（Ｔｍ）との差分で求められる。すなわち、遅延＝生成ＴＳ−受信ＴＳ（Ｄ＝Ｔｓ−Ｔｍ）で表される。
【００２９】
図５の例では、Ｐ１３に関しては、Ｄ＝Ｔｓ（＝５９）−Ｔｍ（＝５５）＝４となる。閾値Ｄｔｈ＝８と設定されているので、遅延Ｄが０≦Ｄ≦Ｄｔｈを満たしているため、このパケットＰ１３は採用となる。一方、Ｐ１４に関しては、Ｄ＝Ｔｓ（＝７０）−Ｔｍ（＝５５）＝１５となり、Ｄ＞Ｄｔｈなので、このＴＳパケットＰ１４は廃棄となる。
【００３０】
このように、受信ＴＳ、生成ＴＳから遅延Ｄを求め、閾値Ｄｔｈからなる条件でフィルタを実行することにより、遅延量が閾値Ｄｔｈよりも大きいパケットを選択的に廃棄し、閾値Ｄｔｈよりも小さいパケットのみを選択してクロック同期制御を行なうことが可能となる。
【先行技術文献】
【特許文献】
【００３１】
【特許文献１】特開２００４−２４８１２３号公報
【特許文献２】特開２００４−２７４７６６号公報
【発明の概要】
【発明が解決しようとする課題】
【００３２】
しかしながら、図５の例ではマスタ／スレーブノード間が同期している場合を例示して説明したが、現実では同期していない状況から同期制御をかけることにより同期させることを目的としており、同期していない状況を考慮する必要がある。マスタ／スレーブノード間が同期してない場合には、以下に説明する課題がある。
【００３３】
図６は、図５で示したタイミングフローにマスタ／スレーブ間が同期していない場合、特にスレーブ速度が遅い場合のタイミングフローを追加した図である。
【００３４】
図６では、図５で示したマスタノードの時間軸Ｌ１１、マスタノードのクロックＬ１２、スレーブノードの時間軸Ｌ１３、スレーブノードがマスタノードに同期している場合のスレーブノードのクロックであるＩｄｅａｌ ＣＬＫ Ｌ１４に加えて、スレーブノードがマスタノードに同期していない場合のスレーブノードのクロックＬ１５が追加されている。
【００３５】
Ｉｄｅａｌ ＣＬＫ Ｌ１４が理想状態で完全同期している場合を示しているのに対して、クロックＬ１５は現実のスレーブノードのクロックを示しているため、Ｒｅａｌ ＣＬＫ６０１と示すこととする。この例では、スレーブノードはマスタノードに同期していないため（スレーブノードの方が低速（周波数が低い））、Ｒｅａｌ ＣＬＫ６０１はＩｄｅａｌ ＣＬＫ Ｌ１４に対して、時間幅が長い。
【００３６】
Ｉｄｅａｌ ＣＬＫ Ｌ１４とＲｅａｌ ＣＬＫ Ｌ１５のクロックの時間幅の相違により、クロック同期していない場合のＲｅａｌ ＣＬＫ Ｌ１５の下でのパケット到着タイミングにおける生成ＴＳの値は、Ｉｄｅａｌ ＣＬＫ Ｌ１４におけるパケット到着タイミングにおける生成ＴＳの値との間でズレが生じている。
【００３７】
図６において、同期していない状態では、Ｒｅａｌ ＣＬＫ Ｌ１５においては、遅延Ｄが含まれる場合のＴＳパケットＰ１３の到着タイミングにおける生成ＴＳの値はＴｓ＝５２となっており、遅延Ｄが含まれていない場合のタイミングにおける生成ＴＳの値はＴｓ＝４９となっている。
【００３８】
Ｉｄｅａｌ ＣＬＫ Ｌ１４において遅延Ｄが含まれていない場合の生成ＴＳ値はＴｓ＝５５であることを考慮すると、Ｒｅａｌ ＣＬＫ Ｌ１５の下での到着タイミングはＩｄｅａｌ ＣＬＫ Ｌ１４の下での到着タイミングに対して、タイムスタンプ値として＋６というズレが存在していることが分かる。このズレは、スレーブノードのクロックがマスタノードのクロックに同期していないことから生じている。そして、このスレーブノードのクロックが同期ズレを含んでいることにより、適切に遅延量を計算できない。具体的には以下の通りである。
【００３９】
図５で説明したように、同期状態では、ＴＳパケットＰ１３の遅延量は、Ｄ＝Ｔｓ（＝５９）−Ｔｍ（＝５５）＝４となった。この場合、閾値Ｄｔｈ＝８と設定されているため、０≦Ｄ≦Ｄｔｈを満たし、このパケットは採用となった。
【００４０】
これに対して、図６のように同期していない場合、ＴＳパケットＰ１３では、到着時の生成ＴＳはＴｓ＝５２であるため、遅延量は、Ｄ＝Ｔｓ（＝５２）−Ｔｍ（＝５５）＝−３となる。これはＲｅａｌ ＣＬＫ Ｌ１５がＩｄｅａｌ ＣＬＫ Ｌ１４に対して、同期ズレ△を含んでいるため（この例では△＝＋６）、Ｉｄｅａｌ ＣＬＫにおける到着タイミングからの遅延量を適切に求められないためである。
【００４１】
この場合、遅延Ｄが、０≦Ｄ≦Ｄｔｈを満たさないと判断されてしまうため、このパケットＰ１３は廃棄される。一方、ＴＳパケットＰ１４の場合、到着時の生成ＴＳはＴｓ＝６１であるため、遅延量は、Ｄ＝Ｔｓ（＝６１）−Ｔｍ（＝５５）＝６となる。この場合、遅延Ｄが、０≦Ｄ≦Ｄｔｈを満たすと判断されてしまうため、このパケットＰ１４は採用される。図５の同期の例では、Ｐ１３の場合は採用、Ｐ１４の場合は廃棄だったのに対して、図６では、Ｐ１３の場合は廃棄、Ｐ１４の場合は採用となっており、適切なパケット選択ができていない。その結果、本来採用したい遅延量が小さいパケットを採用できず、廃棄したい遅延量が大きいパケットを採用してしまうことにより、同期精度が劣化するという問題がある。
【００４２】
そこで、本発明は、マスタ／スレーブノード間で時刻同期、クロック同期していない場合であっても、遅延量が大きいと思われるパケットを適切に廃棄して、遅延量の小さいパケットのみをクロック同期回路に取り込み、高精度なクロック同期を実現するクロック同期のための受信側ノード、その方法及びそのプログラムを提供することを目的とする。
【課題を解決するための手段】
【００４３】
上述の問題を解決するため、本発明に係る受信側ノードは、ネットワークを介して送信側ノードと相互に接続され、前記送信側ノードから受信したタイムスタンプを含むパケットに基づいてクロックを同期させる受信側ノードであって、前記送信側ノードが定期的に送信してくる前記パケットを受け取る受信手段と、前記パケットのタイムスタンプを基にした計算により周波数調整量と該受信側ノードのクロックとを生成する位相同期手段と、
前記周波数調整量の絶対値が所定の閾値以下であるか否かを判定し、前記周波数調整量の絶対値が該閾値以下の前記パケットを採用するパケットフィルタ手段と、前記位相同期手段での該計算の過程で生じ、前記位相同期手段が保持するパラメータを別途保持し、前記パケットフィルタ手段の該判定の結果に従い、自身が保持する前記パラメータ及び前記位相同期手段で保持する前記パラメータを更新するパラメータ制御手段と、を備えることを特徴とする。
【００４４】
上述の問題を解決するため、本発明に係る受信側ノードのクロックを同期させる方法は、ネットワークを介して送信側ノードと相互に接続され、前記送信側ノードから受信したタイムスタンプを含むパケットに基づいて受信側ノードのクロックを同期させる方法であって、前記受信側ノードにおいて、前記送信側ノードが定期的に送信してくる前記パケットをが受け取る受信手順と、前記パケットのタイムスタンプを基にした計算により周波数調整量と該受信側ノードのクロックとを生成する位相同期手順と、前記周波数調整量の絶対値が所定の閾値以下であるか否かを判定し、前記周波数調整量の絶対値が該閾値以下の前記パケットを採用するパケットフィルタ手順と、前記位相同期手順での該計算の過程で生じ、前記位相同期手順が保持するパラメータを別途保持し、前記パケットフィルタ手順での該判定の結果に従い、自身が保持する前記パラメータ及び前記位相同期手順で保持する前記パラメータを更新するパラメータ制御手順と、を備えることを特徴とする。
【００４５】
上述の問題を解決するため、本発明に係る受信側ノードのクロックを同期させるプログラムは、ネットワークを介して送信側ノードと相互に接続され、前記送信側ノードから受信したタイムスタンプを含むパケットに基づいて受信側ノードのクロックを同期させるプログラムであって、前記送信側ノードが定期的に送信してくる前記パケットをが受け取る受信処理と、前記パケットのタイムスタンプを基にした計算により周波数調整量と該受信側ノードのクロックとを生成する位相同期処理と、前記周波数調整量の絶対値が所定の閾値以下であるか否かを判定し、前記周波数調整量の絶対値が該閾値以下の前記パケットを採用するパケットフィルタ処理と、前記位相同期処理での該計算の過程で生じ、前記位相同期処理が保持するパラメータを別途保持し、前記パケットフィルタ処理での該判定の結果に従い、自身が保持する前記パラメータ及び前記位相同期処理で保持する前記パラメータを更新するパラメータ制御処理と、を前記受信側ノードに実行させることを特徴とする。
【発明の効果】
【００４６】
以上説明したように、本発明によれば、マスタ／スレーブノード間で時刻同期、クロック同期していない場合であっても、周波数調整量の絶対値が閾値以下のパケットを採用することで、遅延量が大きいと思われるパケットを適切に廃棄して、遅延量の小さいパケットのみをクロック同期回路に取り込み、高精度なクロック同期を実現するクロック同期のための受信側ノード、その方法及びそのプログラムを提供することができる。
【図面の簡単な説明】
【００４７】
【図１】タイムスタンプ方式を用いた場合のネットワーク構成及びスレーブノード構成を示す図である。
【図２】遅延の確率分布を示す図である。
【図３】パケットフィルタ機能を用いた時のスレーブノード構成を示す図である。
【図４】ＰＬＬ１４０の位相比較器１４１、ＬＰＦ１４２、ＰＩ制御器１４３の構成例を記したスレーブノード構成を示す図である。
【図５】マスタノードとスレーブノードが同期している場合の各ノードのクロック及びＴＳパケットの転送／到着タイミングを示す図である。
【図６】マスタノードとスレーブノードが同期せず、スレーブノードが遅い場合の各ノードのクロック及びＴＳパケットの転送／到着タイミングを示す図である。
【図７】本発明の実施形態１のマスタノード及びスレーブノードの構成を示す図である。
【図８】本発明の実施形態１のＬＰＦ７１２−２、ＰＩ制御器７１２−３、パケットフィルタ７１３、パラメータ制御器７１４、ＶＣＯ７１２−５のパラメータ更新時の動作フローを示す図である。
【図９】本発明の実施形態１のＬＰＦ７１２−２、ＰＩ制御器７１２−３のパラメータ更新例を示す図である。
【図１０】本発明のパケットフィルタ機能を用いた時の同期精度を示すグラフである。
【図１１】本発明の実施形態２のスレーブノードの構成を示す図である。
【図１２】スレーブノードのクロックがマスタノードのクロックに同期しており、パケットネットワークにおける遅延がない場合のパケットカウンタ１１０１のカウンタ値を示す図である。
【図１３】スレーブノードのクロックがマスタノードのクロックに同期しており、パケットネットワークにおける遅延がある場合のパケットカウンタ１１０１のカウンタ値を示す図である。
【図１４】スレーブノードのクロックがマスタノードのクロックよりも遅れており、パケットネットワークにおける遅延がある場合のパケットカウンタ１１０１のカウンタ値を示す図である。
【図１５】スレーブノードのクロックがマスタノードのクロックよりも進んでおり、パケットネットワークにおける遅延がある場合のパケットカウンタ１１０１のカウンタ値を示す図である。
【図１６】本発明の実施形態２の速度増減検出部１１０２とパケットフィルタ部１１０３のフィルタ条件更新時の動作フローを示す図である。
【発明を実施するための形態】
【００４８】
次に、本発明を実施するための実施形態について、図面を参照して詳細に説明する。
【００４９】
＜実施形態１＞
まず、本実施形態における課題の解決を実現するための基本的な考え方について説明する。
【００５０】
発明が解決しようとする課題で説明したように、関連技術では、マスタ／スレーブが同期していない場合、到着するＴＳパケットの遅延を適切に見積もれないために、遅延が大きいパケットを採用したり、遅延が小さいパケットを廃棄することがあり、その結果、同期精度が劣化するという課題があった。
【００５１】
本課題に対して、本発明の実施形態１では、採用すべきパケットを決定するために、到着パケットを採用したと仮定した場合の計算結果に基づき、そのパケットの採用／廃棄を決定することとする。関連技術のパケットフィルタ機構は図４で示すように、ＰＬＬ７１２の前段に配置されていたのに対して、本発明のパケットフィルタ機構は図７で示すように、ＰＬＬ７１２の後段に配置される。ここで、図７は、本発明の実施形態１の送信側ノードであるマスタノード及び受信側ノードであるスレーブノードの構成を示す図である。
【００５２】
この図７によると、マスターノード７００は、タイムスタンプを含むパケットであるＴＳパケット１２０を生成する手段であるＴＳパケット生成部７０１と、そのパケットを送信する手段であるＴＳパケット送信部７０２とを備え、スレーブノード７１０は、パケットネットワーク１３０を介してマスターノード７００と相互に接続され、ＴＳパケット１２０は、パケットネットワーク１３０を通じてスレーブノード７１０に送信される。
【００５３】
スレーブノード７１０は、パケットネットワーク１３０を通じてＴＳパケット１２０を受信する。
【００５４】
クロック同期制御の原理として、スレーブノードでは、マスタ／スレーブ間の周波数同期状況、及び到着パケットの遅延が分からないことから、スレーブノードは、到着パケットの遅延を含めてマスタ／スレーブ間の周波数差だと考えて、ＰＬＬ７１２では、その差分をゼロにするための周波数調整量を計算している。
【００５５】
到着パケットの遅延が大きい場合、受信ＴＳと生成ＴＳの差分が大きくなるため、ＰＬＬ７１２で計算されるＶＣＯ７１２−４に対する周波数調整量が大きくなる。しかしながら、遅延による受信ＴＳ／生成ＴＳ差分は、周波数差分ではないため、遅延に起因する周波数調整は、マスタ／スレーブ間の同期精度の劣化につながる。
【００５６】
一方、到着パケットの遅延が小さい場合、受信ＴＳと生成ＴＳの差分は小さいため、ＰＬＬ７１２で計算される周波数調整量は小さい。この場合、遅延に起因する周波数調整も小さいため、マスタ／スレーブ間の同期精度は劣化しない。
【００５７】
以上より、到着パケットの遅延が大きい場合、周波数調整量も大きく、それを調整することで同期精度劣化につながり、一方で、遅延が小さい場合は周波数調整量も小さく、それを調整することで同期精度は良好に保たれる。
【００５８】
この関係を利用し、本発明の実施形態１では、各到着パケットを採用したと仮定した場合のＰＬＬ７１２での周波数調整量を計算し、その値が許容できる所定の閾値以下の場合は採用し、閾値よりも大きい場合は廃棄するパケットフィルタ処理を行なうこととする。周波数調整量が小さい場合は、そのパケットの遅延が小さいと考えられ、周波数調整量が大きい場合は、そのパケットの遅延は大きいと考えられるため、関連技術のパケットフィルタと同様の効果を、遅延を算出せずに得られることが期待できる。なお、この所定の閾値は、ＰＬＬ７１２で保持するものとする。
【００５９】
＜実施形態１の構成の説明＞
上述の本発明の考え方を実現するための構成について、図７を用いて説明する。図７の上部分を参照すると、本発明の実施形態１は全体構成として、マスタノード７００、スレーブノード７１０及びパケットネットワーク１３０を有する。マスタノード７００とスレーブノード７１０は、パケットネットワーク１３０を介して相互に接続されている。この図７全体が、クロック同期システムである。
【００６０】
＜マスタノード＞
マスタノード７００は、ＴＳパケット生成部７０１と、ＴＳパケット送信部７０２を有する。
【００６１】
ＴＳパケット生成部７０１は、クロック同期を行なうためのＴＳが格納されたパケットであるＴＳパケット１２０を生成する。ここで、ＴＳとはマスタノード７００のクロックを基にして生成される時間情報を示す値であり、例えば、マスタノード７００のクロックの最小時間単位（例えば１２５マイクロ秒）が経過する毎に１ずつ増加する数値である。
【００６２】
ＴＳパケット送信部７０２は、ＴＳパケット生成部７０１で生成されたＴＳパケット１２０を、スレーブノード７１０にパケットネットワーク１３０を介して定期的に送信する。
【００６３】
＜スレーブノード＞
スレーブノード７１０は、受信手段としてＴＳパケット受信部７１１、位相同期手段としてＰＬＬ７１２、パケットフィルタ手段としてパケットフィルタ部７１３及びパラメータ制御手段としてパラメータ制御器７１４を有する。
【００６４】
これら受信手段、位相同期手段、パケットフィルタ手段、パラメータ制御手段は、以下のようなものである。
【００６５】
位相同期手段は、パケットのタイムスタンプを基にした計算により周波数調整量と該受信側ノードのクロックとを生成し、パケットフィルタ手段は、周波数調整量の絶対値が所定の閾値以下であるか否かを判定し、周波数調整量の絶対値が該閾値以下のパケットを採用し、パラメータ制御手段は、位相同期手段での該計算の過程で生じ位相同期手段が保持するパラメータを別途保持し、パケットフィルタ手段の該判定の結果に従い、自身が保持するパラメータ及び位相同期手段で保持する。
【００６６】
本実施の形態では、ＰＬＬ７１２は、位相比較器７１２−１、ＬＰＦ７１２−２、ＰＩ制御器７１２−３、ＶＣＯ７１２−４及びカウンタ７１２−５を有する。なお、ＰＬＬ７１２の構成はあくまでも一例である。本実施形態の構成と異なる構成であっても、自身のクロックから生成するＴＳとマスタノード１００から受信したＴＳとの差分を計算し、その差分を元に自身のクロックを調整することができるのであれば、どのような構成を採用したとしても本発明を実現できる。これは、本発明の技術的思想の範囲内の事項であり、当業者にとって自明なことである。
【００６７】
前述のように、本発明では、各到着パケットを採用したと仮定した場合の周波数調整量により、採用／廃棄を決定する。図４で説明した関連技術と同様に、本発明においても、ＬＰＦ７１２−２、ＰＩ制御器７１２−３は履歴情報Ｓ（ｎ−１）、Ｙ（ｎ−１）を保持しながら、計算を行なう。そのため、本発明では、パケットフィルタ７１３により廃棄の決定がなされた場合は、採用したと仮定して更新した履歴情報Ｓ（ｎ−１）、Ｙ（ｎ−１）を元に戻す必要がある。これを実現するために、パラメータ制御器７１４にＦＦを設け、最後に採用した時のＳ（ｎ−１）、Ｙ（ｎ−１）を保持する。そして、パケットフィルタ７１３の採用、廃棄の判定に応じて、ＬＰＦ７１２−２、ＰＩ制御器７１２−３のＦＦの値とパラメータ制御器７１４のＦＦの値を更新する。
【００６８】
以下に、各部の構成の詳細を示す。
【００６９】
ＴＳパケット受信部７１１は、マスタノード７００からパケットネットワーク１３０を経由して転送されてきたＴＳパケット１２０を受信する。受信したＴＳパケット１２０はＰＬＬ７１２に送られる。
【００７０】
位相比較器７１２−１は、ＴＳパケット受信部７１１から受信したＴＳパケット１２０に格納されている受信ＴＳと位相同期手段を構成するカウンタ７１２−５で生成される生成ＴＳとの差分信号Ｅ（ｎ）を計算し、ＬＰＦ７１２−２に出力する。
【００７１】
ＬＰＦ７１２−２は差分信号Ｅ（ｎ）を平準化し、ジッタやノイズを抑圧するとともに、その計算結果であるＳ（ｎ）をＰＩ制御器７１２−３に出力する。又、パラメータ制御器７１４からの指示により、ＦＦで格納する制御値（Ｓ（ｎ−１）の値）を必要に応じて更新する。
【００７２】
ＰＩ制御器７１２−３はこの平準化された差分信号が最終的にゼロとなるような制御信号Ｚ（ｎ）を生成し、パケットフィルタ７１３に出力する。またＬＰＦ７１２−２と同様に、パラメータ制御器７１４からの指示により、ＦＦで格納する制御値（Ｙ（ｎ−１）の値）を必要に応じて更新する。
【００７３】
ＶＣＯ７１２−４は、パケットフィルタ７１３から入力された制御信号Ｚ（ｎ）によって決定される周波数のクロックを生成し、カウンタ７１２−５に出力する。カウンタ７１２−５はクロックを元に生成ＴＳを生成し、位相比較器７１２−１に転送する。
【００７４】
パケットフィルタ７１３は、ＰＩ制御器７１２−３から受信するＶＣＯ７１２−４の周波数調整量を示すＺ（ｎ）に関して、予め設定された閾値Ｔｈとの比較をすることにより、閾値Ｔｈ以下のＺ（ｎ）に関しては採用し、Ｚ（ｎ）をＶＣＯ７１２−４に送る。又、採用／廃棄の情報をパラメータ制御器７１４に通知する。
【００７５】
なお、パケットフィルタ７１３の起動のタイミングについては、マスタノード７００とのＴＳパケット１２０の送受信開始時から起動するという方法を採用してもよい。又、他の方法として、初めのうちは起動せずに全パケットを取り込み、ある程度安定してからパケットフィルタ７１３を起動するようにしてもよい。このように初めのうちは起動せずにある程度安定してから起動するメリットについて以下に説明する。
【００７６】
一般的にＰＬＬ７１２に取り込まれるＴＳパケットの数が減ると、その分、安定するまでに時間が必要となる。なぜならば、パケットフィルタ７１３を起動すると遅延大のパケットは廃棄されるため、採用パケット数が減るためである。しかし、だからといって遅延大パケットを取り込むようにすると同期精度が十分に得られない可能性がある。そこで、ある程度安定するまではパケットフィルタ７１３は起動せずに全パケットを取り込み、ある程度安定したらパケットフィルタ７１３を起動して、遅延大パケットを廃棄することで、最終的に実現出来る同期精度は変わらずに安定するまでの時間を短縮することができる。
【００７７】
パラメータ制御器７１４は、最後に採用されたパケットの制御時に計算されていたＬＰＦ７１２−２におけるパラメータであるＳ（ｎ−ｘ）の値とＰＩ制御器７１２−３におけるパラメータであるＹ（ｎ−ｘ）の値を保持する（ここで、最後に採用されたパケットはｘパケット前としている）。
【００７８】
これらＳ（ｎ−ｘ）及びＹ（ｎ−ｘ）は、ｎ＝ｎ−ｘとすると、ｎ個目の前記パケットの前記タイムスタンプであるＴｍ（ｎ）と、該パケットの受信時に位相同期手段を構成しているカウンタ７１２−５で生成しているＴｓ（ｎ）と、以下の式とで関係づけられるＳ（ｎ）及びＹ（ｎ）である。
【００７９】
Ｅ（ｎ）＝Ｔｍ（ｎ）−Ｔｓ（ｎ）
Ｓ（ｎ）＝（１−ａ１）×Ｓ（ｎ−１）＋ａ１×Ｅ（ｎ）
Ｚ（ｎ）＝ａ２×Ｓ（ｎ）＋ａ３×Ｙ（ｎ）  
（ここで、Ｙ（ｎ）＝Ｓ（ｎ）×Ｙ（ｎ−１）、又ａ１、ａ２、ａ３は所定の定数）
又、上記式中のＺ（ｎ）は周波数調整量である。
【００８０】
そして、パケットフィルタ７１３での判定の結果に基づいて前記パケットを採用する場合、自身のＦＦで保持する情報を更新する。ここでは、ＬＰＦ７１２−２、ＰＩ制御器７１２−３のＦＦの値を新たな値にする。これにより、最後に採用されたパケットの制御パラメータを更新する。
【００８１】
一方、パケットフィルタ７１３での判定の結果に基づいて前記パケットを不採用とし、廃棄の場合、ＬＰＦ７１２−２、ＰＩ制御器７１２−３のＦＦの値を更新する。ここでは、パラメータ制御器７１４のＦＦで保持する値を新たな値にする。これにより、仮採用として更新していたＬＰＦ７１２−２、ＰＩ制御器７１２−３の制御パラメータを元に戻す。
【００８２】
＜実施形態１の動作の説明＞
本発明の後段パケットフィルタ機構の動作について、図８の動作フローを用いて説明する。ここではフィルタ処理を行なうパケットフィルタ７１３とその動作に関連するＬＰＦ７１２−２、ＰＩ制御器７１２−３、パラメータ制御器７１４、ＶＣＯ７１２−４の各部の動作と各部間のＩＦを説明する。
【００８３】
まず、ＬＰＦ７１２−２は、位相比較器７１２−１から受信ＴＳと生成ＴＳの差分であるＥ（ｎ）を受信する（ステップＳ８０１）。
【００８４】
Ｅ（ｎ）を受信すると、
Ｓ（ｎ）＝（１−ａ１）×Ｓ（ｎ−１）＋ａ１×Ｅ（ｎ）
に従いＳ（ｎ）を計算し、ＰＩ制御器７１２−３に通知する（ステップＳ８０２）。
【００８５】
又、計算したＳ（ｎ）をＦＦにおいて、Ｔ１＝Ｓ（ｎ）として、保持する（ステップＳ８０３）。
【００８６】
ＰＩ制御器７１２−３は、ＬＰＦ７１２−２からＳ（ｎ）を受信する（ステップＳ８０４）。
【００８７】
Ｓ（ｎ）を受信すると、
Ｚ（ｎ）＝ａ２×Ｓ（ｎ）＋ａ３×Ｙ（ｎ）
ここで、Ｙ（ｎ）＝Ｓ（ｎ）×Ｙ（ｎ−１）
に従いＺ（ｎ）を計算し、パケットフィルタ７１３に通知する（ステップＳ８０５）。
【００８８】
又、Ｚ（ｎ）を計算する過程で計算されたＹ（ｎ）をＦＦにおいて、Ｔ２＝Ｙ（ｎ）として、保持する（ステップＳ８０６）。
【００８９】
パケットフィルタ７１３はＰＩ制御器７１２−３からＺ（ｎ）を受信すると、設定された閾値Ｔｈとの比較により、採用／廃棄を決定し、採用の場合はパラメータ制御部７１４とＶＣＯ７１２−４に、廃棄の場合はパラメータ制御器７１４に、“採用”または“廃棄”を通知する（ステップＳ８０７）。なお、採用／廃棄の決定条件としては、
|Ｚ（ｎ）| ≦  Ｔｈ  ならば、採用
|Ｚ（ｎ）| ＞  Ｔｈ  ならば、廃棄  とする。
【００９０】
パラメータ制御器７１４は、パケットフィルタ７１３から通知される判定情報が“採用”の場合、パラメータ制御器７１４のＦＦで保持する値Ｈ１、Ｈ２を最新のＳ（ｎ）、Ｙ（ｎ）に置き換えるべく、以下の通り更新する（ステップＳ８０８）。
Ｈ１＝Ｔ１＝Ｓ（ｎ−１）
Ｈ２＝Ｔ２＝Ｙ（ｎ−１）
これにより、最後に採用したパケットにおけるパラメータを更新する。
【００９１】
ＶＣＯ７１２−４は、パケットフィルタ７１３から“採用”の判定情報ならびにＺ（ｎ）を通知されると、出力周波数をＺ（ｎ）に応じた周波数に変更する（ステップＳ８０９）。
【００９２】
パラメータ制御器７１４は、パケットフィルタ７１３から通知される判定情報が“廃棄”の場合、ＬＰＦ７１２−２、ＰＩ制御器７１２−３の各々のＦＦで保持する値Ｔ１、Ｔ２を採用したと仮定して計算した仮のＳ（ｎ）、Ｙ（ｎ）から直近で採用した時のＳ（ｎ）、Ｙ（ｎ）に置き換えるべく、以下の通り更新する（ステップＳ８１０）。
Ｔ１＝Ｈ１＝Ｓ（ｎ−ｘ）    （ここでは、直近の採用がｘサイクル前であるとする）
Ｔ２＝Ｈ２＝Ｙ（ｎ−ｘ）
これにより、仮採用で更新したパラメータを元に戻す。
【００９３】
ＬＰＦ７１２−２、ＰＩ制御器７１２−３では、ＦＦの値が更新される（ステップＳ８１１、Ｓ８１２）。
【００９４】
以上説明した動作フローでパケットフィルタ処理を行なう際のパラメータ更新の一例を、図９を用いて説明する。
【００９５】
図９では、ｎ＝１から１０までの１０パケットが到着した際の各パケットを仮に採用した時のパラメータ値（Ｓ（ｎ）、Ｙ（ｎ）、Ｚ（ｎ））、採用／廃棄情報、採用／廃棄に応じたパラメータ値の更新状況について、記している。ここでは、仮にｎ＝１、４、９のパケットが|Ｚ（ｎ）| ＜Ｔｈとなり、採用されるとしている。
【００９６】
パケットが採用される場合、ＬＰＦ７１２−２、ＰＩ制御器７１２−３のＦＦに格納されるＴ１、Ｔ２の値は仮計算の値をそのまま保持すればよいため、値は更新しない。一方、このパケットが最新の採用パケットとなるため、ｎ＝１、４、９行のパラメータ制御器７１４のＦＦで格納するＨ１、Ｈ２の値をＴ１、Ｔ２の値に更新する。
【００９７】
逆に、ｎ＝２、３、５、６、７、８、１０のように、パケットが廃棄される場合、パラメータ制御器７１４のＦＦに格納されるＨ１、Ｈ２の値は前回採用時の値をそのまま保持すればよいため、値は更新しない。一方、ＬＰＦ７１２−２、ＰＩ制御器７１２−３では、これらのパケットを採用したと仮定してパラメータを更新しているため、ｎ＝２、３、５、６、７、８、１０行のＬＰＦ７１２−２、ＰＩ制御器７１２−３のＦＦで格納するＴ１、Ｔ２の値をＨ１、Ｈ２の値に戻す。
【００９８】
最後に、図１０に記載のシミュレーション結果例を用いて、本発明の効果について説明する。
【００９９】
図１０は、図７に記載のネットワーク構成において、パケットネットワーク１３０において、一様分布の遅延（最大遅延＝１．０ｍｓ）を付加した場合のクロック同期精度を示している。
【０１００】
図１０−１がパケットフィルタ処理を行なわない場合、図１０−２が本発明のパケットフィルタ処理を行なった場合のクロック同期精度を示している。横軸が時間に対して、縦軸がクロック同期精度を示している。マスタノード７００からのＴＳパケット１２０の送信間隔は１００ｍｓｅｃ、スレーブノード７１０のパケットフィルタ７１３でのフィルタ閾値は１０ｐｐｂとしている。つまり、到着パケットを採用した場合に１０ｐｐｂ以内の周波数調整量の場合は採用し、１０ｐｐｂ以上の場合は遅延が大きいと判断し、廃棄している。
【０１０１】
図１０より、本発明の後段パケットフィルタは、フィルタを行なわない場合に比べ、クロック同期精度を大幅に改善していることが確認できる。
【０１０２】
以上より、本発明を用いることにより、遅延を計測することなく、後段パケットフィルタ処理により、遅延小のパケットのみを選択するのと同等の処理を行なうことができ、遅延大のパケットの影響を排除できることから、良好なクロック同期精度を得られるという効果が確認できる。
【０１０３】
＜実施形態２＞
実施形態１では、採用すべきパケットを決定するために、到着パケットを採用したと仮定した場合の計算結果である周波数調整量が予め設定した閾値よりも大きいか小さいかにより、そのパケットの採用／廃棄を決定した。
【０１０４】
本実施形態２では、更なる精度向上を目指し、マスタ／スレーブ間の周波数差（スレーブがマスタより速いか、遅いか）により、閾値を調整する方法について説明する。
【０１０５】
実施形態１では、周波数調整量の絶対値が閾値よりも小さい場合に、そのパケットの遅延が許容範囲内と考えられるため、採用している。周波数調整量についてより詳細に見ていくと、周波数調整量が正の値の場合、スレーブ速度を上げる調整を行ない、周波数調整量が負の値の場合、スレーブ速度を下げる調整を行なうこととなる。実施形態１では、周波数調整量の絶対値により採用／廃棄を判定しているため、スレーブ速度が速い場合に、スレーブ速度を上げる調整を行なう（周波数調整量が正の値で閾値以下）ことや、スレーブ速度が遅い場合に、スレーブ速度を下げる調整を行なう（周波数調整量が負の値で閾値以下）ことがある。
【０１０６】
この調整は、調整量は小さいものの（閾値以下であるため）、同期から外れる方向の調整となるため、マスタ／スレーブ間の速度差状況を踏まえた上で、周波数調整量の正負を考慮して閾値を変更することにより、更なる精度向上が見込まれる。具体的には、スレーブ速度が速い場合には、スレーブ速度を下げる調整を行なうべく、周波数調整量が負の値の閾値以下を採用し、スレーブ速度が遅い場合には、スレーブ速度を上げる調整を行なうべく、周波数調整量が正の値の閾値以下を採用する。
【０１０７】
＜実施形態２の構成の説明＞
本実施形態のスレーブノード構成について、図１１を用いて説明する。図１１では、実施形態１の図７のスレーブノード構成に対して、パケットの到着状況と出力状況をカウンタ値として管理するパケットカウンタ１１０１と、このウンタ値を監視することにより、送信側ノードと受信側ノードとのクロック周波数差を計測する速度差判定手段である速度増減検出部１１０２とが新たに追加され、パケットフィルタ手段であるパケットフィルタ部１１０３がパケットフィルタ部７１３から変更されている。
【０１０８】
パケットカウンタ１１０１は、ＴＳパケット受信部７１１からＴＳパケット１２０を受信する毎に、カウンタの値を所定の値分だけ増加させる。同時にＶＣＯ７１２−４で決定される周波数に従い、カウンタの値を減少させる。なお、パケットカウンタ１１０１はパケットバッファであってもかまわない。パケットカウンタ１１０１がパケットバッファの場合、ＴＳパケット受信部７１１からＴＳパケット１２０を受信すると、パケットをバッファに蓄積し、同時にＶＣＯ７１２−４で決定される周波数に従い、蓄積しているパケットを出力する。
【０１０９】
速度増減検出部１１０２は、パケットカウンタ１１０１のカウンタ値の増減状況をモニタすることにより、スレーブ速度がマスタ速度よりも速いか遅いかを判定し、速度情報をパケットフィルタ１１０３に通知する。速度情報の判定方法については後述する。
【０１１０】
パケットフィルタ１１０３は速度増減検出部１１０２から通知される速度情報を用いて、必要に応じてフィルタ閾値を調整する。調整した閾値を用いたパケットフィルタ方法については、実施形態１におけるパケットフィルタ７１３の動作と同様である。
【０１１１】
速度増減検出部１１０２の速度情報の判定方法について、図１２〜１５を用いて説明する。
【０１１２】
図１２は、スレーブノードのクロックがマスタノードのクロックに正確に同期しており、かつパケットネットワーク内でパケットに付加される遅延量が常に０である場合における、パケットカウンタ１１０１のカウンタ値を表している。横軸方向が経過時間であり、縦軸方向がカウンタ値である。
【０１１３】
又、図１３は、スレーブクロックとマスタクロックは正確に同期しているが、パケットネットワーク内でパケットに付加される遅延が存在する場合のカウンタ値を表している。
【０１１４】
更に、図１４、図１５は、スレーブクロックとマスタクロックが同期しておらず、かつ、パケットネットワーク内でパケットに付加される遅延が存在する場合のカウンタ値を表している。なお、図１４では、スレーブクロックとマスタクロックが同期していない例として、スレーブがマスタに比べ遅い場合、図１５では、スレーブがマスタに比べ速い場合を示している。
【０１１５】
図１２に示した、スレーブクロックとマスタクロックが正確に同期していて、かつパケットネットワーク内で遅延が付加されないという場合において、カウンタ値の最大値は一定値となっている。
【０１１６】
パケットカウンタ１１０１にパケットが到着すると、所定の値分カウンタ値が増加する。一方で、カウンタ値は、ＶＣＯ７１２−４が出力する速度に従い減算される。この例では、パケットの到着する間隔に応じて、１つのパケット分の所定のカウンタ値が減算されている。図１２の例では、スレーブクロックとマスタクロックが同期しているため、パケット到着間隔の一定間隔でカウンタ値の増加と減少を繰り返し、増加した時のカウンタの最大値及び減少した時のカウンタの最小値は一定となっている。
【０１１７】
次に、図１３は、スレーブクロックとマスタクロックとが同期していて、パケットネットワーク内で遅延が付加される場合である。遅延が付加されるため、パケットの到着が遅れることにより、遅れた分だけカウンタ値の減算量が増し、カウンタ値の下限値は図１２の例より小さくなっている。そのため、パケット到着時のカウンタ値は図１２の例のように一定ではなく、他よりも小さくなっている箇所がある。しかしながら、遅延のないパケットが到着した時は、本来到達すべき値（カウンタの最大値）までカウンタ値が達している。
【０１１８】
所定の計測時間としてあるインターバル（例えば１０秒間）において、その間に遅延が付加されないパケットが到着すると考えると、そのインターバルの間、カウンタ値の最大値は一定になる。まとめると、パケットネットワーク内で遅延が付加される場合でも、スレーブクロックとマスタクロックが同期していれば、あるインターバル（例えば、遅延のないパケットが１つは到着すると考えられる長さの時間）でカウンタ値の最大値をモニタすると、その最大値は一定となる。
【０１１９】
続いて、図１４及び図１５は、スレーブとマスタが同期していないケースである。図１４はスレーブ速度がマスタ速度よりも遅いケースである。図１３の例と同様に、遅延の影響でパケット到着が遅れることにより、パケット到着時にカウンタ値が最大値に達しない箇所がある。しかしながら、遅延がないパケットが到着した時は最大値まで達している。図１３との差分は、インターバル毎のカウンタ値の最大値が変動している点にある。この例では、スレーブ速度がマスタ速度よりも遅い。したがって、パケットカウンタ１１０１のカウンタ値の減算速度が増加速度よりも遅いため、カウンタ値は徐々に増加していく。よって、インターバル毎のカウンタ値の最大値は時間経過に従って増加している。
【０１２０】
一方で、図１５では、スレーブ速度がマスタ速度よりも速い。よって、インターバル毎のカウンタ値の最大値の変動については、パケットカウンタ１１０１のカウンタ値の減算速度が増加速度よりも速いため、カウンタ値は徐々に減っていく。よって、インターバル毎のカウンタ値の最大値は時間経過に従って減少している。
【０１２１】
以上の３つのケースより、カウンタ値の最大値をモニタし、インターバル毎の最大値の変動からスレーブ／マスタが同期しているか、していないが分かる。すなわち、カウンタ値の最大値が一定であれば同期しており、変動していれば同期していないということが分かる。そして、変動している場合、カウンタ値の最大値が増加していれば、スレーブ速度がマスタ速度よりも遅く、カウンタ値の最大値が減少していれば、スレーブ速度がマスタ速度よりも速いことが分かる。この方法により、速度増減検出部１１０２は、スレーブ速度がマスタ速度よりも速いか遅いかを判定することができる。
【０１２２】
＜実施形態２の動作の説明＞
本実施形態２の後段パケットフィルタ機構の動作のうち、実施形態１との差分となるパケットカウンタ１１０１のカウンタ値の増減からマスタ／スレーブ間のクロック周波数差である速度差情報を検出する速度増減検出部１１０２とその速度差情報によりフィルタ閾値条件を更新するパケットフィルタ１１０３の動作について、図１６を用いて説明する。
【０１２３】
速度増減検出部１１０１は、パケットカウンタ１１０１のカウンタ値の増減状況をモニタし、インターバルｉにおけるカウンタ値の最大値Ｐ（ｉ）をモニタする（ステップＳ１６０１）。
【０１２４】
インターバルｉが終了すると、カウンタ値の最大値Ｐ（ｉ）を決定する（ステップＳ１６０２）。
【０１２５】
カウンタ値の最大値Ｐ（ｉ）を決定すると、前回インターバルｉ−１におけるカウンタ値の最大値Ｐ（ｉ−１）との比較により、カウンタ値の最大値Ｐ（ｉ）の増加／減少状況を検出する。
Ｐ（ｉ）＞Ｐ（ｉ−１）→  増加（この場合、スレーブの方が遅い）
Ｐ（ｉ）＝Ｐ（ｉ−１）→  一定（この場合、マスタ／スレーブは同期）
Ｐ（ｉ）＜Ｐ（ｉ−１）→  減少（この場合、スレーブの方が速い）
検出した増加／減少情報をパケットフィルタ部１１０３に通知する（ステップＳ１６０３）。
【０１２６】
パケットフィルタ部１６０３は増加／減少情報を受信すると、フィルタ閾値条件を更新する（ステップＳ１６０４）。
【０１２７】
増加の場合：  −Ｔｈ  ＜  Ｚ（ｎ）＜  ０  の場合に採用する
一定の場合：  条件は変更しない
減少の場合：  ０  ＜  Ｚ（ｎ）＜  Ｔｈ  の場合に採用する
このように、パケットフィルタ手段であるパケットフィルタ部１６０３は、速度差判定手段である速度増減検出部１１０２がカウンタ値の最大値が増加していると判定した場合、周波数調整量Ｚ（ｎ）が閾値の負の値である−Ｔｈからゼロの間である場合にそのパケットを採用し、カウンタ値の最大値が減少していると判定した場合、周波数調整量Ｚ（ｎ）がゼロから閾値の正の値であるＴｈの間である場合にそのパケットを採用し、カウンタ値の最大値が変動していないと判定した場合、閾値条件を変更しない。
【０１２８】
パケットフィルタ部１６０３は、更新された最新のフィルタ閾値条件に従い、到着パケットの採用／廃棄の判定を行なう。なお、この処理は、実施形態１の図８のステップＳ８０７に相当する処理である。
【０１２９】
以上の動作により、マスタ／スレーブ間の速度差状況を踏まえ、スレーブが速い時は速度を遅める周波数調整を行なうパケットのみを採用し、スレーブが遅い時は速度を速める周波数調整を行なうパケットのみを採用することが可能となり、同期精度の更なる向上が実現できる。
【０１３０】
以上説明したように、本発明によれば、パケットフィルタ部が到着パケットを採用したと仮定した場合の周波数調整量が設定された閾値より小さいパケットを採用することで、パケットネットワークで受ける遅延量を計測しなくても遅延量の小さいパケットのみを取り込むのと同等の処理を実現でき、同期精度を向上できるという効果を有する。
【０１３１】
なお、本発明の実施形態であるマスタノード及びスレーブノードは、ハードウェア、ソフトウェアまたはこれらの組み合わせにより実現することができる。又、方法の発明として実施することもできる。
【産業上の利用可能性】
【０１３２】
本発明は、ＩＰ方式による音声やビデオなどのリアルタイムデータの送信及び再生に特に適しており、同方式によるノード間の通信全般に利用することが出来る。
【符号の説明】
【０１３３】
１００、７００  マスタノード
１１０、３１０、７１０、１０１０  スレーブノード
１２０、Ｐ１１、Ｐ１２、Ｐ１３、Ｐ１４、Ｐ１５  ＴＳパケット
１３０  パケットネットワーク
１４０、７１２  ＰＬＬ
１４１、４４１、７１２−１  位相比較器
１４２、４４２、７１２−２  ＬＰＦ
１４３、４４３、７１２−３  ＰＩ制御器
１４４、７１２−４  ＶＣＯ
１４５、７１２−５  カウンタ
３５０、７１３、１１０３  パケットフィルタ
７０１  ＴＳパケット生成部
７０２  ＴＳパケット送信部
７１１  ＴＳパケット受信部
７１４  パラメータ制御器
１１０１  パケットカウンタ
１１０２  速度増減検出部
Ｌ１１  マスタノードの時間軸
Ｌ１２  マスタクロック
Ｌ１３  スレーブノードの時間軸
Ｌ１４、Ｌ１５  スレーブクロック
【図１】
2010212945.tif 000003
【図２】
2010212945.tif 000004
【図３】
2010212945.tif 000005
【図４】
2010212945.tif 000006
【図５】
2010212945.tif 000007
【図６】
2010212945.tif 000008
【図７】
2010212945.tif 000009
【図８】
2010212945.tif 000010
【図９】
2010212945.tif 000011
【図１０】
2010212945.tif 000012
【図１１】
2010212945.tif 000013
【図１２】
2010212945.tif 000014
【図１３】
2010212945.tif 000015
【図１４】
2010212945.tif 000016
【図１５】
2010212945.tif 000017
【図１６】
2010212945.tif 000018