PHY 负责四件事:编码、串并转换、时钟恢复、介质接口。它是「数字」与「模拟」的边界。 自协商与 MDI/MDI-X 都出在这一层——上一章双工不匹配的根就在这里。
上一节讲控制面,这一节开始往下走。PHY 是数据离开设备前的最后一站。 这一节要算:三种标准的编码与波特率,以及 MAC 与 PHY 之间接口的带宽。
一、三种标准的编码
10BASE-T 曼彻斯特:10 Mbaud,每符号 1 bit。效率 50%,但自带时钟。 100BASE-TX 4B/5B + MLT-3:125 Mbaud,效率 80%。MLT-3 三电平把基频压到四分之一。 1000BASE-T PAM-5:125 Mbaud × 2 bit × 4 对 = 1000 Mbps。每对线同时双向收发,靠回波消除。
这条演进线的主线是「把频率压到线缆能承受的范围内」, 而不是「把速率堆上去」——因为线缆的带宽是最硬的约束。
二、自协商与线序翻转
自协商(FLP):发一串脉冲,跟对端谈速率与双工。上一章讲的双工不匹配就出在这一层。
MDI/MDI-X 自动翻转:判断对端是直通还是交叉,自己把收发对换过来。 所以今天随便一根网线都能通,靠的是这一层。
注意这两件事都在 PHY 里做,不在 MAC 里。所以换 PHY 芯片可能改变协商行为——这是兼容性问题的来源之一。
三、PHY 与 MAC 之间的接口
MII:4 位、25 MHz、100 Mbps。GMII:8 位、125 MHz、1 Gbps。 RGMII:4 位 DDR、125 MHz、1 Gbps。SGMII:串行、1 Gbps。
RGMII 用一半的线跑出同样的带宽,靠双边沿采样。代价是时序更紧——走线长度要严格匹配,差几毫米就可能不稳。
光口没有 PHY 的「模拟部分」:电光转换由光模块完成。所以光口的「PHY」其实在模块里。
四、动手 Demo:三种标准的编码与波特率
这段把 10BASE-T、100BASE-TX、1000BASE-T 的编码、线上波特率、每对线用法并排列出来, 再列 MAC 与 PHY 之间的四种接口。
for a, b, c, d in ((u"10BASE-T", u"曼彻斯特", u"10 Mbaud", u"1 对"),
(u"100BASE-TX", u"4B/5B + MLT-3", u"125 Mbaud", u"1 对"),
(u"1000BASE-T", u"PAM-5 + 4D 格码", u"125 Mbaud", u"4 对")):
T([a, b, c, d], [0, 0, 0, 0])
实跑输出:
--------------------------------------------------------------------
PHY 模块,把「比特」变成「波形」的那一层
--------------------------------------------------------------------
**PHY(物理层芯片)负责四件事**:编码、串并转换、时钟恢复、介质接口。
它是「数字」和「模拟」的边界。
标准 编码 线上波特率 每对线
-------------------------------------------------------------
10BASE-T 曼彻斯特 10 Mbaud 1 对
100BASE-TX 4B/5B + MLT-3 125 Mbaud 1 对
1000BASE-T PAM-5 + 4D 格码 125 Mbaud 4 对
**注意千兆那一行:125 Mbaud × 2 bit(PAM-5 实际每符号 2 bit)× 4 对 = 1000 Mbps。**
这就是为什么千兆一定要四对线——不是「用得上」,是「非这样不可」。
**PHY 还管两件容易被忽略的事**:
1. **自协商**:发 FLP 脉冲,跟对端谈速率与双工。**上半章的双工不匹配就出在这一层。**
2. **MDI/MDI-X 自动翻转**:判断对端是直通还是交叉,自己把收发对换过来。
**所以今天随便拿一根网线都能通,靠的是这一层。**
**PHY 与 MAC 之间的接口带宽是要算的**:
接口 位宽 时钟 带宽
-----------------------------------------------
MII 4 位 25 MHz 100 Mbps
GMII 8 位 125 MHz 1 Gbps
RGMII 4 位 DDR 125 MHz 1 Gbps
SGMII 串行 — 1 Gbps
**RGMII 用一半的线跑出同样的带宽,靠的是双边沿采样(DDR)。**
代价是时序更紧——**这也是为什么 RGMII 的走线长度要严格匹配,差几毫米就可能不稳。**
**最后一条**:光口没有 PHY 这一层的「模拟部分」,它由光模块自己完成电光转换。
**所以光口的「PHY」其实在模块里。**
千兆那一行是重点:125 Mbaud × 2 bit(PAM-5 每符号 2 bit)× 4 对 = 1000 Mbps。 所以千兆一定要四对线,不是「用得上」,是「非这样不可」。
注意 100BASE-TX 是 125 Mbaud 跑 100 Mbps, 千兆也是 125 Mbaud 跑 1000 Mbps——同样的波特率,十倍的数据率。差别在「每符号带几个比特」和「用几对线」。
最后一行「4 对」也解释了 PoE 为什么能用:千兆把四对线全用了, 所以 PoE 只能用「数据对共模送电」的方式(10/100 则可以用空着的两对)。
30 秒实验
- 看一台设备的网口旁边有没有「MDI-X」标记。
- 查网卡驱动里的「自协商」选项。
- 用一根交叉线接两台老设备,看能不能通。
常见误区
- 以为千兆可以用两对线。必须四对。
- 以为自协商只在 MAC 里做。那是 PHY 的事。
- 以为光口也有 PHY 芯片。在模块里。
自测三问(点开对答案)
1. 100BASE-TX 与 1000BASE-T 的波特率分别是多少? —— 都是 125 Mbaud,差别在每符号比特数与线对数。 2. MDI/MDI-X 自动翻转解决什么问题? —— 自动判断对端是直通还是交叉,把收发对换过来。 3. 为什么千兆必须用四对线? —— 125 Mbaud × 2 bit × 4 对才能凑出 1000 Mbps。下一节:PHY 之后进 MAC——成帧、算 CRC、记账。
- ☐ (本节完,下一节 02.09.03 MAC模块)