3、DoIP物理层与数据链路层:车载以太网物理层标准、DoIP对物理层的要求、MAC与IP地址分配机制

3.1 车载以太网物理层标准:100BASE-T1与1000BASE-T1

聊到DoIP,咱们得先从最底层的物理层说起。你想想看,车里的环境跟办公室完全不一样——电磁干扰大、温度变化剧烈、线束还得轻量化。所以传统的以太网物理层,比如咱们电脑上用的RJ45接口,在车上根本行不通。

我个人习惯把车载以太网物理层分成两代:第一代是100BASE-T1,第二代是1000BASE-T1。名字里带个「T1」,说明它们都是单对双绞线传输。

100BASE-T1:百兆车载以太网

100BASE-T1,也叫BroadR-Reach,是车载以太网的鼻祖。它只用一对双绞线就能实现100Mbps的全双工通信。我在项目中遇到过不少工程师问:「为什么不用两对线?成本能差多少?」其实差很多——少一对线,连接器、线束、屏蔽层的成本都能降下来,而且线束更轻、更细,对整车减重很有帮助。

它的传输距离是15米,这个长度覆盖车内绝大多数ECU之间的连接。调制方式用的是PAM3(3级脉冲幅度调制),说白了就是用三种电平来表示数据,而不是传统以太网的NRZ编码。

关键参数:
  • 速率:100Mbps(全双工)
  • 传输介质:单对非屏蔽双绞线(UTP)
  • 最大距离:15米
  • 调制方式:PAM3
  • 典型应用:诊断、OTA、摄像头(早期)

1000BASE-T1:千兆车载以太网

随着ADAS和自动驾驶的发展,百兆带宽明显不够用了。一个高清摄像头每秒产生的数据量就超过100Mbps,更别说激光雷达和毫米波雷达了。所以1000BASE-T1应运而生。

1000BASE-T1同样只用一对双绞线,但速率提升到了1Gbps。它用了更复杂的PAM3调制,但符号率更高。我记得第一次在示波器上看1000BASE-T1的信号时,波形比100BASE-T1密集得多,眼图也更难调。

我的经验: 1000BASE-T1对线束质量要求更高。我曾经在项目里遇到过因为线束阻抗不匹配导致链路无法建立的问题,折腾了两天才发现是线束供应商换了材料没通知我们。所以做DoIP诊断时,如果物理层连不上,先查线束和连接器。
参数 100BASE-T1 1000BASE-T1
速率 100 Mbps 1 Gbps
调制方式 PAM3 PAM3(更高符号率)
传输距离 15 m 15 m
线束 单对UTP 单对UTP/STP
典型应用 诊断、控制 ADAS、摄像头、雷达

3.2 DoIP对物理层的要求

DoIP本身是应用层协议,但它对物理层有明确的要求。说白了,物理层是地基,地基不稳,上层协议再牛也没用。

根据ISO 13400标准,DoIP要求物理层必须支持:

  • 全双工通信:诊断请求和响应可以同时发送,不能是半双工。
  • 至少100Mbps速率:虽然DoIP协议本身不限制速率,但标准推荐至少100Mbps。我见过有些老项目用10Mbps的物理层跑DoIP,结果刷写一个ECU要半小时,客户直接投诉。
  • 点对点连接:DoIP通常是一对一的诊断连接,物理层不需要支持多路访问。
  • 自动协商:物理层应该能自动协商速率和双工模式,减少配置工作量。
避坑指南: 我曾经在项目里遇到过一个坑——DoIP诊断仪和ECU之间接了一个交换机,结果交换机不支持100BASE-T1,链路死活起不来。后来才发现,车载以太网物理层和传统以太网物理层不兼容,不能直接混用。所以做DoIP诊断时,一定要确认物理层匹配。

3.3 DoIP的MAC地址与IP地址分配机制

物理层搞定之后,接下来就是数据链路层和网络层的事了。MAC地址和IP地址的分配,是DoIP能够正常工作的关键。

MAC地址分配

每个支持DoIP的ECU,在出厂时都会有一个唯一的MAC地址。这个MAC地址通常由芯片厂商分配,或者由OEM自己管理。DoIP标准没有强制规定MAC地址的格式,但建议使用全球唯一的MAC地址,避免冲突。

我在实际项目中见过两种做法:

  • 静态MAC:ECU出厂时烧录固定MAC地址,简单可靠,但管理起来麻烦。
  • 动态MAC:ECU上电后从外部存储(比如EEPROM)读取MAC地址,或者由网关统一分配。这种方式灵活,但需要额外的硬件支持。

嗯,这里要注意:DoIP诊断仪在发现ECU时,是通过MAC地址来识别设备的。如果两个ECU的MAC地址冲突,诊断仪会无法区分它们。所以MAC地址的唯一性非常重要。

IP地址分配

DoIP的IP地址分配有两种方式:静态分配和动态分配(DHCP)。

静态分配:ECU使用固定的IP地址,适合测试环境或固定拓扑。我刚开始做DoIP时,图省事全用静态IP,结果有一次把两个ECU设成了同一个IP,抓包时数据全乱了。从那以后,我建议生产环境尽量用DHCP。

动态分配(DHCP):ECU上电后通过DHCP服务器获取IP地址。DoIP标准推荐使用DHCP,因为它能自动管理IP地址,避免冲突。DHCP服务器可以是诊断仪,也可以是车内的网关。

DoIP的IP地址分配流程:
  1. ECU上电,物理层链路建立。
  2. ECU发送DHCP Discover广播,寻找DHCP服务器。
  3. DHCP服务器回复Offer,提供IP地址。
  4. ECU发送Request,确认使用该IP地址。
  5. DHCP服务器回复ACK,分配完成。

除了DHCP,DoIP还支持AutoIP(自动私有IP地址)。当DHCP服务器不可用时,ECU会自动生成一个169.254.x.x的IP地址。这个机制在诊断仪直连ECU时特别有用,不需要额外配置网络。

3.4 知识体系总览

为了让你更直观地理解这一章的知识结构,我画了一张图。你可以看到,物理层是基础,数据链路层负责MAC地址,网络层负责IP地址,层层递进,最终支撑起DoIP诊断协议。

DoIP物理层与数据链路层知识体系 DoIP诊断协议(ISO 13400) 网络层:IP地址分配 静态分配 | DHCP | AutoIP 数据链路层:MAC地址 静态MAC | 动态MAC | 唯一性要求 物理层:车载以太网标准 100BASE-T1(100Mbps) | 1000BASE-T1(1Gbps) 单对双绞线 | PAM3调制 | 15米距离 物理层 → 数据链路层 → 网络层 → 应用层,层层支撑 DoIP诊断依赖于每一层的正确配置
我的建议: 做DoIP诊断时,如果抓包发现没有响应,别急着分析应用层。先检查物理层链路是否建立(看Link灯或者PHY寄存器),再确认MAC地址是否冲突,最后看IP地址是否分配成功。按照这个顺序排查,能省下不少时间。

好了,这一章的内容就到这里。物理层和数据链路层是DoIP的根基,理解透了,后面分析DoIP报文时才能游刃有余。


公众号:蓝海资料掘金营,微信deep3321