解读 Uds几种常见NRC

Negative Response Code (NRC) definition and values

Byte value

Negative Response Code (NRC) definition

0x12

子功能不支持

eg:需求中10服务有01,02,03三个子功能

当请求10 04,那么就会反馈负响应7F 10 12

0x13

长度不正确

eg:以10服务为例,正确长度为两个

当请求10或者10 01 01,那么就会反馈负响应7F 10 13

0x22

条件不满足

eg:当需求定义进入10 02需要满足车速为0

当车速>0,再请求10 02,那么就会反馈负响应7F 10 22

0x24

请求顺序错误

eg:未收到种子,直接发送密钥

比如先发送27 02 xx xx,那么就会反馈负响应7F 27 24

0x31

请求数据不正确

eg:当请求22 F1 00,F1 00需求里并不包含此DID,那么就会反馈负响应31

0x33

未进行安全解锁

eg:2E服务需要先解锁,如果没有进行安全解锁,直接写配置,那么就会反馈负响应7F 2E 33

0x35

无效密钥

eg:当发送的密钥不符合当前项目27服务算法,那么就会反馈负响应7F 27 35

0x36

超过尝试次数

eg:第一次发送密钥错误,反馈NRC35,当再次发送密钥错误,则继续反馈NRC35,当第三次发送密钥错误时,则反馈NRC36

0x37

请求延迟时间未到

eg:当前面几次发送密钥连续错误,即反馈NRC35,NRC35,NRC36之后,再次请求种子,此时反馈负响应7F 27 37

0x7E

子功能切换不支持

eg:10 02进入条件需要先进入10 03会话

当从默认会话10 01,直接进10 02,那么就会回复负响应7F 10 7E

0x7F

模式不支持

eg:28服务在默认会话下不支持,当在10 01会话下再发28 01 01,就会反馈负响应7F 28 7F

### UDS诊断常见NRC负响应代码解释 在UDS协议中,当ECU无法满足来自客户端的请求时会返回特定的否定响应码(Negative Response Codes, NRCs),这些代码帮助识别问题所在并指导进一步的操作[^1]。 #### 0x10 请求超出了子功能定义的服务范围 此错误表明所发送命令中的参数超过了该服务支持的最大值或最小值限制。这可能是由于数据长度不当或其他不符合规范的情况引起。 #### 0x11 子功能未被支持/实现 如果接收到一个合法但不适用于当前节点的功能调用,则会产生此类回复;意味着虽然指令格式正确无误,但是目标设备并不具备执行这项操作的能力。 #### 0x12 不正确的字节序号跟随 通常发生在读取内存块期间指定起始地址之后提供了不合逻辑的数量级位移量,或者是写入过程中出现了类似的错配情形。 #### 0x13 请求超出条件激活后的允许次数 某些敏感型配置项可能设有访问权限,在未经适当授权的情况下频繁尝试修改将会触发这个保护机制而遭到拒绝处理。 #### 0x21 总线忙(仅限于CAN FD) 对于采用高速传输模式下的网络通信而言,若检测到总线上已有其他活动正在进行当中,则新发起的数据交换会被暂时搁置等待时机成熟再继续推进过程。 #### 0x22 权限不足 试图更改受控设置却未能提供必要的认证凭证时会出现这种情况。它提醒用户需先完成身份验证流程才能获得相应级别的操控权柄。 #### 0x78 设备正忙 表示接收方正处于忙碌状态之中,比如正在运行自检程序或是参与另一轮交互事务里头,此时不宜打扰以免造成冲突干扰正常作业秩序。 ```python nrc_codes = { "0x10": "请求超出了子功能定义的服务范围", "0x11": "子功能未被支持/实现", "0x12": "不正确的字节序号跟随", "0x13": "请求超出条件激活后的允许次数", "0x21": "总线忙(仅限于CAN FD)", "0x22": "权限不足", "0x78": "设备正忙" } for code, desc in nrc_codes.items(): print(f"{code}: {desc}") ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值