基于DoIP协议的汽车诊断系统开发

2019-04-17 09:03韩光省韩可强朱永健
汽车电器 2019年3期
关键词:报头IP地址报文

安 康, 韩光省, 韩可强, 朱永健, 郭 灿

(1.河北工业大学,天津 300310;2.中国汽车技术研究中心,天津 300300)

车载电子系统的复杂程度日益增加,不断增加的控制器以及接口数量对带宽的需求越来越大,车内不同的控制单元和不同的域之间彼此通信的需求越来越强。这意味着传统总线已经无法满足需求,整车制造商和供应商都需要更有效的车辆通信网络。当前应用较多的总线主要有LIN、CAN、FlexRay、MOST、LVDS等,除了LVDS以外,其余的总线技术都是针对汽车行业制定的[1]。目前CAN、LIN是现役车载网络最为广泛的标准,但其带宽水平在某些应用领域越来越力不从心;FlexRay在中高端车的线控系统和动力系统中应用较多,MOST主要服务于多媒体应用,但其开发成本相比较高;LVDS是一种电器数字信号系统,在汽车行业主要应用在屏幕和摄像头间数据传输。所以目前正是一直被汽车行业拒之门外的以太网与汽车深度拥抱集成的契机。分和基于CAN总线诊断一样采用ISO 14229实现,详见表1。

1 DoIP协议介绍

DoIP全称为基于IP网络的诊断通信Diagnostic communication over Internet Protocol,由ISO 13400标准定义,是基于IP的汽车诊断协议[2]。DoIP诊断经由通用的统一诊断服务UDS协议引入诊断服务,通过传输控制协议TCP、用户数据报协议UDP和以太网协议IP,完成外部测试设备与ECU间的诊断通信。在OSI 7层模型中,ISO 13400规定了DoIP的传输层、网络层、数据链路层和物理层。应用层和会话层部

表1 基于OSI基本参考模型

2 DoIP帧格式

DoIP报文由DoIP报头和Payload(有效载荷)组成,完整格式如图1所示。

1)DoIP报头包含:DoIP协议版本号,目前为0x02(DoIP 2012)。

2)协议版本号取反,目前为0xFD。

3)Payload类型,分为3大类:①节点管理类,包含DoIP报头否定应答、车辆声明及标识、路由激活、在线检查;②车辆信息类,包含DoIP实体状态、诊断电源模式信息;③诊断数据类,包含诊断报文。

4)Payload长度,范围为0-0xFFFFFFFF最大支持一次性传输4GB大小的数据。

每个DoIP实体 (实现了DoIP协议的节点)将按照图2中指定的顺序处理所有DoIP报文的通用DoIP报头结构。

图2 DoIP通用报头处理程序

如果接收到来自DoIP实体不正确的DoIP报文,外部测试设备不得发送通用DoIP报头的否定应答报文。通用DoIP报头否定应答报文只能用于确定先前发送的DoIP报文的错误条件。

3 DoIP通信流程

当一辆车和外部测试设备都连接到DoIP网络中,并且IP地址配置完成,DoIP实体将通过车辆公告信息广播其VIN、EID、GID和逻辑地址3次,外部测试设备通过广播发送车辆识别请求来触发车辆识别响应,从而完成车辆声明及标识步骤。

打开Socket(套接字)是外部测试设备向车辆内部DoIP实体发起连接的第一步,必须在交换任何报文前完成,一旦建立了连接,必须执行一些初始化操作。为了激活初始化连接中的路由,外部测试设备将发送一个路由激活请求消息到DoIP实体。如果外部测试设备符合条件,DoIP实体将发送一个路由激活成功的响应,此时就可以对有效的DoIP报文 (如DoIP诊断报文)进行转发或处理。DoIP会话示例见图3。

图3 DoIP会话示例

4 DoIP物理连接

4.1 DoIP应用场景

