Tuesday, December 28, 2010

Ethernet Pin Knowledge -- RMII / SMII Pin Connection (1)






轉:http://download.csdn.net/source/2715574

       本文主要分析MII/RMII/SMII,以及GMII/RGMII/SGMII接口的信號定義,及相關知識,同時本文也對RJ-45接口進行了總結,分析了在10/100模式下和1000M模式下的設計方法。

1. MII接口分析

       MII接口提供了MAC與PHY之間、PHY與STA(Station Management)之間的互聯技術,該接口支持10Mb/s與100Mb/s的數據傳輸速率,數據傳輸的位寬為4位。
      提到MII,就有可能涉及到RS,PLS,STA等名詞術語,下面講一下他們之間對應的關係。
      所謂RS即Reconciliation sublayer,它的主要功能主要是提供一種MII和MAC/PLS之間的信號映射機制。它們(RS與MII)之間的關係如下圖:
 
圖1
        MII接口的Management Interface可同時控制多個PHY,802.3協議最多支持32個PHY,但有一定的限制:要符合協議要求的connector特性。所謂Management Interface,即MDC信號和MDIO信號。
       前面已經講過RS與PLS的關係,以及MII接口連接的對象。它們是通過MII接口進行連接的,示意圖如下圖。由圖可知,MII的Management Interface是與STA(Station Management)相連的。
        
MII接口支持10Mb/s以及100Mb/s,且在兩種工作模式下所有的功能以及時序關係都是一致的,唯一不同的是時鐘的頻率問題。 802.3要求PHY不一定一定要支持這兩種速率,但一定要描述,通過Management Interface反饋給MAC。

 
圖2
       下面將詳細介紹MII接口的信號定義,時序特性等。由於MII接口有MAC和PHY模式,因此,將會根據這兩種不同的模式進行分析,同時還會對RMII/SMII進行介紹。
1.1 MII 接口信號定義
MII 接口可分為 MAC 模式和 PHY 模式,一般說來 MAC 和 PHY 對接,但是MAC 和 MAC 也是可以對接的。

以前的10M的 MAC 層芯片和物理層芯片之間傳送數據是通過一根數據線來進行的,其時鐘是10M,在100M中,如果也用一根數據線來傳送的話,時鐘需要100M,這會帶來一些問題,所以定義了 MII 接口,它是用 根數據線來傳送數據的,這樣在傳送100M數據時,時鐘就會由100M降低為25M,而在傳送10M數據時,時鐘會降低到2.5M,這樣就實現了10M100M的兼容。
MII 接口主要包括四個部分。 一是從 MAC 層到物理層的發送數據接口,二是從物理層到 MAC 層的接收數據接口,三是從物理層到 MAC 層的狀態指示信號,四是 MAC 層和物理層之間傳送控制和狀態信息的 MDIO 接口。

MII 接口的 MAC 模式定義
 
MII接口的PHY模式定義 
 

1.2 MII接口時序特性
MII接口中,TX通道参考时钟是TX_CLKRX通道参考时钟是RX_CLK802.3-2005定义了它们之间的关系。
 
Transmit signal timing relationships at the MII
由图3可知,即The clock to output delay shall be a min of 0 ns and a max of 25 ns,参考时钟沿是上升沿。很明显,该Spec只对TX通道上MAC这一侧的发送特性作了定义,而对TX通道PHY那一侧的接收特性并没有定义。IC Vendor可在TX通道那一侧的PHY的接收特性作适当调整,只要最终的时序满足TX通道上MAC这一侧的发送特性就可以。

 4 Receive signal timing relationships at the MII
由圖 可知, The input setup time shall be a minimum of 10 ns and the input hold time shall be a minimum of 10 ns ,參考時鐘沿是上升沿。很明顯,該 Spec 只對RX 通道上 MAC 這一側的接收特性作了定義,而對 RX 通道 PHY 那一側的發送特性並沒有定義。IC Vendor 可在 RX 通道那一側的 PHY 的發送特性作適當調整,只要最終的時序滿足 RX 通道上 MAC 這一側的接收特性就可以。
1.3 MII 信號功能特性
<1> : TX_CLK (transmit clock) , TX_CLK (Transmit Clock) 是一個連續的時鐘信號(即係統啟動,該信號就一直存在),它是 TX_EN, TXD, and TX_ER(信號方向為從 RS 到 PHY) 的參考時鐘, TX_CLK 由 PHY 驅動 TX_CLK 的時鐘頻率是數據傳輸速率的 25% ,偏差 +-100ppm  例如, 100Mb/s 模式下,TX_CLK 時鐘頻率為 25MHz ,佔空比在 35% 至 65% 之間。
<2> :對於同樣的 RX_CLK , 它與 TX_CLK 具有相同的要求,所不同的是它是 RX_DV, RXD, and RX_ER( 信號方向是從 PHY 到 RS) 的參考時鐘。RX_CLK 同樣是由 PHY 驅動, PHY 可能從接收到的數據中提取時鐘RX_CLK ,也有可能從一個名義上的參考時鐘 (eg, the TX_CLK reference) 來驅動 RX_CLK
<3> : TXD (transmit data) , TXD 由 RS 驅動,同步於 TX_CLK ,在TX_CLK 的時鐘週期內,並且 TX_EN 有效, TXD 上的數據被 PHY 接收,否則TXD 的數據對 PHY 沒有任何影響。

 
 5
