基于以太网的商用车诊断功能实现方法

2022-11-07 02:16娜,杜彬,田
汽车电器 2022年9期
关键词:诊断仪报文以太网

李 娜,杜 彬,田 彬

(陕西重型汽车有限公司汽车工程研究院,陕西 西安 710200)

随着智能网联技术在商用车电子领域的快速崛起,商用车电子技术也得到了迅猛的发展。传统的商用车电子网络架构使用较多的总线是CAN总线和LIN总线,其中CAN最大的传输速率可达1Mb/s,LIN最大的传输速度是20kb/s。

由于车载网络带宽要求不断的增长,传统的汽车通信技术已经无法满足日益复杂的汽车电子控制功能需求,因此引入了车载以太网。车载以太网具有高带宽、低延迟以及高可靠性等优点。传统的商用车诊断软件系统是以CAN总线技术为主,CAN网络的带宽很大程度上限制了诊断设备和车载控制器之间的通信速率。基于以太网的诊断系统开发主要采用DoIP诊断通信技术,DoIP具有通信速率高、成本低和易实现等优点。因此,DoIP技术在商用车诊断功能开发上的应用已经成为必然的趋势。

1 基础知识介绍

DoIP(Diagnostic communication over Internet Protocol)是基于IP的诊断通信协议,是由ISO 13400系列标准定义的,作为实现基于以太网的诊断通信方案。基于以太网的诊断服务相关的协议栈如图1所示。

图1 诊断协议栈

诊断协议栈由以下7层组成。

第1层,物理层:DoIP边缘节点能够支持IEEE802.3中规定的100BASE-TX(100Mb/s以太网)标准;DoIP边缘节点能够通过以太网设备检测物理连接和断开(链路检测),并且能够通知上层通信应用。

第2层,数据链路层:DoIP边缘节点能够支持100Mb/s以太网(100BASE-TX);诊断设备能够支持IEEE802.3中规定的100BASE-TX标准;为了提高对不正确连接的以太网电缆的容错能力,诊断设备需要能够支持Auto-MDI(X)功能。

第3层,网络层:DoIP实体都采用Ipv4,符合IETF RFC 792;ARP(地址解析协议)是仅当主机的IP地址已知时,确定主机MAC地址的方法,也用于验证IP地址是否被其他主机使用;ICMP(互联网控制消息协议)是IP的一部分,用于发送错误消息。

第4层,传输层:DoIP实体都需要按照IETF RFC 793标准执行TCP协议;DoIP实体都需要实现IETF RFC 768中规定的UDP。

第5层,会话层:目的是为上层提供统一的接口,使上层应用不需要随着底层通信技术的变化而改变。

第6层,表示层:在应用过程之间传送的信息提供表示方法的服务,只关心信息发出的语法和语义。

第7层,应用层:应用层是开放系统的最高层,是直接为应用进程提供服务的。

DoIP经UDS(Unified Diagnostic Services,统一诊断服务)引入诊断服务,然后通过TCP传输控制协议、UDP用户数据报协议和IP以太网协议,完成外部的诊断设备和车载ECU之间的诊断通信。DoIP数据帧格式如图2所示。

图2 DoIP数据帧格式

其中,版本协议是标识DoIP数据报协议版本。反向协议版本是协议版本的异或,与DoIP协议版本一起用作协议验证模式,以确保收到正确的DoIP消息。负载类型是指通用DoIP报头后的数据(如网关命令、诊断消息等),主要分为3类:①节点管理类,主要包括DoIP报头应答、车辆声明和标识、路由激活以及在线检查;②车辆信息类,主要包括了DoIP的实体状态以及诊断电源模式信息;③诊断数据类,主要包括诊断报文。有效负载长度是指DoIP消息排除通用DoIP报头以外的有效负载长度;DoIP负载包括源地址、目的地址和用户数据。

2 方案实现

本文中的诊断系统采用DoIP通信协议,通信流程如图3所示。诊断仪将DoIP命令发送给网关节点,网关节点回复诊断响应确认,并且网关节点会根据DoIP命令中所提供的目的地址经诊断命令转发给相应的DoIP节点。DoIP节点接收诊断请求报文,需要对诊断请求报文进行接收确认,并且要发出确认响应消息。DoIP节点将回复信息发送给网关节点,由网关节点将来自DoIP实体的回复信息转发给诊断仪。

图3 通信流程

2.1 通信流程主要分为7个阶段

1)车辆识别:车辆与诊断仪连接包含物理连接以及网络连接,连接之后需要通过DHCP寻址或者通过Auto IP寻址,诊断仪和OBD接口获取分配的IP地址。IP地址配置完成之后,可以建立诊断仪与车辆的以太网通信。使用DoIP_GenericHeaderCheckSyncPattern()函数,进行协议模式和版本。

