IEEE 802.3 协议中,**2.5GBASE-T、5GBASE-T 和 10GBASE-T** 的链路自协商(auto-negotiation,简称 AN)是在物理层(PHY)完成的。它的作用是:
* **让连接双方(主机和对端)自动协商出都支持的最高速率**
* **确定主从(Master/Slave)角色**
* **激活相应的链路训练和数据通道(如 LDPC 编码、DFE、THP 等)**
这些速率都基于 **Clause 45 和 Clause 98/126/73/104 等子规范**实现。
---
## 🔁 一、速率自协商过程概述
自协商过程遵循如下步骤:
1. **基于 Clause 73 的自动协商流程启动**
2. **交换能力报文(Base Page & Next Page)**
3. **选择双方都支持的最高速率(优先级:10G > 5G > 2.5G > 1G)**
4. **确定 Master/Slave**
5. **进入 Clause 72 或 Clause 126 的 Training 阶段**
6. **训练完成后 Link Up**
---
## 🧠 二、关键技术标准
| 速率 | IEEE标准Clause | 自协商规范 | 训练规范 |
| ---- | ------------ | --------- | --------- |
| 1G | Clause 40 | Clause 37 | N/A |
| 2.5G | Clause 126 | Clause 73 | Clause 72 |
| 5G | Clause 126 | Clause 73 | Clause 72 |
| 10G | Clause 55 | Clause 73 | Clause 72 |
注:2.5G 和 5G 是后加入的标准,兼容 1G 和 10G 的流程,但使用新的 **能力页(Next Page)扩展字段**表示其速率。
---
## 📡 三、详细自协商过程(以 Clause 73 为例)
### 1. 启动 AN(Auto-Negotiation)
* 双方 PHY 上电或 Link Down 后重新尝试协商。
* 开始在 MDI(介质相关接口)上发送 **Fast Link Pulses(FLPs)**。
### 2. Base Page 交换
* Base Page(16-bit)包含基本能力(是否支持 1000BASE-T、Pause、FEC、是否为 Next Page)
* 不足以传达 2.5G/5G/10G 支持,需继续发送 Next Pages
### 3. Next Page 交换(Clause 73)
双方开始发送一系列 **Next Page**,用于传输:
* **所支持的速率(10G/5G/2.5G)**
* **FEC 支持**
* **是否要求为 Master**
* **是否支持 Energy Efficient Ethernet(EEE)**
* **PHY Identifier、Vendor OUI**
### 4. 主从决定(Master/Slave)
* 自协商决定一端为 Master,另一端为 Slave
* 主要用于 **训练时的时钟来源选择**(Master 发送基准时钟)
判断逻辑基于双方请求 Master 的标志位(MS=1),有冲突则比 PHY ID。
### 5. 链路训练阶段(Clause 72 / Clause 126)
根据协商速率,进入对应的训练阶段:
* 对于 2.5G/5G/10G,使用 Clause 72 中定义的 **PMA Training**
* 包括发送信道探测信号(TRN\_DATA)、估算 THP/DFE 系数
* 进行回退式训练(训练系数、错误检测)
> 这是最复杂的阶段,包括解扰、线对延迟、远端回馈等多个步骤。
### 6. 链路激活
* 如果训练成功,Link Status 拉高
* 开始 PCS 编码、LDPC 启用,开始正常数据传输
---
## 🧾 四、速度优先级
在 IEEE 802.3 标准中,速率协商遵循 **优先级从高到低选择**:
```
10GBASE-T > 5GBASE-T > 2.5GBASE-T > 1000BASE-T
```
一旦协商出共同支持的最高速率,就不会考虑低速方案。
---
## 🧪 五、例子:自协商报文中的能力字段
以 Clause 73 中的一个 Next Page 字段为例(16 bits):
| Bit | 名称 | 描述 |
| ----- | ------------------ | ----------------- |
| 15 | NP | Next Page Flag |
| 14 | ACK2 | 二次确认 |
| 13 | Toggle | 状态翻转位 |
| 12\~0 | Message/Code Field | 含速率、FEC、EEE 等能力编码 |
对于支持 2.5G/5G 的 PHY,这些码位用特定 Vendor OUI 和 Message Code 来表达(标准或扩展域中)。
---
## ⚙️ 六、与 Clause 45 的接口
如果是通过 MDIO/Clause 45 来控制 PHY,则:
* `MMD 7.0x0000` 和 `7.0x0001` 可读写 AN Control/Status
* `MMD 7.0x0005~0x000F` 读写能力页、下一页等内容
* `MMD 1/3/7` 还包括 Training 和状态控制
---
## 🧰 七、常见调试问题
| 问题 | 原因 |
| -------------- | ------------------------------ |
| AN 成功但 Link 不起 | 训练失败(PMA),信道太差或系数估算失败 |
| 速率协商不一致 | 对端不支持新速率、Next Page 配置错误 |
| 主从冲突 | 双方都请求 Master、PHY ID 规则判断失败 |
| 配置无效 | 没写入正确的 Next Page,未启用 Clause 73 |
---
## ✅ 总结流程图(简略)
```text
PHY Power On / Link Down
↓
Auto-Negotiation Start
↓
Exchange Base Page & Next Page
↓
解析速率能力 -> 决定 Master/Slave
↓
PMA Training (Clause 72)
↓
Training 成功? ———→ 否 → Link Down
↓ 是
Link Up & 正常通信
```
---
如果你正在做 2.5G/5G PHY 驱动开发,建议关注:
* Clause 73 / Clause 72 的寄存器交互
* PMA Training 的 TRN 状态机和信号捕获流程
* Next Page 的能力编码(是否需要设置 Vendor OUI)
我也可以提供模拟通信抓包、寄存器配置例子或对接示意图,欢迎继续深入。