概述:由於近期要使用以太網PHY芯片,於是在網上查找各種資料,學習這部分的知識,這篇文章是對當前的學習做一個匯總。海翎光電的小編目前也是在學習PHY,所以難免會有錯誤不足,有什麼需要更正補充的,歡迎大傢一起討論交流。 什麼是PHY? PHY(英語:Physical),中文可稱之為端口物理層,是一個對OSI模型物理層的共同簡稱。而以太網是一個操作OSI模型物理層的設備。一個以太網PHY是一個芯片,可以發送和接收以太網的數據幀(frame)。 也就是說,PHY是網絡結構中的最底層,物理層。PHY芯片是實現物理層這一層功能的芯片。網絡設備之間就是通過PHY芯片相互連接的(介質是網線或者光纖)。

PHY芯片的硬件連接簡單介紹 拿CPU與PHY的連接舉例,網絡上層幾層框架,基本都可以封裝或集成到CPU內部,但一般PHY芯片可能會單獨出來,雖然目前一些集成度高的網絡設備,或者CPU也可以做到將PHY集成到一個芯片。但一般來說,PHY的功能是單獨做到一個PHY芯片內部的,集成瞭PHY的網絡設備芯片(CPU、交換機芯片等等)一般也有接口連接單獨的PHY。這是因為PHY的主要功能就是將數字信號轉成模擬信號,然後在網線或者光纖傳輸。因為模擬信號和數字信號的不同,加上不同設備之間的傳輸環境復雜,因此,大部分的PHY都是單獨做到一個芯片內的。 因此,在一般的網絡設備電路設計中,需要為PHY芯片設計電路。PHY的芯片廠傢為瞭滿足大部分的應用場景,會在PHY上面提供很多接口協議,以供設計人員使用。比如,一顆PHY可能會支持網線傳輸,又或者支持光纖傳輸,然後在連接數據鏈路層這邊,會提供很多的MII接口以供選擇。 由於一個PHY芯片的功能可能會比較多,因此,在PHY芯片的應用中,有一點很重要的就是要選擇合適的接口來滿足自己的應用。PHY芯片的接口介紹 MII接口MII是連接PHY和MAC的總線。有一系列的MII總線協議來滿足不同的應用場景,如MII, RMII, SMII, GMII, RGMII, SGMII, XGMII等等。 既然有這麼多的協議,為什麼不使用同一種固定的總線協議呢,比如IIC或者SPI這種,這麼多的總線協議,不是加大瞭應用設計的難度?

這是因為,網絡傳輸是一種高速的通信,而且是一直在發展的,導致以前的一些協議已經不能滿足現在的傳輸要求,比如從10M/100M到現在的1G/10G等等,不同的MII接口就是為瞭滿足不同的應用。而且,由於芯片設計的發展,也可以對一些占用資源的總線做優化改動,例如以前的並口通信,會占用很多的引腳資源,但現在由於高頻通信的發展,使用串行總線也可以達到高速通信的目的,並且還節省引腳資源。

下面介紹一些常用的MII總線協議,以供參考。 註:MII命名是有一定規律的,比如G代表1000兆,XG代表10G(萬兆),R代表減少引腳,S代表串行通信,例如,RGMII就是減少引腳的1000兆MII總線,SGMII就是串行通信的1000兆MII總線。1.MII接口模式是支持10/100兆。

2.RMII:MAC和PHY芯片之間的接線圖,數據線相比MII減半,時鐘為50MHZ,還是需要註意TX_CLK是由phy芯片發出,如果是需要自適應10/100M。

3.SMII:10/100M

4. GMII:對應為千兆網;要實現1000Mb/s、100Mb/S、10Mb/S自適應必須加上TX_CLK(PHY輸出)

5.RGMII:

6.SGMII:

7.XGMII:10G,萬兆。

SMI(MDC/MDIO)接口 有很多PHY芯片有許多的接口和功能,需要根據自己的需求進行選擇配置,配置的方法就是配置PHY內部的寄存器,而SMI接口就是PHY專門用於管理這些寄存器的一個標準協議。SMI接口是一個串行接口,接口包括兩根信號線:MDC和MDIO。 這個接口也是遵守IEEE802.3協議規范的,因此可以通過IEEE802.3協議瞭解SMI接口的具體細節要求。下面對SMI接口做一些簡單介紹。

MDC:管理接口的時鐘,它是一個非周期信號,信號的最小周期(實際是正電平時間和負電平時間之和)為400ns,最小正電平時間和負電平時間為160ns,最大的正負電平時間無限制。

MDIO:這是一根雙向的數據線。用來傳送MAC層的控制信息和物理層的狀態信息。MDIO數據與MDC時鐘同步,在MDC上升沿有效。

