DOIP精解

DOIP精解

 

一、DOP概述

DOIP全称:Diagnostic communication over Internet Protocol, 意思是诊断通讯通过IP协议。顾名思义就是汽车诊断数据通过TCP/IP通讯。

 

 

 

二、DOIP物理层

DOIP的物理层上,除了RJ45 的TX+, TX-, RX+, RX- 外还需要多出一根DOIP协议激活线Activation Line, 总共需要5根线进行通讯。如下图所示

 

为方便叙述,本文把Activation Line简称为AL

 

当AL电压为5-32V时ECU的DOIP就会被激活,如下图所示

 

 

 

 

 

三、DOIP数据包结构

 

上图中以DOIP中的Diagnostic message数据包为例。

其中由上而下分别为MAC层, IP层,传输层到DOIP数据报

MAC层, IP层,传输层发球属于标准TCP/IP网络

3.1 DOIP报文格式

见上图第四行

 

具体定义如下图所示

 

注:

Pos. 为数据包中的下标

Len. 为目标字段所占的字节数

 

其中

Protocol Version固定为0X02

Inverse Protocol Version固定为0xfd

 

 

 

 

 

 

3.2 DOIP数据包类型

DOIP的数据包类型有,如下图所示

 

 

 

具体定义请参考    ISO-13400-2 标准文档

3.2.1 DOIP个例:

02 fd 80 01 00 00 00 07 0e 81 17 16 22 f1 13

 

条目

备注

Protocol Version

02

 

Inverse Protocol Version

fd

 

Payload Type

80 01

DOIP包类型

Payload Length

00 00 00 07

数据包内容长度

Message Context

0e 81 17 16 22 f1 13

Diagnostic message 数据

0e 81为源地址SA

17 16为目的地址TA

22  f1 13 UDS服务数据

 

 

 

 

 

 

 

 

 

上图为DOIP 8001 diagnostic message的内容定义

3.2.2 整个DOIP网络报文个例

完整个例如下

02 26 55 12 34 56 a8 5e 45 50 ee b3 08 00 45 00 00 37 81 0d 40 00 80 06 00 00 c0 a8 03 09 c0 a8 03 0e 2c 6c 34 58 78 9a a8 85 00 bd 36 96 50 18 fa df 87 91 00 00 02 fd 80 01 00 00 00 07 0e 81 17 16 22 f1 13

 

其中

 

02 26 55 12 34 56 a8 5e 45 50 ee b3 08 00 ==>为MAC帧头

45 00 00 37 81 0d 40 00 80 06 00 00 c0 a8 03 09 c0 a8 03 0e ==>IP报文头

2c 6c 34 58 78 9a a8 85 00 bd 36 96 50 18 fa df 87 91 00 00 ==>TCP报文头

02 fd 80 01 00 00 00 07 0e 81 17 16 22 f1 13 ==>DOIP数据包

 

 

如对TCP/IP帧头不了解的,可看下图

 

 

 

 

 

 

 

 

 

 

 

 

四、车辆或ECU DOIP单位的发现

当你要对一辆车或ECU 使用DOIP进行诊断时,应该首先要知道目标的IP地址。

此时需要提一下的是DOIP的UDP/TCP的服务端口号是13400

       有两种方法可以发现车辆或ECU

 

4.1 车辆自发声明

第一种方法可以知道车辆的IP地址是,在AL被激活后,车辆会发送3次声明,也就是DOIP中的Vehicle announcement message/vehicle identification response message (0x0004), (具体内容定义,请参考ISO-13400-2)

诊断仪开启UDP 13400服务便会监听到这三个数据包。当诊断仪接收到这些声明包后便可以确定车辆的IP地址和Logical Address, VIN码等重要通讯信息

      

 

4.2 诊断仪自发请求

第二种方法可以知道车辆的IP地址是,诊断仪向网络中的 UDP 13400端口发送Vehicle identification request (0x0001), 此时车辆就会回复一个Vehicle announcement message/vehicle identification response message (0x0004)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

五 操作流程

第一步,首先拉高AL线

第二步,发现车辆请参考(章节4

第三步,当得到车辆的IP地址后便可以使用TCP SOCKET连接车辆的13400服务

第四步,SOCKET连接正常后,诊断仪马上发送路由激活申请

第五步,如果路由激活成功后,便可以正常使用诊断服务了

第六步,终断诊断,关闭SOCKET

 

 

 

 

 

                                          车辆声明包

 

 

 

 

                                   路由请求的请求及回复

 

 

 

 

                            DOIP使用UDS服务个例

 

posted on 2023-02-03 11:16  一个大菜B  阅读(3007)  评论(0编辑  收藏  举报