前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >UDS诊断之37服务

UDS诊断之37服务

作者头像
xbai921031
发布2022-05-25 15:19:20
1.6K0
发布2022-05-25 15:19:20
举报

RequestTransferExit(0x37)—— 请求传输退出

这个服务是用来终止数据传输的(上传/下载)。

1.服务请求报文定义

图1 服务请求报文定义

Sub-Function:

本服务没有子服务。

服务请求报文中参数定义:

transferRequestParameterRecord:用来传输的数据,格式和长度是由车厂自定义的。

2.肯定响应

图2 肯定响应报文格式

transferResponseParameterRecord:由用户定义。

3.支持的NRC

图3 0x37服务支持的NRC

4.示例

此示例分为3步:

Step 1:

用户和ECU之间通过RequestDownload(0x34)服务来交换数据。

transferRequestParameter如下:

参数名称

参数值

描述

memoryAddress

0x602000

下载地址

dataFormatIdentifier

0x11

MemorySize

0x00FFFF

内存大小,这个值在执行RequestTransferExit(0x37)服务时,会用来和实际执行的数据传输内存大小进行对比

transferResponseParameter如下:

参数名称

参数值

描述

maximumNumberOfBlockLength

0x0081

maximumNumberOfBlockLength:(serviceId + BlockSequenceCounter (1 byte) + 127 server databytes = 129 data bytes)

Step 2:

用户将65535字节的数据下载到Flash起始地址为0x602000的内存中。

Step 3:

用户通过请求RequestTransferExit(0x37)来终止数据传输。

测试条件:

(1)IG = ON

(2)Engine = OFF

(3)Vehicle Speed = 0 kph

报文示例:

Step 1:请求RequestDownload(0x34)服务

发送请求:34 11 33 60(MSB) 20 00(LSB) 00(MSB) FF FF(LSB)

肯定响应:74 20 00(MSB) 81(LSB)

Step 2:请求TransferData (0x36)服务,传输数据

发送请求:36 01 XX XX XX XX XX ……(XX表示下载的数据)

肯定响应:76 01

发送请求:36 02 XX XX XX XX XX ……(XX表示下载的数据)

肯定响应:76 02

……

发送请求:36 05 XX XX XX XX XX ……(XX表示下载的数据)

肯定响应:76 05

(假设要请求5次才能把数据下载完,blockSequenceCounter = 5)

Step 3:请求RequestTransferExit(0x37)服务

发送请求:37

肯定响应:77

总结:

以上步骤的执行过程都是由上位机工具来执行的,可以用CANoe中的CAPL语言来开发上位机,这个工具开发难度应该不算太大,主要是注意.s19/.s28/.hex文件的解析过程,然后利用CAN/LIN消息发送函数接口,发送三个服务的执行请求序列就可以了。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-02-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 进击的程序喵 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
文档服务
文档服务(Document Service,DS)是腾讯云数据万象提供云上文档处理服务,支持多种类型的文件生成图片或 html 格式的预览,可以解决文档内容的页面展示问题,满足 PC、App 等多端的文档在线浏览需求。同时,本产品还提供文本隐私筛查能力,可以有效识别文本中的身份证号、银行卡号、手机号等敏感数据,满足数据可用性和隐私保护的各种要求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档