AN-2612: フレーム間ギャップ(IFG)の変化に伴う動作モード

背景

このアプリケーション・ノートでは、フレーム間ギャップ(IFG)が異なる場合におけるFIDO5200/FIDO5210(以下、FIDO52x0)の性能と、そうした場合にデバイスを最適にセットアップする方法について説明します。

FIDO52x0 は、リアルタイム・イーサネット・マルチプロトコル(REM)対応の2 ポート・スイッチです。REM スイッチは、アプリケーションに最適なプロセッサを選択できる柔軟性を備えています。このスイッチは、10Mbps/100Mbps のスループットを備え、レイヤ2 およびレイヤ3 のほとんどのプロトコルに対応します。FIDO52x0 は、EtherCAT に加え、PROFINET リアルタイム(RT)およびアイソクロナス・リアルタイム(IRT)、デバイス・レベル・リング(DLR)付きまたはDLR なしのEtherNet/IP、Modbus TCP、POWER-LINK をサポートします。スイッチには、各プロトコルに対応するソフトウェア・ドライバが付属しています。ソフトウェア・ドライバは、フィールド・デバイスやプロトコル・スタックとの統合を可能にするAPI を提供します。

IFG の設定

IEEE 802.3 イーサネット規格では、IFG は12 バイト時間であることが求められます。FIDO52x0 は、このIFG をデフォルトでサポートしています。一方、EtherCAT Technical Group(ETG)は、IFG がこれより短くなることを許容しています。FIDO52x0 のファームウェアは、最短で8 バイト時間までのIFG をサポートするように変更されています。

FIDO52x0 が受信データでカウントするRX IFG は、RX IFG レジスタを使用して設定できます。RX IFGはRX MAC でカウントされます。レジスタ値は、必要なRX IFG から1 を差し引いた値に設定する必要があります。したがって、RX IFG を12 とする場合は、RX IFGカウントを11に設定する必要があります。なお、受信データのIFG がRX IFG で設定した値より短い場合、FIDO52x0 はそのフレームをドロップします。

送信パケット間の最小ギャップは、TX IFG レジスタで設定できます。TX IFG はTX MAC で適用されます。送信されるIFG は、TX IFG レジスタで設定した値以上になります。

なお、RX バッファのオーバーフローを防ぐためには、RX およびTXのIFGの最小値をバランス良く設定することが重要です。バランス良くとは、IFG を12 とする必要がある場合に、RX IFGを11、TX IFG を12 に設定することを意味します。この場合、FIDO52x0 はRX IFG を11 としてカウントし、TX でIFG を12 に復元します。

ハードウェアの同期

図1 に、FIDO52x0 の同期ブロックのブロック図を示します。

25MHz のRXCLK 信号およびRX_DV 信号が処理されて、125MHz のクロック空間に同期されます。MACは、RX_DVの立上がりエッジとフレーム開始区切り(SFD)を検出し、その情報をパケット処理ロジックに伝達します。25MHz と125MHz のクロック・エッジの位置関係によっては、125MHz のクロック位相に対して+0/−1 のRXCLK 時間(1/25MHz = 40ns)のジッタが発生する可能性があります。パケット処理は、125MHz のシステム・クロック空間(図1 の中央のブロック)で行われます。送信データは、TXCLK(25MHz)空間に同期されます。これにより、同期中に1 ニブル分の時間損失(40ns)が生じる可能性があります。この損失は、主として3 つのクロックの間の位相関係と、受信パケット間におけるパケット・ハンドラの実行状態に依存します。

図1. ハードウェア同期の概要
図1. ハードウェア同期の概要

実際の使用事例

トランスジューサ・デバイスを開発するアナログ・デバイセズのあるお客様は複数のデバイスが混在するネットワークにおいて、フレームがドロップするという問題に直面しました。タイミングを調べた結果、FIDO52x0 でRX IFG を10 バイト時間、TX IFG を11 バイト時間に設定していたにもかかわらず、RX でのIFG が9 バイト時間しかなかったことがわかりました。RXIFG がFIDO52x0 で設定した値より短い場合、スイッチは自動的にフレームをドロップします。RX IFG レジスタを7、TX IFG レジスタを8 に再設定することで、この問題が解決しました。その後、このデバイスは大規模なデバイス・ネットワークでテストされましたが、問題は報告されませんでした。文書にはネットワーク内のデバイス数は87 台と記載されていました。一方、口頭ではアナログ・デバイセズに127 台と報告されました。