UDS诊断-面试题2

server/2024/9/25 20:43:43/

bilibili视频推荐:

车载测试面试题UDS诊断协议,你知道什么是UDS诊断?ECU是什么?刷写ECU_哔哩哔哩_bilibili

总结:

1.汽车诊断UDS含义:

一套统一的诊断服务命令。

2.具体操作流程:

使用电脑或者手持诊断仪,向ecu发送一串命令,然后等待汽车中的ecu返回数据或者故障码信息。

3.UDS服务是哪个服务规定的?协议编号是多少?

ISO14229-1

4.UDS的26个服务,简称SID  

5.SID分为6大类服务:

(红色是测试经常用到的服务)

                                            诊断和通信管理功能单元

SID(0x)诊断服务名(中英文)
10诊断会话控制
11ECU复位
27安全访问
28通讯控制
3E诊断仪在线
83访问时间参数
84安全数据传输
85控制DTC设置
86事件响应
87链路控制

                                             故障码传输功能单元

SID(0X)诊断服务名
14清除诊断信息
19读取故障码信息

                                             数据传输类

SID(0X)诊断服务名
22通过ID读数据
2E通过ID写数据
23通过地址读取内存
24通过ID读比例数据
2A通过周期ID读取数据
2C动态定义标识符
3D通过地址写内存

                                               输入输出控制功能单元

SID(0X)诊断服务名例子
2F通过ID控制输入输出通过发送id控制车窗的升降

                                               例行程序功能单元

SID(0X)诊断服务名例子
31例行程序控制

                                               上传和下载功能单元

SID(0X)诊断服务名
34请求下载
35请求上传
36数据传输
37请求退出传输
38请求文件传输
6.UDS诊断请求和响应  

过程:诊断仪向ecu发送诊断请求,等待ecu接收到请求后,给诊断仪发送响应结果

请求响应格式:符合uds服务的16进制报文

例子:

请求:22  01  07;含义:22:读取服务,01 07:要去读取的数据id

积极响应:62 01  07 7C 32;含义:62=22+40

消极响应:7F 22  11;含义:7F:否定响应,11:否定响应码(NRC)

7.经常用到的否定响应码:NRC

78响应码的含义比较特殊:已收到请求,但晚些响应。

8.can总线上会挂载着上百个ecu,请求报文是怎么发送给指定的ecu呢?

首先,每个ecu都会有唯一的诊断请求和响应的can报文id

 

然后,进行物理寻址请求:id 702(一对一)或者功能寻址请求:id 7DF(信息群发)

9.0x10服务

默认会话:读取故障码22、重置ec11等

扩展会话:解锁ecu、控制输入输出

编程会话:34~38服务

注意:

10. 服务请求和响应报文的报文格式  

其中P2ServerMax:响应等待时间,P2*ServerMax:增强会话响应时间,响应最大的响应时间

11.UDS报文传输的四种帧~IS015765-2规定uds报文传输细节

单帧(SF)传输,0开头的为单帧例子:

多帧(FF)传输,例子:

1是首帧,3是流控帧,2是连续帧

12.编程会话下,解锁 ecu流程

诊断仪发送一个生成种子请求给ecu,ecu生成随机种子,然后将生成的种子返回给诊断仪,并且通过安全算法计算出key,诊断仪也使用自己的安全算法计算出key,并将其发送给ecu,进行验证操作,如果两边key相同则返回结果给诊断仪。

解锁ecu时,经常会遇到的nrc

13. 诊断故障码DTC

例子五位故障码:P0420:P0 0x4 0x20

P:

0:

4:

20:

14.SAE J2012-DA进行解码可以看到故障码具体属于什么类型,三位故障码?

三位故障码,相对于两位故障码多了FTB(故障类型字节)

FTB类型:

15:故障码状态码DTC Status

09十六进制转为二进制,每个bit含义:

16.19 01服务:读取故障码的数量

DTC SAM:支持的故障码状态,FF指的是支持所有故障

DTC FID:支持的DTC 格式,00表示最常见的DTC格式

17.0x19服务中的02子功能:读取故障码列表


http://www.ppmy.cn/server/122000.html

相关文章

线程的状态及常用方法

1. 线程的状态 在Java程序中,一个线程对象通过调用start()方法启动线程,并且在线程获取CPU时,自动执行run()方法。run()方法执行完毕,代表线程的生命周期结束。在整个线程的生命周期中,线程的状态有以下6种&#xff1…

LabVIEW提高开发效率技巧----利用第三方库和工具

LabVIEW开发不仅依赖于自身强大的图形化编程能力,还得益于其庞大的用户社区和丰富的第三方库。这些工具和库能够帮助开发者快速解决问题,提升开发效率,避免从头开始编写代码。 1. LabVIEW工具网络(NI Tools Network) …

深入学习 mybatis:入门代码搭建

一直在使用 mybatis 作为持久层框架&#xff0c;却一直没有深入研究过它&#xff0c;从今天开始&#xff0c;把 mybatis 再好好的学习一遍 环境搭建 为了后续的深入学习&#xff0c;先来搭建一个简单的入门 demo。 新建 maven 项目 配置 pom.xml <?xml version"1.…

JS中的事件和DOM操作

一、事件[重要] 1、 事件介绍 事件: 就是发生在浏览器(页面)上一件事,键盘事件,鼠标事件,表单事件,加载事件等等 2、 事件绑定方式 事件要想发生,就得将事件和标签先绑定(确定哪个标签发生什么事情,又有什么响应) 一个完整的事件有三部分 事件源(标签),哪里发出的事. 什么事(…

Android APN type 配置和问题

问题/疑问 如果APN配置了非法类型(代码没有定义的),则APN匹配加载的时候最终结果会是空类型。 那么到底是xml解析到数据库就是空type呢?还是Java代码匹配的时候映射是空的呢? Debug Log 尝试将原本的APN type加入ota或者新建一条ota type APN,检查log情况。 //Type有…

Nature子刊 | 通过眼动控制机器人的脑机接口

人机交互是一个快速发展的领域&#xff0c;机器人在我们的日常生活中发挥着越来越积极的作用。病人护理是机器人越来越多出现的领域之一&#xff0c;尤其是对残疾人来说。患有神经退行性疾病的人可能不会有意识或自愿地进行除眼睛或眼睑以外的运动。在这种情况下&#xff0c;脑…

计算机毕业设计之:基于uni-app的校园活动信息共享系统设计与实现(三端开发,安卓前端+网站前端+网站后端)

博主介绍&#xff1a; ✌我是阿龙&#xff0c;一名专注于Java技术领域的程序员&#xff0c;全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师&#xff0c;我在计算机毕业设计开发方面积累了丰富的经验。同时&#xff0c;我也是掘金、华为云、阿里云、InfoQ等平台…

带头双向循环链表各种接口的实现(C)

链表分类 单向或双向 带头或不带头 循环或非循环 合计有八种 带头双向循环链表 结构最复杂&#xff0c;一般用在单独存储数据。实际中使用的链表数据结构&#xff0c;都是带头双向循环链表。使用代码实现&#xff0c;结构会带来很多优势&#xff0c;实现反而简单了。 创…