USD诊断服务的否定响应中包含有导致否定响应原因的编码,称为否定响应码(NRC, Negative Response Code)。否定响应码的取值范围为0x00 - 0xFF,被分为三个部分,
0x00:服务器内部实现否定响应码判断逻辑时使用,表示要给出肯定响应。
0x01 – 0x7F:诊断通信相关的否定响应码。
0x80 – 0xFF:服务器收到诊断服务请求时,由于某些条件不满足要求而给出的否定响应码。
给出这些否定响应码而不是给出0x22的目的是为了提供请求的服务不能被执行的更详细的原因。
具体的否定响应编码及其使用条件,请见本文最后的列表。
由于诊断服务的功能不同,其所支持的否定响应码是不完全相同的。那每个诊断服务要支持哪些否定响应码呢?
所有服务都需支持的否定响应码
首先,ISO14229-1:2013(E)中定义了一组每个诊断服务都需要支持的否定响应码。见下表。
否定响应码 NRC |
定义 Definition |
0x21 |