PHY XGE 自協商AN數據交互過程

在裸機環境下,兩個?**支持?10GBASE-T**?的?PHY?芯片通過?Clause 73?協議完成自協商(Auto-Negotiation,AN),它們在?**無操作系統控制**?的條件下,完成以下?**完整的點對點數據交互流程**:

?

---

?

##?🎯?目標

?

讓兩個?PHY?互相通過線纜,自動協商出都支持的最高速率(如?10G / 5G / 2.5G / 1G),并同步啟用相關功能(如?FEC、Master/Slave、DFE?等)。

?

---

?

##????術語說明(來自?IEEE 802.3 Clause 73)

?

|?縮寫? ? ? ? ? ? |?含義? ? ? ? ? ? ? ? ? ? ? ? ? ? |

| ------------- | ----------------------------- |

| **MP**? ? ? ? | Message Page(標準能力頁)?? ? ? ? ? |

| **NP**? ? ? ? | Next Page(是否還有下一頁)? ? ? ? ? ? |

| **Toggle**? ? |?翻轉位,每次頁內容變化時翻轉? ? ? ? ? ? ? ? |

| **ACK2**? ? ? |?確認頁同步用? ? ? ? ? ? ? ? ? ? ? ? |

| **Base Page** |?基礎能力頁(Clause 28?兼容頁)? ? ? ? ? |

| **Next Page** |?后續頁,用于傳遞?10G/5G/2.5G/FEC/廠商能力?|

| **LP**? ? ? ? | Link Partner,對端?? ? ? ? ? ? ? |

?

---

?

##?📡?自協商階段間交互過程

?

以下以兩端:**Master(A)**?與?**Slave(B)**?為例,進行詳解。

?

---

?

###?🧭?階段?0:電纜連接?& PHY?通電

?

*?每端?PHY?檢測線纜狀態。

*?初始化?AN?狀態機,準備發出?Base Page。

?

---

?

###?🔄?階段?1:Base Page?交換(Clause 28)

?

*?雙方發送?16-bit Base Ability(如?0x0020?表示?1000Base-KX,全雙工)。

* Base Page?帶有?`NP = 1`?表示后面還有頁。

?

```

Master →?發送?Base Page: 0x3020 (NP=1, Toggle=1)

Slave? →?發送?Base Page: 0x3020 (NP=1, Toggle=1)

```

?

*?雙方檢測到對方頁,返回?ACK。

* Base Page ACK?成功后,轉入?Next Page?交換。

?

---

?

###?🔁?階段?2:Next Page?交換(Clause 73)

?

每一頁結構如下:

?

```

Bit 15: NP(1?表示后續還有頁)

Bit 14: ACK2

Bit 13: Toggle(每頁變化后翻轉)

Bit 12: MP(1 = Message Page,0 = Vendor/Unformatted)

Bit 11~0: Payload(內容)

```

?

####?📨?雙方頁交互如下:

?

```

Master?發送:0x9804? (MP=1, Message Code = 0x004 = 10G)

Slave? 發送:0x9804

?

Master?發送:0x9803? (5G)

Slave? 發送:0x9803

?

Master?發送:0x9802? (2.5G)

Slave? 發送:0x9802

?

Master?發送:0x8402? (Vendor Page,含FEC或MS偏好)

Slave? 發送:0x8402

?

Master?發送:0x0000? (NP=0,最后一頁)

Slave? 發送:0x0000

```

?

*?每個頁都要通過對端返回?ACK2?位進行確認;

*?每一頁都檢測?Toggle?位變化來判斷是否有效;

* NP=0?時表示頁交換完畢。

?

---

?

###???階段?3:協商結果一致?&?鏈路建立

?

*?雙方比較對端頁中能力,確定**最高共同支持速率**(如都支持?10G,則選用?10G)。

*?處理附加協商參數(FEC、Master/Slave、EEE、Training);

*?設置內部狀態機為?`link_ready`,進入?Training(訓練)階段。

?

---

?

###?📉?階段?4:Training & Link Up

?

*?雙方啟動?**PMA Training(PMA-Tx/Rx?調諧)**

?

? * DFE(判決反饋均衡器)系數交換

? * THP(前饋預加重)系數計算

? *?線對延遲測量

? *?回聲/串擾抑制調整

*?完成后啟用數據通道,鏈路正式?up。

?

---

?

##?🧠?總結:裸機自協商全過程的數據交互結構

?

|?階段?? ? ? ? ? |?交互類型?? ? ? ? |?內容?? ? ? ? ? ? ? ? ? ? ? ? |

| ------------ | ------------ | -------------------------- |

| Base Page? ? | Clause 28頁交換?|?全雙工能力、是否支持下一頁? ? ? ? ? ? ? |

