https://cloud.tencent.com/developer/article/2531650
DoIP(Diagnostic communication over Internet Protocol)是一种基于以太网的车辆诊断协议,其核心作用是将传统的UDS(统一诊断服务)应用于高速车载以太网中 。你可以把它理解为UDS诊断在以太网这种"高速公路"上的专用通信规范。
目录
📜 协议基础:ISO 13400标准
DoIP协议由ISO 13400标准系列定义 。该标准明确了如何使用IP网络(TCP/IP协议栈)在外部诊断设备和车辆内部ECU之间传输诊断数据 。
- 与UDS的关系:DoIP位于OSI模型的传输层,而UDS(ISO 14229)位于应用层。也就是说,DoIP负责将UDS诊断请求和响应可靠地封装和传输 。
- 核心理念:DoIP不是一个新的诊断协议,而是一个扩展的传输协议 。它解决了如何在以太网上高效、安全地传输UDS数据的问题。
🚗 为什么需要DoIP?
随着汽车智能化发展,传统CAN总线在速度和带宽上已显吃力。DoIP的出现主要解决了以下问题:
- 高带宽需求:支持100Mbit/s甚至1000Mbit/s的传输速率,极大地缩短了ECU软件刷写(FOTA)和下线检测的时间 。
- 远程诊断能力:基于IP的网络特性,使技术人员可以通过网络(如Wi-Fi、5G)远程连接车辆进行诊断,无需物理连接 。
🛠️ 核心功能与通信流程
一个典型的DoIP诊断会话,从物理连接到发送诊断指令,通常包含以下几个关键步骤:
- 物理连接与IP分配:诊断仪通过OBD接口与车辆的DoIP边缘节点建立以太网连接。随后,通过DHCP或Auto-IP机制为双方分配IP地址 。
- 车辆发现:诊断仪需要知道网络中有哪些车辆(或ECU)可供诊断。这通常有两种方式 :
- 主动宣告:车辆启动后,通过UDP协议向广播地址发送"车辆声明消息"。
- 被动响应:诊断仪主动发送"车辆识别请求",车辆收到后回复自身信息。
- 建立TCP连接:确认目标车辆后,诊断仪向车辆的13400端口发起TCP连接请求(三次握手),建立可靠的通信通道 。
- 路由激活:TCP连接建立后,诊断仪需发送"路由激活请求"进行安全认证。车辆ECU验证通过后,激活诊断路由,此时逻辑连接才真正建立 。
- 诊断通信:路由激活后,双方即可开始传输标准的UDS诊断消息(如读取故障码、刷写数据等) 。
📦 DoIP报文结构
DoIP协议数据单元包含一个固定的8字节头部和可变长度的负载数据 :
| 字段名称 | 长度(字节) | 描述 |
|---|---|---|
| 协议版本号 | 1 | 标识所使用的ISO 13400版本(如0x04代表2025版) 。 |
| 版本号取反 | 1 | 协议版本号的按位取反,用于快速校验报文有效性 。 |
| 负载类型 | 2 | 核心字段。标识该报文的用途,例如:车辆识别、路由激活、诊断消息等 。 |
| 负载长度 | 4 | 指示后续负载数据的字节数 。 |
负载类型是关键,常用值包括:0x0001(车辆识别请求)、0x0004(车辆声明)、0x0005(路由激活请求)、0x8001(诊断消息)等 。
🏗️ 车内网络架构
支持DoIP的车辆网络中,主要包含几种逻辑节点 :
- DoIP网关:连接车内不同网络(如将CAN总线上的ECU接入以太网),负责协议转换和数据路由 。
- DoIP边缘节点:位于网络的边缘,是连接外部诊断设备的物理接口,通常包含激活线 。
- DoIP节点:自身支持DoIP协议,可直接被诊断,但不具备为其他节点路由数据的功能 。
- 激活线:一条特殊的硬件线,用于从物理上唤醒车辆的部分网络,使其进入诊断模式,从而降低待机功耗 。
0 条评论