车载以太网网络测试-22【传输层-DOIP协议-5】

目录

  • 1 摘要
  • 2 DoIP时间参数
    • 2.1 ISO 13400定义的时间参数
    • 2.2 参数示例
  • 3 DoIP节点内部状态机
  • 4 UDSonIP概述
  • 5 总结

1 摘要

本文继续对DOIP协议进行介绍,主要是DOIP相关的时间参数、时间参数定义以及流程示例。推荐大家对上文专题进行回顾,有利于系统性学习DOIP协议。
上文专题回顾:
车载以太网网络测试-21【传输层-DOIP协议-4】

2 DoIP时间参数

2.1 ISO 13400定义的时间参数

下表为标准中定义的DoIP时间参数:
在这里插入图片描述
在这里插入图片描述
以上,是ISO 13400-2定义的时间参数:

  1. A_DoIP_Ctrl
    该参数值诊断设备发送完上一个UDP报文后的等待响应的最长等待时间(Timeout:2S),注意两点:
    (1)如果该UDP报文以广播形式发送给多个DoIP节点,那么这个时间指等待所有节点响应的完成的时间。
    (2)该时间参数只针对UDP报文。

  2. A_DoIP_Announce_Wait
    该时间参数指定了DoIP实体在响应车辆识别请求之前等待的初始时间,以及在配置有效IP地址后DoIP实体在发送车辆公告消息之前等待的时间。

  3. A_DoIP_Announce_Interval
    该时间参数指定了在配置了有效的IP地址后,由DoIP实体发送的三条车辆声明报文之间的时间间隔。延迟时间:500 ms

  4. A_DoIP_Announce_Wait
    这个时间参数应用场景有两个:
    (1)DoIP节点在获取IP地址成功到发送第一个车辆声明报文的时间间隔
    (2)DoIP节点在收到诊断设备发送的车辆信息请求报文后发送车辆信息响应报文的时间间隔
    此时间参数的值应在最小值和最大值之间随机确定,随机时间:0-500ms;之所以设置为随机值是为了避免所有DoIP节点同时发送车辆声明报文或车辆信息响应报文,造成网络堵塞。

  5. A_DoIP_Announce_Num
    该参数指定了在配置了有效的IP地址后,由DoIP实体发送的车辆公告报文的数量。标准定义:重复:3 次

  6. A_DoIP_Diagnostic_Message
    这是指指DoIP节点在接收到DoIP诊断报文的最后一个字节之后,到发送确认ACK或NACK之间的时间间隔。
    该参数有两层含义:
    (1)对DoIP节点来说,它是对性能的要求,要求DoIP节点要在50ms内做出相应;**性能时间:50 ms
    (2)对诊断设备来说,它是发送完诊断报文后的等待时间,超时时间为2s,超时后仍未收到诊断响应报文的话,应该重复发送该诊断报文。

  7. T_TCP_General_Inactivity
    该参数指DoIP节点在收到路由激活报文后,且没有进行TCP数据交互的情况下,保持TCP连接的最长时间,超时时间为5min,超时后仍没有任何TCP数据交互的话将关闭TCP连接。

  8. T_TCP_Initial_Inactivity
    此超时时间规定了在TCP_DATA套接字建立后,允许的最大无活动时间。如果在指定时间内(超时时间:2S)没有路由激活,DoIP实体将关闭该TCP_DATA套接字。Timeout: 2 s

  9. T_TCP_Alive_Check
    该参数指DoIP节点在发送了一个诊断设备在线检查请求报文后等待响应的时间,超时时间为500ms,如果超时后未收到响应,则DoIP节点判断诊断设备已离线,关闭TCP连接。注意,当DoIP节点向TCP socket发送请求失败时也应该启动该定时器,应为这意味着诊断设备通信失败,可能已经离线。 Timeout: 500 ms

  10. A_Processing_Time:这个超时时间定义为从外部测试设备发送不需要响应报文(例如禁止肯定响应位为TRUE)但可能需要一些时间进行处理的时间间隔。因此,外部测试设备必须等待至少A_Processing_Time(处理时间)才能向同一个DoIP实体发送另一个请求。Timeout: 2 s

  11. A_Vehicle_Discovery_Timer
    该参数是指留给车上DoIP节点做GID同步的时间,诊断设备只有在收到的车辆信息响应报文或车辆声明报文中带有**有效的 VIN/GID 且 VIN/GID sync. status 为 “incomplete(0x10)”**时,才会启动该定时器,等待车上的DoIP节点进行GID同步。Timeout: 5 s

