车载以太网DoIP详解牛喀网

当前应用较多的车辆通信网络总线主要有CAN、LIN、FlexRay、MOST、LVDS等,随着车载电子系统的愈加复杂,不断增加的控制器及接口数量对网络带宽的需求增大,车内控制单元和域之间彼此通信需求也增强。这意味着传统总线将渐渐难以满足信息高速传输的需求,因此引入车载以太网技术:车内电子控制单元通过以太网技术实现相互通信并形成局域网(使用单对双绞线即可实现稳定的双全工通信,且传输速率最高可达到1000Mb/s)。

2.DoIP概述

2.1DoIP简介

所谓的DoIP其实就是基于以太网的通讯协议对UDS协议的数据进行传输,即DiagnosticcommunicationoverInternetProtocol。其本身也是一种协议,规范于ISO13400标准。由于DoIP可以传输大量数据,以及响应速度快,且可以通过以太网进行远程诊断,因此DoIP逐步成为代替传统的CAN等总线方式,成为车载网络诊断的必然趋势。

DoIP在车载领域的应用首先汽车系统的整体框架要能够支持DoIP,正因为车载以太网的快速发展,相较于传统的车载系统,目前的车载系统的整体框架都会加入一层DoIP协议层,在TCP/IP之上。并且为了更好的配合OBD诊断,远程诊断,FOTA等等技术,对整体的车载架构进行了调整,利用swich将MPU,MCU,其它以太网ECU统统通过以太网进行连接,并对外网与内网进行隔离。

简单的说,DoIP能够进行车辆发现,状态查询,路由激活(含安全认证),诊断数据收发,这些内容将在后续进行详细的展开。

DoIP(DiagnosticCommunicationoverInternetProtocol,基于IP的诊断协议)主要用于建立外部测试设备与车载网络之间的诊断连接。常见的应用场景有:

1)车辆检查和维修

2)车辆/ECU软件重编程(模块刷新)

3)车辆/ECU的下线检查和维修

在诊断服务中,DoIP相对于传统的CAN诊断具有以下显著优势:

基于DoIP和DoCAN的网络通信在OSI网络模型中的大致架构如下所示,单就协议内容来讲,可以把DoIP协议看作传输层的协议:

对应的ISO标准为ISO-13400,分以下四部分:

Part2:Transportprotocolandnetworklayerservices(协议内容的具体定义)

Part4:Ethernet-basedhigh-speeddatalinkconnector(对应车辆接插件的选型)

ISO13400定义的DoIP各部分内容在OSI网络模型中的架构如下所示:

3.DoIP通信场景

3.1直接点对点连接

单台车辆与外部设备使用双绞线点对点通信,诊断仪与车辆直连后,可以诊断单车所有DoIP节点,一般用于单车故障诊断或者ECU升级刷写等功能。这种方式意味着在进行诊断通信时,系统不会受到来自其他车辆或设备的干扰。

3.2通过网络的点对点连接(通过网络连接单台车辆与单一外部测试设备)

多个车辆和多个外部测试设备被连接到同一个网络,这意味着外部测试设备应有可能识别网络中的车辆,并选择与之建立通信的特定车辆。当然,设备与车辆本身都应具备自动接入到已存在的IP网络的能力。从车辆的角度来看,这意味着车辆应该实现识别机制,并且应该能够处理或拒绝多个连接尝试,因为其他外部测试设备可能会干扰当前建立的通信。

这种通信场景通常发生在车辆连接到现有网络或无线基础设施时,其他车辆和外部测试设备(例如维修车间网络)也使用这些网络或无线基础设施(例如多台车同时在维修店进行检车、维修)。

3.3单个外部测试设备与多个车辆的网络连接

单诊断仪连接多台车辆的形式一般用于产线上生产监控及ECU刷写等。从车辆的角度来看,这个通信场景与3.2中描述的场景相同。只有外部测试设备能够支持多个连接,这种通信场景可能发生在:例如,有一个专用的flash重编程服务器,它可以同时更新多辆汽车(例如,在经销商或制造区域)。

3.4多个外部测试设备与单个车辆的网络连接

