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 | 诊断会话控制 |
11 | ECU复位 |
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格式