打印
[其他]

UDS协议深度分析之诊断响应

[复制链接]
90|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
海中水|  楼主 | 2024-10-23 23:37 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
       当诊断工具向车辆发送服务请求后,若服务顺利完成,其接收到的回复消息被定义为正面响应;若服务未能成功执行,则接收到的回复消息被定义为负面响应。
1.正响应报文格式
       响应报文的构成格式具体表现为以下字节序列:

       以“0x10-诊断会话控制服务”为例,这是一个非常直观的例子。在这里,“0x10”代表服务标识符(SID),它用于指明要执行的服务是“诊断会话控制”。通过这个服务,诊断工具可以与车辆的ECU建立或管理诊断会话,例如启动一个新的会话或结束当前会话。简而言之,当你看到“0x10-诊断会话控制服务”时,你就知道这是一个用于控制诊断会话的服务请求。

2.负响应报文格式
       负响应信息包含两个核心部分:SID(服务标识符),用于指明是对哪个服务的回应;以及NRC(负响应码),用于详细阐述服务未能成功执行的具体原因。其字节构造方式如下所示。

        以“0x10-诊断会话控制服务”为例来说明负响应消息:如果诊断工具发送了一个“0x10”服务请求,但ECU无法执行该请求(比如因为会话已被另一个工具控制),那么ECU会返回一个负响应消息。这个负响应消息同样会以“0x10”作为SID开头,表明这是对“诊断会话控制服务”请求的回应,紧接着的是负响应码(NRC),比如“0x12”(表示会话已被另一工具控制),来具体说明服务未能执行的原因。

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





使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

737

主题

10984

帖子

81

粉丝