UDS(ISO14229-2006) 理解(No.8 服务描述约定)

8 服务描述约定

8.1 服务描述

本节定义ISO14229如何描述各服务,并定义通用的诊断服务描述格式。

本节清楚地描述服务的功能轮廓。每个诊断服务规范始于描述客户端和服务器特定服务的执行动作。每个服务的描述包含一张表,其中列举了其积极、消极响应的原语参数:请求/指示、响应/确认。每个结构都与此雷同。

对于给定请求/指示和响应/确认的A_PDU定义,每个参数的存在由表8中给出的以下约定 (CVT) 值之一描述。

表8 --A_PDU参数约定

类型 名称 描述
M Mandatory(强制) 该参数应存在于A_PDU中
C Conditional(条件) 基于某些标准该参数可以存在于A_PDU中。(例如A_PDU的子函数、子参数)
S Selection(选择) (除非有其他说明)该部分指示参数是强制的,且在参数列表中选择。
U User option(用户选项) 该参数可能并不存在,基于用户的动态用例。
注意:“<服务名>请求服务ID(<Service Name> Request Service Id)”标记为M并不意味着服务器一定支持该服务。M仅指明当服务器支持该服务时,请求A_PDU中强制要求存在此参数。

8.2 请求消息

8.2.1 请求消息定义

本节包含多个定义此服务请求/指示 A_PDU 参数(参见第七章)的表格。如果不同子函数参数($Level)的请求消息在 A_Data 参数的结构中存在差异,并且无法在一个表中明确指定,则每个子函数参数($Level)可能有一个单独的表。

表9 -- 请求具有子函数的A_PDU定义

A_PDU参数 参数名 Cvt 十六进制 助记符
SA 源地址 M xx  SA
TA 目标地址 M xx  TA
TA_type 目标地址类型 M xx  TAT
RA 远程地址 C xx  RA
 
A_Data.A_PCI.SI  <Service Name> Request Service Id   xx  SIDRQ

A_Data.
Parameter 1

sub-function = [

      parameter]

  xx

LEV_PARAM

 

Parameter 2
:
Parameter k

data-parameter#1
    :
data-parameter#k-1

 

xx
:
xx

 

DP_…#1
:
DP_…#k-1

C: RA(远程寻址Remote Address)PDU参数只存在于远程寻址状况下。

 

表10 -- 请求不具备子函数的A_PDU定义

A_PDU参数 参数名 Cvt 十六进制 助记符
SA 源地址 M XX SA
TA 目标地址 M XX TA
TATYPE 目标地址类型 M XX TAT
RA 远程地址 C XX RA
 
A_Data.A_PCI.SI <Service Name> Request Service Id M XX SIDRQ

A_Data.
Parameter 1
:
Parameter k

data-parameter#1
:
data-parameter#k

U
:
U

xx
:
xx

DP_…#1
:
DP_…#k

C: RA(远程寻址Remote Address)PDU参数只存在于远程寻址状况下。

在所有的请求/指示中,强制要求存在寻址信息TA、SA、TA_type。寻址信息RA可选。

注意:寻址信息展示在上表中以便进行定义。服务请求/指示的进一步定义仅指定A_Data和A_PDU参数,因为A_Data和A_PDU参数含有服务请求/指示的数据字节序列。

8.2.2 请求消息子函数参数$Level (LEV_)定义

本章定义了子函数$levels (LEV_) 参数,是由服务<Service Name>的请求/指示定义的。对于所描述的服务不使用子函数参数值并且不使用 suppressPosRspMsgIndicationBit 的情况,此子句不包含任何定义 (这隐式地表示需要响应)。

子函数参数按bit位分为两部分,参见表11。

表11 -- 子函数参数结构

Bit位置 描述
7

suppressPosRspMsgIndicationBit

该bit位指示服务器应抑制积极响应消息。

'0'=FALSE,不抑制积极响应消息(需要一个积极响应)

'1'=TRUE,抑制响应消息(无法发出积极响应;寻址的服务器无法发出积极响应消息)。

独立于suppressPosRspMsgIndicationBit,服务器根据7.5中指定的限制发送负面响应消息。

6-0

sub-function parameter value

子函数的0-6bit,包含子函数参数值(十六进制00-7F)。

每个服务都使用子函数参数字节,但每个只支持suppressPosRspMsgIndicationBit的服务必须支持子函数参数值:zeroSubFunction(十六进制00)。

子函数参数值有7 bit(bit 6-0 是子函数参数值),可以有多个值来进一步指定服务行为。

每个支持持suppressPosRspMsgIndicationBit的服务必须支持zeroSubFunction(00 hex)。

除suppressPosRspMsgIndicationBit外,服务支持子函数参数值应当是在子函数参数值表中所定义的。

每个服务包含一个定义了子函数参数值的表,只考虑 0-6 bit。

表12 -- 请求消息子函数参数定义

Hex(bit 6-0) 描述 Cvt 助记符
xx

sub-function#1

description of sub-function parameter#1

M/U SUBFUNC1
: : : :
xx

sub-function#m

description of sub-function parameter#m

M/U SUBFUNCm

约定(Cvt)列含义如下表所示:

表13 -- 子函数参数约定

类型 名称 描述
M Mandatory(强制) 服务器若支持该服务则必须支持该子函数参数。
U User option(用户选项) 服务器可能支持该子函数参数,取决于用户选项。

根据suppressPosRspMsgIndicationBit的值和选择的子函数参数值,计算出完整的子函数参数字节值。

