新能源汽车测试解决方案:车载以太网DoIP测试解读
车载以太网DoIP测试解读
随着汽车电子化和智能化程度不断提高,车载网络已成为现代汽车的重要组成部分。一方面,汽车内部各电子元件之间的联系日益密切,相互协作通信的需求越来越大;另一方面,汽车网联化的快速发展,能兼容互联网的技术也可以增益车联网的发展。车载以太网与互联网基于同一种局域网技术,具有相似的底层通信逻辑。BroadR-Reach的广泛应用证明车载以太网完全可以实现100Mb/s的传输速率,802.3bw和802.3bp的落地也意味着车载以太网可以像工业以太网一样,在不断优化改进技术、提升速率的同时,仍然保持对原有系统的兼容性。
汽车诊断本质上是一种车辆与外部通信的方式。最早的诊断主要应用于排放系统,以满足相关法规的检测要求。早期车辆与外部通信的需求主要出现在车辆出现故障时,用于故障上报。但是随着汽车智能化的提高,在车载系统的开发和使用过程中,车外通信还涉及应用数据的上传和下载等非故障场景。以太网虽然能给汽车网络带来传输速率的提升,也需要对其运行方式和接口进行标准化定义,这样才能促进以太网技术在汽车行业的发展。
一、 诊断概述
整车上的诊断分为OBD和UDS。OBD主要应用于与汽车排放系统相关的ECU,是一种在线诊断方式。它通过实时监测排放相关的ECU的工作信号,判断汽车排放是否符合法规标准。如果检测到排放超标的信号,OBD会通过故障指示灯提醒驾驶员,并将相应的故障信息保存下来,检修时可使用诊断仪读取故障信息,以便准确地判别故障。UDS的全称为统一诊断服务,又称为增强型诊断,是一种面向整车所有ECU的离线诊断方式。UDS提供了一种标准化的方式实现诊断相关的各种功能,包括控制诊断会话、读取诊断码、清除诊断码、读取数据和清除数据等。除了用于诊断,UDS定义的服务和接口可以用于实现ECU的刷写和功能配置等。UDS是上层协议,定义的是服务,并不对服务数据的传输方式进行定义。
参考ISO七层模型可以更好地理解UDS和OBD,如表 1,右边两列分别为增强诊断服务和OBD从上到下七个通信子层采用的协议。可以看出,由ISO 27145定义的OBD是一个整个系统,包含了服务的定义和服务数据的传输,可以独立运行。ISO 14229定义的UDS主要集中在应用层,负责服务的定义,服务数据必须依赖其他底层通信技术才能运行。ISO 14229-1规范了增强型诊断的服务数据单元格式和各种通信技术通用的诊断服务。ISO 14229-3~7则分别定义了诊断CAN、诊断以太网等特有的服务。UDS的服务数据传输则采用不同底层技术通用的方式,如CAN、LIN和以太网等。表 1中各种增强型诊断对应的通信技术如下:
- ISO 15765和ISO 11898为CAN通信
- ISO 10681和ISO 17458为FlexRay通信
- ISO 13400和IEEE 802.3为以太网通信
- ISO 14230为K-Line通信
- ISO 17987为LIN通信
表 1 UDS与OBD
由于篇幅有限,本文主要介绍DoIP涉及的协议规范和接口定义等。诊断服务的定义以及交互流程等内容将在后续文章中进行详细介绍。
二、 DoIP的协议构成
DoIP全称为基于IP协议的诊断通信,即只要是支持IP数据包传输的通信节点都可以实现DoIP。在当前车辆网络中,车载以太网为应用最为广泛的基于IP协议的通信方式,因此本文默认DoIP的底层通信方式为车载以太网。DoIP将UDS数据打包为DoIP报文以便于控制诊断通信,车载以太网将DoIP报文层层封装后传输到以太网物理链路上。诊断服务由UDSonIP(14229-1、14229-2和14229-5)规范,DoIP报文封装由ISO 13400规范,底层采用车载以太网通信技术,各子层采用的协议规范如表 2。
表 2 DoIP协议层
三、 如何建立DoIP连接
DoIP的实现需要在车辆网络中部署DoIP网关节点和普通DoIP节点。如图 1所示,只有DoIP边缘网关节点具备直接与外部测试设备通信的能力,如果外部测试设备要访问其他节点,则必须经过边缘网关节点转发。
图 1 车辆DoIP网络架构
诊断仪与边缘节点建立诊断通信的流程如图 2,依次完成网络连接、车辆发现、TCP连接、TLS握手(可选)和路由激活后,就进入了诊断通信会话。会话关闭则需要先关闭TCP连接,再终止会话。
图 2 DoIP通信的建立过程
网络连接过程包括硬件线路链接和IP地址分配。测试仪通过100base-Tx以太网线中的两对双绞线连接边缘节点,按照图 3连接车辆和诊断仪的Tx+、Tx-、Rx+和Rx-。除了将边缘节点的正负极接电之外,还需将激活线连接到电源正极,通过激活线的电压唤醒整车诊断功能。激活线工作电压在5V到32V,要唤醒诊断功能,电压需要大于2V并持续超过200ms。
图 3 DoIP硬件连接
诊断仪在车辆发现过程获取网络上节点的在线情况,并获取待诊断节点的基本信息。确定待诊断节点在线后,测试仪(客户端)将请求与诊断节点(服务端)建立TCP连接、完成路由激活,实现IP地址的分配和绑定。如果诊断节点支持传输层安全,则在TCP连接过程应使用TLS套接字,路由激活之前还需要完成TLS握手,确保后续的通信在握手建立的安全的信道上进行。
诊断通信过程,外部诊断仪发起诊断请求,DoIP网关根据诊断请求中的地址将诊断报文转发给指定诊断节点,待诊断节点回复诊断响应后转发给诊断仪。当诊断结束后,外部诊断仪会主动关闭TCP连接、结束诊断会话。
四、 DoIP报文
诊断通信的用户数据加上诊断双方的逻辑地址(SA、TA)后构成DoIP报文的载荷部分,载荷经过DoIP协议封装后交付到传输层,再经过层层封装,最终以以太网帧的形式发送到通信链路。
图 4 DoIP报文结构
图4从上到下依次为以太网帧、DoIP报文和DoIP载荷。DoIP报文的报头由以下几部分组成:
- 协议版本:报文遵循的ISO 13400协议版本。
- 协议版本取反:协议版本的二进制按位取反。用于验证协议版本。
- 载荷类型:规定报文尾部载荷的类型,即DoIP报文类型。ISO 13400中定义了16种DoIP报文类型(如表 3),并将载荷类型值0xF000~0xFFFF预留给制造商自行定义。
- 载荷长度:载荷的长度,单位为字节。
表 3 DoIP载荷类型
五、 DoIP测试
DoIP测试围绕DoIP报头开展。测试工程师通过诊断仪发送请求,然后根据响应的信息是否符合规范。以路由激活为例,路由激活由诊断仪向诊断节点发送路由激活请求,然后诊断节点根据请求内容回复路由激活响应。ISO 13400规定,如果路由激活成功,诊断节点回复路由激活应答码为0x10的响应报文;如果失败,则根据失败的原因回复带有对应应答码的响应报文,并且诊断节点会主动断开TCP连接。ISO 13400对路由激活应答码的规定如表 4。
表 4 路由激活应答码
表 5所示用例测试诊断节点能否根据规范使用激活应答码0x01。两个诊断仪依次与诊断节点(以下简称为待测设备,DUT)发起路由激活请求,DUT激活与第二个诊断仪的路由之前,先确认与诊断仪1的路由是否仍处于激活状态,根据诊断仪1的响应决定是否激活与诊断仪2的路由。
表 5 用例示例
六、 结束语
当前DoIP相关协议还专注于如何在基于IP的网络上传输传统的诊断服务,基本没有对诊断功能进行扩展,以太网上运行的统一诊断服务仍是传统的六类26种服务。目前看来,以太网的加入只是提高了诊断数据的传输速率,将来还会如何改变汽车与外部设备的通信仍未可知。
-
汽车测试网V课堂
-
微信公众号
-
汽车测试网手机站
最新资讯
-
用于高压电池测试的加速度计
2024-11-05 14:44
-
卡特彼勒新一代240吨电动矿卡投入使用
2024-11-05 14:43
-
[法规] 欧盟发布重型车辆事件数据记录仪(E
2024-11-05 14:43
-
城无界野无疆 柴油混动火星9越野版曝时尚越
2024-11-05 12:02
-
L2和L3级智能驾驶车辆驾驶员的角色转变研究
2024-11-05 10:34