DoIP详解系列-2-物理连接和车辆发现

采用DoIP对车辆进行诊断时可选择有线或者无线的方式完成外部诊断设备和车辆的连接,接下来将基于常用的有线连接的方式说明如何建立连接并获取车辆信息。

2.1物理连接

外部诊断设备想要与车辆进行诊断通信,首先要完成和车辆的物理连接,ISO 13400-3定义了基于IEEE 802.3 100Base-Tx以太网接口的车辆通信接口以及外部测试设备的物理层及数据链路层需求。

100Base-Tx采用两对 5 类非屏蔽双绞线,一对用于发送数据,一对用于接收数据,此外DoIP还需要额外增加一根激活线(Activation Line),当外部设备与边缘节点处于连接状态时,可通过激活线控制DoIP的使能状态。

边缘节点的以太网接口需支持自协商机制(Auto-Negotiation)以便适配外部诊断设备的传输速率和双工模式(全双工/半双工),而诊断设备要支持Auto-MDI以便适应不同的线束连接方式。

当边缘节点检测到外部诊断设备已经完成物理连接后需要将连接状态上报给应用层,这样一来就可以触发应用层进行下一步操作。

边缘节点和外部诊断设备的连接如下图所示:

2.1.1激活线

根据13400的定义,激活线的作用是:

  • 降低电磁干扰
  • 降低边缘节点的能耗

对于这两点作用的原理待确认,有了解的朋友可以评论指出

激活线对于DoIP的诊断通信的主要作用就是作为使能条件,如下图:

  • 当激活线上的电压低于Vinactive=2V时即使外部诊断仪已经连接车辆,边缘节点也不会激活诊断通信,可避免激活线上由于地偏电压或电磁干扰引起的压降误激活;
  • 当激活线上的电压大于Vactive=5V,小于Vmax时边缘节点需要在200ms内激活诊断通信,边缘节点会将外部诊断设备物理连接的信息传递到上层,从而使能车辆声明报文的发送;当电压维持在此状态时节点要维持被激活状态;
  • 当激活线上的电压又降至Vinactive=2V以下且持续时间超过200ms时边缘节点重新回到未激活状态,此时对于边缘节点来说诊断仪是掉线状态。

2.1.2诊断接口PIN脚定义(与激活线电路的关系)

13400-3给出了两个激活线的电路的实现选项,两种选项的区别是激活线到信号地的输入电阻和输入电容不同,依托于外部诊断仪对其测量并区分的能力,即可与诊断连接器的两种PIN脚定义相关联,从而判断出车辆的诊断连接器的接线方式,实现PIN脚的适配,进而实现外部诊断设备的通用化。

对应的两种OBD诊断口的PIN脚定义如下(造成差异的原因是不同的OEM对OBD Pin 1,9 & 3,11的使用不同):

Option 1:

Option2:

2.1.3 线束要求

为保证100Mbps的通信速率,对于连接诊断仪和车辆的以太网线束的要求有:

  • 屏蔽层在诊断仪侧接地,不能接车身地
  • 使用五类线
  • 从OBD诊断口到诊断仪的距离小于50m

2.2 车辆发现

完成诊断设备到车辆的物理连接并通过激活线使能诊断连接后边缘节点将会将连接状态传递至应用层,在开始车辆发现过程之前,需要先进行各自的IP地址配置,获得通信的能力后才可以进行车辆发现流程。所谓车辆发现,即外部诊断设备获取所连接的车辆信息的过程,如果是诊断设备1 : N的场景,则通过获取到的车辆信息选择要诊断的目标车辆建立连接执行诊断任务,如果是1 : 1直连,则基于获取的信息与车辆建立连接执行诊断任务。

2.2.1 IP地址配置

作为基于IP的诊断协议,IP地址是实现通信的基础,诊断设备和边缘节点的IP地址配置有两种方式:

  • AutoIP
  • DHCP(Dynamic Host Control Protocol)

下面分别简单介绍两种IP配置的机制

