【ISO14229_UDS刷写】-3-$36诊断服务TransferData理论部分

news2024/11/25 14:45:41

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

《UDS/OBD诊断需求编辑工具》总目录icon-default.png?t=N4P3https://blog.csdn.net/qfmzhu/article/details/123697014

目录

1 $0x36 TransferData诊断服务描述

2 0x36服务请求消息

2.1 0x36服务请求消息定义

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

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

3 0x36服务肯定响应消息

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

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

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

5 示例:0x36 TransferData服务消息流

结尾


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

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

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

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

TransferData0x36 service传输数据服务

服务

SID

描述

TransferData

传输数据       

0x36

client向server发送数据(download下载)或从server请求数据(upload上传)。

1 $0x36 TransferData诊断服务描述

TransferData服务被client用来从client向server(download下载)或从server向client(upload上传)传输数据。

数据传输方向由前面的RequestDownload或RequestUpload服务定义。如果client发起RequestDownload,要下载的数据将包括在TransferData请求消息的参数transferRequestParameter中。如果client发起了一个RequestUpload,要上传的数据就包括在TransferData响应消息中的参数transferResponseParameter中。

TransferData服务请求包括一个blockSequenceCounter,以便在多个TransferData请求序列中的TransferData服务失败时改进错误处理。当收到RequestDownload (0x34)或RequestUpload (0x35)请求消息时,server的blockSequenceCounter应被初始化为1。这意味着在RequestDownload (0x34)或RequestUpload (0x35)请求消息之后的第一个TransferData (0x36)请求消息以一个blockSequenceCounter为起点。

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

2 0x36服务请求消息

2.1 0x36服务请求消息定义

表403 - 请求消息定义

A_Data byte

参数名称

Cvt

字节值

助记符

#1

TransferData Request SID

传输数据请求SID

M

0x36

TD

#2

blockSequenceCounter

块序列计数器

M

0x00 – 0xFF

BSC

#3

:

#n

transferRequestParameterRecord[] = [

transferRequestParameter#1

:

transferRequestParameter#m ]

C

:

U

0x00 – 0xFF

:

0x00 – 0xFF

TRPR_ TRTP_

:

TRTP_

C = Conditional有条件:如果下载正在进行,该参数是强制性的。

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

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

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

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

定义

blockSequenceCounter块序列计数器

BlockSequenceCounter参数值从RequestDownload(0x34)或RequestUpload(0x35)服务后的第一个TransferData请求的0x01处开始。它的值在每个后续的TransferData请求中都会增加1。当值为0xFF时,blockSequenceCounter会翻转,并在下一个TransferData请求信息中从0x00开始。

用例:

  • 如果一个下载数据的TransferData请求在server中被正确接收和处理,但positive response message没有到达client,那么client将确定一个应用层超时,并将重复相同的请求(包括相同的blockSequenceCounter)。server将收到重复的TransferData请求,并可以根据所包含的blockSequenceCounter来确定这个TransferData请求是重复的。server将立即发送positive response message,而不将数据再次写入其memory中。
  • 如果server没有正确接收到下载数据的TransferData请求,那么server将不会发送positive response message。client将确定应用层超时,并重复相同的请求(包括相同的blockSequenceCounter)。server将收到重复的TransferData请求,并可以根据包含的blockSequenceCounter确定这是一个新的TransferData。server将处理该服务,并将发送positive response message。
  • 如果一个上传数据的TransferData请求被server正确接收和处理,但positive response message没有到达client,那么client将确定应用层超时,并将重复相同的请求(包括相同的blockSequenceCounter)。server将收到重复的TransferData请求,并可以根据所包含的blockSequenceCounter来确定这个TransferData请求是重复的。server将立即发送positive response message,在其内存中再次访问先前提供的数据。
  • 如果server没有正确接收到上传数据的TransferData请求,那么server将不会发送一个positive response message。client将确定应用层超时,并重复相同的请求(包括相同的blockSequenceCounter)。server将收到重复的TransferData请求,并可以根据所包含的blockSequenceCounter来确定这是一个新的TransferData。server将处理该服务并发送positive response message。

transferRequestParameterRecord传输请求参数记录

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

例子:对于下载,transferRequestParameterRecord包括要传输的数据。

3 0x36服务肯定响应消息

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

表405 - 肯定响应消息定义

A_Data byte

参数名称

Cvt

字节值

助记符

#1

TransferData Response SID

传输数据响应SID

M

0x76

TDPR

#2

blockSequenceCounter

块序列计数器

M

0x00 – 0xFF

BSC

#3

:

#n

transferResponseParameterRecord[] = [

transferResponseParameter#1

:

transferResponseParameter#m ]

C

:

U

0x00 – 0xFF

:

0x00 – 0xFF

TREPR_

TREP_

:

TREP

C = Conditional有条件的:如果上传正在进行,这个参数是强制性的。

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

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

定义

blockSequenceCounter块序列计数器

这个参数是请求信息中blockSequenceCounter参数的回显。

transferResponseParameterRecord传输响应参数记录

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

例子:对于下载,参数transferResponseParameterRecord可以包括由server计算的校验和。对于上传,参数transferResponseParameterRecord包括上传的数据。对于下载,参数transferResponseParameterRecord不应重复transferRequestParameterRecord的内容。

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

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

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

NRC

描述

助记符

0x13

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

如果消息的长度不对(例如,消息长度不符合requestDownload服务的肯定响应中返回的maxNumberOfBlockLength参数的要求),则应发送该NRC。

IMLOIF

0x24

requestSequenceError请求序列错误

server应使用此响应代码:

-如果收到对该服务的请求时,RequestDownload或RequestUpload服务未被激活;

-如果RequestDownload或RequestUpload服务处于活动状态,但server已经收到由活动的RequestDownlod或RequestUpload服务中的memorySize参数决定的所有数据;

注:server应接受重复传输数据请求消息,该消息的blockSequenceCounter等于前一个传输数据请求消息中包含的blockSequenceCounter。

RSE

0x31

requestOutOfRange请求超出范围

如果出现以下情况,则应返回该NRC:

- TransferRequestParameterRecord包含额外的控制参数(例如额外的地址信息),并且该控制信息无效。

- TransferRequestParameterRecord与requestDownload或requestUpload服务参数maxNumberOfBlockLength不一致。

- TransferRequestParameterRecord与server的memory排列限制不一致。

ROOR

0x71

transferDataSuspended转移数据暂停

如果下载模块的长度不符合requestDownload服务的请求消息中发送的memorySize参数的要求,应返回该NRC。

TDS

0x72

generalProgrammingFailure一般编程失败

如果在下载数据期间,server在erasing擦除programming编程永久存储设备(如Flash Memory)中的一个memory位置时检测到一个错误,则应返回该NRC。

GPF

0x73

wrongBlockSequenceCounter错误的块序列计数器

如果server检测到blockSequenceCounter的顺序有误,则应返回这个NRC。

注意:server应接受重复TransferData请求消息,其blockSequenceCounter等于前一个TransferData请求消息中包含的blockSequenceCounter。

WBSC

0x92 / 0x93

voltageTooHigh / voltageTooLow电压太高/电压太低

如果在server的主电源引脚上测得的电压超出了将数据下载到server的永久存储器(如Flash Memory)的可接受范围,则应视情况发送该返回代码。

VTH / VTL

评价顺序记录在图28中。

Key

1)如果正在进行RequestUpload(SI + BSC),必须是2、

2)如果正在进行RequestDownload (SI + BSC + 最小TRPR_),则至少为3。

