IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ マイクロチップ テクノロジー インコーポレイテッドの特許一覧

特許7527979コストが最適化された環境におけるPHYレベルハードウェアタイムスタンプ及び時間同期の実行
<>
  • 特許-コストが最適化された環境におけるPHYレベルハードウェアタイムスタンプ及び時間同期の実行 図1
  • 特許-コストが最適化された環境におけるPHYレベルハードウェアタイムスタンプ及び時間同期の実行 図2
  • 特許-コストが最適化された環境におけるPHYレベルハードウェアタイムスタンプ及び時間同期の実行 図3
  • 特許-コストが最適化された環境におけるPHYレベルハードウェアタイムスタンプ及び時間同期の実行 図4
  • 特許-コストが最適化された環境におけるPHYレベルハードウェアタイムスタンプ及び時間同期の実行 図5
  • 特許-コストが最適化された環境におけるPHYレベルハードウェアタイムスタンプ及び時間同期の実行 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-26
(45)【発行日】2024-08-05
(54)【発明の名称】コストが最適化された環境におけるPHYレベルハードウェアタイムスタンプ及び時間同期の実行
(51)【国際特許分類】
   H04L 7/00 20060101AFI20240729BHJP
【FI】
H04L7/00 990
【請求項の数】 11
(21)【出願番号】P 2020568553
(86)(22)【出願日】2019-06-14
(65)【公表番号】
(43)【公表日】2021-10-11
(86)【国際出願番号】 US2019037152
(87)【国際公開番号】W WO2019241611
(87)【国際公開日】2019-12-19
【審査請求日】2022-05-12
(31)【優先権主張番号】62/684,806
(32)【優先日】2018-06-14
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/440,775
(32)【優先日】2019-06-13
(33)【優先権主張国・地域又は機関】US
【前置審査】
(73)【特許権者】
【識別番号】397050741
【氏名又は名称】マイクロチップ テクノロジー インコーポレイテッド
【氏名又は名称原語表記】MICROCHIP TECHNOLOGY INCORPORATED
(74)【代理人】
【識別番号】110000626
【氏名又は名称】弁理士法人英知国際特許商標事務所
(72)【発明者】
【氏名】レントシュラー、ミハエル
【審査官】吉江 一明
(56)【参考文献】
【文献】特開2010-190635(JP,A)
【文献】特表2012-501108(JP,A)
【文献】国際公開第2016/199196(WO,A1)
【文献】特開2011-176479(JP,A)
【文献】特開2007-047160(JP,A)
【文献】中国特許出願公開第101848075(CN,A)
【文献】米国特許出願公開第2011/0051754(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 7/00
(57)【特許請求の範囲】
【請求項1】
装置であって、
受信されたパケットの内容を前記装置に一致させ、パケットが受信されたかどうかを識別するように構成されたパケットマッチング回路と、
ハードウェアタイマ回路であって、
同期パケットが一致しているという前記パケットマッチング回路からの信号に基づいて、同期タイムスタンプを提供することと、
前記同期パケットの受信後にフォローアップパケットが一致しているという前記パケットマッチング回路からの信号に基づいて、フォローアップタイムスタンプを提供することと、を行うように構成された、ハードウェアタイマ回路と、
前記同期タイムスタンプ及び前記フォローアップタイムスタンプに基づいて、クロックベースを調整して、同期クロックベースを判定するように構成されたプロセッサと、を備え、
前記同期パケットが、送信者タイムスタンプを含むように構成されており、
前記フォローアップパケットが、調整タイムスタンプを含むように構成されており、
前記プロセッサが、前記調整タイムスタンプを前記送信者タイムスタンプに適用することに基づいて、前記クロックベースを調整して前記同期クロックベースを判定するように更に構成されており、
前記ハードウェアタイマ回路が、前記パケットマッチング回路とは別個である、装置。
【請求項2】
前記ハードウェアタイマ回路が、前記プロセッサを含むマイクロコントローラ上の1つ以上の汎用入力-出力ピンを介してアクセス可能である、請求項1に記載の装置。
【請求項3】
前記パケットマッチング回路が、物理層エンティティ(PHY)である、請求項1又は2に記載の装置。
【請求項4】
前記ハードウェアタイマ回路が、前記プロセッサ上で動作するソフトウェアに利用可能なクロックを使用して、前記PHYのレベルで前記同期タイムスタンプ及び前記フォローアップタイムスタンプを作成するように構成されている、請求項に記載の装置。
【請求項5】
前記装置が、入力ポート及びイベントタイマを更に含み、前記イベントタイマが、前記入力ポートを介した外部イベント信号の受信時に、クロックカウントを提供するように構成され、
前記プロセッサが、前記同期タイムスタンプ及び前記フォローアップタイムスタンプに基づいて、前記クロックベースを調整することによって作成された前記同期クロックベースに基づいて、前記外部イベント信号の前記クロックカウントを調整するように更に構成されている、請求項1~のいずれかに記載の装置。
【請求項6】
請求項1~に記載の装置のいずれかを備える、マイクロコントローラ。
【請求項7】
方法であって、
パケットマッチング回路を用いて、受信されたパケットの内容を前記パケットマッチング回路に一致させ、パケットが受信されたかどうかを識別するステップと、
ハードウェアタイマ回路を用いて、
同期パケットが一致しているという前記パケットマッチング回路からの信号に基づいて、同期タイムスタンプを提供するステップと、
前記同期パケットの受信後にフォローアップパケットが一致しているという前記パケットマッチング回路からの信号に基づいて、フォローアップタイムスタンプを提供するステップと、
プロセッサを用いて、前記同期タイムスタンプ及び前記フォローアップタイムスタンプに基づいて、クロックベースを調整して、同期クロックベースを判定するステップと、を含み、
前記同期パケットが、送信者タイムスタンプを含み、
前記フォローアップパケットが、調整タイムスタンプを含み、
前記方法が、前記プロセッサを用いて、前記調整タイムスタンプを前記送信者タイムスタンプに適用することに基づいて、前記クロックベースを調整して前記同期クロックベースを判定することを更に含み、
前記ハードウェアタイマ回路が、前記パケットマッチング回路とは別個に動作される、方法。
【請求項8】
前記プロセッサを含むマイクロコントローラ上の1つ以上の汎用入力-出力ピンを介して、前記ハードウェアタイマ回路にアクセスするステップを含む、請求項に記載の方法。
【請求項9】
前記パケットマッチング回路が、物理層エンティティ(PHY)である、請求項7又は8に記載の方法。
【請求項10】
前記ハードウェアタイマ回路を用いて、前記プロセッサ上で動作するソフトウェアに利用可能なクロックを使用して、前記同期タイムスタンプ及び前記フォローアップタイムスタンプを前記PHYのレベルで作成するステップを更に含む、請求項に記載の方法。
【請求項11】
入力ポート及びイベントタイマを用いて、前記入力ポートを介して外部イベント信号を受信すると、クロックカウントを提供するステップと、
前記プロセッサを用いて、前記同期タイムスタンプ及び前記フォローアップタイムスタンプに基づいて、前記クロックベースを調整することによって作成された前記同期クロックベースに基づいて、前記外部イベント信号の前記クロックカウントを調整するステップと、を更に含む、請求項7~10のいずれかに記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
優先権
本出願は、2018年6月14日出願の米国特許仮出願第62/684,806号に対する優先権を主張し、その出願の内容は、その全体が本明細書に組み込まれる。
【0002】
本開示は、ネットワーク通信のための装置及び方法に関し、より具体的には、コストが最適化された環境及びパケットベースのネットワークにおけるPHYレベルハードウェアタイムスタンプ及び時間同期の実行に関する。
【背景技術】
【0003】
10BASE-T1S(10SPE)は、現在修正及び開発下にある提案されている規格である。10SPEは、イーサネット・ローカル・エリア、アクセス、及びメトロポリタン・エリア・ネットワークを定義する。イーサネットは、選択された動作速度で指定され、共通の媒体アクセス制御(media access control、MAC)仕様及び管理情報ベース(management information base、MIB)を使用する。衝突検出付き搬送波感知多重アクセス(Carrier Sense Multiple Access/Collision Detection、CSMA/CD)MACプロトコルは、共有媒体(半二重)動作、及び全二重動作を指定する。速度固有の媒体独立インターフェース(Media Independent Interface、MII)は、選択された物理層エンティティ(Physical Layer entity、PHY)にアーキテクチャ及び任意選択的な実装インターフェースを提供する。PHYは、動作速度、伝送媒体、及びサポートされたリンク長に関して指定された変調を用いて、伝送のためのフレームをエンコードし、受信したフレームをデコードする。他の指定された能力としては、制御及び管理プロトコル、並びに選択されたツイストペアPHYタイプにわたる電力の提供を含む。
【0004】
10SPEは、IEEE802.3への追加及びIEEE802.3の適切な修正を指定して、単一の平衡化されたツイストペア銅ケーブル上に、10Mb/s PHY仕様及び操作のための管理パラメータ、並びに、電力の関連する任意選択的な提供を追加する。
【0005】
IEEE802.1AS(gPTP)及びIEEE1588(高精度時間プロトコル:Precision Time Protocol、PTP)によって定義されるシステムなどの分散システムにおけるクロックの時間同期は、高精度動作を達成するために特殊なハードウェアの使用を必要とする。これらの動作は、正確なクロック及びタイムスタンプパケットを維持することを含み得る。現在のソリューションは、一度フレームがMACを通過すると、MACレベルでパケットのタイムスタンプを実行する専用イーサネットMACユニットを有するマイクロコントローラユニット(microcontroller unit、MCU)を提供する。
【発明の概要】
【0006】
いくつかの実施形態では、装置は、パケットマッチング回路、ハードウェアタイマ回路、及びプロセッサを含む。パケットマッチング回路は、受信したパケットの内容を装置に一致させ、かつパケットが受信されたかどうかを識別するように構成される。ハードウェアタイマ回路は、同期パケットが一致したというパケットマッチング回路からの信号に基づいて、同期タイムスタンプを提供し、同期パケットの受信後にフォローアップパケットが一致したというパケットマッチング回路からの信号に基づいて、フォローアップタイムスタンプを提供するように構成される。プロセッサは、同期タイムスタンプ及びフォローアップタイムスタンプに基づいて、クロックベースを調整して同期クロックベースを判定するように構成される。
【0007】
他の実施形態では、本方法は、パケットマッチング回路を用いて、受信したパケットの内容をマイクロコントローラに一致させることと、パケットが受信されたかどうかを識別することと、を含む。本方法は、ハードウェアタイマ回路を用いて、同期パケットが一致したというパケットマッチング回路からの信号に基づいて同期タイムスタンプを提供することと、同期パケットの受信後にフォローアップアップパケットが一致したというパケットマッチング回路からの信号に基づいて、フォローアップタイムスタンプを提供することと、を更に含んでもよい。本方法は、プロセッサを用いて、同期タイムスタンプ及びフォローアップタイムスタンプに基づいて、クロックベースを調整して同期クロックベースを判定することを更に含んでもよい。
【0008】
更に他の実施形態では、マイクロコントローラは、パケットマッチング回路、ハードウェアタイマ回路、及びプロセッサを含む。パケットマッチング回路は、受信したパケットの内容をマイクロコントローラに一致させ、かつパケットが受信されたかどうかを識別するように構成される。ハードウェアタイマ回路は、同期パケットが一致したというパケットマッチング回路からの信号に基づいて、同期タイムスタンプを提供し、かつ同期パケットの受信後にフォローアップパケットが一致したというパケットマッチング回路からの信号に基づいて、フォローアップタイムスタンプを提供するように構成される。プロセッサは、同期タイムスタンプ及びフォローアップタイムスタンプに基づいて、クロックベースを調整して、同期クロックベースを判定するように構成される。
【図面の簡単な説明】
【0009】
図1】本開示の実施形態による、例示的な10SPEネットワークの図である。
図2】本開示の実施形態による、ネットワークコントローラにおけるPHY及びMCUの動作のより詳細な図を示す。
図3】本開示の実施形態による、同期イベントメッセージに適用されたマッチングパターンを示す。
図4】本開示の実施形態による、タイミング及びタイムスタンプ動作のためのハードウェア支援回路の使用を示す。
図5】本開示の実施形態による、マスターノードの観点からの例示的なノードセットアップのフローチャートを示す。
図6】本開示の実施形態による、クライアントノードの観点からの例示的なノードセットアップのフローチャートを示す。
【発明を実施するための形態】
【0010】
本開示の実施形態の発明者は、ノード当たりの最小コストでパケットベースのネットワークにおいて高精度の時間同期を提供する必要性が存在することを見出した。具体的には、10SPEネットワークノード上で、PHYレベルハードウェアタイムスタンプ及び時間同期を実行するためにソリューションが必要とされる。タイムスタンプ及び時間同期は、IEEE1588又はIEEE802.1ASによる性能を実装することができる。更に、PHYレベルハードウェアのタイムスタンプ及び時間同期は、PHYを実装するためのダイサイズが制限され得るので、単一であるPHYハードウェア上で実行することができる。PHYは、エンドポイントコントローラを実装するときにPHYと協働するように選択され得る、MCUの範囲を制限し得る、強力な要件なしに実装され得る。
【0011】
いくつかの実施形態では、PHYは、IEEE1588又はIEEE802.1ASによって必要とされる際、PTPイベントメッセージのハードウェアタイムスタンプを支持することが可能になる。このタイムスタンプイベントは、MCUなどの更なるコンポーネントに転送されてもよい。いくつかの実施形態では、MCUのタイマ/カウンタユニットの使用は、任意の専用ハードウェアを必要とせずに、必要なタスクの性能を提供し得る。更なる実施形態では、ソフトウェアアルゴリズムが、使用されてもよい。
【0012】
前述のように、他のソリューションは、MACユニット内のいずれかのタイムスタンプに対応する。いくつかの実施形態では、本発明は、PHY及びMCUが協働することを可能にする。いくつかの実施形態では、PHYは、PTPイベントタイムスタンプを実行するが、その後単にイベントをMCUに転送するのみである。いくつかの実施形態では、MCUは、ローカルクロックのタイムスタンプ及び同期を測定することなどの時間的に重要なタスクを実行するために、既存のハードウェア(タイマ/カウンタユニットなど)を利用する。
【0013】
様々な実施形態によれば、共通のMACユニットを有する広範囲のMCUに対して、高精度の時間同期が提供される。共通のMACユニットは、衝突検出付き搬送波感知多重アクセス(CSMA/CD)MACを含んでもよい。いくつかの実施形態では、PHYチップのコスト感受性タイムスタンプ特徴部が、提供されてもよい。いくつかの実施形態では、タイムスタンプ測定及びPTP時間同期のための専用ハードウェアを有さないMCUを利用するために、ソフトウェアアルゴリズムが、提供され得る。
【0014】
本開示の実施形態は、エンドポイントコントローラとして使用される一般的に利用可能なMCUの使用を可能にする。例えば、専用のIEEE1588ハードウェアを有するMCUが、必要とされない場合がある。同時に、PHYに対する要件は、低いままであり得る。
【0015】
いくつかの実施形態は、自動車及びサーバのバックプレーンアプリケーションなどの、10SPEネットワークに特に適していてもよい。具体的には、10SPEネットワークにおいて、いくつかの実施形態では、ネットワークノード当たりの最低コストで時間同期を実行する必要があり得、いくつかの実施形態では、完全なIEEE1588サポートを伴わないコスト効率の高いPHYの要件を含み得る。必要とされない又は含まれない場合があるいくつかの特徴部には、高精度クロック、コントローラ、タイムスタンプユニット、若しくはイベント発生器が挙げられる。
【0016】
IEEE1588有効ハードウェアを有するMCUは、一般的ではなく、比較的高価であり得る。更に、タイムスタンプは、PHYが送信機(TX)又は受信機(RX)経路に、変化するレイテンシを追加する場合、必要とされる精度で達成できないMACレベルである。このようなレイテンシは、10SPEネットワークPHYで生じる。PHYレベルのタイムスタンプが使用されるとき、このようなソリューションは、PHYへのタイムスタンプのためのクロックを実装することから、このクロックが外部から利用されることを可能にする方法において、困難な問題を引き起こす。このことは、過度に大きく、複雑なPHY設計をすぐにもたらすことになり、開発コスト及び生産コストを拡大させる。自動車ネットワークなどの環境は、そのようなソリューションを使用不可能とするノード当たりの最大コストを新たに要求する。
【0017】
いくつかの実施形態では、装置は、パケットマッチング回路、ハードウェアタイマ回路、及びプロセッサを含む。パケットマッチング回路は、PHYによって、又はアナログ回路とデジタル回路との別の好適な組み合わせによって実装され得る。ハードウェアタイミング回路は、タイマ又はカウンタを含み得る。タイマ又はカウンタは、マイクロコントローラ内の周辺装置であってもよい。タイマ又はカウンタ周辺装置は、クロック同期を実行するように構成されてもよい。ハードウェアタイミング回路は、イベント又はコマンド時に、タイマ又は回路の値をレジスタなどの任意の好適な記憶装置に記憶してもよい。ハードウェアタイミング回路は、パケットマッチング回路のハードウェアレベルで実装されてもよい。ハードウェアタイミング回路は、部分的にパケットマッチング回路内に実装されてもよい。パケットマッチング回路は、受信したパケットの内容を装置に一致させ、かつパケットが受信されたかどうかを識別するように構成され得る。パケットは、同期パケット、続いてフォローアップパケットを含み得る。ハードウェアタイマ回路は、同期パケットが一致したというパケットマッチング回路からの信号に基づいて、同期タイムスタンプを提供し、かつ同期パケットの受信後にフォローアップパケットが一致したというパケットマッチング回路からの信号に基づいて、フォローアップタイムスタンプを提供するように構成されてもよい。フォローアップ及び同期パケットは、任意の好適なプロトコルに従って、実装されてもよい。プロセッサは、同期タイムスタンプ及びフォローアップタイムスタンプに基づいて、クロックベースを調整して、同期クロックベースを判定するように構成されてもよい。クロックベースの調整は、以下に更に記載されるように、clockMasterSyncInterval、syncEventEgressTimestamp、preciseOriginTimestamp、localTickPeriod、tr、ts、td、syncEventIngressTimestamp、syncReceiptLocalCv32、syncReceiptLocalTime、rateRatio、及びfollowUpCorrectionFieldに更に基づいてもよい。
【0018】
上記の実施形態のいずれかと組み合わせて、ハードウェアタイマ回路は、パケットマッチング回路とは別個であってもよい。上記の実施形態のいずれかと組み合わせて、ハードウェアタイマ回路は、プロセッサを含むマイクロコントローラ上の1つ以上の汎用入力-出力ピンを介してアクセス可能である。上記の実施形態のいずれかと組み合わせて、ハードウェアタイマ回路は、プロセッサ上で動作しているソフトウェアに利用可能なクロックを使用して、PHYのレベルで同期タイムスタンプ及びフォローアップタイムスタンプを作成するように構成されてもよい。上記の実施形態のいずれかと組み合わせて、装置は、入力ポート及びイベントタイマを更に含み、イベントタイマは、入力ポートを通じて外部イベント信号の受信時にクロックカウントを提供するように構成される。プロセッサは、同期タイムスタンプ及びフォローアップタイムスタンプに基づいて、クロックベースを調整することによって作成された同期クロックベースに基づいて、外部イベント信号のクロックカウントを調整するように更に構成されてもよい。上記の実施形態のいずれかと組み合わせて、同期パケットは、送信側タイムスタンプを含むように構成され、フォローアップパケットは、調整タイムスタンプを含むように構成され、プロセッサは、調整タイムスタンプを送信側タイムスタンプに適用することに基づいて、クロックベースを調整して、同期クロックベースを判定するように更に構成されてもよい。上記実施形態のいずれかと組み合わせて、装置は、マイクロコントローラ内に含まれてもよい。
【0019】
図1は、本開示の実施形態による、例示的な10SPEネットワーク100の図である。ネットワーク100は、任意の好適な数及び種類のノードを含み得る。例えば、ネットワーク100は、ノード102、104A、104B、104Cを含み得る。これらのノードは、ネットワーク又はバス120において互いに通信するように構成され得る。ネットワーク又はバス120は、10SPE仕様又はその変形に従ってなど、任意の好適な様式で実装されてもよい。
【0020】
ノード102は、マスターノードであり得る。ノード102は、ネットワーク内の他のノードを代表して、ネットワークアロケーション、割り当て、又は他の管理タスクを行うことによって、マスターノードとして機能し得る。
【0021】
ノード102、104A、104B、104Cは各々、ネットワークコントローラ106で実装され得る。ネットワークコントローラ106は、MCU118及びPHY回路108を含み得る。MCU118は、任意の好適なマイクロコントローラ、プロセッサ、又は他のコンピューティングデバイスによって実装されてもよい。PHY回路108は、デジタル又はアナログ回路、特定用途向け集積回路、フィールドプログラマブルゲートアレイ、又は他の好適な回路の任意の好適な組み合わせによって実装されてもよい。MCU118は、エンドユーザアプリケーション110などの他のソフトウェア又はノードの要素との通信を処理するように構成されてもよい。PHY108は、ネットワーク又はバス120との物理的な相互作用を処理するように構成されてもよい。
【0022】
ノード102、104A、104B、104Cは各々、1つ以上のエンドユーザアプリケーション110、プロセッサ114、及びメモリ116で実装され得る。エンドユーザアプリケーション110、及びネットワークドライバ又はスタックは、ソフトウェア、ライブラリ、機能、スクリプト、アプリケーション、コード、又はプロセッサ114による実行のための他の命令を含み得る。命令は、それぞれのメモリ116上に記憶され得る。命令は、プロセッサ114によって実行されるとき、ユーザアプリケーションを互いに通信させることができる。そのような通信は、ネットワーク100、特に、ネットワークコントローラ106によって実行されてもよい。メモリ116は、長期記憶又は短期記憶に関わらず、任意の好適な実装の1つ以上のメモリ要素によって実装され得る。プロセッサ114は、任意の好適なプロセッサ、コア、又はマイクロコントローラのうちの1つ以上によって実装され得る。
【0023】
ノード102、104A、104B、104Cは、コンピュータ、ラップトップ、サーバ、仮想マシン、モバイルデバイス、センサ、又はアクチュエータなどの任意の好適な電子デバイスを実装し得る。ノード102、104A、104B、104Cは、イーサネット又はコントローラエリアネットワーク(controller area network、CAN)などの任意の好適なネットワーク上に任意の好適な電子デバイスを含んでもよい。ノード102、104A、104B、104Cは各々、エンドユーザアプリケーション110の異なる実装を含み得る。エンドユーザアプリケーション110は、エンドユーザアプリケーション110の他のもの又はノード102、104A、104B、104Cの他のものとの通信を必要とし得る。そのような通信は、例えば、ネットワーク又はバス120を介して10SPEを使用して実行され得る。
【0024】
特定の数のノードが図1に示されているが、ネットワーク100は、10SPE有効ノードなどのネットワークノードの任意の好適な数及び組み合わせを含み得る。
【0025】
ネットワーク100などの10SPEネットワークは、マスターからクライアント、すなわち、ノード102からノード104へのクロック分配方向を有してもよい。加えて、システム内の全てのPTPポートによって別様に実行され得る最良のマスタークロックアルゴリズム(best master clock algorithm、BMCA)は、ネットワーク100の全てのポートに適用可能ではない可能性がある。例えば、BMCAは、ノード102によってのみ動作させてもよい。
【0026】
図2は、本開示の実施形態による、ネットワークコントローラにおけるPHY及びMCUの動作のより詳細な図を示す。PHY108及びMCU118は、互いに通信するように構成されてもよい。PHY108は、MCU118のポートに接続されてもよい。PHY108は、媒体独立インターフェース(media independent interface、MII)、低減されたMII(reduced MII、RMII)、又はシリアル周辺インターフェース(serial peripheral interface、SPI)などの、MCU118の任意の好適なポートに接続することができる。PHY108は、そのようなポートを介してMCU118から命令又はデータを受信することができる。PHY108は、MCU118に情報を送信するタイミングポートを含んでもよい。このようなタイミングポートは、1つ以上の汎用入力/出力(general-purpose input/output、GPIO)ピンで実装されてもよい。一実施形態では、これらのピンは、PHY108からMCU118にそのようなイベントを送信するためのタイミング又はタイムスタンプイベントピンとして使用されるように構成されてもよい。PHY108は、ネットワーク120の物理的媒体とインターフェースするように構成されてもよい。
【0027】
MCU118は、PHY108を初期化し、構成するように構成され得る。MCU118は、PHY108内のタイムスタンプ特徴部を有効にし、PHY108内の1つ以上のパケット認識パターンを構成するように構成され得る。いくつかの実施形態によれば、PHY108は、識別されたフレームパターンについて、ネットワーク120上の進入又は退出オクテットストリームをスキャンするように構成されてもよい。このようなフレームパターンは、例えば、オフセット、マスク、及び値を含んでもよい。このようなフレームパターンの一例は、例えば、フレームのタイプとヘッダの最初のバイトとを一致させることであってもよい。マスクは、パターンマッチングで考慮されるべきではない、又は別様に無関係であるフレームのビットをフィルタリングし得る。パターンは、進入、退出、又は進入/退出のオクテットデータストリームのためにスキャンされてもよい。いくつかの実施形態によれば、パターンが一致するとき、PHY108は、イベント信号MCU118を発生させるように構成されてもよい。イベント信号は、タイミングポートの割り当てられたGPIOピンで発生させてもよい。一実施形態では、開始フレーム区切り(start frame delimiter、SFD)の認識又は受信と生成されたイベント信号との間の時間は、定数値であることが要求され得る。複数のパターンは、PHY108によって評価されてもよい。PHY108は、異なるGPIOピン上のイベントを発行するように、又は、一致した特定のパターンを識別するために、GPIOピン上のコードを用いて、イベントを発行するように構成されてもよい。異なるGPIOピンは、異なるパターンを一致させるために使用されてもよい。更に、異なるGPIOピンが、異なる方向に対して使用されてもよい。例えば、実施形態では、GPIOピン又はピンは、進入パターンのみに一致するように構成されてもよく、別のGPIOピン又はピンは、退出パターンのみに一致するように構成されてもよい。そのようなイベントにおいて、退出の一致及び進入の一致は、互いに対して非同期的に発生し得、進入及び退出マッチングのための別個のイベントラインを含めることにより、認識されたイベントを適切なメッセージに割り当てる機会をMCU118に提供する。各々が、異なる可能性のある一致を表現する異なるGPIOピンは、論理的に共に論理和がとられてもよい。このため、PHY108がいくつかの可能なパターンのうちの1つと一致する場合、単一の入力を、MCU118で発生させてもよい。
【0028】
MCU118は、ノードの他の要素に時間同期イベントを生成するように構成され得る。更に、MCU118は、測定されるべきノードの他の要素から外部イベントを受信するように構成されてもよい。これらは、PHY108によって測定され得る。
【0029】
図3は、本開示の実施形態による、IEEE802.1AS PTP Sync イベントメッセージに適用されたマッチングパターンを示す。図3に示されるのは、第1のノード(ノード102のポートなど)のマスターポート302及びノード104のポートなどのクライアントノード304の動作である。図3はまた、ノード102によって生成され、ノード104に送信され得る様々なノード間の通信の例示的なフレーム306を示す。フレーム306は、SFD前フィールド、宛先及びソースアドレスフィールド、任意選択のタグフィールド、どのプロトコルがフレーム内に封入されているかを示すためのEtherTypeフィールド、PTPヘッダフィールド、ペイロード、並びにフレームチェックシーケンス(frame check sequence、FCS)フィールドを含んでもよい。フレーム306は、例えば、標準的なイーサネットフレームを実装することができる。ペイロードは、任意の好適なデータを移送することができる。例えば、ペイロードは、IEEE802.1ASに従って、gPTPイベントメッセージを移送することができる。他のフレームフォーマット及びペイロードが、使用されてもよい。
【0030】
示されるのは、ポート302から送信され、ポート304で受信される例示的なデータである。ポート302は、マスターポートであってもよく、ポート304は、スレーブポートであってもよい。同期パケットが送信され、その後フォローアップパケットが送信される、2ステップ動作が示される。このため、同期パケットは、ポート302からの時間tsで送信され、時間trにおいてポート304で受信されてもよい。その後、フォローアップパケットが、送信され得る。フォローアップパケットは、任意の好適なタイミング情報を含んでもよい。フォローアップパケットの内容は、原点グランドマスター時間を転送するために使用されてもよく、これは、同期パケットが、グランドマスターポート(メッセージをポート302に送信するポート)を発った瞬間、並びに伝送ライン上の滞留時間及び各ホップの時間(グランドマスターと宛先ノードとの間の全てのネットワークブリッジにおける)を含み得る。図3は、マスターノード及びポートが、グランドマスターノード及びポートと同じであってもよい、単純化されたネットワークを示す。そのような場合、マスターノードは、フォローアップパケット内でtsのみを通信し、一方、他の全ての値は、使用されない。しかしながら、マスターノード及びポートが、グランドマスター時間自体のソースではない場合、マスターノードは、時間認識ブリッジに接続され得る。同期パケットがブリッジを横断している間、滞留時間は、コンピュータであってもよい。フォローアップパケットが送信されるとき、この滞留は、フォローアップパケット内に含まれる補正フィールド内に追加されてもよい。マスターノードがまた別のネットワーク上のスレーブノードでもあり、その結果、マスターノードは、この他のネットワークからのグランドマスター時間にそれ自体の時間を同期させることもまた可能である。次いで、マスターノードは、PTPマスターとして動作し、同期時間を10SPEネットワークに転送することができる。フォローアップパケットは、preciseOriginTimeStamp、補正フィールドなどのフィールド、及びIEEE802.1ASによる速度比を含んでもよい。補正フィールドは、ネットワークスイッチ/ブリッジを介して任意の滞留時間(又は伝搬時間)を含有する。(ノード102の)ポート302は、1秒当たり8回などの、固定された速度でPTP同期メッセージを発行することができる。これらの同期メッセージは、(様々なノード104の)全ての接続されたポート304に送信されてもよい。
【0031】
PTPに対する他のソリューションでは、伝搬遅延測定が実行され得、隣接するポート間の伝搬遅延を測定する。安定した伝搬遅延は、時間同期に影響を与えない可能性があるが、ノード104のクロックにおける位相整合に影響を及ぼし得る。例えば、ポート102とポート104との間の伝搬遅延をより正確にすることにより、位相整合をより正確にすることができる。安定した伝搬遅延は、伝搬遅延が、ジッタ又はランダムな変化を含むことなく、ポート102とポート104との間の物理的媒体上で一定である実装を含んでもよい。一実施形態では、伝搬遅延測定は、送信機方向に関する定数値で置き換えられてもよい。このため、伝搬遅延測定は、本開示の実施形態では、10SPEネットワークで無効化され得る。
【0032】
一実施形態では、例示的なパターンは、少なくともEtherType及び後続の第1のペイロードバイトにおけるマッチングを必要とし得る。そのような後続の第1のペイロードバイトは、gPTPヘッダ内部の「mt_ts」フィールドであってもよい。IEEE1588は、更なるメッセージ形式を可能にする。MCU118は、そのようなメッセージフォーマットを待つための任意の好適なパターンマッチングを適用するように構成されてもよい。メッセージフォーマットに応じて、パターンは、比較的大きくてもよく、又は異なるパターンが、並列に探索されてもよい。任意の好適なパターンマスク及び任意のサイズの値フィールドが、使用され得る。全てのPTPイベントのパターンを有すること、又は単一の特定のPTPイベントのみに一致するようにパターンを変更することが可能である。単純なアプリケーションでは、PTP同期のみが一致し得る。より複雑なアプリケーションの場合、他のPTPイベントは、Pdelay(IEEE802.1ASの各2つの隣接するノード間で頻繁に実行される測定)など、測定及び一致することが要求され得る。このため、PdelayReq及びPdelayRespイベントとして既知の、要求又は応答における遅延は、タイムスタンプ及び一致することができる。いくつかの実施形態では、及びノード102などのマスターコントローラの場合、PHY108からのGPIO信号と一致する時、時間tsに、tdの一定の遅延を加えて発生し得る。いくつかの実施形態では、及びノード104などのクライアントコントローラの場合、PHY108からのGPIO信号と一致する時、時間trにtdの一定の遅延を加えて発生することになる。いくつかの実施形態では、PTPイベント伝送の場合、PHY108からのGPIO信号は、時間tsに、tdの一定の遅延を加えて生じることになる。いくつかの実施形態では、PTPイベント受信の場合、PHY108からのGPIO信号は、時間trに、tdの一定の遅延を加えて生じることになる。PdelayReq及びPdelayRespイベント対について、1対の退出要求及び進入応答、又は1対の進入要求及び退出応答が、PHY108からの同じGPIO信号を共有することができる特別な場合がある。そのような場合、PdelayReqの一致は、信号を高く駆動し、一方で、PdelayRespの一致は、信号を順に除去することになる。いずれの場合にも、PHY108からのGPIO信号は、PHY108内部のロジック内のパケット認識を完了するために、そのような時間で生じ得る。任意のマッチングイベントは、フレームSFDであり得るため、所望のタイムスタンプ点に関して、遅延させることができるが、このシフトはtdの定数値でなければならない。イベントの消費者は、この遅延値を知ることにより、測定されたイベントタイムスタンプを補正することができる。
【0033】
図4は、本開示の実施形態による、タイミング及びタイムスタンプ動作のためのハードウェア支援回路の使用を示す。
【0034】
MCU402は、所与のノード内の要素の階層を含み得る。ノードは、アプリケーション層410においてソフトウェアなどのMCU402上で動作する要素を含み得る。ソフトウェアは、IEEE1588のためのソフトウェアを含んでもよい。アプリケーション層410は、オペレーティングシステム408及びMAC406を介してPHY414にインターフェースすることができる。PHY414は、ネットワーク416を介して他のノードと通信することができる。
【0035】
一実施形態では、ノードは、ハードウェア支援回路412を含み得る。ハードウェア支援回路412は、タイムスタンプが実行され得る場所を識別してもよく、そのようなタイムスタンプは、例えば、アプリケーション層410上で実行されるソフトウェアに転送されてもよい。更なる実施形態では、ハードウェア支援回路412は、ハードウェアでPHY414によって実装されてもよい。
【0036】
他のネットワークソリューションとは対照的に、タイムスタンプは、一度生成されると、PHY414などのPHYによって処理されなくてもよい。代わりに、PHY414は、タイムスタンプをMCU402に転送してもよい。MCU402は、例えば、アプリケーション層410上のソフトウェアによりタイムスタンプ測定及びクロック同期を実行することができる。したがって、MCU402は、例えば、IEEE1588動作を実行するための専用ハードウェアを必要としない場合がある。MCU402は、汎用タイマ又はカウンタユニット若しくは回路を含み得る。このような回路は、外部イベントの時間及び周波数を測定するように構成されてもよい。回路は、タイムスタンプ測定を実行するために使用され得る。その結果、タイムスタンプ情報のソフトウェア消費者は、クロック同期を実行することができる。
【0037】
ハードウェア支援回路412は、任意の好適な様式で実装され得る。ハードウェア支援回路412は、MCU402のタイマ又はカウンタ周辺装置を含み得る。ハードウェア支援回路412は、PHY414のタイムポートを含み得る。タイマ又はカウンタは、例えば、フリーランニング32ビットカウンタによって実装されてもよい。このようなカウンタは、232に到達するとオーバーフローし、0に戻ることができる。しかしながら、このようなカウンタは、別様に増分以外の値をリセット又は修正しない場合がある。代わりに、ハードウェア支援回路412は、イベントをマークするために、特定の時点でかかるカウンタの捕捉を実行してもよい。捕捉は、例えば、PHY414からなどの、外部信号からの負、正、又は負若しくは正のエッジによって画定されてもよい。次いで、捕捉された32ビット値は、レジスタ又はメモリアクセスを介してMCU402又はコントローラによってアクセス可能となる。他の実施例では、タイマ又はカウンタは、オンデマンドでリセットすることができる、又はオンデマンドで開始若しくは停止することができるという点で構成可能な32ビットカウンタを含んでもよい。かかるオンデマンド挙動は、例えば、PHY414又はMCU402からなどの、外部信号から負、正、又は負若しくは正のエッジを使用して実行されてもよい。MCU402上で実行されているソフトウェアがカウンタからタイムスタンプを必要とする場合、ソフトウェアは、現在のタイマ値を読み取って、最後のイベントから多くのクロック刻みを回収することができる。更に別の実施例では、タイマは、MCU402又は別のソースからの外部クロックを使用してもよく、PHY414からのイベントによってゲートされてもよい。この実施例では、カウンタは、PHY414からの信号が有効にされている間にのみクロック刻みをカウントすることができる。MCU402のソフトウェアは、カウンタを読み取り、それをリセットしてもよい。任意のこのような場合では、MCU402上の入力捕捉回路は、PHY414上のGPIOピンからの外部イベントの受信に基づいて、タイマからカウンタ値を捕捉するように構成されてもよい。立ち上がりエッジ又は立ち下がりエッジは、捕捉をトリガするために使用されてもよい。一実施形態では、タイマは、そのような外部イベントでリセットするように構成され得る。クロック刻み内の捕捉されたタイマ値を使用して、時間同期を実行するために必要なタイムスタンプ点を判定することができる。PHY414は、ハードウェア支援412でタイムスタンプを実行するように構成されてもよいが、所与のパターンが一致する前には行わない。一実施形態では、タイムスタンプ点は、フレームの開始(start of a frame、SOF)時であってもよい。したがって、PHY414からのタイムスタンプイベントが到着するとき、スタンプされる時間は、既に経過している。このため、所望のタイムスタンプ点(SOFで)と実際のPHYタイムスタンプ点(パターンが一致した後)との間の時間距離は、tdとして与えられる定数値として計算又は推定され得る。この値を使用して、元の所望のタイムスタンプ点は、それが受信された後に報告された場合であっても、ソフトウェアにおいて再構成することができる。
【0038】
タイマ又はカウンタからの測定は、クロックサイクル又はクロック刻みの数であってもよい。クロックサイクル又はクロック刻み持続時間は、順に、選択されたローカルクロックソースに依存する。クロックサイクル又はクロック刻みの数は、PHY414からの2つの外部イベントの間に記録された数であってもよい。カウンタ又はタイマのサイズは、例えば、オーバーフローが発生する前に少なくとも4秒間保持するのに十分であり得る。他の実施例では、カウンタ又はタイマのサイズは、特定のアプリケーションに応じて、4秒以上又は未満を保持するようにサイズ決定することができる。タイミング関数ごとに、複数のタイマ又はカウンタが使用されてもよい。
【0039】
タイマ又はカウンタの範囲を拡張するために、オーバーフロー割り込みを使用することができる。そのために、タイマ又はカウンタのオーバーフロー時に、割り込みが生成されてもよく、割り込みは、ソフトウェアカウンタを増分させることができる。ソフトウェアカウンタは、全体の組み合わせたカウンタの上位ビットであってもよく、一方で、下位ビットは、ハードウェアタイマ又はカウンタであってもよい。続いて、カウンタから値を読み取るとき、ハードウェア及びソフトウェア内の下位ビット及び上位ビット内、又は下位ビット及び上位ビットからの読み取り値、若しくはリセット値を同期させるために、付加的な試みが必要とされる場合もある。
【0040】
ハードウェア支援回路412は、PHY414内又はPHY414の外側に部分的に実装されてもよい。PHY414内にクロックを有する、PHY414内のタイムスタンプを使用する他のソリューションは、PHY414の外部から同じクロックを使用することができない可能性がある。代わりに、MCU402のタイマカウンタ周辺装置を部分的に使用、又は使用せず実装されたハードウェア補助回路412は、マイクロコントローラシステム全体に利用可能なクロックを利用することができる。このため、ハードウェア支援回路412によって記憶されたカウンタの値は、クロックの更なる使用のために、かかるシステムワイドクロックを調整するように使用可能であり得る。
【0041】
図5は、本開示の実施形態による、マスターノードの観点からの例示的なノードセットアップのフローチャート500を示す。セットアップは、2段階モードで動作する任意の好適な時間同期方法に従って、PTPノードなどの任意の好適なノードのためのものであり得る。それぞれのハードウェア支援回路412内のノードのタイマ又はカウンタは、ローカルクロックソースにアクセスするように構成されてもよい。タイマ又はカウンタは、ローカルクロックソースから動作する、フリーランニング32ビットカウンタであってもよい。ローカルクロックソースは、例えば、+/-100百万分率(ppm)の周波数精度を有する最小25MHzであってもよい。ローカルクロックの周期及び所与のクロック刻みの時間は、localTickPeriodとして与えられてもよく、サブナノ秒精度を有するナノ秒で表現されてもよい。これは、ローカルクロックソースの周波数から導出することができる。
【0042】
505において、PTP同期フレームは、1ヘルツなどのclockMasterSyncIntervalによって与えられた、固定された構成可能な速度で開始することができる。自動車アプリケーションでは、速度は、6又は8ヘルツであってもよい。起動中、30ヘルツなどのより高い速度を使用して、同期を加速させることができる。フレームは、送信バス上で他のノードに送信されてもよい。PTP同期フレームは、clockMasterSyncIntervalによって与えられた、固定された構成可能な速度で送信されてもよい。510において、送信された各フレーム上で、ノードのPHYは、同期フレームが送信されている間に認識されたノードのMCUに、イベントを信号送信することができる。各同期フレームが送信されると、ノードのPHYは、ハードウェア支援回路の一部として、PHYによって生成された外部イベントを有する信号送信をし得る。イベントは、515において、ハードウェア支援回路による正確なタイムスタンプを記録するために使用されてもよい。タイムスタンプは、カウンタ値の形態であってもよい。タイムスタンプは、フレームがPHYを出る時間を示すことができる。現在のカウンタ値は、後でMCUによって使用されて、PHYイベントの正確なマスター時間を判定することができる、syncEventEgressTimestampとして記録されてもよい。
【0043】
510及び515と並行して、MCUは、送信が完了するまで、送信されてもよい。エラーが発生する場合、それが報告され得、同期メッセージを生成するプロセスが、繰り返され得る。一度送信が完了すると、520が、実行されてもよい。
【0044】
520において、PTP同期フレームに対応するPTPフォローアップフレームが、送信されてもよい。フォローアップフレームは、捕捉されたタイムスタンプに基づいて、マスター(又は、適切な場合、グランドマスター)時間で送信されてもよい。MCU内で実行されるソフトウェアは、以前に捕捉されたタイマカウンタ値syncEventEgressTimestampを読み取り、使用することができる。この値は、エポック(01/01/1970以来の時間として与えられる)以来、ナノ秒単位で、IEEE802.1ASに準拠したタイムスタンプに変換することができる。このような変換の前に、値は、単に任意の他のゼロ時間に対する絶対量のクロック刻みであってもよい。フォローアップフレームの時間は、使用されなくてもよい。preciseOriginTimestamp値は、同期フレームのsyncEventEgressTimestampに類似し得る、PTPフォローアップフレーム内に含まれてもよい。syncEventEgressTimestampは、IEEE802.1ASタイムスタンプに変換されてもよく、これは次いで、フォローアップフレームのためにpreciseOriginTimestampとして使用される。syncEventEgressTimestamp は、それをlocalTickPeriod定数と乗算することによって、それをナノ秒に変換することによりpreciseOriginTimestampに変換することができ、tdによってタイムスタンプ点オフセットシフトを適用することによって補正されてもよい。タイムスタンプ点オフセットは、タイムスタンプ点を補正するために、図3の要素306に示されるように、時間tdによるオフセットシフトであってもよい。IEEE802.1ASによって必要とされるタイムスタンプ点は、図4の404において示され得る。PHYは、パケットが受信機内で認識された後にのみ、タイムスタンプ遅延され、一致する。これは、ペイロードの第1のバイト中に起こり得る。このオフセットシフトは、使用される固定ビットレートに応じて固定され得るため、測定されたタイムスタンプは、定数値tdを減算して、必要なタイムスタンプ点に修正することによって補正されてもよい。この結果はまた、ゼロオフセットシフトに従って調整されてもよく、これは、時間を、最後のシステムが開始してからの時間から、エポック以来の時間まで並進し得る。結果は、PTPタイムスタンプであってもよい。PTPタイムスタンプは、(例えば、48ビットの)秒カウンタ、及び(例えば、30ビットの)ナノ秒カウンタを含んでもよい。フォローアップフレーム内の全ての他の値は、一定であってもよい。
【0045】
フローチャート500の実行中、MCUは、タイマのオーバーフローを処理すること、時間の上半分(>32ビット)のトラックを保つこと、及びタイマ割り込み要求待ち行列の内部のカウンタをオーバーフロー上に増分することを含む、IEEE1588の目的のためのタイミング及びクロッキングを管理してもよい。
【0046】
図6は、本開示の実施形態による、クライアントノードの観点からの例示的なノードセットアップのフローチャート600を示す。セットアップは、IEEE802.1AS又はIEEE1588によるPTPノード、若しくは1段階又は2段階モードで動作する他の時間同期方法に従って、PTPノードなどの任意の好適なノードのためのものであり得る。それぞれのハードウェア支援回路412内のノードのタイマ又はカウンタは、ローカルクロックソースにアクセスするように構成されてもよい。タイマ又はカウンタは、ローカルクロックソースから動作する、フリーランニング32ビットカウンタであってもよい。ローカルクロックソースは、例えば、+/-100百万分率(ppm)の周波数精度を有する最小25MHzであってもよい。ローカルクロックの周期及びそのための所与のクリックの時間は、localTickPeriodとして与えられてもよく、サブナノ秒精度を有するナノ秒で表現されてもよい。これは、ローカルクロックソースの周波数から導出することができる。
【0047】
605において、PTP同期イベントは、クライアントノードのPHYで受信することができる。610において、PHYは、ハードウェア補助回路の1つの部分として、MCUに信号を送信してもよい。615において、タイムスタンプ値は、MCU内のタイマから捕捉され得、ハードウェア補助回路を完成させることができる。並行して、PHYは、同期フレームの送信を開始することができ、MCUは、620でメッセージを受信する。
【0048】
625において、タイムスタンプは、MCUによって読み取られてもよい。タイムスタンプは、(32ビットカウンタ値が使用され、更なる処理を必要とし、更に以下の他のCv32値によって操作され得ることを示すために)syncEventIngressTimestamp又はsyncReceiptLocalCv32と称されてもよく、上記で使用される退出タイムスタンプと類似し得る。この値から、syncReceiptLocalTimeは、ナノ秒に正規化した後に導出されてもよく(localTickPeriodにより乗算される)、tdによってゼロオフセットシフト及びタイムスタンプ点オフセットシフトを適用して、タイムスタンプ点を補正することができる。
【0049】
630において、PTPフォローアップメッセージが受信されてもよく、635において、フォローアップメッセージが処理されてもよい。PTPフォローアップフレームから、フィールドpreciseOriginTimestamp、rateRatio、及びfollowUpCorrectionFieldが、受信されてもよい。値followUpCorrectionFieldは、マスターとこのスレーブとの間の全てのブリッジを通じる同期イベントメッセージの伝搬遅延を含有する。各ホップ上で、伝搬遅延が加えられる。RateRatioは、最後のノードのグランドマスターに対する比であってもよい。PreciseOriginTimestampは、送信者において計算されてもよく、同期メッセージがグランドマスターノードを発ったときのタイムスタンプであってもよく、マスターノードにおけるsyncEventEgressTimestampであってもよい。FollowUpCorrectionFieldは、上流遅延に関する遅延情報を含んでもよく、この遅延情報は、本発明者らのローカルsyncEventIngressTimestampに対するグランドマスター時間であってもよい。補正フィールド+正確な原点タイムスタンプ+上流遅延は、正しい時間であり得る。
【0050】
640において、以前に捕捉された時間を使用して、TargetClockとして与えられる、それ自体のローカルクロックとの同期を更新するために更なる計算を実行することができる。これらは、例えば、IEEE 802.1ASに従って実行されてもよい。例えば、IEEE 802.1AS-2011、図10図9に定義されているように、
syncReceiptTime=preciseOriginTimestamp+followUpCorrectionField+neighborPropDelay*(rateRatio/neighborRateRatio)+delayAsymmetryである。
NeighborPropDelay及びNeighborRateRatioは、スレーブノード上で実行するPdelay測定からの結果である。このような測定は、タイマ/カウンタ周辺装置で実行されてもよいが、定数によって置き換えられてもよい。NeighborPropDelayは、ローカルポート及び近隣ポートの上流の遅延であり、それを介して同期が横断している。NeighborRateRatioは、ローカルクロックと近隣ノードのクロックとの間の比であり、それを介して同期が横断している。DelayAsymmetryは、このポートに付与されたリンク上の、グランドマスター時間ベースに対する伝搬遅延の非対称性である。
【0051】
いくつかの実施形態では、スレーブがPdelay測定を実行せず、このためneighborPropDelay及びneighborRateRatio値を収集することができない場合、この計算は、
syncReceiptTime=preciseOriginTimestamp+followUpCorrectionField+configneighborPropDelayに簡略化することができ、
式中、configneighborPropDelayは、サブナノ秒精度で構成可能な一定時間持続時間である。そのような定数は、受信経路に対する任意の遅延非対称補正を既に含んでもよい。
【0052】
最後に、スレーブノードは、マスターのクロックソースの周波数の、ローカルクロックエンティティの周波数に対する測定された比である、IEEE802.1ASに従ってgmRateRatioの値を計算しなければならない。これは、各々以下にアポストロフィによって図示される連続した同期パラメータのシーケンスにわたって実行されてもよく、アポストロフィは、後続の同期パラメータインスタンス:
gmRateRatio=(syncReceiptTime’-syncReceiptTime)/(syncReceiptLocalTime’-syncReceiptLocalTime)、
又は
32ビットカウンタについては、gmRateRatio=(syncReceiptTime’-syncReceiptTime)/((syncReceiptLocalCv32’-syncReceiptLocalCv32)mod 232*localTickPeriodを示す。
モジュロ動作は、異なるビット解像度をmod 2sに調整することができ、ここでsは、カウンタのビットサイズである。同期パラメータのタプルは、この同期プロセス:(syncReceiptTime,syncReceiptLocalTime,syncReceiptLocalCv32,gmRateRatio)の結果として更新され得る。
【0053】
640において時間が同期されると、同期時間は、任意の好適な様式で使用されてもよい。同期時間は、様々な時間関連動作に適用され得る。イベントは、任意の所与のグランドマスター時間で生成されてもよく、又はイベントは、同期クロックを使用してタイムスタンプされてもよい。
【0054】
例えば、外部イベントは、同期クロックを使用して周辺装置によってタイムスタンプされてもよい。イベントは、例えば、GPIOピン、MCU上の周辺ピン、又は任意の他の好適なルーティング機構によって周辺装置にルーティングされてもよい。周辺装置は、イベントを監視し、同期クロックにアクセスして、イベントをタイムスタンプするように構成されてもよい。例えば、自動車ネットワーク内のセンサコントローラは、外部クロックに同期するために図6の方法を最初に使用してもよい。続いて、センサコントローラは、接続されたセンサスイッチからの電気イベントなどのイベントをタイムスタンプしてもよい。正確なタイムスタンプは、ネットワーク内の他のノードへのイベントの指示と共に送信されてもよい。そのような実施例では、タイマカウンタ周辺装置は、ハードウェア内のかかるイベントを監視し、信号エッジの着信時に、タイマの捕捉された値を、グランドマスター時間ベースに対するタイムスタンプに変換するように構成されてもよく、そのため、他の時間認識ノードが、タイムスタンプを適切に使用することができる。このタイムスタンプは、eventCaptureTimeとして与えられてもよい。
【0055】
周辺装置は、イベントE上の32ビットカウンタを捕捉し、カウンタ又はタイマの捕捉された値を読み取り、それをeventCaptureLocalCv32として記憶するために、ハンドラを実装するように構成されてもよい。以下の計算は、図6のクロック同期プロセスの最後の更新からのパラメータを使用して、測定された時間をグランドマスター時間に関連させるために実行されてもよい。
eventCaptureTime = (((eventCaptureLocalCv32 - syncReceiptLocalCv32) mod 232* localTickPeriod * gmRateRatio) + syncReceiptTime
【0056】
同期イベント生成を実行するために、外部イベントEは、Eに関連するMCU出力ピン上に信号エッジを作成することによって、グランドマスター時間ベースに対して、所与のeventTriggerTimeにおいて、生成されなければならない。これは、カウンタ比較の一致に対して出力信号をトリガ又はトグルするようにプログラムすることができる、ハードウェア補助回路のタイマカウンタ周辺装置によって実行され得る。周辺装置は、タイマ又はクロック値がプログラムされた閾値と一致するとき、イベントを生成するコンパレータを含んでもよい。eventTriggerLocalCv32として与えられる閾値をプログラムするために、所与のeventTriggerTimeを最初に変換しなければならない:
eventTriggerLocalCv32 = (((eventTriggerTime - syncReceiptTime) / gmRateRatio / localTickPeriod) + syncReceiptLocalCv32) mod 232。ただし、これはイベント時間が近い将来であることを条件とする。この値をタイマ又はカウンタの値に一致させると、割り込みが、トリガされ得る。加えて、周辺装置は、他の使用のために解放されてもよい。
【0057】
いくつかの実施形態では、ハイブリッドアプローチを有効にすることができる。例えば、1つの経路が固定されたレイテンシを有する場合、MAC層にタイムスタンプすることができる。可変レイテンシを有する他の経路は、PHYでタイムスタンプされてもよい。
【0058】
本開示は、1つ以上の実施形態に関して記述されており、特に明言されたものとは別に、多くの等価物、代替物、変形物、及び修正が可能であり、本開示の範囲内にあることが認識されるべきである。本開示は様々な修正及び代替の形態が可能である一方で、それらの特定の実施形態の例が、図で示され、本明細書で詳細に記述される。しかしながら、特定の実施形態の例の本明細書の記述は、本明細書で開示された特定の形態に開示を限定する意図はないことが理解されるべきである。
図1
図2
図3
図4
図5
図6