1. DoIP协议概述:ISO 13400标准体系、DoIP在车载网络中的定位、物理层与传输层基础
各位同学好,我是老张。做汽车电子测试十几年了,DoIP协议算是我接触过最「有意思」的协议之一。为什么这么说?因为它把传统的车载诊断,直接拉到了以太网的赛道上来。今天咱们就聊聊DoIP协议的基础,把ISO 13400这个标准体系拆开看看。
1.1 ISO 13400标准体系
ISO 13400,说白了就是一套「用以太网做车辆诊断」的国际标准。我记得2010年左右刚接触这个标准时,很多同行还在用CAN诊断。那时候我就觉得,车载网络迟早要上以太网——带宽差太多了。
ISO 13400标准体系主要包含这几个部分:
- ISO 13400-1:概述和应用场景。告诉你DoIP能干什么,不能干什么。
- ISO 13400-2:传输层和网络层协议。这是核心,定义了数据怎么打包、怎么路由。
- ISO 13400-3:基于IEEE 802.3的有线以太网物理层。说白了就是咱们常见的100BASE-TX或1000BASE-T。
- ISO 13400-4:基于IEEE 802.11的无线以太网物理层。这个用得少,但有些高端车型已经在用了。
- ISO 13400-5:一致性测试规范。嗯,这个跟咱们课程关系最大,后面会重点讲。
核心要点:ISO 13400-2是DoIP协议的「心脏」,测试用例大部分都围绕它来设计。我个人习惯,拿到一个新项目,先看-2部分,再看-5的测试要求。
1.2 DoIP在车载网络中的定位
DoIP全称是Diagnostic over Internet Protocol。你想想看,传统诊断走CAN,速率最高也就1Mbps。而DoIP走以太网,100Mbps起步。这差距有多大?
我在项目中遇到过一件事:某款新车型的OTA升级,用CAN刷写一个ECU要40分钟。换成DoIP后,同样的数据量,3分钟搞定。客户当场就拍板,后续车型全部上DoIP。
DoIP在车载网络中的定位,我总结了三句话:
- 它是诊断协议的「高速公路」——UDS on DoIP,就是把UDS报文封装在TCP/UDP里跑。
- 它是网关和外部诊断仪的「桥梁」——外部设备通过DoIP接入车载网络,访问各个ECU。
- 它是整车OTA的「主力通道」——没有DoIP,大数据量的远程升级根本跑不起来。
个人经验:DoIP在车载网络里通常部署在中央网关或域控制器上。测试时一定要确认DoIP实体(DoIP Entity)的IP地址和端口号。我曾经因为IP配错,浪费了一整天。
1.3 物理层与传输层基础
物理层这块,ISO 13400-3规定得很清楚。咱们主要用100BASE-TX,也就是两对双绞线,一对发一对收。为什么不用1000BASE-T?因为车载环境对EMC要求高,100M的速率已经够用,而且成本更低。
传输层呢,DoIP用了两个关键协议:
- TCP:用于可靠的数据传输。诊断请求和响应都走TCP,确保不丢包。
- UDP:用于发现和公告。车辆上线、下线、车辆信息广播,都走UDP。
这里有个坑,我必须要提醒大家:
避坑指南:我曾经在测试中发现,某款T-Box的UDP广播间隔设置得太短,导致网络拥塞。后来查标准才发现,ISO 13400-2里明确规定了广播间隔不得小于100ms。嗯,这个细节很容易被忽略。
DoIP的传输层还有一个重要概念——逻辑地址。每个ECU都有一个逻辑地址,诊断仪通过逻辑地址来寻址。物理层和传输层的关系,我习惯这么理解:
| 层级 | 作用 | 典型参数 |
|---|---|---|
| 物理层 | 信号传输 | 100BASE-TX, 1000BASE-T |
| 传输层 | 端到端通信 | TCP端口13400, UDP端口13400 |
| 网络层 | 路由和寻址 | IPv4/IPv6, 逻辑地址 |
你可能会问:为什么TCP和UDP都用13400端口?这是ISO标准规定的,DoIP的默认端口就是13400。当然,实际项目中也可以配置成其他端口,但一致性测试时一定要用默认端口。
1.4 小结
这一章咱们把DoIP的「骨架」搭起来了。ISO 13400标准体系、DoIP在车载网络中的定位、物理层和传输层基础,这些都是后续测试用例设计的根基。我个人觉得,理解DoIP最好的方式就是动手抓包。下一章咱们就聊聊DoIP的报文结构,到时候我会带着大家逐字节分析。
记住一句话:DoIP不是玄学,它就是一套定义清晰的协议。只要把标准吃透,测试用例设计就是水到渠成的事。