响应:肯定响应包含服务 ID + 0x40 + 子功能(或参数);否定响应包含 0x7f + 服务 ID + 否定响应码。 31 服务(例程控制) 用途:执行指定的步骤序列并获取相关结果。 请求报文:包含服务 ID、子功能(如开始例程、停止例程、请求例程结果)、例程标识符和可选的例程控制选项记录。 响应:肯定响应包含服务 ID + 0x4...
UDS(Unified Diagnostic Services)可以说是外界与汽车内部建立诊断的语言,若外部诊断仪与汽车内部ECU共同遵循UDS协议,诊断仪即可通过UDS相应的指令向汽车内部ECU获取相应的反馈信息,如诊断仪需要读取ECU里面的软件版本等信息,可以通过22服务指令,想写入ECU配置信息,可以通过2E服务写指令,想读取故障信息可通过19服务指令。详...
<0x7F> +<SID> +<NRC> //NRC:Negative Response Code(否定响应码) 只要是Negative Response,第一字节就一定是0x7F,第二字节照抄原来的SID,第三个字节是错误响应码,指示具体错误响应的原因,这个NRC可以在协议中查到,并且不同的服务所支持的NRC也有规定。 拿session control 这个service来举例: Send:10 05(现在...
在否定响应中,0X7F为固定首字节,SID为请求中的SID,而NRC为否定响应码,用于具体指示导致否定响应的原因。接下来,我们将深入探讨具有Subfunction(子功能)的UDS诊断服务的请求与响应细节。
三、UDS功能服务 ISO14229-1协议中定义了6类功能,26种服务,UDS功能服务主要依托于UDS报文的信息不同,UDS报文的格式为:SID+SF+DID的通用格式,可以衍生出SID、SID+SF、SID+DID的报文格式。 服务中SID的定义规则及规范如下表所示。 正响应:SID+40; 负响应:7F+SID+NRC; ...
肯定响应(Positive Response)格式为:(SID+0X40)+Subfunction(子功能)+数据。例如,请求0X10服务,Subfunction(子功能)为0X02,肯定响应第1个字节为0X50,第2个字节为0X02。 否定响应(Negative Response)格式为:0X7F+SID+NRC。例如,请求0X10服务,否定响应第1个字节为固定的0X7F,第2个字节为0X10,第3个字节为NRC...
在UDS协议中,NRC(网络响应代码)的优先级对于诊断工具而言至关重要。它决定了在多错误并发时,ECU应优先响应哪个NRC。通常,NRC的优先级按照从高到低的顺序排列,例如,0x11(服务不支持)的优先级就高于0x7F(当前会话下服务不支持)。在实际操作中,诊断工具必须迅速依据ECU返回的NRC来判定服务执行失败的原因,并...
例如,对于0x10服务的请求,其否定响应的前三个字节分别为固定的0x7F、0x10以及NRC码。通过NRC码,我们可以判断出导致否定响应的具体原因。x服务不支持/ServiceNotSupported当ECU接收到的诊断仪请求消息中的服务标识符无法被识别或不被支持时,ECU应返回此响应码。xSubFunctionNotSupported/不支持子功能当诊断仪发送的...
这种优先级的判断逻辑确保了诊断服务的准确性和可靠性。NRC的优先级从高到低排列为: 0x11 > 0x7F > 0x13 > 0x12 > 0x7E > 0x33 > 0x24 > 0x31 > 0x22 > 0x78 了解这些NRC码和它们的优先级,可以帮助你更好地理解和解决车载诊断中的问题。
UDS诊断服务功能主要包括以下几种:DiagnosticSessionControl 服务:功能:用于切换ECU到指定的诊断会话模式,如默认模式、编程模式或扩展诊断模式。响应:请求成功时,ECU会回复肯定响应;失败时,则用7F NRC代码标识,NRC表明了失败原因。TesterPresent 服务:功能:通过定期发送3E 00信号,保持ECU在扩展诊断...