【车载开发系列】UDS诊断---动态定义DID($0x2C)

news2025/1/12 0:57:07

【车载开发系列】UDS诊断—动态定义DID($0x2C)

UDS诊断---动态定义DID($0x2C)

  • 【车载开发系列】UDS诊断---动态定义DID($0x2C)
    • 一.概念定义
      • 1)DID定义方式
      • 2)DID失效条件
    • 二.应用场景
    • 三.报文格式
      • 1)报文请求
        • 1.请求通过标识符定义
        • 2.请求通过内存地址定义标识符
        • 3.请求清除已定义的标识符
      • 2)肯定响应
      • 3)否定响应

一.概念定义

  1. 动态定义数据标识符 DynamicallyDefineDataIdentifier(2Ch)
  2. 此服务允许诊断工具在ECU的内部动态定义一个数据标识符,一个临时的DID,可以通过这个DID读取一段内存的数据,也可以通过改DID一次性读取多个原有DID的数据。
  3. 该数据标识符还可以被读取数据服务22h或读取数据(周期标识符)2Ah 所读取。
  4. 动态定义数据标识符将会包含一个串联的数据参数定义。

1)DID定义方式

  • 动态定义DID一共有三种方式
    1)通过原有的DID来定义
    2)通过指定的内存地址来定义
    3)以上两种方式结合来定义
  • 重新定义动态定义的 DID则是通过清除当前定义并重新定义。虽然该服务不禁止这种功能,但是不建议这么做。
  • 指定动态数据标识符需要在有效范围(F200h-F3FFh)
  • 当想要重新定义某一个DID的时候,要先用子功能-清除动态DID,来将原有的定义清除,再重新进行定义
  • 为了避免错误并降低复杂度,新定义的标识符不允许嵌套参考另一个动态定义的标识符。 如果指定的动态标识符在请求时正在被周期性(按照请求的时间)报告,动态数据标识符应先被终止然后再被清除。

2)DID失效条件

  • 当以下任一情况发生时,动态定义的标识符将失效:
    1)接收到清除动态标识符的指令;
    2)ECU 硬件或者软件复位;
  • 由于上面任何一个原因,ECU由非默认会话模式切换到默认会话模式。

二.应用场景

  1. 此服务的目的是提供给诊断工具组合一个或多个数据为一个数据集的能力。
  2. 该服务在处理诊断应用程序的临时数据需求方面提供了更大的灵活性,超出了可以通过静态定义的DID读取的信息的范围,并且还可以通过避免频繁的请求/响应从而降低带宽利用率。动态定义的DID的定义可以通过单个请求消息或通过多个请求消息来完成。

三.报文格式

1)报文请求

0x2C的所有的SubFunction的定义如下。0x01和0x03是最为常用的功能

Hex (bit6~0)描述Description说明
0x00ISOSAEReservedISO保留,未定义-
0x01通过标识符定义defineByIdentifier通过数据标识符定义动态数据标识符,也就是向服务器指定动态DID的定义通过DID引用进行
0x02通过内存地址定义defineByMemoryAddress通过地址引用定义动态数据标识符,服务器指定动态DID的定义应通过地址引用进行仅在开发阶段使用
0x03清除动态定义数据标识符clearDynamicallyDefinedDataIdentifier此值用来清除指定的动态数据标识符
0x04-0xFFISOSAEReservedISO保留,未定义-

1.请求通过标识符定义

  1. dynamicDefinedDataIdentifier必须在0x22服务中作为DID处理
  2. sourceDataIdentifier在逻辑上指定要包含在动态 DID 中的信息源
  3. positionInSourceDataRecord用于指定要包含在动态数据记录中的源数据记录摘录的起始字节位置
  4. memorySize指定源数据记录/内存地址中要包含在动态DID中的字节总数
    在这里插入图片描述

