UDS诊断之负响应码

1.0x10服务 服务诊断会话控制

否定响应码(NRC)定义(Defination)
0x12服务器支持诊断请求中的服务标识符(Service ID),但不支持收到的子功能参数时,回复此编码。
0x13请求服务的诊断报文中的数据长度与定义不一致时,回复此编码。请求服务中参数的格式与定义不一致时也会回复此编码。
0x22请求的诊断服务的执行条件不满足时,回复此编码。
0x21服务器忙
0x11诊断服务不支持
0x7F诊断服务在当前会话下不支持
0x78收到诊断请求,等待响应

2.0x11服务 ECU复位

否定响应码(NRC)定义(Defination)
0x12服务器支持诊断请求中的服务标识符(Service ID),但不支持收到的子功能参数时,回复此编码。
0x13请求服务的诊断报文中的数据长度与定义不一致时,回复此编码。请求服务中参数的格式与定义不一致时也会回复此编码。
0x22请求的诊断服务的执行条件不满足时,回复此编码。
0x33通常在所请求的诊断服务需要服务器处于解锁状态,但服务器未被解锁时,回复此编码。
0x21服务器忙
0x11诊断服务不支持
0x7F诊断服务在当前会话下不支持
0x78收到诊断请求,等待响应

3.0x14服务 清除故障信息

否定响应码(NRC)定义(Defination)
0x13请求服务的诊断报文中的数据长度与定义不一致时,回复此编码。请求服务中参数的格式与定义不一致时也会回复此编码。
0x22请求的诊断服务的执行条件不满足时,回复此编码。
0x31诊断请求中的参数超出定义的范围,或者访问的数据标识符(DID)、例程标识符(RoutineID)是服务器不支持或在当前会话不支持时,回复此编码。
0x72服务器在擦除或写入Flash出现错误时,回复此代码。
0x21服务器忙
0x11诊断服务不支持
0x7F诊断服务在当前会话下不支持
0x78收到诊断请求,等待响应

4.0x19服务 读取故障码信息

否定响应码(NRC)定义(Defination)
0x12服务器支持诊断请求中的服务标识符(Service ID),但不支持收到的子功能参数时,回复此编码。
0x13请求服务的诊断报文中的数据长度与定义不一致时,回复此编码。请求服务中参数的格式与定义不一致时也会回复此编码。
0x31诊断请求中的参数超出定义的范围,或者访问的数据标识符(DID)、例程标识符(RoutineID)是服务器不支持或在当前会话不支持时,回复此编码。
0x21服务器忙
0x11诊断服务不支持
0x7F诊断服务在当前会话下不支持
0x78收到诊断请求,等待响应

5.0x22服务 通过ID读取数据

否定响应码(NRC)定义(Defination)
0x13请求服务的诊断报文中的数据长度与定义不一致时,回复此编码。请求服务中参数的格式与定义不一致时也会回复此编码。
0x14服务器准备给出的诊断响应中所包含的数据长度超出了服务器所支持的最大长度时,回复编码。
0x22请求的诊断服务的执行条件不满足时,回复此编码。
0x31诊断请求中的参数超出定义的范围,或者访问的数据标识符(DID)、例程标识符(RoutineID)是服务器不支持或在当前会话不支持时,回复此编码。
0x33通常在所请求的诊断服务需要服务器处于解锁状态,但服务器未被解锁时,回复此编码。
0x21服务器忙
0x11诊断服务不支持
0x7F诊断服务在当前会话下不支持
0x78收到诊断请求,等待响应

6.0x27服务 安全访问