DoIP的应用场景具体有3个:①车辆检查和维修,在售后模式下,诊断仪通过TCP/IP协议与车辆建立直接联系,然后将相应的诊断请求发送给车辆DoIP实体,然后根据车内ECU的诊断响应反馈出故障信息。②车辆/ECU的软件刷新,外部刷写设备根据刷写规范中定义的刷写流程,将更新后的程序或标定文件写入内部模块中。在ECU开发阶段,外部刷写设备与DoIP实体间建立的通常是点对点的通信,但在下线时,通常通过刷写设备对整车进行并行刷写操作。③车辆/ECU的下线检查和维修,在装配车间,外部测试设备能够按照相应的流程,确定车辆是否已通过装配线准备状态测试。正在装配过程中的车辆,即使不是所有DoIP实体都安装在车辆上,也应在IP网络上能够正确检测到,从而对车辆进行诊断和维修。与售后模式不同的是,在装配车间,外部测试设备和车辆之间通常进行多个并行的诊断通信。这包括一个或多个外部测试设备与车辆中的多个ECU建立多个逻辑连接。

4.2 诊断连接场景

外部通信方案有4种:①单辆车与单个外部测试设备直接物理连接,该方案能够确保在进行IP诊断时,系统不会受到来自其他车辆或设备的干扰,一般用IP寻址或自动配置;②单辆车与单个外部测试设备网络连接,在多部车或多个外部测试设备都连接到同一个网络时 (例如维修车间网络),外部测试设备和车辆都应该具备识别能力,能够在网络下识别出连接的对象,并拒绝来自其他车辆或外部测试设备的请求;③多辆车与单个外部测试设备网络连接,该方案要求外部测试设备具备一对多连接的能力,例如在工厂或车间中某一个产线整车刷新服务器需要同时对多辆车同时进行刷写升级;④单台车与多个外部测试设备连接该方案要求车辆具备一对多连接的能力,能够清楚地区分诊断请求和对每个逻辑连接负责的外部测试设备的响应。外部测试设备能够判断当前车辆是否在与其他设备进行通信,例如在下线时的服务器网络重叠区域,某个外部设备需要对车辆刷写升级,而另一个外部设备需要对该车辆进行故障检修[3]。

5 车内网络拓扑

DoIP架构模型必须实现以下特征:①车辆与测试设备能够加入到网络中并识别对方;②汽车具有声明存在且被检测到的能力;③获取车辆基本状态信息 (如Power Mode状态);④通信建立,如双方通信请求建立,保持,以及对网关的控制等;⑤汽车网关实现诊断设备与车辆子网组件之间的数据路由;⑥错误状态处理[4]。

图4描绘了车载网络架构的示例。

图4 车载网络架构示意图

如图4所示,根据该拓扑结构,5个域控制器:车身、动力总成、底盘、信息娱乐、高级驾驶员辅助系统ADAS,通过以太网作为主干网连接,每个域内部均可使用不同网络,当域与域之间需要信息交流时,报文可经由域控制器路由转发到目标网络。由于涉及到安全性等因素诊断网关需要支持如下特性:DoIP网关在所有连接中必须支持IPV4通信,在用于OBD以太网连接时必须支持IPV6通信,能够将外部IP地址转换为内部IP地址、将外部MAC地址转换为内部MAC地址并提供防火墙从而保护内部通信;作为内部诊断设备的ECU应采用专门的IP地址,保证其与其他DoIP节点进行通信,该IP地址与用于与网关或外部测试设备进行DolP通信的IP地址不同;ECU可以使用UDP或者TCP端口用于DoIP通信,内部诊断设备可以发送UDP信息给DoIP节点或者和DoIP节点建立额外的TCP连接,这意味着UDP或者TCP的源端口可以动态随机生成,目的端口均需设置为13400。

6 结束语

汽车的安全和可靠性离不开车载诊断系统的保障,随着汽车电气化的迅速发展,车内控制器数量在急剧增加的同时,其功能也在不断地增加。传统的网络架构体系已经越来越不能满足需求,以太网作为一个在工业上已经非常成熟的通信技术,通过完美转型成为车载以太网为大势所趋。相信在随后的几年中通过以太网作为车内主干网络的架构体系,将会加快远程诊断、OTA、车联网甚至自动驾驶等技术的快速普及。

猜你喜欢
报头IP地址报文
基于J1939 协议多包报文的时序研究及应用
以太网QoS技术研究及实践
基于Python的汽车CAN总线报文格式转换系统的设计与实现
基于报文类型的限速值动态调整
报业文化中的一道独特风景
《文汇报》报头背后的故事
《IP地址及其管理》教学设计
计算机的网络身份IP地址
简论报纸的报头设计
轻松明白网络IP地址以及子网划分问题