一、PHY
PHY((Physical Layer,PHY))是IEEE802.3中定義的一個標准模塊,STA(station management entity,管理實體,一般為MAC或CPU)通過SMI(Serial Manage Interface)對PHY的行為、狀態進行管理和控制,而具體管理和控制動作是通過讀寫PHY內部的寄存器實現的。一個PHY的基本結構如下圖:
PHY是物理接口收發器,它實現OSI模型的物理層。IEEE-802.3標准定義了以太網PHY。包括MII/GMII(介質獨立接口)子層、PCS(物理編碼子層)、PMA(物理介質附加)子層、PMD(物理介質相關)子層、MDI子層。它符合IEEE-802.3k中用於10BaseT(第14條)和100BaseTX(第24條和第25條)的規范。
PHY寄存器在IEEE802.3標准的 22.2.4 Management functions 節有介紹,但不涉及所有的寄存器,個別寄存器需要到其它章節中看,當然,文檔里面也提到該在哪里找到哪個寄存器。
PHY在發送數據的時候,收到MAC過來的數據(對PHY來說,沒有幀的概念,對它來說,都是數據)然后把並行數據轉化為串行流數據,再按照物理層的編碼規則把數據編碼,再變為模擬信號把數據送出去,收數據時的流程反之。
PHY還有個重要的功能就是實現CSMA/CD的部分功能,它可以檢測到網絡上是否有數據在傳送,如果有數據在傳送中就等待,一旦檢測到網絡空閑,再等待一個隨機時間后將送數據出去.如果兩個碰巧同時送出了數據,那樣必將造成沖突,這時候沖突檢測機構可以檢測到沖突,然后各等待一個隨機的時間重新發送數據。
二、PHY芯片
從硬件上來說,一般PHY芯片為模數混合電路,負責接收電、光這類模擬信號,經過解調和A/D轉換后通過MII接口將信號交給MAC芯片進行處理。一般MAC芯片為純數字電路。
物理層定義了數據傳送與接收所需要的電與光信號、線路狀態、時鍾基准、數據編碼和電路等,並向數據鏈路層設備提供標准接口。物理層的芯片稱之為PHY。
下圖為RTL8211的原理框圖,詳細的數據手冊鏈接如下:
http://download3.dvd-driver.cz/realtek/datasheets/pdf/rtl8211e(g)-vb(vl)-cg_datasheet_1.6.pdf
圖8‑7 RTL8211原理框圖
下圖是Ti的DP83865原理框圖,詳細的數據手冊鏈接如下:
http://www.ti.com/product/DP83865/technicaldocuments
圖8‑8 DP83865原理框圖
下圖為88X3140/3120的原理框圖,詳細的數據手冊鏈接如下:
https://www.marvell.com/products/transceivers/alaska-x-gbe.html
圖8‑9 88X3140/3120原理框圖
通過幾個PHY片的原理框圖可以總結出下面的簡化PHY片的原理框圖。
圖8‑10 PHY簡化的原理框圖
從上圖可知,PHY它包含了多個功能模塊,功能模塊的多少會因需要的不同而有所增減,比如:
只有10GBase-R、40GBase-R、100GBase-R的PCS需要FEC;
40GBase-R的PCS需要2個PMA、100GBase-R的PCS需要3個PMA;
只有≥1Gbps以上的背板應用場景才會用到AN。
接下來詳細介紹上圖中各個功能模塊:
表8‑3各個功能模塊的作用
名稱 |
作用 |
|
PLS |
Physical Sublayer 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 Forward Error Correction |
Reed-Solomon前向糾錯,比單純的FEC糾錯能力更強,與100GBase-R的PCS 搭配,采用256B/257B編碼; |
PMA |
Physical Medium Attachment |
物理介質連接子層。執行並串/串並轉換 |
PMD |
Physical Medium Dependent |
物理介質相關子層。信號轉換到特定介質上或反向轉換 |
AN |
Auto-Negotiation Function |
自動協商,使背板兩側的Device能夠互換信息以發揮出彼此最大的優勢; |
圖中還有連接各個模塊間的接口比較特殊,這里面在單獨列出來,如下表所示:
表8‑4各個模塊間的接口
名稱 |
備注 |
|
PLS與PMA間的接口 |
AUI |
Attachment Unit Interface |
PCS與FEC間的接口 |
XSBI |
10-Gigabit Sixteen Bit Interface |
PMA與PMA間的接口-可以是chip to chip,也可以是chip to module |
XLAUI |
40 Gigabit Attachment Unit Interface,4條lane,每條lane的數率是10.3125Gbps; |
CAUI |
100 Gigabit Attachment Unit Interface,10條lane,每條lane的數率是10.31250Gbps; |
|
PMA與PMD間的接口 |
nPPI1 |
Parallel Physcial Interface |
1:nPPI特定出現在PMD所接的媒介是光纖的情況下,比如40GBase-SR4、100GBase-SR10、40GBase-LR4協議。也就是說這種情況下的PMD是光模塊,nPPI就必然是一種chip to module間的接口,這也是IEEE802.3標准與OIF_CEI標准兼容的地方之一。
三、PHY寄存器
PHY寄存器的地址空間為5位,從0到31最多可以定義32個寄存器(隨着芯片功能不斷增加,很多PHY芯片采用分頁技術來擴展地址空間以定義更多的寄存器),IEEE802.3定義了地址為0-15這16個寄存器的功能,地址16-31的寄存器留給芯片制造商自由定義,如下表所示。
(1)官方介紹請參考IEEE802.3標准的 22.2.4 Management functions 節。
(2)上圖的B和E表示了,在特定接口下,寄存器是基本的還是擴展的。例如:MII接口下只有0和1寄存器是基本的,其它的是擴展的。注意:所為擴展是指留給IEEE以后的擴展特性用,不是給PHY廠商的擴展,PHY廠商自定義的只能是16~31號寄存器
(3)在IEEE標准文檔及某些PHY手冊中,某寄存器的比特(bit)用X.y表示,如0.15表示第0寄存器的第15位。
1、Control Register (Register 0)
寄存器0是PHY控制寄存器,通過Control Register可以對PHY的主要工作狀態進行設置。應該保證控制寄存器每個位的默認值,以便在沒有管理干預的情況下,上電或復位時PHY的初始狀態為正常操作狀態。Control Register的每一位完成的功能見下。
Reset: 通過將位0.15設置為邏輯1來完成復位PHY。 該操作應將狀態和控制寄存器設置為其默認狀態。 因此,此操作可能會改變PHY的內部狀態以及與PHY關聯的物理鏈路的狀態。復位過程中Bit15保持為1,復位完成之后該位應該自動清零。 在復位過程完成之前,PHY不需要接受對控制寄存器的寫入操作,並且在復位過程完成之前寫入0.15以外的控制寄存器位可能不起作用。 復位過程應在0.15位設置的0.5 s內完成。
(1)一般要改變端口的工作模式(如速率、雙工、流控或協商信息等)時,在設置完相應位置的寄存器之后,需要通過Reset位復位PHY來使配置生效。
(2)該比特位的默認值為 0。
Loopback: 當位0.14被設置為邏輯1時,PHY應置於環回操作模式。 當位0.14置位時,PHY接收電路應與網絡介質隔離,並且MII或GMII處的TX_EN斷言不應導致網絡介質上的數據傳輸。 當位0.14置位時,PHY應接受來自MII或GMII發送數據路徑的數據,並將其返回給MII或GMII接收數據路徑,以響應TX_EN的斷言。 當位0.14置位時,從斷言TX_EN到斷言RX_DV的延遲應小於512 BT。 當位0.14置位時,除非設置了位0.7,否則COL信號應始終保持無效,在這種情況下,COL信號的行為應如22.2.4.1.9所述。 清0.14位為零允許正常操作。
Loopback是一個調試以及故障診斷中常用的功能,Bit14置1之后,PHY和外部MDI的連接在邏輯上將被斷開,從MAC經過MII/GMII(也可能是其他的MAC/PHY接口)發送過來的數據將不會被發送到MDI上,而是在PHY內部(一般在PCS)回環到本端口的MII/GMII接收通道上,通過Loopback功能可以檢查MII/GMII以及PHY接口部分是否工作正常,對於端口不通的情況可用於故障定位。
(1)需要注意的是,很多時候PHY設置Loopback后端口可能就Link down了,MAC無法向該端口發幀,這時就需要通過設置端口Force Link up才能使用Loopback功能。
(2)該比特位的默認值為 0。
Speed Selection: ***Bit13和Bit6兩位聯合實現***對端口的速率控制功能。鏈接速度可以通過自動協商過程或手動速度選擇來選擇。 通過將位0.12清零來禁用自動協商時,允許手動速度選擇。
當禁用自動協商並將位0.6清除為邏輯0時,將位0.13設置為邏輯1將PHY配置為100 Mb / s操作,並將位0.13清除為邏輯0將PHY配置為10 Mb / s操作 。
當禁用自動協商並將位0.6設置為邏輯1時,將位0.13清零為邏輯0會選擇1000 Mb / s的操作。 將位0.6和0.13設置為邏輯1的組合保留用於未來的標准化。
當使能自動協商時,可以讀取或寫入位0.6和0.13,但位0.6和位0.13的狀態對鏈路配置沒有影響,位0.6和位0.13不需要反映當它被讀取時鏈接。
如果PHY通過比特1.15:9和比特15.15:12報告它不能工作在所有速度時,則比特0.6和0.13的值應該與PHY可以操作的速度相對應。並且任何試圖將該位設置為無效的操作均將被忽略。
(1)對Speed Selection的修改設置,往往需要復位端口才能配置生效。因此在設置該位置的時候需要檢查自動協商的設置並通過Bit15復位端口。
(2)位0.6和0.13的默認值是根據位1.15:9和15.15:12所指示的PHY可以操作的***最高數據速率***的編碼組合。
Auto-Negotiation Enable: 自動協商過程應通過將位0.12設置為邏輯1來啟用。 如果位0.12設置為邏輯1,則位0.13、0.8和0.6不應對鏈路配置和除了自動協商協議規定之外的站操作產生影響。 如果將位0.12清零為邏輯0,則無論鏈路配置和自動協商過程的先前狀態如何,位0.13、0.8和0.6都將確定鏈路配置。
如果PHY通過位1.3報告它缺乏執行自動協商的能力,則PHY應在位0.12返回零值。 如果PHY通過位1.3報告它缺乏執行自動協商的能力,則位0.12應該始終寫為0,並且任何嘗試將1寫入位0.12都應該被忽略。
必須注意的是,對於1000BASE-T接口,自動協商必須打開。
Power Down: 通過將位0.11設置為邏輯1,可以將PHY置於低功耗狀態。 清0.11位為零允許正常操作。 PHY在掉電狀態下的具體行為是特定實現的。 處於掉電狀態時,PHY應響應管理事務。 在轉換到掉電狀態期間和處於掉電狀態期間,PHY不應在MII或GMII上產生寄生信號。
當位0.11或位0.10被設置為邏輯1時,PHY不需要滿足RX_CLK和TX_CLK信號功能要求。 在位0.11和0.10清零后,PHY應在0.5 s內滿足22.2.2中定義的RX_CLK和TX_CLK信號功能要求。
(1)Power Down模式一般在軟件shut down端口的時候使用,需要注意的是端口從Power Down模式恢復,需要復位端口以保證端口可靠的連接。
(2)該位的默認值為 0。
Isolate: 通過將位0.10設置為邏輯1,PHY可能被迫將其數據路徑與MII或GMII電隔離。 清零位0.10允許正常操作。 當PHY與MII或GMII隔離時,它不會響應TXD數據包和TX_EN,TX_ER、GTX_CLK的輸入。並且它的TX_CLK,RX_CLK,RX_DV,RX_ER,RXD數據包、COL和CRS輸出均應為高阻態。 當PHY與MII或GMII隔離時,它將響應管理事務(MDC/MDIO接口的信號)。
(1)IEEE802.3沒有對Isolate 時MDI接口的狀態進行規范,此時MDI端可能還在正常運行。Isolate在實際應用中並沒有用到。
(2)由於目前很多百兆的PHY芯片其MAC接口主流的都是SMII/S3MII,8個端口的接口是相互關聯的,一個端口設置Isolate可能會影響其他端口的正常使用,因此在使用中注意不要隨意更改bit10的狀態。
Restart Auto-Negotiation: 如果PHY通過位1.3報告它缺乏執行自動協商的能力,或者如果自動協商被禁用,則PHY應在位0.9返回零值。 如果PHY通過位1.3報告它缺乏執行自動協商的能力,或者如果禁用了自動協商,則應將位0.9始終寫為0,並且任何嘗試將1寫入位0.9應被忽略。
Bit9置1將重新啟動端口的自動協商進程,當然前提是Auto-Negotiation Enable是使能的。
一般在修改端口的自動協商能力信息之后通過Bit9置1重新啟動自動協商來使端口按照新的配置建立link。
Duplex Mode: 可以通過自動協商過程或手動雙面選擇來選擇雙工模式。 通過將位0.12清零來禁用自動協商時,允許手動雙面選擇。
當禁用自動協商時,將位0.8設置為邏輯1將PHY配置為全雙工操作,並將位0.8清零以將邏輯0配置為用於半雙工操作的PHY。
當啟用自動協商時,可以讀取或寫入位0.8,但位0.8的狀態對鏈路配置沒有影響。
如果PHY通過位1.15:9和15.15:12報告它只能在一個雙工模式下工作,則位0.8的值應該與PHY可以工作的模式相對應,並且任何嘗試改變將該位0.8修改為無效指的操作應被忽略。
對Duplex Mode的修改配置也需要復位端口才能生效。
Collision Test: 沖突信號(COL)測試開關。在需要對COL信號進行測試時,可以通過Bit7置1,這時PHY將輸出一個COL脈沖以供測試。實際測試操作中也可以將端口配置為半雙工狀態,通過發幀沖突來測試COL信號,因此該配置實用價值不大。
Unidirectional enable: 如果PHY通過比特1.7報告它不具備編碼和傳輸來自媒體獨立接口的數據的能力,而不管PHY是否確定已建立有效鏈路,則PHY應在比特0.5中返回零值,並且 任何嘗試寫一個到位0.5應該被忽略。
2、Status register
寄存器1是PHY狀態寄存器,主要包含PHY的狀態信息,大多數bit的值都是由芯片廠家確定的,每一個bit的功能在表3中已有詳細說明。
寄存器中各位的詳細說明如下:
100BASE-T4 ability: 當讀為邏輯1時,位1.15指示PHY有能力使用100BASE-T4信令規范執行鏈路發送和接收。 當讀為邏輯0時,位1.15表示PHY缺乏使用100BASE-T4信令規范執行鏈路發送和接收的能力。
100BASE-X full duplex ability: 當讀為邏輯1時,位1.14指示PHY有能力使用100BASE-X信令規范執行全雙工鏈路傳輸和接收。 當作為邏輯0讀取時,bit1.14表示PHY缺乏使用100BASE-X信令規范執行全雙工鏈路傳輸和接收的能力。
100BASE-X half duplex ability: 當讀為邏輯1時,位1.13指示PHY有能力使用100BASE-X信令規范執行半雙工鏈路傳輸和接收。 當讀為邏輯0時,位1.13指示PHY缺乏使用100BASE-X信令規范執行半雙工鏈路傳輸和接收的能力。
其他同類型的值意義基本與上面幾個相同:指示PHY所具有的工作模式能力,不再一一說明。
Unidirectional ability: 當讀為邏輯1時,位1.7指示PHY具有編碼和傳輸來自媒體獨立接口的數據的能力,而不管PHY是否確定已建立有效鏈路。 當讀為邏輯0時,位1.7指示PHY只有在PHY確定已建立有效鏈路時才能從媒體獨立接口傳輸數據。
MF preamble suppression ability: 當讀為邏輯1時,位1.6指示PHY能夠接受管理幀,而不管它們是否在22.2.4.5.2中描述的前導碼模式之前。 當讀為邏輯0時,位1.6指示PHY不能接受管理幀,除非它們之前是22.2.4.5.2中描述的前導碼模式。
Auto-Negotiation Complete: 當讀為邏輯1時,位1.5指示自動協商過程已完成,並且由自動協商協議(條款28或條款37)實施的擴展寄存器的內容是有效的。 當讀為邏輯0時,位1.5指示自動協商過程尚未完成,並且擴展寄存器的內容由自動協商協議的當前狀態定義,或者為手動配置寫入。 如果自動協商通過清除位0.12禁用,則PHY應在位1.5返回零值。 如果PHY缺乏執行自動協商的能力,它還應在位1.5返回零值。
在調試以及異常故障處理時,可以通過該位寄存器的狀態判斷AN是否成功,從而進一步的檢查AN相關的設置是否正確,或者芯片的AN功能是否正常等。
Remote Fault: 當讀為邏輯1時,位1.4表示檢測到遠程故障狀態。 故障類型以及故障檢測的標准和方法是PHY特定的。 遠程故障位必須使用鎖存功能來實現,以便發生遠程故障將導致遠程故障位置位,並保持置位狀態直至被清除。 每當通過管理接口讀取寄存器1時,遠程故障位應清零,並且還應通過PHY復位清零。
遠端錯誤指示位。Bit4=1代表連接對端(Link Partner)出錯,至於出錯的具體類型以及錯誤檢測機制在規范中並沒有定義,由PHY的制造商自由發揮,一般的廠商都會在其他的寄存器(Register16-31由廠商自行定義)指示比較詳細的錯誤類型。在與端口相關的故障查證中,Remote Fault是一個重要的指示信息,通過互聯雙方的Remote Fault信息(可能要加上其他的具體錯誤指示),可以幫助定位故障原因。
Auto-Negotiation ability: 當讀為邏輯1時,位1.3指示PHY有能力執行自動協商。 當讀為邏輯0時,位1.3指示PHY缺乏執行自動協商的能力。
Link Status: 當讀為邏輯1時,位1.2指示PHY已經確定已建立有效鏈路。 當作為邏輯0讀取時,位1.2指示該鏈接無效。 確定鏈路有效性的標准是PHY特定的。 鏈路狀態位應該使用鎖存功能來實現,以便發生鏈路故障情況將導致鏈路狀態位清零並保持清零,直到通過管理接口讀取。 此狀態指示旨在支持在30.5.1.1.4,aMediaAvailable中定義的管理屬性。
實際應用中一般都是通過Bit2來判斷端口的狀態。而且,一般的MAC芯片也是通過輪詢PHY的這個寄存器值來判斷端口的Link狀態的(這個過程可能有不同的名稱,比如BCM叫做Link Scan,而Marvell叫做PHY Polling。)如前所述,在AN Enable的情況下,Link Status的信息只有在Auto-Negotiation Complete指示已經完成的情況下才是正確可靠的,否則有可能出錯。
Jabber Detect: 當作為邏輯1讀取時,位1.1指示已經檢測到爆音條件。 此狀態指示旨在支持30.5.1.1.6中定義的管理屬性,aJabber和30.5.1.3.1 nJabber中定義的MAU通知。 檢測Jabber條件的標准是PHY特定的。 Jabber檢測位應該使用鎖存功能來實現,以便發生Jabber條件將導致Jabber檢測位置位,並保持置位狀態直至被清除。 每次通過管理接口讀取寄存器1時,Jabber檢測位應清零,並且還應通過PHY復位清零。
IEEE802.3對Jabber的解釋是“A condition wherein a station transmits for a period of time longer than the maximum permissible packet length, usually due to a fault condition”。這一位指示的是Link Partner發送的時間超過了規定的最大長度。值得注意的是,Jabber Detect只有在10BASE-T模式下才有意義,100和1000M模式是沒有定義Jabber這一功能的。
3、PHY Identifier Register
寄存器2和3存放PHY芯片的型號代碼,寄存器2(PHY ID1)為高16位,而寄存器3(PHY ID2)為低16位。由芯片制造商自行定義,實際應用中軟件通過讀取這兩個寄存器的內容可以識別PHY的型號和版本。
PHY標識符應由由IEEE分配給PHY制造商的組織唯一標識符(OUI)的(只需要使用第3至第24位,共22位),加上6位制造商的型號以及4位制造商的修訂版編號組成。 PHY標識符旨在提供足夠的信息來支持30.1.2中所要求的oResourceTypeID對象。
OUI的第三位分配給位2.15,OUI的第四位分配給位2.14,依此類推。 位2.0包含OUI的第十八位。 位3.15包含OUI的第十九位,位3.10包含OUI的第二十四位。 位3.9包含制造商型號的MSB。 位3.4包含制造商型號的LSB。 位3.3包含制造商版本號的MSB,位3.0包含制造商版本號的LSB。具體如下圖所示:
4、Auto-Negotiation Advertisement Register (Register 4) (R/W)
寄存器4是自動協商的能力通告寄存器,在AN Enable的前提下(見寄存器0),端口根據該寄存器的相關配置將自動協商信息通過FLP在MDI上進行通告。當AN配置為Disable狀態的時候,寄存器4的配置將不起作用,端口的工作模式由控制寄存器中的配置決定。
該寄存器包含PHY的通告能力,它們將在自動協商期間傳送給其鏈接伙伴。 基本頁的位定義在IEEE標准的28.2.1.2中定義。 上電時,在自動協商開始之前,該寄存器應具有以下默認配置:
Selector Field (4.4:0): 被設置為適當的代碼,如IEEE標准的附件28A中所規定。
Reserved(4.14): 被設置為邏輯0。
Technology Ability Field(4.11:5): 根據MII狀態寄存器(寄存器1)(1.15:11)中設置的值或等效值設置。 另見28.2.1.2.3和附件28D。
4.1 Link codeword encoding(基本鏈路碼字)
在FLP Burst內傳輸的基本鏈路代碼字(基本頁面)應該傳達如圖28-7所示的編碼。 自動協商功能可以使用下一頁功能支持其他頁面。 下一頁交換中使用的鏈接代碼字的編碼在28.2.3.4中定義。 在FLP Burst中,D0應該是第一個傳輸的位。
4.2 Next Page function
下一頁功能使用標准的自動協商仲裁機制來允許交換任意的數據。 數據由可選的下一頁信息攜帶,其遵循用於基本鏈接碼字的傳輸和確認過程。 定義了四種類型的下一頁編碼:消息頁面,未格式化頁面,擴展消息頁面和擴展的未格式化頁面。
關於該部分,具體見IEEE標准的28.2.3.4 Next Page function。
在IEEE標准中,Auto-Negotiation Advertisement Register中的各部分全部是在獨立章節中進行介紹的。具體如下:
Selector Field: 選擇器字段(S [4:0])是一個5位寬的字段,編碼32個可能的消息。 鏈路碼字中的選擇器字段S [4:0]應用於識別自動協商發送的消息的類型。 下表列出了可能發送的消息的類型。 隨着新消息的發展,該表格將相應更新。
未指定的組合保留供將來使用。 不會傳輸選擇器字段的預留組合。***我們所接觸的以太網PHY遵從IEEE802.3規范,Selector Field=0001,該區域不可隨意更改(很多PHY將此區域設計為只讀寄存器,以免被修改)***。
Technology Ability Field: 技術能力字段(A [6:0])是一個7位寬的字段,其中包含指示選擇器字段值特定的支持技術的信息。 這些位被映射到各個技術,以便能夠針對單個選擇器字段值並行通告能力。 附錄28B.2和附件28D描述了IEEE 802.3選擇器的技術能力字段編碼。 鏈接代碼字中可能會公布多種技術。 設備應支持其宣傳的技術的數據服務能力。
Extended Next Page: 擴展下一頁(XNP)被編碼在基本鏈路碼字的位D12中。 擴展下一頁位指示本地設備在設置為邏輯1時支持擴展下一頁的傳輸,並指示本地設備在設置為邏輯0時不支持擴展下一頁。 Extended Next Page的使用與協商的數據速率,媒體或鏈接技術是正交的。 擴展下一頁位按照28.2.3.4中的擴展下一頁功能規范使用。
Next Page: 無論選擇器字段值還是鏈接碼字編碼,下一頁(NP)都在D15位編碼。 支持附加鏈接碼字編碼的傳輸和接收是可選的。 如果不支持Next Page功能,NP位應始終設置為邏輯0。 如果設備實現下一頁功能並希望進行下一頁交換,則應將NP位設置為邏輯1。 設備可以實現下一頁功能,並通過將NP位設置為邏輯0來選擇不參與下一頁交換。 下一頁功能在28.2.3.4中定義。
Remote Fault: 遠程故障(RF)編碼在基本鏈路碼字的位D13中。 默認值是邏輯零。 遠程故障位為傳輸簡單的故障信息提供了一種標准的傳輸機制。 當自動協商通告寄存器(寄存器4)中的RF位設置為邏輯1時,發送的基本鏈路碼字中的RF位被設置為邏輯1。 當接收到的基本鏈路代碼字中的RF位被設置為邏輯1時,如果存在MII管理功能,則MII狀態寄存器(寄存器1)中的遠程故障位將被設置為邏輯1。
5、Auto-Negotiation Link Partner ability register (Register 5) (RO)
寄存器5保存的是本端PHY接收到的對端PHY所通告的端口能力,寄存器5的結構和寄存器4基本一致。
6、Auto-Negotiation Expansion Register (Register 6) (RO)
寄存器6保存了PHY自動協商過程的異常信息。從這個寄存其中我們可以獲取到Link Partner子否支持自動協商以及自動協商下一頁有沒有收到的信息。
7、Auto-Negotiation Next Page transmit register (Register 7) (R/W)
自動協商下一頁發送寄存器包含在支持下一頁功能時要發送的下一頁鏈接碼字。 (見表28-6)內容在28.2.3.4中定義。 上電時,該寄存器應包含默認值2001H,該值表示消息代碼設置為Null消息的消息頁面。 該值可以由設備希望傳輸的任何有效的下一頁消息代碼替換。 寫入該寄存器應將mr_next_page_loaded設置為true。
8、Auto-Negotiation Link Partner Received Next Page register (Register 8) (RO)
四、FPGA實現網口通信三種方式
從之前文章分析可知,FPGA實現網口通信主要有以下幾種方式:
FPGA獨立實現MAC與PHY協議;
FPGA獨立實現MAC協議,PHY采用獨立芯片;
FPGA既不實現MAC也不實現PHY,MAC與PHY均采用集成芯片;
相應的框圖如下:
圖8‑11 FPGA實現網口通信三種方式
五、參考資料
1、https://blog.csdn.net/zcshoucsdn/article/details/80090802#comments
2、https://blog.csdn.net/ChenGuiGan/article/details/108603550
3、https://mp.weixin.qq.com/s/rnikc3srIjHw3ZLFkrVNFQ
4、https://mp.weixin.qq.com/s/EJOdYYI8l7TCD2l1bdy3MA