2.2.1.1 AutoIP

AutoIP(也即Link-Local IP, RFC3927)依赖ARP协议来实现IP地址的配置,ARP全称Address Resolution Protocol,即地址解析协议,用于根据已知的IP地址获取物理地址(MAC地址)的协议,其流程如下:

  • AutoIP 协议首先在 169.254.1.0 到 169.254.254.255 的 AutoIP IPv4 地址范围内选择随机地址,之后针对选定的地址发送ARP探测消息,ARP 探测消息中包含一条ARP请求消息,其发送方地址设置为 0.0.0.0,目标地址设置为选定的IP 地址
  • 如果其他网络节点响应此探测或发送方接收到针对同一地址发送的相同的探测消息时表示所选地址已被占用,则会在 AutoIP IPv4 地址范围内随机选择新的IP地址,并重复探测处理
  • 如果发出探测后无任何响应,则 AutoIP 会针对选定的地址发出ARP公告,ARP公告是由一则ARP请求消息组成,该ARP消息中的发送方地址和目标地址都设置为所选定的IP地址
  • 如果其他网络节点响应某公告消息或针对同一地址发送相同的公告,则公告失败,会在 AutoIP IPv4 地址范围内随机选择新的IP地址,重新开始探测
  • 当探测和公告在未检测到任何冲突的情况下完成时就会认为选定的IP地址可配置,将关联的 IP 实例(诊断设备或边缘节点)的IP地址设置为该地址
  • 流程图如下:

2.2.1.2 DHCP

DHCP协议是一个client-server类型的网络协议,位于7层网络模型中的应用层,使用UDP作为传输层协议实现IP地址的分配,在地址配置时需要一个设备作为DHCP Server为其他支持DHCP的节点分配IP地址以及相关配置。

DHCP的IP地址配置过程如下:

  • 在进行地址配置时,首先DHCP客户端发送DHCP_Discovery的广播消息(源地址0.0.0.0 目标地址255.255.255.255)
  • DHCP Server收到消息后选择未被分配的某个IP连同其他配置放在DHCP_Offer消息中广播发出(源地址DHCP_Server_IP 目标地址255.255.255.255 端口号68)
  • 当DHCP客户端收到Offer消息后选择其中之一向网络上广播DHCP_Request(源地址0.0.0.0 目标地址255.255.255.255)声明所接受的IP地址
  • 当DHCP_Server接收到Request后反馈一个DHCP_ACK消息,表明已确认此选择,消息中包含该IP及其他配置参数(如租期等)
  • 收到DHCP_ACK后DHCP客户端会连续发送三个ARP请求消息已检测该IP是否和网络上其他设备存在冲突,如果收到响应则发送DHCP_Decline拒绝分配的IP地址,重新开始DHCP_Discovery;若未冲突,则使用Server提供的IP地址进行通信。

在DoIP的实际应用场景中,连接外部诊断设备的DoIP实体不能作为DHCP Server,以免造成诊断设备所在网络的混乱。通过DHCP动态配置的P地址一般都会有租期,当租期到达之后需要丢弃配置的IP,重新再配置一个新的IP地址。除此之外当激活线变为无效或者检测到IP冲突时也会导致配置的IP地址被丢弃。

2.2.1.3 DoIP实体的IP地址配置流程

为了更好的满足IP地址的配置,一般要求边缘节点同时支持这两种地址配置的方式,IP地址配置的流程如下图:

  • 一般要求DoIP节点需要同时支持AutoIP和DHCP两种IP配置方式
  • 标准中定义了两个相互矛盾的需求,1-IP地址配置取决于AutoIP和DHCP哪个先配置完成;2-DHCP的地址优先级高,可以取代先前配置的AutoIP地址,所以可以看到图中AutoIP的地址配置过程中要判断DHCP地址是否有效,如果无法通过DHCP配置IP地址则会使用AutoIP的IP地址,但在整个过程中还是持续检查DHCP地址的配置情况,至于需要等待多久应该是由OEM来决定的
  • 标准同时定义了两种不同的IP配置方式一定有结合实际应用的考虑,设想如果所有的诊断场景都是诊断仪和车辆1:1直连,那么只采用AutoIP一种机制完全够用,但是对于1:N的场景,被诊断的车辆数目可能很大,仅仅通过AutoIP效率将会很低,IP配置就可能耗费大量时间,所以需要DHCP

