【ISO14229_UDS刷写】-6-$34,$35,$36,$37诊断服务用于downloading下载/uploading上载数据的消息流示例

总目录:(单击下方链接皆可跳转至专栏总目录)

《UDS/OBD诊断需求编辑工具》总目录icon-default.png?t=N4P3https://blog.csdn.net/qfmzhu/article/details/123697014【ISO14229_UDS刷写】-1-$34诊断服务RequestDownload理论部分icon-default.png?t=N4P3https://blog.csdn.net/qfmzhu/article/details/130895695

【ISO14229_UDS刷写】-2-$35诊断服务RequestUpload理论部分icon-default.png?t=N4P3https://blog.csdn.net/qfmzhu/article/details/130895791【ISO14229_UDS刷写】-3-$36诊断服务TransferData理论部分icon-default.png?t=N4P3https://blog.csdn.net/qfmzhu/article/details/130895839【ISO14229_UDS刷写】-4-$37诊断服务RequestTransferExit理论部分icon-default.png?t=N4P3https://blog.csdn.net/qfmzhu/article/details/130895913【ISO14229_UDS刷写】-5-$38诊断服务RequestFileTransfer理论部分icon-default.png?t=N4P3https://blog.csdn.net/qfmzhu/article/details/130895945

目录

1 $34,$36,$37诊断服务:将数据下载(Download)到server

1.1 假设

1.2 步骤#1:请求下载

1.3 步骤#2:传输数据

1.4 步骤#3:请求传输退出

2 $35,$36,$37诊断服务:从一个server上传(Upload)数据

2.1 步骤#1:请求上传

2.2 步骤#2:传输数据

2.3 步骤#3:请求传输退出

结尾


优质博文推荐阅读(单击下方链接,即可跳转):

点击返回「《Autosar从入门到精通-实战篇》总目录」

点击返回「《Autosar_BSW高阶配置》总目录」

点击返回《嵌入式硬件/软件开发刷写/烧录文件》专栏

1 $34,$36,$37诊断服务:将数据下载(Download)到server

1.1 假设

本章节规定了从client向server传输数据(download下载)的条件。这个例子包括三个步骤。

在第一步中,client和server执行一个RequestDownload服务。通过该服务,以下信息将作为参数在client和server之间的请求和肯定响应消息中进行交换。

表413 - transferRequestParameter值的定义

数据参数名称

数据参数值

数据参数说明

memoryAddress (3 bytes)

内存地址(3个字节)

0x602000

memoryAddress (start)下载数据到

dataFormatIdentifier

数据格式标识符

0x11

dataFormatIdentifier:

compressionMethod = 0x1X

encryptingMethod = 0xX1

MemorySize (3 bytes)

内存大小(3个字节)

0x00FFFF

MemorySize =(65 535字节)

这个参数值应被server用来与执行requestTransferExit服务期间传输的实际字节数进行比较。

表414 - transferResponseParameter值的定义

数据参数名称

数据参数值

数据参数说明

maximumNumberOfBlockLength

最大块长度

0x0081

maximumNumberOfBlockLength:

(serviceId + BlockSequenceCounter(1字节)+ 127 server数据字节= 129数据字节)

在第二步中,client将65 535字节的数据从内memoryaddress 0x602000开始传输到server的flash memory中。

在第三步中,client通过requestTransferExit服务终止向server的数据传输。测试条件:

ignition = on, engine = off, vehicle speed = 0 [kph]

我们假设,在这个例子中,server支持一个三字节的memoryAddress和一个三字节的MemorySize。如果MemorySize包含未压缩的大小,那么具有127个数据字节的TransferData服务的数量就不能被计算出来,因为compression method压缩方法和它的压缩率没有被标准化。如果MemorySize包含压缩后的大小,那么具有127个数据字节的TransferData服务总数将是516个,然后是一个具有3个字节的TransferData请求。因此,假定最后一个TransferData请求信息包含一个等于0x05的blockSequenceCounter。

1.2 步骤#1:请求下载

表415 - RequestDownload请求消息流程示例

Message direction消息方向

Client -- > Server

Message Type消息类型

Request请求

A_Data byte

描述(所有值均为十六进制)

字节值

助记符

#1

RequestDownload Request SID

请求下载请求SID

0x34

RD

#2

dataFormatIdentifier

数据格式标识符

0x11

DFI

#3

addressAndLengthFormatIdentifier

地址和长度格式标识符

0x33

ALFID

#4

