今天我们要为大家带来的是DoIP协议相关的介绍。在学习DoIP协议之前,我们先来了解一下DoIP协议中的重点术语:
DoIP entity(DoIP实体):实现DoIP协议的节点,即DoIP gateway或者DoIP node;
DoIP gateway( DoIP网关):实现DoIP协议,并能进行协议转发的节点;
DoIP node(DoIP节点):实现DoIP协议,但不能进行协议转发的节点;
DoIP edge node(DoIP边缘节点):连接以太网激活线的DoIP节点;
Network Node(网络节点):连在IP网络上,但不能实现DoIP的节点。
一、DoIP简介
DoIP协议(Diagnostic Communication over IP),即ISO组织发布的ISO13400协议,简而言之就是基于IP的诊断通信协议。通过利用以太网相较于其它通信协议(如CAN、
Flexray等)拥有更高通信速率的特点,来帮助实现当前市场上部分热门的远程诊断、OTA等技术。
DoIP在OSI模型中的分层结构如下图所示:
ISO13400协议目前分为4个部分:
ISO13400-1是对应用场景进行举例介绍;
ISO13400-2是对传输层和网络服务的要求;
ISO13400-3是对物理层的相关要求;
ISO13400-4则是OBD布置和接插件的相关要求。
注:ISO13400-5对于一致性测试的要求,目前暂未发布。
下面我们就协议的重点部分给大家作简单介绍。
二、DoIP报文映射
DoIP首部
DoIP首部包括:Protocol Version(协议版本号)、Inverse Protocol Version(协议版本号取反)、Payload Type(负载类型)、Payload length(负载长度)。
协议版本号的参数:0x01代表DoIP ISO/IDS 13400-2:2010、0x02代表DoIP ISO 13400-2:2012,其他数值目前预留。
协议版本号取反则是对协议版本进行校验,确保正确的DoIP格式,如:协议版本0x01,则此值为0xFE。
负载类型的具体数据如下表:
负载长度表示DoIP数据部分的长度。
三、DoIP应用场景
DoIP协议的使用是基于UDS服务,使用传统CAN通讯协议的车辆只能通过物理寻址或功能寻址的方式实现一对一的诊断应用场景。DoIP则可以利用以太网协议在传输层中的优势实现点对点、一对多、多对一的诊断应用场景。
1、直接点对点连接
点对点连接的方式可以通过网线连接(如上图箭头1),也可以通过无线网络连接(如上图箭头二)。
2、单个测试设备与多个车辆连接(一对多)
3、多个测试设备与单个车辆连接(多对一)
四、DoIP物理连接
DoIP物理连接和数据链路层要求如下表:
线束要求
诊断通信连接线至少是Cat5或以上;
Tester到OBD接口的线束长度不能超过50米,即指从车辆的OBD接口到诊断设备里的以太网接口(PHY或Switch)距离不能超过50米。
五、激活线
通过激活线来激活和停用ECU的DoIP功能,可以减少电磁干扰(EMC)和边缘节点的功耗。
激活线的激活电压和时间如下图所示:
激活线推荐电路
ISO 13400-3中给出了Option1和Option2两种激活线的推荐电路,具体元器件参数见ISO13400-3规范。
OBD接口的两种布局
ISO 13400-4中给出两种OBD接口的布局推荐,OEM可以根据自己当前车型平台OBD布局的情况酌情选择。
A Ethernet Rx+
B Ethernet Rx-
C Ethernet Tx+
D Ethernet Tx-
E Active line
F CAN_H
G CAN_L
六、DoIP传输层要求
DoIP的传输层可以使用UDP和TCP进行传输。TCP是面向连接的协议,网络中节点的应用程序可以建立彼此的连接,通过该连接可以交换数据,并保证发送方到接收方数据的可靠和有序传送。
对于每个DoIP实体,IPv4和IPv6都允许使用。每个DoIP实体要执行IETF RFC 1122和IETF RFC 793中TCP的相关要求。使用IPv6的DoIP实体需执行IETF RFC 6298中TCP的相关要求。
每个DoIP实体还需执行IETF RFC 1122和IETF RFC 768中与UDP相关的要求。
TCP和UDP的Socket定义
七、DoIP会话流程
DoIP的会话流程如下图:
DoIP协议涉及的内容较多,需要理解的知识面略广,今天我们只给大家做个简单的介绍。对DoIP的使用需要结合OEM的诊断架构或OTA方案进行针对性的设计,只有适合自身车型平台的方案才能为其带来技术上和成本上的双重优势。