我想要合理的理由为什么正面响应是+40而负面响应是7F在UDS中我尝试了一些诊断服务但是总是得到+40和7F但是没有得到为什么它总是增加+40
答案 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位会发生变化。
请在此链接中找到确切答案