为什么在UDS,KWP汽车诊断协议中,积极响应总是加40,负响应是7F?

时间:2016-01-15 09:49:23

标签: diagnostics

我想要合理的理由为什么正面响应是+40而负面响应是7F在UDS中我尝试了一些诊断服务但是总是得到+40和7F但是没有得到为什么它总是增加+40

3 个答案:

答案 0 :(得分:1)

在UDS中,肯定响应的第一个字节始终为SID + 40 hex(SID =服务标识符,请求的第一个字节),否定响应的第一个字节始终为7F hex:仅仅因为它在国际标准 ISO14229-1 (原ISO 15765-3)中定义如下。没有进一步的逻辑原因 - 理论上其他专有诊断协议可以使用不同的偏移值来指示正/负响应:在设计诊断协议时它是任意选择。

但历史上使用40 hex作为积极响应的抵消在诊断方面有着悠久的传统;分别用于 KWP2000(ISO 14230) OBD(SAE J1979 / ISO 15031)协议。

使用单个位(Bit 6)来区分请求和响应具有一定的优势;对于需要解释数据的任何应用来区分它们是微不足道的;如果设置了Bit 6,则只需要针对常量值7F hex检查字节,以了解响应是正还是负。

答案 1 :(得分:0)

如果您询问有关正面和负面回复的字节分配。如果是这样,则嵌入每个功能/设备的ODX已被预定义为响应那些NRC和PRC。希望这能给出或解释你的问题

答案 2 :(得分:0)

有一个专用位用于区分每个正响应的正响应和负响应,特定服务ID位中的6位将更改为1.

例如,你需要10的服务       XX 10 02 XX XX XX XX XX - 0001 0000 - 10(UDS服务)       XX 50 02 XX XX XX XX XX - 0101 0000 - 50(积极响应)   2E服务       XX 2E XX XX XX XX XX XX - 0010 1110 - 2E(UDS服务ID)       XX 6E XX XX XX XX XX XX - 0110 1110 - 6E(正面响应)

从上面你可以观察到每个正响应只有第6位会发生变化。

请在此链接中找到确切答案

https://youtu.be/bh1xvtVinXE