跟我学UDS(ISO14229) ———— 0x3E(TesterPresent)

该服务用于向一个或多个服务器指示客户端仍连接到车辆,并且先前已激活的某些诊断服务和/或通信将保持活动状态。按照我的理解就是,当你进入到某一个模式(非DefaultSession/安全解锁)下,你需要发送3E 服务来维持在该状态下,否则就会退出到默认模式下。这也是一个3E服务的重要测试点。另外,在自动化的过程中,也需要考虑到这个模式的使用,否则会出现在一系列的错误。

一、诊断请求

具体的格式定义如下:
在这里插入图片描述
这里需要对sub-function参数进行一个说明:
该函数只支持请求定义中的 0x00与 0x80。这与之前介绍的服务是不一样的,之前的服务均存在其他的子服务,但是这个服务的子服务已经被定义死了。其他的值均被ISO保留了,目前来说不可使用或者是无效。

这里还需要引入另外一个概念:
supportPosRspMsgIndicationBit = FALSE时:不禁止肯定响应报文的发送
supportPosRspMsgIndicationBit = TRUE时:禁止发送肯定响应的报文
怎么理解呢?
(1)supportPosRspMsgIndicationBit=0
发送请求:3E 00
肯定响应:7E 00
(2)supportPosRspMsgIndicationBit=1
发送请求:3E 80
肯定响应:无肯定响应报文回复
这里只是没有正响应报文发出,但是命令已经生效。这就是跟响应报文丢失的区别。

正响应格式

具体的格式定义如下:
在这里插入图片描述

负响应的NRC码

具体的NRC码情况如下:
跟我学UDS(ISO14229) ———— 0x3E(TesterPresent)_第1张图片

你可能感兴趣的:(ISO,14229,软件测试,黑盒测试)