UDS诊断学习笔记
定义介绍:
UDS(Unified Diagnostic Service)诊断的诊断服务。诊断协议是面向整车所有ECU(电控单元)的一种诊断通信协议,是诊断服务的规范化标准。
UDS本质上是一系列服务的集合,UDS的服务包含了6大类,共26种,每种服务都有自己独立的ID,即SID(Service Identifier)
通信模式:
实际上是与ECU交互的过程,即诊断仪请求(Request)ECU,ECU给出对应响应(Response)。
UDS寻址模式:
1.物理寻址,点对点,一对一,可根据物理地址的不同进行访问,但只能访问单个节点。
2.功能寻址,广播模式,一对多,根据功能的不同进行访问,它可以访问多个ECU节点,其SID对于标准帧来说,通常是7DF。
UDS的服务:
罗列出常用的15种服务,支持子功能的有10、11、27、28、3E、85、19、31,子功能通常是这些服务具有某些已经定义好的功能。
1.$10
10服务是Diagnostic Session Control诊断会话控制,子功能有01、02、03三种,这三种代表10服务可以进入的3种不同的会话模式。
01 Default默认会话,02 Programming编程会话(用于解锁bootloader相关的诊断服务,即程序烧录。),03 Extended扩展会话,ECU上电时,进入的是默认会话(Default)。
指令格式:
请求:10 SF
SF:子功能,比如01、02、03,编程会话只能通过先进扩展会话之后再进编程会话,当前为编程会话,不能直接发10 03跳转到扩展会话。
肯定相应:50 SF sessionParameterRecord[](4byte)
0x40+SID=0x50
SF是对应请求的子功能,请求是什么子功能,他便显示什么子功能。
会话参数记录有P2Server_max(2byte)和P2*Server_max(2byte),高位在前的表示方式。
P2Server_max:指的是ECU在收到请求和给出响应之间的这个时间间隔,他描述了ECU的反应速度。
P2*Server_max:在ECU给出NRC 78(等待)之后生效,所以会需要更长的反应时间。
否定相应:7F SID NRC(否定相应码)
否定相应格式一定,SID对应请求的SID,NRC为Negative Response Code,即会有一些类似于一个指令格式或数据是否正确的判断,在发送不是一个正常指令时,ECU就会给你这个NRC,相当于一个提示,可以通过不同的NRC判断指令的错误原因。比如常见的7E表示SF在此会话不支持(在编程会话发10 03即会出现)、12表示SF不支持(发10 FF这种不支持的SF)、13表示发出的此SID格式长度不符合标准定义的SID的格式(10服务定义的两个byte,发10 01 01,即会得到此NRC)。
以下服务,下期再解析。
2.$11
11服务是ECU Reset复位
3.$27
27服务是Security Access安全访问
4.$28
28服务是Communication Control通讯控制
5.$85
85服务是Control DTC Setting控制DTC设置
6.$22
22服务是Read Data By Identifier读DID
7.$2E
2E服务与22服务相对,是Write Data By Identifier写DID
8.$14
14服务是Clear Diagnostic Information清诊断信息
9.$19
19服务是Read DTC Information 读取故障码信息
10.$2F
2F服务是Input Output Control By Identifier通过ID控制输入输出
11.$31
31服务是Routine Control例程控制
12.$34
34服务是Request Download请求下载
13.$36
36服务是Transfer Data数据传输
14.$37
37服务是Request Transer Exit请求推出传输
15.$3E
3E服务是Tester Present待机握手
UDS诊断学习笔记的更多相关文章
- Oracle学习笔记三 SQL命令
SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)
- Log4j简单学习笔记
log4j结构图: 结构图展现出了log4j的主结构.logger:表示记录器,即数据来源:appender:输出源,即输出方式(如:控制台.文件...)layout:输出布局 Logger机滤器:常 ...
- 《Java学习笔记(第8版)》学习指导
<Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...
- Redis学习笔记之ABC
Redis学习笔记之ABC Redis命令速查 官方帮助文档 中文版本1 中文版本2(反应速度比较慢) 基本操作 字符串操作 set key value get key 哈希 HMSET user:1 ...
- TCP/IP协议学习笔记
计算机网络基础知识复习汇总:计算机网络基础知识复习 HTTP协议的解析:剖析 HTTP 协议 一个系列的解析文章: TCP/IP详解学习笔记(1)-- 概述 TCP/IP详解学习笔记(2)-- 数据链 ...
- Dynamic CRM 2013学习笔记(二)插件基本用法及调试
插件是可与 Microsoft Dynamics CRM 2013 和 Microsoft Dynamics CRM Online 集成的自定义业务逻辑(代码),用于修改或增加平台的标准行为.也可 ...
- ETHREAD APC 《寒江独钓》内核学习笔记(4)
继续学习windows 中和线程有关系的数据结构: ETHREAD.KTHREAD.TEB 1. 相关阅读材料 <windows 内核原理与实现> --- 潘爱民 2. 数据结构分析 我们 ...
- <老友记>学习笔记
这是六个人的故事,从不服输而又有强烈控制欲的monica,未经世事的千金大小姐rachel,正直又专情的ross,幽默风趣的chandle,古怪迷人的phoebe,花心天真的joey——六个好友之间的 ...
- Oracle RAC学习笔记:基本概念及入门
Oracle RAC学习笔记:基本概念及入门 2010年04月19日 10:39 来源:书童的博客 作者:书童 编辑:晓熊 [技术开发 技术文章] oracle 10g real applica ...
随机推荐
- Pi1-加电
作为理工男,怎么能不折腾?终于等到我4G版的树莓派4. 1.制作系统.新手当然上官网下载官方系统,img文件,写入tf卡.mac下的步骤请见<mac下制作树莓派系统盘>,一步步来就行.思路 ...
- 工控随笔_C#连接PLC_之_C#入门_03_基本数据类型
using System; using System.Collections.Generic; using System.Linq; using System.Text; //namespace 关键 ...
- nexus 3.x最新版下载安装和上传下载jar
注意: nexus 3.x最新版好像不用下载索引了,目前我使用一些基本功能没有索引也能耍的很6 下载 nexus最新版下载https://www.sonatype.com/download-oss-s ...
- java基础:
java基础: 内容. 待续........
- 快速排序(Quick Sort)C语言
已知数组 src 如下: [5, 3, 7, 6, 4, 1, 0, 2, 9, 10, 8] 快速排序1 在数组 src[low, high] 中,取 src[low] 作为 关键字(key) . ...
- 【MySQL】各种小坑-持续更新
中文乱码问题 在建表的时候额外执行 ALTER TABLE camera CONVERT TO CHARACTER SET utf8; 如果还是不行注意看一下precision,为2的时候容易出现?? ...
- Go基础编程实践(十)—— 数据库
从数据库中读取数据 在http://sqlitebrowser.org/下载sqlite3可视化工具,在本main.go同目录下创建personal.db数据库,创建表如下: package main ...
- java之 代理设计模式
1. 设计一个案例来实现租房功能.分析:在租房的过程中涉及到了3个对象,房东,中介,房客. 中介和房客具有相同的功能--租房. 可以设计如下: 2.上图的设计实际上就是一个代理设计模式---静态代理设 ...
- 使用JDK的zip编写打包工具类
JDK自带的zip AIP在java.util.zip包下面,主要有以下几个类: java.util.zip.ZipEntryjava.util.zip.ZipInputStreamjava.util ...
- 2019 世纪龙java面试笔试题 (含面试题解析)
本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.世纪龙等公司offer,岗位是Java后端开发,因为发展原因最终选择去了世纪龙,入职一年时间了,也成为了面试官 ...