DoIP技术

首发于汽车控制器(ECU)网络诊断技术交流

DoIP技术_第1张图片

DoIP技术(一)

本文是关于DoIP技术的第一篇文章,主要进行一些概念介绍,具体的细节会在后续的文章中和大家探讨。

DoIP是Diagnostic communication over Internet Protocol 的简称,顾名思义,就是通过网络协议进行诊断通信。这里的网络协议,指的就是OSI七层模型中,通用计算机网络所使用的从层4到层1这四层协议。

DoIP由ISO13400 系列标准定义,作为实现基于Ethernet的诊断通信的方案。本标准的各部分内容如下:

— Part 1: General information and use case defnition

— Part 2: Transport protocol and network layer services

— Part 3: Wired vehicle interface based on IEEE 802.3

— Part 4: Ethernet Diagnostic Connector

— Part 5: Conformance test specifcation

我这里只有前四个,不知道第五个测试标准是否已经定义完了。

DoIP的优势有以下几点:

  • 更快的诊断响应
  • 传输大量数据的时间更短(用于软件刷新和参数下载)
  • 使得远程的直接诊断成为可能

DoIP技术_第2张图片

DoIP技术_第3张图片

ISO13400定义的DoIP诊断中各层次所使用的标准号

上图展示了DoIP通信完整协议栈所使用的标准号。

ISO13400-1处于应用层(层7)之上,是对一些通用信息、应用场景的描述。

应用层基于ISO14229-1和ISO14229-5,前者是UDS的完整定义,后者是UDS通过网络协议传输的实现。

会话层(层5),ISO14229-2对于所有的诊断通信都是一样的,目的是为上层提供统一的接口,使上层应用不需要随着底层通信技术的变化而改变。

传输层和网络层(层4和层3)由ISO13400-2定义,ISO13400-2中规定了DoIP通信在传输层中使用TCP和UDP协议,在网络层中使用IPv4或IPv6。此标准中还定义了专属于DoIP通信的信息内容,这些信息和上层的诊断命令共同构成了传给TCP或UDP协议的SDU。

ISO13400-2定义了DoIP诊断通信对Ethernet数据链路层(层2)和物理层(层1)的要求,比如,规定DoIP通信在这两层上支持100BASE-TX (100 Mbit/s Ethernet) 和10BASE-T (10 Mbit/s Ethernet) 两种方案。

 

DoIP数据的基本结构

DoIP技术_第4张图片

DoIP数据映射到以太网帧中

DoIP数据作为SDU层层向下传递,直至构成完整的以太网帧,通过物理层的介质发送出去。DoIP的数据内容分为5个部分:

  1. 所使用的ISO13400版本信息,占用1个字节
  2. 所使用的ISO13400版本信息依比特取反,占用1个字节
  3. 数据类型,占用2个字节(标识本帧数据的用途,比如用于上报或请求车辆信息、诊断命令、诊断逻辑链接激活、alive check等)
  4. 数据长度,占用4个字节(标识后面的数据长度)
  5. 诊断数据,长度为0至2的32次方减1,这里的数据又分为sender address、receiver address、 应用数据这三部分。

应用场景

ISO13400中定义了DoIP的4种使用场景,如下四幅图所示:

DoIP技术_第5张图片

点对点直连

DoIP技术_第6张图片

多台外部测试设备分别和多台汽车在局域网内通过交换机点对点连接

DoIP技术_第7张图片

一台外部测试设备跨越本地网络与多台车辆连接

DoIP技术_第8张图片

外部测试设备的多个应用层实体(在一台硬件或多台硬件上)与单个车辆连接

 

路由机制

根据隐藏在Gateway后面的控制器的诊断类型的不同(比如有的通过DoIP,有的通DoCAN等),DoIP的路由机制可以分为两种,分别是CutThrough(以太网对以太网) 和Store&Forward-Routing (以太网对CAN, CAN FD 和LIN等)。

我用PPT粗略地画了两个示意图展示一下:

DoIP技术_第9张图片

CutThrough

DoIP技术_第10张图片

Store&Forward-Routing

原理很简单,当网关后面被诊断的ECU也支持DoIP时,则网关每收到一个以太网帧,只需要更改以太网帧包头中的地址信息即可转发出去。而如果网关后面被诊断的ECU不支持Ethernet,则网关需要完整地接收所有的诊断数据之后,再从应用层开始重新组织适合其他总线传输的数据帧。

你可能感兴趣的:(Autosar)