车辆远程诊断DoIP

远程诊断DoIP


继传统CAN线、MOST、FlexRay以及CAN-FD后,车载以太网将凭借其低成本、高带宽、高传输速率、网络实时而被纳入到新型整车总线中。尤其在娱乐信息系统及T-Box子网中,采用以太网传输视频数据代替原有各模块间复杂连接线将很大程度减少线束重量及复杂度。同时以太网也将是未来解决如何快速更新ECU软件及标定的主要策略之一。

DoIP技术,在UDS诊断服务基础上,通过TCP/IP及以太网来进行远程车辆诊断,协议定义在ISO 13400,文档中详细描述了外部测试及刷新设备如何与整车内部ECU通过以太网及TCP/IP协议进行通讯。
文档目前分三份:

  • — Part 1: General information and use case definition
  • — Part 2: Transport protocol and network layer services
  • — Part 3: Wired vehicle interface based on IEEE 802.3

以下两份正在筹备中

  • — Part 4: Ethernet Diagnostic Connector
  • — Part 5: Conformance test specification

Part 1: General information and use case definition

ISO13400架构实现基于互联网的OSI 7层模型(详见ISO/IEC 7498-1及ISO/IEC 10731),各层采用的协议见以下表格。


这里写图片描述

SI七层模型自上向下分成应用层,表示层,会话层,传输层,网络层,数据链路层,以及物理层。但ISO13400涉及到的主要分布在传输层、网络层、数据链路层、物理层四层中。


这里写图片描述

根据互联网中的定义, OSI模型中,由软件(进程)或者硬件(输入/输出芯片)实现的活跃部分称之为实体Entity,用于进行信息的发送或者接收。实体是子系统中的活动单元,每一层被拆分成多个实体,同一层内的通讯由不同子系统上的对等实体(Peer-Entity)来实现。

DoIP诊断网络架构

整个DoIP诊断网络架构由所有的Entity实体与外部的测试设备组成。

有简单的外部设备点对点与车内单独某个DoIP实体连接,或是在一个复杂的分布式网络中,多台测试设备通过DoIP网关与多台车辆中的多个DoIP实体以及子网进行连接通信。

DoIP的应用场景具体有三个:

1. 售后模式 车辆的检测与维修

在维修厂里,外部的检修设备不需要使用传统ALDL口硬线连接,通过TCP/IP协议与车辆建立直接联系,并按照指令顺序将可靠请求发送给车辆DoIP实体,而后模块反馈出车辆实时的错误追溯信息。

2.产品/工厂模式 车辆ECU的模块刷新

外部刷新设备根据既定的刷新流程步骤,通过以太网或TCP/IP协议在进行安全访问及模块解锁后与车辆内部模块IP网络建立通信。车辆内部网络对外部刷新设备传输过来的Op及标定文件应支持下载以及写入操作。

产品模式下,工程开发工具往往实现的是设备与模块DoIP实体点对点的通讯与刷新,但在工厂模式下,采取的则是刷新设备对整车进行的并行刷新操作。

3. 在工厂模式总装终检线工位进行检测维修

在工厂制造环节,外部检测设备会按照指定顺序,对接入IP网络的车辆进行终检工位的完整性测试。与售后模式下有所不同的是,在工厂环节,外部测试设备通常会与整车多个模块的多个DoIP实体进行连接以及并行通讯。

诊断连接场景

单台车与外部设备使用双绞线点对点通信

这种方式意味着在进行IP诊断时,系统不会受到来自其他车辆或者设备的干扰,通常用IP寻址或者自动配置。


这里写图片描述

通过无线网络连接单车与单一外部测试设备

在这种场景下,意味着无线网络中可能会存在多辆车或者多个设备,因此无论是车或者是设备都应具备判别机制,能在网络下识别出所需要连接的对象,并且拒绝来自其他车辆或者设备的请求信号。当然,设备与车辆本身都应具备自动接入到已存在的IP网络的能力。应用场景如维修厂。


这里写图片描述

单设备与多辆车进行无线连接

在该场景下,只有外部测试设备需要有点对多连接的能力(sockets),如在工厂里某一台产线整车刷新服务器需要同时对多台车辆进行并行刷新。


这里写图片描述

单车与多个外部设备连接,但只允许同时只建立一条通道

车辆具备了与多部设备连接的能力,对于车辆来说,需要具备区分诊断请求还是反馈的能力。而对于外部设备,则需要有判断当前车辆是否有在与其他设备进行通讯的能力。该情况会发生在工厂模式下,在某些网络重叠区域,某台设备需要对车辆进行模块的刷新,而另一台设备则需要对该车辆进行检修时。


这里写图片描述

DoIP之通信建立

ISO 13400-2文档详细定义了整车电子模块组件如何通过TCP/IP协议与外部刷新诊断设备建立通信连接。其中包括作为IP节点的汽车网关如何加入到现有网络中,及外部刷新诊断设备如何在网络中检测到车辆并与其内部IP组件建立有效通讯。