多台诊断仪通过交换机级联,诊断同一台汽车,各诊断信道互不干扰,可实现多团队同时作业,提高整体工作效率(例如某台设备需要对车辆进行刷写,而另一台设备需要对该车辆进行诊断)。在这种情况下,车辆应能够清楚地分离负责每个逻辑链路的每个外部测试设备的诊断请求和响应。而对于外部设备,则需要有判断当前车辆是否有在与其他设备进行通讯的能力。

4.1基于DoIP的网络诊断架构

图中分为车内网(Vehiclenetwork)和车外网(Externalnetwork:此部分为外部测试设备,通常为OBD诊断仪或者其他诊断客户端),车内网和车外网之间,有两组重要的线束,其中一组是用于数据传输的以太网线,另一组是用于诊断功能激活的激活线(Activationline)。

以太网线就是我们常见的四线制TX标准网线。而激活线的设计,是用于车内诊断功能的激活。

4.1.1为什么需要激活线?

4.1.2车内网络中节点类型有哪些?

1)DoIP网关节点(DoIPgateway)

车内DoIP网关节点的作用,是实现以太网到其他网络总线(如CAN、LIN)的报文路由,这样便实现了DoIP诊断与传统网络总线的兼容。多种网络总线汇聚到DoIP网关,这大大的降低了布线的复杂性,并且提高了各总线网络中ECU的诊断效率。

2)边缘节点(DoIPedgenode)

它是直接与外部诊断仪进行物理连接的节点。边缘节点可作为一个网络交换机,将车内网与车外网组成同一子网;也可以作为一个网关,将车内网与车外网进行安全隔离,屏蔽非法的网络访问和网络攻击。实际上它同样是个网关,其次他用于连接外部测试设备,在外部设备和车内子网之间路由转发消息;相较于DoIP网关多了以太网激活线的硬线。

3)一般的DoIP节点

这些节点只支持对自身的诊断,而不具备路由功能。

4)其他网络节点(Networknode)

不具备DoIP诊断功能。

4.2一些物理连接要求

4.2.1基本物理连接要求

——支持100Mbit/s为啥还要10Mbit/s的?

如果瞬间达不到100Mbit/s速率,可以降速处理。

4.2.2车辆激活线的要求

下图是车辆和测试设备之间的物理连接示意图,其中要求通信连接线为Cat-5以上,且诊断仪到汽车OBD接口的长度不超过50m。13400-3中提供了该部分车内接口电路的两种设计方案并且所用电路元器件参数都有选型参考。

4.2.3OBD接口要求

OBD接口线如下所示:

13400-4提供了OBD接口的两种布局方案供参考:

5.DoIP协议通信原理

5.1网际协议(IP)

网际协议(IP)是用于在网络中传输数据的基本协议,是一种用于在各种传输介质上进行封包交换的端到端的数据通信协议,网际协议基于数据报,是不可靠的协议。它定义了数据如何封装、寻址、传输、路由和接收。在DoIP协议中,IP作为核心传输机制,允许诊断信息在车辆网络和诊断设备之间流动。

5.2IP地址分配

在DoIP通信中,每个设备都需要一个唯一的IP地址以便识别和通信。IP地址可以通过手动配置(静态)或通过动态主机配置协议(DHCP)自动分配。静态IP地址适用于网络结构不经常变化的环境,而DHCP适用于设备经常变动的情况,如车间诊断。

在激活线激活边缘节点网关后,每个DoIP实体应同时执行基于AutoIP和DHCP分配的IP地址分配程序;

分配结果为IP地址(IPv4)+子网掩码(仅IPv4);

如果DoIP实体集成在网络架构中,则还需默认网关地址(即默认路由器的IP地址)。

5.3DoIP中TCP原理及通信的建立

TCP是一种可靠的传输层协议,它确保数据包正确无误地从源传输到目的地。在DoIP中,TCP用于需要高可靠性的诊断通信,如ECU编程。TCP通过三次握手过程建立连接,确保两端的通信是同步的,并且通过序列号和确认应答机制保证数据的顺序和完整性。

车内所有DoIP实体均应实现TCP;

TCP使用一对端口号来标识连接,TCP连接时目的端口应当是TCP_DATA;

