因此ISO14229-1针对所有的诊断服务提供了一种统一的诊断负响应的诊断格式:7F +SID + NRC。 其中NRC全称为Negetive Responce Code,每个NRC具有唯一的含义来代表当前诊断请求错误的原因所在。当然每个诊断服务支持的NRC不尽相同,具体支持的NRC需要参考ISO14229-1标准文档,对于31服务而言支持的NRC如下图: 图11 31服务N...
因此ISO14229-1针对所有的诊断服务提供了一种统一的诊断负响应的诊断格式:7F +SID + NRC。 其中NRC全称为Negetive Responce Code,每个NRC具有唯一的含义来代表当前诊断请求错误的原因所在。当然每个诊断服务支持的NRC不尽相同,具体支持的NRC需要参考ISO14229-1标准文档,对于31服务而言支持的NRC如下图: 图11 31服务N...
因此ISO14229-1针对所有的诊断服务提供了一种统一的诊断负响应的诊断格式:7F +SID + NRC。 其中NRC全称为Negetive Responce Code,每个NRC具有唯一的含义来代表当前诊断请求错误的原因所在。当然每个诊断服务支持的NRC不尽相同,具体支持的NRC需要参考ISO14229-1标准文档,对于31服务而言支持的NRC如下图: 图11 31服务N...
incorrectMessageLengthOrInvalidFormat(13-IMLOIF):如果信息长度错误,则应发送此NRC。 conditionsNotCorrect(22-CNC):如果请求RoutineControl的条件不满足,这个NRC将被返回。 requestSequenceError(24-RSE):在下列情况下,应退还NRC: -程序目前处于激活状态,当接收到'startRoutine'子函数时不能重新启动(由车辆制造商决定...
3.支持的NRC 图4 支持的NRC 4.示例 (1)Sub-function = startRoutine 发送请求:31 01 02 01 肯定响应:71 01 02 01 32 (报文最后一个字节为汽车制造商自定义的状态) (2)Sub-function = stopRoutine 发送请求:31 02 02 01 肯定响应:71 02 02 01 30 (报文最后一个字节为汽车制造商自定义的状态) ...
再来看NRC31,NRC31常用的用法是请求超出范围,比如说22服务,发送的DID,是ECU不支持的,比如说发送的请求220101,因为ECU不支持0101这个DID,会发送NRC31的否定响应,还有一个用法是:22在3个会话(默认,编程,扩展下都是支持的),22后面所跟的DID来读取数据的DID对各个会话等级是有要求的,比如说读取硬件版本号在编程会话...
支持的NRC: $19 读取DTC 19服务是UDS里的重中之重了,可谓是没有19服务就失去了诊断服务的意义,下面就详细介绍下此服务的作用以及用法。 故障码包括四个大类,分别是PCBU,P是powertrain动力系统,C是Chassis底盘,B是Body车身,U是network通信系统。一个DTC信息占用4个字节。最后一个字节是DTC的状态。
会发送NRC 31的否定响应,还有一个用法是:22在3个会话(默认,编程,扩展下都是支持的),22后面所跟的DID来读取数据的DID对各个会话等级是有要求的,比如说读取硬件版本号在编程会话模式下是支持的,读取车速在编程会话下是不支持的,当ECU处于编程会话的时候,来通过 C0 01来读取车速,那么ECU会回复NRC 31的否定响应。
NRC31:请求超出范围时,会发送该NRC NRC33:DID是保密的并且服务端处于未解锁状态,会发送该NRC NRC72:若在写入一个存储单元时服务器检测到错误时,会发送该NRC 应用场景与作用 a.例程控制(31)和输入输出(2F)的功能是不是一样的? 输入输出控制的功能,都可以通过例程控制来实现,而且,例程控制服务可以实现更复杂的...
诊断服务的NRC优先级是指在不同情况下,诊断服务返回的否定响应代码(NRC)的优先级。在实际使用中,NRC的优先级对于诊断服务的正确执行非常重要。例如,如果一个服务请求同时触发了NRC 0x12(子功能不支持)和NRC 0x33(安全访问条件不满足),ECU会优先返回NRC 0x12,因为其优先级更高。这种优先级的判断逻辑确保了诊断服务...