28 - NRC处理请求下载服务

5 示例:0x36 TransferData服务消息流

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

结尾

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

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

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

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

相关文章

【C++系列P1】带上这篇基础小宝典,向特性奇多的C++进发吧!勇士们!(持续更新ing~)

前言 大家好吖,欢迎来到 YY 滴 C系列 ,热烈欢迎!(持续更新ing~)本章主要内容面向刚刚学完C语言,准备或正在接触C的老铁。而往往C奇多的小特性和知识点让铁铁们头晕晕脑涨涨,因而本章收纳了许多C中零散的知识…

跨境电商系统源码分享,解决你的电商难题

作为跨境电商领域的专家,我在这里为你分享跨境电商系统源码,帮助你解决各种电商难题!本文将为你提供全面而专业的指导,让你的电商之路更加顺畅。 为什么选择跨境电商系统源码? 跨境电商系统源码是现代电商业务管理的…

MongoDB超全语法大全

MongoDB 安装教程 一、介绍 mongodb数据库是非关系数据库,mongodb中没有表的概念,数据都是存储在集合中 易扩展: NoSQL数据库种类繁多, 但是⼀个共同的特点都是去掉关系数据库的关系型特性。 数据之间⽆关系, 这样就…

如何运行Node.js脚本及读取环境变量

