在 **2.5GBASE-T**(IEEE 802.3 Clause 126)等基于 BASE-T 的物理层规范中,链路建立过程(Link Establishment)中确实包含了 **发送功率(Transmit Power)相关的交互**,主要体现在 **PMA Training 阶段**,用于实现以下目标:
* **告知对端应期望的信号强度范围**(方便接收 EQ 调整)
* **根据通道质量自动调节发射功率**(如线缆较短可降低功耗)
* **对接收端均衡器提供训练目标**
这部分内容主要参考于:
* IEEE 802.3bz(用于 2.5GBASE-T 和 5GBASE-T)
* IEEE 802.3 Clause 126.5.4.6(PMA transmit signal parameters)
---
## 🧭 一、功率交互阶段在哪发生?
### 🔄 发生于 PMA Training 阶段(Clause 126.5)
在 Auto-Negotiation 完成并确定了 Master/Slave 角色后,进入 PMA Training。此时:
* **Master 首先开始发送 Training Pattern**
* **Slave 接收该信号并恢复时钟**
* **Master 向 Slave 提供“Transmit Training Field”,其中包括发送功率目标信息**
* Slave 用此信息作为**接收均衡器的训练目标**
---
## 🔧 二、传输功率交互内容
### 📡 发送训练信号包含:
| 字段名称 | 描述 |
| ---------------------------- | ------------ |
| Coefficients Update Requests | 告知对端 EQ 调整系数 |
| Coefficient Status Reports | 告知当前 EQ 调整结果 |
| **Transmit Power Target** | 发射端提供的建议功率等级 |
| Training Field Framing | 包含位对齐/帧边界标识 |
这些信息在 **Training Pattern 的 bitstream 中嵌入**,并通过 PMA sublayer 的 DFE 或 LFE 模块解码。
---
### ⚙️ 发射功率的设置机制
* 发射端根据线缆类型(Cat5e、Cat6)、长度、EMI 需求,**自动调节 TX amplitude(电压摆幅)**;
* 可根据 PHY 内部 ADC 检测通道损耗做动态调节;
* 在部分 PHY 芯片中,也可**手动配置功率等级**(一般用不到);
---
## 💡 三、PHY芯片层的控制方式(开发/调试相关)
### ✅ 1. 功率配置寄存器(可选项)
部分 PHY(如 Marvell / Realtek / Intel)提供用于调试的发射功率手动设置寄存器,例如:
| 例子(Realtek RTL8221B) |
| ------------------------------------------ |
| Page 0xA40, Reg 0x10 → TX swing level |
| Page 0xA42, Reg 0x11 → Reported Training功率 |
一般不建议开发者修改;由 PHY 自动调节即可。
---
### ✅ 2. 驱动行为建议(裸机 / 控制端)
| 项目 | 建议做法 |
| ------------- | ---------------- |
| 启动 Training 前 | 不干预 PHY TX swing |
| Training 过程中 | 可读取功率等级状态 |
| Training 后 | 查询训练是否完成、是否成功 |
🔍 可通过 PHY 的 Clause 45 MMD 接口读取 Training 状态:
```c
uint16_t training_status = mdio_read(phy_addr, 3, 0x0011);
if (training_status & (1 << 2)) {
// PMA Training Done
}
```
---
## 🧪 四、发射功率等级参考(以 PHY 内部定义为准)
一些 PHY 将 TX amplitude(摆幅)分为如下档位:
| Level | 电压范围 | 说明 |
| ----- | --------- | --------------- |
| 0 | \~700 mV | 超短线缆(<3m)或EMI优化 |
| 1 | \~900 mV | 标准默认值(<30m) |
| 2 | \~1100 mV | 长线缆适配(>50m) |
实际输出电压会被 PHY 根据信号质量动态修正。
---
## 🧱 总结
| 阶段 | 功率交互内容 | 控制对象 | 是否可软件干预 |
| ---------------- | ------------------------------------------------- | --------------- | ------------- |
| Auto-Negotiation | 无 | - | ❌ |
| PMA Training | TX Power Target Field embedded in training stream | Master 发给 Slave | ✅(部分PHY 可配置) |
| Link Up 后 | PHY 动态功率调节 | 自动(根据误码率) | ❌(默认自动) |
---
## 📘 可选:调试 PHY 的 TX Swing 寄存器?
如果你告诉我你正在用的 PHY 芯片(例如 RTL8221B、YT8521、88E1540、Marvell 1512 等),我可以帮你查出它对应的“TX swing”、“Training Power Target”设置和读取方式,甚至帮你加一段裸机调试代码。
是否需要进一步了解某型号 PHY 的这部分内容?