UDS 诊断 - RequestTransferExit(请求传输终止)(0x37)服务

UDS 诊断服务系列文章目录

诊断和通信管理功能单元
UDS 诊断 - DiagnosticSessionControl(诊断会话控制)(0x10)服务
UDS 诊断 - ECUReset(ECU重置)(0x11)服务
UDS 诊断 - SecurityAccess(安全访问)(0x27)服务
UDS 诊断 - CommunicationControl(通信控制)(0x28)服务
UDS 诊断 - TesterPresent(测试仪保活)(0x3E)服务
UDS 诊断 - AccessTimingParameter(访问计时参数)(0x83)服务
UDS 诊断 - SecuredDataTransmission(受保护的数据传输)(0x84)服务
UDS 诊断 - ControlDTCSetting(控制DTC设置)(0x85)服务
UDS 诊断 - ResponseOnEvent(基于事件响应)(0x86)服务
UDS 诊断 - LinkControl(链路控制)(0x87)服务
数据传输功能单元
UDS 诊断 - ReadDataByIdentifier(按标识符读取数据)(0x22)服务
UDS 诊断 - ReadMemoryByAddress(按地址读取内存)(0x23)服务
UDS 诊断 - ReadScalingDataByIdentifier(按标识符读取换算数据)(0x24)服务
UDS 诊断 - ReadDataByPeriodicIdentifier(按周期性标识符读取数据)(0x2A)服务
UDS 诊断 - DynamicallyDefineDataIdentifier(动态定义数据标识符)(0x2C)服务
UDS 诊断 - WriteDataByIdentifier(按标识符写数据)(0x2E)服务
UDS 诊断 - WriteMemoryByAddress(按地址写内存)(0x3D)服务
存储数据传输功能单元
UDS 诊断 - ClearDiagnosticInformation(清除诊断信息)(0x14)服务
UDS 诊断 - ReadDTCInformation(读取 DTC 信息)(0x19)服务(1) - 服务说明
UDS 诊断 - ReadDTCInformation(读取 DTC 信息)(0x19)服务(2) - 请求消息
UDS 诊断 - ReadDTCInformation(读取 DTC 信息)(0x19)服务(3) - 响应消息
UDS 诊断 - ReadDTCInformation(读取 DTC 信息)(0x19)服务(4) - 示例
输入输出控制功能单元
UDS 诊断 - InputOutputControlByIdentifier(按标识符的输入输出控制)(0x2F)服务
例程功能单元
UDS 诊断 - RoutineControl(例程控制)(0x31)服务
上传下载功能单元
UDS 诊断 - RequestDownload(请求下载)(0x34)服务
UDS 诊断 - RequestUpload(请求上传)(0x35)服务
UDS 诊断 - TransferData(传输数据)(0x36)服务
UDS 诊断 - RequestTransferExit(请求传输终止)(0x37)服务

本文可能涉及的文章
addressAndLengthFormatIdentifier(地址和长度格式标识符)示例值

一、 服务说明

客户端利用此服务终止客户端与服务器之间的数据传输(上传或下载)。

二、请求消息

1. 请求消息定义

字节参数名称Cvt字节值
#1RequestTransferExit(请求传输终止) 请求 SIDM0x37

#2

