系列文章目录
9、诊断和通信管理功能单元(1-5)
9、诊断和通信管理功能单元(6-10)
10.1概述
表141定义了数据传输功能单元。
10.2 ReadDataByIdentifier (0x22)服务
10.2.1服务描述
-
ReadDataByIdentifier服务允许客户端从服务器请求由一个或多个数据标识符标识的数据记录值。
客户端请求消息包含一个或多个两字节的dataIdentifier值,用于标识由服务器维护的数据记录(有关允许的dataIdentifier值,请参阅C.1)。数据记录的格式和定义应是特定于车辆制造商或系统供应商的,并且可以包括模拟输入和输出信号、数字输入和输出信号、内部数据和服务器支持的系统状态信息。
服务器可以根据车辆制造商和系统供应商的协议,限制可以同时请求的数据标识符的数量。
在接收到一个ReadDataByIdentifier请求后,服务器应该访问由dataIdentifier参数指定的记录的数据元素,并在一个包含相关dataRecord参数的ReadDataByIdentifier正面响应中传输它们的值。请求消息可以多次包含相同的dataIdentifier。服务器应将每个dataIdentifier视为单独的参数,并根据请求频繁地响应每个dataIdentifier的数据。
重要提示——服务器和客户端应满足7.5中规定的请求和响应消息行为。
10.2.2请求消息
10.2.2.1请求消息定义
表142定义了请求消息。
10.2.2.2请求消息子函数参数$Level (LEV_)定义
此服务不使用子函数参数。
10.2.2.3请求消息数据参数定义
表143定义了请求消息的数据参数。
表143 -请求消息数据-参数定义
定义 |
---|
dataIdentifier (#1 to #m) 该参数标识客户端正在请求的服务器数据记录(参见C.1了解详细的参数定义)。 |
10.2.3肯定响应消息
10.2.3.1肯定响应消息定义
表144定义了肯定响应消息。
10.2.3.2肯定响应消息数据参数定义
表145定义了肯定响应消息的数据参数。
定义 |
---|
dataIdentifier (#1 to #m) 该参数是来自请求消息的数据参数dataIdentifier的回显。 |
dataRecord (#1 to #k/o) ReadDataByIdentifier正面响应消息使用此参数向客户端提供所请求的数据记录值。dataRecord的内容没有在本文档中定义,并且是特定于汽车制造商的。 |
10.2.4支持的否定响应码(NRC_)
本服务应执行以下否定响应代码。表146中记录了每个响应代码发生的情况。如果错误场景适用于服务器,则应使用列出的否定响应。
计算序列如图15所示。
关键
1、最小长度为3字节(SI + DID)
2 、 最大长度为1字节(SI) + 2*n字节(DID(s))
10.2.5消息流示例ReadDataByIdentifier
假设
-
此子句指定了示例执行ReadDataByIdentifier服务所需满足的条件。客户端可以在任何时候请求与服务器状态无关的dataIdentifier数据。
下面的dataIdentifier示例特定于动力总成设备(例如,发动机控制模块)。请参阅ISO°15031-2[6]了解有关排放相关系统的公认术语/定义/首字母缩写的更多详细信息。
第一个示例读取单个2字节的dataIdentifier,其中包含一条信息(其中dataIdentifier 0xF190包含VIN号)。
第二个示例演示了用单个请求请求多个dataIdentifier(其中dataIdentifier 0x010A包含发动机冷却液温度、油门位置、发动机转速、歧管绝对压力、质量空气流量、车速传感器、气压、计算负载值、怠速空气控制和油门踏板位置,dataIdentifier 0x0110包含电池正电压)。
10.2.5.2示例#1:read single dataIdentifier 0xF190 (VIN number)
-
表147定义了ReadDataByIdentifier请求消息流示例#1。
表148定义了ReadDataByIdentifier正面响应消息流示例#1。
10.2.5.3示例#2:读取多个数据标识符0x010A和0x0110
表149定义了ReadDataByIdentifier请求消息流示例#2。
表150定义了ReadDataByIdentifier肯定响应消息流示例#2。
10.7 WriteDataByIdentifier (0x2E)服务
10.7.1服务描述
-
WriteDataByIdentifier服务允许客户端在提供的数据标识符指定的内部位置将信息写入服务器。
客户端使用WriteDataByIdentifier服务将数据记录写入服务器。数据由数据标识符标识,可能是安全的,也可能不是。
动态定义的数据标识符不能用于此服务。在执行此服务时,满足服务器条件是车辆制造商的责任。此服务的可能用途有:
——编程配置信息到服务器(如:VIN号);
——清除非易失性内存;
——重置学到的值;
——设置选项内容。
注意:服务器可以限制或禁止对某些数据标识符值的写访问(由系统供应商/车辆制造商为只读标识符等定义)。
重要提示——服务器和客户端应满足7.5中规定的请求和响应消息行为。
10.7.2请求消息
10.7.2.1请求消息定义
表231定义了请求消息。
10.7.2.2请求消息子函数参数$Level (LEV_)的定义
此服务不使用子函数参数。
10.7.2.3请求消息数据参数定义
表232定义了请求消息的数据参数。
Definition |
---|
dataIdentifier 该参数标识客户端请求写入的服务器数据记录(详细参数定义参见C.1)。 |
dataRecord 此参数提供与客户端请求写入的dataIdentifier相关联的数据记录。 |
10.7.3肯定响应消息
10.7.3.1肯定响应消息定义
表233定义了肯定响应消息。
10.7.3.2肯定响应消息数据参数定义
定义 |
---|
dataIdentifier 该参数是来自请求消息的数据参数dataIdentifier的回显。 |
10.7.4支持的否定响应码(NRC_)
-
本服务应执行以下否定响应代码。表235记录了每个响应代码发生的情况。如果错误场景适用于服务器,则应使用列出的否定响应。
计算序列如图21所示。
关键
1最小长度为4字节(SI + DID + DREC)
2总长度为1字节(SI + 2字节DID +第n字节DREC)
10.7.5消息流示例WriteDataByIdentifier
10.7.5.1假设
-
此子句指定了示例执行WriteDataByIdentifier服务所需满足的条件。
本例中的服务不受服务器的任何限制。这个例子演示了通过两个字节的数据标识符0xF190进行VIN编程。
10.7.5.2示例#1:write dataIdentifier 0xF190 (VIN)
表236定义了WriteDataByIdentifier请求消息流示例#1。
表237定义了WriteDataByIdentifier肯定响应消息流示例#1。