Doip 协议详解

Header

1 字节的版本号,1 字节的版本号取反,2 字节的报文类型,4 字节的报文长度。

其中报文类型为 0000 的诊断报文,是通用 doip 报文头否定响应,所有类型都需要实现的。



Tcp type

0x0005 路由激活请求

2 字节的 source address,1 字节的 activation type,4 字节的 0000 0000

4 字节的 vm specific,一般是通过配置决定


0x0006 路由激活响应

2 字节的 target address(一般是指 ecu 的地址),2 字节的 source address(一般是指上位机的诊断地址)

1 字节的 routing activation response code,表示当前路由激活的状态

4 字节的 future standardization use,被标准保留的值,一般为 0000 0000


0x0007 在线检查请求

不携带任何数据


0x0008 在线检查响应

2 字节的 diagnostic address


0x8001 诊断报文

2 字节的 source address,2 字节的 target address,一定字节数量的 uds 报文


0x8002 诊断肯定响应

2 字节的 source address,2 字节的 target address,1 字节的 ack code

后面可以携带一定字节数量的诊断报文,长度可以通过配置来决定


0x8003 诊断消极响应

2 字节的 source address,2 字节的 target address,1 字节的 nack code

后面可以携带一定字节数量的诊断报文,长度可以通过配置来决定



Udp type

0x4001 实体状态请求

不携带任何数据


0x4002 实体状态响应

1 字节的 node type,1 字节的 最多允许 tcp 连接数量,1 字节的 tcp socket 数量(是指 socket 数,不是已经激活的 router 数量)


0x4003 诊断电传模式请求

不携带任何数据


0x4004 诊断电源模式响应

1 字节的 diagnostic power mode


0x0001 车辆识别请求

不携带任何数据


0x0002 车辆识别请求(携带 eid)

6 字节的 eid

如果和 ecu 的 eid 不一样,需要回复 nack


0x0003 车辆识别请求(携带 vin)

17 字节的 vin

如果和 ecu 的 vin 不一样,需要回复 nack


0x0004 车辆识别响应/车辆声明

17 字节的 vin 码,2 字节的逻辑地址,6 字节的 eid,6 字节的 gid,1 字节的 further action required(都是必选项)

vin/gid sync status 可选,一般是通过配置决定


Header check handler

对应的错误码:

Diagnostic message check handler

对应的错误码:



Routing activation check handler

对应的错误码:


 上一篇
SomeIp 协议详解 SomeIp 协议详解
基本概念Scalable Service-Oriented MiddlewarE over IP Event Field Request/Response Method Fire&Forget Method SomeIp
2025-08-04
下一篇 
开发工具使用之 Gdb 开发工具使用之 Gdb
多线程调试# 查看所有线程的堆栈 thread apply all bt # 切换到指定线程的堆栈 t 线程号 # 进入正在运行的程序查看堆栈(一般用于排查死锁或者进程卡死的问题) gdb attach 进程号 # 查看当前所有线程的
2025-02-12
  目录