车载以太网 - DoIP报文类型 - 02

news2024/9/22 9:53:31

        上次我们聊了什么是DoIP,以及DoIP在车载网络以及车载ECU中的作用,我们应该有大概的了解,以及它的极大地作用,今天我们开始全面的去了解它,毕竟只有等我们了解它以后,才能更好的应用。今天要聊的第一个内容呢就DoIP所包含的报文类型有哪些?如果读文章的朋友做过CAN/CANFD的话,我们知道CAN报文就有通信报文、诊断报文;而在车载以太网中,为了进一步的细分各个场景下的使用,因此会对每一个块的报文都有很详细的划分,不仅仅是在DoIP中,在SomeIP中也是划分了多类型的报文;好了废话不多说,今天主要聊下DoIP的报文类型。

注意:如果看文章的时候有些缩写词不懂,可以查看DoIP相关的缩写词:车载以太网 - 诊断协议常用缩写_车载网络测试的博客-CSDN博客

02、DoIP的报文类型

Payload
type
value
Payload type nameSpecified
in
subclause
Support
(DoIP
gateways)
Support
(DoIP
nodes)
Port and protocol
0x0000Generic DoIP header
negative acknowledge
7.1.2mandatorymandatoryUDP_DISCOVERY
UDP_TEST_EQUIPMENT_REQUEST
TCP_DATA
0x0001Vehicle identification
request message
7.1.4mandatorymandatoryUDP_DISCOVERY
0x0002Vehicle identification
request message
with EID
7.1.4optionaloptionalUDP_DISCOVERY
0x0003Vehicle identification
request message
with VIN
7.1.4mandatorymandatoryUDP_DISCOVERY
0x0004Vehicle
announcement
message/vehicle
identification
response message
7.1.4mandatorymandatoryUDP_DISCOVERY
UDP_TEST_EQUIPMENT_REQUEST
0x0005Routing activation
request
7.1.5mandatorymandatoryTCP_DATA
0x0006Routing activation
response
7.1.5mandatorymandatoryTCP_DATA
0x0007Alive check request7.1.7mandatorymandatoryTCP_DATA
0x0008Alive check response7.1.7mandatorymandatoryTCP_DATA
0x0009
to
0x4000
Reserved by this part of ISO 13400
0x4001DoIP entity status
request
7.1.9optionaloptionalUDP_DISCOVERY
0x4002DoIP entity status
response
7.1.9optionaloptionalUDP_TEST_EQUIPMENT_REQUEST
0x4003Diagnostic power
mode information
request
7.1.8mandatorymandatoryUDP_DISCOVERY
0x4004Diagnostic power
mode information
response
7.1.8mandatorymandatoryUDP_TEST_EQUIPMENT_REQUEST
0x4005
to
0x8000
Reserved by this part of ISO 13400
0x8001Diagnostic message7.1.6mandatorymandatoryTCP_DATA
0x8002Diagnostic
message positive
acknowledgement
7.1.6mandatorymandatoryTCP_DATA
0x8003Diagnostic
message negative
acknowledgement
7.1.6mandatorymandatoryTCP_DATA
0x8004
to
0xEFFF
Reserved by this part of ISO 13400
0xF000
to
0xFFFF
Reserved for
manufacturer-specific
use
optionaloptional

1、0x0000:通用DoIP标头否定确认,这个类型为ISO13400强制必须实现的报文类型,同时支持UDP和TCP协议

2、0x0001:车辆信息请求,这个用于请求当前车辆的VIN码、EID码、GID码等信息,无需任何payload内容,也是13400协议强制要求实现的,仅支持UDP协议,不支持TCP协议

3、0x0002:带有EID的车辆信息请求,这个功能跟0x0001 payload type有点类似,都是请求车辆的VIN码、EID码、GID码等信息,但是他需要带上EID信息才能获取到,如果没有EID信息则无法获取车辆的这些信息,为可选择实现,仅支持UDP协议,不支持TCP协议