DoIP实体应在创建socket之后监听TCP_DATA,用于与试图连接DoIP实体的外部测试设备建立通信;

外部测试设备应支持多个TCP_DATAsocket,本地端口将在创建socket时自动选择,远程端口应为TCP_DATA。

——三次握手过程建立连接

1)第一次握手

外部测试设备发送连接请求报文段,将标志位SYN置为1,并随机产生一个序列号seq=x;把这个值发送给DoIP实体,此时外部测试设备进入SYN_Sent的状态,等待确认;

2)第二次握手

DoIP实体收到外部测试设备的SYN报文段,由SYN=1ACK=0知道外部测试设备正在请求建立连接。DoIP实体把ack=x+1;同时要发送SYN请求消息,因此把标志位SYN置成1,并随机生成序列号seq=y;DoIP实体把所有信息一并放入报文段(即SYN+ack报文段)发给外部测试设备用来确认连接请求,自此DoIP实体进入了SYN_Receive状态;

3)第三次握手

外部测试设备收到(SYN+ack)报文段检查ack是否等于x+1。如果正确,把ack=y+1,并把数据包发给DoIP实体。DoIP实体会检查ack是否等于y+1,且seq是否等于x+1,如果正确就连接成功,双方都进入Established状态,完成握手,可以开始接收数据。

5.4DoIP中UDP原理及通信的建立

与TCP不同,UDP是一种无连接的协议,它允许数据包在没有事先建立连接的情况下发送。这种方法减少了开销,使得通信更快,但也牺牲了可靠性。在DoIP中,UDP用于那些不需要确认的服务,如车辆发现或基本诊断请求。

车内所有DoIP实体均应实现UDP;

当需要外部设备对车辆IP节点进行广播或多播消息请求时,由于TCP的传输机制限制无法实现,因此须使用UDP。

——用于UDP的两个端口类型

1)UDP_DISCOVERY:外部测试设备和DoIP实体都需要监听此端口,是主动发送数据时的目的端口。

2)UDP_TEST_EQUIPMENT_REQUEST:外部测试设备向DoIP实体发送报文时给自己分配的端口。

——DoIP中的端口类型总结

DoIP协议的实现基于TCP/IP,要想接收DoIP协议的报文,则需要监听一个专门分配给DoIP协议栈使用的端口号,UDP、TCP都要监听此接收端口,而发送端口是一个动态分配的随机值,代码中协议栈要对对端的发送端口进行缓存,用于回送数据。

指定了端口号,客户端和服务端可以在此端口上进行收发数据,并对该端口收到的数据是否真的是DoIP报文进行判断解析(有可能是网络攻击,或是其它应用恰好使用了该端口号)。

总之,不管是TCP还是UDP,都包含源端口号和目的端口号,在DoIP报文中用到了以下三种端口:

——通信建立过程

DoIP实体主动广播时,以UDP_DISCOVERY或UDP_TEST_EQUIPMENT_REQUEST作为源端口,目的端口UDP_DISCOVERY,而外部测试设备则监听UDP_DISCOVERY获得消息。

当外部测试设备向DoIP实体发送UDP时,设置源端口UDP_TEST_EQUIPMENT_REQUEST,目的端口UDP_DISCOVERY。当请求发送给DoIP实体后,外部测试设备保持对UDP_TEST_EQUIPMENT_REQUEST的监听。DoIP实体接收到请求后,将源端口设置为UDP_DISCOVERY或UDP_TEST_EQUIPMENT_REQUEST,目标端口设置为DP_TEST_EQUIPMENT_REQUEST,回复响应。

5.5逻辑地址(LogicalAddress)

逻辑地址用于在DoIP网络中标识不同的设备和服务。它们是独立于物理硬件的,可以是源地址(SA)或目标地址(TA)。逻辑地址使得在网络中的数据传输不依赖于物理位置,提高了网络的灵活性和可扩展性。

物理逻辑地址唯一表示一个诊断实体,包括任一DoIP实体或连接着DoIP网关的ECU;

功能逻辑地址用于将报文发送到车内一组或所有诊断实体。

6.通信协议详解