否定响应码(NRC)定义(Defination)
0x13请求服务的诊断报文中的数据长度与定义不一致时,回复此编码。请求服务中参数的格式与定义不一致时也会回复此编码。
0x14服务器准备给出的诊断响应中所包含的数据长度超出了服务器所支持的最大长度时,回复编码。
0x22请求的诊断服务的执行条件不满足时,回复此编码。
0x24请求服务的顺序不正确时,回复此编码。某写诊断服务请求是有先后顺序的。典型的就是安全访问(SecurityAccess)服务。必须先请求种子(Request Seed),再回复密钥(Send Key)。如果直接回复秘(Send Key),则服务器会回复此编码。
0x31诊断请求中的参数超出定义的范围,或者访问的数据标识符(DID)、例程标识符(RoutineID)是服务器不支持或在当前会话不支持时,回复此编码。
0x35服务器收到的安全访问(SecurityAccess)服务请求子功能为发送秘钥(SendKey),但服务器收到的秘钥(Key)不正确时,回复此编码。
0x36请求安全访问(SecurityAccess)服务的失败次数超过服务器允许的最大次数时,回复此编码。
0x37服务器在安全访问延迟时间内收到安全访问(SecurityAccess)服务请求时,回复此编码。
0x21服务器忙
0x11诊断服务不支持
0x7F诊断服务在当前会话下不支持
0x78收到诊断请求,等待响应

7.0x28服务 通信控制

否定响应码(NRC)定义(Defination)
0x12服务器支持诊断请求中的服务标识符(Service ID),但不支持收到的子功能参数时,回复此编码。
0x13请求服务的诊断报文中的数据长度与定义不一致时,回复此编码。请求服务中参数的格式与定义不一致时也会回复此编码。
0x22请求的诊断服务的执行条件不满足时,回复此编码。
0x31诊断请求中的参数超出定义的范围,或者访问的数据标识符(DID)、例程标识符(RoutineID)是服务器不支持或在当前会话不支持时,回复此编码。
0x21服务器忙
0x11诊断服务不支持
0x7F诊断服务在当前会话下不支持
0x78收到诊断请求,等待响应

8.0x2E服务 通过ID写入数据

否定响应码(NRC)定义(Defination)
0x13请求服务的诊断报文中的数据长度与定义不一致时,回复此编码。请求服务中参数的格式与定义不一致时也会回复此编码。
0x22请求的诊断服务的执行条件不满足时,回复此编码。
0x31诊断请求中的参数超出定义的范围,或者访问的数据标识符(DID)、例程标识符(RoutineID)是服务器不支持或在当前会话不支持时,回复此编码。
0x33通常在所请求的诊断服务需要服务器处于解锁状态,但服务器未被解锁时,回复此编码。
0x72服务器在擦除或写入Flash出现错误时,回复此代码。
0x21服务器忙
0x11诊断服务不支持
0x7F诊断服务在当前会话下不支持
0x78收到诊断请求,等待响应

9.0x2F服务 通过ID进行输入输出控制

否定响应码(NRC)定义(Defination)
0x13请求服务的诊断报文中的数据长度与定义不一致时,回复此编码。请求服务中参数的格式与定义不一致时也会回复此编码。
0x22请求的诊断服务的执行条件不满足时,回复此编码。
0x31诊断请求中的参数超出定义的范围,或者访问的数据标识符(DID)、例程标识符(RoutineID)是服务器不支持或在当前会话不支持时,回复此编码。
0x33通常在所请求的诊断服务需要服务器处于解锁状态,但服务器未被解锁时,回复此编码。
0x21服务器忙
0x11诊断服务不支持
0x7F诊断服务在当前会话下不支持
0x78收到诊断请求,等待响应

10.0x31服务 例程控制

否定响应码(NRC)定义(Defination)
0x12服务器支持诊断请求中的服务标识符(Service ID),但不支持收到的子功能参数时,回复此编码。
0x13请求服务的诊断报文中的数据长度与定义不一致时,回复此编码。请求服务中参数的格式与定义不一致时也会回复此编码。
0x22请求的诊断服务的执行条件不满足时,回复此编码。
0x24请求服务的顺序不正确时,回复此编码。某写诊断服务请求是有先后顺序的。典型的就是安全访问(SecurityAccess)服务。必须先请求种子(Request Seed),再回复密钥(Send Key)。如果直接回复秘(Send Key),则服务器会回复此编码。
0x31诊断请求中的参数超出定义的范围,或者访问的数据标识符(DID)、例程标识符(RoutineID)是服务器不支持或在当前会话不支持时,回复此编码。
0x33通常在所请求的诊断服务需要服务器处于解锁状态,但服务器未被解锁时,回复此编码。
0x72服务器在擦除或写入Flash出现错误时,回复此代码。
0x21服务器忙
0x11诊断服务不支持
0x7F诊断服务在当前会话下不支持
0x78收到诊断请求,等待响应

