0x35:密钥不匹配(27服务)。 0x36:尝试解锁次数已达上限(27服务)。 0x37:超时时间未到(27服务)。 0x70:不允许上传/下载(34服务)。 0x71:数据传输中止。 0x72:擦除或者烧写内存时错误。 0x73:块序列计数错误。 0x78:已收到请求,但会晚点响应。 0x7E:当前会话下,该子功能不支持。 0x7F:当前会话下该服...
0x7E:Sub-functionNotSupportedInActiveSession,表示请求的子功能在当前会话中不支持。 0x7F:ServiceNotSupportedInActiveSession,表示请求的服务在当前会话中不支持。 0x81:RpmTooHigh,表示发动机转速过高,通常与编程地址相关。 0x82:RpmTooLow,表示发动机转速过低,通常与编程地址相关。 0x83:EngineIsRunning,表示发动机正在...
0x01 - 0x0f 暂保留; 0x78 收到请求,延迟响应; 0x10 未知错误,服务被拒绝; 0x79 - 0x7d 暂保留; 0x11 不支持该服务请求; 0x7e 当前会话下子功能不支持; 0x12 不支持子功能; 0x7f 当前会话下服务不支持; 0x13 消息长度或格式错误; 0x80 暂保留; 0x14 请求信息长度超出; 0x81 rpm(每分钟转速)太...
3)NRC0x12和0x7E的区别:0x12是整个子功能不支持,而0x7E是在当前会话不支持。举个例子:19服务有很多子功能,假设客户需求不支持0A子功能,那执行19 0A就会回复0x12;假设10 02服务只在扩展会话下支持,但在默认会话下执行了,就会回复0x7E 4)NRC0x7F和0x7E的区别:0x7F是当前会话下服务不支持,0x7E是当前会话下子...
这里再讲一个NRC 0x78的,原文如下: 当NRC 0x78被使用了,服务端最终都要给一个响应(正响应或否定响应),和SPRMIB的值是否置位无关,和是否是功能寻址,且NRC为0x11,0x7F,0x12,0x7E,0x31无关。 简单来说就是: 1)当服务端回复了NRC 0x78,即使SPRMIB是置位的也要回复正响应; ...
当诊断服务请求中,Server如果先响应了NRC0x78,那么,不管诊断服务是否正响应抑制位置位还是功能寻址碰到NRC0x11、NRC0x7F、NRC0x12、NRC0x7E、NRC0x31,均需要给出最终的响应,即:正响应或者否定响应。 所以,上述数据流的第二个问题:在Server响应了NRC0x78以后,没有给出最终响应。
NRC7E和NRC7F不同的是:NRC7E是在当前会话下Subfunction不支持。一个用的比较多的用法是,编程会话是不能够由默认会话跳转到编程会话的,只能由扩展会话跳转到编程会话。但ECU处于默认会话的时候,执行了1002编程会话的请求,ECU会回复7ENRC的否定响应。 再来看NRC31,NRC31常用的用法是请求超出范围,比如说22服务,发送...
RCRRP (RequestCorrectlyReceived-ResponsePending) 0x79 - 0x7D ISOSAEReserved This range of values is reserved for future definition. 0x7E 诊断请求中服务的子功能参数在当前的会话下不支持时,回复此编码。需要注意的是,回复此编码时,子功能参数是服务器在其它会话下支持的,只是在当前的会话下不支持。如果...
USD诊断服务的否定响应中包含有导致否定响应原因的编码,称为否定响应码(NRC, Negative Response Code)。否定响应码的取值范围为0x00 - 0xFF,被分为三组: 0x00:服务器内部实现否定响应码判断逻辑时使用,表示要给出肯定响应。0x01 – 0x7F:诊断通信相关的否定响应码。0x80 – 0xFF:服务器收到诊断服务请求时,由...
0x7E:当前会话下子功能不支持 0x22:请求数据错误 NRC的优先级对于诊断工具来说非常重要,它决定了在多个错误同时发生时,ECU应优先回复哪个NRC。一般来说,NRC的优先级从高到低排列,例如,0x11(服务不支持)的优先级高于0x7F(当前会话下服务不支持)。 在实际应用中,诊断工具需要根据ECU返回的NRC快速判断服务执行失败的...