ISO14229-1-2013 UDS 汉译笔记(第8章)
8 服务描述约定
8.1 服务描述
本条款定义了本规范中如何描述个诊断服务,并定义了各诊断服务一般服务描述格式。
本条款提供服务功能的简短概述,各诊断服务规范以描述各自服务的客户端和服务器执行动作开始。各服务的描述都会包含一张表格,用以列举其原语的参数:每个肯定或否定结果的请求/指示、响应/确认。都具有相同的结构:
对给定的请求/指示和响应/确认A_PDU定义,每个呈现的参数被下列约定值(Cvt)之一所描述。
表 8 定义A_PDU参数约定。
表 8 - A_PDU参数约定
类型 | 名称 | 描述 |
---|---|---|
M | Mandatory(强制) | 参数必须存在于A_PDU中 |
C | Conditional(条件) | 参数是否存在于A_PDU中取决于某些标准(例如子功能/参数是否在A_PDU中) |
S | Selection(选项) | 指示参数是强制的(除非有其他说明),且是在参数列表中的选项 |
U | User option(用户选择) | 参数是否存在均可,其是否存在依赖于用户的实际用法 |
注意 “<服务名>请求SID”标记未‘M’(强制),那并不意味着服务器一定支持该服务,‘M’仅仅表示在服务器支持该服务时,请求A_PDU中的参数必须存在。
8.2 请求消息
8.2.1 请求参数定义
本条款包含一张或多张定义服务请求、指示A_PDU参数的表,有可能对每个子功能参数对应不同的表格,这样做是为了避免不同子功能参数集的请求消息在A_Data参数结构中引发歧义,以及无法在一张表中定义清楚。
表格 9 定义了请求带有子功能的 A_pdu 定义
表格9 - 带子功能的A_PDU定义
A_PDU参数 | 参数名 | 约定 | 字节值 | 助记 |
---|---|---|---|---|
MType | Message Type | M | xx | MT |
SA | Source Address | M | xxxx | SA |
TA | Target Address | M | xxxx | TA |
TAtype | Target Address type | M | xx | TAT |
RA | Remote Address | C | xxxx | RA |
A_Data.A_PCI.SI | <Service Name> Request SID | M | xx | SIDRQ |
A_Data.Parameter 1 | sub-function = [parameter] | S | xx | LEV_PARAM |
A_Data.Parameter 2 : A_Data.Parameter k | data-parameter#1 : data-parameter#k-1 | U : U | xx : xx | DP_…#1 : DP_…#k-1 |
Length | Length of A_Data | M | xxxxxxxx | LGT |
C: 仅在远程地址中存在RA(Remote Address)PDU参数值 |
---|
表 10 定义了不含子功能的请求A_PDU
表10 - 不带有子功能的A_PDU请求定义
A_PDU参数 | 参数名 | 约定 | 字节值 | 助记 |
---|---|---|---|---|
MType | Message Type | M | xx | MT |
SA | Source Address | M | xxxx | SA |
TA | Target Address | M | xxxx | TA |
TAtype | Target Address type | M | xx | TAT |
RA | Remote Address | C xxxx | RA | |
A_Data.A_PCI.SI | <Service Name> Request SID | M | xx | SIDRQ |
A_Data.Parameter 1 : A_Data.Parameter k | data-parameter#1 : data-parameter#k | U : U | XX : XX | DP_…#1 : DP_…#k |
Length | Length of A_Data | M | xxxxxxxx | LGT |
C: 仅在远程寻址中存在RA(Remote Address)PDU参数值 |
---|
在所有请求/指示中,地址信息MType,TA,SA,TAtype和Length必须提供;寻址信息RA可选。
注意 为便于定义,商标展示了寻地址信息,由于A_Data和A_PDU参数在服务请求/响应中存在于消息数据字节中,所以接下来的服务请求/指示定义仅规定A_Data,A_PDU参数
8.2.2 请求消息子功能参数 $Level(LEV_)定义
本条款定义了为服务<Service Name>的请求/指示所定义的子功能$Level(LEV_)参数。
如果描述的服务不适用子功能参数值以及不使用suppressPosRspMsgIndicationBit(此处隐含的意思是需要一个响应),则本章节不包含任何定义,
子功能参数字节(按位级别)分列于以下两部分中,如表11所定义。
表 11 - 子功能参数结构
Bit position | 描述 |
---|---|
7 | $$suppressPosRspMsgIndicationBit$$该字节指示服务器是否应禁止肯定想应消息。 $'0'=FALSE$,表示不禁止肯定响应消息(需要一个肯定想应消息)。 $'1'=TRUE$,禁止响应消息(不会发送肯定响应消息;被寻址的服务器不发送肯定想应消息)。 与suppressPosRspMsgIndicationBit无关的是,服务器依据第7.5章的规定发送否定响应消息。 |
6-0 | $$sub-function参数值$$子功能参数第0-6比特包含了服务子功能参数值(0x00 - 0x7F) |
子功能参数长度 7 bit(子功能参数 byte 第 6-0 比特),可以通过多个值进一步指定服务行为。
服务除支持suppressPosRspMsgIndicationBit子功能参数值以外,也应支持子功能参数值表中定义的子功能参数值。
每个服务包含一个限定在第0-6bit的定义子功能参数值的表格。
注意 如果大量数据响应中SPRMIB为TRUE,则需要页缓冲处理(paged-buffer-handling),这也会导致第一批数据传输发生在响应时间窗口内(译注:所谓时间窗口即timing window=最晚信号跳变时间-最早信号跳变时间),但服务执行能够超出响应时间窗口限制而终止。如果这种情况下禁止响应,则服务器无法指示服务器等待,但服务器仍处于繁忙状态并无法处理其他请求。不建议客户端请求大量数据时缪用SPRMIB。建议服务器在分页缓存处理且SPRMIB为TRUE时先发送NRC 0x78(RCRRP)然后紧接着发送肯定响应。
表 12 定义请求消息子功能参数
表 12 - 请i去消息子功能参数定义
Bits 6-0 | 描述 | Cvt | 助记 |
---|---|---|---|
xx | sub-function#1 子功能参数#1描述 |
M/U | SUBFUNC1 |
: | : | : | : |
xx | sub-function#m 子功能参数#m描述 |
M/U | SUBFUNCm |
表13中诠释了表12的约定(Cvt)列 |
表 13 - 子功能参数约定
类型 | 名称 | 描述 |
---|---|---|
M | Mandatory(强制) | 如果服务支持子功能参数,则服务器必须支持子功能参数 |
U | User option(用户选择) | 依据服务用例,服务器不一定支持该子功能参数 |
完整的子功能参数字节值基于对suppressPosRspMsgIndicationBit和子功能参数选择的计算。
表 14 定义了子功能参数的计算
表 14 子功能参数值计算
Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 |
---|---|---|---|---|---|---|---|
SuppressPosRspMsgIndicationBit | 子功能参数值定义域服务的子功能参数值表 | ||||||
产生的子功能参数字节值(bit 7-0) |
8.2.3 请求消息数据参数定义
本条款定义了服务<服务名>的请求和指示的数据参数 $DataParam(DP_)
表 15 - 请求消息数据参数定义
定义 |
---|
data-parameter#1 数据参数#1的描述 |
: |
data-parameter#n 数据参数#n的描述 |
8.3 肯定想应消息
8.3.1 肯定响应消息定义
本条款定义服务响应、服务确认的A_PDU参数(参考 7.2 应用层协议数据单元A_PDU的详细描述)。响应消息的 A_Data 结构中,不同子功能参数 $Level 可能对应各自独立的表。
注意 诊断服务执行过后,会根据是否愮响应数据发送肯定想应消息。如果诊断服务需要不同的处理,那么在诊断服务描述中可以找到有关于何时发送肯定响应消息的恰当说明
表 16定义了肯定想应A_PDU
表 16 肯定想应 A_PDU
A_PDU参数 | 参数名 | 协定 | 字节值 | 助记符 |
---|---|---|---|---|
SA | Source Address(源地址) | M | xxxx | SA |
TA | Target Address(目标地址) | M | xxxx | TA |
TAtype | Target Address type(目标地址类型) | M | xx | TAT |
RA | Remote Address(远程地址) | C | xxxx | RA |
A_Data.A_PCI.SI | <服务名>响应SID | S | xx | SIDPR |
A_Data.Parameter 1 : A_Data.Parameter k |
data-parameter#1(数据参数#1) : data-parameter#k(数据参数#k) |
U : U |
xx : xx |
DP_...#1 : DP_...#k |
C: PDU参数RA(远程地址)只存在于远程寻址中 |
---|
所有响应和确认寻址信息中必须要有TA、SA和TAtype,寻址信息RA是可选的。
注意 为明确定义商标展示了寻址信息,更多的服务响应和服务确认仅指定A_Data A_PDU参数,因为它们代表服务响应、服务确认的消息数据字节
8.3.2 肯定响应消息数据参数定义
本条款定义服务<服务名>的响应和确认数据参数。本服务不包含任何不使用数据参数的服务描述的定义。数据参数部分可包含多个字节。
本条款对每个数据参数提供一般描述,详细定义参考本文附件部分,具体附件取决于服务,附件也规定在服务器支持服务的情况下,数据参数可否受支持(或用户可选)。
表 17 定义了响应数据参数。
表 17 响应数据参数定义
定义 |
---|
data-parameter#1 对data-parameter#1的描述,如果请求支持子功能参数字节,则该参数是7-bit子功能参数值的回显,该值存在于请求子功能参数字节0-7bit中。子功能参数字节的suppressPosRspMsgIndicationBit不回显。 |
: |
data-parameter#m data-parameter#m 的描述 |
8.4 支持的否定响应码(_NRC)
本条款定义服务支持的否定响应码实现,在下面表格中产生各响应码的条件,否定响应消息参考7.4章,服务器通过否定响应A_PDU指明具体的错误。
在适用的情况下,在各服务中列举的否定响应码之外,在附录 A.1 中也列举了否定响应码,详情参考附录 A.1
表 18 定义对否定响应码的支持。
表 18 支持的否定响应码
NRC | 描述 | 助记符 |
---|---|---|
0xXX | NegativeResponseCode#1 1. condition#1 : m. comdition#m |
NRC_ |
: | : | NRC_ |
0xXX | NegativeResponseCode#n 1. condition#1 : k. condition#k |
NRC_ |
8.5 消息流示例
本条款包含服务<服务名>的消息流示例。所有示例通过消息级别展示(不包括寻址信息)
表 19 定义了请求消息流示例。
表 19 请求消息流示例
消息方向 | 客户端->服务器 | |||
---|---|---|---|---|
消息类型 | 请求 | |||
A_Data类型 | 描述(16进制) | 字节值 | 助记符 | |
#1 (A_PCI) | <服务名> 请求 SID | 0xXX | SIDRQ | |
#2 : #n |
sub-function/data-parameter#1 : data-parameter#m |
0xXX 0xXX 0xXX |
LEV_/DP_ DP_ DP_ |
表 20 定义了肯定响应消息流示例
表 20 - 肯定响应消息流示例
消息方向 | 服务器->客户端 | |||
---|---|---|---|---|
消息类型 | 响应 | |||
A_Data类型 | 描述(16进制) | 字节值 | 助记符 | |
#1 (A_PCI) | <服务名> 响应 SID | 0xXX | SIDRQ | |
#2 : #n |
data-parameter#1 : data-parameter#n-1 |
0xXX : 0xXX |
DP_ : DP_ |
如果服务<服务名>适用,则可能有多个示例(例如 每个子功能参数 $Level 对应一个示例)。
表 21 展示了否定消息的消息流示例
表 21 - 否定消息流示例
消息方向 | 服务器->客户端 | |||
---|---|---|---|---|
消息类型 | 响应 | |||
A_Data类型 | 描述(16进制) | 字节值 | 助记符 | |
#1 (A_PCI.NR_SI) | 否定响应 SID | 0x7F | SIDRSIDNRQ | |
#2 (A_PCI.SI) | <服务名>请求SID | 0xXX | SIDRQ | |
#3 | responseCode | 0xXX | NRC_ |
(1~7章)[https://www.cnblogs.com/sam-snow-v/articles/15849363.html]