UDS (Unified Diagnostic Services)汽车诊断标准协议

参考文献:
《道路车辆统一诊断服务(UDS) Road vehicles - Unified diagnostic services》

1.专业术语

1.TP:Tester Present待机握手
2.支持的诊断故障码(DTC) supported DTC
  当前被配置并且能够在预定义的车辆条件下执行的诊断故障代码。
3.诊断设备 tester
  控制诸如车载电子控制单元的测试,检查,监控或诊断等功能的系统,可专用于特定类型的操作员(例如专用于车库机械的非车载扫描工具,专用于装配厂的非车载测试工具或车载诊断仪)

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

1. 诊断会话控制(0x10)服务 Diagnostic Session Control

Diagnostic Session诊断会话有默认,编程,扩展三种模式。Note:服务端在上电时应进入默认诊断会话

/*Diagnostic Session*/
static void DigSession(struct UDSServiceInfo* i_pstUDSServiceInfo, tUdsAppMsgInfo *m_pstPDUMsg);
/*define session mode*/
#define DEFALUT_SESSION (1u << 0u)       /*default session*/
#define PROGRAM_SESSION (1u << 1u)       /*program session*/
#define EXTEND_SESSION (1u << 2u)        /*extend session*/

2. ECU 复位(0x11)服务 ECU Reset

  客户端使用 ECU 复位服务来请求服务端重置。
Note:①ECU 复位肯定响应消息(如果需要)应在服务端执行重置之前发送。含义如何解释:当ECU复位以后,“丢掉记忆,重新开始,它就不记得之前干过(收到什么指令)什么!”故执行复位前,应该先肯定响应消息后复位。
②还有一点值得注意:服务端重置成功后,将激活默认会话

3. 安全访问(0x27)服务 Security Access

  使用该服务的典型示例如下所示:客户端请求“种子”,服务端发送“种子”,客户端发送“密钥”(与接收的种子配对),服务端响应“密钥”有效,并且它将自行解锁。
Note:举个生活通俗例子:Tester通过手机获取验证码,ECU发送验证码过来,然后Tester使用验证码登录,ECU密码有效登录成功!

4. 通信控制(0x28)服务 Communication Control

  该服务的目的是开启/关闭服务端(例如应用程序 通信消息)的某些消息的发送和/或接收。

5. 诊断设备在线(0x3e)服务 Tester Present

  客户端向服务端指示客户端仍然与网络连接。还有一个叫法:待机握手,”就是说我客户端(诊断设备)还在和网络握手,还没有断开连接,你可要知道这个情况呀“。
Note:谈谈这东西的用法,我们知道诊断会话有三种模式:默认,编程,扩展。如果你不想要服务端保留在默认模式,可以通过定期发送诊断设备在线请求消息达到这一目的。

6. 控制诊断故障码(DTC)设置(0x85)服务 Control DTC Setting

在这里插入图片描述
数据传输中以下四种服务常用:

1. 通过标识符读取数据(0x22)服务 Read Data By Identifier

2. 通过地址读取内存(0x23)服务 Read Memory By Address

3. 通过标识符写入数据(0x2E)服务Write Data By Identifier

4. 通过地址写入内存(0x3D)服务Write Memory By Address

在这里插入图片描述

1. 请求下载(0x34)服务 RequestDownload

2. 请求上传(0x35)服务 RequestUpload

3. 传输数据(0x36)服务 TransferData

4. 请求终止传输(0x37)服务 RequestTransferExit

5. 例行控制(0x31)服务 RoutineControl

正在更新!待续

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

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

相关文章

LeetCode 37题:解数独

题目 编写一个程序&#xff0c;通过填充空格来解决数独问题。 数独的解法需 遵循如下规则&#xff1a; 数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。&#xff08;请参考示例图&#xff09; 数独…

vue2中使用mixins(混入)和vue3中使用composable

文章目录 一、mixins混入1、 新建mixins文件夹&#xff0c;新建myMixins.js2、myMixins.js 文件3、index.vue 文件&#xff08;要使用的文件&#xff09; mixins 总结二、composable(组合式api composition )1、 新建composables文件夹&#xff0c;新建useEdit.js2、useEdit.js…

