3. 工业以太网物理层与Sitara PHY配置

工业以太网能否稳定运行,往往不取决于协议栈写得多漂亮,而取决于物理层是否“干净、可靠、可诊断”。在 TI Sitara(如 AM64x/AM243x、AM335x 等)平台上,MAC 与 PHY 之间的接口、PHY 寄存器的正确配置、链路诊断手段以及 EMC 防护设计,共同决定了 100BASE-TX/1000BASE-T 链路在电磁噪声、长线缆、宽温环境下的可用性。本节围绕“接口—配置—诊断—防护”这条主线展开,重点讲清楚实际工程中该看哪些寄存器、该测哪些点、该怎样判断链路是否真正健康。

一、100BASE-TX 与 1000BASE-T 的物理层差异

100BASE-TX 使用一对差分线发送、一对差分线接收,采用 4B/5B 编码加 MLT-3 线路编码,符号率 125 MBd,占用 1 对收发通道,对线缆类别要求为 Cat5 及以上。1000BASE-T 则在同一根 4 对双绞线上同时双向传输,采用 8B/10B 加 PAM-5 编码,符号率 125 MBd,每对线承载 250 Mbps,通过回声消除与串扰抵消实现全双工。这意味着千兆链路对连接器、线序、回波损耗和共模抑制的要求显著更高。

在 Sitara 平台上,MAC 侧通常提供 RGMII 或 SGMII 接口。RGMII 是 4 位数据、双沿采样(DDR)的并行接口,1000 Mbps 时时钟 125 MHz,100 Mbps 时 25 MHz;SGMII 是 1.25 Gbps 串行接口,常与支持 SerDes 的 PHY 或光模块配合。选择哪种接口,取决于 PHY 型号、板级走线长度和是否需要光纤/背板连接。

Sitara MAC ↔ PHY ↔ MDI 信号链与关键配置点 Sitara MAC CPSW / ICSSG RGMII / SGMII MDIO 主控 DMA / 中断 TXD[3:0] / TX_CTL RXD[3:0] / RX_CTL GTX_CLK / RX_CLK MDC / MDIO 以太网 PHY DP83867 / DP83869 RGMII 延时 / SGMII 自协商 / 寄存器 链路诊断 / TDR TX± (Pair A/B) RX± (Pair C/D) 1000BASE-T: 4对双向 MDI / 变压器 / RJ45 共模扼流圈 Bob Smith 端接 TVS / ESD 防护 Cat5e/Cat6 线缆 PHY 关键寄存器配置(示例) BMCR (0x00):自协商使能、重启、速率/双工 BMSR (0x01):链路状态、自协商完成 PHYSTS (0x10):速率、双工、链路实时状态 RGMII_CTRL (0x32):TX/RX 延时、时钟偏移 CFG1 (0x09):SGMII 模式、AN 使能 TDR_CTRL (0x1E):线缆诊断启动与结果 LED_CFG (0x18):链路/活动指示灯映射 链路诊断与 EMC 防护要点 • MDIO 读 PHYSTS 判断速率/双工是否匹配 • TDR 测线缆开路/短路/阻抗异常距离 • 眼图/回波损耗评估信号完整性 • 变压器中心抽头去耦与 Bob Smith 端接 • 差分对等长、阻抗 100Ω、远离时钟/电源 • TVS 钳位电压与结电容需匹配千兆速率 • 屏蔽层单点接地,避免地环路

二、RGMII 与 SGMII 接口的工程选择

RGMII 的优势是引脚少、成本低、无需 SerDes,适合板内 MAC 与 PHY 距离较近(通常小于 10 cm)的场景。但它对时序敏感:TX_CTL 与 TXD 在时钟双沿采样,若走线延时不一致,会出现建立/保持违例。DP83867 等 PHY 提供 RGMII 内部延时(TX Delay / RX Delay)配置,可通过寄存器 0x32 的 bit4/bit3 使能,从而省去外部延时线或 PCB 蛇形走线。实际调试时,若出现丢包但链路显示 Up,应优先检查 RGMII 延时是否与 MAC 侧采样方式匹配。

