基於 E3110 開發板的以太網 MII & RMII 簡介

關鍵字 :E3110MIIRMIISemiDriveEthernet

1. 前言

        MAC 是 Media Access Control 的縮寫,是以太網標準里定義的一個 Control,通常集成在晶片裡,掛在 CPU 的數據總線上,主要功能是打包 CPU 發送的數據給 PHY,或者解包從 PHY 收到的數據給 CPU。

        MAC(Media Access Control) 和 MII(Media Independent Interface) 是以太網中的兩個重要組件。MII 用於連接 MAC 和 PHY(Physical Layer) 晶片。

        RMII(Reduced Media Independent Interface)只需使用半雙工模式,是一種更為精簡的 MII 接口,用於減少接口引腳數和功耗。

        在方案設計時,工程師可根據實際需要來選擇適合的接口。本文旨在通過 E3110 開發板的以太網 MII & RMII 做一個簡單的介紹。


2. MII 接口

2.1  MII  概述

        MII(Media Independent Interface),它是一種標準化的接口,定義了一組信號,這些信號包括數據、時鐘、同步、控制等。MII 接口通常用於以太網交換機、網絡接口卡等設備中,它可以支持傳輸速率為 10 Mbps 或 100 Mbps 的以太網協議。MII 接口還可以與 PHY(物理層)器件相連,從而將數據從邏輯層傳輸到物理層,完成數據的編碼、調製和解調等操作。下圖為 MAC 與 PHY 的 MII 硬體連接示意圖:

圖 2-1  MII 硬體連接示意圖

 

2.2  MII接口引腳解析

MII 包括一個數據接口,以及一個 MAC 和 PHY 之間的管理接口:

        MII 數據接口包含 16 個信號和 2 個管理接口信號,當 CLK 信號為 25MH(對應100Mb/s)或 2.5MHz(對應10Mb/s),數據傳輸的位寬為 4 位。

 

信號名稱

描述

方向

TX CLK

發送數據使用的時鐘信號,對於10M位/s的數據傳輸,此時鐘為2.5MHz,對於100M位/s的數據傳輸,此時鐘為25MHz。

PHY->MAC

TX ER

發送數據錯誤

MAC->PHY

TX EN

傳輸使能信號,此信號必需與數據前導符的起始位同步出現,並在傳輸完畢前一直保持。

MAC->PHY

TXD(O-3)

發送數據線,每次傳輸4位數據,數據在MII_TX_EN信號有效時有效。MII_TXD[0]是數據的最低位,MII_TXD[3]是最高位。當MII_TX_EN信號無效時,PHY忽略傳輸的數據。 

MAC->PHY

RX CLK

接收數據使用的時鐘信號,對於10M位/s的數據傳輸,此時鐘為2.5MHz,對於100M位/s的數據傳輸,此時鐘為25MHz。

PHY->MAC

RX DV

接收數據使能信號,由PHY控制,當PHY準備好數據供MAC接收時,使能該信號。此信號必需和幀數據的首位同步出現,並保持有效直到數據傳輸完成。在傳送最後4位數據後的第一個時鐘之前,此信號必需變為無效狀態。為了正確的接收一個幀,有效電平不能滯後於數據線上的SFD位出現。

PHY->MAC

RX ER

接收出錯信號,保持一個或多個時鐘周期(MII_RX_CLK)的有效狀態,表明MAC在接收過程中檢測到錯誤。具體錯誤原因需配合MII_RX_DV的狀態及MII_RXD[3:0]的數據值。

PHY->MAC

RXD(O-3)

接收數據線,每次接收4位數據,數據在MII_RX_DV信號有效時有效。MII_RXD[0]是數據的最低位,MII_RXD[3]是最高位。當MII_RX_EN無效,而MII_RX_ER有效時,MII_RXD[3:0]數據值代表特定的信息

PHY->MAC

CRS

載波偵聽信號,僅工作在半雙工模式下,由PHY控制,當發送或接收的介質非空閒時,使能此信號。 PHY必需保證MII_CRS信號在發生衝突的整個時間段內都保持有效,不需要此信號與發送/接收的時鐘同步。

