第三章 物理层与链路层:100BASE-T1 vs 1000BASE-T1、车载以太网物理层特性、MAC与PHY交互

好,咱们进入第三章。这一章聊的是物理层和链路层,说白了就是信号怎么在线上跑,以及MAC和PHY这对搭档怎么配合。我当年刚接触车载以太网时,也被100BASE-T1和1000BASE-T1搞得有点懵——名字差不多,差别却很大。咱们今天把它彻底讲透。

3.1 100BASE-T1 vs 1000BASE-T1:一对双绞线的较量

先问个问题:为什么车载以太网不用标准的100BASE-TX或1000BASE-T?

原因很简单——那些标准需要两对甚至四对双绞线。车里线束本来就多,再拉四对线,成本、重量、空间都受不了。所以IEEE专门为汽车搞了单对双绞线的方案,就是100BASE-T1和1000BASE-T1。

特性 100BASE-T1 1000BASE-T1
速率 100 Mbps 1000 Mbps (1 Gbps)
线对数量 1对双绞线 1对双绞线
最大距离 15米(典型) 15米(典型)
调制方式 PAM3 PAM4
典型应用 诊断、OTA、低带宽传感器 摄像头、ADAS、高速数据流
标准 IEEE 802.3bw IEEE 802.3bp

看到没?100BASE-T1用PAM3调制,1000BASE-T1用PAM4。PAM3是3电平调制,每个符号传log2(3)≈1.58比特;PAM4是4电平调制,每个符号传2比特。速率差了10倍,但物理层复杂度也上去了。

关键点:1000BASE-T1的PAM4对信号质量要求更高。同样的线束,跑100M没问题,跑1G可能就掉包了。我见过一个项目,线束供应商换了批材料,结果1G链路死活协商不上,最后发现是线缆特性阻抗偏差太大。

3.2 车载以太网物理层特性

车载以太网的物理层,跟咱们办公室用的以太网,其实差别不小。我总结几个关键点:

3.2.1 单对双绞线 + 共模扼流圈

100BASE-T1和1000BASE-T1都只用一对线。但这一对线上同时传输数据和直流偏置。嗯,这里要注意——PHY芯片内部会通过中心抽头给线对加一个共模电压,用来做信号参考。

共模扼流圈是必须的。它抑制共模噪声,同时让差模信号通过。我刚开始做设计时,觉得共模扼流圈随便选一个就行,结果EMC测试没过。后来换了绕线工艺更好的扼流圈,问题才解决。

3.2.2 链路协商与唤醒

车载以太网有个特殊机制——链路协商不仅仅是速率协商,还包括唤醒功能。ECU在休眠时,PHY可以处于低功耗监听状态。当检测到链路上有特定唤醒信号时,PHY会唤醒整个ECU。

这个机制在DoIP里特别重要。你想,车辆熄火后,大部分ECU都休眠了。但诊断仪一接上,得能唤醒网关。这就是通过PHY的唤醒信号实现的。

避坑指南:我曾经遇到一个案例,诊断仪连上车后,网关能唤醒,但某些子ECU没反应。查了半天,发现是子ECU的PHY唤醒阈值设置太高,链路信号衰减后达不到唤醒电平。后来调整了PHY寄存器里的唤醒阈值,问题解决。

3.2.3 EMC与布线要求

车载环境电磁干扰严重。物理层设计必须考虑:

  • 差分信号:抗共模干扰,这是基础
  • 屏蔽:很多OEM要求使用屏蔽双绞线(STP)
  • 布线:远离大电流线束,避免平行走线过长
  • 端接:100Ω差分阻抗,必须精确匹配

我记得有个项目,ADAS摄像头图像偶尔花屏。排查到最后,发现是摄像头线束跟电机电源线绑在一起走了30厘米。分开布线后,问题消失。嗯,物理层的问题,有时候就是这么简单粗暴。

3.3 MAC与PHY交互

MAC(媒体访问控制层)和PHY(物理层)之间怎么通信?这得看接口标准。车载以太网常用的接口是:

3.3.1 MII / RMII / RGMII

这些是标准以太网的MAC-PHY接口。但在车载领域,更常见的是:

  • RGMII:减少引脚数,适合高速应用
  • SGMII:串行接口,引脚更少,速率更高

MAC和PHY之间交换的数据,本质上是MAC帧加上前导码和帧间隙。PHY负责把这些数据编码成物理信号发出去,再把收到的信号解码成数据交给MAC。

3.3.2 管理接口:MDIO/MDC

MAC通过MDIO(管理数据输入输出)和MDC(管理时钟)来配置PHY。这个接口很重要,因为:

  • 可以读写PHY寄存器,查看链路状态
  • 可以配置PHY的工作模式(速率、唤醒阈值等)
  • 可以获取链路质量信息(信号强度、误码率等)

实战经验:调试DoIP时,我经常先通过MDIO读PHY的链路状态寄存器。如果链路没起来,后面所有协议栈都白搭。所以我的习惯是——先确认PHY链路OK,再往上查。

3.3.3 数据流示例

咱们看一个简化的数据流:

// MAC发送数据到PHY
1. MAC从上层拿到IP包,封装成以太网帧
2. MAC通过RGMII/SGMII把帧数据发给PHY
3. PHY对数据进行编码(PAM3或PAM4)
4. PHY通过一对双绞线发送出去

// PHY接收数据到MAC
1. PHY从线对上收到模拟信号
2. PHY解码成数字数据
3. PHY通过RGMII/SGMII把数据发给MAC
4. MAC检查帧校验,交给上层协议栈

这个过程看起来简单,但实际调试时坑不少。比如RGMII的时钟相位对齐,我调过好几次。有些PHY芯片支持时钟延迟调整,有些需要PCB走线长度匹配。嗯,这些细节,做硬件的人最清楚。

3.4 物理层对DoIP的影响

最后聊聊物理层跟DoIP的关系。DoIP跑在TCP/IP上,TCP/IP跑在以太网上。物理层出问题,DoIP肯定跑不起来。

我总结几个常见问题:

  • 链路协商失败:PHY没起来,DoIP连不上
  • 信号质量差:丢包率高,DoIP重传频繁,诊断超时
  • 唤醒问题:诊断仪连上了,但ECU没被唤醒,DoIP无响应
  • EMC干扰:车辆行驶中,物理层受干扰,DoIP连接中断

警告:别小看物理层。我见过太多人,DoIP协议栈调得飞起,结果连不上,最后发现是PHY配置错了。记住——物理层是基础,基础不牢,地动山摇。

好了,这一章就到这儿。下一章咱们聊DoIP的协议栈架构,看看UDP和TCP在DoIP里怎么分工。到时候我会分享一些抓包分析的经验,挺有意思的。