2.请求通过内存地址定义标识符

  1. addressAndLengthFormatIdentifier
    每个半字节分别编码
    bit 7-4:memorySize参数的长度(字节数)
    bit 3-0:memoryAddress参数的长度(字节数)
  2. memoryAddress
    仅在参数sub-function = defineByMemoryAddress 中存在要包含在动态DID中的信息的内存源地址
    在这里插入图片描述

3.请求清除已定义的标识符

  1. Request_ClearDynamicallyDefinedDataIdentifierd
  2. 如果请求消息中存在dynamicDefinedDataIdentifier参数,则存在dynamicallyDefinedDataIdentifier;否则不包括该参数。
    在这里插入图片描述

2)肯定响应

  1. 这里的肯定响应类型只有0x01和0x03两个,事实上在ISO14229当中,还有0x02。
    在这里插入图片描述

3)否定响应

在这里插入图片描述
常见的NRC码如下所示

Hex描述Description
0x12子功能不支持subFunctionNotSupported
0x13报文长度错误incorrectMessageLengthOrInvalidFormat
0x22条件不满足conditionsNotCorrect
0x31请求超出范围requestOutOfRange

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

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

相关文章

【Python游戏】今天小编用Python实现了一个植物大战僵尸小游戏 | 附源码

前言 halo,包子们下午好 今天给打击整一个植物大战僵尸 无广告版本 哈哈 说实话,现在的小游戏很多都是有广告,多少有点难受 今天给大家直接安排 相关文件 关注小编,私信小编领取哟! 当然别忘了一件三连哟~~ 源码点…

java基于Springboot的社区维修平台-计算机毕业设计

项目介绍 系统管理也都将通过计算机进行整体智能化操作,对于社区维修平台所牵扯的管理及数据保存都是非常多的,例如住户管理、社区公告管理、维修工管理、维修订单管理、接单信息管理、订单信息管理、在线沟通管理、举报信息管理、留言板管理、系统管理…

4G远程智能巡检摄像机功耗测试对比

对于一款输电线路监控设备,由于装在铁塔上面,对于功耗,电网上面的应用,尤为重要,如何得做到低功耗,一直大家研究的地方,解决了功耗,基本产品成功了一半,而合方圆在电网行…

对称加密算法(一)(替换算法,Caesar, Playfair, Hill Cipher,Polyalphabetic Cipher)

文章目录Symmetric Cipher ModelSubstitution TechniquesCaesar CipherMonoalphabetic CiphersPlayfair CipherHill CipherPolyalphabetic CipherVigenere CipherVernam CipherOne-Time PadReferences对称加密,也被称为传统加密、单钥加密或私钥加密,是 …

Flink系列-1、流式计算简介

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 大数据系列文章目录 官方网址:https://flink.apache.org/ 学习资料:https://flink-learning.org.cn/ 目录数据的时效性…

【pytorch】使用pytorch自己实现LayerNorm

pytorch中使用LayerNorm的两种方式,一个是nn.LayerNorm,另外一个是nn.functional.layer_norm 1. 计算方式 根据官方网站上的介绍,LayerNorm计算公式如下。 公式其实也同BatchNorm,只是计算的维度不同。 下面通过实例来走一遍公式 假设有如下的数据 …

JQuery 高级

目录 1. 动画 1. 三种方式显示和隐藏元素 1. 默认显示和隐藏方式 2. 滑动显示和隐藏方式 2. 遍历 1. js的遍历方式 2. jq的遍历方式 5. 插件:增强JQuery的功能 1 . 实现方式: 1. $.fn.extend(object) * 增强通过Jquery获取的对象的…

java计算机毕业设计ssm学生宿舍管理系统efyug(附源码、数据库)

java计算机毕业设计ssm学生宿舍管理系统efyug(附源码、数据库) 项目运行 环境配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff0…

取余,模运算,余数的正负问题,1497. 检查数组对是否可以被 k 整除

首先,我们来看数学中对余数的定义 0到除数之间的整数,所以当除数是负数的时候,余数也是负数。 举个例子: 接下来,我们看计算机中余数是怎么求的??? 所有的语言和计算器都遵循了让商…

