以太网诊断DoIP(一)——基础概念

1. DoIP概述

DoIP(Diagnostic communication over Internet Protocol)是基于车载以太网的诊断,在OSI 七层模型中属于传输层,其传输的诊断数据也是基于UDS,即DoIP是在以太网网络上传输UDS诊断数据的传输协议。DoIP带宽高,适合传输大量数据的场景,如车上的OTA软件升级。

ISO 13400-1中给出的协议体系如下:

在这里插入图片描述

2. DoIP报文格式

DoIP报文也是基于TCP或UDP,但在其报文的Payload起始段添加了DoIP报头(首部),用来区分不同的DoIP报文类型,实现不同的功能。DoIP报文的结构如下图所示:

在这里插入图片描述
3. DoIP端口

我们知道不管是TCP还是UDP,都包含源端口号和目的端口号,在DoIP报文中用到了以下三种端口: 

(1)UDP_DISCOVERY:端口类型-UDP,端口号-13400
该端口有以下两个应用场景:

被用于诊断设备发送给DoIP节点的车辆信息请求报文和DoIP节点控制报文,此时该端口在报文中被设置为目的端口。
被用于DoIP节点在没有收到请求的时候发送的UDP报文,如车辆声明报文。此时该端口同样被设置为目的端口,源端口可以为该端口,也可以由发送方动态定义。
(2)UDP_TEST_EQUIPMENT_REQUEST:端口类型-UDP,端口号-动态定义(49152-65535)
该端口由外部诊断设备在49152-65535范围内动态定义,用于诊断设备向DoIP节点发送的UDP报文,在报文中作为源端口,报文的目的端口应设置为UDP_DISCOVERY。

当DoIP节点向诊断设备发送响应的时候,报文中的目的端口应设置为UDP_TEST_EQUIPMENT_REQUEST,源端口可以为UDP_DISCOVERY,也可以有DoIP节点动态定义。

(3)TCP_DATA:端口类型-TCP,端口号-13400
该端口用于外部诊断设备和DoIP节点之间的TCP通信,如路由报文和诊断报文。当诊断设备向DoIP节点发送报文时,使用TCP_DATA作为目的端口号;当DoIP节点向诊断设备发送报文时,使用TCP_DATA作为源端口号。

4. DoIP报头

我们把上图中DoIP的部分单独拿出来:

在这里插入图片描述
我们可以看到DoIP报文由首部和数据两部分组成,我们先来看一下首部四个参数的定义: 

(1)协议版本(Protocol Version)
长度一字节,代表遵照ISO 13400 的那个版本,定义如下:

  • 0x00:Reserved
  • 0x01: DoIP ISO 13400-2:2010
  • 0x02: DoIP ISO 13400-2:2012
  • 0x03…0xFE: ISO 13400 reserved
  • 0xFF: default value for vehicle identification request messages

(2)协议版本取反(Inverse Protocol Version)
是上面协议版本字节取反后的数值,即 = 协议版本 XOR 0xFF。
例如:协议版本 = 0x02,该字节 = 0x02 ^ 0xFF = 0xFD

(3)数据类型(Payload Type)
数据类型即DoIP报文的类型,不同类型功能不同,数据部分的解析方式也不一样,我们在下一篇文章中详细介绍每一种报文类型。

(4)数据长度(Payload Length)
我们先来看最后一个参数——数据长度,就是指DoIP报文中DoIP层数据的长度,不包括DoIP报头,只是数据长度,4字节,可以为0,最大为0xFFFFFFFF(4GB)。

  • 3
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值