总目录:(单击下方链接皆可跳转至专栏总目录)
《UDS/OBD诊断需求编辑工具》总目录https://blog.csdn.net/qfmzhu/article/details/123697014
目录
1 $0x34 RequestDownload诊断服务描述
2 0x34服务请求消息
2.1 0x34服务请求消息定义
2.2 0x34服务请求消息子功能参数$ Level(LEV_)定义
2.3 0x34服务请求消息数据参数定义
3 0x34服务肯定响应消息
3.1 0x34服务肯定响应消息定义
3.2 0x34服务肯定响应消息数据参数定义
4 0x34服务支持的否定响应代码(NRC_)
5 示例:0x34 RequestDownload服务消息流
附录:H.1 addressAndLengthFormatIdentifier示例值
结尾
优质博文推荐阅读(单击下方链接,即可跳转):
点击返回「《Autosar从入门到精通-实战篇》总目录」
点击返回「《Autosar_BSW高阶配置》总目录」
点击返回《嵌入式硬件/软件开发刷写/烧录文件》专栏
RequestDownload(0x34) service请求下载服务
服务 | SID | 描述 |
RequestDownload 读取DTC信息 | 0x34 | client请求协商从client到server的数据传输。 |
1 $0x34 RequestDownload诊断服务描述
requestDownload服务被client用来启动从client到server的数据传输(下载)。
在server收到requestDownload请求消息后,server应采取所有必要的行动来接收数据,然后再发送一个positive response message肯定响应消息。
重要的是 - server和client应满足ISO 14229-1的7.5章节中规定的请求和响应消息行为。
2 0x34服务请求消息
2.1 0x34服务请求消息定义
表393 - 请求消息定义
A_Data byte | 参数名称 | Cvt | 字节值 | 助记符 |
#1 | RequestDownload Request SID 请求下载请求SID | M | 0x34 | RD |
#2 | dataFormatIdentifier 数据格式标识符 | M | 0x00 – 0xFF | DFI_ |
#3 | addressAndLengthFormatIdentifier 地址和长度格式标识符 | M | 0x00 – 0xFF | ALFID |
#4 : #(m-1)+4 | memoryAddress[] = [ byte#1 (MSB) : byte#m ] | M : C1 | 0x00 – 0xFF : 0x00 – 0xFF | MA_B1 : Bm |
#n-(k-1) : #n | memorySize[] = [ byte#1 (MSB) : byte#k ] | M : C2 | 0x00 – 0xFF : 0x00 – 0xFF | MS_B1 : Bk |
C1:这个参数的存在取决于addressAndLengthFormatIdentifier的地址长度信息参数。 C2:该参数的存在取决于addressAndLengthFormatIdentifier的memory size长度信息。 |
2.2 0x34服务请求消息子功能参数$ Level(LEV_)定义
此服务不使用子功能参数。
2.3 0x34服务请求消息数据参数定义
定义 |
dataFormatIdentifier数据格式标识符 这个数据参数是一个字节的值,每个nibble单独编码。high nibble指定 " compressionMethod压缩方法",low nibble指定 " encryptingMethod加密方法"。值0x00指定既不使用compressionMethod也不使用encryptingMethod。除了0x00以外的值是由vehicle manufacturer车辆制造商决定的。 |
addressAndLengthFormatIdentifier地址和长度格式标识符 该参数是一个字节值,每个nibble单独编码(见H.1的示例值): 位7 - 4: memorySize参数的长度(字节数) 位3 - 0: memoryAddress参数的长度(字节数)。 |
memoryAddress内存地址 参数memoryAddress是要写入数据的server memory的起始地址。这个地址使用的字节数由addressAndLengthFormatIdentifier的low nibble(bit 3 - 0)定义。memoryAddress参数中的Byte#m总是在server中被引用的地址中LSB(least significant byte)。地址中MSB(most significant byte)可以作为memory identifier使用。 一个使用memory identifier的例子是一个具有16位寻址和memory address重叠的双processor server (当一个给定的地址对任何一个处理器都有效,但产生了不同的physical memory device或使用了内部和外部flash)。在这种情况下,memoryAddress参数中一个未使用的字节可以被指定为memory identifier,用于选择所需的memory device。该功能的使用应按照车辆制造商/系统供应商的规定。 |
memorySize内存大小 这个参数应被server用来比较memory size和TransferData service期间传输的数据总量。这增加了programming编程的安全性。用于该大小的字节数由addressAndLengthFormatIdentifier的high nibble(第7-4位)定义。如果使用了数据压缩,memory size是否代表压缩或未压缩的大小是由车辆制造商决定的。 |
3 0x34服务肯定响应消息
3.1 0x34服务肯定响应消息定义
表395 - 肯定响应消息定义
A_Data byte | 参数名称 | Cvt | 字节值 | 助记符 |
#1 | RequestDownload Response SID 请求下载响应SID | M | 0x74 | RDPR |
#2 | lengthFormatIdentifier | M | 0x00 – 0xF0 | LFID |
#3 : #n | maxNumberOfBlockLength = [ byte#1 (MSB) : byte#m ] | M : M | 0x00 – 0xFF : 0x00 – 0xFF | MNROB_ B1 : Bm |
3.2 0x34服务肯定响应消息数据参数定义
表396 - 响应消息数据参数定义
定义 |
lengthFormatIdentifier长度格式标识符 这个参数是一个字节的值,每个nibble单独编码: 位7-4:maxNumberOfBlockLength参数的长度(字节数)。 位3-0:由文件保留,要设置为'0'。 该参数的格式与请求信息中包含的addressAndLengthFormatIdentifier参数的格式兼容,只是lower nibble必须被设置为'0'。 |
maxNumberOfBlockLength最大块长度 这个参数被requestDownload肯定响应消息用来通知client在server的每个TransferData请求消息中包含多少数据字节(maxNumberOfBlockLength)。这个长度反映了完整的消息长度,包括service identifier和TransferData请求消息中的数据参数。这个参数允许client在开始向server传输数据之前适应server的接收缓冲区大小。server需要接受长度等于其报告的maxNumberOfBlockLength的transferData请求。接受何种长度小于maxNumberOfBlockLength的transferData请求(如果有的话)是由server决定的。请注意,一个给定区块内的最后一个transferData请求可能被要求小于maxNumberOfBlockLength。server不允许写入不包含在transferData消息中的额外数据字节(即填充字节)(无论是以压缩或未压缩的格式),因为这将影响后续transferData请求数据写入的memory address。 |
4 0x34服务支持的否定响应代码(NRC_)
对于这项服务,应执行以下negative response code否定响应代码。表397中记录了每个响应代码会发生的情况。如果错误情况适用于server,应使用列出的negative response否定响应。
表397 - 支持的否定响应代码
NRC | 描述 | 助记符 |
0x13 | incorrectMessageLengthOrInvalidFormat消息长度不正确或格式无效 如果信息的长度有误,则应发送该NRC。 | IMLOIF |
0x22 | conditionsNotCorrect条件不正确 如果server在接收软件或标定模块的下载过程中收到该服务的请求,应返回该NRC。如果在下载模块的过程中,server和client之间出现数据大小不匹配,就会出现这种情况。 | CNC |
0x31 | requestOutOfRange请求超出范围 如果出现以下情况,将返回这个NRC: 指定的dataFormatIdentifier是无效的。 指定的addressAndLengthFormatIdentifier是无效的。 指定的memoryAddress/memorySize是无效的。 | ROOR |
0x33 | securityAccessDenied安全访问被拒绝 如果在收到对该服务的请求时,server是安全的(对于支持SecurityAccess服务的server),应返回这个NRC。 | SAD |
0x70 | uploadDownloadNotAccepted上传下载不被接受 该NRC表明,由于某些故障条件,无法完成向server的memory下载的尝试。 | UDNA |
评价顺序记录在图26中。
Key
1)至少5个(SI+DFI_+ALFID+最小MA_+最小MS_)。
2)长度可以从addressAndLengthFormatIdentifier中计算出来。
图26 - NRC处理请求下载服务
5 示例:0x34 RequestDownload服务消息流
附录:H.1 addressAndLengthFormatIdentifier示例值
表 H.1 包含 addressAndLengthFormatIdentifier 的high和low nibble的值组合示例。需要考虑以下几点:
⎯对于“manageable memorySize”或“memoryAddress range”标记为“not applicable”的值,不允许使用,并且必须通过否定响应消息被server拒绝。
⎯此参数允许具有适用的“manageable memorySize”和“memoryAddress range”的值。
表H.1 - addressAndLengthFormatIdentifier示例
Byte Value | Description | |||
bit 7-4 (high nibble) number of memorySize bytes | bit 3-0 (low nibble) number of memoryAddress bytes | |||
bytes used for memorySize parameter | manageable size | bytes used for memoryAddress parameter | addressable memory | |
0x00 | not applicable | not applicable | not applicable | not applicable |
0x01 | not applicable | not applicable | 1 | 256 Byte - 1 |
0x02 | not applicable | not applicable | 2 | 64 KB - 1 |
0x03 | not applicable | not applicable | 3 | 16 MB - 1 |
0x04 | not applicable | not applicable | 4 | 4 GB - 1 |
0x05 | not applicable | not applicable | 5 | 1,024 GB - 1 |
0x06 – 0x0F | : | : | : | : |
0x10 | 1 | 256 Byte | not applicable | not applicable |
0x11 | 1 | 256 Byte | 1 | 256 Byte – 1 |
0x12 | 1 | 256 Byte | 2 | 64 KB – 1 |
0x13 | 1 | 256 Byte | 3 | 16 MB – 1 |
0x14 | 1 | 256 Byte | 4 | 4 GB – 1 |
0x15 | 1 | 256 Byte | 5 | 1,024 GB – 1 |
0x16 – 0x1F | : | : | : | : |
0x20 | 2 | 64 KB | not applicable | not applicable |
0x21 | 2 | 64 KB | 1 | 256 Byte – 1 |
0x22 | 2 | 64 KB | 2 | 64 KB – 1 |
0x23 | 2 | 64 KB | 3 | 16 MB – 1 |
0x24 | 2 | 64 KB | 4 | 4 GB – 1 |
0x25 | 2 | 64 KB | 5 | 1,024 GB – 1 |
0x26 – 0x2F | : | : | : | : |
0x30 | 3 | 16 MB | not applicable | not applicable |
0x31 | 3 | 16 MB | 1 | 256 Byte – 1 |
0x32 | 3 | 16 MB | 2 | 64 KB – 1 |
0x33 | 3 | 16 MB | 3 | 16 MB – 1 |
0x34 | 3 | 16 MB | 4 | 4 GB – 1 |
0x35 | 3 | 16 MB | 5 | 1,024 GB – 1 |
0x36 – 0x3F | : | : | : | : |
0x40 | 4 | 4 GB | not applicable | not applicable |
0x41 | 4 | 4 GB | 1 | 256 Byte – 1 |
0x42 | 4 | 4 GB | 2 | 64 KB – 1 |
0x43 | 4 | 4 GB | 3 | 16 MB – 1 |
0x44 | 4 | 4 GB | 4 | 4 GB – 1 |
0x45 | 4 | 4 GB | 5 | 1,024 GB - 1 |
0x46 -0xFF | : | : | : | : |
以上摘自《ISO 14229-1:2013》。
结尾
获取更多“汽车电子资讯”和“工具链使用”,
请关注CSDN博客“汽车电子助手”,做您的好助手。