2.2 参数示例

我们把这些时间参数放在通讯流程中,能更加清晰直观地看出各参数的作用:
在这里插入图片描述

3 DoIP节点内部状态机

DoIP实体通过TCP的五元组(源IP地址、目的IP地址、源端口号、目的端口号、协议类型)加逻辑地址来识别唯一的DoIP连接。因此,除了TCP socket连接状态外,还维护着一个DoIP逻辑连接状态,状态转换示意图如下图所示:
在这里插入图片描述
图中各个事件详解:

  1. Connection state -: Listen
    逻辑连接的初始状态为Listen,表示节点正在等待与外部实体的连接。
    (1)Listen状态是DoIP节点在初始化完成并准备好接收连接请求时进入的状态。
    (2)在该状态下,节点会监听来自外部实体的TCP连接请求(通常是诊断客户端或其他DoIP节点)。
    (3)如果节点是服务器角色(例如ECU),它会持续监听来自客户端的连接请求。
    (4)如果节点是客户端角色(例如诊断工具),它可能会主动发起连接请求。

  2. 当TCP连接建立并进入ESTABLISHED状态后,逻辑连接跳转至Initialized状态并启动Initial inactivity timer;
    注:Initial inactivity timer,当DoIP逻辑连接处于Initialized状态时,如未收到有效的路由激活报文,当Initial inactivity timer超时后,DoIP实体会主动关闭此类无效的初始连接。ISO 13400中建议其初始值为2秒。

  3. 当接收到诊断仪发送的正确的路由激活报文后,跳转至Registered [pending for authentication] 状态,停止Initial inactivity timer并开启General inactivity timer;
    注:General inactivity timer,当DoIP逻辑连接处于Registered状态时,如一段时间之内没有数据的收发行为发生,当General inactivity timer超时后,DoIP实体会主动关闭此类不活跃连接。ISO 13400中建议其初始值为5分钟,计时器在每一次数据收发时均会被重置为初始值。

  4. Registered [pending for authentication] 状态下,如认证完成或无需认证,跳转至Registered [pending for confirmation];如果认证失败、General inactivity timer超时或Alive check报文无响应,会跳转至Finalize状态;

  5. Registered [pending for confirmation] 状态下,如确认完成或无需确认,跳转至 Registered [routing active],到此状态,DoIP逻辑连接激活完成,可以开始进行诊断会话。如果确认失败、General inactivity timer超时或Alive check报文无响应,会跳转至Finalize状态。
    状态机中认证(Authentication)和确认(Confirmation)的方法在ISO 13400中并无定义,如果有需求,可使用路由激活报文中的Activation type和Reserved for OEM-specific use字段来实现。

4 UDSonIP概述

