3. PHY芯片工作原理

搞车载以太网,绕不开PHY芯片。很多刚入行的工程师喜欢把PHY当作一个黑盒子,觉得配置一下寄存器就完事了。

我跟你说,这种想法很危险。

PHY芯片是连接数字世界和模拟世界的桥梁。它有三个核心模块:PMA、PCS和Auto-Negotiation。理解这三者,你才能看懂波形、读得懂日志、踩得了坑。

PMA(物理介质接入层)—— 管硬件的家伙

PMA全称Physical Medium Attachment。说白了,它就是PHY芯片里负责跟电缆/PCB走线直接打交道的模拟电路。

核心任务: 发送时把数字信号转成模拟信号,接收时反着来。关键指标是信噪比和抖动。

PMA干三件事:

  1. 信号编码/解码:把PCS交过来的数据比特流,编码成适合在差分线上传输的物理信号(比如PAM3)。
  2. 均衡/滤波:做模拟域的去加重和接收均衡,补偿线缆/PCB带来的损耗。
  3. 时钟恢复:从数据流里提取时钟(CDR),保持收发同步。

我之前遇到过一批板子,长线缆测试老间歇丢包。查了三天,结果发现是PMA的接收均衡参数没调对,高阻态对抗干扰失效。嗯,这种问题你用眼图扫描一看就能发现。

PCS(物理编码子层)—— 管数据的管家

PCS全称Physical Coding Sublayer。它不碰模拟信号,只处理数字逻辑。

PCS主要负责:

  • 数据包对齐和定界:识别SFD(帧起始定界符)和帧间隙。
  • 4B/5B或8B/10B编解码:维持DC平衡,提供足够的时钟跳变沿。
  • 错误检测:通过CRC校验检查数据完整性。
特别提醒: 车载环境对EMC有严格要求,PCS的编码方式直接影响频谱特性。100BASE-T1用PAM3,跟传统百兆的编码差别很大。你如果按消费电子的思路选PHY,大概率会在辐射发射测试上翻车。

Auto-Negotiation(自动协商)—— 谈判专家

Auto-Negotiation在车载以太网中是强制要求,不是可选项。

自动协商的目的是:连接建立时,双方交换能力,选一个都支持的最高性能配置。

协商的内容包括:

协商项说明
速率能力100Mbps / 1000Mbps 等
主/从时钟确定谁提供主时钟源,避免时钟冲突
双工模式全双工/半双工(车载一般全双工)
休眠唤醒能力是否支持EEE节能以太网

我的经验: 自动协商失败最典型的表现是——用示波器能看到Link脉冲在握手,但Link Status就是起不来。我曾经遇到过ECU升级后线束插拔顺序变化,导致SCR(信号编码规则)时序超容差,协商直接崩溃。后来加了软件复位时序,问题才解决。

三者协作流程图

为了让你更直观地理解整个过程,我画了一张图。它展示了从PMA接收模拟信号,到PCS处理数据帧,再到Auto-Negotiation完成握手和协商的完整路径。

PHY芯片核心结构 - PMA / PCS / Auto-Negotiation 协作图 PHY芯片核心模块协作流程图 PMA 物理介质接入层 PCS 物理编码子层 Auto-Negotiation 自动协商 PMA 主要功能 • 信号编码/解码 • 均衡/滤波 • 时钟恢复 (CDR) • 模拟前端 (A/D, D/A) PCS 主要功能 • 数据包对齐/定界 • 8B/10B 编解码 • CRC 错误检测 • 状态机管理 Auto-Neg 主要功能 • 速率协商 • 主/从时钟选择 • 双工模式确认 • 休眠唤醒判定 实际数据流路径(发送方向) MAC 发帧 PCS 编码 PMA 发送 链路建立前,Auto-Negotiation 先完成握手和配置 链路建立后,PMA ↔ PCS 进行正常数据收发 中断/超时路径

常见的三大坑

你如果只看datasheet,会觉得一切都设计得很完美。但实际动手就不一样了。

  • PMA偏置电压漂移:车载温度范围宽,PMIC输出的偏置电压会跟着飘,导致信号共模电压偏移。我之前遇到过冬天启动车辆,Link掉线,就是PMA的基准源没扛住低温。
  • PCS的CRC误判:100BASE-T1的CRC是4字节的,短帧容易产生CRC错误。我记得某个项目,大量误帧率Failed,其实是PCS的CRC计算逻辑在复位后没正确初始化。
  • Auto-Negotiation超时死锁:两端的PHY如果协商时序不一致,会出现反复重连。我建议你在调试阶段,把Auto-Neg的寄存器全部打印出来看看,尤其是AN_STATUS和AN_LP_ADV。

一个实用技巧: 抓Auto-Negotiation的过程,可以使用PHY的内部回环模式。先让PHY自己跟自己握手,验证PMA/PCS链路没问题,再去排查物理层和线缆。我每次做稳定性测试都会先跑这一项,能排除掉80%的硬件虚焊问题。

小总结

PMA负责信号完整性和模拟特性,PCS处理数据帧格式和校验,Auto-Negotiation解决双方握手和配置同步。这三者任何一个出问题,PHY都起不来。

你想想看,如果你连PHY的内部结构都不清楚,怎么去查log里那些PHY寄存器异常?所以我才在第一堂课就这么强调基础知识的重要性。

下一课我们聊具体怎么用这些知识去排查物理层抖动问题。