1.服务介绍
客户端使用requestDownload服务启动从客户端到服务器的数据传输(下载)。在服务器收到requestDownload请求消息后,服务器应采取一切必要措施接收数据,然后再发送肯定响应消息。
2.请求消息
2.1请求消息定义
C1:此参数的存在取决于addressAndLengthFormatIdentifier的地址长度信息参数C2:此参数是否存在取决于AddressAndLengthformatIdentifier的内存大小长度信息。
2.2请求消息子功能参数$Level(LEV_)定义
此服务不使用子函数参数。
2.3 请求消息数据参数定义
dataFormatIdentifier:
该数据参数是一个单字节值,每个半字节分别编码。高半字节指定“压缩方法”,而低半字节则指定“加密方法”。值0x00指定既不使用压缩方法也不使用加密方法。0x00以外的值是特定于车辆制造商的。
addressAndLengthFormatIdentifier:
该参数是一个单字节值,每个半字节分别编码(参见H.1中的示例值):
—bit 7-4:内存的长度(字节数)Size参数
—bit 3-0:内存地址参数的长度(比特数)
memoryAddress:
参数memoryAddress是要写入数据的服务器内存的起始地址。用于此地址的字节数由addressAndLengthFormatIdentifier的低位(位3 - 0)定义。
memoryAddress参数中的字节#m始终是服务器中引用的地址中最不重要的字节。地址的最高位字节可用作内存标识符。
使用内存标识符的一个示例是具有16位寻址和内存地址重叠的双处理器服务器(当给定的地址对任一处理器都有效,但产生不同的物理内存设备或使用内部和外部闪存时)。在这种情况下,可以将memoryAddress参数中未使用的字节指定为用于选择所需内存设备的内存标识符。此功能的使用应由车辆制造商/系统供应商定义
memorySize:
服务器将使用此参数来比较内存大小与TransferData服务期间传输的数据总量。这增加了编程安全性。用于此大小的字节数由addressAndLengthFormatIdentifier的高位(位7 - 4)定义。如果使用数据压缩,则内存大小是否表示压缩或未压缩大小取决于汽车制造商。
3.肯定响应消息
3.1肯定响应消息定义
3.2 肯定响应消息数据参数定义
lengthFormatIdentifier:
该参数是一个单字节值,每个半字节分别编码:
—位7-4:maxNumberOfBlockLength参数的长度(字节数)。
—bit 3-0:由文档保留,设置为“0”。此参数的格式与请求消息中包含的
addressAndLengthFormatIdentifier参数的格式兼容,但较低的半字节必须设置为“零”。
maxNumberOfBlockLength:
这个参数由requestDownload积极响应消息使用,用来通知客户端从客户端发出的每个TransferData请求消息中包含多少数据字节(maxNumberOfBlockLength)。这个长度反映了完整的消息长度,包括服务标识符和TransferData请求消息中的数据参数。此参数允许客户端在开始向服务器传输数据之前适应服务器的接收缓冲区大小。服务器需要接受长度等于其报告的maxNumberOfBlockLength的transferData请求。transferData请求的长度小于maxNumberOfBlockLength(如果有的话)是由服务器决定的。请注意,给定块内的最后一次transferData请求可能需要小于maxNumberOfBlockLength。服务器不允许写入额外的数据字节(即:pad字节)不包含在transferData消息中(无论是压缩格式还是未压缩格式),因为这将影响后续transferData请求数据写入的内存地址。
4. 支持的否定响应代码(NRC_)
该服务应执行以下否定响应代码。下表中记录了每个响应代码发生的情况。如果错误场景适用于服务器,则应使用列出的否定响应。
否定码 | 代名词 | 描述 |
0x13 | 消息长度不正确或格式无效 | 如果信息长度错误,则应发送此NRC。 |
0x22 | 条件不正确 | 如果服务器在接收软件或校准模块下载的过程中收到该服务的请求,则应返回该NRC。如果在下载模块的过程中服务器和客户端之间的数据大小不匹配,则可能会发生这种情况。 |
0x31 | 请求超出范围 | 如果:-指定的dataFormatIdentifier无效,则应返回该NRC。 1.指定的addressAndLengthFormatIdentifier无效。 2.指定的memoryAddress/memorySize无效。 |
0x33 | 安全访问被拒绝 | 如果服务器是安全的(对于支持Security Access服务的服务器),则在收到该服务的请求时,应返回该NRC。 |
0x70 | 上传下载未接受 | 该NRC表示,由于某些故障情况,无法完成下载到服务器内存的尝试。 |
5.例子
例子详情在0x37服务中