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

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

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

【ISO14229_UDS刷写】-2-$35诊断服务RequestUpload理论部分icon-default.png?t=N4P3https://blog.youkuaiyun.com/qfmzhu/article/details/130895791【ISO14229_UDS刷写】-3-$36诊断服务TransferData理论部分icon-default.png?t=N4P3https://blog.youkuaiyun.com/qfmzhu/article/details/130895839【ISO14229_UDS刷写】-4-$37诊断服务RequestTransferExit理论部分icon-default.png?t=N4P3https://blog.youkuaiyun.com/qfmzhu/article/details/130895913【ISO14229_UDS刷写】-5-$38诊断服务RequestFileTransfer理论部分icon-default.png?t=N4P3https://blog.youkuaiyun.com/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》。

结尾

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

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

### 回答1: iso-14229是一项用于汽车电子系统通信的协议,其全称为ISO14229 Unified Diagnostic Services(UDS)on Controller Area Network(CAN)。该协议旨在为车辆的诊断、维护和修复提供标准化的方法。ISO 14229定义了诊断服务和通信的标准化消息格式,包括诊断数据、错误码、故障清除等,以使不同车辆的系统实现得到统一和互操作性。 ISO14229 UDS协议栈是用于实现ISO 14229诊断协议的软件组件。该协议栈的实现可分为物理层和软件层两个部分,其中物理层是指使用CAN总线对车辆的执行单元进行通信,而软件层则是指实现ISO 14229标准的协议堆栈。该协议栈具有标准化、可重用和可配置的特点,可在不同的客户平台上使用。 ISO 14229的文档是对该协议的规范和说明,包括协议的基本架构、消息格式、错误码表、会话层和传输层的细节等。该文档是实现ISO 14229协议的必要依据,可用于开发UDS协议栈的开发人员和车辆诊断工程师。 源码.zip则是UDS协议栈的实现源代码,包括物理层和软件层代码。开发人员可根据该源码了解UDS协议栈的实现细节和技术实现,并根据需求进行二次开发。 综上所述,ISO-14229_14229_UDS协议栈_UDS-ISO-14229_ISO14229文档_ISO 14229_源码.zip等组件,是用于实现汽车电子系统诊断的标准化协议,可为车辆的维护和修复提供规范的方法。开发人员和车辆诊断工程师可根据这些组件进行UDS协议栈的开发和实现。 ### 回答2: ISO-14229用于诊断汽车电子控制单元(ECU)的标准协议。该协议旨在提供一种标准化的方法,让技术人员可以使用相同的工具和流程诊断不同制造商的汽车。 14229 UDS是该标准的通信协议栈。UDS指协议栈中定义的通用诊断服务,该服务用于访问ECU的内部数据和状态。ISO14229文档提供了UDS协议栈的详细规范,以及相关的数据格式和命令集合。 此外,文档和源代码可以帮助工程师实现符合ISO-14229标准的诊断工具或ECU,提高汽车诊断系统的质量和效率。源码.zip则是UDS协议栈的代码包。 总之,ISO-14229标准和UDS协议栈提供了一种标准化的、可靠的汽车诊断协议。它们有助于提高汽车技术人员的工作效率,同时减少汽车诊断工具和软件的开发成本。 ### 回答3: ISO-14229是一种用于汽车电子系统的通讯协议。它定义了诊断通信的规范和协议,允许车辆厂商和供应商使用这些规范和协议来开发和测试车载电子控制单元。其中,UDS协议栈是实现ISO-14229的关键技术之一,能够为客户端提供远程访问ECEs的可能性。 ISO-14229规定了接口:UDS(Unified Diagnostic Service),用于与电子控制单元(ECU)之间进行通讯。 UDS协议栈则实现了UDS协议的接口,可以自动进行诊断和测试,发生故障时还能产生错误报告。 相应地, ISO14229文档描述了在ISO14229-1文档中定义的UDS协议的特定应用,与ISO15765-2的特定要求相结合。 它还包括了EVITA Light文档中的安全方面。 源码.zip文件则包含了UDS协议栈的源代码,可以在开发与应用中使用,实现对汽车电子控制单元的简便对话操作。 总之,ISO-14229及其UDS协议栈实现了车载控制电子单元的标准化通讯,可简化车辆诊断和维护过程,提高效率和可靠性。同时,相应的规范、文档和源代码也为相关人员提供了方便和支持。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

汽车电子助手

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

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

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

打赏作者

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

抵扣说明:

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

余额充值