UDS诊断(ISO14229-1) 19服务

文章目录

  • 功能简介
  • 请求和响应
    • 1、sub-function = 0x01 reportNumberOfDTCByStatusMask
    • 2、sub-function = 0x02 reportNumberOfDTCByStatusMask
    • 3、sub-function = 0x03 reportDTCSnapshotIdentification
    • 4、sub-function = 0x04 reportDTCSnapshotRecordByDTCNumber)
    • 5、sub-function = 0x06 reportDTCRecordByDTCNumber
    • 6、sub-function = 0x0A reportSupportedDTC
    • 7、sub-function = 0x19 reportUserDefMemoryDTCExtDataRecordByDTCNumber
  • 否定响应
  • UDS中常用 NRC

功能简介

19服务,即 ReadDTCInformation(读取 DTC 信息)服务,允许客户端读取接受自任何车载服务器或服务器组的服务器常驻故障诊断码(DTC)信息。除非特殊子功能提出要求,服务器应返回所有 DTC 信息(如排放或非排放相关信息)。

请求和响应

  • 1、请求基本格式

归纳起来,诊断的request格式无非以下两种:

<SID> + <Sub-function> + <Parameter>

<SID> + <Parameter>

即有无sub-function的区别。Parameter可以是DID,可以是输入参数,可以是自定义的值,字节数视具体要求而定。

  • 2、子功能参数定义(1字节数据)

    • Bit7:抑制肯定响应消息指示位suppressPosRspMsgIndicationBit
      • 0=False:需要肯定响应
      • 1=True:禁止肯定响应
    • Bit6-0:子功能参数值(0x00~0x7F)

由于 19 服务子功能较多,此处只介绍常用子功能,其他参考ISO14229-1 文档。

  • 3、肯定响应基本格式

<SID + 0x40> + <Sub-function> + <Parameter>

<SID + 0x40> + <Parameter>

要注意,第一个字节是由SID和0x40的和构成。这里的Parameter项是optional的,具体要看协议规定。

1、sub-function = 0x01 reportNumberOfDTCByStatusMask

检索与客户端定义 DTC 状态掩码相匹配的 DTC 的数量

  • 请求:
    在这里插入图片描述

  • 肯定响应
    在这里插入图片描述
    在这里插入图片描述

  • 示例
    假设服务器共支持三个 DTC(为简单起见!),DTC码和状态分别为

    • P0805-11“离合器位置传感器对地短路( 0x080511) ”, statusOfDTC(DTC 状态)为 0x24(0010 0100b)。
    • P0A9B-17 “混合电 池温度传 感器电 压超出阈 值( 0x0A9B17) ”,statusOfDTC(DTC 状态)为 0x26(0010 0110b)。
    • P2522-1F A/C 请求“B”- 电路不时断开( 0x25221F), statusOfDTC(DTC 状态)为 0x2F(0010 1111b)。

在这里插入图片描述
在这里插入图片描述

2、sub-function = 0x02 reportNumberOfDTCByStatusMask

检索与客户端定义 DTC 状态掩码相匹配的 DTC 列表

  • 请求
    在这里插入图片描述

  • 肯定响应
    在这里插入图片描述

  • 示例
    假设服务器共支持三个 DTC(为简单起见!),DTC码和状态分别为

    • DTC P0A9B-17 “混合电 池温度传 感器电 压超出阈 值( 0x0A9B17) ”,statusOfDTC(DTC 状态)为 0x24(0010 0100b)
    • P2522-1F A/C 请求“B”- 电路不时断开( 0x25221F), statusOfDTC(DTC 状态)为 0x00(0000 0000b)
    • P0805-11“离合器位置传感器对地短路( 0x080511) ”, statusOfDTC(DTC 状态)为 0x2F(0010 1111b)
      在这里插入图片描述
      在这里插入图片描述

3、sub-function = 0x03 reportDTCSnapshotIdentification

获取DTC快照记录ID

诊断仪可以通过该子功能请求来检索所有捕获的 DTC快照记录的ID信息。服务器应返回所有已存储 DTC快照记录的 ID信息列表。服务器在响应消息中为单个 DTCSnapshot 记录放置的每个项目都应包含一个DTCRecord [包含 DTC number(high,middle,low字节)]和 DTCSnapshot record number。如果为单个 DTC 存储了多个DTCSnapshot 记录,则ECU应在每次响应时使用1个不同的DTCSnapshot record number(便于后续的查询)来表示。

ECU可支持对单个DTC存储多个DTCSnapshot records来跟踪每次DTC发生时的环境条件。DTCSnapshot records数量应被系统供应商或整车厂定义。