4、0x0003:带有VIN的车辆信息请求,这个功能跟0x0001、0x0002 payload type有点类似,都是请求车辆的VIN码、EID码、GID码等信息,但是他需要带上VIN信息才能获取到,如果没有VIN信息则无法获取车辆的这些信息,也是13400协议强制要求实现的,仅支持UDP协议,不支持TCP协议

5、0x0004:车辆公告消息/车辆识别响应消息,这个类型其实就是对于0x0001、0x0002、0x0003等信息的响应类型,当出现上面3种类型的请求后,DUT会以0x0004类型为应答,返回给Tester带有车辆的VIN码、EID码、GID码等信息,为13400强制要求实现的。仅支持UDP协议,不支持TCP协议

6、0x0005:路由激活请求,这个类型会非常重要,在ECU中想要对其进行诊断,前置步骤必须实现路由激活,而0x0005就是路由激活请求,在激活请求发布后,DUT返回激活应答,才可以进行正常的DoIP诊断通信;为13400强制实现内容。仅支持TCP协议

7、0x0006:路由激活应答,这个类型是对路由激活请求的应答,可以把它们类比成CAN诊断中的一对诊断,比如10 01,50 01;这是一对肯定的诊断请求和应答。不过在DoIP中,他有更多的类型和含义;包含各种激活成功或者失败的原因,都会返回给Tester。当然也是13400强制实现内容。仅支持TCP协议

8、0x0007&0x0008:已激活的Socket是否在使用的请求和应答,这个类型是Tester检查我们之前激活的Socket是否依然在使用,DUT通过0x0008类型返回应答结果。虽然在测试中不常用,但依然是一个重要的功能,大家注意。为13400强制实现内容。仅支持TCP协议

9、0x4001:DoIP实体状态请求,这个主要用于检查当前网关状态响应值的请求,Tester获取响应值为多少是否与规范一致等信息检查。选择性实现,仅支持UDP协议

10、0x4002:DoIP实体状态应答,跟DoIP实体状态请求构成一对交互,DUT返回当前实体的状态信息给Tester,选择性实现,仅支持UDP协议

11、0x4003:DoIP电源状态信息请求,DoIP部分存在电源激活线,这里用于读取DoIP电源状态的信息的获取请求。13400强制实现内容,不过部分主机厂以及协议栈并不一定支持,仅支持UDP协议

12、0x4004:DoIP电源状态信息应答,返回当前DUT的DoIP激活线的状态,与0x4003构成一对。13400强制实现内容,不过部分主机厂以及协议栈并不一定支持,仅支持UDP协议

13、0x8001:DoIP诊断信息,我们常见的ISO 14229中定义的服务都是通过0x8001类型进行发送和应答,实现Tester和DUT、ECU与ECU之间的诊断信息交互,方便不同的设备之间的信息交流。02 FD 80 01 00 00 00 06  ** ** ** **(源逻辑地址+目的逻辑地址)10 01

02 FD 80 01 00 00 00 0A  ** ** ** **(源逻辑地址+目的逻辑地址)50 01 ** ** ** **

这个为13400强制实现内容,仅支持TCP协议

14、0x8002:DoIP诊断信息的肯定应答,当我们的诊断请求信息没有问题后,以太网协议栈会返回肯定应答类型0x8002然后在使用0x8001将诊断应答内容返回。如果14229的诊断内容有问题,则通过不同的否定应答码来识别。仅支持TCP协议

15、0x8003:DoIP诊断信息的否定应答,当我们的诊断请求信息有问题后,这里一般是DoIP协议问题,DUT会返回0x8003,然后DUT将不在处理后面的诊断信息(例如10 01),直接在这里就是否定应答了。仅支持TCP协议。

        今天的内容有点多,感谢大家全部看完,这里主要作为初步了解DoIP负载类型有哪些,给大家有个初步的印象,为下一步进一步了解DoIP完整内容做准备,大家如果想要学习的话要用心去记忆,如果仅做了解大家着重了解下0x8001、0x8002、0x8003和0x0005、0x0006这几个负载类型。       

        下篇介绍DoIP协议处理的报文头处理逻辑。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