#n
transferRequestParameterRecord[] = [
transferRequestParameter#1

transferRequestParameter#m ]

U

U

0x00 - 0xFF

0x00 - 0xFF

C:如果正在下载,则此参数为强制参数。

2. 请求消息数据参数定义

定义
transferRequestParameterRecord(传输请求参数记录)
此参数记录包含服务器要求的支持数据传输的参数。参数格式和长度由车辆制造商规定。

三、肯定响应消息

1. 肯定响应消息定义

字节参数名称Cvt字节值
#1RequestTransferExit(请求传输终止)响应SIDM0x77

#2

#n
transferResponseParameterRecord[] = [
transferResponseParameter#1

transferResponseParameter#m ]

U

U

0x00 - 0xFF

0x00 - 0xFF

C:如果正在上传,则此参数为强制参数。

2. 肯定响应消息数据参数的定义

定义
transferResponseParameterRecord(传输响应参数记录)
此参数应包含客户端支持数据传输要求的参数。参数格式和长度由车辆制造商规定。

四、受支持的 NRC

NRC说明
0x13消息不正确或格式无效
0x24请求序列错误
下列情况中,服务器应使用此响应码:
- 收到此项服务请求时,编程尚未完成;
- RequestDownload 或 RequestUpload 服务未激活。
0x31请求超过限值
如果 transferRequestParameterRecord 包含无效数据,则此 NRC 会被返回。
0x72一般编程故障
如果完成客户端与服务器之间的数据传输时服务器检测到错误(如通过完整性检查),则此 NRC 会被退回。

下图为 0x37 服务 NRC 的处理。

0x37 服务 NRC 的处理

五、示例

1. 下载数据到服务器

1)假设

本小节详细说明了从客户端传输数据(下载)服务器的条件。

本示例包含三个步骤。

第 1 步,客户端和服务器执行 RequestDownload 服务。执行此项服务时,一下信息作为请求和肯定响应消息中的参数在客户端与服务器之间进行交换。

下表定义了 transferRequestParameter(传输请求参数)值。

数据参数名称数据参数值数据参数说明
memoryAddress(3 字节)0x602000memoryAddress(开始)下载数据到
dataFormatIdentifier(数据格式标识符)0x11dataFormatIdentifier
- compressionMethod = 0x1X
- encryptingMethod = 0xX1
memorySize(3 字节)0x00FFFFmemorySize = 65535 字节
在执行 requestTransferExit(请求传输终止)服务时,服务器利用此参数值与传输的实际字数进行对比

下表定义了 transferResponseParameter(传输响应参数)值。

数据参数名称数据参数值数据参数说明
maximumNumberOfBlockLength(最大信息组长度)0x0081SID + BlockSequenceCounter(1 字节) + 127 服务器数据字节 = 129 数据字节

第 2 步,客户端从 memoryAddress 0x602000 开始向服务器的快闪内存器传输 65535 字节数据。

第 3 步,客户端执行 requestTransferExit 服务终止向服务器传输数据。

测试条件:ignition = on,engine = off,Vehicle speed = 0 [kph](点火开关点开,发动机熄火,车辆速度为 0)

假设在此例中服务器支持三字节 memoryAddress 和三字节 memorySize。如果 memorySize 包含未压缩大小,则无法计算 127 数据字节的 TransferData 服务的大小,因为压缩方法和压缩比不规范。如果 memorySize 包含压缩大小,则 127 数据字节的 TransferData 服务大小应为 516,其后为 三字节的单个 TransferData 请求。因此,假设最后一个 TransferData 请求消息包含大小相当于 0x05 的 BlockSequenceCounter。

2)step 1:下载请求

req  34 11 - dataFormatIdentifier33 - addressAndLengthFormatIdentifier60 20 00 - memoryAddress00 FF FF - memoryAize
resp 74 20 - LengthFormatIdentifier 00 81 - maxNumberOfBlockLength

3)step 2:传输数据

req  36 01 - blockSequenceCounter XX ... XX - transferRequestParameterRecord[transferRequestParameter#1 - transferRequestParameter#127]
resp 76 01...req  36 05 - blockSequenceCounter XX ... XX - transferRequestParameterRecord[transferRequestParameter#1 - transferRequestParameter#n]
resp 76 05

4)请求传输终止

req  37
resp 77

2. 从服务器上传数据

本小节详细说明了从服务器传输数据(上传)到客户端的条件。

示例包含三个步骤。

第 1 步,客户端和服务器执行 RequestUpload 服务。执行此项服务时,以下信息作为请求和肯定响应消息中的参数在客户端与服务器之间进行交换:

下表定义了 transferRequestParameter(传输请求参数)值。

数据参数名称数据参数值数据参数说明
memoryAddress(3 字节)0x201000memoryAddress(开始)从 XX 上传数据
dataFormatIdentifier(数据格式标识符)0x11dataFormatIdentifier
- compressionMethod = 0x1X
- encryptingMethod = 0xX1
memorySize(3 字节)0x0001FFmemorySize = 511 字节
在执行 requestTransferExit(请求传输终止)服务时,服务器利用此参数值与传输的实际字数进行对比。

下表定义了 transferResponseParameter(传输响应参数)值。

数据参数名称数据参数值数据参数说明
maximumNumberOfBlockLength(最大信息组长度)0x0081SID + BlockSequenceCounter(1 字节) + 127 服务器数据字节 = 129 数据字节

第 2 步,服务器以服务器中的 memoryAddress 0x201000 为起点从外部 RAM 传输 511 数据字节(4 个 有 129 数据字节(127 个服务器数据字节 + 1 个 SID + 1 个 BlockSequenceCounter)的 TransferData 服务和 1 个有 5 数据字节(3 个服务器数据字节 + 1 个 SID + 1 个 BlockSequenceCounter)的 TransferData 服务。

第 3 步,客户端执行 requestTransferExit 服务终止向服务器传输数据。

测试条件:ignition = on,engine = off,Vehicle speed = 0 [kph](点火开关点开,发动机熄火,车辆速度为 0)

假设在此例中服务器支持三字节 memoryAddress 和三字节 MemorySize。另外还假设服务器支持 TransferData 服务中的 BlockSequenceCounter。

1)上传请求

req  35 11 - dataFormatIdentifier33 - addressAndLengthFormatIdentifier20 01 00 - memoryAddress00 01 FF - memoryAize
resp 75 20 - LengthFormatIdentifier 00 81 - maxNumberOfBlockLength

2)传输数据