客户端成功发出 ClearDiagnosticInformation 请求后,应清除 DTCSnapshot 记录ID信息。 整车厂需要定义清楚删除已存储 DTC 和 DTCSnapshot 数据的规则以防内存溢出。

  • 请求
    在这里插入图片描述

  • 肯定响应
    在这里插入图片描述

  • 示例

  • 下述假定适用于:

    • 服务器具有能够存储指定 DTC 的两个 DTCSnapshot(DTC 快照)记录的能力。
    • 服务器须显示 DTC0x123456 当前存储的两个 DTCSnapshot(DTC 快照)记录。在本示例中,假
      定该 DTC 已出现三次(由于服务器内存储空间不足,因此仅存储第一次和最近一次的 DTC 快照记录)。
    • 服务器须显示 DTC0x789ABC 当前存储的一个 DTCSnapshot(DTC 快照)记录
    • 所有 DTCSnapshot(DTC 快照)记录的存储均以升序排列。

在这里插入图片描述
在这里插入图片描述

4、sub-function = 0x04 reportDTCSnapshotRecordByDTCNumber)

是用于请求指定故障码(DTC)的快照信息

  • 请求
    在这里插入图片描述

其中,DTCSnapshotRecordNumber表示DTC快照记录码,占一个字节,表示特定的DTC快照数据记录编号。

例如当我们需要记录某个DTC第一次发生(假设用1表示)和最近一次发生的快照数据时(假设用2表示);那么当DTCSnapshotRecordNumber为1时,则表示请求该DTC第一次发生时的快照信息。

如果ECU支持多个DTC快照数据记录,那么该纪录码应使用Ox01~0xFE范围内的数值。当该参数值为0xFF时,要求ECU一次性报告所有存储的DTC快照数据记录。

  • 肯定响应
    在这里插入图片描述
    在这里插入图片描述

  • 示例

  • 下述假定适用于:

    • 服务器具有能够存储指定 DTC 的两个 DTCSnapshot(DTC 快照)记录的能力。
    • 本示例假定延续使用先前的示例。
    • 假定服务器请求服务器存储的 DTC 号 0x123456 的两个 DTCSnapshot(DTC 快照)记录的第二个记录(参见先前示例中 0x02 DTCSnapshotRecordCount(DTC 快照记录计数)返回至客户端的情况)
    • 假定 DTC 0x123456 的 statusOfDTC(DTC 状态)为 0x24,且每次出现 DTC 时均可获取下述环境数据。
    • 通过 dataIdentifier(数据标识符) 0x4711 引用 DTCSnapshot(DTC 快照)记录数据。
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

5、sub-function = 0x06 reportDTCRecordByDTCNumber

读取与客户端定义 DTC 掩码和客户端定义 DTCExtendedData(DTC 扩展数据)记录编号匹配的DTCExtendedData ( DTC 扩 展 数 据 ) 记 录 数 据

除了前面04服务中介绍到的快照信息;一般还会再定义一个扩展信息,用于记录故障的一些其他信息,比如故障发生的次数、老化次数、已老化次数等。

  • 请求
    在这里插入图片描述

  • 肯定请求
    在这里插入图片描述

  • 示例

  • 下述假定适用于:

    • 服务器具有能够存储指定 DTC 的两个 DTCExtendedData(DTC 扩展数据)记录的能力。
    • 假定服务器请求服务器存储的 DTC 号 0x123456 所有可用 DTCExtendedData(DTC 扩展数据)记录。
    • 假定 DTC 0x123456 的 statusOfDTC(DTC 状态)为 0x24,且下述扩展数据适用于该 DTC。
    • 通 过 DTCExtDataRecordNumber ( DTC 扩 展 数 据 记 录 号 ) 0x05 和 0x10 引 用 DTCExtendedData(DTC 扩展数据)。
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

6、sub-function = 0x0A reportSupportedDTC

读取ECU支持的所有DTC列表及其状态

  • 请求
    在这里插入图片描述

  • 肯定响应
    在这里插入图片描述
    在这里插入图片描述

  • 示例

    • 在客户端请求时,服务器共支持三个具有下述状态的 DTC(为简便起见!)。
    • 下述假定适用于 DTC 0x123456, statusOfDTC(DTC 状态) 0x24(0010 0100b)。
    • 下述假定适用于 DTC 0x234505, statusOfDTC(DTC 状态) 0x00(0000 0000b)。
    • 下述假定适用于 DTC 0xABCD01, statusOfDTC(DTC 状态) 0x2F(0010 1111b)。
      在这里插入图片描述
      在这里插入图片描述

7、sub-function = 0x19 reportUserDefMemoryDTCExtDataRecordByDTCNumber

检索 DTC 内存中与客户端定义 DTC 掩码以及客户端定义 DTCExtendedData(DTC 扩展数据)记录编号匹配的用户定义内存 DTCExtendedData(DTC 扩展数据)记录数据

  • 请求
    在这里插入图片描述

  • 肯定响应
    在这里插入图片描述
    在这里插入图片描述

  • 示例

否定响应

基本格式:

<0x7F> + <SID> + <NRC>

看起来比较简单,格式比较固定,只要是Negative Response,第一字节就是0x7F,第二字节照抄原来的SID,第三个字节是错误响应码,指示具体错误响应的原因
在这里插入图片描述