| Next Page? ? | Clause 73頁交換?| 10G/5G/2.5G能力、FEC/MS偏好、廠商頁?|

| Toggle/ACK2? |?控制字段?? ? ? ? |?確保頁同步與有效性? ? ? ? ? ? ? ? ? |

| Finalization |?結果確認?? ? ? ? |?雙方確定最終速率與FEC配置?? ? ? ? ? ? |

| Training?? ? |?模擬自適應? ? ? ? |?通道補償、均衡器設置、誤碼調整? ? ? ? ? ? |

?

---

?

##?📌?附加建議

?

* **調試建議**:

?

? *?在裸機下可每隔?Xms?打印?`0x07.0x14/0x18`?讀取到的頁;

? *?若?Toggle?不變說明對方頁沒更新;

? *?若?AN?無法完成,注意對端是否缺頁、Toggle未翻轉、或?ACK2?不匹配。

?

* **抓包調試工具**:

?

? * Marvell/Aquantia PHY?可通過?MDIO trace?或開發工具查看頁交互;

? * Clause 73?數據頁通常可在?`0x07.0x18`?中每次讀取確認。

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/911757.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/911757.shtml
英文地址,請注明出處:http://en.pswp.cn/news/911757.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【算法 day09】LeetCode 232.用棧實現隊列 | 225. 用隊列實現棧 | 20. 有效的括號 |1047. 刪除字符串中的所有相鄰重復項

232.用棧實現隊列 題目鏈接 | 文檔講解 |視頻講解 : 鏈接 1.思路&#xff1a; 使用2個棧去實現隊列 先將元素放入棧1中&#xff0c;然后在將棧1中的元素出棧到棧2中&#xff0c;棧2的元素出棧順序就和隊列的出隊一樣 2.代碼&#xff1a; class MyQueue {Stack<Integer…

大模型項目實戰:業務場景和解決方案

你的這張圖已經涵蓋了很多主流的大模型實戰項目&#xff0c;非常全面&#xff01;下面我會補充更多市面上常見的AI大模型實戰項目&#xff0c;并且簡要說明每個項目的核心內容、實現思路和主流技術棧&#xff0c;方便你參考和擴展。 1. 智能問答/知識庫系統 核心內容&#xff…

vscode + Jlink 一鍵調試stm32 單片機程序(windows系統版)

vscode Jlink 一鍵調試stm32 單片機程序 安裝交叉編譯工具鏈安裝 x-pack 構建工具安裝 JLink 工具gnu-debuger 插件編譯一鍵啟動調試 安裝交叉編譯工具鏈 stm32采用 交叉編譯工具鏈 arm-none-eabi-xxx, 下載之后解壓&#xff0c;壓縮包內部結構如下圖&#xff1a; 目錄下的bi…

Linux線程概念和控制

Linux線程概念 Linux中線程如何理解 線程<執行流<進程 Linux中的線程模擬進程實現&#xff08;線程就是輕量級進程&#xff09; 與獨立的進程相比&#xff0c;線程創建和銷毀的開銷較小&#xff0c;因為它們共享相同的內存空間和資源。 線程是進程內的執行分支&…

服務器出現問題,連接服務器出現3680 并刪除數據庫出現1192,請查看詳細問題(運維)

mysql連接服務器時&#xff0c;出現這個問題&#xff1a;3680 - Failed to create schema directory xxxx (errno: 28 - No space left on device) 第一步&#xff1a;診斷問題類型 檢查磁盤空間 運行以下命令&#xff1a; bash df -h # 查看磁盤使用情況 如果輸出中 Use% 接…

uniapp:微信小程序膠囊「復制鏈接」灰色處理

在原生開發的小程序中默認是支持復制的 &#x1f424; 但是在 uniapp 開發的小程序中無法復制&#xff08;體驗版與開發版都可以進行復制&#xff0c;但發布后不可&#xff09; 解決方法&#xff1a; methods: {onShareAppMessage: function() {// return custom share data …

差分數組c++

溫度波動記錄 每天記錄溫度&#xff0c;支持區間溫度調整和單日查詢 輸入&#xff1a; 第一行&#xff1a;一個整數n表示有n個溫度 第二行&#xff1a;n個數表示具體溫度 第三行&#xff1a;三個整數&#xff1a;S&#xff0c;e&#xff0c;c&#xff0c;表示從…

Vue.js 列表過濾實現詳解(watch和computed實現)

Vue.js 列表過濾實現詳解 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthd…

性能測試-jmeter實戰4

課程&#xff1a;B站大學 記錄軟件測試-性能測試學習歷程、掌握前端性能測試、后端性能測試、服務端性能測試的你才是一個專業的軟件測試工程師 性能測試-jmeter實戰4 jmeter環境搭建1. 安裝Java環境&#xff08;必需&#xff09; JMeter環境搭建完整指南1. 安裝Java&#xff0…

