DoIP协议-ISO 13400

1.车载以太网典型网络拓扑

External test equipment:外部测试设备,通常为诊断仪或其他诊断客户端

DoIP gateway:实现DoIP协议,并能进行协议转发的节点

DoIP node:实现DoIP协议,但不能进行协议转发的节点

DoIP edge node(DoIP边缘节点):连接以太网激活线的

DoIP节点 Network Node(网络节点):连在IP网络上,但不能实现DoIP的节点

DoIP entity(DoIP实体):实现DoIP协议的节点,即DoIP gateway或者DoIP node;

Activation line:外部设备与DoIP边缘节点连接的线,现实中他们通常是通过标准的OBD-II  接头相连,其中有一个针脚是Activation line

IS013400中规定,车辆网络上的每个DoIP实体应执行ISO 13400本部分规定的协议标准。

2.DoIP格式

2.1 DoIP报头格式

Protocol Version:协议版本,对应值见下表

Inverse Protocol Version:协议版本值取反的值

Payload Length:Payload长度

 ​​​​​Payload Type:负载类型:

2.2 DoIP负载类型

    (1) DoIP 首部的否定响应(0x0000)

    当DoIP实体接收到DoIP报头中某些字段有误的报文,需要回复DoIP报头否定响应,并携带标识错误信息的NACK码。如:接收到Payload type字段未知的DoIP报文、 Payload length字段与实际报文长度不一致的DoIP报文等情况,均需回复DoIP报头否定响应报文,其格式如下:

此类型报文在报头后面携带的一个字节的DoIP报头否定响应码,其不同值的含义如下:

(2) 车辆识别和车辆声明报文(0x0001,0x0002,0x0003,0x0004)

    1. 此类报文用于识别和确认网络上的被诊断的车辆。车辆声明/车辆识别响应(0x0004)报文格式如下:

VIN:车辆识别码。如果在发送此消息时没有配置VIN,则应该使用指定的无效值来表示。在这种情况下,GID用于将DoIP节点与特定车辆关联

Logical Address:DoIP实体的逻辑地址

EID:DoIP实体的唯一识别ID,建议设置为DoIP实体节点的MAC地址

GID:这是在没有为同一辆车配置VIN的情况下,对同一辆车内一组DolP实体的唯一标识。如果在发送此消息时GID不可用,应使用指定的具体无效值来表示。

Further action required:用于携带额外信息,告知诊断仪传输过程中是否有额外要求,比如是否初始化连接或Routing activation是否使用了安全机制,具体含义如下:

VIN/GIN sync.status:用于告知外部诊断仪车内的DoIP是否已经同步了车辆的GID或VIN,具体含义如下:

   2. 车辆识别请求报文,有3个Payload type值,携带不同的请求信息      

       普通请求只有DoIP报头, Payload type = 0x0001,格式如下:

EID请求在DoIP报头后面会跟一个6字节的EID字段,Payload type = 0x0002:

VIN请求在DoIP报头后面会跟一个17字节的VIN字段,Payload type = 0x0003:

(3) 路由激活报文(0x0005,0x0006)

     这两条报文用于路由激活、建立逻辑连接,本质上是通过发送路由激活请求把源地址与对应的socket关联起来,打开链路。

    1. 路由激活请求报文格式如下:

     Activation type:激活类型,不同值代表的类型如下:

   Reserved by this part of ISO 13400:预留字段       Reserved for OEM-specific use:预留字段

    2. 路由激活响应报文格式如下:

Routing activation response code:路由激活回复码,具体值和含义如下:

Reserved by this part of ISO 13400:预留字段

Reserved for OEM-specific use:预留字段

(4)在线检查报文(0x0007,0x0008)

     用于检测诊断仪是否在线

      1. 其请求报文格式如下:在线检查请求报文不含数据部分,仅通过报文Payload type = 0x0007进行标识

    2. 在线检查响应报文会携带2个字节的Source address,用于标识当前响应的诊断仪的逻辑地址:

  同时,诊断仪也可通过响应报文去维持当前想保持的诊断通信连接,也就是说,在特定情况下,即使没有收到请求报文,诊断仪也可主动发送响应报文。

(5)DoIP实体状态信息查询(0x4001,0x4002)

        用于查询DoIP实体的一些状态信息,如节点类型、套接字数量等

    1. DoIP实体状态信息查询请求报文不含数据部分,仅通过报文Payload type = 0x4001进行标识,其报文格式如下:

     2. DoIP实体状态信息查询响应报文格式如下:

NT:标识DoIP实体的类型为DoIP网关(0x00)或DoIP节点(0x01),0x02-0xFF为ISO 13400预留值

MCTS:表示当前节点13400端口支持的最大并发的套接字连接数量

NCTS:表示当前节点13400端口已建立的套接字连接数量

MDS: DoIP实体能处理的最大数据长度

(6)诊断模式查询(0x4003,0x4004)

         用于查询车辆是否处于诊断的电源模式下并且可以被执行诊断

    1. 诊断模式查询请求报文不含数据部分,仅通过报文Payload type = 0x4003进行标识,其报文格式如下:

    2. 诊断模式查询响应报文格式如下:

其中诊断电源模式字段Diagnostic power mode的值及含义如下:

(7)诊断报文及其响应

     诊断报文有三个类型:诊断请求报文(0x8001)、诊断报文肯定应答(0x8002)、诊断报文否定应答(0x8003)

     当Tester向内部节点发送Payload Type = 0x8001诊断请求时,首先边缘节点接收到请求后会回复Payload Type = 0x8002的ACK报文,告知Tester收到诊断请求,与此同时会发送诊断请求给车内具体节点。车内节点收到后会给予诊断响应( Payload Type = 0x8001 )。 若边缘节点判断Tester发送的诊断请求有无效信息时,如:无效目标地址、报文过长等,边缘节点会回复Payload Type = 0x8003 的NACK。

    1. 诊断请求报文, Payload type = 0x8001,格式如下:

SA:源逻辑地址,即外部诊断仪      

TA:目的逻辑地址,即被诊断节点,DoIP实体      

data:诊断报文数据,携带真实的诊断服务(ISO 14229 UDS)  

    2. 响应肯定/否定应答报文, Payload type = 0x8002/0x8003,格式如下:

如果是肯定响应,ACK code=0x00;

如果是否定应答,NACK code具体值和代表的含义如下:

    3. 诊断响应报文, Payload type = 0x8001

  • 30
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值