DoIP目录
前言
传统的车载领域诊断技术是通过CAN/LIN/Flexray/MOST的总线方式,对UDS协议数据进行传输的技术。
与传统车载诊断相比,所谓DoIP就是通过以太网通信的形式对UDS协议数据进行传输,即DoIP:Diagnostic communication over Internet Protocol
。其本身也是一种协议,由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成为了车载诊断的必然趋势。
一、DoIP术语和缩写
DoIP Entity:实现DoIP协议的节点(DoIP gateway或者DoIP node)
DoIP Edge Node:连接以太网激活线的DoIP节点
Network Node:连在IP网络上,但不能实现DoIP的节点
Logical Addressing(Phy/Fun):逻辑寻址
SA:Source Address-源逻辑地址
TA:Target Address-目的逻辑地址
EID:Entity Identification实体标识符,唯一标识DoIP节点,一般是MAC地址
GID:Group Identification组标识符,当VIN码未配置的时候替代VIN使用,车内节点同步边缘节点的GID
VIN:Vehicle Identification Number-车辆识别码,Length:17bytes
二、网络拓扑
允许车辆与外部测试设备之间的通信。通常,该协议标准由一个或多个DolP实体实现,具体取决于车辆的网络架构。ISO13400-2中下图显示了车辆网络架构的一个示例。
从图中可以看出整体的网络拓扑被分为了两个部分,即车内网和车外网。
该网络拓扑由如下四个角色组成的
-
External test equipment
外部测试设备,通常为OBD诊断仪或者是其它诊断客户端。 -
DoIP edge node gateway
这个角色和DoIP gateway的区别就是多了个使能线的判断
从图中可以看出External test equipment和DoIP edge node gateway之间有一条线叫做Activation line。用于对协议栈进行使能。
当激活线跟边缘节点连接时,达到降低电磁干扰和电源消耗的目的 -
DoIP gateway
-
DoIP node
对支持以太网连接的同时支持DoIP协议的ECU认为是DoIP node。
DoIP edge node gateway可以同时支持Server端和Client端:
Server端-测试设备可以诊断该网关下的某个ECU节点
Client端-OTA升级,DoIP edge node gateway的应用层可以跑一个OTA客户端程序,进行对内网ECU的诊断及刷写
三、DoIP数据基本结构
DoIP数据映射到以太网帧中
DoIP数据作为SDU层向下传递,直至构成完整的以太网帧,通过物理层的介质发送出去。DoIP的数据内容分为5个部分:
①所使用的ISO13400版本信息,占用1个字节
0x00:预留
0x01:DoIP ISO/IDS 13400-2:2010
0x02:DoIP ISO 13400-2:2012
0x03:DoIP ISO 13400-2:2019
0x04……0xFE:预留
0xFF:车辆识别请求报文默认值(不知道版本号的情况下诊断仪发送)
②所使用的ISO13400版本信息按比特取反,占用1个字节
协议版本号取反,对协议版本进行校验,确保正确的DoIP格式
③数据类型,占用2个字节(标识本帧数据的用途,比如用于上报或请求车辆信息、诊断命令、诊断逻辑链接激活、alive check等)
以太网基础——DoIP报文类型
数据类型 | Value |
---|---|
节点管理类 | 0x0000-0x0008 |
诊断类 | 0x8001-0x8003 |
节点状态类 | 0x4001-0x4004 |
④数据长度,占用4个字节(标识后面的数据长度)
⑤诊断数据,长度为0至2的32次方减1,这里的数据又分为sender address、receiver address、 应用数据这三部分。
四、OSI各层协议要求
网络层要求
①MAC地址需唯一
②所有的DoIP实体使用相同的IP协议版本【车内协议版本统一】
③IPv4和IPv6都可用,推荐使用IPv6
④支持ARP(IPv4)
⑤支持NDP-Neighbor Discovery Protocol(IPv6)
⑥支持ICMP(IPv4),ICMPv6(IPv6)
传输层要求
①每个DoIP实体(IPv4和IPv6)应实现IETF RFC 793、IEFT RFC 1122中规定的TCP要求
②每个DoIP实体应实现IEFT RFC 768、IETF RFC 1122中规定的UDP相关要求
③每个DoIP实体应支持<n+1>个TCP socket,其中< n >是相应DoIP实体支持的并发TCP数据连接数
④每个DoIP实体应支持<k+1>个TLS socket,其中< k >是相应DoIP实体支持的并发TLS数据连接数
⑤支持TCP/DoIP实体监听端口号13400(unsecured)
⑥支持TCP/DoIP实体监听端口号3496(secured)
⑦支持UDP/DoIP实体监听端口号13400
五、应用场景
DoIP主要用于车辆检查和维修,车辆/ECU软件重编程,车辆/ECU的下线检查和维修,在ISO13400中定义了DoIP的4种使用场景,如下四幅图所示:
5.1 直接点对点连接
①网线
②外部测试设备
③车辆
④逻辑连接
5.2 多台外部测试设备分别和多台汽车在局域网内通过交换机点对点连接
(通过网络的点对点连接)
①以太网交换机和WLAN接入点
②网线
③WLAN
④外部测试设备1
⑤外部测试设备2
⑥车辆1
⑦车辆2
⑧逻辑连接1(4和6)
⑨逻辑连接2(5和7)
5.3 一台外部测试设备跨越本地网络与多台车辆连接
①授权经销商或者维修厂网络
②网线
③WLAN
④外部测试设备
⑤网络服务器
⑥车辆1
⑦车辆2
⑧车辆3
⑨逻辑连接1(4和6)
⑩逻辑连接2(4和8)
5.4 外部测试设备的多个应用层实体(在一台硬件或多台硬件上)与单个车辆连接
①授权经销商或者维修厂网络
②网线
③WLAN
④外部测试设备1
5.外部测试设备2
6.网络服务器
7.车辆1
8.车辆2
9.车辆3
10.逻辑连接1(4和8)
11.逻辑连接2(4和8)
12.逻辑连接3(5和9)
13.逻辑连接4(6和9)