doip协议

DOIP: DoIP协议为车辆诊断协议提供了基于ip的标准实现方式,工作在TCP/IP之上的又一个应用层协议 其中协议内容包含了DoIP版本号、版本号的逆、消息类型、消息的长度、消息内容,如下图所示
image.png

1.1协议进行整理与具象化

1.2 数据类型分类

  • 节点管理报文(0x0000—0x0008)
  • 车辆信息获取报文(0x4001—0x4004)
  • 诊断报文(0x8001—0x8003)

Overview of DolP payload types table

Payload Type Value Payload Type Name Support DOIP Gateways Support DOIP Nodes Port and Protocol
0x0000 Generic Dolp header negative acknowledge Mandatory Mandatory UDP_DISCOVERY UDP_TEST_EQUIPMENT_REQUEST TCP_DATA
0x0001 Vehicle identification request message Mandatory Mandatory UDP_DISCOVERY
0x0002 Vehicle identification request message with EID Optional Optional UDP_DISCOVERY
0x0003 Vehicle identification request message with VIN Mandatory Mandatory UDP_DISCOVERY
0x0004 Vehicle announcement message/vehicle identification response message Mandatory Mandatory UDP_DISCOVERY UDP_TEST_EQUIPMENT_REQUEST
0x0005 Routing activation request Mandatory Mandatory TCP_DATA
0x0006 Routing activation response Mandatory Mandatory TCP_DATA
0x0007 Alive check request Mandatory Mandatory TCP_DATA
0x0008 Alive check response Mandatory Mandatory TCP_DATA
0x0009 to 0x4000 Reserved by this part of ISO 13400 - - -
0x4001 DolP entity status request Optional Optional TCP_DATA
0x4002 DolP entity status response Optional Optional TCP_DATA
0x4003 Diagnostic power mode information request Mandatory Mandatory TCP_DATA
0x4004 Diagnostic power mode information Mandatory Mandatory TCP_DATA
0x4005 to 0x8000 Reserved by this part of ISO 13400 - - -
0x8001 Diagnostic message Mandatory Mandatory TCP_DATA
0x8002 Diagnostic message positive acknowledgement Mandatory Mandatory TCP_DATA
0x8003 Diagnostic message negative acknowledgement Mandatory Mandatory TCP_DATA
0x8004 to 0xEF00 Reserved by this part of ISO 13400 - - -
0xEF01 to 0xFFFF Reserved for manufacturer-specific use Optional Optional -
负载类型值 负载类型名称 支持DOIP网关 支持DOIP节点 端口和协议
0x0000 通用Dolp头负载类型否定确认 必须 必须 UDP_DISCOVERY UDP_TEST_EQUIPMENT_REQUEST TCP_DATA
0x0001 车辆识别请求消息 必须 必须 UDP_DISCOVERY
0x0002 车辆识别请求消息带EID 可选 可选 UDP_DISCOVERY
0x0003 车辆识别请求消息带VIN 必须 必须 UDP_DISCOVERY
0x0004 车辆公告消息/车辆识别响应消息 必须 必须 UDP_DISCOVERY UDP_TEST_EQUIPMENT_REQUEST
0x0005 路由激活请求 必须 必须 TCP_DATA
0x0006 路由激活响应 必须 必须 TCP_DATA
0x0007 存活检查请求 必须 必须 TCP_DATA
0x0008 存活检查响应 必须 必须 TCP_DATA
0x0009到0x4000 本ISO 13400部分保留 - - -
0x4001 DolP实体状态请求 可选 可选 TCP_DATA
0x4002 DolP实体状态响应 可选 可选 TCP_DATA
0x4003 诊断电源模式信息请求 必须 必须 TCP_DATA
0x4004 诊断电源模式信息 必须 必须 TCP_DATA
0x4005到0x8000 本ISO 13400部分保留 - - -
0x8001 诊断消息 必须 必须 TCP_DATA
0x8002 诊断消息正向确认 必须 必须 TCP_DATA
0x8003 诊断消息否定确认 必须 必须 TCP_DATA
0x8004到0xEF00 本ISO 13400部分保留 - - -
0xEF01到0xFFFF 制造商特定用途保留 可选 可选 -

UDP_DISCOVERY 主要用于广播或组播请求,以发现网络中的DoIP节点 端口号: 通常为30490
UDP_TEST_EQUIPMENT_REQUEST 用于特定DoIP节点之间的通信请求 端口号: 通常为 30491

1.3doip 头处理流程

当作为 doip 的主体收到 doip 消息 后 首先对 DOIP 数据头进行检测 也就是分别对版本、反版本 消息类型 、消息长度进行检测 ,对应错误进行回复 NRCK。流程如下 :

我们可以看到我在回复的 NRCK 已经标注 payload type 是 0x0000 (Generic Dolp header
negative acknowledge),为什么呢? 因为在检测头的时候你并知道 payload type 或 payload type
异常,所以协议规定了使用 0x0000 作为回复的类型。 还有协议中还规定了 不同的 NACK CODE 我们要分清楚,每个 paylode
的 NACK code 都不同的规定。下面将详细看一下。而且支持 udp tcp.

1.4 数据类型分类详解

1.4.1 节点管理类型详解

① 0x0000:Generic DoIP header negative acknowledge
当DoIP节点收到的DoIP报文的报头不符合规则时,返回该数据类型的报文。该报文的数据部分只包含1字节的否定响应码(Generic DoIP header NACK code )

value description Required action Support
0x00 Incorrect pattern format Close socket mandatory
0x01 Unknown payload type Discard DolP message mandatory
0x02 Message too large Discard DolP message mandatory
0x03 Out of memory Discard DolP message mandatory
0x04 Invalid payload length Close socket mandatory
0x05 to 0xFF Reserved by this part of lS0 13400 - -
描述 必要操作 支持
0x00 格式错误 关闭套接字 必须的
0x01 未知载荷类型 丢弃DolP消息 必须的
0x02 消息过大 丢弃DolP消息 必须的
0x03 内存不足 丢弃DolP消息 必须的
0x04 无效载荷长度 关闭套接字 必须的
0x05至0xFF ISO 13400本部分保留 - -

② 0x0001:Vehicle identification request message 该报文中只包含DoIP报头,没有数据。
该类型报文可以用来请求网络中DoIP节点的车辆信息,诊断设备用UDP报文向网络中发送该报文,来获取被诊断节点的VIN、GID、EID、逻辑地址等信息。 该报文的目的端口为UDP_DISCOVERY
③ 0x0002:Vehicle identification request message with EID
该类型报文可以用来请求网络中DoIP节点的车辆信息,诊断设备用UDP报文向网络中发送该报文,只是在请求报文的数据中搭载了6字节EID,可请求指定EID的DoIP节点的其它车辆信息,用于被诊断节点的EID已知的情况。
EID是DoIP节点的唯一识别标识符,一般会被设置为该节点的MAC地址
该报文的目的端口为UDP_DISCOVERY
④ 0x0003:Vehicle identification request message with VIN

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值