第1章 PHY寄存器基础:定义、分类与作用

1.1 什么是PHY寄存器

PHY寄存器,说白了就是物理层芯片内部的一块“控制面板”+“仪表盘”。

你通过它告诉PHY芯片:
– 工作速率选多少?
– 要不要自动协商?
– 功率怎么控制?

同时,它也把当前状态反馈给你:
– 链路有没有起来?
– 信号质量怎么样?
– 有没有发生碰撞?

每个寄存器通常是16位宽,地址从0到31。前16个地址(0~15)由IEEE 802.3标准规定,后16个(16~31)留给芯片厂商自己折腾。

我个人的习惯:拿到一块新板子,第一件事就是读寄存器0和1。如果这两个能正常读出,说明MDIO/MDC通信没问题。否则,八成是硬件连线或者复位时序有坑。

1.2 PHY寄存器的分类

按功能分,PHY寄存器大概可以分成这几类:

类别 地址范围 典型寄存器 作用
基本控制/状态 0~1 控制寄存器(CR)、状态寄存器(SR) 软复位、速率选择、自协商启停、链路状态
PHY标识 2~3 PHY ID寄存器 厂商和型号识别,调试时确认芯片型号
能力通告 4~5 自协商能力寄存器 本端和对端支持的速率/双工模式
扩展状态 6~15 1000Base-T控制、特定状态 千兆参数、EEE、唤醒等
厂商自定义 16~31 各种测试/诊断寄存器 信号质量、眼图、链路诊断等

你想想看,前两个寄存器就是“门面”,后面那些才是真正干活的。我曾经在项目里只盯着寄存器0和1,结果链路频繁断连,死活找不到原因。后来发现是厂商自定义寄存器里的一个信号检测阈值设得太高,改了一点点就好了。所以,别忽略那些“非标”的角落。

1.3 核心寄存器功能解析

咱们挑几个常用的细说一下。

寄存器0(控制寄存器,BMCR)

  • Bit 15:软复位(写1触发)
  • Bit 13~12:速度选择(00=10M, 01=100M, 10=1000M)
  • Bit 8:双工模式(1全双工,0半双工)
  • Bit 12:自协商使能(1使能)

我第一次调PHY的时候,总觉得软复位要手动清0。后来发现芯片自己会在复位完成后自动清掉Bit 15。嗯,不要反复去写它,不然PHY会一直处于复位状态。

寄存器1(状态寄存器,BMSR)

  • Bit 2:链路状态(1表示链接正常)
  • Bit 5:自协商完成
  • Bit 11~15:各种能力指示
注意: 寄存器1的Bit 2是只读的,而且很多PHY在读取后会自动清零。你如果连续读两次,第二次可能看到0,以为链路掉了。其实没事,只是“粘性”清除。我建议读完后隔几百微秒再读一次确认。

寄存器4(自协商能力寄存器,ANAR)

  • Bit 8~15:本端支持的能力编码
  • Bit 4~7:技术选择(通常为0001表示以太网)

自协商时,你和对方交换各自的能力,最后选定双方都支持的最高速率。我曾经碰到过一端只配了100M全双工,另一端却自动协商成了10M半双工。查了半天,发现是自协商能力寄存器写错了,少设了一个bit。

1.4 寄存器的作用与调试意义

PHY寄存器对调试来说,就像医生的听诊器。没有它,你只能干瞪眼。

  • 配置物理层行为:设定速率、双工、自协商、流控、节能模式等。
  • 监控链路状态:实时判断有没有连上、有没有断开、有没有翻转。
  • 诊断问题根源:通过错误计数器、信号质量指标定位是线缆问题、EMI干扰还是芯片本身问题。
  • 读取芯片信息:验证型号、版本,确保板子上的芯片和BOM一致。

我举个例子吧。有一次产线反馈某批板子网口不通,拿回来测发现链路能起来但丢包严重。读寄存器0正常,读寄存器1链路状态也OK。后来翻厂商手册,找到寄存器27(自定义),里面有个RSSI信号强度字段,读出来只有30多(正常值应该在80以上)。这才发现是RJ45座子虚焊导致的信号衰减。要是没有那个自定义寄存器,这块板子可能要换芯片查半天。

总结核心逻辑:
标准寄存器帮你完成基本配置和状态监控;
扩展寄存器帮你定位链路层和物理层问题;
自定义寄存器是厂商的“私藏宝库”,关键时候能救命。
PHY寄存器分类与调试作用 主控/MDIO控制器 MDIO/MDC 管理总线 标准寄存器 地址0~15,IEEE定义 扩展寄存器 地址6~15,特定标准 厂商自定义 地址16~31,私有功能 配置与状态 速率/双工/链路状态 能力协商 自协商/对端能力 诊断与测试 RSSI/眼图/错误计数 调试时先读标准寄存器确认基础通信 再用扩展和自定义寄存器深挖问题

上面这张图把整个流程串起来了。主控通过MDIO总线读写PHY寄存器,按不同地址访问不同功能块。不管你是新手还是老手,记住这个分层思路就够了。

嗯,到这里,PHY寄存器的基础概念、分类和作用就讲完了。后面的章节我们会逐个深入每类寄存器的具体用法,以及实际调试时怎么“读”出问题、“写”出对策。