UDS 之服务描述约定(内含suppressPosRspMsgIndicationBit,NRC讲解)

服务描述

服务定义了14229协议中如何描述每个诊断服务。它定义每个诊断服务的常规服务描述格式。
此子条款简要概述了服务的功能。每个诊断服务规范都以客户端和服务器执行的操作的说明开头,这些操作特定于每个服务。每个服务的描述都包含一个表,其中列出了其原语的参数:request/indication, response/confirmation 都会有positive response 或 negative response.它们都具有相同的结构:
对于给定的A_PDU(Application layer protocol data unit)的request/indication和response/confirmation ,每个参数都会有一个convention(Cvt)值来描述,下表定义了A_PDU参数约定。
在这里插入图片描述
Mandatory:该参数必须存在于A_PDU中。标记为“M”的<Service Name>请求 SID”并不意味着此服务必须得到服务器的支持。“M”仅表示在服务器支持该服务的情况下,请求A_PDU中必须存在此参数。

Conditional:该参数可以基于某些条件(例如A_PDU中的子函数/参数)存在于A_PDU中。

Selection:指示参数是必需的(除非另有指定),并且是从参数列表中选择的参数。

Use option:该参数可能存在,也可能不存在,具体取决于用户的动态使用情况。

Request message(请求消息)

请求消息的定义

1.带有子服务
在这里插入图片描述

2.不带子服务
在这里插入图片描述在所有request/indication中,地址信息MType,TA,SA,TA类型和Length是强制性的,RA 是可选的。

子服务的参数结构(subfunction parameter structure)

子函数参数字节分为两部分(位级),如表 11 中所定义。
在这里插入图片描述
子服务参数值是一个 7 位的值(子服务参数字节的 6-0位),可以有多个值来进一步指定服务行为。除了 suppressPosRspMsgIndicationBit,有子服务的服务还应支持子服务参数值表中定义的子函数参数值。

suppressPosRspMsgIndicationBit

此位指示服务器是否应抑制肯定响应消息。
此位为‘0’ 表示FALSE,不要禁止显示positive响应消息,也就是说需要positive响应消息。意思就是client向server发送请求后,如果此请求的反馈是positive的,那server必须要发聩给client。
此为如果是’1’ 表示 TRUE,禁止响应消息,意思就是client向server发送请求后,如果此请求的反馈是positive的,那server不用反馈给client,即不用返回此消息。

值得注意的一点是如果server给client反馈的是negative的响应消息,那不管suppressPosRspMsgIndicationBit的标志位是什么,**都需要反馈给client。**即使不需要肯定响应(即 SPRMIB = true),也必须完全传递服务的执行,以保持实现的一致性,而不管 SPRMIB 值如何。

如果SPRMIB对于具有大量数据的响应为true,其中需要使用分页缓冲区处理,这可能导致这样的情况:第一批数据的传输仍然可以在响应定时窗口内开始,但是服务执行的终止超出了响应定时窗口的限制。如果在这种情况下抑制了响应,则无法通知客户端延迟,这时服务器处于繁忙状态,仍准备接收另一个请求。
避免以上情况发生,对于客户端,建议不要在同一请求中索要大量数据并设置SPRMIB(例如,SID 0x19 SF 0x0A) ,因为这将违背SPRMIB的目的。
对于服务器,建议使用大小写分页缓冲区处理,并发送错误码NRC 0x78(RCRRP)以及positive响应,在当SPRMIB为true时。
在这里插入图片描述

Positive response message

在这里插入图片描述

注意:这里的Response SID = Request SID + 0x40

Negative response message

在这里插入图片描述

注意:一般Nega Response SID 为0x7F

常用的 NRC(Negative Response Code)
NRC 否定响应码英文描述中文描述
11ServiceNotSupported服务不支持
12sub-functionNotSupported子服务不支持
13IncorrectMessageLengthOrInvalidFormat不正确的消息长度或无效的格式
22ConditionsNotCorrect服务执行条件不满足
24requestSequenceError请求序列错误
31requestOutOfRange请求超出范围
33securityAccessDenied安全访问拒绝
35invalidKey密钥无效密钥无效
36ExceedNumberOfAttempts请求安全访问(SecurityAccess)服务的失败次数超过服务器允许的最大次数时
37RequiredTimeDelayNotExpired服务器在安全访问延迟时间内收到安全访问(SecurityAccess)服务请求时
70UploadDownloadNotAccepted由于故障导致从服务器的存储器上传数据失败或向服务器的存储器下载数据失败时
7Esub-functionNotSupportedInActiveSession激活会话不支持子服务
7FserviceNotSupportedInActiveSession激活会话不支持该服务
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值