DoIP诊断入门

简介

DoIP(Diagnosis over Internet Protocol)是一种用于车辆诊断的网络通信协议。它基于现代互联网技术,允许通过以太网或IP网络进行车辆诊断和通信。

DoIP的背景是现代车辆中使用的电子控制单元(ECU)数量不断增加,以及这些ECU之间需要进行更快速、更可靠的数据交换。传统的诊断方法通常使用专用的物理连接和协议,限制了诊断的速度和灵活性。而DoIP利用了以太网和IP网络的优势,使诊断设备能够通过网络连接到车辆的ECU,实现远程诊断、编程和数据交换。

DoIP的主要特点包括:

  1. 高速通信:使用以太网作为物理层,实现了高速的数据传输,能够满足现代车辆复杂系统的诊断需求。
  2. 网络连接:通过IP网络连接车辆的电子控制单元(ECU),实现远程诊断和编程功能。
  3. 灵活性:支持多种传输协议,如TCP/IP、UDP/IP等,以适应不同的诊断工具和应用场景。
  4. 安全性:提供加密和认证机制,确保诊断通信的安全性和可靠性。


和DoCAN对比,不变的是上层的应用层还是IS14229,变化的是传输层、网络层、当然还有物理层。基于TCP/UDP,IP等协议。DoIP使用以太网作为物理层,通过TCP/IP或UDP/IP等协议在IP网络上进行通信。它采用了客户端-服务器模型,其中诊断工具作为客户端,而车辆的电子控制单元(ECU)则作为服务器。
在通信过程中,诊断工具与车辆的ECU建立连接,并通过DoIP协议进行数据交换。诊断工具发送请求消息,ECU接收并解析这些消息,然后根据请求执行相应的操作。ECU将响应消息发送回诊断工具,以提供所需的诊断信息。
DoIP协议定义了消息格式和数据结构,包括消息头、消息体和校验等字段。它还规定了不同类型的消息,如诊断请求、响应和通知等。通过这些规范,诊断工具和ECU能够准确地进行通信和数据交换。
DoIP的网络通信架构允许多个诊断工具同时与车辆的ECU进行通信,实现了多点诊断和远程访问的能力。它还支持安全性和认证机制,确保通信的保密性和可靠性。
总结而言,DoIP的网络通信协议和架构基于以太网和IP网络,通过客户端-服务器模型实现诊断工具与车辆ECU之间的通信。它定义了消息格式和规范,提供了高效、灵活和安全的诊断通信方式。 DoIP能够进行车辆发现,状态查询,路由激活(含安全认证),诊断数据收发,这些内容将在后续进行详细的展开。

DoIP的报文格式

其中payload的类型有

在DoIP中用到以下三种报文:
(1)UDP_DISCOVERY:端口类型-UDP,端口号-13400
该端口有以下两个应用场景:

被用于诊断设备发送给DoIP节点的车辆信息请求报文和DoIP节点控制报文,此时该端口在报文中被设置为目的端口。
被用于DoIP节点在没有收到请求的时候发送的UDP报文,如车辆声明报文。此时该端口同样被设置为目的端口,源端口可以为该端口,也可以由发送方动态定义。
(2)UDP_TEST_EQUIPMENT_REQUEST:端口类型-UDP,端口号-动态定义(49152-65535)
该端口由外部诊断设备在49152-65535范围内动态定义,用于诊断设备向DoIP节点发送的UDP报文,在报文中作为源端口,报文的目的端口应设置为UDP_DISCOVERY。

当DoIP节点向诊断设备发送响应的时候,报文中的目的端口应设置为UDP_TEST_EQUIPMENT_REQUEST,源端口可以为UDP_DISCOVERY,也可以有DoIP节点动态定义。

(3)TCP_DATA:端口类型-TCP,端口号-13400
该端口用于外部诊断设备和DoIP节点之间的TCP通信,如路由报文和诊断报文。当诊断设备向DoIP节点发送报文时,使用TCP_DATA作为目的端口号;当DoIP节点向诊断设备发送报文时,使用TCP_DATA作为源端口号。

我们看下DoIp Message 格式


例子:0x02 0xFD 0x0001 0x0004 0x? 0x? 0x? 0x?
1、占用1byte,对应版本信息 2012版本是0x02 ,如果是2019版本就是0x03,2019版本在前面的基础上做了加密安全连接功能以及增加了0x07错误响应码。
2、占用1byte,0x02的反码就是0xFD,0x03对应0xFC.
3、payload的类型,占用2个字节。
4、后面payload数据的长度,占用4个字节。up to 4GB,但是一次只能发1500byte。
5、紧跟payload的数据。