ISO 14229-5 是 统一诊断服务(UDS) 标准的一部分,具体规定了 UDS over Internet Protocol (UDSonIP) 的实现方式。UDSonIP 是一种将 UDS 协议应用于基于 IP 网络的诊断通信的方式,主要用于现代车辆中支持以太网通信的电子控制单元(ECU)。
1.UDS服务的特殊规定
部分UDS服务在应用于DoIP的时候,由于以太网通信的特性,会有下文所述的一些特殊规则。
(1)DiagnosticSessionControl (0x10) service
诊断会话控制切换会导致TCP连接中断,在再次开始诊断前要重新建立TCP连接,并发送路由激活报文。
(2)ECUReset (0x11) service
ECU复位会同样会导致TCP连接断开,路由激活失效,在再次开始诊断前也要重新建立TCP连接,并发送路由激活报文(针对所有相关DoIP节点)。
(3)ReadDataByPeriodicIdentifier (0x2A) service
这个服务我觉得其实没啥影响,只是服务原语和CAN有所不同,涉及到的具体章节是ISO 14229-5-6.5,我也没有仔细研究,大家用到的时候可以详细查查标准原文。
2. 时间参数
ISO 14229-2中定义的有关UDS会话层的时间参数,UDSonIP中常用的时间参数如下:
(1)P6
P6的概念和P2很像,都是发送方等待接收方的响应的时间,不同之处在于P2是刚开始接收到响应即停止,P6是响应完全接收完毕才停止。车载以太网因为本身实时性就不如CAN这一类的网络,还可能涉及到路由转发,所以网络延迟可能比较长,所以有时候需要考虑P6。
(2)P4Server
P4Server这个时间参数其实不只是UDSonIP用到,UDSonCAN也可能用到,但用的比较少。它的含义是ECU接收到诊断请求后到最终的诊断肯定响应或否定响应(不包含NRC 0x78)的时间间隔,它是对ECU性能的要求,目的是防止ECU长时间返回NRC 0x78的否定响应。
当P4Server_max与P2Server_max相同的时候,就意味着不允许ECU返回NRC 0x78的否定响应。
标准中还规定,连续返回NRC 0x78时,时间间隔不能小于0.3 * P2*Server_max,以避免网络中存在过多不必要的否定响应。
以上就是有关UDSonIP的内容,UDSonIP在其他方面与UDSonCAN没有太大的不同。

5 总结

以上是对DOIP协议所有内容的介绍,希望能对大家学习DOIP协议所有帮助!

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

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

相关文章

(论文总结)思维链激发LLM推理能力

研究背景&动机 背景:扩大模型规模已被证实具有提升模型性能和模型效率的功效,但是LLM对于完成推理、算术任务仍有较大不足。 动机:从之前的应用和研究中得知,可以用生成自然语言解释、使用神经符号等形式语言的方法来提高大模型的算术推理能力&…

前后端开发概述:架构、技术栈与未来趋势

一、前后端开发的基本概念 1.1 什么是前后端开发? 前后端开发是 Web 开发的两个核心部分,各自承担不同的职责: 前端(Frontend) 负责网页的用户界面(UI)和用户体验(UX)…

anythingLLM结合searXNG实现联网搜索

1、docker-compose 部署searXNG GitHub - searxng/searxng-docker: The docker-compose files for setting up a SearXNG instance with docker. cd /usr/local git clone https://github.com/searxng/searxng-docker.git cd searxng-docker 2、修改 .env文件 # By default…

人形机器人科普

人形机器人(Humanoid Robot)是一种模仿人类外形和行为的机器人,通常具有头部、躯干、双臂和双腿等结构。它们的设计目标是与人类环境无缝交互,执行复杂的任务,甚至在某些领域替代人类工作。 1. 人形机器人的定义与特点…

【CICD】Ansible知识库

一、主机清单配置 1. 配置文件路径 默认路径 /etc/ansible/hosts 这是 Ansible 的全局默认库存文件路径,但许多用户可能不会直接使用它。项目目录或自定义路径 用户通常会为不同项目创建独立的库存文件,例如: 当前目录下的 hosts、inventor…

ArkUI-List组件

