(57)【特許請求の範囲】
【請求項１】
異なるソースのローカルシステムクロックとサービスクロックを利用してそれぞれ第1時間カウンターと第2時間カウンターを設定し、前記第1時間カウンターは前記ローカルシステムクロックに対応するカウンターであり、前記第2時間カウンターは前記サービスクロックに対応するカウンターであるステップと、
プリセット時刻のタイムスタンプ記録信号を利用して、それぞれ前記第1時間カウンターから読み取った第1タイムスタンプ値と前記第2時間カウンターから読み取った第2タイムスタンプ値を取得するステップと、
前記第1タイムスタンプ値と第2タイムスタンプ値に基づき、補償タイムスタンプ値を取得するステップと、
前記補償タイムスタンプ値に基づき、前記ローカルシステムクロックのタイムスタンプの整数部分を補償するステップと、を含むクロックのタイムスタンプ補償方法。
【請求項２】
前記第1時間カウンターと前記第2時間カウンターとは、いずれも80ビットのカウンターである請求項1に記載のクロックのタイムスタンプ補償方法。
【請求項３】
前記第1時間カウンターは、整秒部分の演算を完成する第1整秒カウンターと整ナノ秒部分の演算及び切り上げ操作を完成する第1整ナノ秒カウンターを含み、
前記第2時間カウンターは、整秒部分の演算を完成する第2整秒カウンター、整ナノ秒部分の演算及び切り上げ操作を完成する第2整ナノ秒カウンター、及びナノ秒分数部分の演算及び切り上げ操作を完成する第2ナノ秒分数カウンターを含む請求項2に記載のクロックのタイムスタンプ補償方法。
【請求項４】
前記第1整秒カウンターは48ビットのカウンターであり、第1整ナノ秒カウンターは32ビットのカウンターであり、前記48ビットのカウンターの上16ビット値はCPUにより設定され、
前記第2整秒カウンターは32ビットのカウンターであり、前記第2整ナノ秒カウンターは32ビットのカウンターであり、前記第2ナノ秒分数カウンターは16ビットのカウンターである請求項3に記載のクロックのタイムスタンプ補償方法。
【請求項５】
プリセット時刻のタイムスタンプ記録信号を利用して、第1時間カウンターから読み取った第1タイムスタンプ値を取得するステップは、
前記プリセット時刻のタイムスタンプ記録信号に遇った際に、前記第1時間カウンターから読み取った前記第1整秒カウンターの第1値及び前記第1整ナノ秒カウンターの第2値を取得することと、
前記第1値と前記第2値で前記第1タイムスタンプ値を作成することと、を含む請求項3に記載のクロックのタイムスタンプ補償方法。
【請求項６】
プリセット時刻のタイムスタンプ記録信号を利用して、第2時間カウンターから読み取った第2タイムスタンプ値を取得するステップは、
前記プリセット時刻のタイムスタンプ記録信号に遇った際に、前記第2時間カウンターから読み取った前記第2整秒カウンターの第3値、前記第2整ナノ秒カウンターの第4値及び前記第2ナノ秒分数カウンターの第5値を取得することと、
前記第3値、第4値及び第5値で前記第2タイムスタンプ値を作成することと、を含む請求項5に記載のクロックのタイムスタンプ補償方法。
【請求項７】
前記第1タイムスタンプ値と第2タイムスタンプ値に基づき、補償タイムスタンプ値を取得するステップは、
前記第1時間カウンターの下64ビット値と前記第2時間カウンターの上64ビット値を加算して平均値を取って、前記補償タイムスタンプ値を取得すること、或いは
それぞれ第1時間カウンターと第2時間カウンターの整秒及び整ナノ秒部分をそれぞれ加算して和を求め、整秒部分の33ビット値と整ナノ秒部分の33ビット値を取得し、次に、それぞれこの2部分のデータに対してそれぞれシフト平均操作を行い、32ビット幅の整秒部分と32ビット幅の整ナノ秒部分を取得し、次にCPUにより整秒部分の上16ビットを設定して、前記補償タイムスタンプ値を取得することを含む請求項6に記載のクロックのタイムスタンプ補償方法。
【請求項８】
異なるソースのローカルシステムクロックとサービスクロックを利用して、それぞれ第1時間カウンターと第2時間カウンターを設定するように設定され、前記第1時間カウンターは前記ローカルシステムクロックに対応するカウンターであり、前記第2時間カウンターは前記サービスクロックに対応するカウンターであるタイマーモジュールと、
プリセット時刻のタイムスタンプ記録信号を利用して、それぞれ前記第1時間カウンターから読み取った第1タイムスタンプ値及び前記第2時間カウンターから読み取った第2タイムスタンプ値を取得するように設定される第1取得モジュールと、
前記第1タイムスタンプ値と第2タイムスタンプ値に基づき、補償タイムスタンプ値を取得するように設定される第2取得モジュールと、
前記補償タイムスタンプ値に基づき、前記ローカルシステムクロックのタイムスタンプの整数部分を補償するように設定される補償モジュールと、を含むクロックのタイムスタンプ補償装置。
【請求項９】
前記第1時間カウンターと前記第2時間カウンターとは、いずれも80ビットのカウンターである請求項8に記載のクロックのタイムスタンプ補償装置。
【請求項１０】
前記第1時間カウンターは、整秒部分の演算を完成する第1整秒カウンターと整ナノ秒部分の演算及び切り上げ操作を完成する第1整ナノ秒カウンターを含み、
前記第2時間カウンターは、整秒部分の演算を完成する第2整秒カウンター、整ナノ秒部分の演算及び切り上げ操作を完成する第2整ナノ秒カウンター、及びナノ秒分数部分の演算及び切り上げ操作を完成する第2ナノ秒分数カウンターを含む請求項9に記載のクロックのタイムスタンプ補償装置。
【請求項１１】
前記第1整秒カウンターは48ビットのカウンターであり、第1整ナノ秒カウンターは32ビットのカウンターであり、前記48ビットのカウンターの上16ビット値はCPUにより設定され、
前記第2整秒カウンターは32ビットのカウンターであり、前記第2整ナノ秒カウンターは32ビットカウンターであり、前記第2ナノ秒分数カウンターは16ビットのカウンターである請求項10に記載のクロックのタイムスタンプ補償装置。
【請求項１２】
前記第1取得モジュールは、
前記プリセット時刻のタイムスタンプ記録信号に遇った際に、第1時間カウンターから読み取った第1整秒カウンターの第1値及び第1整ナノ秒カウンターの第2値を取得し、前記第1値と前記第2値で前記第1タイムスタンプ値を作成するように設定される第1取得サブモジュールと、
前記プリセット時刻のタイムスタンプ記録信号に遇った際に、第2時間カウンターから読み取った第2整秒カウンターの第3値、第2整ナノ秒カウンターの第4値及び第2ナノ秒分数カウンターの第5値を取得し、前記第3値、第4値及び第5値で前記第2タイムスタンプ値を作成するように設定される第2取得サブモジュールと、を含む請求項10に記載のクロックのタイムスタンプ補償装置。
【請求項１３】
前記第2取得モジュールは計算サブモジュールを備え、
前記計算サブモジュールは、前記第1時間カウンターの下64ビット値と前記第2時間カウンターの上64ビット値を加算して平均値を取って、前記補償タイムスタンプ値を取得する、或いは
それぞれ第1時間カウンターと第2時間カウンターの整秒及び整ナノ秒部分をそれぞれ加算して和を求め、整秒部分の33ビット値と整ナノ秒部分の33ビット値を取得し、次に、それぞれこの2部分のデータに対してそれぞれシフト平均操作を行い、32ビット幅の整秒部分と32ビット幅の整ナノ秒部分を取得し、次にCPUにより整秒部分の上16ビットを設定して、前記補償タイムスタンプ値を取得するように設定される請求項12に記載のクロックのタイムスタンプ補償装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は通信分野に関し、特にクロックのタイムスタンプ補償方法及び装置に関する。
【背景技術】
【０００２】
現代のモバイル通信ネットワークにおいて、各通信機器の間に時間同期を保持する必要があり、ユーザが移動する過程に基地局の切り替えにより切断される等の故障を発生しないように確保し、従来、全地球測位システム(GPS)と電気電子技術者協会(IEEE)1588とはこの需要を満たすことができる。GPSはシステムコスト及び安全性の制限のため全面的に推し広めるのに不便である。IEEE 1588は一般的に精密クロック同期プロトコル(Precision Time Protocol、PTPと略称する)であり、その全称は、ネットワーク測定及び制御システムの精密クロック同期プロトコル標準(a Precision Clock Synchronization Protocol for Networked Measurement and Control Systems)である。IEEE 1588システムは高精度クロックソースをベアラネットワークに入力するのみで、各基地局のクロック時間情報がクロック品質、システム主従関係等に基づき、自動的にネットワーク全体のサブマイクロ秒時間精度の時間同期を実現し、システムコストを低減させ、通信ネットワークの安全性と安定性を強化させる。これらの考えに基づいて、従来、IEEE 1588技術は伝送分野において幅広く使用される。
【０００３】
IEEE 1588システムの時間精度は主に主従ノードの時間精度によって決められる。主従ノードの中で時刻同期メッセージの処理はローカル時間カウンターに基づいていて、該カウンターの精度は直接にシステム全体の時刻同期精度に影響を及ぼす。
【０００４】
従来のシステム時間カウンターの実現方法は以下の通りであり、システムクロックは125Mの精密クロックの場合、1秒の時間は125MHzクロックカウンターが125000000個のクロック周期をカウントするものであり、1つの125Mクロック周期は8nsであり、1588プロトコルに基づき、タイムスタンプは80ビットの時間偏差値であり、1970年1月1日0時間0分0秒を基準時間として、現在時間と基準時間の時間偏差を与える。80ビットのカウンターにおいて、上48ビットは秒の整数部分であり、下32ビットはナノ秒の整数部分である。このため、各周期の固定加算によって、現在のローカル時間を取得する。
【０００５】
しかし、システム全体の時間精度は時間カウンター周波数の制限を受け、最高の精度は8nsのみであり、時間同期システムは異なる伝送機器を経由した後に、誤差も持続的に累加し、ただローカルタイムスタンプの精度を高めてだけ、システム誤差を減少できる。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明の実施例はクロックのタイムスタンプ補償方法及び装置を提供して、ローカルシステムのタイムスタンプ精度を向上させることができる。
【課題を解決するための手段】
【０００７】
上記技術問題を解決するために、本発明の実施例はクロックのタイムスタンプ補償方法を提供し、
異なるソースのクロックを利用してそれぞれ第1時間カウンターと第2時間カウンターを設定するステップ、
プリセット時刻のタイムスタンプ記録信号を利用して、それぞれ前記第1時間カウンターから読み取った第1タイムスタンプ値と前記第2時間カウンターから読み取った第2タイムスタンプ値を取得するステップ、
前記第1タイムスタンプ値と第2タイムスタンプ値に基づき、補償タイムスタンプ値を取得するステップ、及び
前記補償タイムスタンプ値に基づき、ローカルシステムクロックのタイムスタンプの整数部分を補償するステップを含む。
【０００８】
前記第1時間カウンターと前記第2時間カウンターとはいずれも80ビットのカウンターである。
【０００９】
前記第1時間カウンターは、整秒部分の演算を完成する第1整秒カウンターと整ナノ秒部分の演算及び切り上げ操作を完成する第1整ナノ秒カウンターを含み、
前記第2時間カウンターは、整秒部分の演算を完成する第2整秒カウンター、整ナノ秒部分の演算及び切り上げ操作を完成する第2整ナノ秒カウンター、及びナノ秒分数部分の演算及び切り上げ操作を完成する第2ナノ秒分数カウンターを含む。
【００１０】
前記第1整秒カウンターは48ビットのカウンターであり、第1整ナノ秒カウンターは32ビットのカウンターであり、前記48ビットのカウンターの上16ビット値はCPUにより設定され、
前記第2整秒カウンターは32ビットのカウンターであり、前記第2整ナノ秒カウンターは32ビットのカウンターであり、前記第2ナノ秒分数カウンターは16ビットのカウンターである。
【００１１】
プリセット時刻のタイムスタンプ記録信号を利用して、第1時間カウンターから読み取った第1タイムスタンプ値を取得するステップは、
前記プリセット時刻のタイムスタンプ記録信号に遇った際に、前記第1時間カウンターから読み取った前記第1整秒カウンターの第1値及び前記第1整ナノ秒カウンターの第2値を取得すること、及び
前記第1値と前記第2値で前記第1タイムスタンプ値を作成することを含む。 
【００１２】
プリセット時刻のタイムスタンプ記録信号を利用して、第2時間カウンターから読み取った第2タイムスタンプ値を取得するステップは、
前記プリセット時刻のタイムスタンプ記録信号に遇った際に、前記第2時間カウンターから読み取った前記第2整秒カウンターの第3値、前記第2整ナノ秒カウンターの第4値及び前記第2ナノ秒分数カウンターの第5値を取得すること、及び
前記第3値、第4値及び第5値で前記第2タイムスタンプ値を作成することを含む。
【００１３】
前記第1タイムスタンプ値と第2タイムスタンプ値に基づき、補償タイムスタンプ値を取得するステップは、
前記第1時間カウンターの下64ビット値と前記第2時間カウンターの上64ビット値を加算して平均値を取って、前記補償タイムスタンプ値を取得すること、或いは
それぞれ第1時間カウンターと第2時間カウンターの整秒及び整ナノ秒部分をそれぞれ加算して、整秒部分の33ビット値と整ナノ秒部分の33ビット値を取得し、次にそれぞれこの2部分のデータに対してそれぞれビットシフト演算し、平均操作を行い、32ビット幅の整秒部分と32ビット幅の整ナノ秒部分を取得し、次に、CPUにより整秒部分の上16ビットを設定して、前記補償タイムスタンプ値を取得することを含む。
【００１４】
本発明の実施例はクロックのタイムスタンプ補償装置を更に提供し、
異なるソースのクロックを利用して、それぞれ第1時間カウンターと第2時間カウンターを設定するように設定されるタイマーモジュールと、
プリセット時刻のタイムスタンプ記録信号を利用して、それぞれ前記第1時間カウンターから読み取った第1タイムスタンプ値及び前記第2時間カウンターから読み取った第2タイムスタンプ値を取得するように設定される第1取得モジュールと、
前記第1タイムスタンプ値と第2タイムスタンプ値に基づき、補償タイムスタンプ値を取得するように設定される第2取得モジュールと、
前記補償タイムスタンプ値に基づき、ローカルシステムクロックのタイムスタンプ整数部分を補償するように設定される補償モジュールとを含む。
【００１５】
前記第1時間カウンターと前記第2時間カウンターとはいずれも80ビットのカウンターである。
【００１６】
前記第1時間カウンターは、整秒部分の演算を完成する第1整秒カウンターと整ナノ秒部分の演算及び切り上げ操作を完成する第1整ナノ秒カウンターを含み、
前記第2時間カウンターは、整秒部分の演算を完成する第2整秒カウンター、整ナノ秒部分の演算及び切り上げ操作を完成する第2整ナノ秒カウンター、及びナノ秒分数部分の演算及び切り上げ操作を完成する第2ナノ秒分数カウンターを含む。
【００１７】
前記第1整秒カウンターは48ビットのカウンターであり、第1整ナノ秒カウンターは32ビットのカウンターであり、前記48ビットのカウンターの上16ビット値はCPUにより設定され、
前記第2整秒カウンターは32ビットのカウンターであり、前記第2整ナノ秒カウンターは32ビットカウンターであり、前記第2ナノ秒分数カウンターは16ビットのカウンターである。
【００１８】
前記第1取得モジュールは、
前記プリセット時刻のタイムスタンプ記録信号に遇った際に、第1時間カウンターから読み取った第1整秒カウンターの第1値及び第1整ナノ秒カウンターの第2値を取得し、前記第1値と前記第2値で前記第1タイムスタンプ値を作成するように設定される第1取得サブモジュールと、
前記プリセット時刻のタイムスタンプ記録信号に遇った際に、第2時間カウンターから読み取った第2整秒カウンターの第3値、第2整ナノ秒カウンターの第4値及び第2ナノ秒分数カウンターの第5値を取得し、前記第3値、第4値及び第5値で前記第2タイムスタンプ値を作成するように設定される第2取得サブモジュールとを含む。
前記第2取得モジュールは、
第2整ナノ秒カウンター及び第2ナノ秒分数カウンターはいずれも切り上げがあるか否かを判断するように設定される判断サブモジュールと、
前記判断サブモジュールの判断結果に基づき、前記第1時間カウンターの下64ビット値と前記第2時間カウンターの上64ビット値の和に対して平均値を求め、前記補償タイムスタンプ値を取得し、或いはまず前記第1時間カウンターの下64ビット値と前記第2時間カウンターの上64ビット値に対して和を求めてから、第2ナノ秒分数カウンターの16ビット値を使用し、80ビット値を作成し、2回のデータスナップショット後、前記80ビット値に対してビットシフト演算で平均値を求め、前記補償タイムスタンプ値を取得するように設定される計算サブモジュールとを含む。
【発明の効果】
【００１９】
本発明の上記技術的解決手段の有益な効果は以下の通りであり、
上記手段では、異なるソースのクロックを利用してそれぞれ第1時間カウンターと第2時間カウンターを設定し、プリセット時刻のタイムスタンプ記録信号を利用して、それぞれ前記第1時間カウンターから読み取った第1タイムスタンプ値及び前記第2時間カウンターから読み取った第2タイムスタンプ値を取得し、前記第1タイムスタンプ値と第2タイムスタンプ値に基づき、補償タイムスタンプ値を取得し、前記補償タイムスタンプ値に基づき、ローカルシステムクロックのタイムスタンプの整数部分を補償する。ローカルクロックとサービスクロックの2種のクロックが同時にカウントし、それぞれ2つのクロックドメインで作動するタイマーを確立し、キー時刻のタイムスタンプ記録信号がそれぞれ2つの時間カウンターから読み取ったタイムスタンプ値によって、且つ比較及び平均することで、タイムスタンプの整数部分の補償を完成する。大幅にタイムスタンプの精度を向上させることができる。元の125Mの場合の±8nsの偏差と比べて、二重クロックサンプリングとダブルエッジ累加によって、現在の偏差は±3.6nsにあり、向上した精度は55％である。
【図面の簡単な説明】
【００２０】
【図１】図１は本発明のクロックのタイムスタンプ補償方法を示すフローチャートである。
【図２】図２は本発明の時間カウンターのフォーマット図である。
【図３】図３は本発明のタイムスタンプの補償方法を示す一具体的なフローチャートである。
【発明を実施するための形態】
【００２１】
本発明が解決しようとする技術問題、技術的解決手段及び利点をより明らかにさせるために、以下、図面及び具体的な実施例を参照して詳細的に説明する。
【００２２】
本発明が解決しようとする技術問題は、伝送システムにおける精密タイムスタンプ精度を向上させる実現方法を提供し、ローカルタイムスタンプ記録の過程において、マルチクロックサンプリングによってクロックの整数部分を補償して、それによりシステムのタイムスタンプ精度を向上させる。
【００２３】
図1に示すように、本発明の実施例はクロックのタイムスタンプ補償方法を提供し、以下のステップを含み、
ステップ11、異なるソースのクロックを利用してそれぞれ第1時間カウンターと第2時間カウンターを設定し、
ステップ12、プリセット時刻のタイムスタンプ記録信号を利用して、それぞれ前記第1時間カウンターから読み取った第1タイムスタンプ値及び前記第2時間カウンターから読み取った第2タイムスタンプ値を取得し、
ステップ13、前記第1タイムスタンプ値と第2タイムスタンプ値に基づき、補償タイムスタンプ値を取得し、
ステップ14、前記補償タイムスタンプ値に基づきローカルシステムクロックのタイムスタンプの整数部分を補償する。
該実施例は異なるソースのクロックを利用することによって第1時間カウンター及び第2時間カウンターをそれぞれ設定し、第1時間カウンターは例えばローカルシステムに対応するカウンターであってもよく、第2時間カウンターは例えばサービスクロックに対応するカウンターであってもよく、プリセット時刻のタイムスタンプ記録信号を利用して、第1時間カウンターから読み取った第1タイムスタンプ値及び第2時間カウンターから読み取った第2タイムスタンプ値をそれぞれ取得し、前記第1タイムスタンプ値と第2タイムスタンプ値に基づき、補償タイムスタンプ値を取得し、前記補償タイムスタンプ値に基づきローカルシステムクロックのタイムスタンプの整数部分を補償する。ローカルクロックとサービスクロックの2種のクロックを同時にカウントさせ、それぞれ2つのクロックドメインで作動するタイマーを確立し、キー時刻のタイムスタンプ記録信号がそれぞれ2つの時間カウンターから読み取ったタイムスタンプ値によって、且つ比較及び平均することで、タイムスタンプの整数部分の補償を完成する。大幅にタイムスタンプの精度を向上させることができる。元の125M状況の±8nsの偏差と比べて、二重クロックサンプリングとダブルエッジ累加によって、現在の偏差は±3.6nsにあり、向上した精度は55％である。
【００２４】
図2及び図3に示すように、前記第1時間カウンターと第2時間カウンターとはいずれも80ビットのカウンターである。
【００２５】
前記第1時間カウンターは、整秒部分の演算を完成する第1整秒カウンターと整ナノ秒部分の演算及び切り上げ操作を完成する第1整ナノ秒カウンターを含み、
前記第2時間カウンターは、整秒部分の演算を完成する第2整秒カウンター、整ナノ秒部分演算及び切り上げ操作を完成する第2整ナノ秒カウンター及びナノ秒分数部分の演算及び切り上げ操作を完成する第2ナノ秒分数カウンターを含む。
【００２６】
前記第1整秒カウンターは48ビットのカウンターであり、第1整ナノ秒カウンターは32ビットのカウンターであり、前記48ビットのカウンターの上16ビット値はCPUにより設定され、
前記第2整秒カウンターは32ビットのカウンターであり、前記第2整ナノ秒カウンターは32ビットのカウンターであり、前記第2ナノ秒分数カウンターは16ビットのカウンターである。
【００２７】
システムにおいて、2つの異なるソースのクロックを使用して時間カウンターをそれぞれ構築することができ、一番目はシステムクロック125Mクロックであり、第1時間カウンターに対応し、二番目はサービスクロック(異なるサービスに基づき設定することができる)であり、第2時間カウンターに対応し、仮にあるサービスクロックの周波数は155.52MHzである場合、サービスクロックはサービスによって回復する基準クロックであり、1秒の時間に対してちょうど155.52MHzクロックが155520000個のクロック周期をカウントする。1つの155.52MHzクロックのクロック周期は、T155.52M＝(3125/486)ns＝6+(209/486)nsであり、サービスクロック周期は整数部分と分数部分からなることを見える。このため、精密時間カウンターを設定する際に、カウンターを整数カウントと分数カウントという2部分のカウンターに分けることができる。整数カウンターは主に整数部分の計算を完成し、分数カウンターは主に分数部分の計算及び切り上げ操作を完成する。
【００２８】
1588精密タイムスタンプの48ビット整秒部分は広い範囲の時間カウントを実現することができ、このため、タイムスタンプの上ビットは一般的にほとんど変化しないため、PTP精密カウンター、即ち第1時間カウンターの第1整数部分カウンターは32ビット幅を取って実際な用途を満たすことができ、欠けた上16ビット整秒部分はソフトウェアにより直接に設定され、該第1整数部分カウンターは整秒部分に対応するカウンターであり、整ナノ秒部分には32ビット幅で示され(1s＝109ns＝0x3B9A_CA00ns)、また、クロック周期は整ナノ秒ではない際に、累加する際に小数部分が発生するため、ここで16ビットの小数部分を引き入れ、分数部分とも呼ばれて小数部分の累加を完成し、図2に示す。 
【００２９】
2つのカウンターはいずれも組立ライン方式でカウントビット幅を分離して、カウンターは、整秒カウンター(32bit)、整ナノ秒カウンター(32bit)、ナノ秒分数部分カウンター(16bit)の三つの部分に分けられることができ、基準クロックが125Mのシステムクロックの場合、ナノ秒分数カウンターを必要としない。システムをリセットする場合に、第1時間カウンターと第2時間カウンターとは同一のリセット信号を使用して、リセットした後に、第1時間カウンターと第2時間カウンターのカウント値を一致にするように確保する。整ナノ秒下ビットカウントビットでクロック立上りエッジ、立下りエッジを使用し、同時にカウントし、例えば元の125Mクロックカウンターは各立上りエッジのみで1回カウントし、カウント周期は8nsであり、カウンターはクロック立上りエッジと立下りエッジを同時にカウントする場合、カウント周期は4nsであり、整ナノ秒部分は各クロックエッジで4の加算の操作を行い、ナノ秒整数部分は0x3B9A_CA00を超える際に、整秒部分に対して1つの切り上げ操作を発生し、同時に、ナノ秒部分も0x3B9A_CA00を引く必要もある。分数カウンターも同様であり、整数部分と分数部分の累積因子（cumulation factor）を2で割った後に計算し、1つの155.52MHzクロックのクロック周期はT155.52M＝(3125/486)ns＝6+(209/486)nsであると、立上りエッジと立下りエッジを同時にカウントする場合に、カウント周期はT155.52M×2＝(3125/(486×2))ns＝3+(209/972)nsである。1つの16ビットのレジスタによって、小数部分の分子をキャッシュし、2つの16ビットのレジスタを更に必要として、小数部分の分子定数と分母定数をキャッシュし、これらの定数の取る値はCPUによって設定することができ、異なるクロック周波数でのカウントの需要に適用するようにする。各カウント周期内で分子の累加と分母の比較を完成し、分子部分が各周期で209を累加し、次の周期で累加した後に分子部分は分母部分より大きくなると、次の周期で整ナノ秒部分に対して切り上げ操作を行うと同時に、分子部分からも分母部分(972)を引く必要もある。これは二者択一のモジュールを利用して完成することができ、まず分子部分が次のクロックエッジで切り上げる必要があるか否かを判断し、これが763(972-209＝763)と比較してもよく、該数値より大きい又は等しい場合、切り上げる必要があるのを表す。分子部分が次の周期で切り上げる必要がない場合、209と累加して結果を取得し、切り上げる必要がある際に、(209-972＝-763)と加算して結果を取得し、同時に切り上げを発生する。なお、整ナノ秒の下ビットカウントビットのみはダブルエッジを使用してカウントし、整ナノ秒上ビットカウンターと整秒部分とは単一エッジによってカウントし、切り上げ指示が1つの全体周期が続くため、切り上げロストの問題が発生しない。
【００３０】
本発明の一具体的な実施例において、時間カウンターを読み取る場合に、上記ステップ12は、以下のステップを含み、
ステップ121、前記プリセット時刻のタイムスタンプ記録信号に遇った際に、前記第1時間カウンターから読み取った前記第1整秒カウンターの第1値及び前記第1整ナノ秒カウンターの第2値を取得し、
ステップ122、前記第1値と前記第2値で前記第1タイムスタンプ値を作成し、
ステップ123、前記プリセット時刻のタイムスタンプ記録信号に遇った際に、前記第2時間カウンターから読み取った前記第2整秒カウンターの第3値、前記第2整ナノ秒カウンターの第4値及び前記第2ナノ秒分数カウンターの第5値を取得し、
ステップ124、前記第3値、第4値及び第5値で前記第2タイムスタンプ値を作成し
対応的に、ステップ13は、
前記第1時間カウンターの下64ビット値と前記第2時間カウンターの上64ビット値を加算して平均値を取って、前記補償タイムスタンプ値を取得するステップ、或いは
それぞれ第1時間カウンターと第2時間カウンターの整秒及び整ナノ秒の部分をそれぞれ加算して和を求め、整秒部分の33ビット値と整ナノ秒部分の33ビット値を取得し、次に、それぞれこの2部分のデータに対してそれぞれビットシフト演算し、平均操作を行い、32ビット幅の整秒部分と32ビット幅の整ナノ秒部分を取得し、次にCPUにより整秒部分の上16ビットを設定して、1588の標準カウンターを取得し、即ち前記補償タイムスタンプ値であるというステップを含んでもよい。
【００３１】
タイムスタンプを打つ必要がある時に、同時に2つのタイマーの結果をサンプリングして、それぞれ2つのクロックドメインでの精密時間値を取得することができ、このカウンターを読み取る過程において、タイムスタンプ打ち信号とシステムクロック或いはサービスクロックとは1つのクロックドメインにあるため、このサンプリング過程において1つのは同期サンプリングであり、もう1つのカウンターは非同期サンプリングである。タイムスタンプを取る際に、PTP精密カウンターの整秒部分(32bit)と整ナノ秒部分(32bit)のみを取る必要で、このように合計で64ビットのタイムスタンプ値を有し、整秒の残った上16bitはCPUにより設定され、標準80bitの1588精密タイムスタンプを作成する。データ処理過程において、まず同期サンプリングのクロックカウンターで読み取る数値を基準として、2つのカウンターの最も下のカウントビットカウント値の整数部分を加算して平均値を取って、加算する前に、まず分数カウンターと低ビット整数カウンターが切り上げがあるか否かを判断し、いずれも切り上げがあると、すべての80bitデータを加算して、2回のスナップショットデータの加算が完成して、安定した後に、ビットシフト演算によって平均値を計算する。勿論、切り上げるか否かを判断しなくてもよく、直接に2つのカウンターの整数部分の平均値を取って、平均値を取る過程は基本的に確定周期内で完成することができ、下流にタイムスタンプを打つ過程に影響を及ぼしない。
【００３２】
本発明の上記実施例はタイムスタンプを打つ過程において、ローカルクロックとサービスクロックの2種のクロックを同時にカウントさせ、それぞれ2つのクロックドメインに作動されるタイマーを確立し、キー時刻のタイムスタンプ記録信号がそれぞれ2つの時間カウンターから読み取ったタイムスタンプ値によって、且つ比較及び平均することで、タイムスタンプの整数部分の補償を完成する。
【００３３】
システムはカウンターの下整数ビットカウンターのカウンター周期を向上させ、且つ同時に二重クロックサンプリングの方式を採用して精密クロックの範囲を取得し、基準タイムスタンプとサービスタイムスタンプ値の平均アルゴリズムによって、最終的にタイムスタンプを取得し、大幅にタイムスタンプの精度を向上させることができる。元の125M状況の±8nsの偏差と比べて、二重クロックサンプリングとダブルエッジ累加によって、現在の偏差が±3.6nsであり、タイムスタンプ精度は55％向上させる。
【００３４】
本発明の実施例はクロックのタイムスタンプ補償装置を更に提供し、
異なるソースのクロックを利用してそれぞれ第1時間カウンターと第2時間カウンターを設定するように設定されるタイマーモジュールと、
プリセット時刻のタイムスタンプ記録信号を利用して、それぞれ前記第1時間カウンターから読み取った第1タイムスタンプ値及び前記第2時間カウンターから読み取った第2タイムスタンプ値を取得するように設定される第1取得モジュールと、
前記第1タイムスタンプ値と第2タイムスタンプ値に基づき、補償タイムスタンプ値を取得するように設定される第2取得モジュールと、
前記補償タイムスタンプ値に基づき、ローカルシステムクロックのタイムスタンプ整数部分を補償するように設定される補償モジュールとを含む。
【００３５】
該実施例は異なるソースのクロックを利用することによって、第1時間カウンター及び第2時間カウンターをそれぞれ設定し、第1時間カウンターは例えばローカルシステムに対応するカウンターであってもよく、第2時間カウンターは例えばサービスクロックに対応するカウンターであってもよく、プリセット時刻のタイムスタンプ記録信号を利用して、第1時間カウンターから読み取った第1タイムスタンプ値及び第2時間カウンターから読み取った第2タイムスタンプ値をそれぞれ取得し、前記第1タイムスタンプ値と第2タイムスタンプ値に基づき、補償タイムスタンプ値を取得し、前記補償タイムスタンプ値に基づきローカルシステムクロックのタイムスタンプの整数部分を補償する。ローカルクロックとサービスクロックの2種のクロックを同時にカウントさせ、それぞれ2つのクロックドメインに作動されるタイマーを確立し、キー時刻のタイムスタンプ記録信号がそれぞれ2つの時間カウンターから読み取ったタイムスタンプ値によって、且つ比較及び平均することで、タイムスタンプの整数部分の補償を完成する。大幅にタイムスタンプの精度を向上させることができる。元の125M状況の±8nsの偏差と比べて、二重クロックサンプリングとダブルエッジ累加によって、現在の偏差は±3.6nsにあり、向上した精度は55％である。
【００３６】
前記第1時間カウンターと前記第2時間カウンターとはいずれも80ビットのカウンターである。
【００３７】
前記第1時間カウンターは、整秒部分の演算を完成する第1整秒カウンターと整ナノ秒部分の演算及び切り上げ操作を完成する第1整ナノ秒カウンターを含み、
前記第2時間カウンターは、整秒部分の演算を完成する第2整秒カウンター、整ナノ秒部分の演算及び切り上げ操作を完成する第2整ナノ秒カウンター、及びナノ秒分数部分の演算及び切り上げ操作を完成する第2ナノ秒分数カウンターを含む。
【００３８】
前記第1整秒カウンターは48ビットのカウンターであり、第1整ナノ秒カウンターは32ビットのカウンターであり、前記48ビットのカウンターの上16ビット値はCPUにより設定され、
前記第2整秒カウンターは32ビットのカウンターであり、前記第2整ナノ秒カウンターは32ビットカウンターであり、前記第2ナノ秒分数カウンターは16ビットのカウンターである。 
【００３９】
前記第1取得モジュールは、
前記プリセット時刻のタイムスタンプ記録信号に遇った際に、第1時間カウンターから読み取った第1整秒カウンターの第1値及び第1整ナノ秒カウンターの第2値を取得し、前記第1値と前記第2値で前記第1タイムスタンプ値を作成するように設定される第1取得サブモジュールと、
【００４０】
前記プリセット時刻のタイムスタンプ記録信号に遇った際に、第2時間カウンターから読み取った第2整秒カウンターの第3値、第2整ナノ秒カウンターの第4値及び第2ナノ秒分数カウンターの第5値を取得し、前記第3値、第4値及び第5値で前記第2タイムスタンプ値を作成するように設定される第2取得サブモジュールと、を含む。
【００４１】
前記第2取得モジュールは、計算サブモジュールを含み、
計算サブモジュールは、前記第1時間カウンターの下64ビット値と前記第2時間カウンターの上64ビット値を加算して平均値を取って、前記補償タイムスタンプ値を取得する、或いは
それぞれ第1時間カウンターと第2時間カウンターの整秒及び整ナノ秒の部分をそれぞれ加算して和を求め、整秒部分の33ビット値と整ナノ秒部分の33ビット値を取得し、次に、それぞれこの2部分のデータに対してそれぞれビットシフト演算し平均操作を行い、32ビット幅の整秒部分と32ビット幅の整ナノ秒部分を取得し、次にCPUにより整秒部分の上16ビットを設定して、前記補償タイムスタンプ値を取得するように設定される。
【００４２】
該装置の実施例は上記方法の実施例に応じて、上記方法実施例における全ての実現形態はいずれも該装置の実施例に適用し、同じ技術効果を果たすことができる。
【００４３】
以上説明したのは、本発明の好ましい実施形態だけであり、当業者にとって、本発明の前記原理を逸脱しない限り、若干の改善と修飾を行うこともでき、これらの改善と修飾も本発明の保護範囲と見なすべきである。
【産業上の利用可能性】
【００４４】
以上のように、本発明の実施例によるクロックのタイムスタンプ補償方法及び装置は以下の有益効果を有し、大幅にタイムスタンプの精度を向上させることができる。元の125M状況の±8nsの偏差と比べて、二重クロックサンプリングとダブルエッジ累加によって、現在の偏差は±3.6nsにあり、向上した精度は55％である。
【図１】
0006379230.tif 000002
【図２】
0006379230.tif 000003
【図３】
0006379230.tif 000004