11.0x34服务 请求下载

否定响应码(NRC)定义(Defination)
0x13请求服务的诊断报文中的数据长度与定义不一致时,回复此编码。请求服务中参数的格式与定义不一致时也会回复此编码。
0x22请求的诊断服务的执行条件不满足时,回复此编码。
0x31诊断请求中的参数超出定义的范围,或者访问的数据标识符(DID)、例程标识符(RoutineID)是服务器不支持或在当前会话不支持时,回复此编码。
0x33通常在所请求的诊断服务需要服务器处于解锁状态,但服务器未被解锁时,回复此编码。
0x70由于故障导致从服务器的存储器上传数据失败或向服务器的存储器下载数据失败时,回复此代码。
0x21服务器忙
0x11诊断服务不支持
0x7F诊断服务在当前会话下不支持
0x78收到诊断请求,等待响应

12.0x35服务 请求上传

否定响应码(NRC)定义(Defination)
0x13请求服务的诊断报文中的数据长度与定义不一致时,回复此编码。请求服务中参数的格式与定义不一致时也会回复此编码。
0x22请求的诊断服务的执行条件不满足时,回复此编码。
0x31诊断请求中的参数超出定义的范围,或者访问的数据标识符(DID)、例程标识符(RoutineID)是服务器不支持或在当前会话不支持时,回复此编码。
0x33通常在所请求的诊断服务需要服务器处于解锁状态,但服务器未被解锁时,回复此编码。
0x70由于故障导致从服务器的存储器上传数据失败或向服务器的存储器下载数据失败时,回复此代码。
0x21服务器忙
0x11诊断服务不支持
0x7F诊断服务在当前会话下不支持
0x78收到诊断请求,等待响应

13.0x36服务 数据传输

否定响应码(NRC)定义(Defination)
0x13请求服务的诊断报文中的数据长度与定义不一致时,回复此编码。请求服务中参数的格式与定义不一致时也会回复此编码。
0x24请求服务的顺序不正确时,回复此编码。某写诊断服务请求是有先后顺序的。典型的就是安全访问(SecurityAccess)服务。必须先请求种子(Request Seed),再回复密钥(Send Key)。如果直接回复秘(Send Key),则服务器会回复此编码。
0x31诊断请求中的参数超出定义的范围,或者访问的数据标识符(DID)、例程标识符(RoutineID)是服务器不支持或在当前会话不支持时,回复此编码。
0x71由于故障导致数据传输操作被中断时,回复此编码。
0x72服务器在擦除或写入Flash出现错误时,回复此代码。
0x73在执行数据传输服务(TransferData (0x36) service)的过程中,检测到数据块序列编号(BlockSequenceCounter)错误时,回复此编码。
0x92请求的诊断服务被执行的条件之一是蓄电池电压低于设定的限值,而此时该条件不满足,则回复此编码。
0x93请求的诊断服务被执行的条件之一是蓄电池电压高于设定的限值,而此时该条件不满足,则回复此编码。
0x21服务器忙
0x11诊断服务不支持
0x7F诊断服务在当前会话下不支持
0x78收到诊断请求,等待响应

14. 0x37服务 请求结束传输