表14 -- 计算子函数字节值

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
suppressPosRspMsgIndicationBit 作为在服务的子函数参数值表中指定的子函数参数值
得到的子函数参数字节值(Bit 7-0)

8.2.3 请求消息数据参数定义

本节定义<Service Name>服务相关请求/指示的数据参数 $DataParam (DP_),本节中不包含未使用任何数据参数的服务定义,数据参数可包含多字节。本节内容提供对各种数据参数的通用描述;详细定义参见本文附件,该附件同样指定在服务器支持某服务时,是否支持数据参数或用户选项。

表15 -- 请求消息数据参数定义

定义

data-parameter#1
description of data-parameter#1

data-parameter#n
description of data-parameter#n

8.3 积极响应消息

8.3.1 积极响应消息定义

本节包含若干服务响应/确认的A_PDU参数的定义表(参见第 7 章应用层协议数据单元A_PDU的详细描述)。当不同的子函数参数$Level响应消息与A_Data参数的结构不同时,可能会对每个子函数参数$Level使用单独的表格。

积极响应消息是在执行完诊断服务之后发出的。如果诊断服务需要其他处理(例如:ECUReset服务),在诊断服务的描述中可以找到相关发送积极响应的恰当描述。

表16 -- 积极响应 A_PDU

A_PDU 参数 参数名 Cvt 十六进制 助记符
SA 源地址 M xx SA
TA 目标地址 M xx TA
TA_type 目标地址类型 M xx TAT
RA 远程地址 C xx RA
 
A_Data.A_PCI.SI <Service Name>响应服务ID S xx SIDPR

A_Data.Parameter 1
:
A_Data.Parameter n

data-parameter#1
:
data-parameter#n

U

xx
:
xx

DP_…#1
:
DP_…#n

C: RA(Remote Address 远程地址)只在远程寻址时出现。

在所有的响应/确认中,寻址信息SA、TA和TA_Type都是必须存在的;当且仅当远程寻址情况下,寻址信息RA才会被使用。

注意  为便于定义,表16展示了寻址相关信息。以后请求/指示的定义仅指定A_Data和A_PDU,因为A_Data和A_PDU代表了服务响应/确认的消息数据字节。

8.3.2 积极响应消息数据字节定义

本节定义服务<Service Name>相应/确认的数据参数。如果被描述的服务并不使用数据参数,则将不包含其定义。数据参数部分可包含多字节。本节对各数据参数提供统一的描述。详细定义参见本文附录部分。附录部分同样指定当服务支持该服务时,支持数据参数或支持用户选择。

表17 -- 响应数据参数定义

定义

data-parameter#1

data-parameter#1的描述,如果请求支持子函数参数字节,则此参数是7-bit子函数参数值的回显,该子函数参数值包含第7bit位0的请求消息字节的子函数参数字节。子函数参数字节的suppressPosRspMsgIndicationBit不被回显。

 

data-parameter#m

data-parameter#m的描述。

8.4支持的消极响应(NRC_)

本节定义服务实现的消极响应代码,表18、19记录了每种响应码发生的情况。在第 7.4 节中能够找到消极响应消息的定义。服务器用消极响应的A_PDU确定引发错误的条件。A.1 中列出能用到的消极响应码,以及在适用背景下的各服务描述的指定的消极响应码。详情参阅A.1。

表18 -- 支持的消极响应码

十六进制 描述 Cvt 助记符
 xx

NegativeResponseCode#1

1. condition#1
:
m. condition #m

M NRC_
 :  : U NRC_
 xx

 NegativeResponseCode#n

1. condition#1
:
k. condition #k

U NRC_

表18种的约定(Cvt)列解释如下:

表19 -- 子函数参数约定

类型 名称 描述
M Mandatory(强制) 如果服务受支持,服务器应支持该消极响应码。
U User option(用户选项) 消极响应码是否被支持要根据用户选项。

8.5 消息流示例

本节包含<Service Name>服务的消息流示例。所有示例均以消息级别显示(即不包含寻址信息)。

表20 -- 请求消息流示例

 消息流向  客户端 → 服务器
 消息类型  请求
A_Data byte 描述(所有值用16进制表示) 字节值 助记符
#1 (A_PCI) <Service Name>请求服务ID xx SIDRQ

#2

:

#n

sub-function/data-parameter#1

:

data-parameter#m

xx

xx

xx

LEV_/DP_

DP_

DP_

表21 -- 积极响应消息流示例

 消息流向  服务器 → 客户端
 消息类型  响应 
A_Data 描述(所有值用16进制表示) 字节值 助记符
#1 (A_PCI) <Service Name>响应服务ID xx SIDPR

#2

:

#n

data-parameter#1

:

data-parameter#n-1

 xx

:

xx

DP_

DP_

这里可以有多个表格适用于<Service Name>服务(例如每个子函数参数$Level对应一个服务)。

表22展示消极响应消息的消息流示例。

Table 22 -- 消极响应消息流示例

 

消息流向  服务器 → 客户端
消息类型  响应
A_Data 描述(所有值用16进制表示)  字节值  助记符
 #1 (A_PCI.NR_SI) 消极响应服务ID 7F  SIDRSIDNRQ
 #2 (A_PCI.SI)  <Service Name> 请求服务ID  xx   SIDRQ
 #3 响应码  xx   NRC_
posted @ 2019-02-22 16:58  爱文  阅读(415)  评论(0编辑  收藏  举报