UDS - 15.2 RequestDownload (34) service

15.2 请求下载(34)服务

来自:ISO 14229-1-2020.pdf

15.2.1 服务描述

客户机使用requestDownload服务发起从客户机到服务器的数据传输(下载)。
在服务器接收到requestDownload请求消息之后,服务器应该在发送积极响应消息之前采取所有必要的操作来接收数据。
重要:服务器和客户端必须满足8.7中规定的请求和响应消息行为。

15.2.2 请求消息

15.2.2.1 请求消息定义

表440指定了请求消息。
在这里插入图片描述

数据字节参数名称Cvt字节值助记符
#1请求下载的请求服务标识符M34RD
#2数据格式标识符M00到FFDFI_
#3地址和长度格式标识符M00到FFALFID
#4 : #(m-1)+4内存地址[]=[字节#1 (MSB):字节#m]M : C100到FF: 00到FFMA_B1 : MA_Bm
#n-(k-1) : #n内存大小[]=[字节#1 (MSB):字节#k]M : C200到FF: 00到FFMS_B1 : MS_Bk

注:

  • C1:这个参数的存在取决于addressAndLengthFormatIdentifier的地址长度信息参数。
  • C2:该参数的存在取决于addressAndLengthFormatIdentifier的内存大小长度信息。

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

此服务不使用SubFunction参数。

15.2.2.3请求消息数据参数定义

表441指定了请求消息的数据参数。

定义
dataFormatIdentifier
这个数据参数是一个单独编码的字节值。高半字节指定“compressionMethod”,低半字节指定“encryptingMethod”。值00指定既不使用compressionMethod也不使用encryptingMethod。00以外的值是特定于车辆制造商的。
addressAndLengthFormatIdentifier
这个参数是一个字节值,每个半字节分别编码(参见表H.1的示例值):
  • bit 7 - 4: memorySize参数的长度(字节数)
  • bit 3 - 0: memoryAddress参数的长度(字节数)
memoryAddress
参数memoryAddress是要写入数据的服务器内存的起始地址。该地址使用的字节数由addressAndLengthFormatIdentifier的低位(比特位3 - 0)定义。memoryAddress参数中的Byte#m始终是服务器中引用的地址的最低有效字节。地址的最高位字节可以用作内存标识符。
使用内存标识符的一个例子是具有16位寻址和内存地址重叠的双处理器服务器(当给定的地址对任一处理器都有效,但产生不同的物理内存设备或使用内部和外部闪存时)。在这种情况下,可以将memoryAddress参数中未使用的字节指定为用于选择所需内存设备的内存标识符。该功能的使用应由车辆制造商/系统供应商定义。
memorySize
服务器通过这个参数应使用来比较内存大小和TransferData服务期间传输的数据总量。这增加了编程的安全性。这个大小所使用的字节数由addressAndLengthFormatIdentifier的高半字节(比特位7 - 4)定义。如果使用数据压缩,则内存大小是否代表压缩或未压缩大小是车辆制造商特定的。

15.2.3 积极响应信息

15.2.3.1 积极响应消息定义

表442指定了积极响应消息。
在这里插入图片描述
注:

  1. #1:请求下载响应服务标识符(RDPR),值为[74]
  2. #2:长度格式标识符(LFID),值为[00到F0]
  3. #3: #n:最大块长度=[字节#1 (MSB):字节#m](MNROB_ B1: Bm),值为[00到FF: 00到FF]

15.2.3.2 积极响应消息数据参数定义

表443指定了积极响应消息的数据参数。

定义
lengthFormatIdentifier
这个参数是一个字节值,每个半字节分别编码:
  • bit 7 - 4: maxNumberOfBlockLength参数的长度(字节数)。
  • bit 3 - 0: 由文档保留,设置为“0”。
    该参数的格式与请求消息中包含的addressAndLengthFormatIdentifier参数的格式兼容,除了下位的小口必须设置为’0’。
maxNumberOfBlockLength
requestDownload正向响应消息使用此参数来通知客户机在来自客户机的每个TransferData请求消息中包含多少数据字节(maxNumberOfBlockLength)。这个长度反映了完整的消息长度,包括服务标识符和TransferData请求消息中的数据参数。该参数允许客户端在开始向服务器传输数据之前适应服务器的接收缓冲区大小。服务器需要接受长度与其报告的maxNumberOfBlockLength相等的transferData请求。这是服务器特定的transferData请求长度小于maxNumberOfBlockLength被接受(如果有的话)。给定块中的最后一个transferData请求可以要求小于maxNumberOfBlockLength。服务器不允许写入不包含在transferData消息中的额外数据字节(即pad字节)(无论是压缩格式还是未压缩格式),因为这会影响后续transferData请求数据将写入的内存地址。

15.2.4 支持的消极响应码(NRC_)

本服务应实施以下消极响应代码。表444记录了每个响应代码发生的情况。如果错误场景适用于服务器,则列出的消极响应应使用。

NRC描述助记符
13incorrectMessageLengthOrInvalidFormat
如果信息长度错误,则应发送此NRC。
IMLOIF
22conditionsNotCorrect
如果服务器在下载软件或校准模块的过程中接收到此服务的请求,则应返回此NRC。如果在下载模块期间,服务器和客户端之间的数据大小不匹配,就会发生这种情况。
CNC
31requestOutOfRange
在下列情况下,应退还NRC:
  • 指定的dataFormatIdentifier无效。
  • 指定的addressAndLengthFormatIdentifier无效。
  • 指定的memoryAddress/memorySize无效。
ROOR
33securityAccessDenied
当收到对该服务的请求时,如果服务器是安全的(对于支持SecurityAccess服务的服务器),则应返回此NRC。
SAD
34authenticationRequired
如果数据标识符是安全的,并且客户端基于其身份验证状态没有足够的权限,则将发送此NRC。
AR
70uploadDownloadNotAccepted
此NRC表示由于某些故障条件,无法完成下载到服务器内存的尝试。
UDNA

计算序列如图31所示。
在这里插入图片描述

15.2.5 消息流示例

有关完整的消息流示例,请参见15.5.5。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
uds-server是一种基于Unix域套接字的服务器,用于实现进程间通信。Unix域套接字是一种在同一台主机上的进程间进行通信的机制,相比于网络套接字具有更高的效率和安全性。 uds-server可以充当服务器角色,接收客户端的连接请求,并处理客户端发来的数据。它可以用于实现各种不同的功能,例如文件传输、共享内存、管道等。通过uds-server,不同的进程可以在同一台机器上进行有效的数据交换,提高了程序的灵活性和性能。 uds-server的工作方式包括以下几个步骤。首先,uds-server需要创建一个Unix域套接字,以便客户端可以通过该套接字与之建立连接。然后,uds-server会监听该套接字,等待客户端的连接请求。一旦有客户端请求连接,uds-server就会接受该连接,并创建一个新的套接字,用于与该客户端进行通信。 接下来,uds-server可以根据具体的需求,对客户端发送过来的数据进行处理。例如,可以将客户端发送的数据写入文件,或者进行一些计算操作。在完成后,uds-server可以将处理结果发送给客户端。 uds-server的优点在于它能够在同一台主机上进行进程间通信,不需要经过网络传输,因此速度更快、效率更高。另外,由于使用Unix域套接字进行通信,所以通信过程更加安全可靠。 总而言之,uds-server是一种基于Unix域套接字的服务器,可以在同一台主机上实现进程间的高效通信。它的应用范围广泛,可以满足不同的需求,并提供更快速和安全的数据交换解决方案。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值