目录 1、如何从CLI 运行Node.js 脚本 2、将字符串作为参数传递到节点,而不是文件路径 3、自动重新启动应用程序 4、如何从Node.js中读取环境变量 1、如何从CLI 运行Node.js 脚本 运行Node.js程序的通常方法是运行全局可用的Node命令(一旦安装Node.js…

[论文分享] When deep learning met code search

When deep learning met code search [ESEC/FSE 2019] Jos Cambronero MIT CSAIL U.S.A. Hongyu Li Facebook, Inc. U.S.A. SeohyunKim Facebook,Inc. U.S.A. KoushikSen EECSDepartment,UCBerkeley U.S.A. SatishChandra Facebook,Inc. U.S.A. 最近有多个关于使用深度神经网…

ASP.NET 未能找到类型或命名空间名称“HttpRequestMessage”

引入System.Net.Http后,运行页面还是报错 using System.Net.Http;chatGPT解释需要安装Microsoft.AspNet.WebApi.Client包,IIS安装的包文件存储在bin目录下,安装包后bin目录多出了一些列文件 运行页面后还是报错 需要在web.config配置文件…

【ISO14229_UDS刷写】-6-$34,$35,$36,$37诊断服务用于downloading下载/uploading上载数据的消息流示例

总目录:(单击下方链接皆可跳转至专栏总目录) 《UDS/OBD诊断需求编辑工具》总目录https://blog.csdn.net/qfmzhu/article/details/123697014【ISO14229_UDS刷写】-1-$34诊断服务RequestDownload理论部分https://blog.csdn.net/qfmzhu/article…

VM600 CPUR2 机架控制器和通信接口卡

VM600 CPUR2和IOCR2机架控制器和通信接口卡对是一个中央处理器(CPU)卡对,作为Meggitt振动计产品线中VM600机架机械保护系统(MPS)和/或状态监控系统(CMS)的系统控制器和数据通信网关。 注:不同版本的CPUx/IOCx框架控制器和通信接口卡对可用,如下所示: C…

初探 Compose for Wear OS:实现一个简易选择APP

前言 俗话说,人生有三大难题:早上吃啥、中午吃啥、晚上吃啥。 这个问题一度困扰着无数的人,直到一款帮你选择吃什么的神器《今天吃啥》出现,人们再也不用为了每天吃啥而犯愁了。 哈哈,以上纯属抖机灵。 最近访问谷歌…

Spring MVC数据绑定和响应

数据绑定 在程序运行时,Spring MVC接收到客户端的请求后,会根据客户端请求的参数和请求头等数据信息,将参数以特定的方式转换并绑定到处理器的形参中。Spring MVC中将请求消息数据与处理器的形参建立连接的过程就是Spring MVC的数据绑定。 …

电力监控系统在中原科技城智慧能源配电工程中的应用

摘 要:随着社会经济的快速发展,我国变电站正朝着现代化的方向不断发展,自动化设备以及继电保护装置凭借自身优异性能而获得广泛应用。本文介绍的AM5SE系列的微机保护装置,可以针对中原科技城智慧能源配电工程中不同保护对象提供对…

真无线蓝牙耳机什么牌子好?盘点五款质量好的蓝牙耳机

相信很多人都有过这样的经历,早 晚高峰像沙丁鱼般被挤在公交或地铁上,嘈杂的环境、工作的劳累让你只想听听音乐追追剧,给自己一些放松的时光。可拿出有线耳机却常常被挤掉,更有被扯到耳朵的时候。想换一款蓝牙耳机,但面…

Kubernetes 证书详解

K8S 证书介绍 在 Kube-apiserver 中提供了很多认证方式,其中最常用的就是 TLS 认证,当然也有 BootstrapToken,BasicAuth 认证等,只要有一个认证通过,那么 Kube-apiserver 即认为认证通过。下面就主要讲解 TLS 认证。 …

chatgpt赋能python:Python动作捕捉:何为动作捕捉及其应用

Python动作捕捉:何为动作捕捉及其应用 介绍 动作捕捉是一种技术,可将人或物体的运动转换为数字形式。在过去的几十年里,动作捕捉已被广泛应用于电影制作、游戏开发、医学研究等领域。 Python是一种功能强大的编程语言,已成为许…

AI 工具分享第 4 期:13 款国外免费AI视频生成工具

0. 未来百科 未来百科,是一个知名的AI产品导航网站 —— 为发现全球优质AI工具而生 。目前已 聚集全球3000优质AI工具产品 ,旨在帮助用户发现全球最好的AI工具,同时为研发AI垂直应用的创业公司提供展示窗口,迎接未来的AI时代。未来…

Revit建模|Revit风管怎么绘制?

​绘制风管是机电工程重要的一环,对于不少刚接触Revit的小伙伴来说似乎还无从下手,今天就让小编来告诉大家在Revit中绘制风管的方法。 一、在Revit绘制风管 第一步:首先我们先在revit的界面中项目文件找到风管。 第二步:打开后我…

医疗IT系统安科瑞隔离电源装置在医院的应用

【摘要】介绍该三级综合医院采用安科瑞隔离电源系统5件套,使用落地式配电柜安装方式,从而实现将TN系统转化为IT系统,以及系统绝缘情况监测。 【关键词】医用隔离电源系统;IT系统;绝缘情况监测;三级综合医院…

tektronix泰克TDS3054数字荧光示波器

tektronix TDS3054是泰克TDS3000系列示波器,它是一种新的图形界面操作模式,称为QuickMenu。这种快速访问的用户界面使得主要的示波器控制访问一个单一的按键。每一个示波器都包含一个在示波器中运行的在线巡览盘。此磁盘提供了产品的操作和功能的概述。 …

Qt与Excel:从底层原理到上层应用的全面探索

Qt与Excel:从底层原理到上层应用的全面探索 一、Qt与Excel文件的交互基础(Basics of Qt and Excel Interaction)1.1 Qt与Excel文件的基本概念(Basic Concepts of Qt and Excel Files)1.2 Qt读取Excel文件的基本方法&am…

nignx虚拟主机头配置方法

目录 一、不同ip地址访问 二、不同端口访问 三、不同域名访问 一、不同ip地址访问 步骤一:配置虚拟主机头文件 cd /etc/nginx/conf.d/ 新建一个default2.conf touch default2.conf 配置default.cof 配置如下: Listen 192.168.59.137:80; access_log …