14229协议常用的诊断服务介绍0x22服务学习笔记

0x22(ReadDataByIdentifier):
通过标识符读取数据):客户端请求读取由所提供的数据标识符所标识的记录的当前值

1.概述

ReadDataByIdentifier服务允许客户端从由一个或多个数据标识符标识的服务器请求数据记录值,意思就是请求消息中包含一个或多个数据标识符,每个数据标识符呢都对应着一些信息,比如说0x1234这个数据标识符对应着车速信息和里程信息,那么如果请求消息中包含0x1234这个数据标识符,肯定响应消息就会返回车速和里程值。

客户端请求消息包含一个或多个双字节dataIdentifier值(以下简称DID),用于标识服务器维护的数据记录(有关允许的DID数值,请参阅C.1)。数据记录的格式和定义应特定于车辆制造商或系统供应商,并可能包括模拟输入和输出信号、数字输入和输出信息、内部数据和系统状态信息(如果服务器支持)。

根据车辆制造商和系统供应商的约定,服务器可以限制可以同时请求的数据标识符的数量。
在接收到ReadDataByIdentifier请求后,服务器应访问DID参数指定的记录的数据元素,并在包含相关dataRecord参数的单个DID肯定响应中传输其值。请求消息可以多次包含相同的数据标识符。服务器应将每个数据标识符视为一个单独的参数,并根据要求经常使用每个数据标识符的数据进行响应。

2.请求消息定义

在这里插入图片描述
在这里插入图片描述
注意:不支持子功能及抑制肯定响应指示位
22服务的请求消息只有两个部分,最小长度为3byte
①第一部分是SID(1字节),在这里是0x22;
②第二部分是参数DID,注意了,这可不是子功能参数,这只是一种普普通通的参数,这个参数就是数据标识符了,可以有一个,也可以有多个,那么长度就是2*n字节啦,其中n=DID的个数,每个DID是两个字节

3.肯定响应消息定义

在这里插入图片描述
在这里插入图片描述
22服务的肯定响应消息就分为三个部分啦,
①第一部分是SID+0x40(1个字节),在这里就是0x62;
②第二部分是DID(2个字节);
③第三部分是参数dataRecord,那么这个参数就是对应的DID所表示的数据了
其中第二部分和第三部分是一一对应的,有一个DID,就会有一个相应的dataRecord,那么同样的,请求消息中有多少个DID,肯定响应消息中就会有多少个DID以及对应的参数dataRecord。

4.否定响应消息定义

在这里插入图片描述
在这里插入图片描述
否定响应消息分为三部分,
①第一部分是固定的0x7F(1个字节),
②第二部分是SID 0x22(1个字节),
③第三部分是支持的NRC

5.NRC及执行22服务流程

在这里插入图片描述

注意

14229-1中还给出了回复NRC的场景,或者应该说是服务器执行22服务的流程图
在这里插入图片描述
下面我们对此流程图进行解读:
①当服务器收到22服务的请求后,首先检查请求消息的长度是否符合要求,检查项有两个,一个是检查请求消息的长度是否大于最小长度,如果小于最小长度,那么返回NRC13,另一个是将请求消息的长度做模2除法,如果余数为1,说明长度不符合要求,此时返回NRC13。
②之后检查最大长度,如果请求消息的长度大于最大长度,同样返回NRC13(关于最大长度是多少,我认为应该是车厂或者供应商自定义的)。
③接下来就是一个循环检查每个DID的过程,在这个循环的过程中,
④首先检查一个DID在当前会话下是否支持被读取,如果不支持,可能需要先记录下来,再继续检查下一个DID,
⑤如果支持,那么下一步检查DID对应的安全等级是否已解锁,如果未解锁,直接返回NRC33,⑥如果以解锁,执行下一步判断,下一步的判断条件是可选的,可能读取某些DID时需要有一些前提条件,这一步就是检测前提条件是否满足,如果不满足,直接返回NRC22,
⑦如果满足,检查是否还有下一个DID,
⑧如果有,执行上述的判断步骤,如果没有,则结束这个循环。
⑨循环结束后,判断是否至少有一个DID在当前会话中支持读取,如果没有,直接返回NRC31,
⑩如果有,执行下一步判断,下一步判断肯定响应的总长度是否超过了最大的数据长度,如果超过了,返回NRC14,
⊜如果没超过,并且所有的DID在当前会话中均支持读取,那么返回肯定响应消息

6.Temp

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值