2.2.2车辆发现

如上图,完成IP配置后车辆的DoIP实体会在A_DoIP_Announce_Wait 时间内广播发送车辆声明消息Vehicle announcement message,其中包含了DoIP实体的诊断逻辑地址(可以类比DoCAN的物理请求/响应地址),对应车辆的VIN码(若已配置),实体标识符EID(唯一标识一个DoIP节点,一般为MAC地址)以及组标识符GID(用于在VIN尚未配置时定位一组DoIP节点)。这样的声明消息会连续发送三次,如此一来就可以让外部诊断设备获取到将要进行通信的对象的基本信息,进而可以根据收到的信息做筛选,与自己想要通信的车辆或者DoIP节点进行通信。

车辆声明报文内容如下:

假如DoIP节点发送的车辆声明消息外部诊断设备没有收到(比如车内节点IP地址配置速度较快,发送车辆声明消息时诊断设备还在配置IP地址),为了获取上面的信息,诊断设备也可以自发的请求,通过发送车辆标识请求消息Vehicle identification request message就可以让DoIP实体自发的将信息放在车辆标识响应消息vehicle identification response message中回复,从接收到请求到回复响应的时间在A_DoIP_Announce_Wait之内,车辆标识响应消息和车辆声明消息是同一条消息的两种形态,其内容是一致的,区别在于主动发送还是被动响应。

车辆标识请求消息共有三种形式:

  • 不带参数的 - 所有DoIP实体均回复
  • 带VIN的 - VIN对应的DoIP实体回复
  • 带EID的 - EID对应的DoIP实体回复

可以注意到,车辆声明消息/车辆标识响应消息中除了常用的四个元素,还包括两条特殊元素:

  1. Further Action Required - 标识了存在未完成初始连接(相当于初始化)的DoIP实体或使用了集中安全方法(由主机厂定义的安全机制)

Further Action Code如下:

如果DoIP实体的车辆声明消息/车辆标识响应消息的Further Action Code = 0x10时,在路由激活时请求消息需要设置激活类型为0xE0,此值决定了特定操作(接收请求的DoIP实体的操作,具体由OEM定义),这里实际很少有OEM使用,可以理解为给了OEM对DoIP初始化预留了一些自定义的空间可以自由发挥。

  1. VIN/GID sync. status - 指示DoIP实体对VIN或GID同步的状态

Sync. Status Code如下:

GID的同步是指经GID Master(一般是边缘节点)发送VIN/GID至其余所有DoIP节点以便进行识别,当无法确保为每个DoIP实体配置VIN时,DoIP节点就应该支持GID同步,举例来说,在进行车辆生产或售后过程中可能会有新的DoIP节点被安装至车辆,这时他们的VIN还来不及配置,想要对此类节点诊断时就需要通过GID同步的方式将新的节点纳入DoIP组中。具体同步的流程由OEM定义,简化的示意如下图:

如果DoIP实体的车辆声明消息/车辆标识响应消息的Sync. Status Code = 0x10,表明有DoIP实体还未完成VIN或GID的同步,外部诊断设备将开启A_Vehicle_Discovery_Timer定时,当定时超时后重新发送车辆标识请求消息,再次确认同步状态。

当发送Sync. Status Code = 0x10的车辆声明消息/车辆标识响应消息时,其他值被设置为无效值,无效值定义如下表:

流程如下图:

图中的External Network是在诊断设备和车辆之间起到连接作用的网络设备,如交换机。

总结来看,外部诊断设备通过网络连接车辆的物理连接和车辆发现过程如下图:

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值