2. 车载网络演进

说实话,很多刚接触车载以太网的朋友,一上来就被OSI七层模型给唬住了。觉得这东西太抽象,跟实际开发离得远。我当年刚入行时也这么想,直到有一次在实车上排查一个通信故障,从应用层一路查到物理层,才真正体会到——这七层模型,就是车载网络的“地图”。没有它,你连问题出在哪都不知道。

这一章,我们就来聊聊OSI七层模型在车载环境下的具体映射。我不会跟你念教科书,而是结合我这些年做项目的实际经验,把每一层在车上到底干了什么、有什么坑,掰开了讲清楚。

核心观点:车载以太网并没有重新发明OSI模型,而是针对车载环境的特殊性,对每一层做了“裁剪”和“增强”。理解这些差异,是后续做项目开发的基础。

OSI七层模型与车载以太网映射 标准OSI七层 7. 应用层 6. 表示层 5. 会话层 4. 传输层 3. 网络层 2. 数据链路层 1. 物理层 车载以太网映射 SOME/IP · DoIP · AVB 通常合并到应用层实现 (无独立协议) TCP · UDP IPv4 · IPv6 · DoIP VLAN · AVB/TSN 100BASE-T1 · 1000BASE-T1 💡 关键差异 车载以太网合并了5/6层,强化了2/3层,物理层采用单对差分线

2.1 物理层:从RJ45到单对差分线

物理层是OSI模型的第一层,负责把数据变成电信号在线上传输。标准以太网用的是RJ45接口,4对差分线。但车上不一样——空间有限、线束重量敏感、成本控制严。

车载以太网的物理层,核心标准是100BASE-T1和1000BASE-T1。它们最大的特点:只用一对差分线。你想想看,一对线就能跑100M甚至1Gbps,这在传统以太网里是不敢想的。

我的经验:第一次用100BASE-T1做项目时,我总觉得一对线不靠谱,特意加了屏蔽。后来发现,只要PCB布局合理,非屏蔽也能过EMC测试。别过度设计,但一定要留足测试余量。

特性 标准以太网 (100BASE-TX) 车载以太网 (100BASE-T1)
线对数量 2对 (4线) 1对 (2线)
连接器 RJ45 MATe/ H-MTD
最大距离 100m 15m (车内足够)
EMC要求 较低 极高 (CISPR 25)
典型应用 办公室/数据中心 ADAS摄像头、网关

嗯,这里要注意:100BASE-T1和100BASE-TX不能直接互连。我见过有人拿普通网线去接车载以太网设备,结果完全不通。必须用专门的PHY芯片做介质转换。

2.2 数据链路层:VLAN与AVB/TSN

数据链路层在车载环境里,比标准以太网要复杂得多。为什么?因为车上跑的数据优先级差异巨大——安全气囊的触发信号和娱乐系统的视频流,能走同一个优先级吗?显然不能。

车载以太网在数据链路层引入了两个关键机制:

  • VLAN (802.1Q):把物理网络切分成多个逻辑网络。比如ADAS数据走VLAN 10,娱乐数据走VLAN 20,互不干扰。
  • AVB/TSN (802.1AS/802.1Qbv):时间敏感网络。说白了,就是给关键数据预留时间槽,保证它不迟到。

我曾经踩过的坑:在做网关路由配置时,VLAN的PCP优先级没配对,导致摄像头数据被娱乐流量阻塞,画面卡顿。查了两天才发现是优先级映射表写错了。所以VLAN配置一定要做全链路验证,不能只看单点。

2.3 网络层:IPv4还是IPv6?

网络层在车载以太网里,主要就是IP层。你可能觉得IP没什么好讲的,但车上有个特殊需求——诊断通信。

标准以太网的IP层,设备地址是静态配置或DHCP获取的。但车上,诊断仪需要动态发现ECU,并且要能路由诊断请求到指定ECU。这就引出了DoIP (Diagnostic over Internet Protocol)。

DoIP在IP层之上定义了一套发现和路由机制。我个人习惯把DoIP理解为:给诊断数据打上“门牌号”,让它在复杂的车载网络里找到正确的ECU。

至于IPv4还是IPv6?目前主流还是IPv4,但IPv6在地址空间和安全性上有优势。我预计未来3-5年,新平台会逐步转向IPv6。

2.4 传输层:TCP vs UDP,怎么选?

传输层就两个选择:TCP和UDP。但在车上,选择标准跟IT网络不太一样。

协议 特点 车载典型场景
TCP 可靠、有序、有重传 诊断 (DoIP)、OTA升级、日志上传
UDP 不可靠、低延迟、无连接 音视频流 (AVB)、传感器广播、SOME/IP-SD

你可能会问:为什么诊断要用TCP?因为诊断数据丢一个字节都可能误判故障。而音视频流丢几个包,人眼根本看不出来,用UDP反而更流畅。

避坑指南:我曾经在SOME/IP服务发现(SD)模块里,误把UDP的接收缓冲区配小了,导致多ECU同时广播时丢包,服务发现失败。后来把缓冲区从4KB调到16KB,问题解决。UDP的缓冲区大小,一定要根据网络拓扑估算。

2.5 应用层:SOME/IP、DoIP、AVB

应用层是离开发者最近的一层。车载以太网的应用层协议,跟IT网络完全不同。这里我重点讲三个:

  • SOME/IP:面向服务的通信中间件。ECU之间通过“服务”来交互,而不是传统的信号。比如“获取车速”是一个服务,任何ECU都可以调用。
  • DoIP:诊断协议。把UDS诊断数据封装在TCP/IP里传输。支持远程诊断,不用再拿着诊断仪满车跑。
  • AVB:音视频桥接。用于摄像头、音响等实时流媒体传输。保证延迟在2ms以内。

我个人觉得,SOME/IP是车载以太网应用层的核心。它定义了服务发现、远程过程调用(RPC)、事件通知等机制。你写应用层代码,基本就是在跟SOME/IP打交道。

2.6 小结:车载以太网的OSI映射

好了,我们把七层模型在车载环境下的映射梳理一遍。你会发现,车载以太网并不是照搬标准以太网,而是做了大量定制:

  • 物理层:单对差分线,100BASE-T1/1000BASE-T1
  • 数据链路层:VLAN隔离 + AVB/TSN时间同步
  • 网络层:IPv4/IPv6 + DoIP路由
  • 传输层:TCP/UDP按场景选择
  • 应用层:SOME/IP + DoIP + AVB