DoIP技术

2023-05-16

首发于汽车控制器(ECU)网络诊断技术交流

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,则网关需要完整地接收所有的诊断数据之后,再从应用层开始重新组织适合其他总线传输的数据帧。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DoIP技术 的相关文章

  • 进程调度,一个调度器的自白

    进程调度 xff0c 一个调度器的自白 我是一个进程调度器 我的职责是调度计算机内所有的进程 xff0c 为他们分配 CPU 资源 1 批处理时代 想当初 xff0c 操作系统创造我时 xff0c 只是打算让我用 FCFS 调度算法 xff
  • 厉害了!除了find命令,还有这么多文件查找命令,高手必备!

    目录 1 locate 2 whereis 3 which 4 type 1 locate locate命令其实是 find name 的另一种写法 xff0c 但是要比后者快得多 xff0c 原因在于它不搜索具体目录 xff0c 而是搜索
  • 浅析Linux中的零拷贝技术

    浅析Linux中的零拷贝技术 目录 浅析Linux中的零拷贝技术 引文 什么是零拷贝技术 xff08 zero copy xff09 xff1f 使用 mmap 使用sendfile 使用splice 本文探讨Linux中 主要的几种零拷贝
  • Linux用户管理(Centos7)

    用户管理 用户命令 添加登录用户 xff1a 例 xff1a 添加一个名为harry的用户 xff0c 并使用bash作为登录的shell span class token punctuation span root 64 aws span
  • CPU明明8个核,网卡为啥拼命折腾一号核?

    中断机制 我是CPU一号车间的阿Q xff0c 我又来了 xff01 我们日常的工作就是不断执行代码指令 xff0c 不过这看似简单的工作背后其实也并不轻松 咱不能闷着头啥也不管一个劲的只管执行代码 xff0c 还得和连接在主板上的其他单位
  • 好久没出去面试了,没想到问这么难...

    好久没出去面试了 xff0c 没想到问这么难 1周前 不知道你们多长时间没有参加过面试了 xff0c 最近这段时间的面试 xff0c 真的是一个比一个严格 xff01 我昨天参加了一线大厂的技术面 xff0c 被问到了一些并发相关的问题 x
  • 救命,Linux正在吃掉我的内存!

    内存发现自己的空闲空间越来越少 xff0c 经过一番调查 xff0c 发现罪魁祸首居然是Linux老大 xff01 内存 xff1a Linux老大 xff0c 这也没几个程序在运行 xff0c 可是你为什么老是占用我的内存啊 xff0c
  • 太高效了!玩了这么久的Linux,居然不知道这7个终端快捷键!

    作为 Linux 用户 xff0c 大家肯定在 Linux 终端下敲过无数的命令 有的命令很短 xff0c 比如 xff1a ls cd pwd 之类 xff0c 这种命令大家毫无压力 但是 xff0c 有些命令就比较长了 xff0c 比如
  • 这样处理Shell脚本参数,爽多了!

    这样处理Shell脚本参数 xff0c 爽多了 xff01 在 shell必备基础知识 中说到了一些入口参数的基本使用 xff1a home shouwang test sh para1 para2 para3 0 1 2 3 脚本名 第一
  • 面试官:kill -9 进程杀不掉,怎么办?

    用ps和grep命令寻找僵尸进 ps A ostat ppid pid cmd grep e 39 Zz 39 命令注解 xff1a A 参数列出所有进程 o 自定义输出字段 我们设定显示字段为 stat xff08 状态 xff09 pp
  • GCC为何如此强大? 动态库与静态库

    做软件开发的读者 xff0c 应该对GCC都不会陌生 xff0c 之所以大家都能知道它 xff0c 了解它 xff0c 是因为它有许多特殊 强大的 功能 一 GCC发展史 GNU 项目计划的主要目的是创建一个名叫 GNU s Not Uni
  • 看完这篇操作系统,和面试官扯皮就没问题了。

    解释一下什么是操作系统 操作系统是运行在计算机上最重要的一种软件 xff0c 它管理计算机的资源和进程以及所有的硬件和软件 它为计算机硬件和软件提供了一种中间层 通常情况下 xff0c 计算机上会运行着许多应用程序 xff0c 它们都需要对
  • extern “C”的作用详解

    extern 34 C 34 的主要作用就是为了能够正确实现C 43 43 代码调用其他C语言代码 加上extern 34 C 34 后 xff0c 会指示编译器这部分代码按C语言 xff08 而不是C 43 43 xff09 的方式进行编