否定响应码(NRC)定义(Defination)
0x13请求服务的诊断报文中的数据长度与定义不一致时,回复此编码。请求服务中参数的格式与定义不一致时也会回复此编码。
0x24请求服务的顺序不正确时,回复此编码。某写诊断服务请求是有先后顺序的。典型的就是安全访问(SecurityAccess)服务。必须先请求种子(Request Seed),再回复密钥(Send Key)。如果直接回复秘钥(Send Key),则服务器会回复此编码。
0x31诊断请求中的参数超出定义的范围,或者访问的数据标识符(DID)、例程标识符(RoutineID)是服务器不支持或在当前会话不支持时,回复此编码。
0x72服务器在擦除或写入Flash出现错误时,回复此代码。
0x21服务器忙
0x11诊断服务不支持
0x7F诊断服务在当前会话下不支持
0x78收到诊断请求,等待响应

15.0x3E服务 测试设备在线

否定响应码(NRC)定义(Defination)
0x12服务器支持诊断请求中的服务标识符(Service ID),但不支持收到的子功能参数时,回复此编码。
0x13请求服务的诊断报文中的数据长度与定义不一致时,回复此编码。请求服务中参数的格式与定义不一致时也会回复此编码。
0x21服务器忙
0x11诊断服务不支持
0x7F诊断服务在当前会话下不支持
0x78收到诊断请求,等待响应

16.0x85服务 控制故障码设置

否定响应码(NRC)定义(Defination)
0x12服务器支持诊断请求中的服务标识符(Service ID),但不支持收到的子功能参数时,回复此编码。
0x13请求服务的诊断报文中的数据长度与定义不一致时,回复此编码。请求服务中参数的格式与定义不一致时也会回复此编码。
0x22请求的诊断服务的执行条件不满足时,回复此编码。
0x31诊断请求中的参数超出定义的范围,或者访问的数据标识符(DID)、例程标识符(RoutineID)是服务器不支持或在当前会话不支持时,回复此编码。
0x21服务器忙
0x11诊断服务不支持
0x7F诊断服务在当前会话下不支持
0x78收到诊断请求,等待响应

17. 其他否定响应码

下表中列出了ISO14229-1中定义的否定响应码及其使用条件。

