当诊断工具向车辆发送服务请求后,若服务顺利完成,其接收到的回复消息被定义为正面响应;若服务未能成功执行,则接收到的回复消息被定义为负面响应。
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值均代表着一种特定的错误状况。
|