2)车辆选择:车辆在发送了包含VIN或者EID的信息之后,诊断仪会根据VIN或者EID对车辆进行识别,并且会根据诊断仪的上位机界面来进行选择需要通信的目标车辆。

3)建立套接字:为了确保两个不同的DoIP实体之间能够建立正常的诊断通信连接,需要两个实体建立套接字,其中套接字主要包括了主机的端口号和主机的地址,可以通过识别实体的IP地址和端口号进行诊断连接和通信,套接字支持两种通信协议,分别是TCP和UDP。其中,UDP是非连接的协议,支持单播和广播;TCP是面向连接的协议,在收发数据之前,必须建立可靠的连接,所以TCP保证了可靠的1对1通信,仅支持单播,在诊断报文的通信中必须使用TCP协议。

4)路由激活请求:在建立套接字的过程中,还需要通过激活路由请求来对套接字进行注册激活,路由激活请求将诊断仪的源地址在DoIP网关的套接字上进行注册,并且进行关联源地址与套接字的端口号。所以,路由激活请求保证了诊断仪和目标节点之间的端到端路由,确保诊断仪与DoIP网关之间的套接字建立了1对1的关系。

5)路由激活响应:路由激活响应使套接字之间建立地址分配和对应的通信关系,通过对逻辑源地址和逻辑目标地址进行请求和响应的识别,保证通道中诊断消息传输的正确性。

6)诊断通信:套接字连接之后,可以进行DoIP的诊断通信,诊断通信包含了诊断请求消息、诊断肯定应答消息和诊断否定应答消息。

7)通信终止:诊断通信完成之后,套接字触发一般非活动计时器,计时器溢出之后,会自动断开TCP连接,通过主动关闭套接字来结束通信。在实际的操作中,断开诊断仪和DoIP实体的连接就会导致通信终止。

2.2 DoIP的应用场景主要包括以下几点

1)诊断仪与车辆通过TCP协议建立连接,并且诊断仪把相关的诊断请求发送给商用车DoIP实体,然后根据商用车内ECU的诊断响应输出车辆故障信息。

2)诊断仪根据规范中定义的刷写流程,将已经更新完成的程序或者需要标定的数据写入控制器中。开发阶段,采用的是点对点的通信方式将诊断仪与DoIP实体之间建立联系。在车辆已经下线之后,需要通过诊断仪与整车进行并行的刷写处理。

3)诊断仪能够按照规范中定义的相关流程,确认车辆是否已经通过了装配线的准备状态测试,此时需要诊断仪与整车之间进行多个并行的诊断通信。

3 台架测试

针对以上的应用场景,对本文中的诊断系统进行以下功能测试,确保该系统能够满足商用车诊断功能的要求。

1)车辆声明功能。控制器上电或者复位之后,会主动发送3条车辆声明报文。车辆声明功能测试报文如图4所示。

图4 车辆声明功能

2)节点资源信息查询。测试设备向DoIP实体发送节点资源信息查询请求报文,收到来自控制器的节点信息响应报文。节点资源信息查询测试报文如图5所示。

图5 节点资源信息查询

3)节点电源信息查询功能。测试设备向DoIP实体发送节点电源信息查询请求报文,收到电源模式响应报文,报文的内容符合DoIP协议,返回节点电源状态。节点电源信息查询测试报文如图6所示。

图6 节点电源信息查询

4)路由激活功能。测试设备向DoIP实体发送路由激活请求报文,收到路由激活响应报文,路由激活成功并在此TCP_DATA套接字上注册源地址。路由激活功能测试报文如图7所示。

图7 路由激活功能

5)诊断报文传输功能。测试设备向DoIP实体发送诊断请求报文,收到诊断ACK或者NACK报文,报文内容符合DoIP协议。诊断报文传输功能测试报文如图8所示。

图8 诊断报文传输功能

6)报文有效性检查功能。测试设备向DoIP实体发送不符合协议的DoIP请求报文,收到DoIP Header NACK报文响应,报文内容符合DoIP协议。报文有效性检查功能测试报文如图9所示。

图9 报文有效性检查功能

4 结论

随着汽车电子行业的迅猛发展,现有的汽车诊断系统已经无法满足日益增长的需求。本文提出了基于以太网的商用车诊断软件系统方案,主要阐述了DoIP的通信流程,并且针对6个主要功能进行台架测试。所有的诊断服务均可正常处理和响应,满足商用车诊断系统的需求。

猜你喜欢
诊断仪报文以太网
以太网QoS技术研究及实践
海法新港一期自动化集装箱码头电子数据交换报文系统设计与实现
本田雅阁混动发动机无法启动故障检修案例
迈腾B8轿车启动防盗系统故障分析
基于报文类型的限速值动态调整
汽车故障的综合诊断方法
网络智能平台和云服务为以太网注入新动力
医用B超诊断仪在检定中的常见问题
三大因素驱动创新提速以太网快步迈入“灵活”时代
三大因素驱动创新提速 以太网快步迈入“灵活”时代