NRC(Negative Response Code)是统一诊断服务(UDS,Unified Diagnostic Services)协议中用于表示错误或异常情况的代码。在汽车和嵌入式系统的诊断通信中,NRC提供了对请求的反馈,指示请求是否成功处理以及如果出现错误,具体的错误类型是什么。
### 常见的NRC代码
以下是一些常见的NRC代码及其含义:
- **0x10** - **General Reject**:一般拒绝,表示请求未被处理。
- **0x11** - **Service Not Supported**:请求的服务不被支持。
- **0x12** - **Sub-function Not Supported**:请求的子功能不被支持。
- **0x13** - **Incorrect Message Length or Invalid Format**:消息长度不正确或格式无效。
- **0x24** - **Data Not Available**:请求的数据在当前条件下不可用。
- **0x31** - **Request Out of Range**:请求超出范围。
- **0x72** - **Sub-function Not Supported (for Service 0x37)**:在处理特定子功能时不支持。
- **0x7F** - **Reserved for Future Use**:保留以备将来使用。
### NRC的使用场景
1. **请求处理**:
- 在设备接收到诊断请求后,如果无法处理或请求不符合条件,则会返回相应的NRC代码。
2. **错误反馈**:
- NRC代码用于向请求方反馈具体的错误类型,方便进行后续的故障排查和问题处理。
3. **协议遵循**:
- 遵循UDS协议规范,确保与其他设备或工具的兼容性和通信正确性。