PHY->MAC

COL

衝突檢測信號,僅工作在半雙工模式下,由PHY控制,當檢測到介質發生衝突時,使能此信號,並且在整個衝突的持續時間內,保持此信號有效。此信號不需要和發送/接收的時鐘同步。

PHY->MAC

MDIO

是 PHY 和 STA 之間的雙向信號。 它用於在 PHY 和 STA 之間傳輸控制信息和狀態。 控制信息由 STA 同步地針對 MDC 驅動並且由 PHY 同步地採樣。 狀態信息由 PHY 針對 MDC 同步驅動並由 STA 同步採樣。

MAC 雙向 PHY

MDC

由站管理實體向 PHY 提供,作為在 MDIO 信號上傳送信息的定時參考。 MDC 是一種非周期性的信號,沒有最高或最低時間。 無論 TX_CLK 和 RX_CLK 的標稱周期如何,MDC 的最小高低時間應為 160 ns,MDC 的最小周期為 400 ns。

MAC->PHY

 

表 2-2 MII 數據接口和管理接口引腳解析

 

2.3  MII 時鐘源

        MII 時鐘源通常由一個晶體振盪器或者一個外部時鐘源提供時鐘信號,以確保設備在傳輸數據時保持同步。此外,MII 時鐘源還可能包含一個鎖相環電路(PLL),用於生成一個更高精度的時鐘信號,以適應不同的網絡速率和協議。

       在設計網絡通信設備時,選擇適當的 MII 時鐘源至關重要。正確的時鐘源可以確保網絡設備之間的數據傳輸和同步,從而提高網絡性能和可靠性

       總之,MII 時鐘源通過提供一個統一的時鐘信號來同步數據的傳輸,從而確保了數據的可靠性和穩定性,是計算機網絡中重要的接口標準之一。

 

 

3. RMII 接口

3.1   RMII 概念

        RMII(Reduced Media Independent Interface) 是 MII  的簡化接口。RMII 接口比 MII 接口擁有更少的 I/O 傳輸,RMII(8 根線)只有7根數據線 和 1 根控制線,其中 RX_ER 可以省略不接。此外,RMII 還需要一個時鐘線,這個時鐘線可以是 50MHz 或 25MHz 的時鐘信號。RMII 傳輸速率和 MII  一樣,支持 10Mb/s 和 100Mb/s。不同的是 RMII 在 10Mb/s 和 100Mb/s 下 CLK 都為 50MHz。即在相同速率下 RMII 比 MII 數據線少了一半,極大的減小了走線壓力和埠壓力。下圖為 MAC 與 PHY 的 RMII 硬體連接示意圖,需要注意的是:如果是需要自適應 10Mb/s 和100Mb/s,TX_CLK 是由 PHY 晶片發出。



圖 3-1  RMII 硬體連接示意圖

 

3.2   RMII 數據接口和管理接口引腳解析

信號名稱

描述

方向

RXD(O-1)

接收數據線,分別傳輸高位和低位數據,數據位寬為2,是MII接口的一半。

PHY->MAC

TXD(O-1)

數據發送信號線,數據位寬為2,數據位寬為2,是MII接口的一半。

MAC->PHY

CRS_DV

信號是由MII接口中的RX_DV和CRS兩個信號合併而成。當介質不空閒時,CRS_DV和RECLK相異步的方式給出。當CRS比RXDV早結束時(即載波消失而隊列中還有數據要傳輸時),就會出現CRSDV在半位元組的邊界以25MHz/2.5MHz的頻率在0、1之間的來回切換。因此,MAC能夠從 CRSDV中精確的恢復出RXDV和CRS。

PHY->MAC

CLK_REF

是由外部時鐘源提供的50MHz參考時鐘,與MII接口不同,MII接口中的接收時鐘和發送時鐘是分開的,而且都是由PHY晶片提供給MAC晶片的。這裡需要注意的是,由於數據接收時鐘是由外部晶振提供而不是由載波信號提取的,所以在PHY層晶片內的數據接收部分需要設計一個FIFO,用來協調兩個不同的時鐘,在發送接收的數據時提供緩衝。PHY層晶片的發送部分則不需要FIFO,它直接將接收到的數據發送到MAC就可以了。