memoryAddress [ byte#1 ] (MSB)

0x60

MA_B1

#5

memoryAddress [ byte#2 ]

0x20

MA_B2

#6

memoryAddress [ byte#3 ] (LSB)

0x00

MA_B3

#7

MemorySize [ byte#1 ] (MSB)

0x00

UCMS_B1

#8

MemorySize [ byte#2 ]

0xFF

UCMS_B2

#9

MemorySize [ byte#3 ] (LSB)

0xFF

UCMS_B3

表416--RequestDownload肯定响应消息流程示例

Message direction消息方向

Server -- >Client

Message Type消息类型

Response响应

A_Data byte

描述(所有值均为十六进制)

字节值

助记符

#1

RequestDownload Response SID

请求下载响应SID

0x74

RDPR

#2

LengthFormatIdentifier

长度格式标识符

0x20

LFID

#3

#4

maxNumberOfBlockLength [ byte#1 ] (MSB)

maxNumberOfBlockLength [ byte#2 ] (LSB)

0x00

0x81

MNROB_B1

MNROB_B1

1.3 步骤#2:传输数据

表417 - TransferData请求消息流程示例

Message direction消息方向

Client -- > Server

Message Type消息类型

Request请求

A_Data byte

描述(所有值均为十六进制)

字节值

助记符

#1

TransferData Request SID

传输数据请求SID

0x36

TD

#2

blockSequenceCounter

块序列计数器

0x01

BSC

#3

:

#129

transferRequestParameterRecord [ transferRequestParameter#1 ] = dataByte#3

:

transferRequestParameterRecord [ transferRequestParameter#127 ] = dataByte#129

0xXX

:

0xXX

TRTP_1

:

TRTP_127

表418 - TransferData肯定响应信息流程示例

Message direction消息方向

Server -- >Client

Message Type消息类型

Response响应

A_Data byte

描述(所有值均为十六进制)

字节值

助记符

#1

TransferData Response SID

传输数据响应SID

0x76

TDPR

#2

blockSequenceCounter

块序列计数器

0x01

BSC

表419 - TransferData请求消息流程示例

Message direction消息方向

Client -- > Server

Message Type消息类型

Request请求

A_Data byte

描述(所有值均为十六进制)

字节值

助记符

#1

TransferData Request SID

传输数据请求SID

0x36

TD

#2

blockSequenceCounter

块序列计数器

0x05

BSC

#3

:

#n+2

transferRequestParameterRecord [ transferRequestParameter#1 ] = dataByte#3

:

transferRequestParameterRecord [ transferRequestParameter#n-2 ] = dataByte#n

0xXX

:

0xXX

TRTP_1

:

TRTP_n-2

表420 - TransferData肯定响应消息流程示例

Message direction消息方向

Server -- >Client

Message Type消息类型

Response响应

A_Data byte

描述(所有值均为十六进制)

字节值

助记符

#1

TransferData Response SID

传输数据响应SID

0x76

TDPR

#2

blockSequenceCounter

块序列计数器

0x05

BSC

1.4 步骤#3:请求传输退出

表421 - RequestTransferExit请求信息流程示例

Message direction消息方向

Client -- > Server

Message Type消息类型

Request请求

A_Data byte

描述(所有值均为十六进制)

字节值

助记符

#1

RequestTransferExit Request SID

请求传输退出请求SID

0x37

RTE

表422 - RequestTransferExit肯定响应信息流程示例

Message direction消息方向

Server -- >Client

Message Type消息类型

Response响应

A_Data byte

描述(所有值均为十六进制)

字节值

助记符

#1

RequestTransferExit Response SID

请求传输退出响应SID

0x77

RTEPR

2 $35,$36,$37诊断服务:从一个server上传(Upload)数据

本章节规定了从server向client传输数据(upload上传)的条件。这个例子包括三个步骤。

在第一步中,client和server执行一个requestUpload服务。通过这个服务,以下信息将作为参数在client和server之间的请求和肯定响应消息中进行交换:

表423 - transferRequestParameter值的定义

数据参数名称

数据值数据

参数说明

memoryAddress (3 bytes)

内存地址(3个字节)

0x201000

memoryAddress (start),以上传数据。

dataFormatIdentifier

数据格式标识符

0x11

dataFormatIdentifier

compressionMethod = 0x1X

encryptingMethod = 0xX1

MemorySize (3 bytes)

内存大小(3个字节)

0x0001FF

MemorySize =(511字节)

该参数值应表明应传输多少数据字节,并应被server用来与执行requestTransferExit服务期间传输的实际字节数进行比较。

表424 - transferResponseParameter值的定义

数据参数名称

数据值数据

数据参数说明

maximumNumberOfBlockLength

最大块长度

0x0081

maximumNumberOfBlockLength:

(serviceId + BlockSequenceCounter (1 byte) + 127 server数据字节

= 129个数据字节)

在第二步中,server从外部RAM中传输511个数据字节(4个transferData服务,包含129个(127个server数据字节+1个ServiceId数据字节+1个blockSequenceCounter字节)数据字节和1个transferData服务,包含5个(3个server数据字节+1个ServiceId数据字节+1个blockSequenceCounter字节)数据字节,从server的memoryaddress 0x201000开始。

在第三步中,client用requestTransferExit服务终止向server的数据传输。测试条件:

ignition = on, engine = off, vehicle speed = 0 [kph]

假设在这个例子中,server支持一个三字节的memoryAddress和一个三字节的MemorySize。此外,假设服server支持TransferData(0x36)服务中的blockSequenceCounter。

2.1 步骤#1:请求上传

表425 - RequestUpload请求信息流示例

Message direction消息方向

Client -- > Server

Message Type消息类型

Request请求

A_Data byte

描述(所有值均为十六进制)

字节值

助记符

#1

RequestUpload Request SID

请求上传请求SID

0x35

RU

#2

dataFormatIdentifier

数据格式标识符

0x11

DFI

#3

addressAndLengthFormatIdentifier

地址和长度格式标识符

0x33

ALFID

#4

memoryAddress [ byte#1 ] (MSB)

0x20

MA_B1

#5

memoryAddress [ byte#2 ]

0x10

MA_B2

#6

memoryAddress [ byte#3 ] (LSB)

0x00

MA_B3

#7

MemorySize [ byte#1 ] (MSB)

0x00

UCMS_B1

#8

MemorySize [ byte#2 ]

0x01

UCMS_B2

#9

MemorySize [ byte#3 ] (LSB)

0xFF

UCMS_B3

表426 - RequestUpload肯定响应信息流示例

Message direction消息方向

Server -- >Client

Message Type消息类型

Response响应

A_Data byte

描述(所有值均为十六进制)

字节值

助记符

#1

RequestUpload Response SID

请求上传响应SID

0x75

RUPR

#2

lengthFormatIdentifier

length格式标识符

0x20

LFID

#3

#4

maxNumberOfBlockLength [ byte#1 ] (MSB)

maxNumberOfBlockLength [ byte#2 ] (LSB)

0x00

0x81

MNROB_B1

MNROB_B1

2.2 步骤#2:传输数据

表427 - TransferData请求消息流程示例

Message direction消息方向

Client -- > Server

Message Type消息类型

Request请求

A_Data byte

描述(所有值均为十六进制)

字节值

助记符

#1

TransferData Request SID

传输数据请求SID

0x36

TD

#2

blockSequenceCounter

块序列计数器

0x01

BSC

表428 - TransferData肯定响应消息流程示例

Message direction消息方向

Server -- >Client

Message Type消息类型

Response响应

A_Data byte

描述(所有值均为十六进制)

字节值

助记符

#1

TransferData Response SID

传输数据响应SID

0x76

TDPR

#2

blockSequenceCounter

块序列计数器

0x01

BSC

#3

:

#129

transferResponseParameterRecord [ transferResponseParameter#1 ]

= dataByte3

:

transferResponseParameterRecord [ transferResponseParameter#127

] = dataByte129

xx

:

xx

TREP_1

:

TREP_127

:

表429 - TransferData请求消息流程示例

Message direction消息方向

Client -- > Server

Message Type消息类型

Request请求

A_Data byte

描述(所有值均为十六进制)

字节值

助记符

#1

TransferData Request SID

传输数据请求SID

0x36

TD

#2

blockSequenceCounter

块序列计数器

0x05

BSC

表430 - TransferData肯定响应消息流程示例

Message direction消息方向

Server -- >Client

Message Type消息类型

Response响应

A_Data byte

描述(所有值均为十六进制)

字节值

助记符

#1

TransferData Response SID

传输数据响应SID

0x76

TDPR

#2

blockSequenceCounter

块序列计数器

0x05

BSC

#3

:

#5

transferResponseParameterRecord [ transferResponseParameter#1 ] = dataByte3

:

transferResponseParameterRecord [ transferResponseParameter#3 ] = dataByte5

0xXX

:

0xXX

TREP_1

:

TREP_3

2.3 步骤#3:请求传输退出

表431 - RequestTransferExit请求信息流程示例

Message direction消息方向

Client -- > Server

Message Type消息类型

Request请求

A_Data byte

描述(所有值均为十六进制)

字节值

助记符

#1

RequestTransferExit Request SID

请求传输退出请求SID

0x37

RTE

表432 - RequestTransferExit肯定响应信息流程示例

Message direction消息方向

Server -- >Client

Message Type消息类型

Response响应

A_Data byte

描述(所有值均为十六进制)

字节值

助记符

#1

RequestTransferExit Response SID

请求传输退出响应SID

0x77

RTEPR

以上摘自《ISO 14229-1:2013》。

结尾

获取更多“汽车电子资讯”和“工具链使用”,

请关注CSDN博客“汽车电子助手”,做您的好助手。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汽车电子助手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值