2. OSI模型与物理层定位
说实话,很多工程师干了几年车载网络,对OSI模型的理解还停留在“背七层名字”的阶段。但物理层不一样——你调不好它,上层协议再牛也白搭。今天我们就从OSI模型切入,把物理层的位置、职责、以及与数据链路层的“握手”方式彻底讲透。
2.1 OSI七层模型回顾
OSI模型是1984年ISO搞出来的参考框架。它把通信过程拆成七层,每层只管自己的事。我习惯这么记:“物、数、网、传、会、表、应”。
| 层号 | 名称 | 核心职责 | 车载以太网中的例子 |
|---|---|---|---|
| 7 | 应用层 | 为用户应用提供网络服务 | SOME/IP服务发现、DoIP诊断 |
| 6 | 表示层 | 数据格式转换、加密、压缩 | 序列化/反序列化(如SOME/IP的CDR) |
| 5 | 会话层 | 建立、管理、终止会话 | DoIP的TCP连接管理 |
| 4 | 传输层 | 端到端可靠传输、流量控制 | TCP/UDP、AVTP时间同步 |
| 3 | 网络层 | 路由选择、逻辑寻址 | IPv4/IPv6、VLAN路由 |
| 2 | 数据链路层 | 帧封装、MAC寻址、差错检测 | 以太网MAC、VLAN标签、CRC校验 |
| 1 | 物理层 | 比特流传输、电气特性、编码 | 100BASE-T1、1000BASE-T1 PHY |
你想想看,这七层里真正跟“线”打交道的,只有物理层。上层协议再花哨,最终都得变成物理层的一串高低电平或者差分信号,才能在铜线或光纤上跑。
核心认知:OSI模型是逻辑分层,实际硬件实现时,物理层和数据链路层往往集成在同一颗芯片里(比如车载PHY+MAC组合芯片)。但逻辑上,它们的职责必须严格分开。
2.2 物理层在车载以太网中的角色
物理层到底干些什么?说白了就三件事:发出去、收回来、保证信号不丢不坏。
具体到车载以太网,物理层的角色可以拆成五个关键点:
- 介质适配——把MAC层送来的数字信号,转成适合在特定介质上传输的物理信号。车载环境用单对非屏蔽双绞线(UTP),所以物理层要做共模/差模转换。
- 信号编码——原始数据不能直接扔到线上。物理层会做编码(比如PAM3、PAM5),目的是抗干扰、减少直流分量、提供时钟同步信息。
- 电气特性管理——车载电压波动大、温度范围宽。物理层要保证在-40°C到+125°C范围内,信号眼图依然张开。
- 链路建立与检测——PHY芯片上电后,会通过Auto-Negotiation(自动协商)和Link Training(链路训练)来确认对端能力、匹配工作模式。
- 故障诊断——物理层能检测链路断开、短路、信号质量劣化,并通过寄存器或中断通知上层。
我的经验:有一次在台架上测100BASE-T1,发现丢包率忽高忽低。查了半天,最后发现是PHY芯片的MDI引脚附近少放了一颗共模扼流圈。物理层的“小细节”往往就是系统稳定性的“大瓶颈”。
车载以太网物理层还有一个特殊角色——EMC/EMI的守门员。车内的电磁环境极其恶劣,电机、点火线圈、射频模块都在干扰你。物理层的频谱整形和共模抑制能力,直接决定了整车能不能过EMC测试。
2.3 物理层与数据链路层的接口
这两层之间的接口,在以太网体系里叫MII(Media Independent Interface)。名字叫“介质无关”,意思是MAC层不用管底下是双绞线还是光纤,统一通过MII跟PHY通信。
MII家族有很多变种,车载领域最常见的是:
| 接口类型 | 数据位宽 | 时钟频率 | 典型应用 |
|---|---|---|---|
| MII | 4位 | 25 MHz | 100BASE-T1(早期设计) |
| RMII | 2位 | 50 MHz | 减少引脚数,适合低成本方案 |
| RGMII | 4位(DDR) | 125 MHz | 1000BASE-T1,千兆车载以太网 |
| SGMII | 串行1位 | 625 MHz | 高速SerDes连接,芯片间远距离 |
接口上跑的信号,主要分两类:
- 数据信号:TXD/RXD(发送/接收数据)、TX_EN/RX_DV(使能/数据有效)、TX_CLK/RX_CLK(时钟)
- 管理信号:MDC/MDIO(管理时钟/数据),用于配置PHY寄存器、读取状态
我建议你重点理解MDIO/MDC管理接口。调试物理层问题时,90%的工作都是通过读写PHY寄存器来完成的。比如读寄存器0x01(BMSR)可以看链路是否建立,写寄存器0x00(BMCR)可以强制PHY进入Loopback模式。
避坑指南:我曾经在一个项目里,MAC和PHY之间的RGMII走线长度差了200mil,结果高速信号时序不满足建立/保持时间,千兆链路死活协商不上。后来在PCB上做了蛇形等长才解决。记住:MII接口的PCB走线必须做等长约束,尤其是RGMII这种DDR采样方式。
物理层通过MII接口,向上层暴露了哪些能力?我整理了一张图:
这张图里,MII接口就像MAC和PHY之间的“翻译官”。MAC把帧拆成4位半字节(Nibble)或2位数据,通过TXD线送给PHY;PHY收到后重新编码、加前导码、加帧起始定界符,然后调制成模拟信号发出去。反过来,PHY从线上收到信号后,先解码、去前导码、检查CRC,再通过RXD线把数据还给MAC。
这里有个容易混淆的点——MAC层也会做CRC校验,但那是针对整个帧的完整性。物理层在MII接口上传递的是“净荷+MAC头+CRC”的完整帧数据。物理层自己不做CRC,它只保证比特级的传输质量。
实战要点:调试物理层问题时,第一步永远是检查MII接口上的信号质量。用示波器看TX_CLK和RXD之间的时序关系,用逻辑分析仪抓MDIO读写序列。如果MII接口上的数据就是错的,那PHY再牛也救不了。
最后说一句——物理层不是孤立的。它跟数据链路层之间,通过MII接口传递的不仅是数据,还有链路状态和错误指示。比如PHY检测到链路断开,会通过中断引脚或MDIO寄存器通知MAC;MAC收到后停止发送数据,避免浪费带宽。这种“物理层-数据链路层”的协作机制,是车载以太网可靠性的基础。