汽车UDS诊断详解及Vector相关工具链使用说明——2.2.7 动态定义DID(0x2C)

2023-05-16

1. 概述

动态定义DID服务允许诊断仪在ECU内部动态定义一个临时的DID,可以通过该DID读取一段内存的数据,也可以通过改DID一次性读取多个原有DID的数据。动态定义DID既可以是支持22服务的DID,也可以是支持2A服务的周期性读取 DID。

该服务可以更加灵活地读取一些临时数据,也可以降低因频繁发送诊断请求和响应而导致的总线负载过高。

动态定义DID有三种方式:

  • 通过原有的DID来定义;
  • 通过指定内存地址来定义;
  • 以上两种方式结合使用。

该服务可以用一条诊断请求定义一个动态DID,也可以用多条诊断请求定义一个DID,这时ECU应把多条诊断请求所定义的DID内容连接起来。使用多条诊断请求定义DID的时候允许使用原有DID定义和指定内存地址定义两种方式同时存在,即上文的第三种方式。

当想要重新定义某个DID时,要先用子功能-清除动态DID来将原有定义清除,再重新定义。

当诊断仪发送了多条诊断指令来定义同一个动态DID时,如果ECU判断该DID的数据长度过长,ECU应该保持之前的动态DID定义不变,忽略最新的诊断指令。

标准没有禁止定义动态DID时引用其它动态DID,但不推荐这样做,因为当被引用的动态DID被删除时,将会导致引用该动态DID的其它动态DID在读取数据时出现问题。

动态定义的DID在发生会话转换时是否继续保持,可以由用户自定义。

读取动态DID时,ECU应保证返回的数据顺序与诊断仪定义动态DID时的数据顺序一致。

2. 请求报文格式

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

汽车UDS诊断详解及Vector相关工具链使用说明——2.2.7 动态定义DID(0x2C) 的相关文章

  • antd设置表单的某个字段的值

    antd设置表单的某个字段的值 1 创建form的实例 const span class token punctuation span formObj span class token punctuation span span class
  • 数组去重,并且数组的每一项是对象object

    span class token keyword function span obj2key span class token punctuation span obj keys span class token punctuation s
  • javascript函数声明和函数表达式的区别

    一 首先它们写法不一样 xff0c 我们先写一个函数声明 函数表达式的dome span class token comment 1 函数声明 span span class token keyword let span ceshi1 sp
  • antd表单回显

    一 利用initialValue 适用于初始化固定的值 Form 的 initialValues 与 Item 的 initialValue 区别 xff1f 在大部分场景下 xff0c 我们总是推荐优先使用 Form 的 initialV
  • Netty远程桌面demo

    https github com leisuredong RemoteDesktop 从远端服务器获取屏幕截图展示在本地客户端窗口 xff0c 可以在服务端通过鼠标键盘控制远端机器
  • javascript:数据结构——栈

    栈结构的概念 是一种 后进先出 的数据结构 栈作用 在编程语的编译器和内存中保存变量 方法调用 栈操作 栈结构操作的方法 push xff1a 进栈 pop xff1a 出栈 peek xff1a 检查栈顶元素 isEmpty xff1a
  • javascript:数据结构——队列

    什么是对列 是一种 先进先出 的数据结构 xff08 如排队候车 xff0c 肯定是先排队的人先上车 xff09 实际用处 如打印机 队列操作 使用数组实现队列结构 使用类封装队列操作 span class token keyword co
  • javascript:数据结构——链表

    什么是链表 xff1f 链表是有序的列表 xff0c 链表是以节点的方式来存储 xff0c 是链式存储 每个节点包含item域 xff0c next指针 xff08 指向下一个节点 xff09 xff0c 即就是链表中的每一个元素都带有下一
  • JavaScript中的事件循环机制

    我们知道JavaScript语言是单线程的 xff0c 至于为啥是单线程 xff1f 假设有两个线程 xff0c 一个在页面上新增一个div xff0c 另一个线程在页面上删除div xff0c 那最终听谁的 xff1f 那JavaScri
  • 彻底搞懂递归

    什么是递归 xff1f 简单的来说 xff1a 递归就是函数自己调自己 下来我们来看几个例子让你彻底搞懂递归 一 计算n的阶乘 顾名思义阶乘就是所有小于及等于该数的正整数的积 xff08 0和1的阶乘是1 xff09 下面我们先用循环的方式
  • javascript:求最大公约数的几种方式

    什么是最大公约数 xff1f 几个数所共有的约数中最大的一个 即可以整除这几个数的最大的数 叫做这几个数的最大公约数 方法一 xff1a 计算机思维 span class token keyword function span span c
  • javascript深浅拷贝的实现和区别

    什么是深拷贝和浅拷贝 所谓拷贝就是赋值 xff0c 把a的值赋值给b 区别 最明显的区别就是 xff1a 把a的值赋值给b xff0c 然后你改变b xff0c 看a会不会有变化 xff0c 如果a变了那就是浅拷贝 xff0c 如果a没有变
  • javascript判断数据类型的几种方法

    首先先回顾一下javascript的数据类型都有哪些 xff1f 基本数据类型 xff1a number xff0c undefined xff0c boolean xff0c string xff0c null 复杂数据类型 xff1a
  • O-ComTool修复中文显示问题

    O ComTool Pro我个人认为是一款很好用的串口调试软件 xff0c hex与ascii互转 xff0c 报文格式化 xff0c 打印窗口停留 xff0c 加载发送文件 xff0c 内容复制等细节体验很棒 xff0c 但是有一个问题体
  • 类的关系(泛化, 实现,关联,聚合,组合,依赖)

    类的关系 在UML类图中 xff0c 常见的有以下几种关系 泛化 xff08 Generalization xff09 实现 xff08 Realization xff09 xff0c 关联 xff08 Association xff0c
  • XMLHttpRequest获取后台response返回的数据

    XMLHttpRequest获取后台response返回的数据 开发MVC网站的过程中遇到令人头疼的bug 在js中通过XMLHttpRequest获取后台返回的数据竟然是当前页面的Html代码 xff01 xff01 xff01 后台Co
  • npm 安装 chromedriver依赖超时,导致项目打包进程失败

    npm 安装 chromedriver依赖超时 xff0c 导致项目打包进程失败 网络上大部分解决方式是npm 安装换源 xff1a npm install chromedriver chromedriver cdnurl 61 http
  • 12个Visual Studio调试效率技巧

    在这篇文章中 xff0c 我们假定读者了解VS基本的调试知识 xff0c 如 xff1a F5 开始使用调试器运行程序F9 在当前行设置断点F10 运行到下一个断点处F5 从被调试的已停止程序恢复执行F11 步进到函数内 xff08 如果当
  • 思岚RPLIDAR A2激光雷达使用及问题解决

    思岚RPLIDAR A2激光雷达使用及问题解决1 下载源码第一步 xff0c 下载雷达源代码 xff0c 第一种方法是输入下列网址 xff1a http slamtec com rplidar a2 download xff0c 界面有雷达
  • 雷达调制

    雷达通常有两种基本类型 xff1a 连续波 xff08 CW xff09 雷达和脉冲雷达 连续波雷达发射连续波 xff0c 并且发射的同时可以接收反射回来的的回波信号 xff0c 即收发可以同时进行 脉冲雷达间歇式发射脉冲周期信号 xff0

随机推荐