UDS服务理解
UDS服务理解
UDS 服务理解框架
这份文档用一个固定框架吸收所有 UDS 服务:
服务目的 -> 使用条件 -> 请求格式 -> 示例报文 -> 示例逐字节解释 -> 正响应 -> 负响应 -> 常见子功能/对象
读任何服务时,不要先背字节,先问 7 个问题:
- 这个服务让 ECU 干什么?
- 它在哪个会话/安全等级下能用?
- 请求报文由哪些字段组成?
- 示例报文每个字节是什么意思?
- ECU 收到后做什么业务动作?
- 成功怎么回?
- 失败用哪个 NRC 说明原因?
通用报文规则
1.1 请求报文
UDS 请求可以抽象成:
SID + 子功能/动作参数 + 目标对象 + 数据参数
字段理解:
表格 还在加载中,请等待加载完成后再尝试复制
1.2 正响应
正响应 SID 统一等于:
请求 SID + 0x40
表格 还在加载中,请等待加载完成后再尝试复制
1.3 负响应
负响应格式统一:
7F + 原请求 SID + NRC
例:
7F 2F 31
意思是:2F 服务失败,原因是 31 requestOutOfRange。
常见 NRC:
表格 还在加载中,请等待加载完成后再尝试复制
当前工程服务总览
表格 还在加载中,请等待加载完成后再尝试复制
0x10 DiagnosticSessionControl
目的
切换 ECU 当前诊断会话。很多服务只有在扩展会话或编程会话下才能执行。
常见子功能
表格 还在加载中,请等待加载完成后再尝试复制
请求格式
10 sessionType
示例请求
10 03
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
ECU 执行动作
ECU 检查会话切换是否允许,允许后准备切换到目标会话。
正响应格式
50 sessionType P2_H P2_L P2_H P2_L
示例正响应
50 03 00 32 00 C8
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
常见负响应
7F 10 12 子功能不支持
7F 10 22 条件不满足
7F 10 7E 当前会话不允许切换到目标会话
0x11 ECUReset
目的
请求 ECU 执行复位。
常见子功能
表格 还在加载中,请等待加载完成后再尝试复制
请求格式
11 resetType
示例请求
11 01
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
正响应格式
51 resetType
示例正响应
51 01
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
ECU 执行动作
ECU 先发正响应,再执行复位动作。
常见负响应
7F 11 12 resetType 不支持
7F 11 22 当前条件不允许复位
0x14 ClearDiagnosticInformation
目的
清除 DTC 故障信息。
请求格式
14 groupOfDTC_H groupOfDTC_M groupOfDTC_L
常见 groupOfDTC
表格 还在加载中,请等待加载完成后再尝试复制
示例请求
14 FF FF FF
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
正响应格式
54
示例正响应
54
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
常见负响应
7F 14 13 长度错误
7F 14 22 条件不满足
7F 14 31 DTC 组不支持
0x19 ReadDTCInformation
目的
读取故障码数量、故障码列表、快照数据和支持的 DTC。
常见子功能
表格 还在加载中,请等待加载完成后再尝试复制
示例 1:读取 DTC 数量
请求:
19 01 FF
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
UDS 服务理解框架
这份文档用一个固定框架吸收所有 UDS 服务:
服务目的 -> 使用条件 -> 请求格式 -> 示例报文 -> 示例逐字节解释 -> 正响应 -> 负响应 -> 常见子功能/对象
读任何服务时,不要先背字节,先问 7 个问题:
- 这个服务让 ECU 干什么?
- 它在哪个会话/安全等级下能用?
- 请求报文由哪些字段组成?
- 示例报文每个字节是什么意思?
- ECU 收到后做什么业务动作?
- 成功怎么回?
- 失败用哪个 NRC 说明原因?
通用报文规则
1.1 请求报文
UDS 请求可以抽象成:
SID + 子功能/动作参数 + 目标对象 + 数据参数
字段理解:
表格 还在加载中,请等待加载完成后再尝试复制
1.2 正响应
正响应 SID 统一等于:
请求 SID + 0x40
表格 还在加载中,请等待加载完成后再尝试复制
1.3 负响应
负响应格式统一:
7F + 原请求 SID + NRC
例:
7F 2F 31
意思是:2F 服务失败,原因是 31 requestOutOfRange。
常见 NRC:
表格 还在加载中,请等待加载完成后再尝试复制
当前工程服务总览
表格 还在加载中,请等待加载完成后再尝试复制
0x10 DiagnosticSessionControl
目的
切换 ECU 当前诊断会话。很多服务只有在扩展会话或编程会话下才能执行。
常见子功能
表格 还在加载中,请等待加载完成后再尝试复制
请求格式
10 sessionType
示例请求
10 03
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
ECU 执行动作
ECU 检查会话切换是否允许,允许后准备切换到目标会话。
正响应格式
50 sessionType P2_H P2_L P2_H P2_L
示例正响应
50 03 00 32 00 C8
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
常见负响应
7F 10 12 子功能不支持
7F 10 22 条件不满足
7F 10 7E 当前会话不允许切换到目标会话
0x11 ECUReset
目的
请求 ECU 执行复位。
常见子功能
表格 还在加载中,请等待加载完成后再尝试复制
请求格式
11 resetType
示例请求
11 01
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
正响应格式
51 resetType
示例正响应
51 01
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
ECU 执行动作
ECU 先发正响应,再执行复位动作。
常见负响应
7F 11 12 resetType 不支持
7F 11 22 当前条件不允许复位
0x14 ClearDiagnosticInformation
目的
清除 DTC 故障信息。
请求格式
14 groupOfDTC_H groupOfDTC_M groupOfDTC_L
常见 groupOfDTC
表格 还在加载中,请等待加载完成后再尝试复制
示例请求
14 FF FF FF
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
正响应格式
54
示例正响应
54
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
常见负响应
7F 14 13 长度错误
7F 14 22 条件不满足
7F 14 31 DTC 组不支持
0x19 ReadDTCInformation
目的
读取故障码数量、故障码列表、快照数据和支持的 DTC。
常见子功能
表格 还在加载中,请等待加载完成后再尝试复制
示例 1:读取 DTC 数量
请求:
19 01 FF
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
正响应:
59 01 AA 01 00 03
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
示例 2:读取 DTC 列表
请求:
19 02 FF
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
正响应:
59 02 AA 12 34 56 2F 23 45 67 2F
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
示例 3:读取指定 DTC 快照
请求:
19 04 12 34 56 01
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
正响应:
59 04 12 34 56 2F snapshotData…
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
常见负响应
7F 19 12 子功能不支持
7F 19 13 长度错误
7F 19 31 DTC、状态掩码或记录号不支持
7F 19 7E 当前会话不支持该子功能
0x22 ReadDataByIdentifier
目的
按 DID 读取 ECU 数据。
请求格式
22 DID_H DID_L [DID_H DID_L …]
常见 DID 类型
表格 还在加载中,请等待加载完成后再尝试复制
示例请求
22 F1 90
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
正响应格式
62 DID_H DID_L data…
示例正响应
62 F1 90 31 32 33 34 35 36 37 38 39 …
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
多 DID 示例
请求:
22 F1 90 F1 A1
响应:
62 F1 90 data1… F1 A1 data2…
理解:一次读多个 DID,响应中按顺序返回每个 DID 和数据。
常见负响应
7F 22 13 长度错误
7F 22 31 DID 不支持
7F 22 33 权限不够
7F 22 7F 当前会话不支持该服务
0x27 SecurityAccess
目的
通过 Seed/Key 获取安全权限。很多写入、IO 控制、刷写服务都要先解锁。
常见子功能
表格 还在加载中,请等待加载完成后再尝试复制
示例 1:请求 seed
请求:
27 01
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
正响应:
67 01 seed16…
逐字段解释:
表格 还在加载中,请等待加载完成后再尝试复制
示例 2:发送 key
请求:
27 02 key32…
逐字段解释:
表格 还在加载中,请等待加载完成后再尝试复制
正响应:
67 02
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
ECU 执行动作
ECU 发 seed 后保存 seed;收到 key 后,用内部密钥和 seed 计算结果,与 tester 发来的 token 比较。匹配则安全等级提升,不匹配则返回 invalidKey 并累计错误次数。
常见负响应
7F 27 12 子功能不支持
7F 27 24 没有先请求 seed 就发 key,或等级不匹配
7F 27 35 key 错误
7F 27 36 错误次数超限
7F 27 37 延时时间未到
0x28 CommunicationControl
目的
控制 ECU 某类通信报文的接收和发送。
常见子功能
表格 还在加载中,请等待加载完成后再尝试复制
communicationType 常见值
表格 还在加载中,请等待加载完成后再尝试复制
示例请求
28 03 01
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
正响应格式
68 controlType
示例正响应
68 03
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
常见负响应
7F 28 12 子功能不支持
7F 28 22 条件不满足
7F 28 31 communicationType 不支持
0x2E WriteDataByIdentifier
目的
按 DID 写入 ECU 数据。
当前工程常见可写 DID
表格 还在加载中,请等待加载完成后再尝试复制
请求格式
2E DID_H DID_L data…
示例请求
2E F1 90 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 36 37
逐字段解释:
表格 还在加载中,请等待加载完成后再尝试复制
正响应格式
6E DID_H DID_L
示例正响应
6E F1 90
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
常见负响应
7F 2E 13 写入数据长度不等于 DID 定义长度
7F 2E 31 DID 不支持写入
7F 2E 33 安全权限不够
7F 2E 7F 当前会话不支持该服务
0x2F InputOutputControlByIdentifier
目的
临时控制 ECU 的输入/输出对象,例如阀位置、水泵使能和转速。
controlParameter 常见值
表格 还在加载中,请等待加载完成后再尝试复制
当前工程支持的 IO DID
表格 还在加载中,请等待加载完成后再尝试复制
请求格式
2F DID_H DID_L controlParameter [controlState…]
示例 1:短期控制电机水泵
请求:
2F 65 03 03 01 50
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
正响应:
6F 65 03 03 01 50
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
示例 2:复位空调水泵默认值
请求:
2F 65 04 01
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
正响应:
6F 65 04 01
常见负响应
7F 2F 13 长度错误
7F 2F 22 条件不满足
7F 2F 31 DID 不支持、控制参数不支持或控制值超范围
7F 2F 33 安全权限不够
0x31 RoutineControl
目的
让 ECU 启动、停止或查询一个内部例程。本工程实际主要使用 startRoutine。
常见子功能
表格 还在加载中,请等待加载完成后再尝试复制
当前工程常见 RID
表格 还在加载中,请等待加载完成后再尝试复制
请求格式
31 routineControlType RID_H RID_L [routineControlOption…]
示例 1:检查编程前置条件
请求:
31 01 02 03
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
正响应:
71 01 02 03 00
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
示例 2:擦除内存
请求:
31 01 FF 00 44 00 02 00 00 00 01 00 00
逐字段解释:
表格 还在加载中,请等待加载完成后再尝试复制
可能先返回:
7F 31 78
表示擦除中。完成后返回:
71 01 FF 00 00
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
常见负响应
7F 31 12 子功能不支持
7F 31 13 长度错误
7F 31 22 条件不满足
7F 31 31 RID 或参数不支持
7F 31 33 安全权限不够
7F 31 78 例程执行中
0x34 RequestDownload
目的
开始下载流程,告诉 ECU 下载目标地址和总大小,并获取最大块长度。
请求格式
34 dataFormatIdentifier addressAndLengthFormatIdentifier memoryAddress… memorySize…
示例请求
34 00 44 00 02 00 00 00 01 00 00
逐字段解释:
表格 还在加载中,请等待加载完成后再尝试复制
正响应格式
74 lengthFormatIdentifier maxNumberOfBlockLength…
示例正响应
74 20 01 02
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
常见负响应
7F 34 13 长度错误
7F 34 22 下载条件不满足
7F 34 31 地址、大小或格式超范围
7F 34 33 安全权限不够
7F 34 70 下载不被接受
0x36 TransferData
目的
在 0x34 成功后,按块传输下载数据。
请求格式
36 blockSequenceCounter transferData…
示例请求
36 01 AA BB CC DD
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
正响应格式
76 blockSequenceCounter
示例正响应
76 01
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
常见负响应
7F 36 24 请求顺序错误,未先执行 0x34 或流程状态不对
7F 36 31 数据长度或总量超范围
7F 36 72 写入失败
7F 36 73 blockSequenceCounter 错误
7F 36 92 电压过高
7F 36 93 电压过低
0x37 RequestTransferExit
目的
结束下载传输流程。
请求格式
37
示例请求
37
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
正响应格式
77
示例正响应
77
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
常见负响应
7F 37 13 长度错误
7F 37 24 下载流程未完成或请求顺序错误
0x3E TesterPresent
目的
保持诊断会话,防止 ECU 因 S3 超时回默认会话。
常见子功能
表格 还在加载中,请等待加载完成后再尝试复制
示例请求
3E 00
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
正响应格式
7E 00
示例正响应
7E 00
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
常见负响应
7F 3E 12 子功能不支持
7F 3E 13 长度错误
0x85 ControlDTCSetting
目的
控制 ECU 是否允许 DTC 记录/更新。
常见子功能
表格 还在加载中,请等待加载完成后再尝试复制
请求格式
85 settingType
示例请求
85 02
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
正响应格式
C5 settingType
示例正响应
C5 02
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
常见负响应
7F 85 12 子功能不支持
7F 85 22 条件不满足
复杂服务吸收口诀
复杂服务就按这句话拆:
SID 说明服务,子功能说明动作,DID/RID/DTC/地址说明对象,后面的数据说明值或范围;ECU 检查条件后执行动作,成功回 SID+0x40 并回显关键字段,失败回 7F+SID+NRC。
拿到报文后按这个顺序标注:
- 标 SID:这是哪个服务。
- 标子功能:这次要做哪个动作。
- 标对象:操作哪个 DID/RID/DTC/地址。
- 标参数:写入值、控制值、长度、数据块或校验值。
- 标响应:正响应回显了什么,新增了什么结果字段。
- 标 NRC:失败原因属于长度、条件、权限、范围还是顺序。