随机推荐

  • Linux 进程与程序区别与联系

    一 xff0c 什么是程序 xff1f 程序是完成特定任务的一系列指令集合 二 xff0c 什么是进程 xff1f 从用户的角度来看进程是程序的一次动态执行过程从操作系统的核心来看 xff0c 进程是操作系统分配的内存 CPU时间片等资源的
  • 软件包的管理(Centos7)

    软件包类型 xff1a rpm软件包的管理 xff1a rpm包格式说明 xff1a span class token punctuation span root 64 aws span class token operator span
  • unix环境编程1 环境变量

    预处理 编译 汇编 连接 cpu中有个MMU xff0c 内存处理单元 xff1a 它的作用是 1 处理物理内存与虚拟内存映射的关系 2 设置修改内存访问级别 xff08 0 3级 xff09 内核空间的访问级别为0 用户空间的访问级别为3
  • RSU NTP时间同步配置方式

    RSU NTP同步配时方式 RSU ntp同步配时是基于一个开源工具chrony实现的 xff0c 这个工具集成在RSU里面了 xff0c 网上也能搜索到教程 xff0c 以下是一个参考链接 xff1a Centos使用chrony做时间同
  • Linux回收子进程

    孤儿进程 孤儿进程 父进程先于子进程结束 xff0c 则子进程成为孤儿进程 xff0c 子进程的父进程成为init进程 xff0c 称为init进程领养孤儿进程 include lt stdio h gt include lt unistd
  • C++内存管理(超长,例子很详细,排版很好)

    导语 内存管理是C 43 43 最令人切齿痛恨的问题 xff0c 也是C 43 43 最有争议的问题 xff0c C 43 43 高手从中获得了更好的性能 xff0c 更大的自由 xff0c C 43 43 菜鸟的收获则是一遍一遍的检查代码
  • c++ string 的常用库函数的用法

    目录 一 初始化 二 获取长度 xff08 length size xff09 三 插入 xff08 insert xff09 四 替换 xff08 replace xff09 五 添加 xff08 append xff09 六 赋值 xf
  • linux学习笔记1

    shutdown 一分钟后关机 shutdown c 取消关机命令 shutdown r 重新启动系统 shutdown 43 10 十分钟后关机 ifconfig 查看 配置计算机当前的网卡配置信息 ping 地址 检测目标ip地址的连接
  • 一道爬楼梯的算法题

    一个小孩爬楼梯 xff0c 每次可以爬1个 2个或3个台阶 xff0c 编程求出这个小孩爬完10个台阶的楼梯一共有多少种走法 def main k 61 0 构建函数1 x 43 2 y 43 3 z 61 10 确定x取值范围 for x
  • 面试技术杂ji——需要解决的问题

    需要搞明白的几个问题 xff1a 1 3次握手和4次挥手 2 TCP与UDP的区别 3 如果TCP连接出现问题该如何排查 xff0c 说明排查的思路 连接断开或者出错 xff0c 会返回一个错误码 xff0c errorNo 最后一次系统调
  •  SHELL 脚本学习笔记

    第十四章 SHELL 脚本 终于到 shell 脚本这章了 xff0c 在以前笔者卖了好多关子说 shell 脚本怎么怎么重要 xff0c 确实 shell 脚本在 linux 系统管理员的运维工作中非常非常重要 下面笔者就带你正式进入 s
  • 软件定义汽车 新一代技术发展

    引言 作为一个技术的爱好者 xff0c 搞算法 xff0c 玩芯片 xff0c 攒系统 xff0c 并不只是工作 xff0c 也是自己所追求的很重要的部分 写这个系列 xff0c 是为了梳理这几年的所学 所思 所想 xff0c 从而形成一个
  • 解压缩 tar命令详解

    1 tar命令进行文档的归档和压缩 归档和压缩文件 归档和压缩文件的好处 xff1a 节约硬盘的资源 xff0c 加快文件传输速率 tar命令 作用 xff1a 打包 压缩文件 xff1b tar文件是把几个文件和 xff08 或 xff0
  • 华测导航GPCHC协议ROS驱动包,CGI610、410接收机,NavSatStatus、GPSFix和普通格式

    目录 一 消息类型1 1 sensor msgs NavSatFix1 2 sensor msgs NavSatStatus1 3 gps common GPSFix1 4 sensor msgs Imu 二 部分源码2 1 相关的依赖和库
  • 淡定地撸了一遍AUTOSAR的基本概念

    1 AUTOSAR的解决方案 之前的文章 老板说项目要上AUTOSAR xff0c 我慌得一批 讲到了 xff0c 面对日益复杂的汽车E E架构 xff0c 在欧洲大地上诞生的AUTOSAR组织 xff0c 提出了解决方案 而且做了标准化
  • 图文并茂,一文讲透C语言结构体内存对齐

    面试官 xff1a 你知道C语言的结构体对齐吗 xff1f 应聘者 xff1a 听说过 平时很少关注 面试官 xff1a 好吧 xff0c 那回去等通知吧 C语言结构体对齐问题 xff0c 是面试必备问题 本文 xff0c 除了用图解的方式
  • 老板说项目要上AUTOSAR,我慌得一批

    莫慌 xff0c 淡定 xff0c 先来看看AUTOSAR是个什么鬼 AUTOSAR是什么 AUTOSAR AUTomotive Open System ARchitecture xff0c 中文是 汽车开放系统架构 xff0c 是一家致力
  • AUTOSAR架构的故事(干货)

    1 AUTOSAR架构概览 在新世纪 xff0c 汽车产业蓬勃发展 xff0c 欧洲大陆的车企们 xff0c 瞄准了这是一块大蛋糕 xff0c 于是在2002年成立了一个联盟 xff0c 搞了个叫AUTOSAR的标准 xff0c 以期一统天
  • 基于PREEvision的AUTOSAR Adaptive设计

    导读 xff1a 为适应汽车智能化 网联化等的发展趋势 xff0c 应对汽车E E系统开发面临的高性能处理器的应用 自动驾驶的软件实现 高带宽通信需求 车与外界的互联互通等的挑战 xff0c AUTOSAR组织推出了AUTOSAR Adap
  • DoIP技术

    首发于汽车控制器 ECU 网络诊断技术交流 DoIP技术 xff08 一 xff09 本文是关于DoIP技术的第一篇文章 xff0c 主要进行一些概念介绍 xff0c 具体的细节会在后续的文章中和大家探讨 DoIP是 Diagnostic