精华内容
下载资源
问答
  • DoIP

    2021-03-17 17:33:41
    UDS诊断作为汽车ECU里的一个服务功能,位于应用层,它的实现需要有网络的支撑,我们把基于CAN总线实现的UDS诊断称为DoCAN,基于Ethernet实现的UDS诊断称为DoIP DoIP DoIP Diagnostic communication over Internet ...

    UDS诊断作为汽车ECU里的一个服务功能,位于应用层,它的实现需要有网络的支撑,我们把基于CAN总线实现的UDS诊断称为DoCAN,基于Ethernet实现的UDS诊断称为DoIP

    DoIP

    DoIP

    Diagnostic communication over Internet Protocol,我们把通过以太网协议,承载UDS数据,实现诊断通信的这种方式称为DoIP

    DoIP的好处有哪些呢?

    相比DoCAN中CAN网络的封闭性,DoIP由于Ethernet的互联互通,可以实现车与车、车与人的远距离诊断通信

    DoIP在传输层以下的规范遵循ISO 13400,而应用层还是遵循ISO 14229不变,这样可以保证UDS诊断在不同车载网络上的可移植性

    在这里插入图片描述

    ISO 13400-2规定了外部测试设备与车辆ECU之间的诊断通信要求,包括:

    • 网络层协议IP
    • 传输层协议TCP/UDP
    • 对网关的要求(网关如何集成到现有网络总)
    • 对测试设备的要求(如何发现车辆并建立通信)

    支持DoIP的车辆网络架构图如下

    在这里插入图片描述

    从这张图上可以看出:汽车内部必须有一个DoIP的总网关,它作为和外部的诊断设备DoIP通信的唯一接口


    网络层要求

    MAC层

    没什么可说的,和标准的以太网物理链路层一样,都是基于IEEE 802.3

    网络层

    和标准以太网网络层一样,但是需要注意的一点是,DoIP在以太网IP层首先IPv6协议,同时兼容IPv4

    传输层

    TCP

    除了遵循TCP协议的标准规范外,DoIP在TCP协议上还应遵守:

    • 支持DoIP的ECU的诊断服务创建的socket必须监听在端口号13400上,外部测试设备通过连接此端口建立连接
    • 每个支持DoIP的ECU必须支持n+1个并发的TCP socket连接,这是为了防止有多个外部测试设备同时和ECU进行诊断通信
    • 外部测试设备创建的socket应选择本地端口,本地端口即系统随机的端口

    TCP连接的过程

    在这里插入图片描述

    UDP

    UDP协议在DoIP中的作用和使用的端口号为:

    在这里插入图片描述

    车辆发现的两种方式:

    • DoIP设备启动后,通过UDP向13400端口广播发送vehicle announcement message,源端口号为13400或随机,里面包含此DoIP设备的基本信息,外部测试设备需要监听13400来接收这些信息
    • 外部测试设备通过UDP广播发送request消息,目标端口号是13400,DoIP设备监听在13400端口,接收此request并响应

    DoIP Protocol

    DoIP报文的结构

    在这里插入图片描述

    DoIP Header

    在这里插入图片描述

    • 其中Inverse Protocol Version是对Protocol Version的依比特取反
    • 而Payload Type则是表示这个DoIP报文的用途

    Payload Type

    在这里插入图片描述
    在这里插入图片描述

    其中最常用的几个:

    • 0x0001和0x0004用于汽车诊断连接建立之前的车辆发现过程
    • 0x0005和0x0006用于tcp socket连接成功后的诊断连接请求与响应
    • 0x8001、0x8002、0x8003分别表示诊断消息、诊断消息正响应、诊断消息负响应
    • 0x0007和0x0008用于检查建立的诊断连接是否仍然在使用中,如果不再使用,则关闭socket

    从中可以看出DoIP诊断通信前需要做的事:

    • 车辆发现,有两种方式
    • DoIP设备启动后,首先通过UDP广播的形式把一条DoIP报文(vehicle announcement message,Payload Type为0x0004)发给网络上的所有的其他节点,其中就包括诊断仪,目的端口是13400,其中这条消息携带了DoIP设备的DoIP版本、VIN、logical address等信息,这条信息会发送三次,而之前监听在13400端口的诊断仪接收到这条信息,就知道了DoIP设备的基本信息
    • 如果诊断仪没有收到,还有一种办法,就是诊断仪这边主动请求,通过UDP广播的形式,主动发一条DoIP request消息(Payload Type为0x0001),目的端口号是13400,而之前启动后就一直监听在13400的DoIP设备,接收到这条消息后,就会回复一条携带自己信息的response给诊断仪
    • 建立TCP连接

    诊断仪通过创建tcp socket,然后调用connect方法向DoIP设备发起TCP连接请求(目的ip是DoIP设备ip,目的端口号是13400),而DoIP设备在启动前已经通过创建tcp socket监听在13400端口,接收到tcp连接请求后就会完成三次握手

    • 建立诊断连接

    在TCP连接建立后,诊断仪还需要发送一条Routing activation request的DoIP报文给DoIP设备,DoIP设备收到后会回复一条Routing activation response的DoIP报文,此时诊断连接建立,双方可以诊断通信


    网关

    汽车网络中由于同时存在多种网络,而造成不同网络上的诊断功能无法互相通信,这时候就需要网关的作用

    比如说:
    对于DoCAN和DoIP,网关起到的作用就是接收、解封装、封装、发送
    DoCAN报文需要发给DoIP设备,网关会先把DoCAN的CAN网络头部剥离,留下UDS数据,然后再用这个UDS数据封装一条完整的DoIP报文,发出去
    DoIP报文需要发给DoCAN设备,网关会先把DoIP的所有头部剥离,留下UDS数据,然后用这个UDS数据封装一条完整的DoCAN报文,发出去


    展开全文
  • DoIP专栏 - DoIP概述

    千次阅读 2020-04-19 16:59:36
    与传统车载诊断相比,所谓DoIP就是通过以太网通信的形式对UDS协议数据进行传输,即Diagnostic communication over Internet Protocol。其本身也是一种协议,规范于ISO13400标准。 因DoIP可以传输大量数据,以及响应...

    一. 前言

    传统的车载领域诊断技术是通过CAN/LIN/Flexray/MOST的总线方式,对UDS协议数据进行传输的技术。
    与传统车载诊断相比,所谓DoIP就是通过以太网通信的形式对UDS协议数据进行传输,即Diagnostic communication over Internet Protocol。其本身也是一种协议,规范于ISO13400标准。
    因DoIP可以传输大量数据,以及响应速度快,且可以通过以太网进行远程诊断,因此DoIP成为了车载诊断的必然趋势。

    二. DoIP概述

    DoIP协议的精髓内容在 【Part 2: Transport protocol and network layer services】,大家可以把主要精力用在分析这个Part上。

    而Part1 主要介绍了应用场景,Part3和Part4主要介绍了数据链路层及物理层的相关内容,Part5涉及到的是测试方面内容。

    那么关于Part2我打算分为几个小节详细的进行介绍,而这篇主要介绍下概述性的东西,让大家对DoIP协议有个初步的认识。

    2.1 为什么要用DoIP?

    前面前言也简单介绍过了DoIP的一些优势,那么仅仅是认为有这些优势,就可以马上在车载领域应用起来吗?

    当然不是。首先汽车系统的整体框架要能够支持DoIP,正因为车载以太网的快速发展,相较于传统的车载系统,目前的车载系统的整体框架都会加入一层DoIP协议层,在TCP/IP之上。并且为了更好的配合OBD诊断,远程诊断,FOTA等等技术,对整体的车载架构进行了调整,利用swich将MPU,MCU,其它以太网ECU统统通过以太网进行连接,并对外网与内网进行隔离。

    那么既然有一把宝剑握在手中,还不用吗?当然要考虑安全性(安全气囊)和成本问题(车门控制)等,传统的总线结构还是会存在。另外挂在在MCU上的ECU,通常是通过CAN进行控制的。那么这类CAN控制的ECU会跟DoIP挂上钩吗?当然会,这时就会涉及到另一个模块DoIP转DoCAN,后续会介绍相关内容。

    2.2 DoIP能做什么?

    DoIP仅仅是UDS的载体吗?如果这么想的话,那么DoIP过于简单了。虽然协议书上内容不多,但是它也有自己的一些逻辑,不可能说在TCP/IP之上加了一层封装就完成了自己的任务,这样的话安全性就没有保证了,毕竟车载以太网通过网络能够将车内与车外进行网络的连接,而DoIP又是诊断的入口,这个门口如果不好好看住,会存在安全性的问题的。

    简单的说,DoIP能够进行车辆发现,状态查询,路由激活(含安全认证),诊断数据收发,这些内容将在后续进行详细的展开。

    有了DoIP,那么UDS的数据传输就可以搭载在DoIP之上,并在DoIP前序逻辑都OK的情况下,进行UDS的传输。当然DoIP之上也可以不搭载UDS数据,这属于客户定制,能够满足以太网传输的一些其它特殊需求。

    2.3 DoIP实际开发时的注意点

    问:DoIP用什么语言进行开发

    答:C语言,C语言的可移植性好,并且作为协议栈可以做到足够小,性能也比较好

    问:DoIP开发要掌握哪些知识

    答:C语言功底,Socket编程相关技术,DoIP自身协议,多线程,锁机制,数据结构等

    问:对协议的理解不同怎么办

    答:DoIP的ISO标准书上有些内容的介绍确实比较笼统,仁者见仁、智者见智,这里确实需要花精力对协议进行深扣。客户的需求当然是最重要的,但是协议的理解不能有太大的偏差,需要有经验的人进行方向的把握,以实际的应用为主。

    *其它问答,可以通过留言方式进行

    三. 总结

    近几年车企处在寒冬期,而且疫情可能也打乱了一些人的职业规划,不过我相信有能力的人、坚持不懈努力的人,是不会慌了阵脚的。

    这篇只是个DoIP的开门见山篇,后续会详细进行讲解,尽请期待。大家共同努力!

    展开全文
  • DoIP专栏 - DoIP协议组成

    千次阅读 2020-04-21 11:01:26
    DoIP名字可以看出,该协议是在TCP/IP之上的,那么要想接收DoIP协议的报文,协议书规定需要监听一个专门分配给 DoIP协议栈使用的端口号即13400,UDP,TCP都要监听此接受端口,而发送端口是在一个范围内的随机值[4.....

    一. 概述


    该小节主要介绍DoIP报文的接收方法及其协议格式,对协议格式的组成有所了解后,后续章节会对协议的解析及异常处理进行讲解。

    二. 正文


    2.1 端口号
    从DoIP名字可以看出,该协议是在TCP/IP之上的,那么要想接收DoIP协议的报文,协议书规定需要监听一个专门分配给
    DoIP协议栈使用的端口号即13400,UDP,TCP都要监听此接受端口,而发送端口是在一个范围内的随机值[49152~65535],
    当然代码中协议栈要对对端的发送端口进行缓存,用于回送数据。

    指定了端口号,客户端和服务端可以在此端口上进行收发数据。那么对该端口收到的数据是否真的是DoIP报文,就行对该网络报文进行解析。
    (有可能是网络攻击,有可能是其它应用恰好使用了该端口号)
    对收到的报文进行解析,就涉及到DoIP协议的构成,只有符合该写一点规范才认为是合法有效的DoIP报文。

    2.2 协议格式
    DoIP报文由协议头(header)+ 负载(payload)组成
    协议头[8 byte]由下面四个字段组成
    Protocol version [1 byte]
    Inverse protocol version [1 byte]
    Payload type [2 byte]
    Payload length [4 byte]
    负载[N byte] 根据实际的payload type,负载数据会不同

    2.3 Protocol version与Inverse protocol version
    通常Protocol version为0x02,目前0x02以上的值目前是reserved状态
    Inverse protocol version是Protocol version的取反的值,此例0x02去反后为0xFD
    协议书上特别说明了Protocol version可以为0xFF,设这个值的作用是,当客户端和服务端的协议版本不匹配,
    可以设置此值绕过协议头版本不匹配而拒绝请求的case。

    2.4 Payload type
    payload type可以代表DoIP协议栈所能支持的功能,列举如下(特意分开了Server支持的type及Client支持的type)

                                            DoIP Server

                                            DoIP Client

    如上分开描述,是因为在代码实现上,可以将逻辑拆分。
    即Server端只关心自己支持的payload type,客户端只关心自己支持的payload type,不支持的可以忽视掉。
    有利于模块拆分及组合,有利于实现上一节所讲个各个角色,将来通过配置文件的配置,来表示不同的角色。

    2.5 Payload length
    payload length这里分配了4字节,也就是所DoIP报文最大传输4 GB /4294967295 bytes,即0xFFFFFFFF。
    那么实际情况真的会传输这么大数据吗?我是没见过...
    它只是个允许的范围,通常来说通过DoIP进行诊断也就几字节到几十字节,而升级通常ECU的升级包也就几MB。
    所以4 GB只是个理论上限。

    那么另一个问题,payload length有什么用?仅仅的告诉后续payload有多长吗?
    其实该值可以做长度的有效性验证,因为除了诊断数据,其它payload type都是有固定长度的。
    还可以做什么?其实做开发时还要考虑遇到如下情况该怎么处理
    1. 数据粘连
    2. 数据截断
    3. 异常的超大size
    4. 超过协议栈可以处理size
    等等,如果遇到过关于payload length其它一些异常情况,可以进行交流

    2.6 Payload
    这里的负载是指的是DoIP协议的负载,当然当Payload type为诊断类型时,其负载除了DoIP自身的内容,
    还包含了UDS数据,供上层UDS模块进行进一步的解析。
    因为每个Payload type负载都不同,这里不做解释,在后续功能章节,进行详细的介绍

    二. 结语


    以上针对协议的组成部分进行介绍,如有疑问可以进行留言,后续将开始讲解具体的功能部分。

    展开全文
  • DoIP简介

    2020-07-28 10:09:26
    DoIP简介 本文是关于DoIP技术的第一篇文章,主要进行一些概念介绍,具体的细节会在后续的文章中和大家探讨。 DoIP是Diagnostic communication over Internet Protocol 的简称,顾名思义,就是通过网络协议进行诊断...

    DoIP技术(一)

    DoIP简介

    本文是关于DoIP技术的第一篇文章,主要进行一些概念介绍,具体的细节会在后续的文章中和大家探讨。

    DoIP是Diagnostic communication over Internet Protocol 的简称,顾名思义,就是通过网络协议进行诊断通信。这里的网络协议,指的就是OSI七层模型中,通用计算机网络所使用的从层4到层1这四层协议。

    DoIP由ISO13400 系列标准定义,作为实现基于Ethernet的诊断通信的方案。本标准的各部分内容如下:

    — Part 1: General information and use case defnition

    — 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 specifcation

    我这里只有前四个,不知道第五个测试标准是否已经定义完了。

    DoIP的优势有以下几点:

    • 更快的诊断响应
    • 传输大量数据的时间更短(用于软件刷新和参数下载)
    • 使得远程的直接诊断成为可能

    ISO13400定义的DoIP诊断中各层次所使用的标准号

    上图展示了DoIP通信完整协议栈所使用的标准号。

    ISO13400-1处于应用层(层7)之上,是对一些通用信息、应用场景的描述。

    应用层基于ISO14229-1和ISO14229-5,前者是UDS的完整定义,后者是UDS通过网络协议传输的实现。

    会话层(层5),ISO14229-2对于所有的诊断通信都是一样的,目的是为上层提供统一的接口,使上层应用不需要随着底层通信技术的变化而改变。

    传输层和网络层(层4和层3)由ISO13400-2定义,ISO13400-2中规定了DoIP通信在传输层中使用TCP和UDP协议,在网络层中使用IPv4或IPv6。此标准中还定义了专属于DoIP通信的信息内容,这些信息和上层的诊断命令共同构成了传给TCP或UDP协议的SDU。

    ISO13400-2定义了DoIP诊断通信对Ethernet数据链路层(层2)和物理层(层1)的要求,比如,规定DoIP通信在这两层上支持100BASE-TX (100 Mbit/s Ethernet) 和10BASE-T (10 Mbit/s Ethernet) 两种方案。

     

    DoIP数据的基本结构

    DoIP数据映射到以太网帧中

    DoIP数据作为SDU层层向下传递,直至构成完整的以太网帧,通过物理层的介质发送出去。DoIP的数据内容分为5个部分:

    1. 所使用的ISO13400版本信息,占用1个字节
    2. 所使用的ISO13400版本信息依比特取反,占用1个字节
    3. 数据类型,占用2个字节(标识本帧数据的用途,比如用于上报或请求车辆信息、诊断命令、诊断逻辑链接激活、alive check等)
    4. 数据长度,占用4个字节(标识后面的数据长度)
    5. 诊断数据,长度为0至2的32次方减1,这里的数据又分为sender address、receiver address、 应用数据这三部分。

    应用场景

    ISO13400中定义了DoIP的4种使用场景,如下四幅图所示:

    点对点直连

    多台外部测试设备分别和多台汽车在局域网内通过交换机点对点连接

    一台外部测试设备跨越本地网络与多台车辆连接

    外部测试设备的多个应用层实体(在一台硬件或多台硬件上)与单个车辆连接

     

    路由机制

    根据隐藏在Gateway后面的控制器的诊断类型的不同(比如有的通过DoIP,有的通DoCAN等),DoIP的路由机制可以分为两种,分别是CutThrough(以太网对以太网) 和Store&Forward-Routing (以太网对CAN, CAN FD 和LIN等)。

    我用PPT粗略地画了两个示意图展示一下:

    CutThrough

    Store&Forward-Routing

    原理很简单,当网关后面被诊断的ECU也支持DoIP时,则网关每收到一个以太网帧,只需要更改以太网帧包头中的地址信息即可转发出去。而如果网关后面被诊断的ECU不支持Ethernet,则网关需要完整地接收所有的诊断数据之后,再从应用层开始重新组织适合其他总线传输的数据帧。

    展开全文
  • DoIP技术

    2020-09-02 14:39:09
    本文是关于DoIP技术的第一篇文章,主要进行一些概念介绍,具体的细节会在后续的文章中和大家探讨。 DoIP是Diagnostic communication over Internet Protocol 的简称,顾名思义,就是通过网络协议进行诊断通信。这里...
  • DoIP专栏 - DoIP网络拓扑

    千次阅读 2020-04-20 15:32:24
    图中的Network node可以忽略不看,可当做支持以太网连接的某个设备节点,但是不支持DoIP协议。 那么大家可以对冠以DoIP前缀的节点组成的网络进行分析。 从图中也可以看出有这么几个角色,该网络拓扑也是由...
  • 本文继DoIP技术(一)一文之后继续分享与DoIP技术相关的一些内容。首先来介绍一下支持ethernet及DoIP的车载网络架构。带ethernet节点的车载网络架构示意图上面这张图简要描述了带ethernet节点的车载网络和外部网络中的...
  • DoIP协议(Diagnostic On IP---ISO 13400)定义将IP技术运用到车载网络诊断范畴的通信规则。其中包括两层含义:1、 将IP技术应用到车载网络中,需满足车规需求;2、 在诊断范畴,DoIP协议定义了从物理层(Physical ...
  • 本文是关于DoIP技术的第一篇文章,主要进行一些概念介绍,具体的细节会在后续的文章中和大家探讨。DoIP是Diagnostic communication over Internet Protocol 的简称,顾名思义,就是通过网络协议进行诊断通信。这里的...
  • DoIP和UDS协议

    2020-09-24 11:33:03
    ISO13400-1~和ISO14229-1~7系列协议,含最新到2016年的版本,不仅包括: ISO 14229-1-2013 UDS Specification and requirements....ISO 13400-2-2012 DoIP Part 2 Transport protocol and Network layer services.pdf
  • AVB和DoIP协议

    2018-11-19 17:00:06
    我自己收集和汇总的有关AVB和DOIP相关的行业资料,包含IEEE 1722和NXP芯片早期对于AVB的一些设计思想
  • 远程诊断DoIP

    2018-11-27 19:07:00
    目录 远程诊断DoIP Part 1: General information and use case definition DoIP诊断网络架构 诊断连接场景 DoIP之通信建立 DoIP中的一些定义 DoIP中TCP原理及通信...
  • DOIP介绍/入门手册

    2020-08-04 11:12:46
    DoIP是Diagnostic communication over Internet Protocol 的简称,顾名思义,就是通过网络协议进行诊断通信。这里的网络协议,指的就是OSI七层模型中,通用计算机网络所使用的从层4到层1这四层协议。本文是基于ISO...
  • DoIP专栏 - 目录

    2020-04-20 15:29:26
    目录:DoIP专栏 - DoIP概述 DoIP专栏 - DoIP网络拓扑 DoIP专栏 - DoIP协议组成 DoIP专栏 - DoIP功能之车辆发现 DoIP专栏 - DoIP功能之Power Mode及Entity Status DoIP专栏 - DoIP功能之路由激活 DoIP专栏 - DoIP功能...
  • DoIP的优势有以下几点:更快的诊断响应传输大量数据的时间更短(用于软件刷新和参数下载)使得远程的直接诊断成为可能ISO13400定义的DoIP诊断中各层次所使用的标准号上图展示了DoIP通信完整协议栈所使用的标准号。...
  • 车载DoIP协议栈13400规范
  • ISO 13400-DoIP

    2018-01-09 22:03:28
    BS ISO 13400-1-2011 BS ISO 13400-2-2012 BS ISO 13400-3-2011 ISO13400-4-2016基于以太网诊断系统规范 DoIP
  • DoIP了解一下?

    2020-07-21 17:34:14
    DoIP entity(DoIP实体):实现DoIP协议的节点,即DoIP gateway或者DoIP node; DoIP gateway( DoIP网关):实现DoIP协议,并能进行协议转发的节点; DoIP node(DoIP节点):实现DoIP协议,但不能进行协议转发的...
  • (DoIP) —Part 1:General information and use case definition (DoIP) —Part 2: Transport protocol and network layer services (DoIP) —Part 3:Wiredvehicleinterfacebasedon IEEE802.3 (DoIP)—Part4:Ethernet...
  • What makes VXDIAG VCX DoIP for JLR batter than other aftermarket JLR DoIP diagnostic tools? Check detail table comparison below: In Summary: VXDIAG JLR DoIP is possible to add multi car brand software...
  • DOIP(以太网)协议.zip

    2021-01-23 16:07:01
    DOIP协议,随着汽车电子智能化的发展,车载以太网逐渐在汽车上使用,doip是基于以太网的诊断协议
  • DoIP wireshark协议分析插件,wireshark版本需2.6.0以上,2.6.5版本测试有效
  • DoIP是车载以太网通讯的重要部分,本文主要介绍ISO13400相关链路层、网络层、传输层相关协议; 一、相关协议标准 二、DoIP应用场景(ISO13400-1相关): 三、网络连接方式: 四、物理层和链路层支持(ISO13400-3...
  • 车载以太网DoIP规范

    千次阅读 2020-01-11 10:56:18
    车载以太网DoIP规范
  • 行,緊.IndustryFocus智能技术基于DoIP协议的汽车诊断系统开发安康*,2,韩光省2,(1.河北工业大学,天津300310#韩可强2,朱永健*1,郭灿12.中国汽车技术研究中心,天津300300)摘要:车联网时代的到来,推动着车载以太网...
  • DoIP协议源码车载以太网诊断协议ISO13400协议c源码doip协议源码车载以太网诊断协议iso13400协议c源码基于以太网的诊断协议doip,diagnostic over internet protocol (doip) stack,符合iso13400规范的全部内容,德国...
  • 关于DoIP 协议的理解

    千次阅读 2020-02-04 20:47:42
    根据ISO-13400的要求,DoIP通信在物理层支持100BASE-TX (100 Mbit/s Ethernet) 和10BASE-T (10 Mbit/s Ethernet) 两种制式 传输层与网络层 DoIP设备的MAC地址也符合IEEE 802.3 的要求。ISO-13400规定,DoIP通信在...

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 148
精华内容 59
关键字:

doip