SGMII 使用 1.25 Gbps 串行差分对,适合背板、光模块或长距离连接。Sitara 的 CPSW/ICSSG 在 SGMII 模式下需要正确配置 SerDes 参考时钟、均衡和预加重。SGMII 自协商通过 8B/10B 码流中的配置字交换速率与双工信息,若 PHY 与 MAC 的 AN 使能不一致,会出现链路无法建立或速率降级。

三、PHY 寄存器配置的实际操作

在 Linux 下,可通过 mdio-tools 或 ethtool 访问 PHY 寄存器。以下示例读取 DP83867 的 PHYSTS(0x10)判断当前链路状态:

# 读取 PHY 地址 0 的寄存器 0x10
mdio-read /dev/mdio0 0 0x10
# 返回示例:0x796D
# bit[5:4]=10 表示 1000M,bit[3]=1 表示全双工
# bit[2]=1 表示链路 Up,bit[1]=0 表示未自协商完成

# 使能 RGMII RX 内部延时(寄存器 0x32 bit4)
mdio-write /dev/mdio0 0 0x32 0x0010

配置顺序建议为:先复位 PHY(BMCR bit15),等待自协商完成(BMSR bit5),再读取 PHYSTS 确认速率与双工,最后根据 MAC 侧采样方式设置 RGMII 延时。若使用固定速率而非自协商,需同时设置 BMCR bit13(速率)和 bit8(双工),并关闭 bit12(AN 使能),否则会出现两端速率不一致导致的持续丢包。

四、链路诊断:从寄存器到线缆

链路诊断分三个层次。第一层是寄存器状态:BMSR bit2 表示 Link Up,bit5 表示 AN Complete;PHYSTS 给出实际协商结果。第二层是 TDR(时域反射)线缆诊断,DP83867 支持通过寄存器 0x1E 启动 TDR,结果给出各对线的开路/短路状态及故障距离(单位约 0.8 m/步)。第三层是信号质量:用示波器测差分眼图,或用网络分析仪测回波损耗,判断是否满足 IEEE 802.3 模板。

一个常见排障场景:链路显示 1000M 全双工,但大流量下丢包。此时应检查 RGMII 延时是否匹配、变压器中心抽头去耦是否充分、差分对是否等长。若 TDR 报告某对线阻抗异常,则优先检查连接器和线缆。

五、EMC 与工业防护设计要点

工业现场的 EMC 威胁包括 ESD、EFT、浪涌和共模噪声。防护设计应遵循“先泄放、再滤波、后隔离”的顺序:RJ45 入口处放置 TVS 阵列,钳位电压需低于 PHY 绝对最大额定值,结电容应小于 3 pF 以免影响千兆信号;变压器提供 1.5 kV 以上隔离,中心抽头通过 75Ω 电阻加 1000 pF 电容到机壳地,形成 Bob Smith 端接,抑制共模噪声;差分对走线保持 100Ω 差分阻抗,长度匹配误差控制在 5 mil 以内,远离时钟和开关电源。

此外,PHY 的电源去耦应使用 0.1 μF 与 10 μF 组合,尽量靠近引脚;MDIO/MDC 走线避免与差分对平行;若使用屏蔽线缆,屏蔽层应在连接器侧单点接地,避免形成地环路。对于宽温工业场景,还需关注 PHY 晶振的频率稳定度(通常 ±50 ppm 以内)和变压器的工作温度范围。

调试建议:先确认 MDIO 能正常读写 PHY 寄存器,再检查自协商结果,最后用 TDR 和眼图定位物理层问题。不要一上来就怀疑协议栈。
注意:RGMII 延时配置错误是千兆链路“能 Link 但丢包”的最常见原因之一。TX 与 RX 延时不能同时使能或同时关闭,需与 MAC 侧采样方式匹配。