其中,DoIP架构模型必须实现以下特征:

  • — 汽车与设备具备检测对方并加入到网络的能力
  • — 汽车具有声明存在且被检测到的能力
  • — 获取车辆基本状态信息 (如Power Mode状态)
  • — 通信建立,如双方通信请求建立,保持,以及对网关的控制等
  • — 汽车网关实现诊断设备与车辆子网组件之间的数据路由
  • — 错误状态处理

DoIP中的一些定义

DoIP Entity
DoIP实体是任意一个满足DoIP协议的host,其中包括DoIP节点及DoIP网关

DoIP Gateway
DoIP网关是在车辆网络内部,实现与本模块及所连接多个子网内ECU通讯访问的节点

DoIP Node
DoIP节点是在车辆网络内部,遵守DoIP协议,但不具备路由DoIP数据到连接子网内功能的节点

DoIP Edge Node
DoIP边缘节点是在车辆内部,与诊断口Ethernet activation line直连的节点

External Test Equipment
车辆外部设备是指存在车辆网络外部,通过DoIP协议与车辆内部子网DoIP Entity实现通讯建立的设备

In-vehicle Test Equipment
车辆内部设备与外部设备拥有同样功能,但不具备Activation硬线,车辆身份请求及DCHP服务(自动为接入网中的DoIP节点分配不同的IP地址)

这里写图片描述

针对协议定义,虽从名字上看TCP/IP协议仅包括传输控制协议(TCP)与网际协议(IP),但实际上TCP/IP是协议簇,包含了除这两种以外的用户数据报协议(UDP),文件传输(FTP)和地址解析协议(ARP)等。

这里着重介绍TCP与UDP,这两者都是传输层协议,且在后续建立通讯中起到非常重要的作用。

DoIP中TCP原理及通信建立

TCP(Transmission Control Protocol)传输控制协议是一种面向连接的协议,即必须与对方建立可靠连接后才能进行数据交互。这个建立过程就是「三次握手」,即建立TCP连接时,需Client与Server端总共发3次包来确认连接的建立。

DoIP建立TCP通讯时,通常成对出现端口,一个用于发送,称之为远程端口(remote port);另一个用于接收,称之为本地端口(local port)。但一个host的发送端口相对也就是对方host的接收端口。每个DoIP Entity需对TCP_DATA端口进行监听,TCP_DATA端口号通常为13400,以便外部设备能与节点建立通讯。

参考互联网体系中TCP/IP的握手流程,DoIP节点与外部诊断设备建立流程如下:


这里写图片描述
  • 第一次握手: 建立连接

Client也就是External Test Equipment发送连接请求报文段,将标志位syn置为1,并随机产生一个Sequence Number: seq=x; 把这个值发送给Server DoIP Entity,此时Client进入SYN_SENT的状态,等待Server确认。

  • 第二次握手: Server收到syn报文段

Server收到Client的syn报文段,由syn=1知道Client正在请求建立连接。Server把ack=x+1;同时要发送syn请求消息,因此把标志位syn置成1,并随机生成seq=y;Server把所有信息一并放入报文段(即syn+ack报文段)发给Client用来确认连接请求,自此Server进入了SYN_RCVD状态。

  • 第三次握手: Client收到Server(syn+ack)报文段

检查ack是否等于x+1,如果正确,把ack=y+1,并把数据包发给Server,Server会检查ack是否等于y+1,seq是否等于x+1,如果正确就连接成功,Client和Server进入ESTABLISHED状态,完成握手,可以开始接收数据。

DoIP中UDP原理及通信建立

UDP(User Data Protocol)用户数据报协议是一种非连接,不保证可靠性的传输层协议,也就是传输数据前Client与Server不需建立连接。只需要知道对方IP地址及端口号,即能够直接发送数据包,只是不能保证是否能够到达。但相比TCP,UDP的速度更快,因此对于需要实时同步传输,但不要求可靠到达的数据,优先考虑UDP协议。

在下载数据的场景下,当要求数据精确无误时,由于UDP会出现丢数据的情况,因而就应采用更安全的TCP。但在高速网络保证下,传输数据延迟以及稳定性得以改善的情况下,若丢帧后采用应用层控制数据重传,则也能够保证UDP传输的可靠性。

DoIP场景下,通过两个UDP端口

  1. UDP_DISCOVERY
  2. UDP_TEST_EQUIPMENT_REQUEST

来建立通讯并进行远程数据控制,尤其需要外部设备对车辆IP节点进行广播消息请求时,须使用UDP,由于TCP机制所在,无法实现广播与多播。

过程如下,DoIP以UDP_DISCOVERY或动态定义端口来作为Source Port,向UDP_DISCOVERY广播报文数据,而外部诊断设备则始终监听UDP_DISCOVERY端口来获取消息。

这里写图片描述

当外部诊断设备需要发送数据时,同样将目标端口设置为UDP_DISCOVERY,源端口UDP_TEST_EQUIPMENT_REQUEST则是动态定义,范围为(49152~65535)。

当请求发送给DoIP后,诊断设备保持对UDP_TEST_EQUIPMENT_REQUEST的监听。
DoIP反馈请求时,把目标端口设置为UDP_TEST_EQUIPMENT_REQUEST,具体实现过程参考下图:


