EtherCATはどのようにして低遅延を実現するのか?

従来のEthernetは、次のようなワークフローに従います。
フレーム全体を受信 → CPUによる解析 → 応答を生成 → フレーム全体を送信

EtherCATは、LAN9252 内部で受信、処理、および転送を並行して実行します。

EtherCATシステムのブロック図

LAN9252 システムのブロック図:デュアルPHY + ESCカットスルー転送経路
(画像提供:Microchip)

技術的なヒント: ESC = EtherCATスレーブコントローラ(EtherCATサブデバイスコントローラとも呼ばれる)

Microchipの LAN9252 を例に説明します。周辺のサポート部品は、2チャンネルの絶縁用マグネティクス+RJ45コネクタ、および25MHz基準水晶発振器です。

超低遅延の原理

フレームの「オンザフライモード」によるハードウェアパイプライン

EtherCATマスターは1つの長いEthernetフレームを送信し、このフレームは各スレーブステーションのPort 0に順次シリアルで入力されます。

フレームのビットストリームは、RJ45 → 絶縁用マグネティクス → LAN9252 のオンチップPHYを通り、ESCコアに入力されます。

Ethernetフレーム全体をバッファリングする必要はありません! ESCハードウェアは、フレーム構造をビット単位で解析します。

  • 現在のスレーブに割り当てられた出力データセグメントを読み取る際、ハードウェアがデータを直接取得し、オンチップDPRAMに書き込みます。

  • マスターにアップロードする入力データ用に確保された位置に到達すると、ハードウェアはローカルでサンプリングされたデータをDPRAMから取得し、それをフレームに挿入します。

    変更されていない残りのビットストリームは、Port1のPHY、絶縁用マグネティクス、およびRJ45を介して、直ちに次のスレーブに転送されます。

これに対し、標準的なEthernetコントローラは、フレーム全体を受信してから、ソフトウェアによる解析のためにCPUに引き渡す必要があります。単一ノードの遅延は数十マイクロ秒からとなり、さらに大きなソフトウェアオーバーヘッドを伴います。

ブロック図内の2つの並列データフローは、ブロッキングなしで動作します

完全に独立した2つの信号経路があります。

  1. ネットワーク経路:RJ45 ↔ PHY ↔ ESC ↔ DPRAM(ハードウェアによる自律動作、MCUのリソースを占有しない)
  2. ローカル経路:DPRAM ↔ ローカルバス ↔ ローカルMCU

DPRAMは、Dual-Port RAM(デュアルポートRAM)の略です。ネットワークハードウェアとMCUは、DPRAMに並列にアクセスできます。一方がメモリを占有して他方のアクセスを妨げるような、キューイングによるボトルネックは発生しません。

EEPROMの役割(ブロック図の左上)

ESCの設定(FMMU、SyncManagerパラメータ)は、電源投入時に自動的に読み込まれます。MCUソフトウェアによるプロトコルの初期化は不要であり、起動時の遅延をさらに低減できます。

関連製品

Microchipの LAN9252

関連製品

その他のリソース
LAN9252 データシート

関連技術トピック




オリジナル・ソース(English)