DoIP协议栈简介及主要功能

描述

本文导读

随着汽车的智能化和网联化,车载电子系统的复杂度不断增加,对数据通信的带宽需求越来越大,通信速度要求也越来越高。借助于传统因特网的成熟技术,引入到车载网络得以解决当前的通信需求,通过对传统以太网的技术的修改,使用单对双绞线即可实现稳定的100Mb/s全双工通信。正是由于车载以太网的普及应用,对应的车辆诊断协议DoIP应运而生,本文将基于ISO13400、ISO14229和求远电子在DoCAN协议栈的基础上,介绍求远电子自研DoIP协议栈。

DoIP简介

DoIP(Diagnostic Communication over Internet Protocol,基于IP的诊断协议)建立在TCP/IP之上,主要使用在车辆检测和维修、ECU软件刷写(OTA)、ECU参数配置下线等。与传统的CAN网络相比主要优势有数据传输速率快,成本低,应用范围广,方便扩展远程诊断功能等,其OSI网络模型如下:

应用层 ISO14229-1/5
表示层  自定义
会话层 ISO14229-2
传输层 ISO13400-2(TCP/UDP)
网络层 ISO13400-2(IP)
数据链路层 ISO13400-3
物理层 ISO13400-3(100BASE-T)

DoIP只是一个传输协议,上层依旧使用UDS诊断服务,相对应的协议栈只需要修改DoCAN协议栈的传输协议,ISO14229相关代码可完全借鉴求远已量产验证过的CAN UDS协议栈相关代码。

DoIP数据格式简介

车载电子

Protocol version(协议版本):表示所使用的DoIP协议版本,长度为1字节。

当前可取的值及含义如下:

车载电子

Inverse protocol version(协议版本取反):用于对协议版本进行验证,确保DoIP报文格式的正确性,长度为1字节。如协议版本为0x02,取反值应为0xFD;

Payload type(有效负载类型):表示DoIP报文所携带的有效负载类型,长度为2个字节。大致可分为三类:0x0XXX管理类、0x4XXX车辆信息类、0x8XXX诊断类,其他字段暂时被ISO 13400预留或供OEM自定义使用。

车载电子

Payload length(有效负载长度):表示DoIP有效负载的数据长度。

Payload type specific message content(DoIP报文内容,也就是DoIP的有效负载),不同类型DoIP有效负载的格式和长度都不尽相同。

关于Payload type specific message content本文不做叙述,详细参考ISO13400。

DoIP 主要功能

车辆发现

诊断仪发送(Payload type = 0x0001、0x0002、0x0003)车辆发现报文,网络中所有接收到这条报文的ECU都将发送自己的身份信息。通过各个ECU发回的身份信息,诊断仪便可以准确得获知有哪些ECU在线,并且可以根据这些信息对这些ECU进行归类。

路由激活

与需要进行诊断的ECU通信之前,必需先激活路由(Payload type = 0x0005、0x0006)

诊断仪才能对ECU进行诊断。路由激活包含了DoIP节点对外部诊断仪的安全认证过程,ECU开发人员可以自定义安全认证的算法,用于屏蔽非法诊断仪对ECU进行的诊断。

诊断仪在线监测

用于监控TCP连接是否已经断开(Payload type = 0x0007、0x0008),如果连接断开,ECU能快速释放资源,以便新的连接能够建立。

节点信息

节点信息包含了节点的状态和属性,电源模式等(Payload type = 0x4001~0x4004)。

诊断通信

UDS相关数据交互协议通过该功能实现(Payload type = 0x8001~0x8003)。

协议栈软件架构

车载电子

软件架构如上,该协议栈目前已成功应用于求远电子的Micro LED 投影大灯项目。

软件定制服务

求远电子隶属于立功科技,深耕汽车电子十余年,其DoCAN、DoCANFD、DoLIN协议栈在国内大部分主机厂均有项目量产。

求远电子提供DoCAN、DoCANFD、DoLIN、DoIP、SOMEIP(测试验证中)、Bootloader、OTA等汽车电子软件定制开发服务,详情请联系当地销售FAE。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分