AMS的起源,SystemServer的前世今生

作者&#xff1a;OpenGL 前世 SystemServer的创建还得追溯到之前的Zygote进程中的ZygoteInit代码中。这里的Zygote.forkSystemServer()方法就是实现分裂的关键代码。它内部调用了native方法实现了进程分裂。 执行完这行代码之后。我们的系统中就会出现两个一模一样的进程&…

对任意类型数都可以排序的函数:qsort函数

之前我们学习过冒泡排序&#xff1a; int main() {int arr[] { 9,7,8,6,5,4,3,2,1,0 };int sz sizeof(arr)/sizeof(arr[0]);int i 0;for (i 0; i < sz-1; i) {int j 0;for (j 0; j < sz-1-i; j) {if (arr[j] > arr[j 1]){int temp 0;temp arr[j];arr[j] ar…

Java通过文件流和文件地址下载文件

通过文件流下载文件 如何使用 MultipartFile 进行文件上传、下载到本地&#xff0c;并返回保存路径呢&#xff1a; import org.springframework.web.multipart.MultipartFile;import java.io.BufferedOutputStream; import java.io.FileOutputStream; import java.io.IOExcep…

laravel框架中批量更新数据

在php框架中 tp中就有批量更新封装好的 SaveAll 在laravel中有批量插入没有批量更新操作;因此我们可以自己去封装一个 然后批量进行更新操作 封装参考代码: /*** 批量更新** param $tableName 表名称* param string $pk 更新的字段* param array $multipleData 要更新的数据*…

多智能体共识算法的粗略数学证明

这篇文章是对论文《Consensus and Cooperation in Networked Multi-Agent Systems》中定理一的粗略数学证明。 论文中的定理一&#xff1a; 对一个由 n 个智能体以拓扑结构 G 组成的网络&#xff0c;使用以下共识算法&#xff1a; x ˙ i ( t ) Σ j ∈ N i a i j ( x j ( t…

【BEV】3D视觉 PRELIMINARY

这里的知识来自于论文 Delving into the Devils of Bird’s-eye-view Perception: A Review, Evaluation and Recipe 的 Appendix B.1 部分来自 这篇文章 从透视图转向鸟瞰图。&#xff08;Xw、Yw、Zw&#xff09;、&#xff08;Xc、Yc、Zc&#xff09;表示世界World坐标和相…

React - useEffect函数的理解和使用

文章目录 一&#xff0c;useEffect描述二&#xff0c;它的执行时机三&#xff0c;useEffect分情况使用1&#xff0c;不写第二个参数 说明监测所有state&#xff0c;其中一个变化就会触发此函数2&#xff0c;第二个参数如果是[]空数组&#xff0c;说明谁也不监测3&#xff0c;第…

Word 2019打开.doc文档后图片和公式不显示(呈现为白框)的解决办法

Word 2019打开.doc文档后图片和公式不显示&#xff08;呈现为白框&#xff09;的解决办法 目录 Word 2019打开.doc文档后图片和公式不显示&#xff08;呈现为白框&#xff09;的解决办法一、问题描述二、解决方法1.打开 WORD 2019&#xff0c;点击菜单中的“文件”&#xff1b;…

无服务器架构发布啦!

导读Serverless 1.15.2 已发布。The Serverless Framework (无服务器架构&#xff09;允许你自动扩展、按执行付费、将事件驱动的功能部署到任何云。 目前支持 AWS Lambda、Apache OpenWhisk、Microsoft Azure&#xff0c;并且正在扩展以支持其他云提供商。 Serverless 降低了…

iOS-砸壳篇(两种砸壳方式)

CrackerXI砸壳呢&#xff0c;当时你要是使用 frida-ios-dump 也是可以的&#xff1b; https://github.com/AloneMonkey/frida-ios-dump frida-ios-dump: 代码中需要更改的&#xff1a;手机中的内网ip 密码 等 最后放到我的砸壳路径里&#xff1a; python dump.py -l查看应用…