sales@ecucoder.com
400-685-6859
 
   
华海科技 > 主页 > 产品技术 > 基础软件 > DoIP >
DoIP(车载以太网诊断协议栈)
—— DOIP概述
随着汽车智能化、网联化的发展,车载电子控制单元之间的网络通信速率越来越高,传统的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通信在网络层上支持IPv6和IPv4协议。对于IPv4,要支持地址解析协议(ARP),对于IPv6要支持邻居发现协议(NDP)。
DoIP通信在传输层上需要同时支持UDP协议与TCP协议,使用的端口号定义如下表所示。
端口类型 端口号 说明
UDP_DISCOVERY 13400 用于诊断设备发送给DoIP节点的车辆信息请求报文和DoIP节点管理报文。
用于DoIP节点在没有收到请求的时候发送的UDP节点信息获取报文,如车辆声明报文。
UDP_TEST_EQUIPMENT_REQUEST 动态定义
(49152-65535)
用于诊断设备向DoIP节点发送UDP报文。
用于DoIP节点向诊断设备发送响应报文。
TCP_DATA 13400 用于诊断设备和DoIP节点之间的TCP通信,如路由报文和诊断报文。
当DoIP节点向诊断设备发送报文时,使用TCP_DATA作为源端口号。

—— 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诊断服务数据)。
负载类型的具体说明如下表所示。
负载类型值 名称 含义
0x0000 Generic DoIP header negative acknowledge 通用DoIP报头否定响应
0x0001 Vehicle identification request message 车辆信息请求
0x0002 Vehicle identification request message with EID 带有EID的车辆信息请求
0x0003 Vehicle identification request message with VIN 带有VIN的车辆信息请求
0x0004 Vehicle announcement/Vehicle identification response message 车辆公告信息/车辆识别响应信息
0x0005 Routing activation request 路由激活请求
0x0006 Routing activation response 路由激活应答
0x0007 Alive check request 已激活的socket是否在使用请求
0x0008 Alive check response 已激活的socket是否在使用应答
0x4001 DoIP entity status request DoIP实体状态请求
0x4002 DoIP entity status response DoIP实体状态应答
0x4003 Diagnostic power mode information request DoIP实体电源状态信息请求
0x4004 Diagnostic power mode information response DoIP实体电源状态信息应答
0x8001 Diagnostic Message DoIP诊断信息
0x8002 Diagnostic message positive acknowledgment DoIP诊断信息肯定应答
0x8003 Diagnostic message negative acknowledgment DoIP诊断信息否定应答
—— 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的普及度比XCP、SOME/IP更高,普及度 DoIP>XCP>SOME/IP 目前基本是这个排序。

随着汽车以太网的普及,DoIP也将会得到广泛的应用,华海科技拥有一支专业的车载基础软件研发团队,针对DoIP我们可以提供以下服务:
  • DoIP协议培训服务,提供ISO13400协议详细解读、DoIP理论学习及实操培训;
  • DoIP协议栈定制开发服务,我们的DoIP协议栈经过了单元,集成和功能测试,稳定可靠。可以支持DoIP普通节点和边缘节点。已为国内多家客户提供相关服务,并获得客户肯定。
  • DoIP协议栈测试服务,提供针对DoIP协议栈的自动化测试服务。
 
  咨询服务
  开发咨询
  测试服务
  功能安全
 
  培训支持
  华海学堂
  视频中心
  资料下载
 
  新闻动态
  公司新闻
  产品动态
  市场活动
 
  关于我们
  关于华海
  联系我们
  加入我们
  荣誉资质
 


扫一扫关注微信公众号
Copyright 2011-2021   Huahai Technologies Co., Ltd. All Rights Reserved.     京ICP备18029638号-1 Powered by DedeCMS   TEL:400-685-6859