网络拓扑

  • DoIP entity(DoIP实体):实现DoIP协议的节点,即DoIP gateway或者DoIP node;
  • DoIP gateway( DoIP网关):实现DoIP协议,并能进行协议转发的节点;
  • DoIP node(DoIP节点):实现DoIP协议,但不能进行协议转发的节点;
  • DoIP edge node(DoIP边缘节点):连接以太网激活线的DoIP节点,此部分和DoIP gateway有什么区别?其实没什么区别,唯一的区别就是多了个使能线的判断,从图中可以看出External test equipment和DoIP edge node gateway之间有一条线叫做Activation line。那么这条线的功能就是对协议栈进行使能作用的,当然External test equipment和DoIP edge node gateway之间不只是Activation line相连的,这个图只是功能示意图,少了很多细节,其实是通过标准的OBD-II接头相连的,其中一个针脚就是Activation line。
  • Network Node(网络节点):连在IP网络上,但不能实现DoIP的节点。

DoIP诊断流程包括:网络连接(Network Connect)、车辆发现(vehicle discovery)、连接设立可以说是路由激活(Connect Estabishment)和诊断(Diagnostic communication)。
其中网络连接(network connection)包括Network(网络节点)、Connector(OBD-II connector 硬件接口)、Activation Line(物理线 激活线 防止干扰 13400-3 2016)和IP Address Assignment(IP地址分配 Auto-IP/DHCP/内网 static IP).
车辆发现(vehicle)包括:vehicle announcement(VIN,EID ,GID、LA和IP)和vehicle Identification(VIN,EID)。 涉及到VIN,EID ,GID、LA和IP。UDP发送,端口13400.
连接设立包括:TCP conection(三次握手 TCP socket ,ALive check)和routing activation.

交互实例

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/73056.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

内网穿透——使用Windows自带的网站程序建立网站

文章目录 1.前言2.Windows网页设置2.1 Windows IIS功能设置2.2 IIS网页访问测试 3. Cpolar内网穿透3.1 下载安装Cpolar3.2 Cpolar云端设置3.3 Cpolar本地设置 4.公网访问测试5.结语 1.前言 在网上各种教程和介绍中,搭建网页都会借助各种软件的帮助,比如…

vite创建打包预览Vue3流程

本文章只是走了一下创建》运行》打包》预览打包效果的流程步骤,不包含创建后配置vue3项目和打包优化等。 1.使用vite创建vue3项目 创建项目命令: npm init vitelatest写完项目名称后回车 键盘上下键选择Vue构建 根据项目需求选择ts还是js 创建完成 根…

【计算机视觉 | 目标检测】arxiv 计算机视觉关于目标检测的学术速递(8 月 8 日论文合集)

文章目录 一、检测相关(13篇)1.1 FSD V2: Improving Fully Sparse 3D Object Detection with Virtual Voxels1.2 Dimensionality Reduction for Improving Out-of-Distribution Detection in Medical Image Segmentation1.3 FeatEnHancer: Enhancing Hierarchical Features for…

如何显示virtualBox中的菜单栏

1.菜单栏未显示,如何显示? 2,按下ctrl(右边)HOME,弹出菜单,如下图所示:选择视图-菜单栏-显示菜单栏 3.OK:完成!

【深度学习 video detect】Towards High Performance Video Object Detection for Mobiles

文章目录 摘要IntroductionRevisiting Video Object Detection BaselinePractice for Mobiles Model Architecture for MobilesLight Flow 摘要 尽管在桌面GPU上取得了视频目标检测的最近成功,但其架构对于移动设备来说仍然过于沉重。目前尚不清楚在非常有限的计算…

福利!百度Workshop实战课,即刻搭建AI原生应用!| IDCF

你是否希望掌握大模型开发的秘诀?你是否渴望得到实践操作的机会?如果你的心中充满热情和期待,那么,WAVE SUMMIT 2023特别设置的Workshop将会是你的知识启航站! 本次Workshop专注于AI开发与大模型应用,邀请…

【Docker】个人镜像文件Dockerfile制作详解

前言 洁洁的个人主页 我就问你有没有发挥! 知行合一,志存高远。 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容器是…

分布式链路追踪概述

