FLP Burst內容編碼—NextPage
NextPage有兩大類(D13=1時為Messgage Page; D13=0時為Unformatted Page;),編碼格式分別如下圖:
Message Page:
Unformatted Page:
在FLP突發中,D0應是傳輸的第一個比特。Message Page和Unformatted Page必須成對出現,Message Page在前,Unformatted Page在后(Null Message型除外,它無需攜帶Unformatted Page)。
Message Code Field
Unformatted Page的Unformatted Code Field 與Message Page的Message Code Field相關,故后面會結合具體的Message Code Field的詳細講解UnformattedCode Field。
Toggle
[T] =2b0 前一個FLP脈沖data為1,
=2b1 前一個FLP脈沖data為0,
該bit的作用是保持FLPBurst的直流平衡,防止出現連0或連1;
[ACK2] =2b0 不可以理解來自遠端的NextPage,
=2b1 可以理解來自遠端的NextPage;
Message Page
[MP] =2b0 Unformatted Page,
=2b1 Message Page;
Acknowledge
[ACK] =2b0 尚未收到來自遠端的NextPage,
=2b1 已收到來自遠端的NextPage;
Next Page
[NP] =2b0 當前NextPage頁已是最后頁,
=2b1 當前NextPage頁不是最后頁;
NextPage的使用規則
鏈路雙方都支持NextPage時,方可執行NextPage交互。比如本端只支持BasePage,遠端支持BasePage + NextPage_MP + NextPage_UP + NextPage_UP,此時遠端的NextPage_MP和兩個NextPage_UP的FLP Bursts永遠不會被發出。
鏈路雙發的NextPage的數量必須匹配。比如本端支持BasePage + NextPage_MP(Code8)+ NextPage_UP + NextPage_UP + NextPage_MP(Code10)+ NextPage_UP, 遠端支持BasePage + NextPage_MP(Code8)+ NextPage_UP + NextPage_UP,此時遠端NextPage的數量與本端NextPage的數量不匹配,故遠端需要附加兩個NextPage_MP(Code1NullMessage)補齊。
NextPage的應用實踐
FLP Burst-NextPage交互應用于基于10M/100M/1000M的IEEE Clause 28 雙絞線自協商。筆者以曾經實踐過的Marvell公司的88e1111千兆PHY舉例[與自協商相關的寄存器屬于IEEE802.3標準寄存器,故不同廠家不同型號的PHY該部分實現大同小異],與10M/100M/1000M自協商相關的7個寄存器內容分別如下:
ControlRegister – Copper Page 0, Register 0
該部分在“BasePage的應用實踐”部分已詳細闡述過,故這里就不再贅述;
ANAdvertisement Register – Copper Page 0, Register 4
該本地廣告能力寄存器是10M/100M/1000M自協商的核心寄存器,該部分在“BasePage的應用實踐”部分已詳細闡述過,故這里就不再贅述;
Link PartnerAbility Register , Copper Page 0, Register 5
該本地廣告能力寄存器是10M/100M/1000M自協商的核心寄存器,該部分在“BasePage的應用實踐”部分已詳細闡述過,故這里就不再贅述。
Next PageTransmit Register – CopperPage0, Register 7
該本地廣告能力寄存器是10M/100M/1000M自協商的核心寄存器,該寄存器有兩類用法:“硬件自動裝載模式”和“軟件手工裝載模式”。當1000BASE-TControl Register Page 0, Register 9(后續會介紹)的bit9=1或者bit8=1時使用“硬件自動裝載模式”;當1000BASE-T ControlRegister Page 0, Register 9(后續會介紹)的bit9=0且bit8=時使用“軟件裝載模式”;在實際使用時通常很少使用“軟件手工裝載模式”(可以協商廠家自定義的一些信息),故這里就對“軟件手工裝載模式”不再贅述了。下面針對“硬件自動裝載模式”進行現逐bit解釋: bit15 Next Page 該bit為FLP Burst-NextPage的D15.NP。
當使用10M/100M/1000M自協商時(無EEE自協商時),第一個第二個NextPage時此bit為1,第三個NextPage時此bit為0;當使用10M/100M/1000M自協商時(有EEE自協商時),第一個第二個第三個第四個NextPage時此bit為1,第五個NextPage時此bit為0。此bit由PHY芯片硬件自協商狀態機自動維護,軟件無需設置此bit;
bit14 Reserved該bit為FLP Burst-NextPage的D14.Ack,該bit由PHY芯片硬件自協商狀態機自動維護,軟件無需設置此bit;
bit13 Message Page Mode 該bit為FLP Burst-NextPage的D13.MP。當使用10M/100M/1000M自協商時(無EEE自協商時),第一個NextPage時此bit為1,第二個第三個NextPage時此bit為0;當使用10M/100M/1000M自協商時(有EEE自協商時),第一個第四個NextPage時此bit為1,第二個第三個第五個NextPage時此bit為0。此bit由PHY芯片硬件自協商狀態機自動維護,軟件無需設置此bit;
bit12 Acknowledge2 該bit為FLP Burst-NextPage的D12.Ack2。此bit由PHY芯片硬件自協商狀態機自動維護,軟件無需設置此bit;
bit11 Toggle 該bit為FLP Burst-NextPage的D11.T。此bit由PHY芯片硬件自協商狀態機自動維護,軟件無需設置此bit;
bit[10:0] Message/Unformatted Field該bits為FLPBurst-NextPage的D10:D0。當使用10M/100M/1000M自協商時(無EEE自協商時),第一個NextPage時此bits為8,為1000BASE-Ttechnology message code,第二個第三個NextPage時此bits為10M/100M/1000M雙絞線自協商核心內容,會在后續“10M/100M/1000M自協商基理”章節部分進行詳細探討;當使用10M/100M/1000M自協商時(有EEE自協商時),第一個NextPage時此bits為8,為1000BASE-Ttechnology message code,第四個NextPage時此bits為10,為EEEtechnology message code,第二個第三個第五個NextPage時此bits為10M/100M/1000M雙絞線自協商核心內容,會在后續“10M/100M/1000M自協商基理”章節部分進行詳細探討;
寫到這里,可能有小伙伴感到困惑。既然工作于“硬件自動裝載模式”時該寄存器由PHY芯片硬件自協商狀態機自動裝載維護,軟件無需設置。那該寄存器存在的意義是什么呢?答案是這樣的,在正常自協商并最終雙絞線鏈路雙發建立正確連接,該寄存器確實沒有存在的意義。但是因為某些環境因素造成自協商狀態機無法正常結束時,此時軟件通過周期性輪詢讀該寄存器結合輸出打印信息,可以有助于網絡管理人員分析自協商異常的原因,卡殼在哪個環節,進而對定位故障、解決故障大有益處。
Link PartnerNext Page Register – Copper Page 0, Register 8
該鄰居廣告能力狀態寄存器是將遠端發送的FLP Burst-NextPage的信息存儲在本寄存器。如果自協商協商失敗引起鏈路雙方不能正常建立鏈接,相關驅動工程師可以利用本寄存器進行故障定位和分析。本寄存器bit定義與“Next Page Transmit Register”完全相同,故這里就不在贅述了。
1000BASE-T Control Register Page 0, Register 9
該本地1000BASE-T控制寄存器是10M/100M/1000M自協商的核心寄存器,現逐bit解釋:
bit[15:13] Test Mode 該bits與示波器物理層測試相關,該功能與本自協商專題無關,這里不進行贅述;
bit12 MASTER/SLAVE Manual ConfigurationEnable該bit為FLP Burst-Unformatted_NextPage的UnformattedCode Field中相關bit。當使用10M/100M/1000M自協商時,該bit即為第二個NextPage的D0.U0,該bit根據網絡管理員的實際應用需求靈活設置(置1“強制主從配置模式”,置0“非強制主從配置模式”);
bit11 MASTER/SLAVE Configuration Value該bit為FLPBurst-Unformatted_NextPage的Unformatted Code Field中相關bit。當使用10M/100M/1000M自協商時,該bit即為第二個NextPage的D1.U1,該bit根據網絡管理員的實際應用需求靈活設置(置1“強制主從配置模式”且強制為主,置0“強制主從配置模式”且強制為從);
bit10 Port Type該bit為FLPBurst-Unformatted_NextPage的Unformatted Code Field中相關bit。當使用10M/100M/1000M自協商時,該bit即為第二個NextPage的D2.U2,該bit根據網絡管理員的實際應用需求靈活設置(置1“非強制主從配置模式”時優先為主,置0“非強制主從配置模式”時優先為從);
bit9 1000BASE-T Full-Duplex該bit為FLPBurst-Unformatted_NextPage的Unformatted Code Field中相關bit。當使用10M/100M/1000M自協商時,該bit即為第二個NextPage的D3.U3,該bit根據網絡管理員的實際應用需求靈活設置(置1有1000BASE-T 全雙工能力,置0無1000BASE-T全雙工能力);
bit8 1000BASE-T Half-Duplex該bit為FLP Burst-Unformatted_NextPage的Unformatted Code Field中相關bit。當使用10M/100M/1000M自協商時,該bit即為第二個NextPage的D4.U4,該bit根據網絡管理員的實際應用需求靈活設置(置1有1000BASE-T 半雙工能力,置0無1000BASE-T 半雙工能力),因為1000BASE-T 半雙工該物理層標準PHY芯片一般都不支持,故該bit實際上永遠為0;
1000BASE-TStatus Register Page 0, Register 10
該1000BASE-T狀態寄存器是10M/100M/1000M自協商的核心寄存器,現逐bit解釋:
bit15 MASTER/SLAVE Configuration Fault當使用10M/100M/1000M自協商時,該bit(狀態1主從狀態配置有錯誤,狀態0主從狀態配置無錯誤)。當自協商異常時,可以查看此bit狀態,如果是1,通過調整“1000BASE-TControl Register Page 0, Register 9”的相關主從設置bit,可以解決該故障;
bit14 MASTER/SLAVE Configuration Resolution當使用10M/100M/1000M自協商時,該bit(狀態1本端自協商成“主”,狀態0本端自協商成“從”);
bit13 LocalReceiver Status當使用10M/100M/1000M自協商時,該bit(狀態1本地接收正常,狀態0本地接收異常;
bit12 Remote ReceiverStatus當使用10M/100M/1000M自協商時,該bit(狀態1遠端接收正常,狀態0遠端接收異常;
bit[11:10] 是將遠端發送的FLP Burst-NextPage的信息(U3,U4)存儲在本寄存器。如果自協商協商失敗從而造成鏈路雙方不能正常建立鏈接,或者自協商成功但協商結果不符合預期。相關驅動工程師可以利用本寄存器進行故障定位和分析。
10M/100M/1000M雙絞線自協商未完待續
審核編輯:劉清
-
以太網
+關注
關注
40文章
5424瀏覽量
171702 -
寄存器
+關注
關注
31文章
5343瀏覽量
120348 -
雙絞線
+關注
關注
2文章
242瀏覽量
23682 -
PHY
+關注
關注
2文章
303瀏覽量
51742 -
狀態機
+關注
關注
2文章
492瀏覽量
27539
原文標題:以太網自協商機制--雙絞線自協商(三)
文章出處:【微信號:FPGA開源工坊,微信公眾號:FPGA開源工坊】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論