1. 程式人生 > 其它 >乙太網學習(三)——FPGA的MAC與PHY晶片之間的介面,以及RGMII介面時序

乙太網學習(三)——FPGA的MAC與PHY晶片之間的介面,以及RGMII介面時序

主要有SMII, MII, RMII, GMII, RGMII這幾種介面,其中SMII是序列的介面,引腳最少。

MII介面

通訊速率10M/100M(百兆乙太網的通訊介面)

ETH_RXC:PHY側輸出給MAC的乙太網的接受時鐘

ETH_RXDV:PHY側輸出給MAC的接收有效訊號

ETH_RXER:PHY側輸出給MAC的接收錯誤訊號

ETH_RXD:PHY側輸出給MAC的4位接收資料

只有當ETH_RXDV為高電平,ETH_RXER為低電平時,這時傳輸的資料才是有效資料

ETH_TXC:發射時鐘同樣是有PHY晶片提供給MAC的

ETH_TXEN:MAC提供給PHY晶片的傳送使能訊號

ETH_TXER:MAC提供給PHY晶片的傳送錯誤指示訊號

ETH_TXD:MAC提供給PHY晶片的待發送的4位資料

只有當ETH_TXEN為高電平,ETH_TXER為低電平時,這時傳輸的資料才是有效資料

10M:時鐘為2.5MHz,單沿取樣;100M:時鐘為25MHz,單沿取樣

RMII介面(Reduced MII)

通訊速率為10M/100M

傳送資料核接收資料都是兩位的;

參考時鐘通常是由外部晶振提供給MAC側或PHY晶片的;

CRS和DV訊號複用一個埠;

10M:時鐘為5M,單沿取樣;100M:時鐘為50M,單沿取樣

GMII介面(Gigabit MII)

通訊速率1G/100M/10M

與MII介面相比,TXC由MAC側產生(原圖中畫錯了),並且將資料位寬從4位提高到了8位;

10M:時鐘為2.5M,單沿取樣,只用到了4位;100M:時鐘為25M,單沿取樣,只用到了4位;1G:時鐘為125M,單沿取樣

RGMII(Reduced GMII)

通訊速率為1G/100M/10M

TXC由MAC側產生;

將RXDV和RXER訊號整合到了RXCTL上,時鐘上升沿採到的是RXDV,下降沿採到的是RXDV^RXER(異或);

將TXEN和TXER訊號整合到了TXCTL上,時鐘上升沿採到的是TXEN,下降沿採到的是TXEN^TXER(異或);

資料位寬由8位減少到了4位;

1G:時鐘為125M,雙沿取樣;100M:時鐘為25M,單沿取樣;10M:時鐘為2.5M,單沿取樣

RGMII介面時序

RGMII接收時序(1G)(PHY晶片產生的訊號時序)

注:由於下降沿傳輸的是異或結果,所以正常情況下,RXCTL訊號一直為高電平時傳輸的才是有效資料。

為保證能夠正確採到資料,PHY晶片需要將接收到的TXC訊號延遲約1/4個時鐘週期。

RGMII傳送時序(1G)(FPGA MAC側產生的訊號時序

注:由於下降沿傳輸的是異或結果,所以正常情況下,TXCTL訊號一直為高電平時傳輸的才是有效資料。

為保證FPGA能夠正確採到資料,PHY晶片需要將傳送給MAC的RXC訊號延遲約1/4個時鐘週期。

對於ZC706開發板上的88E1116R PHY晶片來說,控制時鐘是否延遲的方式是CONFIG引腳或者通過暫存器的方式進行配置:

這個意思是,如果CONFIG[3]連到了LED[0]上,那麼相當於配置了接收時鐘的延時處理,但是沒有配置傳送時鐘的延時處理。

或者可以通過MDIO配置相對應的暫存器21_2.4和21_2.5,用軟體的方式配置時鐘延時:

檢視ZC706的PHY晶片88E1116R部分的原理圖:

發現CONFIG[3]連到了排針的中間的引腳2,如果將J45或J46的中間的引腳通過短路片與1腳相連,那麼就可以將PHY晶片配置成傳送時鐘和接收時鐘都新增延遲。

參考:正點原子官方視訊