分布式链路追踪概述 文章目录 分布式链路追踪概述1.分布式链路追踪概述1.1.什么是 Tracing1.2.为什么需要Distributed Tracing 2.Google Dapper2.1.Dapper的分布式跟踪2.1.1.跟踪树和span2.1.2.Annotation2.1.3.采样率 3.OpenTracing3.1.发展历史3.2.数据模型 4.java探针技术-j…

不同版本Idea部署Maven和Tomcat教学

目录 一、2019版Idea 1.1. Maven配置 1.2. Tomcat配置 二、2023版Idea 2.1 Maven配置 2.2. Tomcat配置 一、2019版Idea 1.1. Maven配置 在这篇 http://t.csdn.cn/oetKq 我已经详细讲述了Maven的下载安装及配置,本篇就直接开始实操 : 1. 首先进入设置搜索Mave…

每天一道leetcode:115. 不同的子序列(动态规划困难)

今日份题目: 给你两个字符串 s 和 t ,统计并返回在 s 的 子序列 中 t 出现的个数。 题目数据保证答案符合 32 位带符号整数范围。 示例1 输入:s "rabbbit", t "rabbit" 输出:3 解释: 如下所…

竞赛项目 深度学习验证码识别 - 机器视觉 python opencv

文章目录 0 前言1 项目简介2 验证码识别步骤2.1 灰度处理&二值化2.2 去除边框2.3 图像降噪2.4 字符切割2.5 识别 3 基于tensorflow的验证码识别3.1 数据集3.2 基于tf的神经网络训练代码 4 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 &#x…

vue3中用watch监听响应式数据的注意点

如果你在vue3中使用reactive()方法创建响应式数据,然后又用torefs()方法将响应式数据解构成单一的ref响应式数据。 此时,如果你想用watch监听解构出来单一的响应式数据,watch不起作用。 此时,你需要用watch监听之前的reactive()…

【金融量化】对企业进行估值的方法有哪些?

估值的方法有哪些? 如何对企业进行估值?有2个方法估算。 1 绝对估值法 它是一种定价模型,用于计算企业的内在价值。 比如说你可以根据公司近N年的现金流情况。借此去预测未来N年的现金流情况。所有的现金流数据都可以在年报上查询到。最后…

《TCP IP网络编程》第十六章

第 16 章 关于 I/O 流分离的其他内容 16.1 分离 I/O 流 「分离 I/O 流」是一种常用表达。有 I/O 工具可区分二者,无论采用哪种方法,都可以认为是分离了 I/O 流。 2次 I/O 流分离: 第一种是第 10 章的「TCP I/O 过程」分离。通 shutdown(soc…

【electron】electron安装过慢和打包报错:Unable to load file:

文章目录 一、安装过慢问题:二、打包报错:Unable to load file: 一、安装过慢问题: 一直处于安装过程 【解决】 #修改npm的配置文件 npm config edit#添加配置 electron_mirrorhttps://cdn.npm.taobao.org/dist/electron/二、打包报错:Unable to load…

在 Windows 上安装 OpenCV – C++ / Python

在这篇博文中,我们将在 Windows 上安装适用于 C 和 Python 的 OpenCV。 C 安装是在自定义安装 exe 文件的帮助下完成的。而Python的安装是通过Anaconda完成的。 在 Windows 上安装 OpenCV – C / Python(opencv官方Wndows上安装openCV- C/ Pthon 的链接…

SpringBoot复习:(43)如何以war包的形式运行SpringBoot程序

一、.pom.xml配置packging为war <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven…

Unity3D高级编程:主程手记学习1

第一章 软件架构 Untiy 分层设计 分层后再分治

zabbix监控mysql数据库、nginx、Tomcat

文章目录 一.zabbix监控mysql数据库1.环境规划2.zabbix-server安装部署&#xff08;192.168.198.17&#xff09;3.zabbix-mysql安装部署&#xff08;192.168.198.15&#xff09;3.1 部署 zabbix 客户端3.2 服务端验证 zabbix-agent2 的连通性&#xff08;192.168.198.17&#x…

人文景区有必要做VR云游吗?如何满足游客出行需求?

VR云游在旅游行业中的应用正在快速增长&#xff0c;为游客带来沉浸式体验的同时&#xff0c;也为文旅景区提供了新的营销方式。很多人说VR全景展示是虚假的&#xff0c;比不上真实的景区触感&#xff0c;人文景区真的有必要做VR云游吗&#xff1f;我的答案是很有必要。 如果你认…