(57)【要約】  マイクロコントローラは、パケットマッチング回路、ハードウェアタイマ回路、及びプロセッサを含む。パケットマッチング回路は、受信したパケットの内容をマイクロコントローラに一致させ、パケットが受信されたかどうかを識別するように構成される。ハードウェアタイマ回路は、同期パケットが一致したというパケットマッチング回路からの信号に基づいて、同期タイムスタンプを提供し、同期パケットの受信後にフォローアップパケットが一致したというパケットマッチング回路からの信号に基づいて、フォローアップタイムスタンプを提供するように構成される。プロセッサは、同期タイムスタンプ及びフォローアップタイムスタンプに基づいて、クロックベースを調整して、同期クロックベースを判定するように構成される。【選択図】  図１
2021527355.tif 000002
【特許請求の範囲】
【請求項１】
装置であって、
受信されたパケットの内容を前記装置に一致させ、パケットが受信されたかどうかを識別するように構成されたパケットマッチング回路と、
ハードウェアタイマ回路であって、
同期パケットが一致しているという前記パケットマッチング回路からの信号に基づいて、同期タイムスタンプを提供することと、
前記同期パケットの受信後にフォローアップパケットが一致しているという前記パケットマッチング回路からの信号に基づいて、フォローアップタイムスタンプを提供することと、を行うように構成された、ハードウェアタイマ回路と、
前記同期タイムスタンプ及び前記フォローアップタイムスタンプに基づいて、クロックベースを調整して、同期クロックベースを判定するように構成されたプロセッサと、を備える、装置。
【請求項２】
前記ハードウェアタイマ回路が、前記パケットマッチング回路とは別個である、請求項１に記載の装置。
【請求項３】
前記ハードウェアタイマ回路が、前記プロセッサを含むマイクロコントローラ上の１つ以上の汎用入力−出力ピンを介してアクセス可能である、請求項１又は２に記載の装置。
【請求項４】
集積回路デバイスが、ＰＨＹである、請求項１〜３のいずれかに記載の装置。
【請求項５】
前記ハードウェアタイマ回路が、前記プロセッサ上で動作するソフトウェアに利用可能なクロックを使用して、前記ＰＨＹのレベルで前記同期タイムスタンプ及び前記フォローアップタイムスタンプを作成するように構成されている、請求項４に記載の装置。
【請求項６】
前記装置が、入力ポート及びイベントタイマを更に含み、前記イベントタイマが、前記入力ポートを介した外部イベント信号の受信時に、クロックカウントを提供するように構成され、
前記プロセッサが、前記同期タイムスタンプ及び前記フォローアップタイムスタンプに基づいて、前記クロックベースを調整することによって作成された前記同期クロックベースに基づいて、前記外部イベント信号の前記クロックカウントを調整するように更に構成されている、請求項１〜５のいずれかに記載の装置。
【請求項７】
前記同期パケットが、送信者タイムスタンプを含むように構成されており、
前記フォローアップパケットが、調整タイムスタンプを含むように構成されており、
前記プロセッサが、前記調整タイムスタンプを前記送信者タイムスタンプに適用することに基づいて、前記クロックベースを調整して前記同期クロックベースを判定するように更に構成されている、請求項１〜６のいずれかに記載の装置。
【請求項８】
請求項１〜７に記載の装置のいずれかを備える、マイクロコントローラ。
タンプ。
【請求項９】
方法であって、
任意のパケットマッチング回路を用いて、受信されたパケットの内容を前記パケットマッチング回路に一致させ、パケットが受信されたかどうかを識別するステップと、
ハードウェアタイマ回路を用いて、
同期パケットが一致しているという前記パケットマッチング回路からの信号に基づいて、同期タイムスタンプを提供するステップと、
前記同期パケットの受信後にフォローアップパケットが一致しているという前記パケットマッチング回路からの信号に基づいて、フォローアップタイムスタンプを提供するステップと、
プロセッサを用いて、前記同期タイムスタンプ及び前記フォローアップタイムスタンプに基づいて、クロックベースを調整して、同期クロックベースを判定するステップと、を含む、方法。
【請求項１０】
前記プロセッサを含むマイクロコントローラ上の１つ以上の汎用入力−出力ピンを介して、前記ハードウェアタイマ回路にアクセスするステップを更に含む、請求項９に記載の方法。
【請求項１１】
前記ハードウェアタイマ回路が、前記パケットマッチング回路とは別個に動作される、請求項９又は１０に記載の方法。
【請求項１２】
前記集積回路デバイスが、ＰＨＹである、請求項９〜１１のいずれかに記載の方法。
【請求項１３】
前記ハードウェアタイマ回路を用いて、前記プロセッサ上で動作するソフトウェアに利用可能なクロックを使用して、前記同期タイムスタンプ及び前記フォローアップタイムスタンプを前記ＰＨＹのレベルで作成するステップを更に含む、請求項１２に記載の方法。
【請求項１４】
入力ポート及びイベントタイマを用いて、前記入力ポートを介して外部イベント信号を受信すると、クロックカウントを提供するステップと、
前記プロセッサを用いて、前記同期タイムスタンプ及び前記フォローアップタイムスタンプに基づいて、前記クロックベースを調整することによって作成された前記同期クロックベースに基づいて、前記外部イベント信号の前記クロックカウントを調整するステップと、を更に含む、請求項９〜１３のいずれかに記載の方法。
【請求項１５】
前記同期パケットが、送信者タイムスタンプを含み、
前記フォローアップパケットが、調整タイムスタンプを含み、
前記方法が、前記プロセッサを用いて、前記調整タイムスタンプを前記送信者タイムスタンプに適用することに基づいて、前記クロックベースを調整して前記同期クロックベースを判定することを更に含む、請求項９〜１４のいずれかに記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
優先権
本出願は、２０１８年６月１４日出願の米国特許仮出願第６２／６８４，８０６号に対する優先権を主張し、その出願の内容は、その全体が本明細書に組み込まれる。
【０００２】
本開示は、ネットワーク通信のための装置及び方法に関し、より具体的には、コストが最適化された環境及びパケットベースのネットワークにおけるＰＨＹレベルハードウェアタイムスタンプ及び時間同期の実行に関する。
【背景技術】
【０００３】
１０ＢＡＳＥ−Ｔ１Ｓ（１０ＳＰＥ）は、現在修正及び開発下にある提案されている規格である。１０ＳＰＥは、イーサネット・ローカル・エリア、アクセス、及びメトロポリタン・エリア・ネットワークを定義する。イーサネットは、選択された動作速度で指定され、共通の媒体アクセス制御（media access control、ＭＡＣ）仕様及び管理情報ベース（management information base、ＭＩＢ）を使用する。衝突検出付き搬送波感知多重アクセス（Carrier Sense Multiple Access/Collision Detection、ＣＳＭＡ／ＣＤ）ＭＡＣプロトコルは、共有媒体（半二重）動作、及び全二重動作を指定する。速度固有の媒体独立インターフェース（Media Independent Interface、ＭＩＩ）は、選択された物理層エンティティ（Physical Layer entity、ＰＨＹ）にアーキテクチャ及び任意選択的な実装インターフェースを提供する。ＰＨＹは、動作速度、伝送媒体、及びサポートされたリンク長に関して指定された変調を用いて、伝送のためのフレームをエンコードし、受信したフレームをデコードする。他の指定された能力としては、制御及び管理プロトコル、並びに選択されたツイストペアＰＨＹタイプにわたる電力の提供を含む。
【０００４】
１０ＳＰＥは、ＩＥＥＥ８０２．３への追加及びＩＥＥＥ８０２．３の適切な修正を指定して、単一の平衡化されたツイストペア銅ケーブル上に、１０Ｍｂ／ｓ  ＰＨＹ仕様及び操作のための管理パラメータ、並びに、電力の関連する任意選択的な提供を追加する。
【０００５】
ＩＥＥＥ８０２．１ＡＳ（ｇＰＴＰ）及びＩＥＥＥ１５８８（高精度時間プロトコル：Precision Time Protocol、ＰＴＰ）によって定義されるシステムなどの分散システムにおけるクロックの時間同期は、高精度動作を達成するために特殊なハードウェアの使用を必要とする。これらの動作は、正確なクロック及びタイムスタンプパケットを維持することを含み得る。現在のソリューションは、一度フレームがＭＡＣを通過すると、ＭＡＣレベルでパケットのタイムスタンプを実行する専用イーサネットＭＡＣユニットを有するマイクロコントローラユニット（microcontroller unit、ＭＣＵ）を提供する。
【発明の概要】
【０００６】
いくつかの実施形態では、装置は、パケットマッチング回路、ハードウェアタイマ回路、及びプロセッサを含む。パケットマッチング回路は、受信したパケットの内容を装置に一致させ、かつパケットが受信されたかどうかを識別するように構成される。ハードウェアタイマ回路は、同期パケットが一致したというパケットマッチング回路からの信号に基づいて、同期タイムスタンプを提供し、同期パケットの受信後にフォローアップパケットが一致したというパケットマッチング回路からの信号に基づいて、フォローアップタイムスタンプを提供するように構成される。プロセッサは、同期タイムスタンプ及びフォローアップタイムスタンプに基づいて、クロックベースを調整して同期クロックベースを判定するように構成される。
【０００７】
他の実施形態では、本方法は、パケットマッチング回路を用いて、受信したパケットの内容をマイクロコントローラに一致させることと、パケットが受信されたかどうかを識別することと、を含む。本方法は、ハードウェアタイマ回路を用いて、同期パケットが一致したというパケットマッチング回路からの信号に基づいて同期タイムスタンプを提供することと、同期パケットの受信後にフォローアップアップパケットが一致したというパケットマッチング回路からの信号に基づいて、フォローアップタイムスタンプを提供することと、を更に含んでもよい。本方法は、プロセッサを用いて、同期タイムスタンプ及びフォローアップタイムスタンプに基づいて、クロックベースを調整して同期クロックベースを判定することを更に含んでもよい。
【０００８】
更に他の実施形態では、マイクロコントローラは、パケットマッチング回路、ハードウェアタイマ回路、及びプロセッサを含む。パケットマッチング回路は、受信したパケットの内容をマイクロコントローラに一致させ、かつパケットが受信されたかどうかを識別するように構成される。ハードウェアタイマ回路は、同期パケットが一致したというパケットマッチング回路からの信号に基づいて、同期タイムスタンプを提供し、かつ同期パケットの受信後にフォローアップパケットが一致したというパケットマッチング回路からの信号に基づいて、フォローアップタイムスタンプを提供するように構成される。プロセッサは、同期タイムスタンプ及びフォローアップタイムスタンプに基づいて、クロックベースを調整して、同期クロックベースを判定するように構成される。
【図面の簡単な説明】
【０００９】
【図１】本開示の実施形態による、例示的な１０ＳＰＥネットワークの図である。
【図２】本開示の実施形態による、ネットワークコントローラにおけるＰＨＹ及びＭＣＵの動作のより詳細な図を示す。
【図３】本開示の実施形態による、同期イベントメッセージに適用されたマッチングパターンを示す。
【図４】本開示の実施形態による、タイミング及びタイムスタンプ動作のためのハードウェア支援回路の使用を示す。
【図５】本開示の実施形態による、マスターノードの観点からの例示的なノードセットアップのフローチャートを示す。
【図６】本開示の実施形態による、クライアントノードの観点からの例示的なノードセットアップのフローチャートを示す。
【発明を実施するための形態】
【００１０】
本開示の実施形態の発明者は、ノード当たりの最小コストでパケットベースのネットワークにおいて高精度の時間同期を提供する必要性が存在することを見出した。具体的には、１０ＳＰＥネットワークノード上で、ＰＨＹレベルハードウェアタイムスタンプ及び時間同期を実行するためにソリューションが必要とされる。タイムスタンプ及び時間同期は、ＩＥＥＥ１５８８又はＩＥＥＥ８０２．１ＡＳによる性能を実装することができる。更に、ＰＨＹレベルハードウェアのタイムスタンプ及び時間同期は、ＰＨＹを実装するためのダイサイズが制限され得るので、単一であるＰＨＹハードウェア上で実行することができる。ＰＨＹは、エンドポイントコントローラを実装するときにＰＨＹと協働するように選択され得る、ＭＣＵの範囲を制限し得る、強力な要件なしに実装され得る。
【００１１】
いくつかの実施形態では、ＰＨＹは、ＩＥＥＥ１５８８又はＩＥＥＥ８０２．１ＡＳによって必要とされる際、ＰＴＰイベントメッセージのハードウェアタイムスタンプを支持することが可能になる。このタイムスタンプイベントは、ＭＣＵなどの更なるコンポーネントに転送されてもよい。いくつかの実施形態では、ＭＣＵのタイマ／カウンタユニットの使用は、任意の専用ハードウェアを必要とせずに、必要なタスクの性能を提供し得る。更なる実施形態では、ソフトウェアアルゴリズムが、使用されてもよい。
【００１２】
前述のように、他のソリューションは、ＭＡＣユニット内のいずれかのタイムスタンプに対応する。いくつかの実施形態では、本発明は、ＰＨＹ及びＭＣＵが協働することを可能にする。いくつかの実施形態では、ＰＨＹは、ＰＴＰイベントタイムスタンプを実行するが、その後単にイベントをＭＣＵに転送するのみである。いくつかの実施形態では、ＭＣＵは、ローカルクロックのタイムスタンプ及び同期を測定することなどの時間的に重要なタスクを実行するために、既存のハードウェア（タイマ／カウンタユニットなど）を利用する。
【００１３】
様々な実施形態によれば、共通のＭＡＣユニットを有する広範囲のＭＣＵに対して、高精度の時間同期が提供される。共通のＭＡＣユニットは、衝突検出付き搬送波感知多重アクセス（ＣＳＭＡ／ＣＤ）ＭＡＣを含んでもよい。いくつかの実施形態では、ＰＨＹチップのコスト感受性タイムスタンプ特徴部が、提供されてもよい。いくつかの実施形態では、タイムスタンプ測定及びＰＴＰ時間同期のための専用ハードウェアを有さないＭＣＵを利用するために、ソフトウェアアルゴリズムが、提供され得る。
【００１４】
本開示の実施形態は、エンドポイントコントローラとして使用される一般的に利用可能なＭＣＵの使用を可能にする。例えば、専用のＩＥＥＥ１５８８ハードウェアを有するＭＣＵが、必要とされない場合がある。同時に、ＰＨＹに対する要件は、低いままであり得る。
【００１５】
いくつかの実施形態は、自動車及びサーバのバックプレーンアプリケーションなどの、１０ＳＰＥネットワークに特に適していてもよい。具体的には、１０ＳＰＥネットワークにおいて、いくつかの実施形態では、ネットワークノード当たりの最低コストで時間同期を実行する必要があり得、いくつかの実施形態では、完全なＩＥＥＥ１５８８サポートを伴わないコスト効率の高いＰＨＹの要件を含み得る。必要とされない又は含まれない場合があるいくつかの特徴部には、高精度クロック、コントローラ、タイムスタンプユニット、若しくはイベント発生器が挙げられる。
【００１６】
ＩＥＥＥ１５８８有効ハードウェアを有するＭＣＵは、一般的ではなく、比較的高価であり得る。更に、タイムスタンプは、ＰＨＹが送信機（ＴＸ）又は受信機（ＲＸ）経路に、変化するレイテンシを追加する場合、必要とされる精度で達成できないＭＡＣレベルである。このようなレイテンシは、１０ＳＰＥネットワークＰＨＹで生じる。ＰＨＹレベルのタイムスタンプが使用されるとき、このようなソリューションは、ＰＨＹへのタイムスタンプのためのクロックを実装することから、このクロックが外部から利用されることを可能にする方法において、困難な問題を引き起こす。このことは、過度に大きく、複雑なＰＨＹ設計をすぐにもたらすことになり、開発コスト及び生産コストを拡大させる。自動車ネットワークなどの環境は、そのようなソリューションを使用不可能とするノード当たりの最大コストを新たに要求する。
【００１７】
いくつかの実施形態では、装置は、パケットマッチング回路、ハードウェアタイマ回路、及びプロセッサを含む。パケットマッチング回路は、ＰＨＹによって、又はアナログ回路とデジタル回路との別の好適な組み合わせによって実装され得る。ハードウェアタイミング回路は、タイマ又はカウンタを含み得る。タイマ又はカウンタは、マイクロコントローラ内の周辺装置であってもよい。タイマ又はカウンタ周辺装置は、クロック同期を実行するように構成されてもよい。ハードウェアタイミング回路は、イベント又はコマンド時に、タイマ又は回路の値をレジスタなどの任意の好適な記憶装置に記憶してもよい。ハードウェアタイミング回路は、パケットマッチング回路のハードウェアレベルで実装されてもよい。ハードウェアタイミング回路は、部分的にパケットマッチング回路内に実装されてもよい。パケットマッチング回路は、受信したパケットの内容を装置に一致させ、かつパケットが受信されたかどうかを識別するように構成され得る。パケットは、同期パケット、続いてフォローアップパケットを含み得る。ハードウェアタイマ回路は、同期パケットが一致したというパケットマッチング回路からの信号に基づいて、同期タイムスタンプを提供し、かつ同期パケットの受信後にフォローアップパケットが一致したというパケットマッチング回路からの信号に基づいて、フォローアップタイムスタンプを提供するように構成されてもよい。フォローアップ及び同期パケットは、任意の好適なプロトコルに従って、実装されてもよい。プロセッサは、同期タイムスタンプ及びフォローアップタイムスタンプに基づいて、クロックベースを調整して、同期クロックベースを判定するように構成されてもよい。クロックベースの調整は、以下に更に記載されるように、ｃｌｏｃｋＭａｓｔｅｒＳｙｎｃＩｎｔｅｒｖａｌ、ｓｙｎｃＥｖｅｎｔＥｇｒｅｓｓＴｉｍｅｓｔａｍｐ、ｐｒｅｃｉｓｅＯｒｉｇｉｎＴｉｍｅｓｔａｍｐ、ｌｏｃａｌＴｉｃｋＰｅｒｉｏｄ、ｔr、ｔs、ｔd、ｓｙｎｃＥｖｅｎｔＩｎｇｒｅｓｓＴｉｍｅｓｔａｍｐ、ｓｙｎｃＲｅｃｅｉｐｔＬｏｃａｌＣｖ３２、ｓｙｎｃＲｅｃｅｉｐｔＬｏｃａｌＴｉｍｅ、ｒａｔｅＲａｔｉｏ、及びｆｏｌｌｏｗＵｐＣｏｒｒｅｃｔｉｏｎＦｉｅｌｄに更に基づいてもよい。
【００１８】
上記の実施形態のいずれかと組み合わせて、ハードウェアタイマ回路は、パケットマッチング回路とは別個であってもよい。上記の実施形態のいずれかと組み合わせて、ハードウェアタイマ回路は、プロセッサを含むマイクロコントローラ上の１つ以上の汎用入力−出力ピンを介してアクセス可能である。上記の実施形態のいずれかと組み合わせて、ハードウェアタイマ回路は、プロセッサ上で動作しているソフトウェアに利用可能なクロックを使用して、ＰＨＹのレベルで同期タイムスタンプ及びフォローアップタイムスタンプを作成するように構成されてもよい。上記の実施形態のいずれかと組み合わせて、装置は、入力ポート及びイベントタイマを更に含み、イベントタイマは、入力ポートを通じて外部イベント信号の受信時にクロックカウントを提供するように構成される。プロセッサは、同期タイムスタンプ及びフォローアップタイムスタンプに基づいて、クロックベースを調整することによって作成された同期クロックベースに基づいて、外部イベント信号のクロックカウントを調整するように更に構成されてもよい。上記の実施形態のいずれかと組み合わせて、同期パケットは、送信側タイムスタンプを含むように構成され、フォローアップパケットは、調整タイムスタンプを含むように構成され、プロセッサは、調整タイムスタンプを送信側タイムスタンプに適用することに基づいて、クロックベースを調整して、同期クロックベースを判定するように更に構成されてもよい。上記実施形態のいずれかと組み合わせて、装置は、マイクロコントローラ内に含まれてもよい。
【００１９】
図１は、本開示の実施形態による、例示的な１０ＳＰＥネットワーク１００の図である。ネットワーク１００は、任意の好適な数及び種類のノードを含み得る。例えば、ネットワーク１００は、ノード１０２、１０４Ａ、１０４Ｂ、１０４Ｃを含み得る。これらのノードは、ネットワーク又はバス１２０において互いに通信するように構成され得る。ネットワーク又はバス１２０は、１０ＳＰＥ仕様又はその変形に従ってなど、任意の好適な様式で実装されてもよい。
【００２０】
ノード１０２は、マスターノードであり得る。ノード１０２は、ネットワーク内の他のノードを代表して、ネットワークアロケーション、割り当て、又は他の管理タスクを行うことによって、マスターノードとして機能し得る。
【００２１】
ノード１０２、１０４Ａ、１０４Ｂ、１０４Ｃは各々、ネットワークコントローラ１０６で実装され得る。ネットワークコントローラ１０６は、ＭＣＵ１１８及びＰＨＹ回路１０８を含み得る。ＭＣＵ１１８は、任意の好適なマイクロコントローラ、プロセッサ、又は他のコンピューティングデバイスによって実装されてもよい。ＰＨＹ回路１０８は、デジタル又はアナログ回路、特定用途向け集積回路、フィールドプログラマブルゲートアレイ、又は他の好適な回路の任意の好適な組み合わせによって実装されてもよい。ＭＣＵ１１８は、エンドユーザアプリケーション１１０などの他のソフトウェア又はノードの要素との通信を処理するように構成されてもよい。ＰＨＹ１０８は、ネットワーク又はバス１２０との物理的な相互作用を処理するように構成されてもよい。
【００２２】
ノード１０２、１０４Ａ、１０４Ｂ、１０４Ｃは各々、１つ以上のエンドユーザアプリケーション１１０、プロセッサ１１４、及びメモリ１１６で実装され得る。エンドユーザアプリケーション１１０、及びネットワークドライバ又はスタックは、ソフトウェア、ライブラリ、機能、スクリプト、アプリケーション、コード、又はプロセッサ１１４による実行のための他の命令を含み得る。命令は、それぞれのメモリ１１６上に記憶され得る。命令は、プロセッサ１１４によって実行されるとき、ユーザアプリケーションを互いに通信させることができる。そのような通信は、ネットワーク１００、特に、ネットワークコントローラ１０６によって実行されてもよい。メモリ１１６は、長期記憶又は短期記憶に関わらず、任意の好適な実装の１つ以上のメモリ要素によって実装され得る。プロセッサ１１４は、任意の好適なプロセッサ、コア、又はマイクロコントローラのうちの１つ以上によって実装され得る。
【００２３】
ノード１０２、１０４Ａ、１０４Ｂ、１０４Ｃは、コンピュータ、ラップトップ、サーバ、仮想マシン、モバイルデバイス、センサ、又はアクチュエータなどの任意の好適な電子デバイスを実装し得る。ノード１０２、１０４Ａ、１０４Ｂ、１０４Ｃは、イーサネット又はコントローラエリアネットワーク（controller area network、ＣＡＮ）などの任意の好適なネットワーク上に任意の好適な電子デバイスを含んでもよい。ノード１０２、１０４Ａ、１０４Ｂ、１０４Ｃは各々、エンドユーザアプリケーション１１０の異なる実装を含み得る。エンドユーザアプリケーション１１０は、エンドユーザアプリケーション１１０の他のもの又はノード１０２、１０４Ａ、１０４Ｂ、１０４Ｃの他のものとの通信を必要とし得る。そのような通信は、例えば、ネットワーク又はバス１２０を介して１０ＳＰＥを使用して実行され得る。
【００２４】
特定の数のノードが図１に示されているが、ネットワーク１００は、１０ＳＰＥ有効ノードなどのネットワークノードの任意の好適な数及び組み合わせを含み得る。
【００２５】
ネットワーク１００などの１０ＳＰＥネットワークは、マスターからクライアント、すなわち、ノード１０２からノード１０４へのクロック分配方向を有してもよい。加えて、システム内の全てのＰＴＰポートによって別様に実行され得る最良のマスタークロックアルゴリズム（best master clock algorithm、ＢＭＣＡ）は、ネットワーク１００の全てのポートに適用可能ではない可能性がある。例えば、ＢＭＣＡは、ノード１０２によってのみ動作させてもよい。
【００２６】
図２は、本開示の実施形態による、ネットワークコントローラにおけるＰＨＹ及びＭＣＵの動作のより詳細な図を示す。ＰＨＹ１０８及びＭＣＵ１１８は、互いに通信するように構成されてもよい。ＰＨＹ１０８は、ＭＣＵ１１８のポートに接続されてもよい。ＰＨＹ１０８は、媒体独立インターフェース（media independent interface、ＭＩＩ）、低減されたＭＩＩ（reduced MII、ＲＭＩＩ）、又はシリアル周辺インターフェース（serial peripheral interface、ＳＰＩ）などの、ＭＣＵ１１８の任意の好適なポートに接続することができる。ＰＨＹ１０８は、そのようなポートを介してＭＣＵ１１８から命令又はデータを受信することができる。ＰＨＹ１０８は、ＭＣＵ１１８に情報を送信するタイミングポートを含んでもよい。このようなタイミングポートは、１つ以上の汎用入力／出力（general-purpose input/output、ＧＰＩＯ）ピンで実装されてもよい。一実施形態では、これらのピンは、ＰＨＹ１０８からＭＣＵ１１８にそのようなイベントを送信するためのタイミング又はタイムスタンプイベントピンとして使用されるように構成されてもよい。ＰＨＹ１０８は、ネットワーク１２０の物理的媒体とインターフェースするように構成されてもよい。
【００２７】
ＭＣＵ１１８は、ＰＨＹ１０８を初期化し、構成するように構成され得る。ＭＣＵ１１８は、ＰＨＹ１０８内のタイムスタンプ特徴部を有効にし、ＰＨＹ１０８内の１つ以上のパケット認識パターンを構成するように構成され得る。いくつかの実施形態によれば、ＰＨＹ１０８は、識別されたフレームパターンについて、ネットワーク１２０上の進入又は退出オクテットストリームをスキャンするように構成されてもよい。このようなフレームパターンは、例えば、オフセット、マスク、及び値を含んでもよい。このようなフレームパターンの一例は、例えば、フレームのタイプとヘッダの最初のバイトとを一致させることであってもよい。マスクは、パターンマッチングで考慮されるべきではない、又は別様に無関係であるフレームのビットをフィルタリングし得る。パターンは、進入、退出、又は進入／退出のオクテットデータストリームのためにスキャンされてもよい。いくつかの実施形態によれば、パターンが一致するとき、ＰＨＹ１０８は、イベント信号ＭＣＵ１１８を発生させるように構成されてもよい。イベント信号は、タイミングポートの割り当てられたＧＰＩＯピンで発生させてもよい。一実施形態では、開始フレーム区切り（start frame delimiter、ＳＦＤ）の認識又は受信と生成されたイベント信号との間の時間は、定数値であることが要求され得る。複数のパターンは、ＰＨＹ１０８によって評価されてもよい。ＰＨＹ１０８は、異なるＧＰＩＯピン上のイベントを発行するように、又は、一致した特定のパターンを識別するために、ＧＰＩＯピン上のコードを用いて、イベントを発行するように構成されてもよい。異なるＧＰＩＯピンは、異なるパターンを一致させるために使用されてもよい。更に、異なるＧＰＩＯピンが、異なる方向に対して使用されてもよい。例えば、実施形態では、ＧＰＩＯピン又はピンは、進入パターンのみに一致するように構成されてもよく、別のＧＰＩＯピン又はピンは、退出パターンのみに一致するように構成されてもよい。そのようなイベントにおいて、退出の一致及び進入の一致は、互いに対して非同期的に発生し得、進入及び退出マッチングのための別個のイベントラインを含めることにより、認識されたイベントを適切なメッセージに割り当てる機会をＭＣＵ１１８に提供する。各々が、異なる可能性のある一致を表現する異なるＧＰＩＯピンは、論理的に共に論理和がとられてもよい。このため、ＰＨＹ１０８がいくつかの可能なパターンのうちの１つと一致する場合、単一の入力を、ＭＣＵ１１８で発生させてもよい。
【００２８】
ＭＣＵ１１８は、ノードの他の要素に時間同期イベントを生成するように構成され得る。更に、ＭＣＵ１１８は、測定されるべきノードの他の要素から外部イベントを受信するように構成されてもよい。これらは、ＰＨＹ１０８によって測定され得る。
【００２９】
図３は、本開示の実施形態による、ＩＥＥＥ８０２．１ＡＳ  ＰＴＰ  Ｓｙｎｃ  イベントメッセージに適用されたマッチングパターンを示す。図３に示されるのは、第１のノード（ノード１０２のポートなど）のマスターポート３０２及びノード１０４のポートなどのクライアントノード３０４の動作である。図３はまた、ノード１０２によって生成され、ノード１０４に送信され得る様々なノード間の通信の例示的なフレーム３０６を示す。フレーム３０６は、ＳＦＤ前フィールド、宛先及びソースアドレスフィールド、任意選択のタグフィールド、どのプロトコルがフレーム内に封入されているかを示すためのＥｔｈｅｒＴｙｐｅフィールド、ＰＴＰヘッダフィールド、ペイロード、並びにフレームチェックシーケンス（frame check sequence、ＦＣＳ）フィールドを含んでもよい。フレーム３０６は、例えば、標準的なイーサネットフレームを実装することができる。ペイロードは、任意の好適なデータを移送することができる。例えば、ペイロードは、ＩＥＥＥ８０２．１ＡＳに従って、ｇＰＴＰイベントメッセージを移送することができる。他のフレームフォーマット及びペイロードが、使用されてもよい。
【００３０】
示されるのは、ポート３０２から送信され、ポート３０４で受信される例示的なデータである。ポート３０２は、マスターポートであってもよく、ポート３０４は、スレーブポートであってもよい。同期パケットが送信され、その後フォローアップパケットが送信される、２ステップ動作が示される。このため、同期パケットは、ポート３０２からの時間ｔsで送信され、時間ｔrにおいてポート３０４で受信されてもよい。その後、フォローアップパケットが、送信され得る。フォローアップパケットは、任意の好適なタイミング情報を含んでもよい。フォローアップパケットの内容は、原点グランドマスター時間を転送するために使用されてもよく、これは、同期パケットが、グランドマスターポート（メッセージをポート３０２に送信するポート）を発った瞬間、並びに伝送ライン上の滞留時間及び各ホップの時間（グランドマスターと宛先ノードとの間の全てのネットワークブリッジにおける）を含み得る。図３は、マスターノード及びポートが、グランドマスターノード及びポートと同じであってもよい、単純化されたネットワークを示す。そのような場合、マスターノードは、フォローアップパケット内でｔsのみを通信し、一方、他の全ての値は、使用されない。しかしながら、マスターノード及びポートが、グランドマスター時間自体のソースではない場合、マスターノードは、時間認識ブリッジに接続され得る。同期パケットがブリッジを横断している間、滞留時間は、コンピュータであってもよい。フォローアップパケットが送信されるとき、この滞留は、フォローアップパケット内に含まれる補正フィールド内に追加されてもよい。マスターノードがまた別のネットワーク上のスレーブノードでもあり、その結果、マスターノードは、この他のネットワークからのグランドマスター時間にそれ自体の時間を同期させることもまた可能である。次いで、マスターノードは、ＰＴＰマスターとして動作し、同期時間を１０ＳＰＥネットワークに転送することができる。フォローアップパケットは、ｐｒｅｃｉｓｅＯｒｉｇｉｎＴｉｍｅＳｔａｍｐ、補正フィールドなどのフィールド、及びＩＥＥＥ８０２．１ＡＳによる速度比を含んでもよい。補正フィールドは、ネットワークスイッチ／ブリッジを介して任意の滞留時間（又は伝搬時間）を含有する。（ノード１０２の）ポート３０２は、１秒当たり８回などの、固定された速度でＰＴＰ同期メッセージを発行することができる。これらの同期メッセージは、（様々なノード１０４の）全ての接続されたポート３０４に送信されてもよい。
【００３１】
ＰＴＰに対する他のソリューションでは、伝搬遅延測定が実行され得、隣接するポート間の伝搬遅延を測定する。安定した伝搬遅延は、時間同期に影響を与えない可能性があるが、ノード１０４のクロックにおける位相整合に影響を及ぼし得る。例えば、ポート１０２とポート１０４との間の伝搬遅延をより正確にすることにより、位相整合をより正確にすることができる。安定した伝搬遅延は、伝搬遅延が、ジッタ又はランダムな変化を含むことなく、ポート１０２とポート１０４との間の物理的媒体上で一定である実装を含んでもよい。一実施形態では、伝搬遅延測定は、送信機方向に関する定数値で置き換えられてもよい。このため、伝搬遅延測定は、本開示の実施形態では、１０ＳＰＥネットワークで無効化され得る。
【００３２】
一実施形態では、例示的なパターンは、少なくともＥｔｈｅｒＴｙｐｅ及び後続の第１のペイロードバイトにおけるマッチングを必要とし得る。そのような後続の第１のペイロードバイトは、ｇＰＴＰヘッダ内部の「ｍｔ＿ｔｓ」フィールドであってもよい。ＩＥＥＥ１５８８は、更なるメッセージ形式を可能にする。ＭＣＵ１１８は、そのようなメッセージフォーマットを待つための任意の好適なパターンマッチングを適用するように構成されてもよい。メッセージフォーマットに応じて、パターンは、比較的大きくてもよく、又は異なるパターンが、並列に探索されてもよい。任意の好適なパターンマスク及び任意のサイズの値フィールドが、使用され得る。全てのＰＴＰイベントのパターンを有すること、又は単一の特定のＰＴＰイベントのみに一致するようにパターンを変更することが可能である。単純なアプリケーションでは、ＰＴＰ同期のみが一致し得る。より複雑なアプリケーションの場合、他のＰＴＰイベントは、Ｐｄｅｌａｙ（ＩＥＥＥ８０２．１ＡＳの各２つの隣接するノード間で頻繁に実行される測定）など、測定及び一致することが要求され得る。このため、ＰｄｅｌａｙＲｅｑ及びＰｄｅｌａｙＲｅｓｐイベントとして既知の、要求又は応答における遅延は、タイムスタンプ及び一致することができる。いくつかの実施形態では、及びノード１０２などのマスターコントローラの場合、ＰＨＹ１０８からのＧＰＩＯ信号と一致する時、時間ｔsに、ｔdの一定の遅延を加えて発生し得る。いくつかの実施形態では、及びノード１０４などのクライアントコントローラの場合、ＰＨＹ１０８からのＧＰＩＯ信号と一致する時、時間ｔrにｔdの一定の遅延を加えて発生することになる。いくつかの実施形態では、ＰＴＰイベント伝送の場合、ＰＨＹ１０８からのＧＰＩＯ信号は、時間ｔsに、ｔdの一定の遅延を加えて生じることになる。いくつかの実施形態では、ＰＴＰイベント受信の場合、ＰＨＹ１０８からのＧＰＩＯ信号は、時間ｔrに、ｔdの一定の遅延を加えて生じることになる。ＰｄｅｌａｙＲｅｑ及びＰｄｅｌａｙＲｅｓｐイベント対について、１対の退出要求及び進入応答、又は１対の進入要求及び退出応答が、ＰＨＹ１０８からの同じＧＰＩＯ信号を共有することができる特別な場合がある。そのような場合、ＰｄｅｌａｙＲｅｑの一致は、信号を高く駆動し、一方で、ＰｄｅｌａｙＲｅｓｐの一致は、信号を順に除去することになる。いずれの場合にも、ＰＨＹ１０８からのＧＰＩＯ信号は、ＰＨＹ１０８内部のロジック内のパケット認識を完了するために、そのような時間で生じ得る。任意のマッチングイベントは、フレームＳＦＤであり得るため、所望のタイムスタンプ点に関して、遅延させることができるが、このシフトはｔdの定数値でなければならない。イベントの消費者は、この遅延値を知ることにより、測定されたイベントタイムスタンプを補正することができる。
【００３３】
図４は、本開示の実施形態による、タイミング及びタイムスタンプ動作のためのハードウェア支援回路の使用を示す。
【００３４】
ＭＣＵ４０２は、所与のノード内の要素の階層を含み得る。ノードは、アプリケーション層４１０においてソフトウェアなどのＭＣＵ４０２上で動作する要素を含み得る。ソフトウェアは、ＩＥＥＥ１５８８のためのソフトウェアを含んでもよい。アプリケーション層４１０は、オペレーティングシステム４０８及びＭＡＣ４０６を介してＰＨＹ４１４にインターフェースすることができる。ＰＨＹ４１４は、ネットワーク４１６を介して他のノードと通信することができる。
【００３５】
一実施形態では、ノードは、ハードウェア支援回路４１２を含み得る。ハードウェア支援回路４１２は、タイムスタンプが実行され得る場所を識別してもよく、そのようなタイムスタンプは、例えば、アプリケーション層４１０上で実行されるソフトウェアに転送されてもよい。更なる実施形態では、ハードウェア支援回路４１２は、ハードウェアでＰＨＹ４１４によって実装されてもよい。
【００３６】
他のネットワークソリューションとは対照的に、タイムスタンプは、一度生成されると、ＰＨＹ４１４などのＰＨＹによって処理されなくてもよい。代わりに、ＰＨＹ４１４は、タイムスタンプをＭＣＵ４０２に転送してもよい。ＭＣＵ４０２は、例えば、アプリケーション層４１０上のソフトウェアによりタイムスタンプ測定及びクロック同期を実行することができる。したがって、ＭＣＵ４０２は、例えば、ＩＥＥＥ１５８８動作を実行するための専用ハードウェアを必要としない場合がある。ＭＣＵ４０２は、汎用タイマ又はカウンタユニット若しくは回路を含み得る。このような回路は、外部イベントの時間及び周波数を測定するように構成されてもよい。回路は、タイムスタンプ測定を実行するために使用され得る。その結果、タイムスタンプ情報のソフトウェア消費者は、クロック同期を実行することができる。
【００３７】
ハードウェア支援回路４１２は、任意の好適な様式で実装され得る。ハードウェア支援回路４１２は、ＭＣＵ４０２のタイマ又はカウンタ周辺装置を含み得る。ハードウェア支援回路４１２は、ＰＨＹ４１４のタイムポートを含み得る。タイマ又はカウンタは、例えば、フリーランニング３２ビットカウンタによって実装されてもよい。このようなカウンタは、２32に到達するとオーバーフローし、０に戻ることができる。しかしながら、このようなカウンタは、別様に増分以外の値をリセット又は修正しない場合がある。代わりに、ハードウェア支援回路４１２は、イベントをマークするために、特定の時点でかかるカウンタの捕捉を実行してもよい。捕捉は、例えば、ＰＨＹ４１４からなどの、外部信号からの負、正、又は負若しくは正のエッジによって画定されてもよい。次いで、捕捉された３２ビット値は、レジスタ又はメモリアクセスを介してＭＣＵ４０２又はコントローラによってアクセス可能となる。他の実施例では、タイマ又はカウンタは、オンデマンドでリセットすることができる、又はオンデマンドで開始若しくは停止することができるという点で構成可能な３２ビットカウンタを含んでもよい。かかるオンデマンド挙動は、例えば、ＰＨＹ４１４又はＭＣＵ４０２からなどの、外部信号から負、正、又は負若しくは正のエッジを使用して実行されてもよい。ＭＣＵ４０２上で実行されているソフトウェアがカウンタからタイムスタンプを必要とする場合、ソフトウェアは、現在のタイマ値を読み取って、最後のイベントから多くのクロック刻みを回収することができる。更に別の実施例では、タイマは、ＭＣＵ４０２又は別のソースからの外部クロックを使用してもよく、ＰＨＹ４１４からのイベントによってゲートされてもよい。この実施例では、カウンタは、ＰＨＹ４１４からの信号が有効にされている間にのみクロック刻みをカウントすることができる。ＭＣＵ４０２のソフトウェアは、カウンタを読み取り、それをリセットしてもよい。任意のこのような場合では、ＭＣＵ４０２上の入力捕捉回路は、ＰＨＹ４１４上のＧＰＩＯピンからの外部イベントの受信に基づいて、タイマからカウンタ値を捕捉するように構成されてもよい。立ち上がりエッジ又は立ち下がりエッジは、捕捉をトリガするために使用されてもよい。一実施形態では、タイマは、そのような外部イベントでリセットするように構成され得る。クロック刻み内の捕捉されたタイマ値を使用して、時間同期を実行するために必要なタイムスタンプ点を判定することができる。ＰＨＹ４１４は、ハードウェア支援４１２でタイムスタンプを実行するように構成されてもよいが、所与のパターンが一致する前には行わない。一実施形態では、タイムスタンプ点は、フレームの開始（start of a frame、ＳＯＦ）時であってもよい。したがって、ＰＨＹ４１４からのタイムスタンプイベントが到着するとき、スタンプされる時間は、既に経過している。このため、所望のタイムスタンプ点（ＳＯＦで）と実際のＰＨＹタイムスタンプ点（パターンが一致した後）との間の時間距離は、ｔdとして与えられる定数値として計算又は推定され得る。この値を使用して、元の所望のタイムスタンプ点は、それが受信された後に報告された場合であっても、��フトウェアにおいて再構成することができる。
【００３８】
タイマ又はカウンタからの測定は、クロックサイクル又はクロック刻みの数であってもよい。クロックサイクル又はクロック刻み持続時間は、順に、選択されたローカルクロックソースに依存する。クロックサイクル又はクロック刻みの数は、ＰＨＹ４１４からの２つの外部イベントの間に記録された数であってもよい。カウンタ又はタイマのサイズは、例えば、オーバーフローが発生する前に少なくとも４秒間保持するのに十分であり得る。他の実施例では、カウンタ又はタイマのサイズは、特定のアプリケーションに応じて、４秒以上又は未満を保持するようにサイズ決定することができる。タイミング関数ごとに、複数のタイマ又はカウンタが使用されてもよい。
【００３９】
タイマ又はカウンタの範囲を拡張するために、オーバーフロー割り込みを使用することができる。そのために、タイマ又はカウンタのオーバーフロー時に、割り込みが生成されてもよく、割り込みは、ソフトウェアカウンタを増分させることができる。ソフトウェアカウンタは、全体の組み合わせたカウンタの上位ビットであってもよく、一方で、下位ビットは、ハードウェアタイマ又はカウンタであってもよい。続いて、カウンタから値を読み取るとき、ハードウェア及びソフトウェア内の下位ビット及び上位ビット内、又は下位ビット及び上位ビットからの読み取り値、若しくはリセット値を同期させるために、付加的な試みが必要とされる場合もある。
【００４０】
ハードウェア支援回路４１２は、ＰＨＹ４１４内又はＰＨＹ４１４の外側に部分的に実装されてもよい。ＰＨＹ４１４内にクロックを有する、ＰＨＹ４１４内のタイムスタンプを使用する他のソリューションは、ＰＨＹ４１４の外部から同じクロックを使用することができない可能性がある。代わりに、ＭＣＵ４０２のタイマカウンタ周辺装置を部分的に使用、又は使用せず実装されたハードウェア補助回路４１２は、マイクロコントローラシステム全体に利用可能なクロックを利用することができる。このため、ハードウェア支援回路４１２によって記憶されたカウンタの値は、クロックの更なる使用のために、かかるシステムワイドクロックを調整するように使用可能であり得る。
【００４１】
図５は、本開示の実施形態による、マスターノードの観点からの例示的なノードセットアップのフローチャート５００を示す。セットアップは、２段階モードで動作する任意の好適な時間同期方法に従って、ＰＴＰノードなどの任意の好適なノードのためのものであり得る。それぞれのハードウェア支援回路４１２内のノードのタイマ又はカウンタは、ローカルクロックソースにアクセスするように構成されてもよい。タイマ又はカウンタは、ローカルクロックソースから動作する、フリーランニング３２ビットカウンタであってもよい。ローカルクロックソースは、例えば、＋／−１００百万分率（ｐｐｍ）の周波数精度を有する最小２５ＭＨｚであってもよい。ローカルクロックの周期及び所与のクロック刻みの時間は、ｌｏｃａｌＴｉｃｋＰｅｒｉｏｄとして与えられてもよく、サブナノ秒精度を有するナノ秒で表現されてもよい。これは、ローカルクロックソースの周波数から導出することができる。
【００４２】
５０５において、ＰＴＰ同期フレームは、１ヘルツなどのｃｌｏｃｋＭａｓｔｅｒＳｙｎｃＩｎｔｅｒｖａｌによって与えられた、固定された構成可能な速度で開始することができる。自動車アプリケーションでは、速度は、６又は８ヘルツであってもよい。起動中、３０ヘルツなどのより高い速度を使用して、同期を加速させることができる。フレームは、送信バス上で他のノードに送信されてもよい。ＰＴＰ同期フレームは、ｃｌｏｃｋＭａｓｔｅｒＳｙｎｃＩｎｔｅｒｖａｌによって与えられた、固定された構成可能な速度で送信されてもよい。５１０において、送信された各フレーム上で、ノードのＰＨＹは、同期フレームが送信されている間に認識されたノードのＭＣＵに、イベントを信号送信することができる。各同期フレームが送信されると、ノードのＰＨＹは、ハードウェア支援回路の一部として、ＰＨＹによって生成された外部イベントを有する信号送信をし得る。イベントは、５１５において、ハードウェア支援回路による正確なタイムスタンプを記録するために使用されてもよい。タイムスタンプは、カウンタ値の形態であってもよい。タイムスタンプは、フレームがＰＨＹを出る時間を示すことができる。現在のカウンタ値は、後でＭＣＵによって使用されて、ＰＨＹイベントの正確なマスター時間を判定することができる、ｓｙｎｃＥｖｅｎｔＥｇｒｅｓｓＴｉｍｅｓｔａｍｐとして記録されてもよい。
【００４３】
５１０及び５１５と並行して、ＭＣＵは、送信が完了するまで、送信されてもよい。エラーが発生する場合、それが報告され得、同期メッセージを生成するプロセスが、繰り返され得る。一度送信が完了すると、５２０が、実行されてもよい。
【００４４】
５２０において、ＰＴＰ同期フレームに対応するＰＴＰフォローアップフレームが、送信されてもよい。フォローアップフレームは、捕捉されたタイムスタンプに基づいて、マスター（又は、適切な場合、グランドマスター）時間で送信されてもよい。ＭＣＵ内で実行されるソフトウェアは、以前に捕捉されたタイマカウンタ値ｓｙｎｃＥｖｅｎｔＥｇｒｅｓｓＴｉｍｅｓｔａｍｐを読み取り、使用することができる。この値は、エポック（０１／０１／１９７０以来の時間として与えられる）以来、ナノ秒単位で、ＩＥＥＥ８０２．１ＡＳに準拠したタイムスタンプに変換することができる。このような変換の前に、値は、単に任意の他のゼロ時間に対する絶対量のクロック刻みであってもよい。フォローアップフレームの時間は、使用されなくてもよい。ｐｒｅｃｉｓｅＯｒｉｇｉｎＴｉｍｅｓｔａｍｐ値は、同期フレームのｓｙｎｃＥｖｅｎｔＥｇｒｅｓｓＴｉｍｅｓｔａｍｐに類似し得る、ＰＴＰフォローアップフレーム内に含まれてもよい。ｓｙｎｃＥｖｅｎｔＥｇｒｅｓｓＴｉｍｅｓｔａｍｐは、ＩＥＥＥ８０２．１ＡＳタイムスタンプに変換されてもよく、これは次いで、フォローアップフレームのためにｐｒｅｃｉｓｅＯｒｉｇｉｎＴｉｍｅｓｔａｍｐとして使用される。ｓｙｎｃＥｖｅｎｔＥｇｒｅｓｓＴｉｍｅｓｔａｍｐ  は、それをｌｏｃａｌＴｉｃｋＰｅｒｉｏｄ定数と乗算することによって、それをナノ秒に変換することによりｐｒｅｃｉｓｅＯｒｉｇｉｎＴｉｍｅｓｔａｍｐに変換することができ、ｔdによってタイムスタンプ点オフセットシフトを適用することによって補正されてもよい。タイムスタンプ点オフセットは、タイムスタンプ点を補正するために、図３の要素３０６に示されるように、時間ｔdによるオフセットシフトであってもよい。ＩＥＥＥ８０２．１ＡＳによって必要とされるタイムスタンプ点は、図４の４０４において示され得る。ＰＨＹは、パケットが受信機内で認識された後にのみ、タイムスタンプ遅延され、一致する。これは、ペイロードの第１のバイト中に起こり得る。このオフセットシフトは、使用される固定ビットレートに応じて固定され得るため、測定されたタイムスタンプは、定数値ｔdを減算して、必要なタイムスタンプ点に修正することによって補正されてもよい。この結果はまた、ゼロオフセットシフトに従って調整されてもよく、これは、時間を、最後のシステムが開始してからの時間から、エポック以来の時間まで並進し得る。結果は、ＰＴＰタイムスタンプであってもよい。ＰＴＰタイムスタンプは、（例えば、４８ビットの）秒カウンタ、及び（例えば、３０ビットの）ナノ秒カウンタを含んでもよい。フォローアップフレーム内の全ての他の値は、一定であってもよい。
【００４５】
フローチャート５００の実行中、ＭＣＵは、タイマのオーバーフローを処理すること、時間の上半分（＞３２ビット）のトラックを保つこと、及びタイマ割り込み要求待ち行列の内部のカウンタをオーバーフロー上に増分することを含む、ＩＥＥＥ１５８８の目的のためのタイミング及びクロッキングを管理してもよい。
【００４６】
図６は、本開示の実施形態による、クライアントノードの観点からの例示的なノードセットアップのフローチャート６００を示す。セットアップは、ＩＥＥＥ８０２．１ＡＳ又はＩＥＥＥ１５８８によるＰＴＰノード、若しくは１段階又は２段階モードで動作する他の時間同期方法に従って、ＰＴＰノードなどの任意の好適なノードのためのものであり得る。それぞれのハードウェア支援回路４１２内のノードのタイマ又はカウンタは、ローカルクロックソースにアクセスするように構成されてもよい。タイマ又はカウンタは、ローカルクロックソースから動作する、フリーランニング３２ビットカウンタであってもよい。ローカルクロックソースは、例えば、＋／−１００百万分率（ｐｐｍ）の周波数精度を有する最小２５ＭＨｚであってもよい。ローカルクロックの周期及びそのための所与のクリックの時間は、ｌｏｃａｌＴｉｃｋＰｅｒｉｏｄとして与えられてもよく、サブナノ秒精度を有するナノ秒で表現されてもよい。これは、ローカルクロックソースの周波数から導出することができる。
【００４７】
６０５において、ＰＴＰ同期イベントは、クライアントノードのＰＨＹで受信することができる。６１０において、ＰＨＹは、ハードウェア補助回路の１つの部分として、ＭＣＵに信号を送信してもよい。６１５において、タイムスタンプ値は、ＭＣＵ内のタイマから捕捉され得、ハードウェア補助回路を完成させることができる。並行して、ＰＨＹは、同期フレームの送信を開始することができ、ＭＣＵは、６２０でメッセージを受信する。
【００４８】
６２５において、タイムスタンプは、ＭＣＵによって読み取られてもよい。タイムスタンプは、（３２ビットカウンタ値が使用され、更なる処理を必要とし、更に以下の他のＣｖ３２値によって操作され得ることを示すために）ｓｙｎｃＥｖｅｎｔＩｎｇｒｅｓｓＴｉｍｅｓｔａｍｐ又はｓｙｎｃＲｅｃｅｉｐｔＬｏｃａｌＣｖ３２と称されてもよく、上記で使用される退出タイムスタンプと類似し得る。この値から、ｓｙｎｃＲｅｃｅｉｐｔＬｏｃａｌＴｉｍｅは、ナノ秒に正規化した後に導出されてもよく（ｌｏｃａｌＴｉｃｋＰｅｒｉｏｄにより乗算される）、ｔdによってゼロオフセットシフト及びタイムスタンプ点オフセットシフトを適用して、タイムスタンプ点を補正することができる。
【００４９】
６３０において、ＰＴＰフォローアップメッセージが受信されてもよく、６３５において、フォローアップメッセージが処理されてもよい。ＰＴＰフォローアップフレームから、フィールドｐｒｅｃｉｓｅＯｒｉｇｉｎＴｉｍｅｓｔａｍｐ、ｒａｔｅＲａｔｉｏ、及びｆｏｌｌｏｗＵｐＣｏｒｒｅｃｔｉｏｎＦｉｅｌｄが、受信されてもよい。値ｆｏｌｌｏｗＵｐＣｏｒｒｅｃｔｉｏｎＦｉｅｌｄは、マスターとこのスレーブとの間の全てのブリッジを通じる同期イベントメッセージの伝搬遅延を含有する。各ホップ上で、伝搬遅延が加えられる。ＲａｔｅＲａｔｉｏは、最後のノードのグランドマスターに対する比であってもよい。ＰｒｅｃｉｓｅＯｒｉｇｉｎＴｉｍｅｓｔａｍｐは、送信者において計算されてもよく、同期メッセージがグランドマスターノードを発ったときのタイムスタンプであってもよく、マスターノードにおけるｓｙｎｃＥｖｅｎｔＥｇｒｅｓｓＴｉｍｅｓｔａｍｐであってもよい。ＦｏｌｌｏｗＵｐＣｏｒｒｅｃｔｉｏｎＦｉｅｌｄは、上流遅延に関する遅延情報を含んでもよく、この遅延情報は、本発明者らのローカルｓｙｎｃＥｖｅｎｔＩｎｇｒｅｓｓＴｉｍｅｓｔａｍｐに対するグランドマスター時間であってもよい。補正フィールド＋正確な原点タイムスタンプ＋上流遅延は、正しい時間であり得る。
【００５０】
６４０において、以前に捕捉された時間を使用して、ＴａｒｇｅｔＣｌｏｃｋとして与えられる、それ自体のローカルクロックとの同期を更新するために更なる計算を実行することができる。これらは、例えば、ＩＥＥＥ  ８０２．１ＡＳに従って実行されてもよい。例えば、ＩＥＥＥ  ８０２．１ＡＳ−２０１１、図１０〜図９に定義されているように、
ｓｙｎｃＲｅｃｅｉｐｔＴｉｍｅ＝ｐｒｅｃｉｓｅＯｒｉｇｉｎＴｉｍｅｓｔａｍｐ＋ｆｏｌｌｏｗＵｐＣｏｒｒｅｃｔｉｏｎＦｉｅｌｄ＋ｎｅｉｇｈｂｏｒＰｒｏｐＤｅｌａｙ*（ｒａｔｅＲａｔｉｏ／ｎｅｉｇｈｂｏｒＲａｔｅＲａｔｉｏ）＋ｄｅｌａｙＡｓｙｍｍｅｔｒｙである。
ＮｅｉｇｈｂｏｒＰｒｏｐＤｅｌａｙ及びＮｅｉｇｈｂｏｒＲａｔｅＲａｔｉｏは、スレーブノード上で実行するＰｄｅｌａｙ測定からの結果である。このような測定は、タイマ／カウンタ周辺装置で実行されてもよいが、定数によって置き換えられてもよい。ＮｅｉｇｈｂｏｒＰｒｏｐＤｅｌａｙは、ローカルポート及び近隣ポートの上流の遅延であり、それを介して同期が横断している。ＮｅｉｇｈｂｏｒＲａｔｅＲａｔｉｏは、ローカルクロックと近隣ノードのクロックとの間の比であり、それを介して同期が横断している。ＤｅｌａｙＡｓｙｍｍｅｔｒｙは、このポートに付与されたリンク上の、グランドマスター時間ベースに対する伝搬遅延の非対称性である。
【００５１】
いくつかの実施形態では、スレーブがＰｄｅｌａｙ測定を実行せず、このためｎｅｉｇｈｂｏｒＰｒｏｐＤｅｌａｙ及びｎｅｉｇｈｂｏｒＲａｔｅＲａｔｉｏ値を収集することができない場合、この計算は、
ｓｙｎｃＲｅｃｅｉｐｔＴｉｍｅ＝ｐｒｅｃｉｓｅＯｒｉｇｉｎＴｉｍｅｓｔａｍｐ＋ｆｏｌｌｏｗＵｐＣｏｒｒｅｃｔｉｏｎＦｉｅｌｄ＋ｃｏｎｆｉｇneighborPropDelayに簡略化することができ、
式中、ｃｏｎｆｉｇneighborPropDelayは、サブナノ秒精度で構成可能な一定時間持続時間である。そのような定数は、受信経路に対する任意の遅延非対称補正を既に含んでもよい。
【００５２】
最後に、スレーブノードは、マスターのクロックソースの周波数の、ローカルクロックエンティティの周波数に対する測定された比である、ＩＥＥＥ８０２．１ＡＳに従ってｇｍＲａｔｅＲａｔｉｏの値を計算しなければならない。これは、各々以下にアポストロフィによって図示される連続した同期パラメータのシーケンスにわたって実行されてもよく、アポストロフィは、後続の同期パラメータインスタンス：
ｇｍＲａｔｅＲａｔｉｏ＝（ｓｙｎｃＲｅｃｅｉｐｔＴｉｍｅ’−ｓｙｎｃＲｅｃｅｉｐｔＴｉｍｅ）／（ｓｙｎｃＲｅｃｅｉｐｔＬｏｃａｌＴｉｍｅ’−ｓｙｎｃＲｅｃｅｉｐｔＬｏｃａｌＴｉｍｅ）、
又は
３２ビットカウンタについては、ｇｍＲａｔｅＲａｔｉｏ＝（ｓｙｎｃＲｅｃｅｉｐｔＴｉｍｅ’−ｓｙｎｃＲｅｃｅｉｐｔＴｉｍｅ）／（（ｓｙｎｃＲｅｃｅｉｐｔＬｏｃａｌＣｖ３２’−ｓｙｎｃＲｅｃｅｉｐｔＬｏｃａｌＣｖ３２）ｍｏｄ  ２32）*ｌｏｃａｌＴｉｃｋＰｅｒｉｏｄを示す。
モジュロ動作は、異なるビット解像度をｍｏｄ  ２sに調整することができ、ここでｓは、カウンタのビットサイズである。同期パラメータのタプルは、この同期プロセス：（ｓｙｎｃＲｅｃｅｉｐｔＴｉｍｅ，ｓｙｎｃＲｅｃｅｉｐｔＬｏｃａｌＴｉｍｅ，ｓｙｎｃＲｅｃｅｉｐｔＬｏｃａｌＣｖ３２，ｇｍＲａｔｅＲａｔｉｏ）の結果として更新され得る。
【００５３】
６４０において時間が同期されると、同期時間は、任意の好適な様式で使用されてもよい。同期時間は、様々な時間関連動作に適用され得る。イベントは、任意の所与のグランドマスター時間で生成されてもよく、又はイベントは、同期クロックを使用してタイムスタンプされてもよい。
【００５４】
例えば、外部イベントは、同期クロックを使用して周辺装置によってタイムスタンプされてもよい。イベントは、例えば、ＧＰＩＯピン、ＭＣＵ上の周辺ピン、又は任意の他の好適なルーティング機構によって周辺装置にルーティングされてもよい。周辺装置は、イベントを監視し、同期クロックにアクセスして、イベントをタイムスタンプするように構成されてもよい。例えば、自動車ネットワーク内のセンサコントローラは、外部クロックに同期するために図６の方法を最初に使用してもよい。続いて、センサコントローラは、接続されたセンサスイッチからの電気イベントなどのイベントをタイムスタンプしてもよい。正確なタイムスタンプは、ネットワーク内の他のノードへのイベントの指示と共に送信されてもよい。そのような実施例では、タイマカウンタ周辺装置は、ハードウェア内のかかるイベントを監視し、信号エッジの着信時に、タイマの捕捉された値を、グランドマスター時間ベースに対するタイムスタンプに変換するように構成されてもよく、そのため、他の時間認識ノードが、タイムスタンプを適切に使用することができる。このタイムスタンプは、ｅｖｅｎｔＣａｐｔｕｒｅＴｉｍｅとして与えられてもよい。
【００５５】
周辺装置は、イベントＥ上の３２ビットカウンタを捕捉し、カウンタ又はタイマの捕捉された値を読み取り、それをｅｖｅｎｔＣａｐｔｕｒｅＬｏｃａｌＣｖ３２として記憶するために、ハンドラを実装するように構成されてもよい。以下の計算は、図６のクロック同期プロセスの最後の更新からのパラメータを使用して、測定された時間をグランドマスター時間に関連させるために実行されてもよい。
ｅｖｅｎｔＣａｐｔｕｒｅＴｉｍｅ  ＝  （（（ｅｖｅｎｔＣａｐｔｕｒｅＬｏｃａｌＣｖ３２  −  ｓｙｎｃＲｅｃｅｉｐｔＬｏｃａｌＣｖ３２）  ｍｏｄ  ２32）  *  ｌｏｃａｌＴｉｃｋＰｅｒｉｏｄ  *  ｇｍＲａｔｅＲａｔｉｏ）  ＋  ｓｙｎｃＲｅｃｅｉｐｔＴｉｍｅ
【００５６】
同期イベント生成を実行するために、外部イベントＥは、Ｅに関連するＭＣＵ出力ピン上に信号エッジを作成することによって、グランドマスター時間ベースに対して、所与のｅｖｅｎｔＴｒｉｇｇｅｒＴｉｍｅにおいて、生成されなければならない。これは、カウンタ比較の一致に対して出力信号をトリガ又はトグルするようにプログラムすることができる、ハードウェア補助回路のタイマカウンタ周辺装置によって実行され得る。周辺装置は、タイマ又はクロック値がプログラムされた閾値と一致するとき、イベントを生成するコンパレータを含んでもよい。ｅｖｅｎｔＴｒｉｇｇｅｒＬｏｃａｌＣｖ３２として与えられる閾値をプログラムするために、所与のｅｖｅｎｔＴｒｉｇｇｅｒＴｉｍｅを最初に変換しなければならない：
ｅｖｅｎｔＴｒｉｇｇｅｒＬｏｃａｌＣｖ３２  ＝  （（（ｅｖｅｎｔＴｒｉｇｇｅｒＴｉｍｅ  −  ｓｙｎｃＲｅｃｅｉｐｔＴｉｍｅ）  ／  ｇｍＲａｔｅＲａｔｉｏ  ／  ｌｏｃａｌＴｉｃｋＰｅｒｉｏｄ）  ＋  ｓｙｎｃＲｅｃｅｉｐｔＬｏｃａｌＣｖ３２）  ｍｏｄ  ２32。ただし、これはイベント時間が近い将来であることを条件とする。この値をタイマ又はカウンタの値に一致させると、割り込みが、トリガされ得る。加えて、周辺装置は、他の使用のために解放されてもよい。
【００５７】
いくつかの実施形態では、ハイブリッドアプローチを有効にすることができる。例えば、１つの経路が固定されたレイテンシを有する場合、ＭＡＣ層にタイムスタンプすることができる。可変レイテンシを有する他の経路は、ＰＨＹでタイムスタンプされてもよい。
【００５８】
本開示は、１つ以上の実施形態に関して記述されており、特に明言されたものとは別に、多くの等価物、代替物、変形物、及び修正が可能であり、本開示の範囲内にあることが認識されるべきである。本開示は様々な修正及び代替の形態が可能である一方で、それらの特定の実施形態の例が、図で示され、本明細書で詳細に記述される。しかしながら、特定の実施形態の例の本明細書の記述は、本明細書で開示された特定の形態に開示を限定する意図はないことが理解されるべきである。
【図１】
2021527355.tif 000003
【図２】
2021527355.tif 000004
【図３】
2021527355.tif 000005
【図４】
2021527355.tif 000006
【図５】
2021527355.tif 000007
【図６】
2021527355.tif 000008
【国際調査報告】
2021527355.tif 000009
2021527355.tif 000010
2021527355.tif 000011