PHY->MAC

RX_ER

數據接收錯誤提示信號,與MII接口中的該信號線功能一樣。

PHY->MAC

TX_EN

數據發送使能信號,與MII接口中的該信號線功能一樣。

MAC->PHY

MDIO

管理數據輸入輸出,用於傳輸管理數據的輸入和輸出

MAC 雙向 PHY

MDC

管理數據時鐘,用於傳輸管理數據

MAC->PHY

表 3-2  RMII 數據接口和管理接口引腳解析

 

3.3   RMII  時鐘源

       RMII 時鐘源是一種嵌入式系統和網絡設備中常用的接口標準。RMII 時鐘源的原理與 MII 類似,也是通過一個統一的時鐘信號來同步數據的傳輸。與 MII 不同的是,RMII 時鐘源採用了較少的引腳來傳輸數據和時鐘信號。具體來說,RMII 時鐘源將原來 MII 中的 4 條數據線(TXD0、TXD1、RXD0、RXD1)壓縮成了 2 條數據線(TXD、RXD),同時將原來 MII 中的 2 條時鐘線(TX_CLK、RX_CLK)壓縮成了 1 條時鐘線 REF_CLK。這樣做既可以降低成本,又可以提高系統的可靠性和穩定性。需要注意的是,由於 RMII 時鐘源採用了壓縮的數據和時鐘線,因此在設計和實現時需要仔細考慮電路布局和信號完整性等因素,以確保系統的正常運行。

 

 

4. E3110 開發板的以太網設計

       E3110 開發板設計的以太網外設選用的是在開發板上預留 RMII 的接口,通過 NXP SBC FS5600給以太網 RMII 接口進行 3.3V 供電,開發板上預留的 RMII 接口可以與景略的板子相互接插,實現以太網功能。下圖是 E3110 開發板的 RMII 接口原理圖。

圖 4-1  RMII Ethernet Interface 原理圖

 

       E3110 開發板通過選用 GPIO_G  實現串行輸入輸出 RMII 的接口配對,完成引腳復用,可以通過GPIO(General Purpose Input/Output)來模擬,GPIO 可實現串行輸入輸出,E3110 開發板上會提供 PIN MUX 供用戶自定義使用。具體 E3110 PIN MUX 配置表參考下圖:

圖 4-2 表 E3110 PIN MUX 配置表

 

        每組 SMI 需要兩個 GPIO 口分別來模擬 MDC 和 MDIO,首先需要保證這兩個 GPIO 口不作其他用途,且相應的復用模式設置為 GPIO 模式。

       模擬 MDC 是將相應 GPIO 設置為輸出模式(由 MAC 提供時鐘),在 MDIO 上發送和讀取數據時提供時鐘即可,具體來說,向 GPIO 寫 0 即為低電平,向 GPIO 寫 1 即為高電平,電平持續時間可通過 usleep 等待或執行數條空指令來實現。

       模擬 MDIO 就是實現一套 read/write 時序,也通過向 GPIO 寫 0 或寫 1 實現,實現原則為改變 GPIO 的輸入/輸出模式,而 read 的後半段即為從 GPIO 上讀數據。

 

如對此有更多需求,敬請聯繫世平集團 ATU 部門,atu.cn@wpi-group.com

 

 

5. 參考文獻

[1] 以太網詳解(一)-MAC/PHY/MII/RMII/GMII/RGMII基本介紹

[2] 相關網址:https://blog.csdn.net/weixin_44415816/article/details/122280157

[3] 相關網址:https://blog.csdn.net/wjcqwe/article/details/129102669

 

歡迎在博文下方留言評論,我們會及時回復您的問題。如有更多需求,歡迎聯繫大聯大世平集團 ATU 部門:atu.sh@wpi-group.com
作者:Sandy Yang / 楊羽潔

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

評論