产品简介
随着汽车智能化、网联化的发展,车载电子控制单元之间的网络通信速率越来越高,传统的CAN总线已不能满足信息高速传输要求,而以太网具有数据吞吐量大,传输速率高,响应速度快的特点,成为车载总线未来的发展趋势,那么基于以太网的诊断(Diagnostic communication over Internet Protocol,DoIP)就成为了车载网络诊断的必然选择。
功能特点
DoIP即基于IP的诊断协议,是指通过以太网协议进行统一诊断服务(Unified Diagnostic Services,UDS)通信,DoIP遵循的标准为ISO13400。DoIP架构实现基于互联网OSI 7层模型(详见ISO/IEC 7498-1中规定的OSI基本参考模型)。ISO13400为DoIP指定了传输层、网络层、数据链路层和物理层。DoIP诊断协议和CAN诊断协议类似,两者的架构对比如下图所示。

物理层与数据链路层
ISO-13400规定,DoIP通信在物理层支持100BASE-TX (100 Mbit/s Ethernet) 和10BASE-T (10 Mbit/s Ethernet) 两种制式。用于连接的以太网线缆要求至少是CAT5,链路最长不能超过50m。
如果ECU为DoIP边缘节点,需增加一根激活线。激活线的设计,一方面可以降低能耗,另一方面减少对网络带宽的消耗,从而降低电磁干扰。
ISO-13400规定,DoIP通信在物理层支持100BASE-TX (100 Mbit/s Ethernet) 和10BASE-T (10 Mbit/s Ethernet) 两种制式。用于连接的以太网线缆要求至少是CAT5,链路最长不能超过50m。
如果ECU为DoIP边缘节点,需增加一根激活线。激活线的设计,一方面可以降低能耗,另一方面减少对网络带宽的消耗,从而降低电磁干扰。

网络层与传输层
ISO-13400规定,DoIP通信在网络层上支持IPv6和IPv4协议。对于IPv4,要支持地址解析协议(ARP),对于IPv6要支持邻居发现协议(NDP)。
DoIP通信在传输层上需要同时支持UDP协议与TCP协议,使用的端口号定义如下表所示。 
ISO-13400规定,DoIP通信在网络层上支持IPv6和IPv4协议。对于IPv4,要支持地址解析协议(ARP),对于IPv6要支持邻居发现协议(NDP)。
DoIP通信在传输层上需要同时支持UDP协议与TCP协议,使用的端口号定义如下表所示。

—— DOIP报文格式
DoIP报文使用TCP/IP协议进行发送,所以DoIP报文前要封装ETH首部、IP首部及TCP/UDP首部。DoIP报文与以太网报文之间的关系如下图所示:
DoIP报文使用TCP/IP协议进行发送,所以DoIP报文前要封装ETH首部、IP首部及TCP/UDP首部。DoIP报文与以太网报文之间的关系如下图所示:

DoIP报文内容分为5部分内容:
(1)Protocol Version:所遵循的ISO13400协议版本,长度为1字节;
(2)Inverse Protocol Version:Protocol Version取反,长度为1字节;
(3)Payload Type:负载类型,用于标识这一帧报文的用途,长度为2字节,负载类型分为三大类:节点管理类、节点信息类、诊断通信;
(4)Payload Length:负载长度,用于标识传输数据的长度,长度为4个字节,也就是说DoIP报文最大长度为4 GB /4294967295 bytes;
(5)DoIP Payload:包含Payload Type对应的具体数据,又可以划又分为源地址(标识数据由谁发出)、目的地址(标识数据由谁接收)、应用数据(UDS诊断服务数据)。
负载类型的具体说明如下表所示。

(1)Protocol Version:所遵循的ISO13400协议版本,长度为1字节;
(2)Inverse Protocol Version:Protocol Version取反,长度为1字节;
(3)Payload Type:负载类型,用于标识这一帧报文的用途,长度为2字节,负载类型分为三大类:节点管理类、节点信息类、诊断通信;
(4)Payload Length:负载长度,用于标识传输数据的长度,长度为4个字节,也就是说DoIP报文最大长度为4 GB /4294967295 bytes;
(5)DoIP Payload:包含Payload Type对应的具体数据,又可以划又分为源地址(标识数据由谁发出)、目的地址(标识数据由谁接收)、应用数据(UDS诊断服务数据)。
负载类型的具体说明如下表所示。

—— DOIP诊断通信流程
- 物理连接和车辆发现
当诊断设备与车内DoIP节点建立网络连接时,首先进行物理连接,之后DoIP节点主动发出3次声明报文,3次报文间隔时间不超过500ms。诊断设备也可以主动向DoIP节点发送请求获取节点信息。
- 添加车辆至列表
经过物理连接建立和车辆发现步骤后,诊断设备已经获取到了DoIP节点的信息,此时应该DoIP节点的信息添加至车辆列表中。
- 建立TCP连接
操作员在诊断设备上选择要诊断的DoIP节点辆后,诊断设备与DoIP节点间建立TCP连接。
- 路由激活
TCP连接建立成功后,诊断设备发送路由激活报文,DoIP节点给出响应,诊断设备向操作人员指示连接成功。
- 诊断通信
路由激活步骤执行成功后,就可以进行诊断通信了,操作员使用诊断设备向DoIP节点请求所需要的诊断数据。
- 操作结束,关闭TCP连接
诊断操作完成后,操作员关闭诊断设备,诊断设备关闭与DoIP节点间的TCP连接。
DoIP诊断通信流程如下图所示:
DoIP诊断通信流程如下图所示:

—— DOIP的价值
- 简单来讲,凡是车上用了以太网的客户都是需要DoIP的。以太网上车最初的目的就是为了提高控制器的刷写速度,DoIP就可以做到这一点,所以DoIP是以太网上车的第一项应用。
- 从实际使用普及度来讲,DoIP的普及度比XCP、SOME/IP更高,普及度 DoIP>XCP>SOME/IP 目前基本是这个排序。
随着汽车以太网的普及,DoIP也将会得到广泛的应用,华海科技拥有一支专业的车载基础软件研发团队,针对DoIP我们可以提供以下服务:
- DoIP协议培训服务,提供ISO13400协议详细解读、DoIP理论学习及实操培训;
- DoIP协议栈定制开发服务,我们的DoIP协议栈经过了单元,集成和功能测试,稳定可靠。可以支持DoIP普通节点和边缘节点。已为国内多家客户提供相关服务,并获得客户肯定。
- DoIP协议栈测试服务,提供针对DoIP协议栈的自动化测试服务。