延安市网站建设_网站建设公司_测试工程师_seo优化
2026/1/19 18:48:31 网站建设 项目流程

UDS(Unified Diagnostic Services, ISO 14229-1)服务列表

服务标识符(SID)分类整理,完整UDS服务列表如下:

SID (Hex)服务名称描述
0x10Diagnostic Session Control诊断会话控制(切换默认/扩展/编程会话等)
0x11ECU ResetECU复位(软复位/硬复位)
0x12Read Freeze Frame Data读取冻结帧数据(与DTC关联的故障快照)
0x13Read DTC Information读取诊断故障码(DTC)信息(已废弃,由0x19替代)
0x14Clear Diagnostic Information清除诊断信息(如DTC及冻结帧)
0x19Read DTC Information读取DTC信息(支持多种DTC报告类型)
0x1ARead Scaling Data By Identifier按ID读取比例数据(OEM自定义)
0x20Return to Normal Mode返回正常模式(已废弃)
0x22Read Data By Identifier (DID)按数据标识符(DID)读取数据
0x23Read Memory By Address按地址读取内存(用于ECU内存访问)
0x24Read Scaling Data By Address按地址读取比例数据(OEM自定义)
0x27Security Access安全访问(种子-密钥认证)
0x28Communication Control通信控制(启用/禁用报文发送)
0x29Authentication身份认证(用于增强安全访问)
0x2ARead Data By Periodic ID按周期ID读取数据(已废弃)
0x2CDynamically Define Data ID动态定义数据ID(自定义DID)
0x2EWrite Data By Identifier (DID)按数据标识符(DID)写入数据
0x2FInput Output Control By ID按ID控制输入/输出(强制ECU内部状态)
0x31Routine Control例程控制(启动/停止/查询ECU内部程序)
0x34Request Download请求下载(准备ECU接收数据)
0x35Request Upload请求上传(准备ECU发送数据)
0x36Transfer Data数据传输(用于下载/上传数据块)
0x37Request Transfer Exit请求传输结束(完成下载/上传)
0x38Request File Transfer请求文件传输(用于文件级操作)
0x3DWrite Memory By Address按地址写入内存(直接写入ECU内存)
0x3ETester Present诊断仪保持连接(维持会话激活)
0x7FNegative Response (NRC)否定响应(请求遭失败,包含错误码)
0x83Access Timing Parameters访问时间参数(调整通信时序)
0x84Secured Data Transmission安全数据传输(加密通信)
0x85Control DTC Setting控制DTC设置(启用/禁用DTC存储)
0x86Response On Event事件响应(配置事件触发ECU主动发送数据)
0x87Link Control链路控制(管理通信速率)

说明

  • 此为ISO 14229-1标准中定义的UDS服务,广泛应用于汽车电子控制单元(ECU)的诊断通信。
  • 部分服务(如0x13、0x20、0x2A)已被标记为“已废弃”,建议使用替代服务。
  • 常见应用包括故障码读取、数据读写、安全访问、软件刷写等。

该表格系统性地列出UDS协议中的所有服务及其功能描述,适用于汽车诊断开发、测试和维护场景。

补充说明

  1. 否定响应(0x7F)
    所有服务都可能返回此响应,附带否定响应码(NRC),用于说明失败原因,例如:

    • 条件不满足
    • 安全访问被拒绝
    • 请求参数非法
    • 会话状态不支持等
  2. OEM自定义服务
    部分SID范围(如0x30–0x3C0x40–0x7E)保留供厂商自定义扩展使用。

    • 这些服务由ECU制造商定义,可能包含特定功能或私有协议。
    • 实际使用需参考具体OEM提供的文档。
  3. 兼容性
    并非所有ECU都支持全部UDS服务。

    • 具体实现取决于OEM需求和ECU功能设计。
    • 在实际应用中应通过诊断工具或协议分析确认支持的服务列表。

二、UDS否定响应码(NRC, Negative Response Code)

根据 ISO 14229-1(UDS)标准定义的**否定响应码(NRC)**完整中文解释表。


1. 通用错误(0x00–0x4F)
NRC (Hex)英文名称中文解释
0x10GeneralReject通用拒绝:请求因未明确的通用原因被拒绝(无具体分类错误)。
0x11ServiceNotSupported服务不支持:ECU不支持请求的服务标识符(SID)。
0x12SubFunctionNotSupportedException子功能不支持:请求的子功能(如会话模式、控制类型)在当前ECU中无效。
0x13IncorrectMessageLengthOrFormat消息长度或格式错误:请求报文长度不符合协议要求,或参数格式非法。
0x14ResponseTooLong响应过长:ECU响应数据超过单帧最大长度,需分段传输(但未启用多帧传输机制)。
0x21BusyRepeatRequest繁忙需重试:ECU正处理其他请求,需稍后重试(如刷写过程中)。
0x22ConditionsNotCorrect条件不满足:当前ECU状态不允许执行请求(如未解锁安全访问时尝试写入数据)。
0x24RequestSequenceError请求顺序错误:操作步骤非法(如未先执行RequestDownload直接发送TransferData)。
0x25NoResponseFromSubnetComponent子网组件无响应:网关ECU无法访问目标节点(如从节点离线)。
0x26FailurePreventsExecutionOfRequest底层故障阻止执行:ECU硬件或软件故障导致请求无法完成。

