【ISO14229_UDS刷写】-4-$37诊断服务RequestTransferExit理论部分

UDS/OBD诊断服务:0x37RequestTransferExit详解
本文详细介绍了UDS诊断服务中的0x37RequestTransferExit服务,包括服务描述、请求和响应消息的定义、数据参数以及支持的否定响应代码。该服务用于终止客户端和服务器之间的数据传输。同时,提供了服务消息流的示例和相关博文链接供进一步学习。

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

《UDS/OBD诊断需求编辑工具》总目录https://blog.youkuaiyun.com/qfmzhu/article/details/123697014

目录

1 $0x37 RequestTransferExit诊断服务描述

2 0x37服务请求消息

2.1 0x37服务请求消息定义

2.2 0x37服务请求消息子功能参数$ Level(LEV_)定义

2.3 0x37服务请求消息数据参数定义

3 0x37服务肯定响应消息

3.1 0x37服务肯定响应消息定义

3.2 0x37服务肯定响应消息数据参数定义

4 0x37服务支持的否定响应代码(NRC_)

5 示例:0x37 RequestTransferExit服务消息流

结尾


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

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

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

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

RequestTransferExit0x37 service请求传输退出服务

服务

SID

描述

RequestTransferExit

请求传输退出

0x37

client要求终止数据传输。

1 $0x37 RequestTransferExit诊断服务描述

该服务由client使用,以终止client和server之间的数据传输(upload上传或download下载)。

重要的是 - serverclient应满足ISO 14229-1的7.5章节中规定的请求和响应消息行为。

2 0x37服务请求消息

2.1 0x37服务请求消息定义

表408 - 请求消息定义

A_Data byte

参数名称

Cvt

字节值

助记符

#1

RequestTransferExit Request SID

请求传输退出请求SID

M

0x37

RTE

#2

:

#n

transferRequestParameterRecord[] = [

transferRequestParameter#1

:

transferRequestParameter#m ]

U

:

U

0x00 – 0xFF

:

0x00 – 0xFF

TRPR_

TRTP_

:

TRTP_

2.2 0x37服务请求消息子功能参数$ Level(LEV_)定义

此服务不使用子功能参数。

2.3 0x37服务请求消息数据参数定义

表409 - 请求消息数据参数定义

定义

transferRequestParameterRecord传输请求参数记录

该参数记录包含server所需的参数,以支持数据的传输。该参数的格式和长度由汽车制造商决定。

3 0x37服务肯定响应消息

3.1 0x37服务肯定响应消息定义

表410 - 肯定响应消息定义

A_Data byte

参数名称

Cvt

字节值

助记符

#1

RequestTransferExit Response SID

请求传输退出响应SID

M

0x77

RTEPR

#2

:

#n

transferResponseParameterRecord[] = [

transferResponseParameter#1

:

transferResponseParameter#m ]

U

:

U

0x00 – 0xFF

:

0x00 – 0xFF

TREPR_ TREP_

:

TREP

3.2 0x37服务肯定响应消息数据参数定义

表411 - 响应消息数据参数定义

定义

transferResponseParameterRecord传输响应参数记录

该参数应包含client所需的参数,以支持数据的传输。该参数的格式和长度由汽车制造商决定。

4 0x37服务支持的否定响应代码(NRC_)

对于这项服务,应执行以下negative response code否定响应代码。表412中记录了每个响应代码会发生的情况。如果错误情况适用于server,应使用列出的negative response否定响应

表412 - 支持的否定响应代码

NRC

描述

助记符

0x13

incorrectMessageLengthOrInvalidFormat消息长度不正确或格式无效

如果信息的长度有误,应返回该NRC。

IMLOIF

0x24

requestSequenceError请求序列错误

如果出现以下情况,该NRC将被返回:

- 收到该服务的请求时,编程过程尚未完成;

- RequestDownload或RequestUpload服务未被激活;

RSE

0x31

requestOutOfRange请求超出范围

如果transferRequestParameterRecord包含无效的数据,则应返回该NRC。

ROOR

0x72

generalProgrammingFailure一般编程失败

如果server在最终完成client和server之间的数据传输时检测到错误(例如,通过完整性检查),则应返回该NRC。

GPF

评价顺序记录在图29中。

29 - NRC处理请求下载服务

5 示例:0x37 RequestTransferExit服务消息流

详见以下博文:

【ISO14229_UDS刷写】-6-$34,$35,$36,$37诊断服务用于downloading下载/uploading上载数据的消息流示例icon-default.png?t=N4P3https://blog.youkuaiyun.com/qfmzhu/article/details/130895979

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

结尾

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

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

 

新能源汽车在使用UDS(统一诊断服务,Unified Diagnostic Services)协议进行刷写(ECU软件更新)时,会涉及多个诊断服务,这些服务定义在ISO 14229标准中。以下是刷写过程中常用的关键诊断服务: 1. **0x10 - 诊断会话控制(Diagnostic Session Control)** 该服务用于切换ECU的诊断会话模式,例如从默认会话切换到扩展会话或编程会话,以便执行刷写操作。编程会话通常需要更高的权限和不同的通信参数[^3]。 2. **0x27 - 安全访问(Security Access)** 刷写操作通常受到安全机制的保护,因此需要通过安全访问服务进行身份验证。该服务通过“种子-密钥”机制实现访问控制,确保只有授权设备可以执行刷写[^3]。 3. **0x31 - 例程控制(Routine Control)** 在刷写过程中,可能会调用特定的例程,例如擦除Flash存储器或初始化刷写流程。该服务允许启动、停止或请求例程执行结果[^3]。 4. **0x34 - 请求下载(Request Download)** 该服务用于通知ECU准备接收新的软件数据。它通常包含即将下载的数据大小和可能的块大小信息,以便ECU分配适当的缓冲区[^3]。 5. **0x35 - 请求上传(Request Upload)** 如果需要从ECU中读取现有软件数据或备份信息,可使用该服务请求上传数据。在某些刷写场景中,可能需要先读取旧版本数据再进行更新[^3]。 6. **0x36 - 传输数据(Transfer Data)** 该服务用于实际传输刷写数据。通常在请求下载后使用,按块方式将新的软件代码或配置数据发送到ECU[^3]。 7. **0x37 - 请求传输退出(Request Transfer Exit)** 当所有数据传输完成后,使用该服务通知ECU结束传输过程,并进行必要的校验或写入操作,确保数据正确写入非易失性存储器[^3]。 8. **0x7F - 负响应(Negative Response)** 如果某个诊断服务请求失败,ECU将返回0x7F服务,并附带具体的否定响应代码(NRC),例如“服务不支持”、“条件不满足”等,用于故障排查[^3]。 在实际应用中,刷写流程通常由OEM或供应商定义的特定协议控制,例如通过OTA(空中下载)方式进行更新时,可能还会结合厂商自定义的加密和验证机制。整个过程需要确保数据完整性、刷写安全性和回滚机制,以防止更新失败导致车辆功能异常。 ### 示例:UDS刷写流程简要步骤 ```c // 伪代码示例 StartSession(); // 切换到编程会话 (0x10) SecurityAccess(); // 通过安全验证 (0x27) RequestDownload(size); // 准备接收数据 (0x34) for (each block) { TransferData(block); // 传输数据块 (0x36) } RequestTransferExit(); // 完成传输并校验 (0x37) ResetECU(); // 重启ECU使更新生效 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

汽车电子助手

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

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

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

打赏作者

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

抵扣说明:

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

余额充值