沃太能源冲刺上市:亿纬锂能、高瓴均为股东,收入主要来自境外

12月30日,沃太能源股份有限公司(下称“沃太能源”)在上海证券交易所递交招股书,准备在科创板上市。本次冲刺科创板上市,沃太能源计划募资10亿元,中信证券为其保荐机构。 按照计划,沃太能源将其中…

网络编程 udp/ip协议 c/s模型

目录 1.概念​编辑 2.代码解析 1.recvfrom函数 2.sendto函数 3.内核泄露问题 整体代码 1.概念 2.代码解析 1.recvfrom函数 该函数接收数据报,并存储源地址,即得到当前服务器接收到的消息,并且存储在参数2,该函数是阻塞的&#x…

c++构造和析构

1.构造函数 1.构造函数特性 构造函数名字和类名相同构造函数没有返回值(void有返回值,返回值为空)不写构造函数,每一个类中都存在默认的构造函数,默认的构造函数是没有参数的default显示使用默认的构造函数delete删掉默认函数当我们自己写了…

MM采购订单及发票相关后台表介绍(图解)

EKPO 采购凭证项目 EKKO 采购凭证抬头 EORD 采购货源清单 EINA 采购信息记录 - 一般数据 EINE 采购信息记录 - 采购组织数据 EKET 计划协议计划行 EKES 供应商确认 EKKN 采购凭证中的帐户设置 EKBE 采购凭证历史 EKBZ 每个采购凭证的历史:交货费用 RBKP 凭…

在wsl下开发T113的主线linux(2)-编译awboot

意外发现有awboot能够代替uboot直接引导内核,体验了一下果断选择awboot,因为足够简洁,编译大小只有32k,和uboot接近1M的体量相比,简直是小而美,启动速度也比uboot快上不少,也能同时支持sd卡&…

DoIP协议从入门到精通系列——车载网络拓扑