UDS中常用 NRC

在这里插入图片描述

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

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

相关文章

Selenium教程06:单选框+多选框+下拉框组件的示例练习

1.Radio单选框的示例用法&#xff0c;通过网页元素class和type属性多条件共同定位元素&#xff0c;模拟依次选中Android&#xff0c;Apple&#xff0c;Windows。 网页元素结构 <input type"radio" class"ivu-radio-input" name"ivuRadioGroup_170…

汽车架构解析:python cantools库快速解析arxml

文章目录 前言一、安装cantools二、官方说明文档三、cantools方法1、解析message的属性2、解析pdu中的signals3、根据message查找signals4、报文组成bytes 总结 前言 曾经有拿cantools来解析过dbc&#xff0c;用得比较浅&#xff0c;不知道可以用来解析arxml。最近有个需求需要…

从C++习题中思考

目录 一.开始1.1 二.变量和基本类型 C Peimer习题集第5版练习。 一.开始 1.1 编写程序&#xff0c;提示用户输入2个整数&#xff0c;打印出这两个整数指定的范围内的所有整数。 方式1&#xff1a;使用while循环。 #include<iostream> using namespace std; int main() …

Unity 2022 版本 寻路 NavMesh

官方教程地址 https://docs.unity3d.com/Packages/com.unity.ai.navigation1.1/manual/index.html 首先装包 先给地图 和 阻挡 设置为静态 然后给地上行走的地方 添加组件 可以直接bake 然后会显示蓝色的可行走路径 player 添加插件 然后给角色添加脚本 using System.Co…

C++的基础语句

C前奏 1.变量的定义2.键入和输出3.运算符4.sizeof()函数5.判断6.goto语句7.总结 这个专题&#xff0c;我会用简单的语言介绍C的语法&#xff0c;并会适当的对比实现相同或相似功能的C与python代码写法上的不同。 1.变量的定义 对于python来说&#xff0c;我们可以跳过定义直接…

梯度下降法

前言&#xff1a;在均方差损失函数推导中&#xff0c;我使用到了梯度下降法来优化模型&#xff0c;即迭代优化线性模型中的和。现在进一步了解梯度下降法的含义以及具体用法。 一、梯度下降法(入门级理解&#xff09; 定义&#xff1a;梯度下降是一种用于最小化损失函数的优化…

OceanBase入选Gartner®云数据库管理系统魔力象限“荣誉提及”

近日&#xff0c;全球IT市场研究和咨询公司Gartner发布最新报告《Magic Quadrant™ for Cloud Database Management Systems》&#xff08;全球云数据库管理系统魔力象限&#xff09;。全自研分布式数据库 OceanBase 入选“荣誉提及”&#xff0c;2022 年推出的云数据库 OB Clo…

成都直播电商市场发展空间广阔,成都直播产业园预计未来三年市场规模持续上升

近年&#xff0c;直播产业已经成为了国民经济复苏的重要平台之一。随着“直播带货”这种消费模式的兴起&#xff0c;目前&#xff0c;成都直播市场上展现出了强大的潜力和活力&#xff0c;并且加快了实体商业向数字化转型的步伐&#xff0c;预计&#xff0c;成都直播产业园未来…

【elfboard linux开发板】7.i2C工具应用与aht20温湿度寄存器读取

1. I2C工具查看aht20的温湿度寄存器值 1.1 原理图 传感器通过IIC方式进行通信&#xff0c;连接的为IIC1总线&#xff0c;且设备地址为0x38&#xff0c;实际上通过后续iic工具查询&#xff0c;这个设备是挂载在iic-0上 1.2 I2C工具 通过i2c工具可以实现查询i2c总线、以及上面…

Jenkins部署项目

一.安装jenkins 1.1进入jenkins官网下载jenkins war包&#xff0c;上传到服务器/usr/local目录。 1.2执行启动jenkins命令&#xff0c;&#xff08;注意jenkins版本需要的jdk版本&#xff09; /usr/local/java11/bin/java -Djava.awt.headlesstrue -jar /usr/local/jenkins.wa…

『华为云耀云服务器实战』|云服务器如何快速搭建个人博客(图文详解)

文章目录 引言一、云耀云服务器L实例介绍1.1 准备一个华为云耀云服务器1.2 重置实例密码1.3 利用xshell 远程连接 二、安装环境软件2.1 安装git准备远程拉取2.2 安装Docker 和 Docker compose 三、博客开源项目介绍3.1 操作界面展览 四、拉取项目搭建个人博客4.1 拉取项目进行配…

优势演员-评论家算法 A2C

优势演员-评论家算法 A2C 优势演员-评论家算法 A2C主要思想目标函数 优势演员-评论家算法 A2C 前置知识&#xff1a;演员-评论家算法&#xff1a;多智能体强化学习核心框架 主要思想 AC 网络结构&#xff1a; 策略网络 - 演员: 这个网络负责根据当前的状态选择动作。它输出的是…