UDS 诊断 - TransferData(传输数据)(0x36)服务

news2024/11/15 21:38:24

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

一、 服务说明

客户端利用 TransferData(传输数据)服务从客户端向服务器(下载)或从服务器向客户端(上传)传输数据。

数据传输方式取决于前述 RequestDownload(请求下载)或 RequestUpload(请求上传)服务。如果客户端发出 RequestDownload,则待下载数据包含在 TransferData 请求消息中的 transferRequestParameter(传输请求参数)内。如果客户端发出的 RequestUpload,则待上传数据包含在 TransferData 响应消息中的 transferResponseParameter(传输响应参数)内。

TransferData 服务请求包含 blockSequenceCounter(快序列计数器),以便在请求一序列 TransferData 过程中 TransferData 服务失败时提高错误处理。收到 RequestDownload(0x34)或 RequestUpload(0x35)消息是,服务器的 blockSequenceCounter 应初始化为 1。这表示 RequestDownload 或 RequestUpload 消息之后的首个 TransferData 请求消息是从 blockSequenceCounter 1 开始。

二、请求消息

1. 请求消息定义

字节参数名称Cvt字节值
#1TransferData(传输数据) 请求 SIDM0x36
#2blockSequenceCounter(块序列计数器)M0x00 - 0xFF

#3

