UDS 诊断 - RequestUpload(请求上传)(0x35)服务

news2024/9/20 18:29:18

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)服务

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

一、 服务说明

客户端利用 RequestUpload(请求上传)服务启动服务器到客户端之间的数据传输(上传)。

服务器收到 RequestUpload(请求上传)请求消息后,应在其发送肯定响应消息之前采取必要行动接收数据。

二、请求消息

1. 请求消息定义

字节参数名称Cvt字节值
#1RequestUpload(请求上传) 请求 SIDM0x35
#2dataFormatIdentifier(数据格式标识符)M0x00 - 0xFF
#3addressAndLengthFormatIdentifier(地址和长度格式标识符)M0x00 - 0xFF

#4

#(m-1)+4
memoryAddress[] = [
byte#1(MSB)

byte#m ]

M

C1

0x00 - 0xFF

0x00 - 0xFF

#n-(k-1)

#n
memorySize[] = [
byte#1(MSB)

byte#m ]

M

C2

0x00 - 0xFF

0x00 - 0xFF

C1:此参数的存在性取决于 addressAndLengthFormatIdentifier 的地址长度信息参数。

C2:此参数的存在性取决于 addressAndLengthFormatIdentifier 的内存大小长度信息。

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

定义
dataFormatIdentifier(数据格式标识符)
此数据参数是一个单字节值,每半字节均单独编码。高效半字节指定 “compressionMethod(压缩方法)”,低效半字节指定 “encryptingMethod(加密法)“。字节值 0x00 不得使用压缩法或加密法。0x00 以外的字节值由车辆制造商规定。
addressAndLengthFormatIdentifier(地址和长度格式标识符)
此参数是一个单字节值,每个半字节均单独编码:
- 第 7 至 4 位:memorySize(内存大小)参数的长度(字节数)
- 第 3 至 0 位:memoryAddress(内存地址)参数的长度(字节数)
memoryAddress(内存地址)
参数 memoryAddress 是数据被写入服务器内存的起始地址。该地址所用的字节数由 addressAndLengthFormatIdentifier 的低效半字节(第 3 至 0 位)确定。memoryAddress 参数的第 m 个字节始终为服务器中当前所引用的地址的最低有效字节。地址的最高有效字节可以用作内存标识符。
内存表示符的使用示例可为一个带 16 位寻址和内存地址重叠的双处理器服务器(给定地址适用于处理器但得出不同的物理内存设备或使用内部和外部闪存的情况下)。在该情况下,可将 memoryAddress 参数中另外未使用的字节指定为用于选择期望内存设备的内存标识符。此功能的使用应由车辆制造商/系统供应商确定。
memorySize
服务器应利用此参数对比内存大小与执行 TransferData(传输数据)服务期间传输的数据总量。这增加了编程安全性。该内存大小所用的字节数由 addressAndLengthFormatIdentifier 的高效半字节(第 7 至 4 位)确定。如果数据压缩,则由车辆制造商规定内存大小是否支持压缩或未压缩大小。

三、肯定响应消息

1. 肯定响应消息定义

字节参数名称Cvt字节值
#1RequestUpload(请求上传)响应SIDM0x35
#2lengthFormatIdentifier(长度格式标识符)M0x00 - 0xF0

#3

#n
maxNumberOfBlockLength[] = [
byte#1(MSB)

byte#m ]

M

M

0x00 - 0xFF

0x00 - 0xFF

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

定义
lengthFormatIdentifer(长度格式标识符)
此数据参数是一个单字节值,每个半字节均单独编码:
- 第 7 至 4 位:maxNumberOfBlockLength(最大信息组长度)参数的长度(字节数)
- 第 3 至 0 位:文件保留,设置为 “0“
除了低效半字节须设置为 “0”,此参数的格式与请求消息中的 addressAndLengthFormatIdentifier 参数的格式兼容。
maxNumberOfBlockLength(最大信息组长度)
RequestUpload(请求上传)肯定响应消息利用此参数通知客户端服务器发出的 TransferData(传输数据)肯定响应消息中包含了多少数据字节。此长度反应了完整的消息长度,包括 TransferData 肯定响应消息中出现的服务表示符和数据参数。该参数允许客户端在开始向客户端传输数据之前适应服务器的接收缓冲大小。客户端接收的 TransferData 响应须与其报告的 maxNumberOfBlockLength 长度相等。发送的 TransferData 响应(如有)长度与 比 maxNumberOfBlockLength 小多少视特定服务器而定。注意指定信息组内的最后一个 TransferData 请求可能要比 maxNumberOfBlockLength 短。

四、受支持的 NRC

NRC说明
0x13消息不正确或格式无效
0x22条件不正确
如果不满足 RequestUpload(请求上传)要求,则此 NRC 会被退回。这种情况可能是由于在 RequestUpload(请求上传)已激活但尚未完成之时服务器收到此项服务请求而导致。
0x31请求超过限值
下述情况下,应返回此 NRC:
- 特定 dataFormatIdentifier 无效。
- 特定 addressAndLengthFormatIdentifier 无效。
- 特定 memoryAddress / memorySize 无效。
0x33安全访问被拒绝
如果接收到此项服务请求时服务器比较安全(针对支持 SecurityAccess(安全访问)服务的服务器),则此 NRC 会被退回。
0x70不接收上传下载
该 NRC 表示由于某些故障条件无法上传到服务器内存。

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

0x35 服务的 NRC 处理

图例

1 最小为 5(SI + dataFormatIdentifier + addressAndLengthFormatIdentifier + 最小 memoryAddress + 最小 memorySize)

2 长度可以通过 addressAndLengthFormatIdentifier 计算

dress + 最小 memorySize)

2 长度可以通过 addressAndLengthFormatIdentifier 计算

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一篇文章,讲清SQL的 joins 语法

SQL 中的不同 JOIN 类型: 1. (INNER)JOIN(内连接):返回两个表中具有匹配值的记录。 2. LEFT(OUTER)JOIN(左外连接):返回左表中的所有记录&#…

【SQL】百题计划:SQL内置函数“LENGTH“的使用

【SQL】百题计划-20240912 方法一: Select tweet_id from Tweets where LENGTH(content) > 15;– 方法二: Select tweet_id from Tweets where CHAR_LENGTH(content)> 15;

【DataSophon】Yarn配置历史服务器JobHistory和Spark集成historyServer

目录 一、概述 1.1历史服务器JobHistory 1.2 Spark历史服务器HistoryServer 二、集成配置 一、概述 1.1历史服务器JobHistory 为了查看程序的历史运行情况,需要配置一下历史服务器。方便在xxxx:8088查看历史任务运行日志信息。 1.2 Spark历史服务器HistoryServ…

夜幕降临 Nightfall Comes,官方中文,解压即玩,

游戏截图 《Nightfall Comes》是一款基于俯视角3D动作的Rogue-lite游戏, 讲述了四位角色的故事,他们怀着对已灭亡世界的最后执念,聚集在一个领地上的城堡中。 下载地址: 夜幕降临 Nightfall Comes,官方中文,解压即玩,

老板:IT部门一天到晚都在干什么?

最近某集团公司的一位CIO与笔者闲聊,吐槽道:老板问“IT部门一天到晚都在干什么?你们不就是修修电脑搞搞网络吗?要那么多人干什么?” 这位CIO其实是说出了老板对IT部门的质疑,背后折射的是企业数字化转型过…

安装office后,右键-》新建,不能创建word、PPT、Excel

原因是安装没有选择默认安装 解决办法: 文件的后缀名: 打开注册表: word: Excel: PPT: 最后重启一下电脑 效果:

七大技术 增强轧钢测径仪的抗干扰能力!

轧钢测径仪是在线检测设备,也就意味着其需要直面钢材,这些钢材在生产测量时,大部分温度高,环境中还有水汽、氧化铁皮等干扰测量的因素,因此在对轧钢测径仪设计之初就考虑到了现场的各种情况,提高测径仪的防…

极狐GitLab CI/CD 作业一直处于等待状态,如何解决?

本分分享 GitLab CI/CD Job 不工作的的故障排查方法:当 GitLab Runner 不接受 Job,Job 一直处于等待状态,如何解决此问题。 极狐GitLab 为 GitLab 在中国的发行版,中文版本对中国用户更友好。极狐GitLab 支持一键私有化部署&…

Linux arm-linux-gcc 内核编译

1.下载 arm-linux-gcc 4.4.3版本后更新路径 sudo vim /home/linux/.bashrc 的最后一行加入路径 或者 sudo vim /erc/profile 最后一行加路径 如果使用第一个改,则注释掉第二个的最后一行的旧的arm-linux-gcc 的路径 版本更新好后,使用编译可能还有错误&a…

如何评估一个RAG(检索增强生成)系统-上篇

最近项目中需要评估业务部门搭建的RAG助手的效果好坏,看了一下目前业界一些评测的方法。目前分为两大类,基于传统的规则、机器学习的评测方法,基于大模型的评测方法。在这里做一些记录,上篇主要做评测方法的记录,下篇会…

盘点2024年大家都在用的录屏工具

现在录屏工具的使用范围越来越广了。我的深切体验是有很多人愿意为知识付费了,但是到线下培训的话很多人时间不一定能协调的来,这就导致涌现了不少的录屏课程。这次我们来探讨下要怎么录屏才能呈现更好的效果。 1.福昕录屏大师 链接达达:ww…

基于 ROS 的Terraform托管服务轻松部署Stable Diffusion

介绍 Stable Diffusion是文本到图像的潜在扩散模型,它可以根据文本提示词生成对应的图像。Stable Diffusion模型是扩散模型的变种,可以通过逐步对随机高斯噪声进行去噪以获得感兴趣的样本。与传统生成模型相比,Stable Diffusion可以在不需要…

数据结构修炼——时间复杂度?空间复杂度?教你如何衡量算法的优劣!!

目录 一、关于复杂度二、时间复杂度1 概念2 大O的渐进表示法3 练习3.1 练习13.2 练习23.3 练习33.4 练习43.5 练习53.6 练习6 三、空间复杂度1 概念2 练习2.1 练习12.2 练习22.3 练习32.4 练习4 小结 一、关于复杂度 算法在编写成可执行程序后,运行时需要耗费时间资…

C++ | Leetcode C++题解之第402题移掉K位数字

题目&#xff1a; 题解&#xff1a; class Solution { public:string removeKdigits(string num, int k) {vector<char> stk;for (auto& digit: num) {while (stk.size() > 0 && stk.back() > digit && k) {stk.pop_back();k - 1;}stk.push_b…

神经网络多层感知器异或问题求解-学习篇

多层感知器可以解决单层感知器无法解决的异或问题 首先给了四个输入样本&#xff0c;输入样本和位置信息如下所示&#xff0c;现在要学习一个模型&#xff0c;在二维空间中把两个样本分开&#xff0c;输入数据是个矩阵&#xff0c;矩阵中有四个样本&#xff0c;样本的维度是三维…

以太坊学习

以太坊原理书 区块链的一些基础概念 账户是什么 以太坊的账户共分成两类&#xff0c;外部账户 (Externally Owned Account, EOA ) 与 智能合约 (Contract Account, CA )。 外部账户由 一把私钥 与该私钥对应的公开地址来表示&#xff0c;是普通用户的账户。智能合约账户 没…

一、SpringBoot自动装配原理

目录 一、背景二、原理 一、背景 在Spring的时候&#xff0c;如果我们需要引进一些第三方依赖&#xff0c;还行需要写一些配置类或者xml文件对第三方依赖进行配置。在SpringBoot之后&#xff0c;我们只需要引入这些第三方依赖的一个starter&#xff0c;然后在application.yaml…

pip install速度太慢的多种解决方案

目录 问题描述为什么 pip 速度这么慢&#xff1f;解决方案1. 使用国内镜像源2. 配置多个镜像源3. 使用第三方工具4. 手动下载后本地安装5. 优化网络环境6. 更新 pip 版本 测试效果 问题描述 在使用 Python 进行开发时&#xff0c;我们经常需要使用 pip 来安装第三方库。然而&am…

图片详解,最简单易懂!!!Ubuntu增强功能

文章目录 共享粘贴板共享文件夹vim 共享粘贴板 双击 输入认证用户密码 显示这个界面 命令行界面 reboot就会重新启动 虚拟机 设置下面的选项&#xff0c;就可以实现共享粘贴 共享文件夹 先在本机&#xff08;windows&#xff09;新建一个共享文件夹 再在ubuntu建一个共…

minio的下载和springboot整合minio使用

下载minio 基于docker拉取minio镜像 docker pull minio/minio 创建minio容器 先创建/root/minio/data 和 /root/minio/conf docker run -d -p 9000:9000 -p 9001:9001 --name minio \ -e "MINIO_ROOT_USERhtsdg" \ -e "MINIO_ROOT_PASSWORD12345678" \ -v…