1. DoIP协议概述:DoIP的起源、ISO 13400标准族、DoIP在车载网络中的定位
各位同学好,我是老张。今天咱们开始聊DoIP,也就是基于IP的诊断协议。说实话,我刚入行那会儿,车载诊断还全靠CAN总线,一根线跑遍全车。后来车越来越智能,电子控制器越来越多,CAN总线那点带宽根本不够用了。嗯,DoIP就是在这个背景下应运而生的。
1.1 DoIP的起源:为什么需要它?
先说说背景。传统诊断用的是CAN总线,速率最高也就1Mbps。你想想看,现在一辆车上有上百个ECU,刷个软件动不动几十兆甚至上百兆。用CAN刷?那得等到猴年马月去。
我记得2015年那会儿,我在一个OEM项目里做网关开发。客户要求通过OBD接口刷写娱乐系统固件,一个固件包200MB。用CAN诊断刷,理论速度算下来要半小时以上。客户当场就炸了:「这用户体验也太差了!」
所以,DoIP的诞生说白了就两个核心诉求:
- 速度要快——以太网带宽是CAN的百倍千倍
- 传输要远——IP网络天然支持远程诊断
DoIP最早由ISO在2012年提出,标准号ISO 13400。它把传统的UDS诊断协议(ISO 14229)搬到了以太网上。说白了,就是把诊断报文封装在TCP/IP包里,通过以太网传输。
核心要点:DoIP不是新发明了一套诊断协议,而是给UDS换了一条更宽更快的路。
1.2 ISO 13400标准族:到底包含哪些内容?
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 | 一致性测试 | 怎么验证你的DoIP实现对不对 |
这里面最核心的是ISO 13400-2。它定义了DoIP的报文结构、路由激活、诊断连接管理等关键机制。我个人习惯把13400-2当作DoIP的「宪法」,所有实现都得按它来。
小提示:如果你刚开始学DoIP,建议先啃13400-2。其他几部分可以边做边查。
1.3 DoIP在车载网络中的定位
现在咱们聊聊DoIP在整个车载网络里到底扮演什么角色。我画个图帮你理解:
诊断仪(上位机)
│
▼
┌─────────────┐
│ OBD接口 │ ← 物理连接点
└──────┬──────┘
│
▼
┌─────────────┐
│ 网关 │ ← DoIP实体,负责协议转换
└──────┬──────┘
│
├─────────── CAN总线(传统ECU)
├─────────── 以太网(域控制器、智驾系统)
└─────────── LIN总线(车窗、座椅等)
你看,DoIP实体通常部署在网关或者域控制器上。它负责两件事:
- 对外:通过以太网与诊断仪通信,接收UDS请求
- 对内:把诊断请求路由到目标ECU(可能是CAN、LIN或以太网节点)
这里有个关键点:DoIP不是取代CAN诊断,而是互补。为什么?
- CAN诊断:适合低速、实时性要求高的场景(比如安全气囊、刹车系统)
- DoIP:适合大数据量、非实时场景(比如刷写、日志上传、远程诊断)
注意:千万不要以为有了DoIP就可以扔掉CAN诊断。我见过一个项目,把所有诊断都搬到以太网上,结果安全气囊ECU的响应时间超标了。原因很简单——以太网协议栈的延迟比CAN大得多。
另外,DoIP还有一个重要定位——远程诊断的基石。现在的车都联网了,T-Box(车载通信终端)通过4G/5G连接云端。诊断仪在云端发个请求,经过T-Box转发到DoIP实体,就能远程读取车辆数据。这在传统CAN时代根本不敢想。
我曾经帮一个主机厂做远程诊断方案,他们要求能远程读取电池包的温度数据。用DoIP+TLS加密传输,数据从车辆到云端再到诊断仪,全程安全可控。嗯,这个TLS集成咱们后面章节会详细讲。
1.4 小结
这一章咱们聊了DoIP的来龙去脉。总结三句话:
- 起源:为了解决CAN诊断带宽不足、速度太慢的问题
- 标准:ISO 13400标准族,核心是13400-2
- 定位:车载网络中的高速诊断通道,与CAN诊断互补,是远程诊断的基础
下一章咱们会深入DoIP的报文格式和连接管理。说实话,这部分有点绕,但搞懂了后面就顺了。咱们下节课见。