#n
transferRequestParameterRecord[] = [
transferRequestParameter#1

transferRequestParameter#m ]

C

U

0x00 - 0xFF

0x00 - 0xFF

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

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

定义
blockSequenceCounter(块序列计数器)
blockSequenceCounter(块序列计数器)参数值从 0x01 开始,第一个 TransferData 请求在 RequestDownload 或 RequestUpload 服务器之后。TransferData 请求每增加一次,参数值加 1。参数值为 0xFF 时,blockSequenceCounter(块序列计数器)翻滚并从 0x00 开始发出下一条 TransferData 请求消息。
示例:
- 如果下载数据要求 TransferData 请求被服务器正确接收和处理,但肯定响应消息未达到客户端,则客户端会认为应用层超时并重复相同的请求(包括同一 blockSequenceCounter(块序列计数器))。这样,服务器会接收重复 TransferData 请求并根据计入的 blockSequenceCounter(块序列计数器)确定 TransferData 请求重复。然后服务器不再重复写入数据,而是立即将肯定响应消息发送到服务器内存中。
- 如果下载数据要求的 TransferData 请求未被服务器正确接收,则服务器不会发出肯定响应消息。客户端会认为应用层超时并会重复相同的请求(包括同一 blockSequenceCounter)。这样,服务器会接收重复 TransferData 请求并根据计入的 blockSequenceCounter 确定该请求为新 TransferData 请求。然后服务器会处理服务并发送肯定响应消息。
- 如果上传数据要求的 TransferData 请求被服务器正确接收和处理,但肯定响应消息未到达客户端,则客户端会认为应用层超时并重复相同的请求(包括同一 blockSequenceCounter)。这样,服务器会接收重复 TransferData 请求并根据计入的 blockSequenceCounter 确定 TransferData 请求重复。然后一访问到之前提供的数据,服务器会立即再次向其内存发送肯定响应消息。
- 如果上传数据要求的 TransferData 请求未被服务器正确接收,则服务器不会发出肯定响应消息。客户端会认为应用层超时并会重复相同的请求(包括同一 blockSequenceCounter )。这样,服务器会接收重复 TransferData 请求并根据计入的 blockSequenceCounter 确定该请求为新 TransferData 请求。然后服务器会处理服务并发送肯定响应消息。
transferRequestParameterRecord(传输请求参数记录)
此参数记录包含服务器要求的支持数据传输的参数。参数格式和长度由车辆制造商规定。
示例:下载时,transferRequestParameterRecord 包括待传输的数据。

三、肯定响应消息

1. 肯定响应消息定义

字节参数名称Cvt字节值
#1TransferData(传输数据)响应SIDM0x76
#2blockSequenceCounter(块序列计数器)M0x00 - 0xFF

#3

#n
transferResponseParameterRecord[] = [
transferResponseParameter#1

transferResponseParameter#m ]

C

U

0x00 - 0xFF

0x00 - 0xFF

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

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

定义
blockSequenceCounter(块序列计数器)
此参数是请求消息的 blockSequenceCounter 参数的反射。
transferResponseParameterRecord(传输响应参数记录)
此参数应包含客户端支持数据传输要求的参数。参数格式和长度由车辆制造商规定。
示例:下载时,transferResponseParameterRecord 参数可以包含服务器计算出的校验和。上传时,transferResponseParameterRecord 参数包含上传数据。下载时,transferResponseParameterRecord 参数不得重复 transferRequestParameterRecord。

四、受支持的 NRC

NRC说明
0x13消息不正确或格式无效
如果消息长度错误(如消息长度不符合肯定响应消息对 RequestDownload 服务回应的 maxNumberOfBlockLength 参数要求),则应发送此 NRC。
0x24请求序列错误
下列情况中,服务器应使用此响应码:
- 收到 RequestDownload 或 RequestUpload 服务请求时,RequestDownload 或 RequestUpload 服务未激活;
- RequestDownload 或 RequestUpload 服务激活,但服务器已接收到 RequestDownload 或 RequestUpload 服务中的 memorySize 参数确定的所有数据;
注:利用 BlockSequenceCounter 接收到的与其中一条历史 TransferData 请求消息等效的 TransferData 请求消息应可以被服务器接受。
0x31请求超过限值
下述情况下,应返回此 NRC:
- transferRequestParameterRecord 包含附加控制参数(如附加地址信息),但此控制信息无效。
- transferRequestParameterRecord 与 RequestDownload 或 RequestUpload 服务参数 maxNumberOfBlockLength 不符。
- transferRequestParameterRecord 不符合服务器的内存对齐限制。
0x71传输数据暂停
如果下载模块长度不符合 RequestDownload 服务的请求消息中发送的 memorySize 参数要求,则此 NRC 会被返回。
0x72一般编程故障
下载数据过程中,如果服务器在清除或编程永久性存储器(如快闪存储器)中的内存位置检测到错误,则此 NRC 会被返回。
0x73错误块序列计数器
如果服务器在序列 BlockSequenceCounter 中检测到错误,则此 NRC 会被返回。
注:利用 BlockSequenceCounter 接收到的与其中一条历史 TransferData 请求消息等效的 TransferData 请求消息应可以被服务器接受。
0x92 / 0x93电压过高 / 电压过低
如果在服务器的主电源接脚处测得的电压超出将数据下载到服务器永久性存储器(如快闪存储器)所需电压的可接受范围,则应发送此 NRC。

下为 0x36 服务的 NRC 处理。

0x36 服务的 NRC 处理

图例

1 如果正在执行 RequestUpload 服务,则最小长度必须为 2,如果正在执行 RequestDownload 服务,则 最小长度至少为 3(SI + BlockSequenceCounter + 最小 transferRequestParameterRecord)

本节示例见 UDS 诊断 - RequestTransferExit(请求传输终止)(0x37)服务

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

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

相关文章

芯片制造过程(科普版)

tip:是搬运过来的,vx公众号:胖虎说可科普(感觉它的视频也是不知道哪里搞过来的,bushi) 目录 1 芯片结构2 制造过程2.1 晶圆的制造2.2 晶圆的加工2.3 掩膜电路2.4 光刻2.5 离子注入2.6 切割 封装等 最后 记录一下编写过程&#xff…

IM系统完结了,那简历该怎么写?(含简历项目描述)

作者:冰河 星球:http://m6z.cn/6aeFbs 博客:https://binghe.gitcode.host 文章汇总:https://binghe.gitcode.host/md/all/all.html 星球项目地址:https://binghe.gitcode.host/md/zsxq/introduce.html 沉淀&#xff0c…

在线仿真器ST-Link为例的整体认知

仿真器的作用 参考 简单来说,仿真器拥有下载和实时程序控制两个功能,而且下载的地址直接指向flash而不需要设置引脚启动单片机内部的bootloader程序,而实际中更加实用的是程序控制调试,这可以减少很多下载操作。 仿真器的在调试…

信息安全工程师(6)网络信息安全现状与问题

一、网络信息安全现状 威胁日益多样化:网络攻击手段不断翻新,从传统的病毒、木马、蠕虫等恶意软件,到勒索软件、钓鱼攻击、DDoS攻击、供应链攻击等,威胁形式多种多样。这些攻击不仅针对个人用户,还广泛影响企业、政府等…

[数据集][图像分类]茶叶病害分类数据集6749张7类别

数据集类型:图像分类用,不可用于目标检测无标注文件 数据集格式:仅仅包含jpg图片,每个类别文件夹下面存放着对应图片 图片数量(jpg文件个数):6749 分类类别数:7 类别名称:["Unlabeled","alg…

【设计模式】UML类图和六大设计原则

前言 在实践中经常看到工厂模式、观察者模式等字眼,渐觉设计模式的重要性,于是开刷设计模式。 本文讲述了UML类图以及设计模式的六大原则 参考资料: 课程视频:黑马程序员Java设计模式 一、UML类图 1. 类和接口的表示方式 如…

【Elasticsearch系列八】高阶使用

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

在线教育平台项目

介绍 基于SpringBootVue前后端分离的在线教育平台项目,单体应用服务架构。系统共设计三种角色:管理员、讲师和学员,三个角色分别对应一个操作端。也就是本系统1个后台项目,三个前端项目。管理员端没有引入角色和权限管理&#xf…

YoloV8 trick讲解

1.将 YOLOv5 的 C3结构换成了梯度流更丰富的 C2f结构: C3 C3 模块的设计灵感来自 CSPNet,其核心思想是将特征图的部分通道进行分割和并行处理,目的是减少冗余梯度信息,同时保持较高的网络表达能力。C3 结构与传统的残差结构类似,但…

【23-24年】年度总结与迎新引荐

文章目录 相关连接前言1 忙碌的备研与本科毕设2 暑期阿里之旅3 团队荣誉与迎新引荐4 项目合作意向 相关连接 个人博客:issey的博客 - 愿无岁月可回首 前言 自从2023年4月更新了两篇关于NLP的文章后,我便消失了一年半的时间。如今,随着学业…

软考高级:存储系统IO 数据传输方式:程序控制方式、程序中断方式、DMA 方式、通道方式、IO 处理机 AI 解读

关于计算机中的IO数据传输方式,有几种不同的策略可以用来进行数据的传输和控制。我们分别讲解一下它们。 生活化例子 假设你在一条生产线上工作,有几种方式可以处理不同的任务(如搬运、检查、修理产品): 程序控制方…

Linux基础---09Find文件查找

百分之八十的财富掌握在百分之二十的手里,这就是著名的二八法则。这里列出关键字表,希望大家复习的时候看到关键字,脑袋里就自动浮现出整句命令。 查询方式主要参数文件名-name文件大小-size忽略大小写-iname按天-atime,-mtime,-…

目标检测基本知识

目标检测 一、目标检测二、常用的评价指标2.1 IOU2.2 NMS(非极大值抑制) 三、R-CNN网络基础3.1 Overfeat模型3.2 RCNN模型3.3FastRCNN模型 四、Faster-RCNN网络4.1 网络工作流程 五、yolo系列5.1 yoloV3 六、SSD算法 一、目标检测 目标检测的任务是找出图像中所有感兴趣的目标…

从index_put出发全面学习cuda和pytorch技术

一 前言 深感目前对于cuda和pytorch所涉及知识的广度和深度,但一时又不知道该如何去学习,经过多日的考虑,还是决定管中窥豹,从一个算子出发,抽丝剥茧,慢慢学习,把学习中碰到的问题都记录下来,希望可以坚持下去。 二 函数功能描述 【torch算子】torch.index_put和tor…

SOMEIP_ETS_112: SD_Empty_Option

测试目的: 验证DUT能够拒绝长度为0的IPv4选项的SubscribeEventgroup消息,并以SubscribeEventgroupNAck作为响应。 描述 本测试用例旨在确保DUT遵循SOME/IP协议,当接收到一个IPv4选项长度为0的SubscribeEventgroup消息时,能够正…

不同编程语言如何统计代码执行时间

在软件开发过程中,统计代码执行时间是一个非常有用的工具,可以帮助开发者优化程序性能、识别瓶颈以及进行基准测试。不同的编程语言提供了不同的方法来测量代码执行时间。以下是一些常见编程语言中测量代码执行时间的方法,并详细解释每一步的…

I2C/IIC学习笔记

I2C/IIC 有些同学I2C和IIC分不清,I2C和IIC实际上是指同一种通信协议。I2C是Inter-Integrated Circuit的缩写,而IIC是它的另一种表述方式,代表的是同一个意思,即“集成电路间总线”。I2C是一种由飞利浦公司(现恩智浦半…

数据结构(7.3_2)——平衡二叉树

平衡二叉树,简称平衡树(AVL树)----树上任一结点的左子树和右子树的高度之差不超过1. 结点的平衡因子左子树高-右子树高 //平衡二叉树结点 typedef struct AVLNode {int key;//数据域int blalance;//平衡因子struct AVLNode* lchild, * rchild; }AVLNode,*AVLTree; …

中秋:明月寄相思,灯笼映团圆

文章目录 前言项目概述实现步骤创建基础 HTML 结构添加动态背景和月亮创建 SVG 灯笼实现动态动画效果闪烁的星星效果调整灯笼和月亮尺寸 完整代码结语 前言 今天是中秋,这里先祝大家节日快乐!🎆🎆🎆 在这篇博客中&…

ChatGPT有三个快捷指令和三个模式,你知道吗?

大家好,我是木易,一个持续关注AI领域的互联网技术产品经理,国内Top2本科,美国Top10 CS研究生,MBA。我坚信AI是普通人变强的“外挂”,专注于分享AI全维度知识,包括但不限于AI科普,AI工…