防火墙豁免实验

♥️作者:小刘在C站 ♥️每天分享云计算网络运维课堂笔记,疫情之下,你我素未谋面,但你一定要平平安安,一 起努力,共赴美好人生! ♥️夕阳下,是最美的,绽放,愿…

单商户商城系统功能拆解44—应用中心—小程序直播

单商户商城系统,也称为B2C自营电商模式单店商城系统。可以快速帮助个人、机构和企业搭建自己的私域交易线上商城。 单商户商城系统完美契合私域流量变现闭环交易使用。通常拥有丰富的营销玩法,例如拼团,秒杀,砍价,包邮…

shell 基本语法第四讲之(find(文件查找)、xargs(字符串拼凑)、sed(处理文本)、awk(文本处理)、crontab(系统定时器))

20、find(文件查找) 格式 find pathname -options [-print -exec -ok …] 命令说明举例-name按照文件名查找文件。find . -name “1.txt”-perm按照文件权限来查找文件。find . -perm 660-user按照文件属主来查找文件。-group按照文件所属的组来查找文件。-mtime -n n按照文件…

西电计网实验

《计算机通信与网络》网络实验 阅读须知:计网六次实验均已通过线下操作进行验收(后面两次善意线上了),写报告由于描述流程困难,故采用eNSP对实验内容进行复现,故此报告实验的过程分析都是基于eNSP&#xf…

MBSE和刚亮相的B-21“突袭者”隐形轰炸机

DDD领域驱动设计批评文集>> 《软件方法》强化自测题集>> 《软件方法》各章合集>> 12月2日,B-21“突袭者”隐形轰炸机举行揭幕仪式。 摘译一篇来自制造商Northrop Grumman公司(诺斯罗普格鲁曼公司)网站上的文章片段。 利…

stm32cubemx hal学习记录:CAN

一、实验内容 RM C板,can1给can2发送数据 二、CAN总线简介 1、控制器局域网络:Controller Area Network 2、异步半双工通信 3、总线制 CAN由一对差分对(两条线)CANH和CANL组成 CANH电压比CANL高视为逻辑0(显性电…

IDEA插件系列(3):Easy Javadoc插件——快速生成javadoc文档注释

1.插件介绍 Easy Javadoc插件。 能帮助开发者快速生成类、方法、属性等中文javadoc 2.安装方式 第一种安装方式是在线下载安装插件。 第二种安装方式是使用离线插件进行安装。 插件下载地址:https://plugins.jetbrains.com/plugin/12977-easy-javadoc 3.使…

梦开始的地方—— C语言预处理+编译过程

文章目录C语言程序的编译(预处理)1.编译和链接1) 编译的几个阶段预编译阶段编译阶段汇编阶段2) 链接2. 预处理1) 预定义符号2) #define3) #和##4) 带副作用的宏参数5) 宏和函数对比3. 常见预处理命令1) #undef2) 命令行定义3) 条件编译4) 文件包含5) 实现offsetofC语言程序的编…

Spring 中 @Autowired 修饰构造方法时注意事项

代码演示 给定一个类 One,然后看下的几种构造方法什么时候被调用 1、假设现在只有一个默认的空构造方法,代码如下: Component public class One {}然后追踪源码,如下所示: 先拿到所有声明的构造方法 然后挨个判断构…

总结Python设置Excel单元格样式的一切,比官方文档还详细

总结Python设置Excel单元格样式的一切,比官方文档还详细 Python对Excel表格处理非常方便,本文专门对Excel单元格样式设置进行总结,日常用到的设置基本都可以用openpyxl库完成。 创建一个表格 openpyxl是第三方库,如果你还没有安…

如何撰写好的科研论文:摘要(1)

导读 本系列将切片介绍如何写好科研论文,包含了:摘要,背景介绍,方法,结果,讨论等,本文[1]将从摘要开始。 1. 标准 Criteriapointline一般背景听众中的每个人都关心的事情。具体背景从每个人都关…