当前位置: 首页 > article >正文

UDS诊断-面试题2

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.kler.cn/a/312195.html

相关文章:

  • 使用ookii-dialogs-wpf在WPF选择文件夹时能输入路径
  • void * 指针与整数进行加减运算
  • 从0开始学docker (每日更新 24-11-7)
  • 番外:MySQL的一些事务处理
  • 微服务容器化部署实践(FontConfiguration.getVersion)
  • el-table 纵向垂直表头处理
  • 掌握Protobuf精髓:深入解析.proto文件语法及高效应用
  • 蓝桥杯4. Fizz Buzz 经典问题
  • sql基础语法及常见函数等
  • 解决:The play() request was interrupted by a call to pause().报错
  • Android Glide:让图片加载从未如此简单
  • 14_input子系统my_touch_device,my_touch_handlerLinux内核模块
  • Android 将EasyPermissions进一步封装,使得动态权限申请更加简明
  • Java 23、JDK 23正式发布!
  • C++之第十二课
  • 红日药业携手实在智能,构建RPA数字员工平台满足业务一体化需求 | 实在RPA案例
  • Java 多态(难)
  • VS运行程序时报错--无法定位程序输入点
  • Gitlab学习(007 gitlab项目操作)
  • 电影《祝你幸福!》观后感
  • 梧桐数据库(WuTongDB):SQL Server Query Optimizer 简介
  • OSPFv3协议几类LSA介绍
  • 【图像压缩与重构】基于标准+改进BP神经网络
  • Linux实操笔记2 Ubuntu安装Nginx的不同方法
  • python检测keycloak证书连接报错问题
  • 基于多域名,通过云运营商弹性负载,Nginx配置等基于的多租户系统部署