2.5G PHY芯片master和slave的协议控制流程

在 **2.5GBASE-T** 链路建立过程中,**master 和 slave 设备**之间需要通过一套完整的协议交互流程来协商能力、时钟角色、信号训练,并最终完成链路激活。该过程融合了 **Clause 73(Auto-Negotiation)** 与 **Clause 126(2.5GBASE-T)** 的规范。下面是详细的交互说明:

 

---

 

## 🧭 总体流程图(主从角色下的链路建立)

 

```plaintext

┌────────────┐                    ┌────────────┐

│  Master    │                    │  Slave     │

└────┬───────┘                    └────┬───────┘

     │ 1. 启动自协商 (Clause 73)        │

     │───────────────────────────►│

     │◄───────────────────────────│

     │ 2. 双方交换能力信息             │

     │  - 支持 2.5GBASE-T            │

     │  - Master/Slave 能力位       │

     │                             │

     │ 3. Master/Slave 决策          │

     │  - 根据优先级/能力确定主从     │

     │                             │

     │ 4. 进入 PMA Training 阶段      │

     │───────────────────────────►│

     │◄───────────────────────────│

     │  - 发送训练信号               │

     │  - 接收端调节均衡器参数       │

     │  - 完成信号对齐               │

     │                             │

     │ 5. 建立 FEC / PCS 链接         │

     │                             │

     │ 6. Link up, ready            │

```

 

---

 

## 🔧 协议阶段详解

 

### ✅ 1. **Clause 73 Auto-Negotiation**

 

* 基于 Clause 45 MDIO 或 SERDES 协议帧进行;

* 包含 **Ability Exchange**(能力交换) 和 **Master/Slave 角色协商**;

* 能力信息包括:

 

  * 支持速率(1000M / 2.5G / 5G)

  * 是否支持 EEE(节能以太网)

  * 是否具备 FEC 支持

  * **Master/Slave preference**(是否希望担任 master)

 

🔍 **Master/Slave 角色协商规则**:

 

* 双方发出 **Ability** 帧(带 master 优先级字段);

* 数值小者为 Master,大者为 Slave;

* 如果一样,则用随机数打破对称。

 

> **主设备提供时钟,Slave 从主设备接收恢复时钟**。

 

---

 

### ✅ 2. **PMA Training(Clause 126.5)**

 

链路角色确认后进入 **信号训练阶段**,核心为:

 

* **发送训练信号(Training Pattern)**;

* **对接收链路进行采样、均衡调试**;

* **动态调节前加重、接收 EQ**;

* 确认链路可用性与眼图质量。

 

🔍 该阶段会触发如下行为:

 

* Slave 使用 Master 时钟恢复信号;

* 双方发出 PAM-16 或 DSQ128 调制的固定模式;

* 通过内置比较器与测量电路检测信号质量;

* 成功后写入寄存器,告知“Training Complete”。

 

---

 

### ✅ 3. **FEC 和 PCS 同步**

 

在物理层训练完成后:

 

* 启用 LDPC 或 Firecode FEC(前向纠错);

* 同步 64b/66b 或 128b PCS 编码;

* 建立 Frame Lock;

* 完成数据层链路激活。

 

链路稳定之后会设置以下位:

 

* MMD 3, Reg 0x0011(PMA Status 2):Bit 2(Training done)

* MMD 1, Reg 0x0001(Basic Status):Bit 2(Link Status)

* 可选:MMD 3, Reg 0x0020(PMA Loopback / Debug)

 

---

 

## ⚙️ 协议交互中用到的重要寄存器(Clause 45)

 

| 操作              | MMD 地址 | 寄存器        | 含义                                 |

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

| 启用 Auto-Neg     | Dev 7  | Reg 0x0000 | Bit 12                             |

| 设置 Ability      | Dev 7  | Reg 0x0010 | Bit 7 (2.5G)                       |

| Master/Slave 能力 | Dev 7  | Reg 0x0020 | Bit 11 (MS\_CFG), Bit 12 (MS\_MAN) |

| 读取 Training 状态  | Dev 3  | Reg 0x0011 | Bit 2(PMA Training Done)           |

| Link Status     | Dev 1  | Reg 0x0001 | Bit 2                              |

 

---

 

## 🧪 举个例子:如何判断主从角色?

 

某 PHY 的主从协商能力寄存器(MMD 7,Reg 0x0020)如下:

 

* Bit 12:Manual Master/Slave Enable

* Bit 11:Configure as Master(1 = Master)

* Bit 8–0:Priority(越小越优先)

 

Master/Slave 决定算法:

 

1. 如果两端都手动设置 → 强制决定;

2. 如果一端手动设置,另一端自动协商 → 手动设置生效;

3. 如果都自动 → 比较 Priority,低者胜;

 

---

 

## 🔄 Link Training 状态迁移图(简化)

 

```plaintext

[START] 

   ↓

[Auto-Neg Complete] 

   ↓

[PMA Training in Progress] 

   ↓ (Training Succeed)

[PMA Training Complete] 

   ↓ (PCS Align Done)

[LINK UP]

```

 

可用定时器 + 状态轮询方式实现驱动中的训练监控。

 

---

 

## 💡 提示:裸机驱动要做什么?

 

你不需要控制主从协商本身(大部分 PHY 自动完成),但你应该:

 

1. **配置 Auto-Negotiation 能力寄存器**(含 2.5G 和 Master/Slave 能力);

2. **读取 Master/Slave 结果**(如 Marvell PHY 提供);

3. **检查 PMA Training 和 Link Status 状态位**;

4. **等待训练完成再使能 MAC 接口**。

 

---

 

## 📘 总结

 

| 阶段               | 内容           | 是否自动       |

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

| Auto-Negotiation | 协商速率和主从角色    | 自动(PHY 内部) |

| PMA Training     | 链路信号训练       | 自动(PHY 内部) |

| 主从选择             | 通过优先级字段自动协商  | 自动,但可强制    |

| 状态检查             | PMA状态/Link状态 | 手动读取寄存器    |

 

---

 

如你告诉我使用的具体 PHY 型号(例如 RTL8221B、YT8521、88E1512 等),我可以进一步列出它具体寄存器的 Master/Slave 协商方式、判断方式及链路状态判断逻辑。

 

是否需要?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值