PHY 芯片通常带有回环(Loopback)功能,用于 PHY 通信链路的测试。本文主要讨论三种常用 PHY 芯片的回环功能,并使用 Broadcom 的 B50612D 芯片进行 PHY 回环测试。
1 常见PHY芯片的回环功能
1.1 KSZ9031
KSZ9031 芯片支持以下两种回环模式:
-
Local (digital) loopback,本地 (数字) 回环
-
Remote (analog) loopback,远端 (模拟) 回环
本地 (数字) 回环模式用于检查 MAC 和 PHY 之间的发送与接收数据链路,支持三种速率(10/100/1000Mbps)与全双工模式。以太网帧由 MAC 端发出,PHY 芯片将接收到的帧发回 MAC 端。
通过配置寄存器 00h 和 09h,开启 Local (digital) loopback 功能,寄存器设定值及含义如下:
远端 (模拟) 回环模式用于检查差分线、RJ45 连接器或者以太网线缆的工作情况,只支持 1000M 全双工模式。
通过配置寄存器 00h 和 11h,开启 Remote (analog) loopback 功能,寄存器设定值及含义如下:
1.2 RTL8211
RTL8211Dx,RTL8211E(G),RTL8211Fx 芯片只支持 PCS loopback 模式,类似前述 KSZ9031 芯片的本地 (数字) 回环模式,通过配置 Basic Mode Control 寄存器的 bit14 开启。
1.3 B50610/B50612
B50610,B50612 芯片支持以下三种回环模式:
-
Internal loopback mode,内回环模式
-
External loopback mode,外回环模式
-
Lineside (Remote) loopback mode,线回环模式
在内回环模式下,PHY 将 RGMII TXD 端的数据包发回 RGMII RXD 端,差分端 TRD± 输出高阻态,外部过来的数据包会被忽略。这种模式类似 KSZ9031 芯片的本地 (数字) 回环模式。
对于外回环模式,MAC 向 PHY 发送的数据包经过 RJ45 连接器,重新发回 PHY,然后进入 MAC 端。
线回环模式主要用于测试 MDI 接口的工作情况,在这种模式下,PHY PCS 层可以配置为三态输出,也可以驱动 RGMII RXD 端。
2 PHY 回环测试
本次测试所使用的 PHY 芯片为 Broadcom 的 B50612D,回环模式选择内回环模式。根据手册得知,开启内回环功能需要配置 PHY 内部寄存器 00h,将 bit14 置为 1.
内回环测试过程如下:
(1)FPGA 每隔 1s 产生一个测试帧,发送给 PHY;
(2)PHY 接收到测试帧,通过 RGMII RXD 端口回传给 FPGA;
(3)FPGA 接收到测试帧,解析并产生 UDP 应答帧;
(4)PHY 接收到 UDP 应答帧,再次回环给 FPGA,但由于远端和源端的 MAC 地址已交换,此时 FPGA 不应答。