<4>TX_ER (transmit coding error)TX_ER同步于TX_CLK,在数据传输过程中,如果TX_ER有效超过一个时钟周期,并且此时TX_EN是有效的,则数据通道中传输的数据是无效的,没用的。注:当TX_ER有效并不影响工作在10Mb/sPHY或者TX_EN无效时的数据传输。在MII接口的连线中,如果TX_ER信号线没有用到,必须将它下拉接地。

 
 6
<5>RX_DV (Receive Data Valid)RXD_DV同步于RX_CLK,被PHY驱动,它的作用如同于发送通道中的TX_EN,不同的是在时序上稍有一点差别:为了让数据能够成功被RS接收,要求RXD_DV有效的时间必须覆盖整个FRAME的过程,即starting no later than the Start Frame Delimiter (SFD) and excluding any End-of-Frame delimiter,如下图7。
 
 7
<6>RXD (receive data)RXDPHY驱动,同步于RX_CLK,在RX_CLK的时钟周期内,并且RX_DV有效,RXD上的数据被RS接收,否则RXD的数据对RS没有任何影响。While RX_DV is de-asserted, the PHY may provide a False Carrier indication by asserting the RX_ER signal while driving the value <1110> onto RXD<3:0> 
 
 8
<7>RX_ER (receive error)RX_ER同步于RX_CLK,其在RX通道中的作用类似于TX_ER对于TX通道数据传输的影响。
  
 9
<8>CRS (carrier sense)CRS不需要同步于参考时钟,只要通道存在发送或者接收过程,CRS就需要有效。The behavior of the CRS signal is unspecified when the duplex mode bit 0.8 in the control register is set to a logic one(自动协商禁止,人工设为全双工模式), or when the Auto-Negotiation process selects a full duplex mode of operation,即半双工模式信号有效,全双工模式信号无效。
<9>COL (collision detected)COL不需要同步于参考时钟。The behavior of the COL signal is unspecified when the duplex mode bit 0.8 in the control register is set to a logic one(自动协商禁止,人工设为全双工模式), or when the Auto-Negotiation process selects a full duplex mode of operation。即半双工模式信号有效,全双工模式信号无效。
  
 10
1.4 MII的管理MDIO接口
MDIO接口包括两根信号线:MDCMDIO,通过它,MAC层芯片(或其它控制芯片)可以访问物理层芯片的寄存器(前面100M物理层芯片中介绍的寄存器组,但不仅限于100M物理层芯片,10M物理层芯片也可以拥有这些寄存器),并通过这些寄存器来对物理层芯片进行控制和管理。MDIO管理接口如下:
MDC:管理接口的时钟,它是一个非周期信号,信号的最小周期(实际是正电平时间和负电平时间之和)为400ns,最小正电平时间和负电平时间为160ns,最大的正负电平时间无限制。它与TX_CLKRX_CLK无任何关系。
MDIO是一根双向的数据线。用来传送MAC层的控制信息和物理层的状态信息。MDIO数据与MDC时钟同步,在MDC上升沿有效。MDIO管理接口的数据帧结构如:
 
 11 MDIO管理接口的数据帧结构
幀結構各域的含義如下:
PRE :幀前綴域,為 32 個連續“比特,這幀前綴域不是必要的,某些物理層芯片的 MDIO 操作就沒有這個域。
ST :幀開始標誌,出現“01 比特表示幀設計開始。
OP :幀操作碼,比特“10 表示此幀為一讀操作幀,比特“01 表示此幀為一寫操作幀。
PHYAD :物理層芯片的地址, 個比特,每個芯片都把自己的地址與這 5個比特進行比較,若匹配則響應後面的操作,若不匹配,則忽略掉後面的操作。
REGAD :用來選擇物理層芯片的 32 個寄存器中的某個寄存器的地址。
TA :狀態轉換域,若為讀操作,則第一比特時 MDIO 為高阻態,第二比特時由物理層芯片使 MDIO 置“ 若為寫操作,則 MDIO 仍由 MAC 層芯片控制,其連續輸出“10 兩個比特。
DATA :幀的寄存器的數據域, 16 比特,若為讀操作,則為物理層送到MAC 層的數據,若為寫操作,則為 MAC 層送到物理層的數據。
IDLE :幀結束後的空閒狀態,此時 MDIO 無源驅動,處高阻狀態,但一般用上拉電阻使其處在高電平, 即 MDIO 引腳需要上拉電阻 
MDIO 數據幀的時序關係如下:
  
圖 12 MDIO 數據幀的時序關係

MII 接口也有一些不足之處,主要是其接口信號線很多,發送和接收和指示接口有 14 根數據線 不包括 MDIO 接口的信號線,因為其被所有 MII 接口所共享 ),當交換芯片的端口數據較多時,會造成芯片的管腳數目很多的問題,這給芯片的設計和單板的設計都帶來了一定的問題。 為了解決這些問題,人們設計了兩種新的 MII 接口,它們是 RMII 接口 Reduced MII 接口 和 SMII 接口 StreamMII 接口 
這兩種接口都減少了 MII 接口的數據線, 不過它們一般只用在以太網交換機的交
換 MAC 芯片和多口物理層芯片中,而很少用於單口的 MAC 層芯片和物理層芯片中。RMII 接口和 SMII 接口都可以用於10M以太網和100M以太網,但不可能用於1000M以太網,因為此時時鐘頻率太高,不可能實現。

未完待續........



轉載於:http://www.tech-regal.com/post/Ethernet-MII.html