正响应:
59 01 AA 01 00 03
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
示例 2:读取 DTC 列表
请求:
19 02 FF
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
正响应:
59 02 AA 12 34 56 2F 23 45 67 2F
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
示例 3:读取指定 DTC 快照
请求:
19 04 12 34 56 01
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
正响应:
59 04 12 34 56 2F snapshotData…
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
常见负响应
7F 19 12 子功能不支持
7F 19 13 长度错误
7F 19 31 DTC、状态掩码或记录号不支持
7F 19 7E 当前会话不支持该子功能
0x22 ReadDataByIdentifier
目的
按 DID 读取 ECU 数据。
请求格式
22 DID_H DID_L [DID_H DID_L …]
常见 DID 类型
表格 还在加载中,请等待加载完成后再尝试复制
示例请求
22 F1 90
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
正响应格式
62 DID_H DID_L data…
示例正响应
62 F1 90 31 32 33 34 35 36 37 38 39 …
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
多 DID 示例
请求:
22 F1 90 F1 A1
响应:
62 F1 90 data1… F1 A1 data2…
理解:一次读多个 DID,响应中按顺序返回每个 DID 和数据。
常见负响应
7F 22 13 长度错误
7F 22 31 DID 不支持
7F 22 33 权限不够
7F 22 7F 当前会话不支持该服务
0x27 SecurityAccess
目的
通过 Seed/Key 获取安全权限。很多写入、IO 控制、刷写服务都要先解锁。
常见子功能
表格 还在加载中,请等待加载完成后再尝试复制
示例 1:请求 seed
请求:
27 01
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
正响应:
67 01 seed16…
逐字段解释:
表格 还在加载中,请等待加载完成后再尝试复制
示例 2:发送 key
请求:
27 02 key32…
逐字段解释:
表格 还在加载中,请等待加载完成后再尝试复制
正响应:
67 02
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
ECU 执行动作
ECU 发 seed 后保存 seed;收到 key 后,用内部密钥和 seed 计算结果,与 tester 发来的 token 比较。匹配则安全等级提升,不匹配则返回 invalidKey 并累计错误次数。
常见负响应
7F 27 12 子功能不支持
7F 27 24 没有先请求 seed 就发 key,或等级不匹配
7F 27 35 key 错误
7F 27 36 错误次数超限
7F 27 37 延时时间未到
0x28 CommunicationControl
目的
控制 ECU 某类通信报文的接收和发送。
常见子功能
表格 还在加载中,请等待加载完成后再尝试复制
communicationType 常见值
表格 还在加载中,请等待加载完成后再尝试复制
示例请求
28 03 01
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
正响应格式
68 controlType
示例正响应
68 03
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
常见负响应
7F 28 12 子功能不支持
7F 28 22 条件不满足
7F 28 31 communicationType 不支持
0x2E WriteDataByIdentifier
目的
按 DID 写入 ECU 数据。
当前工程常见可写 DID
表格 还在加载中,请等待加载完成后再尝试复制
请求格式
2E DID_H DID_L data…
示例请求
2E F1 90 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 36 37
逐字段解释:
表格 还在加载中,请等待加载完成后再尝试复制
正响应格式
6E DID_H DID_L
示例正响应
6E F1 90
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
常见负响应
7F 2E 13 写入数据长度不等于 DID 定义长度
7F 2E 31 DID 不支持写入
7F 2E 33 安全权限不够
7F 2E 7F 当前会话不支持该服务
0x2F InputOutputControlByIdentifier
目的
临时控制 ECU 的输入/输出对象,例如阀位置、水泵使能和转速。
controlParameter 常见值
表格 还在加载中,请等待加载完成后再尝试复制
当前工程支持的 IO DID
表格 还在加载中,请等待加载完成后再尝试复制
请求格式
2F DID_H DID_L controlParameter [controlState…]
示例 1:短期控制电机水泵
请求:
2F 65 03 03 01 50
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
正响应:
6F 65 03 03 01 50
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
示例 2:复位空调水泵默认值
请求:
2F 65 04 01
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
正响应:
6F 65 04 01
常见负响应
7F 2F 13 长度错误
7F 2F 22 条件不满足
7F 2F 31 DID 不支持、控制参数不支持或控制值超范围
7F 2F 33 安全权限不够
0x31 RoutineControl
目的
让 ECU 启动、停止或查询一个内部例程。本工程实际主要使用 startRoutine。
常见子功能
表格 还在加载中,请等待加载完成后再尝试复制
当前工程常见 RID
表格 还在加载中,请等待加载完成后再尝试复制
请求格式
31 routineControlType RID_H RID_L [routineControlOption…]
示例 1:检查编程前置条件
请求:
31 01 02 03
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
正响应:
71 01 02 03 00
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
示例 2:擦除内存
请求:
31 01 FF 00 44 00 02 00 00 00 01 00 00
逐字段解释:
表格 还在加载中,请等待加载完成后再尝试复制
可能先返回:
7F 31 78
表示擦除中。完成后返回:
71 01 FF 00 00
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
常见负响应
7F 31 12 子功能不支持
7F 31 13 长度错误
7F 31 22 条件不满足
7F 31 31 RID 或参数不支持
7F 31 33 安全权限不够
7F 31 78 例程执行中
0x34 RequestDownload
目的
开始下载流程,告诉 ECU 下载目标地址和总大小,并获取最大块长度。
请求格式
34 dataFormatIdentifier addressAndLengthFormatIdentifier memoryAddress… memorySize…
示例请求
34 00 44 00 02 00 00 00 01 00 00
逐字段解释:
表格 还在加载中,请等待加载完成后再尝试复制
正响应格式
74 lengthFormatIdentifier maxNumberOfBlockLength…
示例正响应
74 20 01 02
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
常见负响应
7F 34 13 长度错误
7F 34 22 下载条件不满足
7F 34 31 地址、大小或格式超范围
7F 34 33 安全权限不够
7F 34 70 下载不被接受
0x36 TransferData
目的
在 0x34 成功后,按块传输下载数据。
请求格式
36 blockSequenceCounter transferData…
示例请求
36 01 AA BB CC DD
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
正响应格式
76 blockSequenceCounter
示例正响应
76 01
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
常见负响应
7F 36 24 请求顺序错误,未先执行 0x34 或流程状态不对
7F 36 31 数据长度或总量超范围
7F 36 72 写入失败
7F 36 73 blockSequenceCounter 错误
7F 36 92 电压过高
7F 36 93 电压过低
0x37 RequestTransferExit
目的
结束下载传输流程。
请求格式
37
示例请求
37
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
正响应格式
77
示例正响应
77
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
常见负响应
7F 37 13 长度错误
7F 37 24 下载流程未完成或请求顺序错误
0x3E TesterPresent
目的
保持诊断会话,防止 ECU 因 S3 超时回默认会话。
常见子功能
表格 还在加载中,请等待加载完成后再尝试复制
示例请求
3E 00
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
正响应格式
7E 00
示例正响应
7E 00
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
常见负响应
7F 3E 12 子功能不支持
7F 3E 13 长度错误
0x85 ControlDTCSetting
目的
控制 ECU 是否允许 DTC 记录/更新。
常见子功能
表格 还在加载中,请等待加载完成后再尝试复制
请求格式
85 settingType
示例请求
85 02
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
正响应格式
C5 settingType
示例正响应
C5 02
逐字节解释:
表格 还在加载中,请等待加载完成后再尝试复制
常见负响应
7F 85 12 子功能不支持
7F 85 22 条件不满足
复杂服务吸收口诀
复杂服务就按这句话拆:
SID 说明服务,子功能说明动作,DID/RID/DTC/地址说明对象,后面的数据说明值或范围;ECU 检查条件后执行动作,成功回 SID+0x40 并回显关键字段,失败回 7F+SID+NRC。
拿到报文后按这个顺序标注:
- 标 SID:这是哪个服务。
- 标子功能:这次要做哪个动作。
- 标对象:操作哪个 DID/RID/DTC/地址。
- 标参数:写入值、控制值、长度、数据块或校验值。
- 标响应:正响应回显了什么,新增了什么结果字段。
- 标 NRC:失败原因属于长度、条件、权限、范围还是顺序。