UDS服务ID
时间: 2025-06-23 11:14:35 浏览: 13
<think>我们正在讨论UDS(统一诊断服务)协议中的服务ID(ServiceIdentifier,SID)。用户特别询问了与读取和清除DTC(诊断故障码)相关的服务ID,以及ISO14229标准中的定义。根据之前的对话,我们已经知道读取DTC使用服务$19$(十六进制),清除DTC使用服务$14$(十六进制)。现在用户要求提供UDS服务ID列表,尤其是与DTC操作相关的部分。根据ISO14229-1标准,UDS定义了一系列服务。以下列出部分关键服务ID,特别是与DTC相关的服务:1.**诊断和通信管理功能单元**:-$10$:诊断会话控制-$11$:ECU复位-$3E$:待机握手(TesterPresent)-$83$:访问定时参数-$84$:安全访问2.**数据传输功能单元**:-$22$:按标识符读取数据-$2E$:按标识符写入数据-$23$:按地址读取内存-$24$:按地址写入内存3.**存储数据传输功能单元**:-$14$:清除诊断信息(ClearDiagnosticInformation)—用于清除DTC-$19$:读取DTC信息(ReadDTCInformation)—用于读取DTC及其相关信息-$2A$:按周期标识符读取数据-$31$:例程控制(启动、停止或查询例程)4.**输入输出控制功能单元**:-$2F$:输入输出控制5.**远程激活例程功能单元**:-$31$:例程控制(同上)6.**上传下载功能单元**:-$34$:请求下载-$35$:请求上传-$36$:传输数据-$37$:请求退出传输其中,与DTC操作直接相关的两个服务是:-**$19$(ReadDTCInformation)**:用于读取DTC信息,包括已存储的DTC列表、DTC的快照数据(Snapshot)等。该服务有多个子功能,如:-$01$:报告已确认的DTC(ReportDTCByStatusMask)-$02$:报告DTC的快照数据(ReportDTCSnapshotIdentification)-$03$:报告DTC的扩展数据(ReportDTCExtendedDataRecord)-$04$:报告已检测到的DTC(ReportNumberofDTCByStatusMask)-$06$:报告支持的DTC(ReportSupportedDTC)-$0A$:报告所有支持的DTC(ReportAllSupportedDTCs)-等等。-**$14$(ClearDiagnosticInformation)**:用于清除诊断信息,主要是清除DTC。该服务通常需要指定清除哪个内存区域(例如,所有DTC、特定组的DTC)。请求格式中,通常使用$FFFFFFFF$来表示清除所有DTC。此外,其他服务也可能间接与DTC相关,例如:-$31$(例程控制):可以执行特定的诊断例程,例如重置特定的学习值或执行自检,这可能会影响DTC的状态。-$10$(诊断会话控制):切换会话模式(如从默认会话到扩展诊断会话)可能会影响DTC的存储和报告行为。关于ISO14229标准,它是UDS协议的基础,定义了上述服务以及报文格式、状态转换等。因此,总结用户关心的两个服务:-读取DTC:服务$19$-清除DTC:服务$14$同时,我们还可以提供更完整的UDS服务ID列表(仅列举常用部分):|服务ID(十六进制)|服务名称(英文)|服务名称(中文)||-------------------|-----------------------------------|--------------------------||$10$|DiagnosticSessionControl|诊断会话控制||$11$|ECUReset|ECU复位||$14$|ClearDiagnosticInformation|清除诊断信息||$19$|ReadDTCInformation|读取DTC信息||$22$|ReadDataByIdentifier|按标识符读取数据||$23$|ReadMemoryByAddress|按地址读取内存||$24$|WriteMemoryByAddress|按地址写入内存||$27$|SecurityAccess|安全访问||$28$|CommunicationControl|通信控制||$2A$|ReadDataByPeriodicIdentifier|按周期标识符读取数据||$2C$|DynamicallyDefineDataIdentifier|动态定义数据标识符||$2E$|WriteDataByIdentifier|按标识符写入数据||$2F$|InputOutputControlByIdentifier|按标识符输入输出控制||$31$|RoutineControl|例程控制||$34$|RequestDownload|请求下载||$35$|RequestUpload|请求上传||$36$|TransferData|传输数据||$37$|RequestTransferExit|请求退出传输||$3E$|TesterPresent|待机握手||$83$|AccessTimingParameter|访问定时参数||$84$|SecuredDataTransmission|安全数据传输|注意:服务ID的范围是$00$到$FF$,但并非所有值都被使用,有些保留给未来扩展或厂商自定义。以上内容均基于ISO14229-1标准[^1][^2]。现在,根据用户要求,生成相关问题:</think>### UDS服务ID列表(ISO 14229标准)
以下是ISO 14229-1标准定义的核心UDS服务ID,特别标注了与DTC操作相关的服务:
| **服务ID** | **十六进制** | **服务名称** | **主要功能** |
|------------|--------------|----------------------------|-------------------------------------------|
| $10$ | `0x10` | 诊断会话控制 | 切换默认/扩展/编程会话模式[^1] |
| $11$ | `0x11` | ECU复位 | 执行硬件/软件复位 |
| **$14$** | `0x14` | **清除诊断信息** | **清除DTC和关联数据**(核心DTC服务)[^1] |
| **$19$** | `0x19` | **读取DTC信息** | **读取DTC状态/快照/扩展数据**(核心DTC服务)[^1][^2] |
| $22$ | `0x22` | 按标识符读取数据 | 读取特定数据ID值 |
| $27$ | `0x27` | 安全访问 | 种子-密钥身份验证 |
| $28$ | `0x28` | 通信控制 | 关闭/开启报文通信 |
| $2E$ | `0x2E` | 按标识符写入数据 | 写入特定数据ID值 |
| $31$ | `0x31` | 例程控制 | 启动/停止诊断例程 |
| $34$ | `0x34` | 请求下载 | 启动固件下载 |
| $3E$ | `0x3E` | 待机握手 | 维持诊断会话激活 |
#### 关键DTC服务详解
1. **$19$服务(读取DTC信息)**
- **子功能类型**:
- `01`:按状态掩码报告DTC(最常用)
- `02`:报告DTC快照标识符[^2]
- `03`:报告DTC扩展数据
- `04`:报告已确认的DTC数量
- `0A`:报告所有支持的DTC
- **DTC格式**:支持多种编码规范(ISO 15031-6/SAE J1939等)[^1]
- **响应结构**:
```python
# 伪代码示例
response = [0x59, sub_func, status_mask, dtc1_high, dtc1_mid, dtc1_low, status_byte, ...]
```
2. **$14$服务(清除DTC)**
- **请求格式**:`14 FF FF FF FF`(清除所有DTC)
- **清除范围**:
- `FFFFFF`:清除所有DTC
- `XXYYZZ`:清除特定DTC组(XX=系统,YY=子组)
- **成功响应**:`54`(肯定响应)
#### DTC相关补充服务
| 服务ID | 功能说明 |
|--------|-----------------------------|
| $2A$ | 按周期ID读取数据(DTC相关) |
| $85$ | 控制DTC设置 |
| $86$ | 响应事件 |
> 注:完整服务ID范围 $00$-$FF$,$40$-$5F$ 保留给厂商自定义扩展[^1]。
---
### 相关问题
1. UDS服务$19$(读取DTC)的子功能`02`(快照数据)具体包含哪些参数?
2. 清除DTC($14$服务)时指定特定DTC组的精确语法规则是什么?
3. ISO 14229-1标准中未使用的服务ID范围有哪些?这些范围是否允许自定义?
4. 如何通过UDS服务$31$(例程控制)触发DTC相关的自检程序?
5. UDS服务$85$(控制DTC设置)在哪些诊断场景下需要使用?
阅读全文
相关推荐


