列表是一个复杂的容器,当列表项达到一定数量,使得列表内容超出其范围的时候,就会自动变为可以滚动。列表适合用来展现同类数据类型。 List的基本使用方法 List组件的构建声明是这个样子的 List(value?: {space?:number | string, initial…

Ubuntu实时读取音乐软件的音频流

文章目录 一. 前言二. 开发环境三. 具体操作四. 实际效果 一. 前言 起因是这样的,我需要在Ubuntu中,实时读取正在播放音乐的音频流,然后对音频进行相关的处理。本来打算使用的PipewireHelvum的方式实现,好处是可以直接利用Helvum…

【yolo】YOLO训练参数输入之模型输入尺寸

模型输入尺寸是YOLO训练和推理过程中非常重要的参数之一。YOLO要求输入图像的尺寸是固定的,通常为正方形(如416416、640640等)。这个尺寸直接影响模型的性能和速度。以下是对模型输入尺寸的详细介绍: 1. 模型输入尺寸的作用 统一…

【TI MSPM0】Timer学习

一、计数器 加法计数器:每进入一个脉冲,就加一减法计算器:每进入一个脉冲,就减一 当计数器减到0,触发中断 1.最短计时时间 当时钟周期为1khz时,最短计时时间为1ms,最长计时时间为65535ms 当时…

从WebRTC到嵌入式:EasyRTC如何借助大模型提升音视频通信体验

随着人工智能技术的快速发展,WebRTC与大模型的结合正在为音视频通信领域带来革命性的变革。WebRTC作为一种开源实时通信技术,以其低延迟、跨平台兼容性和强大的音视频处理能力,成为智能硬件和物联网设备的重要技术支撑。 而EasyRTC作为基于W…

使用brower use AI 代理自动控制浏览器完成任务

第一步:终端运行命令下载 brower use pip install browser-use 第二步: 终端运行命令下载playwright playwright install 第三步:新建test.py代码,粘贴复制以下代码 import asyncio import osfrom dotenv import load_doten…

自由学习记录(45)

顶点片元着色器(important) 1.需要在Pass渲染通道中编写着色器逻辑 2.可以使用cG或HLSL两种shader语言去编写Shader逻辑 3.代码量较多,灵活性较强,性能消耗更可控,可以实现更多渲染细节 4.适用于光照处理较少&#xf…

Quartus + VScode 实现模块化流水灯

文章目录 一、通过VScode编写Verilog代码二、模块化编程三、代码示例 一、通过VScode编写Verilog代码 1、下载Vscode 2、下载相关插件 搜索Verilog就会弹出有如图所示的插件,下载并安装 3、创建Quartus项目 4、创建完成后点击Tools,选择Options 然后在…

tryhackme——The Lay of the Land

文章目录 一、网络基础设施1.1 内网1.2 DMZ区1.3 网络枚举(Network Enumeration) 二、域环境三、用户和组管理四、安全解决方案4.1 基于主机的安全解决方案4.1.1 防病毒软件4.1.2 Microsoft Windows Defender4.1.3 主机防火墙4.1.4 安全事件记录与监控4.…

STM32---FreeRTOS消息队列

一、简介 1、队列简介: 队列:是任务到任务,任务到中断、中断到任务数据交流的一种机制(消息传递)。 FreeRTOS基于队列,实现了多种功能,其中包括队列集、互斥信号量、计数型信号量、二值信号量…

2025年了,5G还有三个新变化

最近舆论开始讨论5G为什么不火了?5G是不是停滞发展了。 实际上,5G不仅在发展,还迎来了它的升级版5G-A。 在今年西班牙举行的世界移动通信大会上,5G-A就是焦点之一。 被誉为全球通信领域风向标的MWC,汇聚了华为、中兴通…

SQLMesh SCD-2 时间维度实战:餐饮菜单价格演化追踪

场景背景:动态菜单价格管理 考虑某连锁餐厅的菜单管理系统,需要记录食品价格的历史变更轨迹。业务需求包括: 记录每次价格调整的时间点支持历史价格查询(如"2020年1月2日汉堡多少钱")维护当前有效价格清单…

失物招领|校园失物招领系统|基于Springboot的校园失物招领系统设计与实现(源码+数据库+文档)

校园失物招领系统目录 目录 基于Springboot的校园失物招领系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、 管理员功能实现 (1) 失物招领管理 (2) 寻物启事管理 (3) 公告管理 (4) 公告类型管理 2、用户功能实现 (1) 失物招领 (2) 寻物启事 (3) 公告 …

基于BClinux8部署Ceph 19.2(squid)集群

#作者&#xff1a;闫乾苓 文章目录 1.版本选择Ceph版本发布历史目前官方在维护的版本 2.部署方法3.服务器规划4.前置配置4.1系统更新4.2配置hosts cat >> /etc/hosts << EOFssh-keygenssh-copy-id ceph01ssh-copy-id ceph02ssh-copy-id ceph034.5 Python34.6 Syst…

安装React开发者工具

我们在说组件之前&#xff0c;需要先安装一下React官方推出的开发者工具&#xff0c;首先我们分享在线安装方式 首先打开谷歌网上应用商店(针对谷歌浏览器)&#xff0c;在输入框内搜索react&#xff0c;安装如下插件&#xff1a; 注意安装提供方为Facebook的插件&#xff0c;这…