UDS(统一诊断服务)详解及 C++ 代码示例
一、UDS 概述
UDS(Unified Diagnostic Services,统一诊断服务) 是 ISO 14229 标准定义的汽车诊断协议,广泛应用于 ECU(电子控制单元)的诊断、刷写、标定等场景。它运行在 CAN、CAN-FD、Ethernet 等底层传输协议之上(如 ISO 15765-2 即 DoCAN)。
UDS 的核心思想是:客户端(诊断仪)发送服务请求,服务端(ECU)执行并返回响应。所有交互都通过 SID(Service Identifier,服务标识符) 来区分功能。
1.1 请求/响应模型
+-----------+ Request (SID + Data) +-----------+ | Tester | ----------------------------> | ECU | | (Client) | <---------------------------- | (Server