否定响应码(NRC)定义(Description)
0x00此编码用于服务器内部实现否定响应码的逻辑时使用,用于表示没有NRC,不给出否定响应。此编码不会在否定响应中给出。
0x01 - 0x0FISO预留。用于以后扩展。
0x15 - 0x20ISO预留。用于以后扩展。
0x25此编码适用于网关。当向网关请求的服务需要子网段中的控制器执行去执行,但是子网段中的控制器没有正常的执行网关的请求。此时,网关应向请求诊断服务的设备回复此编码。
0x26由于当前服务器存在故障,并且已经记录下了对应的故障码(DTC),切此故障会导致请求的服务无法执行时,回复此编码。
0x27 - 0x30ISO预留。用于以后扩展。
0x32ISO预留。用于以后扩展。
0x34ISO预留。用于以后扩展。
0x38 - 0x4F预留。用于扩展数据链路安全。
0x50 - 0x6FISO预留。用于以后扩展。
0x74 - 0x77ISO预留。用于以后扩展。
0x79 - 0x7DISOSAEReserved
0x7E诊断请求中服务的子功能参数在当前的会话下不支持时,回复此编码。需要注意的是,回复此编码时,子功能参数是服务器在其它会话下支持的,只是在当前的会话下不支持。如果服务器在任何会话下都不支持此子功能参数,则需回复0x12.
0x7F诊断请求中的服务标识符(Service ID)在当前的会话下不支持时,回复此编码。需要注意的是,回复此编码时,的服务标识符(Service ID)是服务器在其它会话下支持的,只是在当前的会话下不支持。如果服务器在任何会话下都不支持此子功能参数,则需回复0x11.
0x80ISO预留。用于以后扩展。
0x81请求的诊断服务被执行的条件之一是发动机转速低于某一限值,而此时的发动机转速不满足此要求时,回复此编码。
0x82请求的诊断服务被执行的条件之一是发动机转速高于某一限值,而此时的发动机转速不满足此要求时,回复此编码。
0x83请求的诊断服务被执行的条件之一是发动机处于停机状态,而此时发动机处于运转状态,则回复此编码。
0x84请求的诊断服务被执行的条件之一是发动机处于运转状态,而此时发动机处于停机状态,则回复此编码。
0x85请求的诊断服务被执行的条件之一是发动机运转的时间超过某一限值,而此时该条件不满足,则回复此编码。
0x86请求的诊断服务被执行的条件之一是当前的温度低于某一限值,而此时该条件不满足,则回复此编码。
0x87请求的诊断服务被执行的条件之一是当前的温度高于某一限值,而此时该条件不满足,则回复此编码。
0x88请求的诊断服务被执行的条件之一是当前的车速低于某一限值,而此时该条件不满足,则回复此编码。
0x89请求的诊断服务被执行的条件之一是当前的车速高于某一限值,而此时该条件不满足,则回复此编码。
0x8A请求的诊断服务被执行的条件之一是节气门开度或加速踏板开度低于某一限值,而此时该条件不满足,则回复此编码。
0x8B请求的诊断服务被执行的条件之一是节气门开度或加速踏板开度高于某一限值,而此时该条件不满足,则回复此编码。
0x8C请求的诊断服务被执行的条件之一是变速器处于空档,而此时该条件不满足,则回复此编码。
0x8D请求的诊断服务被执行的条件之一是变速器处于非空档,而此时该条件不满足,则回复此编码。
0x8EISO预留。用于以后扩展。
0x8F请求的诊断服务被执行的条件之一是在诊断服务被执行前和执行过程中制动踏板没有被踩下,而此时该条件不满足,则回复此编码。
0x90请求的诊断服务被执行的条件之一是变速器处于P空档,而此时该条件不满足,则回复此编码。
0x91请求的诊断服务被执行的条件之一是液力变矩器未处于锁止状态,而此时该条件不满足,则回复此编码。
0x94 - 0xEF预留。用于将来定义特定的条件不满足情况。
0xF0 - 0xFE预留。用于车辆制造商定义特定的条件不满足的情况。
0xFFISO预留。用于以后扩展。
UDS (Unified Diagnostic Services) 是ISO 14229标准定义的一套统一的汽车诊断服务规范,用于车辆之间的通信,允许对车辆的各种系统进行诊断、读取数据、执行动作等操作。 诊断流控帧(Diagnostic Flow Control Frame)在UDS环境中是一个用于控制数据传输速度的帧。它主要用于在发送大量数据前,请求接收方准备好接收,以及在发送完数据后确认已接收到所有数据。这种机制有助于防止因数据传输过快而导致的数据丢失或接收错误的情况发生。 ### UDS诊断流控帧回复的基本功能: 1. **请求准备接收**:当需要向远程节点发送大量数据之前,本地节点可以发出一个流控帧询问对方是否已经准备好接收数据。这通常由本地节点主动发起。 2. **接收准备状态指示**:远程节点在收到流控帧后,会回复相应的流控帧表示其当前的接收状态。如果远程节点尚未完成之前的数据接收并准备好了接收新的数据,则可能会暂时拒绝接收新的数据。 3. **数据传输确认**:在发送完数据之后,本地节点可以再次使用流控帧告知远程节点数据传输已完成,并期望获得接收确认。 4. **接收确认**:远程节点在接收到全部数据后,通过特定的响应帧向本地节点反馈接收结果。如果所有的数据都被成功接收,会返回确认信息;如果有数据丢失或未被正确接收,则需要进行相应处理,如重新传输等。 ### 实现细节: - **帧结构**:UDS流控帧通常包含一个命令字节、一个数据长度字段和其他必要的信息,比如CRC校验码。这些信息帮助确定帧的目的、长度以及有效性。 - **协议交互**:在实际应用中,通过按照ISO 14229标准规定的流程执行一系列特定的命令和等待响应,来实现流控帧的操作。例如,使用ISO 5725-1标准中定义的特定命令ID来启动和管理流控过程。 - **安全性考虑**:在使用流控帧进行数据传输的过程中,还需要考虑到安全性的保护措施,比如使用密码验证或其他加密手段,以确保数据传输过程中数据的安全性和完整性。 ###
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值