運行模式與幀間隙(IFG)變化

作者:ADI

背景

本文介紹了fido5200/fido5210(以下簡稱FIDO52x0)在不同幀間隙(IFG)條件下的性能表現,並針對各類場景提供了元件的優化配置建議。

FIDO52x0是一款即時乙太網路多協定(REM)二埠交換器。此款REM交換器為用戶提供了彈性選擇空間,可搭配適合應用場景的處理器,輸送量達10Mbps/100Mbps,相容多數第2層或第3層協議。FIDO52x0支援的協定包括:EtherCAT、PROFINET即時(RT)與等時即時(IRT)、支援或不支援裝置級迴網(DLR)的EtherNet/IP、Modbus TCP、POWERLINK等。交換機內建各協定對應的軟體驅動程式,這些驅動程式提供API,可實現與任何現場元件或協議棧的整合。

IFG配置

IEEE 802.3乙太網路標準要求幀間隙(IFG)為12位元組時長,這也是FIDO52x0支援的預設值。不過,EtherCAT技術協會(ETG)允許IFG低於該數值。FIDO52x0韌體已進行修改,可支援低至8位元組時長的IFG。

FIDO52x0計數的輸入資料RX IFG可透過RX IFG暫存器進行配置。RX IFG計數在RX MAC中完成。暫存器值必須設為目標RX IFG-1。因此,若需支援12位元組的RX IFG,需將RX IFG計數設為11。請注意,若輸入資料的IFG小於RX IFG暫存器的設定值,FIDO52x0會直接丟棄該幀。

輸出資料封包的最小間隙可透過TX IFG暫存器配置。TX IFG在TX MAC中強制執行。輸出IFG不小於TX IFG暫存器中的值。

請注意,為避免RX緩衝區溢位,必須平衡RX和TX IFG的最小值,以確保元件正常運行。以要求12位元組的IFG場景為例,「平衡」指的是將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)空間。此一過程可能導致同步時出現半位元組時間(40ns)的資料丟失,主要取決於三個時脈之間的相位關係及資料封包處理模組在處理連續資料封包時的執行狀態。

Figure 1. Hardware synchronization overview
圖1.硬體同步概述

實際應用案例

ADI的一家客戶在開發一款感測器裝置時,遇到了如下問題:在由多種不同裝置組成的網路中,感測器裝置出現了丟幀現象。經時序偵測發現,當FIDO52x0的RX IFG配置為10位元組時長、TX IFG配置為11位元組時間時,接收端(TX)的實際IFG為9位元組時間。而當RX IFG小於FIDO52x0中配置的值時,交換器會自動丟棄該幀。透過將RX IFG暫存器重新配置為7,並將TX IFG暫存器重新配置為8,該問題得以解決。隨後,該裝置在包含多台裝置的大型網路中進行了測試,再未出現問題。相關記錄顯示該網路中包含87台裝置,但客戶向ADI口頭回饋稱網路中有127台裝置。

備註

修訂歷史

2025年5月——修訂版0:初始版

法律條款和條件

本文所含全部資訊均按「原樣」提供,不附帶任何陳述或擔保。ADI不對資料的使用承擔責任,也不對因使用這些資料所引起的任何違反協力廠商專利或者其他權利的行為承擔責任。規格可能更改,恕不另行通知。對於涉及ADI產品或服務的任何組合、機器或流程,ADI未授予任何明示或暗示的許可,包括基於其專利權、版權、光罩作品權或其他任何智慧財產權的許可。本文提及的所有ADI產品均以實際發佈情況及供貨能力為準。