2. 安全与访问控制(Security & Access)
NRC (Hex)英文名称中文解释
0x33SecurityAccessDenied安全访问被拒:种子-密钥认证失败(密钥错误或未按步骤操作)。
0x34AuthenticationRequired需身份认证:请求的服务需要增强安全认证(如TLS证书验证)。
0x35InvalidKey无效密钥:提供的安全访问密钥错误或已过期。
0x36ExceededNumberOfAttempts尝试次数超限:安全访问失败次数超过ECU允许的最大值(可能触发锁定)。
0x37RequiredTimeDelayNotExpired延迟未结束:安全访问需等待指定时间(防暴力pojie机制)。

说明

  • NRC 是 UDS 协议中用于反馈请求失败原因的关键字段,通常紧跟在0x7F(否定响应)之后。
  • 开发者在调试诊断通信时,应结合 NRC 分析问题根源,例如:
    • 若返回0x11,说明该 SID 不被支持;
    • 若返回0x22,则需检查当前会话是否已进入正确模式;
    • 若返回0x330x35,则需重新进行安全访问流程。

建议:在实际应用中,应建立 NRC 处理逻辑,实现自动重试、状态恢复或用户提示等功能。


该表格为诊断开发人员提供了标准化的错误码参考,有助于快速定位和解决通信异常。

3. 数据与参数错误(Data & Parameters)

NRC (Hex)英文名称中文解释
0x31RequestOutOfRange请求超出范围:DID(数据标识符)或内存地址无效,或参数值非法。
0x72GeneralProgrammingFailure通用编程失败:ECU刷写过程中发生未分类错误(需检查日志)。
0x73WrongBlockSequenceCounter块序列号错误:数据传输时块序号不连续(如TransferData的序号未按顺序递增)。
0x7ESubFunctionNotSupportedInActiveSession当前会话不支持子功能:请求的子功能在当前诊断会话中不可用(如默认会话下调用某些控制功能)。
0x7FServiceNotSupportedInActiveSession当前会话不支持服务:请求的服务在当前会话中无效(如默认会话下调用RequestDownload)。

4. 编程相关错误(0x50–0x7F)

NRC (Hex)英文名称中文解释
0x50ProgrammingDependenciesNotMet编程依赖未满足:刷写所需条件不满足(如电压、温度、网络状态异常)。
0x51ProgrammingPreconditionsNotMet编程前置条件未满足:未进入扩展会话或未完成安全访问。
0x52ProgrammingRequestSequenceError编程请求顺序错误:如写步骤非法(如未擦除内存直接写入数据)。
0x53ProgrammingVoltageOutOfRange编程电压超限:ECU检测到电源电压超出允许范围(如低于9V或高于16V)。
0x54ProgrammingTemperatureOutOfRange编程温度超限:ECU温度过高或过低(如低于-40°C或高于85°C)。
0x55ProgrammingSecurityAccessDenied编程安全访问被拒:刷写前未通过安全认证(需先执行0x27服务)。
0x56ProgrammingInvalidSignature无效签名:刷写文件的数字签名验证失败(文件被篡改或密钥不匹配)。
0x57ProgrammingInvalidChecksum无效校验和:数据校验和错误(传输过程中数据损坏)。
0x71UploadDownloadNotAccepted上传/下载被拒:ECU拒绝启动数据传输(如内存空间不足)。

5. 其他特殊NRC

NRC (Hex)英文名称中文解释
0x78ResponsePending请求正确接收,响应挂起(Response Pending):ECU正在处理,尚未返回结果。
0x81RPMTooHigh转速过高:发动机转速超过诊断允许阈值(如刷写时要求熄火但引擎未关闭)。
0x82RPMTooLow转速过低:发动机转速低于诊断允许阈值(如某些测试需维持怠速)。
0x83EngineIsRunning引擎运行中:请求的操作需在熄火状态下执行(如ECU复位)。
0x84EngineIsNotRunning引擎未运行:请求的操作需启动引擎(如某些OBD测试)。

说明

  • 上述 NRC 是 ISO 14229-1 标准中定义的否定响应码(Negative Response Code),用于指示 UDS 请求失败的具体原因。
  • 在实际开发中,应根据返回的 NRC 进行针对性处理,例如:
    • 若收到0x31,需检查 DID 或地址是否有效;
    • 若收到0x500x51,需确保已进入扩展会话并满足电压、温度等条件;
    • 若收到0x78,表示请求已被接收但仍在处理中,需等待后续响应;
    • 若收到0x810x83,需确认车辆状态是否符合操作要求。

建议:在诊断工具或上位机软件中实现 NRC 解析与提示机制,提升调试效率和用户体验。


该部分内容为UDS通信中的关键错误码补充,覆盖了数据、编程及车辆状态相关的典型场景,适用于汽车电子系统的诊断开发与维护。

6. 否定响应码关键说明

1. 0x7E 与 0x7F 的区别
  • 0x7E:功能在当前会话中不支持(如默认会话下调用0x34校验服务)。
  • 0x7F:整个服务在当前会话中不支持(如默认会话下调用0x31阅写服务)。
2. 厂商自定义NRC(0x80–0xFE)
  • 需调用具体ECU厂商的私有协议文档(如博世、大陆等可能有扩展定义)。
3. 调试建议
  • 遇到NRC时,优先检查:
    • 会话状态(是否已进入扩展/编程会话)。
    • 安全访问(是否完成0x27解锁)。
    • 参数合法性(DID、地址、长度等是否符合规范)。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询