GPPT(Graph Pre-training and Prompt Tuning)項目復現

GPPT(Graph Pre-training and Prompt Tuning)項目復現 項目概述 GPPT是一種創新的圖神經網絡預訓練與提示調整框架,由MingChen-Sun等人提出。該項目通過將自然語言處理中的提示學習概念引入圖領域,解決了圖預訓練模型在下游任務中的適應性問題。 環境配置 # 創建Python…

anchor 智能合約 IDL 調用

簡介&#xff1a;通過 IDL 生成代碼 調用 anchor 智能合約。 全網首發 使用 anchor 可以快速開發 solana 上面的智能合約 &#xff0c; 在本案例中我們 先使用 anchor 創建一個只能合約&#xff08; 多個函數方法&#xff09;。 部署到 dev 鏈上。 通過 anchor 的 IDL 生成 代碼…

【Clickhouse系列】事務

目錄 1. 標準 ACID 支持場景 (MergeTree 引擎家族) 2. 非 ACID 場景 3. 實驗性事務功能 (非云環境) 總結 參考文檔 事務性 (ACID) 支持 | ClickHouse Docs ClickHouse ACID 支持核心要點 1. 標準 ACID 支持場景 (MergeTree 引擎家族) ? 單分區插入 (原子塊) ? ? 原子性…

在cursor中,配置jdk和maven環境,安裝拓展插件

目錄 1.手動配置jdk和maven 2.安裝java拓展插件 1.手動配置jdk和maven 第一步&#xff1a;按ctrl shift p, 搜索“Preferences: Open User Settings (JSON)” 并回車&#xff0c;打開 settings.json 文件 。然后添加或修改以下內容&#xff1a; "java.home": &qu…

(線性代數最小二乘問題)Normal Equation(正規方程)

Normal Equation&#xff08;正規方程&#xff09; 是線性代數中的一個重要概念&#xff0c;主要用于解決最小二乘問題&#xff08;Least Squares Problem&#xff09;。它通過直接求解一個線性方程組&#xff0c;找到線性回歸模型的最優參數&#xff08;如權重或系數&#xff…

在架構設計中平衡動態語言與靜態語言部署差異的策略分析

在軟件架構設計過程中&#xff0c;語言的選型不僅僅關乎開發效率&#xff0c;更直接影響系統的部署速度、運行性能與維護成本。動態語言&#xff08;如 Python、Node.js&#xff09;部署快、開發靈活&#xff1b;靜態語言&#xff08;如 Go、Java、Rust&#xff09;性能強、類型…

我的VSCode中那些插件

前言 最近在研究VUE.JS&#xff0c;而VUE官方推薦使用VSCode作為開發工具&#xff0c;因此最近才開始大量使用這個工具。在使用過程中&#xff0c;總會遇到一些視頻博主推薦某某插件&#xff0c;于是我都將其安裝在我的VSCode上。這里記錄一下&#xff0c;僅供參考。 插件列表…

C# 時間格式日期格式使用合集

一、常用整理 C#時間使用整理,DateTime 使用整理_c#時間格式-CSDN博客 C# 本地時間格式&#xff0c;UTC時間格式&#xff0c;GMT時間格式處理 二、 C#如何獲取今天零點的時間 C# 獲取周一、周日 三、 C#計算兩個時間年份月份差 C#時間點字符串轉換為日期&#xff0c;當…

Ribbon負載均衡的具體實現原理

Ribbon 是 Netflix 開源的一款客戶端負載均衡工具&#xff0c;廣泛應用于微服務架構中&#xff0c;用于在客戶端選擇目標服務實例。 以下是 Ribbon 負載均衡的具體實現原理&#xff1a; 1. 什么是 Ribbon Ribbon 是一個客戶端負載均衡器&#xff0c;負責從服務注冊中心&#…

iOS APP上架App Store實踐:通過自動化流程和輔助工具高效提

在現代開發流程中&#xff0c;持續集成&#xff08;CI&#xff09;已經成為必不可少的環節。對于iOS應用的開發與發布&#xff0c;持續集成不僅限于構建過程&#xff0c;還應該涵蓋從代碼提交到版本發布的整個生命周期。然而&#xff0c;由于iOS平臺對開發環境的限制&#xff0…

3443. K 次修改后的最大曼哈頓距離

3443. K 次修改后的最大曼哈頓距離 題目鏈接&#xff1a;3443. K 次修改后的最大曼哈頓距離 代碼如下&#xff1a; class Solution { public:int maxDistance(string s, int k) {int res 0;// 定義一個大小為 X&#xff08;88&#xff09;的數組&#xff0c;并初始化為 0int…