因特网协议(IP-Internet protocol)是互联网规范中的基本协议,它仅是支持互联网正常运转“TCP/IP”协议簇之一。UDP协议也是TCP/IP协议体系中的内容(因为名称中只含有TCP/IP名称,往往会忽略UDP)。以太网引入到车载网络后,汽车也会慢慢进入车联网时代(或者物联网,万物互…

aws codepipeline 在pipeline构建过程中使用变量

参考资料 Action structure reference codebuild构建环境中的环境变量 codepipeline中的变量 在codePipeline中使用变量 对于codepipeline来说,管道结构中的每个操作都有自身的结构和定义,本文主要讨论不同资源的输出变量。 基本概念 变量允许用户…

数据完整性(一)

目录 数据完整性: 什么是数据完整性: 数据完整性的类型 1:实体完整性 2:域完整性: 3、引用完整性: 4、自定义完整性: 完整性约束: 数据完整性的实现方式: 实体完整性&a…

抽象⼯⼚模式

抽象⼯⼚模式 1.抽象工厂模式介绍 抽象⼯⼚模式与⼯⼚⽅法模式虽然主要意图都是为了解决,接⼝选择问题。但在实现上,抽象⼯⼚是⼀ 个中⼼⼯⼚,创建其他⼯⼚的模式。 2.案例场景模拟 2.1场景简述 很多时候初期业务的蛮荒发展,也…

NLP中隐性语义分析及奇异值分解(SVD)-学习笔记

目录 1、隐性语义分析 2、奇异值分解 2.1 左奇异向量U 2.2 奇异值向量S 2.3 右奇异值向量V^T 2.4 SVD矩阵的方向 2.5 主题约简 1、隐性语义分析 隐形语义分析基于最古老和最常用的降维技术–奇异值分解(SVD)。SVD将一个矩阵分解成3个方阵,其中一个是对角矩阵…

网络类型实验报告

实验拓扑 实验要求 1.R2为ISP,其上只能配置IP地址 2.R1-R2之间为HDLC封装 3.R2-R3之间为ppp封装,pap认证,R2为主认证方 4.R2-R4之间为PPP封装,chap认证,R2为主认证方 5.R1、R2、R3构建MGRE环境,仅R1P地址固…

【C++】-- C++11基础常用知识点

目录 C11简介 统一的列表初始化 {}初始化 std::initializer_list std::initializer_list使用场景: 声明 auto decltype nullptr 范围for循环 STL中一些变化 新容器 array容器 forward_list容器 容器中的一些新方法 C11简介 在…

TDK | RoboKit1-DK 开发平台为实现未来机器人的多样性扫清障碍

机器人行业正在飞速发展,新技术亦层出不穷。TDK 现推出了 TDK RoboKit1-DK 机器人开发平台,该平台配备了机器人精确操作所必需的各种传感器,有助于在各种机器人开发中提高效率和性能。 在技术快速进步与成长的环境中,机器人开发所…

计算机组成原理实验——二、寄存器实验

一、实验目的 1.掌握寄存器堆的工作原理和接口。 2.掌握寄存器堆的实现方法。 3.掌握寄存器堆在微处理器中承担的功能。 二.实验内容 设计一32*32bit 的寄存器文件,即32 个 32 位的寄存器文件(寄存器组) –具备两组读端口及一组…

【王道操作系统】2.2.1 处理机调度的概念与层次

处理机调度的概念与层次 文章目录处理机调度的概念与层次1.调度的基本概念2.调度的三个层次2.1 高级调度(作业调度)2.2 中级调度(内存调度)2.3 进程的挂起状态与七状态模型2.4 低级调度(进程调度)2.5 三层调度的联系和对比1.调度的基本概念 2.调度的三个层次 2.1 高级调度(作业…

GroundTrue和里程计输出的位姿的参考坐标系不一致的情况

这里写目录标题前言数据集描述使用TF工具包获取使用Eigen库计算置换输出误差对比没做转换之前转换之后前言 最近遇到一个数据集的ground true参考坐标和vSLAM输出的位姿的参考坐标不一样的问题,记录一下。 在之前参加的一个PRCV 2022的多传感器融合SLAM挑战赛中也同…

MATLAB读取tif格式图像

tif格式数据本质上就是带有地理信息的矩阵数据。 geotiffread函数 MATLAB帮助-geotiffread 语法Syntax: [A,R] geotiffread(filename) [X,cmap,R] geotiffread(filename) [A,refmat,bbox] geotiffread(filename) [X,cmap,refmat,bbox] geotiffread(filenam…

Symbol详解

Symbol Symbol是es6引入的一个新的原始数据类型,是一个独一无二的值。 目前为止,js的数据类型有以下几种: 数据类型说明undefinedundefinednullnullboolean布尔值string字符串number数字Bigint大整数Object对象SymbolSymbol Symbol通过Symb…

[go学习笔记.第十八章.数据结构] 2.约瑟夫问题,排序,栈,递归,哈希表,二叉树的三种遍历方式

一.约瑟夫问题 josephu 问题: 设编号为1, 2 &#xff0c;... n 的n个人围坐一圈, 约定编号为 k (1<k<n &#xff09;的人从 1 开始报数&#xff0c;数到m的那个人出列&#xff0c;它的下一位又从1开始报数&#xff0c;数到 m 的那个人又出列&#xff0c;依次类推&#xf…

ActivityManagerService

1 AMS 家族 ActivityManagerService&#xff08;AMS&#xff09;主要负责系统中四大组件的启动、切换、调度以及应用程序的管理和调度工作&#xff0c;其职责与操作系统中的进程管理和调度模块类似。ActivityManagerService 进行初始化的时机很明确&#xff0c;就是在 system_…