PHY XGE 自协商AN数据交互过程

发布于:2025-06-26 ⋅ 阅读:(23) ⋅ 点赞:(0)

在裸机环境下,两个 **支持 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` 中每次读取确认。

 


网站公告

今日签到

点亮在社区的每一天
去签到