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密集得多,眼图也更难调。
| 参数 | 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通常是一对一的诊断连接,物理层不需要支持多路访问。
- 自动协商:物理层应该能自动协商速率和双工模式,减少配置工作量。
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服务器可以是诊断仪,也可以是车内的网关。
- ECU上电,物理层链路建立。
- ECU发送DHCP Discover广播,寻找DHCP服务器。
- DHCP服务器回复Offer,提供IP地址。
- ECU发送Request,确认使用该IP地址。
- DHCP服务器回复ACK,分配完成。
除了DHCP,DoIP还支持AutoIP(自动私有IP地址)。当DHCP服务器不可用时,ECU会自动生成一个169.254.x.x的IP地址。这个机制在诊断仪直连ECU时特别有用,不需要额外配置网络。
3.4 知识体系总览
为了让你更直观地理解这一章的知识结构,我画了一张图。你可以看到,物理层是基础,数据链路层负责MAC地址,网络层负责IP地址,层层递进,最终支撑起DoIP诊断协议。
好了,这一章的内容就到这里。物理层和数据链路层是DoIP的根基,理解透了,后面分析DoIP报文时才能游刃有余。
公众号:蓝海资料掘金营,微信deep3321