req  36 01 - blockSequenceCounter 
resp 76 01XX ... XX - transferResponseParameterRecord[transferResponseParameter#1 - transferResponseParameter#127]...req  36 05 - blockSequenceCounter 
resp 76 05XX ... XX - transferResponseParameterRecord[transferResponseParameter#1 - transferResponseParameter#3]

3)请求传输终止

req  37
resp 77

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/422931.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【北京迅为】《STM32MP157开发板使用手册》- 第二十六章Cortex-M4 GPIO_蜂鸣器实验

iTOP-STM32MP157开发板采用ST推出的双核cortex-A7单核cortex-M4异构处理器,既可用Linux、又可以用于STM32单片机开发。开发板采用核心板底板结构,主频650M、1G内存、8G存储,核心板采用工业级板对板连接器,高可靠,牢固耐…

matlab 基于选权迭代法的空间平面拟合

目录 一、算法原理1、参数平差2、选权迭代法3、参考文献二、代码实现三、结果展示本文由CSDN点云侠原创,原文链接,爬虫自重。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的抄袭狗。 一、算法原理 1、参数平差 由空间几何学知,空间平面方程可以表述为: A x…

【C++】——string类的模拟实现

目录 一、string模拟实现 1.1构造析构 1.2迭代器 1.3修改 1.4查找 1.5substr 深浅拷贝的区别 1.6比较函数与流插入流提取 二、string类的拷贝 2.1浅拷贝与深拷贝 2.2传统版与现代版区别 2.3写时拷贝(了解) 三、vs和g下string结构的说明 3.1v…

零信任沙箱让源代码防泄漏“如虎添翼”

"数据泄露事件频发,给企业带来了巨大的经济损失和声誉损害。SDC沙盒,一款基于零信任模型构建的数据防泄密解决方案,正成为企业数据安全的新防线。 🔐 零信任模型的核心:SDC沙盒遵循“永不信任,始终验…

Python爬虫案例七:抓取南京公交信息数据并将其保存成excel多表形式

测试链接: https://nanjing.8684.cn/line4 思路:先抓取某个类型下的某一条线路所有数据,然后实现批量,,列举出三个类型代表既可 源码: from lxml import etree from xlutils.copy import copy import requests, os, xlrd, xlwtd…

串口输出时:英文正常输出、中文乱码输出

一、问题:英文正常输出,英文乱码输出 二、解决方法 1、查看自己使用的串口助手的编码格式 2、查看自己使用输出的文件编码格式 以记事本的格式查看,原则上这两种应该保持相同,如果不相同,就需要把这个文件去另保存一…

UE5 阴影通道

Shadow Pass Switch节点中 Default代表模型遮罩的效果 Shadow代表阴影的生成遮罩效果

Android Studio报错中文乱码

现象: 解决办法: 按两下Shift,查找Edit Custom VM Options并确认; 没有studio64.exe.vmoptions的话会弹窗,创建一个即可;原本存在的话,在最下面添加 -Dfile.encodingUTF-83. Sync Gradle 重…

开源项目chartDB体验

github地址 :https://github.com/chartdb/chartdb 在线网站体验:https://chartdb.io/ 体验后发现 chartDB的作用是可视化各个表格之间的关系,方便数据库设计者操作并且接上openai的接口生成各个数据库语言的代码;但它没法导入实际…

人工智能在鼻咽癌诊断和治疗中的应用进展、当前挑战和未来前景|文献精析·24-09-13

小罗碎碎念 这篇文章综述了人工智能在鼻咽癌诊断和治疗中的应用进展、当前挑战和未来前景。 角色姓名单位名称(中文)第一作者杨四川大学华西医院肿瘤中心生物治疗科,生物治疗国家重点实验室通讯作者陈四川大学华西医院血管外科,普…

通过TikTok创新视频广告并提高ROAS

通过使用TikTok视频购物广告,Refurbed在五个国家的广告支出回报率(ROAS)提升了5.8%。 目录 总结营销策略是什么?取得了什么成果?为什么有效?获取更多类似的策略 总结 公司: Refurbed。目标&…

Matlab对状态机建模的方法

【 线性代数 状态机 】良好的控制系统设计 (根据现有的情况总结出状态转移方程) 状态组件在设计时需要考虑的内容 AI 的逻辑 可以提供一个思路 python 库调用的路径,必须是完整的路径 python 解释器的入口

【Leetcode算法面试题】-1. 两数之和

文章目录 算法练习题目思路参考答案算法1算法2算法3 算法练习 面试经常会遇到算法题目,今天开启算法专栏,常用算法解析 题目 ** 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数&…

Metasploit 渗透测试之Metasploit快速入门

简介 Metasploit 是目前世界上领先的渗透测试工具,也是信息安全与渗透测试领域最大的开源项目之一。它彻底改变了我们执行安全测试的方式。Metasploit之所以流行,是因为它可以执行广泛的安全测试任务,从而简化渗透测试的工作。Metasploit 适…

查看TCP/UDP网络连接通信情况

绪论​ “宿命论是那些缺乏意志力的弱者的借口。 ——罗曼.罗兰” 话不多说安全带系好,发车啦(建议电脑观看)。 主要使用: nestat -nltp n 拒绝显示别名,能显示数字的全部转化成数字l 仅列出有在 Listen (…

QML学习三:qml设计器报错 Line: 0: The Design Mode requires a valid Qt kit

开发环境:Qt 6.5.3 LTS 1、Qt 6.5.3 LTS 2、Pyside6 3、Python 3.11.4 4、win11 默认不打开设计器的时候可以看到我们默认是有Python的环境,而且点击运行是可以运行的。但是当打开qml设计器时提示下面这个错误,提示需要一个可用的套件。 …

代码随想录算法day33 | 动态规划算法part06 | 322. 零钱兑换,279.完全平方数,139.单词拆分,关于多重背包

322. 零钱兑换 如果求组合数就是外层for循环遍历物品,内层for遍历背包。 如果求排列数就是外层for遍历背包,内层for循环遍历物品。 力扣题目链接(opens new window) 给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需…

SAP学习笔记 - 开发03 - CDSView开发环境搭建,Eclipse中连接SAP,CDSView创建

上一章讲了BTP的账号创建,环境搭建等内容。 SAP学习笔记 - 开发02 - BTP实操流程(账号注册,BTP控制台,BTP集成开发环境搭建)-CSDN博客 本章继续讲SAP开发。 - CDSView 的开发环境(Eclipse)搭建…

“薅羊毛”时间到, 容声以旧换新“钜惠”升级

9月13日,由佛山市商务局、顺德区人民政府指导,海信家电集团主办的以旧换新佛山发布活动启幕。 海信家电(SZ 000921,HK 00921)旗下容声冰箱叠加国家以旧换新补贴,把“以旧换新”升级到“品质换新”&#xf…

【CTF Web】BUUCTF BUU BURP COURSE 1 Writeup(X-Real-IP伪造+POST请求)

BUU BURP COURSE 1 1 点击启动靶机。 解法 用 hackbar 将 X-Forwarded-For 设为 127.0.0.1,无效。提示:只能本地访问。 将 Referer 设为 127.0.0.1,无效。提示:只能本地访问。 将 X-Real-IP 设为 127.0.0.1,成功&am…