本文导读
随着汽车的智能化和网联化,车载电子系统的复杂度不断增加,对数据通信的带宽需求越来越大,通信速度要求也越来越高。借助于传统因特网的成熟技术,引入到车载网络得以解决当前的通信需求,通过对传统以太网的技术的修改,使用单对双绞线即可实现稳定的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。
全部0条评论
快来发表一下你的评论吧 !