目前SMI接口一共有兩種協議,第22條款和第45條款,其中兩個條款使用同樣的硬件,在時序上是一致的。第22條款和45條款,就是對應IEEE802.3的22節和45節。現在一些簡單的PHY內部的寄存器使用的是802.3的第22條款,隻有32個寄存器,功能簡單,比如一些千兆百兆PHY。而一些復雜的PHY使用的是802.3的第45條款,可以將寄存器擴展至65536個寄存器。

註:雖然對於PHY芯片的寄存器有相關標準的規定,但廠傢有可能不按照標準設計,所以最好是查看對應的芯片手冊瞭解寄存器的功能。

PHY的SMI接口可以由MAC側或者MCU(單片機)控制,通過SMI接口可以實現PHY的配置以及各項參數的讀取,以達到監控PHY的狀態。當MCU無SMI接口時,可以使用GPIO模擬SMI接口。

光電接口 目前數據在網絡中傳輸,主要的傳輸介質是銅纜或者光纖,在PHY芯片對應的就是電口或者光口。我們經常見到1000base-T、1000BASE-TX、1000BASE-FX這樣的描述,對應的解釋如下。1000:表示傳輸速率;BASE: 表述基帶;-T/TX:傳輸介質為銅介質的雙絞線,其中1000BASE-T對應傳輸線為4對,全雙工運行,時鐘125MHZ。超五類網線。1000BASE-TX對應傳輸線也為4對,隻是其中2對用來收,兩對用來發。故運行時鐘250HZ,對應線纜為6類網線。-FX:傳輸介質為光纖;光口,信號傳輸走的是光信號這是與上面不同的。 PHY芯片的內部結構

PHY它包含瞭多個功能模塊,功能模塊的多少會因需要的不同而有所增減。比如:隻有10GBase-R、40GBase-R、100GBase-R的PCS需要FEC;

40GBase-R的PCS需要2個PMA、100GBase-R的PCS需要3個PMA;

隻有≥1Gbps以上的背板應用場景才會用到AN。

PHY由多個模塊組成,各個功能模塊的作用如下:PLS:PhysicalSublayer Signaling,對MAC給的信息進行傳遞,隻在1Mb/s、10Mb/s的應用場景才出現;

PCS:Physical Coding Sublayer,對MAC給的信息進行編碼,應用於≥100 Mb/s的應用場景,比如完成8B/10B、64B/66B、256B/257B編碼;

FEC:Forward Error Correction,前向糾錯,與10GBase-R、40GBase-R的PCS 搭配;

RS-FEC:Reed-Solomon前向糾錯,比單純的FEC糾錯能力更強,與100GBase-R的PCS 搭配,采用256B/257B編碼;

PMA:Physical Medium Attachment,物理媒介適配層,PMA子層主要用於串行化和解串。PMA子層中集成瞭SERDES,發送和接收緩沖,時鐘發生器及時鐘恢復電路。

PMD:Physical Medium Dependent,物理介質相關子層,PMD子層位於整個網絡的最底層,主要完成光纖連接、電/光轉換等功能。PMD為電/光收發器,把輸入的電壓變化狀態變為光波或光脈沖,以便能在光纖中傳輸。

AN:Auto-Negotiation Function,自動協商,使背板兩側的Device能夠互換信息以發揮出彼此最大的優勢;

其中主要的常用的模塊是PCS、PMA、PMD。在各種PHY芯片內部基本都有這幾個模塊。

PHY的功能

PHY的功能之一:與MAC通過MII接口進行數據傳遞,對發送的數據進行編碼,對接收的數據進行解碼 MAC器件通過MII接口來與PHY進行數據交換。PHY在發送數據的時候,收到MAC過來的數據(對PHY來說,沒有幀的概念,對它來說,都是數據而不管什麼地址,數據還是CRC),每4bit就增加1bit的檢錯碼(PCS),然後把並行數據轉化為串行流數據(PMA),再按照物理層的編碼規則把數據編碼(PMA),再變為模擬信號把數據送出去(PMD)。 當PHY接收數據時的流程反之。

PHY的功能之二: CSMA/CD的部分功能

PHY還有個重要的功能就是實現CSMA/CD的部分功能。它可以檢測到網絡上是否有數據在傳送,如果有數據在傳送中就等待,一旦檢測到網絡空閑,再等待一個隨機時間後將送數據出去。如果兩塊網卡碰巧同時送出瞭數據,那樣必將造成沖突,這時候,沖突檢測機構可以檢測到沖突,然後各等待一個隨機的時間重新發送數據。

參考資料:

Network 之二 Ethernet(以太網)中的 MAC、MII、PHY 詳解_itexp-CSDN博客_mac

MII/GMII/RGMII知識學習。- 知乎

各種MII詳解(MII,GMII,RGMII,RMII,SMII,SSMII,TBI,RTBI) – 百度文庫

瞭解與MDIO/MDC接口相關的22號、45號條款_jason的專欄-CSDN博客_mdio接口協議

PHY——內部接口協議

MAC和PHY基本組成與工作原理簡析_Clearfix_Xia-CSDN博客_phy芯片工作原理。