6.1报文格式——首部格式

DoIP协议支持IPv4与IPv6协议,以及对应的地址解析ARP协议、NDP协议以及控制报文协议ICMP,前面的章节均有描述了。目前车载以太网仍以IPv4协议为主,基于对网络发展的考虑,随着地址的增加,会逐渐过渡到IPv6协议。所有统一网段的DoIP都必须使用相同的IP协议版本。

由于DoIP在OSI模型中位于传输层,故DoIP报文发送前要封装ETH首部、IP首部及TCP/UDP首部,DoIP数据作为SDU层层向下传递,直至构成完整的以太网帧,通过物理层的介质发送出去。封装格式如下所示:

以一条车辆识别请求报文为例:

接下来就是对DoIP报文段的内容做详细的拆解说明,DoIP在其报文的Payload起始段添加了DoIP报头(首部),用来区分不同的DoIP报文类型,实现不同的功能,首部包括协议版本号、版本号取反、负载类型及负载长度。

协议版本(1Byte):使用的DoIP协议的版本,取值及相应版本如下所示:

协议版本取反(1Byte):主要目的是对协议版本进行校验,确保正确的DoIP格式(如协议版本为0x03,则此值为0xFC)。

负载类型(2Byte):有以下三大类负载类型。

负载长度(4Byte):携带的实际数据的长度。

从首部的负载类型可见,总共有三类报文:节点管理类、诊断类和节点状态类。下面将针对这三类报文展开详细的介绍。

6.2节点管理类报文

节点管理类报文有以下四类:

6.2.1DoIP首部否定响应报文

——报文格式:

其中否定响应码取值情况如下所示:

——DoIP首部通用处理流程:DoIP实体收到任何类型的报文时都应先调用首部处理的流程。

——举例如下:

——请求报文的格式:

——响应报文的格式:

其中32字节的Payload2的结构如下:

DoIP实体接收到车辆信息请求之后会随机延时再回复响应报文,以防止UDP报文激增;

——车辆识别请求报文处理流程:收到车辆识别请求报文的时候,DoIP实体中的处理逻辑应当按如下流程进行:

THE END
1.上海汽车集团申请一种车辆功能嘲测试的专利,能够安全可靠地完成金融界2024年12月4日消息,国家知识产权局信息显示,上海汽车集团股份有限公司申请一项名为“一种车辆功能场景测试的方法及装置”的专利,公开号CN 119064024 A,申请日期为2023年6月。 专利摘要显示,本申请公开了一种车辆功能场景测试的方法及装置;至少两个电控单元均通过控制器局域网络CAN网络连接总线测试工具;至少两个https://www.dongchedi.com/article/7444471700740719158
2.www.shkp.org.cn/content科普中国 https://www.shkp.org.cn/content_putuo.html?type=lc&id=240763&tag=1016
3.CANIDPS汽车网关信息安全要求以及实验方法canidps标准内容涵盖了汽车网关硬件、通信、固件、数据的信息安全技术要求及试验方法,目的在于保障汽车网关在车内多个网络间安全、可靠地进行数据转发和传输,满足数据保密性、完整性、可用性等基本安全要求。 本篇文章主要摘取规范中对汽车网关网络安全和信息安全要求和测试方法。其中基于以太网的网络安全和信息安全技术较为成熟,https://blog.csdn.net/qq_29490749/article/details/141332947
4.基于CAN/LIN总线的汽车混合网关设计4 网关通信测试 将网关的高速CAN接口和低速CAN接口分别与单独的 CAN节点电路相连,LIN接口与单独的LIN从节点相连,组成测试网络。测试的主要内容为高速 CAN和低速CAN之间的通信,低速CAN和LIN网络之间的通信。高速CAN网络采用速率为500 kb/s,低速CAN网络采用的速率为100kb/s,LIN网络采用的速率为10 kb/s。利用PC机的串https://www.hqew.com/tech/fangan/738152.html
5.国芯科技汽车电子车身及网关控制MCU新产品内部测试成功国芯科技公告,公司研发的新一代汽车电子MCU产品“CCFC2012BC”于近日在公司内部测试中获得成功。公司上述芯片产品具有完全自主知识产权,并采用和国内头部车身控制模组厂商协同创新的合作方式,产品开发阶段就受到国内汽车整机厂商和Tier1汽车电子模组厂商的关注和订单支持,该款新产品截至2022年4月7日公司已获得9家客户实际https://finance.eastmoney.com/a/202204072335430449.html
6.智能驾驶网关控制器通用汽车GMW3097电磁兼容EMC检测怎么做汽车EMC测试是汽车整车或零部件开发过程中常常涉及到的测试内容,EMC测试作为电子零部件性能测试的重要指标之一,对汽车产品品质至关重要,EMC测试的主要目的是确保车辆或零部件在其工作的电磁环境中能够不受影响正常工作,同时也不对其他部件或系统造成电磁干扰。 随着汽车电子产业快速发展,汽车电子的复杂电磁环境也越来越受到https://www.51sole.com/b2b/pd_425331220.htm
7.汽车电子测试生命周期测试 上海德雷柏电子科技有限公司为大陆汽车电子制作汽车网关(Gateway)的生命周期测试台架,主要用于环境,震动等长周期的测试。台架可同时测试6个测试件(DUT),最多可支持36个 CAN通道,以及12个LIN通道的测试方案。国内80%的传统CAN/LIN网关项目基于这个平台。 https://www.delabtech.com/
8.基于CAPL语言的车载网关自动化测试系统设计摘要:本文提出了一种基于CAPL语言的测试系统,应用于汽车网关的自动化测试验证。介绍该系统硬件和软件设计方案,阐述其测试执行流程和测试https://www.yoojia.com/ask/7-11463661837778922495.html
9.广州智维电子科技有限公司广州智维12年专注于汽车测控领域!重点围绕车载网络CAN总线分析仪,汽车尾气排放仪,汽车测试数采系统,总线协议转换网关,电池检测仪等车辆测控仪器设备,代理销售国外先进的仪器设备,提供行业应用解决方案。公司主营业务:KVASER,CAN总线分析仪,HORIBA,汽车尾气排放仪,空燃比仪,http://www.triv.cn/
10.新能源汽车检测与维修技术专业2020级专业人才培养方案智能网联汽车测试装调职业技能等级证书(“1+X”证书) 五、培养目标与培养规格 (一)培养目标 本专业培养德智体美劳全面发展,具有一定的科学文化水平,良好的人文素养、职业道德和创新意识,精益求精的工匠精神,较强的就业能力和可持续发展的能力;掌握扎实的科学文化基础和新能源汽车底盘、车身电气、空调系统,动力蓄电池及https://auto.tjtc.edu.cn/info/1987/1736.htm
11.车载以太网测试工具车载以太网原型网关支持数据记录SPY监听Flex车载以太网100Base-T1数据记录仪,车载以太网PHY介质转换器,车载以太网原型网关,一个设备同时具有can,LIN,Flex Ray,BroadR-Reach以太网接口和1个千兆以太网接口,并有数字量IO和模拟量IO模块,可以实现汽车不同ECU之间的互联,can到以太网的网关,以太网到can的网关,FlexRay网关等。实现以太网数据端口监听复制,数据记录和https://qianwangtech.cn.china.cn/supply/4283613100.html
12.汽车解决方案API测试API流量API数据强大、易用的企业级 API 自动化测试解决方案;5分钟快速上手,降低 95% 以上回归测试工作,人人皆可使用的“零代码”自动化测试平台 API 监控异常 支持自定义告警规则,支持聚合多次告警信息,通过 API、邮件、钉钉、微信等方式及时通知相关运维人员 API 网关 https://www.eolink.com/solution_car
13.VehicleSpy多功能汽车网络测试分析软件简介Vehicle Spy多功能汽车网络测试分析软件简介 描述 Vehicle Spy是英特佩斯推出的简单易用高性价比的总线工具,包含分析软件和采集调试硬件,具备对各类总线数据的网络监控、诊断、总线分析、数据采集、节点仿真、自动化测试等功能,目前支持的总线类型包含CAN、CANFD、LIN、FlexRay、车载以太网等各类总线格式。https://m.elecfans.com/article/1807425.html