Loading

本篇文章主要介绍在ISO 14229-1标准中定义的UDS服务——$3E TesterPresent,其为Tester提供了向目标ECU指示设备仍处于连接状态的能力。

1 服务介绍

$3E服务用于向一个或多个ECU指示Tester仍连接在车辆网络上,并保持先前已激活的诊断服务功能一直处于激活状态。

关键点:

  1. 在没有其它诊断服务的情况下,Tester需要周期性地发送$3E TesterPresent诊断请求以向ECU指示保持连接状态。
  2. 其常用于将一个或多个ECU保持在non-defaultSession。因为当ECU处于non-defaultSession时,若超出S3server时间没有任何诊断通信,则其会自动回到defaultSession。由于$3E服务可重置S3server计时器,因此可以通过定期发送$3E服务,防止ECU在没有进行其他诊断服务的情况下,自动返回到defaultSession。

2 服务数据格式

2.1 请求数据格式

以下是$3E服务的请求数据格式:

字节序参数字节值说明
#Byte1TesterPresent SID0x3E必选
#Byte2sub-function = [zeroSubFunction]0x00 / 0x80必选

2.1.1 zeroSubFunction

zeroSubFunction是$3E服务的sub-function参数,其具体定义如下表所示:

zeroSubFunctionDescription
0x00zeroSubFunction
此参数指示该诊断服务不支持除suppressPosRspMsgIndicationBit外的子功能a
0x01 – 0x7FISOSAEReserved
  • a:当 suppressPosRspMsgIndicationBit = 0 时,$3E服务的sub-function为0x00,表示ECU需要给出正响应;当 suppressPosRspMsgIndicationBit = 1 时,$3E服务的sub-function为0x80,表示ECU不需要给出正响应。

2.2 肯定响应数据格式

以下是$3E服务的肯定响应数据格式:

字节序参数字节值说明
#Byte1TesterPresent SID + 0x400x7E必选
#Byte2sub-function = [zeroSubFunction]0x00必选

2.2.1 zeroSubFunction

zeroSubFunction是对应$3E服务请求报文中的zeroSubFunction参数回显。

2.3 否定响应数据格式

以下是$3E服务的否定响应数据格式:

字节序参数字节值说明
#Byte1Negative Response SID0x7F必选
#Byte2TesterPresent SID0x3E必选
#Byte3NRCsupportedNRC必选

supportedNRC的可选值如下表所示:

supportedNRCNRC define描述
0x12sub-functionNotSupportedECU不支持该诊断请求服务的子功能
0x13incorrectMessageLengthOrInvalidFormat诊断请求指令的长度或格式不对

3 服务通信示例

3.1 维持非默认诊断会话

本例展示了Tester如何通过$3E服务维持ECU非默认诊断会话,其中,存在以下条件:

  • sub-function bit7: SPR = 0

3.1.1 请求报文

字节序参数字节值
#Byte1TesterPresent SID0x3E
#Byte2sub-function = [zeroSubFunction]0x00

3.1.2 肯定响应报文

字节序参数字节值
#Byte1TesterPresent SID + 0x400x7E
#Byte2sub-function = [zeroSubFunction]0x00

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

👤本站访客数: 👁️本站访问量: