[其他] UDS协议深度分析之诊断响应

[复制链接]
11370|0
 楼主| 海中水 发表于 2024-10-23 23:37 | 显示全部楼层 |阅读模式
       当诊断工具向车辆发送服务请求后,若服务顺利完成,其接收到的回复消息被定义为正面响应;若服务未能成功执行,则接收到的回复消息被定义为负面响应。
1.正响应报文格式
       响应报文的构成格式具体表现为以下字节序列:
74687671913b94d519.png
       以“0x10-诊断会话控制服务”为例,这是一个非常直观的例子。在这里,“0x10”代表服务标识符(SID),它用于指明要执行的服务是“诊断会话控制”。通过这个服务,诊断工具可以与车辆的ECU建立或管理诊断会话,例如启动一个新的会话或结束当前会话。简而言之,当你看到“0x10-诊断会话控制服务”时,你就知道这是一个用于控制诊断会话的服务请求。
5417867191742c5aa9.png
2.负响应报文格式
       负响应信息包含两个核心部分:SID(服务标识符),用于指明是对哪个服务的回应;以及NRC(负响应码),用于详细阐述服务未能成功执行的具体原因。其字节构造方式如下所示。
9019067191821c1f1c.png
        以“0x10-诊断会话控制服务”为例来说明负响应消息:如果诊断工具发送了一个“0x10”服务请求,但ECU无法执行该请求(比如因为会话已被另一个工具控制),那么ECU会返回一个负响应消息。这个负响应消息同样会以“0x10”作为SID开头,表明这是对“诊断会话控制服务”请求的回应,紧接着的是负响应码(NRC),比如“0x12”(表示会话已被另一工具控制),来具体说明服务未能执行的原因。

3.负响应码(Negative Response Code - NRC)
        在UDS(统一诊断服务)协议框架下,当服务请求未能成功执行时,会通过一个称为负响应码(NRC)的单字节代码来指明失败的具体缘由,其中每个独特的NRC值均代表着一种特定的错误状况。

9903167191839eef0b.png



您需要登录后才可以回帖 登录 | 注册

本版积分规则

843

主题

11434

帖子

83

粉丝
快速回复 在线客服 返回列表 返回顶部