这里写图片描述

在ISO13400-2中,DoIP的策略制定中参考了非常多的传统通信网络技术。下次会分析在DoIP过程中,不同层级之间如何实现对DoIP帧中的payload数据进行解析等。

DoIP以太网诊断口设计规范

在 Part3中,基于IEEE 802.3 100BASE-TX的标准(速率达100M的快速以太网信令标准),就物理层以及数据链路层对DoIP的通信接口及测试设备提了设计需求。
Part4里则是强调DoIP中通信诊断口的设计规范。这里对ISO13400的part3及part4部分关于以太网诊断口pin脚布局进行简介。

以太网需求定义

根据IEEE 802.3u 100BASE-TX标准定义,车载以太网连接口由四条传输线(transmission line)加一条额外的使能线(activiation line)组成,通过使能线可决定DoIP边缘节点(Edge Node)的打开与否。


这里写图片描述

以太网线缆分两类:

  • 端对端(1:1)连接:通常用于网络集线器或交换机与端节点(如计算机)连接。

此情况下,每个RJ45线缆接口,即水晶头的每一个针脚会与车辆的接口针脚一一对应连接。也就是Source Port的Rx+接口会与Destination Port的Rx+口对应相连。

  • 交叉连接(cross-linked):通常用于两个端节点间直连(两台计算机之间)。

此情况下,Source Port的Tx针脚会与Destination Port的Rx针脚直连,反之亦然。

以太网物理层需求

  1. 根据IEEE 802.3中定义,DoIP应支持100Base-TX(100Mbit/s以太网)

  2. 根据IEEE 802.3中定义,DoIP应支持10Base-TX(10Mbit/s以太网)

    对10Mbit/s网络支持的提出目的是,当两个以太网接口之间100Mbit/s网络无法建立时,10Mbit/s的低速网络会作为备用方案启动。

  3. 根据IEC 60950-1 (TNV1 circuit) and IEEE 802.3定义,DoIP边缘节点应设置变压器线圈以满足对1500V电压1min以上的隔离。

以太网数据链路层需求

  1. DoIP边缘节点应支持与外部网络建立10Mbit/s的以太网

  2. DoIP边缘节点应支持100Mbit/s以太网

  3. 根据IEEE 802.3中定义,DoIP的边缘节点在建立连接时,应支持自动握手及自动协商(Auto-Negotiation)以保证端口使用相同的传输速率及单双工模式等

  4. 根据IEEE 802.3中定义,测试设备应支持100Mbit/s标准

  5. 为提高对以太网线缆(端对端及交叉线缆)的容错能力,测试设备应支持Auto-MDI特性,也就是线序自适应的功能,设备可通过这个功能可以自动检测连接到自己接口上的网线类型,能够自动进行调节。

而DoIP边缘节点不需具备Auto-MDI特性。

诊断口两种针脚布局定义

目前通行的以太网针脚布局有两种,但具体OEM采用何种应参照具体的整车通讯网络架构进行选择。
以下两种车载以太网诊断口模式都是参考了IEEE 802.3信号规范,基于现有ISO 15031-3/SAE J1962车辆诊断口标准设计。

首先,对于高频信号传输,成对的Tx+/Tx-以及Rx+/Rx-都应尽可能地接近对方,另外,还需要有一个额外的针脚用于表示pin脚类型以及激活以太网控制器。

第一种类型

第一种以太网pin脚布局可用于解决当主机厂已占用1&9针脚的冲突。

下图为当主机厂占用了1&9针脚作为CAN_H与CAN_L时的诊断口端面针脚布局:


这里写图片描述

各pin脚定义如下表:


这里写图片描述

对应诊断口与设备连接时的通信示意图:


这里写图片描述

第二种类型

第二种以太网pin脚布局可用于解决在主机厂已占用3&11针脚的冲突。

下图为当主机厂占用了3&11针脚作为CAN_H与CAN_L时的诊断口端面针脚布局:


这里写图片描述

各pin脚定义如下表:


这里写图片描述

对应诊断口与设备连接时的通信示意图:


这里写图片描述

文章转载于:解读:车辆远程诊断DoIP

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,539评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,911评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,337评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,723评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,795评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,762评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,742评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,508评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,954评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,247评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,404评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,104评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,736评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,352评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,557评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,371评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,292评论 2 352

推荐阅读更多精彩内容

  • 1.这篇文章不是本人原创的,只是个人为了对这部分知识做一个整理和系统的输出而编辑成的,在此郑重地向本文所引用文章的...
    SOMCENT阅读 13,060评论 6 174
  • 个人认为,Goodboy1881先生的TCP /IP 协议详解学习博客系列博客是一部非常精彩的学习笔记,这虽然只是...
    贰零壹柒_fc10阅读 5,053评论 0 8
  • 简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者...
    保川阅读 5,953评论 1 13
  • 简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者...
    JasonShi6306421阅读 1,238评论 0 1
  • LT-0807,2018.03.11翻译,@成都 声明 本文是一篇关于TCP/IP协议组件的RFC,聚焦于一个IP...
    摩诃婆罗多阅读 4,077评论 1 5