【ISO14229_UDS刷写】-2-$35诊断服务RequestUpload理论部分

news2024/11/25 10:39:42

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

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

目录

1 $0x35 RequestUpload诊断服务描述

2 0x35服务请求消息

2.1 0x35服务请求消息定义

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

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

3 0x35服务肯定响应消息

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

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

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

5 示例:0x35 RequestUpload服务消息流

附录:H.1 addressAndLengthFormatIdentifier示例值

结尾


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

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

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

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

RequestUpload0x35 service请求上传服务

服务

SID

描述

RequestUpload

请求上传

0x35

client请求协商从server到client的数据传输。

1 $0x35 RequestUpload诊断服务描述

RequestUpload服务由client使用,以启动从server到client的数据传输(上传)。

在server收到requestUpload请求消息后,server应采取所有必要的行动来发送数据,然后再发送一个positive response message肯定响应消息

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

2 0x35服务请求消息

2.1 0x35服务请求消息定义

表398 - 请求消息定义

A_Data byte

参数名称

Cvt

字节值

助记符

#1

RequestUpload Request SID

请求上传请求SID

M

0x35

RU

#2

dataFormatIdentifier

数据格式标识符

M

0x00 – 0xFF

DFI_

#3

addressAndLengthFormatIdentifier

地址和长度格式标识符

M

0x00 – 0xFF

ALFID

#4

:

#(m-1)+4

memoryAddress[] = [

byte#1 (MSB)

:

byte#m ]

M

:

C1

0x00 – 0xFF

:

0x00 – 0xFF

MA_

B1

:

Bm

#n-(k-1)

:

#n

memorySize[] = [

byte#1 (MSB)

:

byte#k ]

M

:

C2

0x00 – 0xFF

:

0x00 – 0xFF

MS_

B1

:

Bk

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

C2:该参数的存在取决于addressAndLengthFormatIdentifier的memory size长度信息。

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

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

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

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

定义

dataFormatIdentifier数据格式标识符

这个数据参数是一个字节的值,每个nibble单独编码。高位的nibble指定 " compressionMethod压缩方法",low nibble指定 " encryptingMethod加密方法"。值0x00指定既不使用compressionMethod也不使用encryptingMethod。除了0x00以外的值是由vehicle manufacturer汽车制造商决定的。

addressAndLengthFormatIdentifier地址和长度格式标识符

这个参数是一个字节的值,每个nibble单独编码(见H.1的示例值):

位7 - 4: memorySize参数的长度(字节数)

位3 - 0: memoryAddress参数的长度(字节数)。

memoryAddress内存地址

参数memoryAddress是server memory的起始地址,数据将从这里被检索出来。用于该地址的字节数由addressAndLengthFormatIdentifier的low nibble(bit 3 - 0)定义。memoryAddress参数中的Byte#m总是在server中被引用的地址中LSB(least significant byte)。地址中MSB(most significant byte)可以作为memory identifier使用。

一个使用memory identifier的例子是一个具有16位寻址和memory address重叠的双processor server。(当一个给定的地址对任何一个处理器都有效,但产生了不同的physical memory device或使用了内部和外部flash)。在这种情况下,memoryAddress参数中一个未使用的字节可以被指定为memory identifier,用于选择所需的memory device。该功能的使用应按照车辆制造商/系统供应商的规定。

memorySize内存大小

这个参数应被server用来比较memory size和TransferData服务期间传输的数据总量。这增加了programming编程的安全性。用于该大小的字节数由addressAndLengthFormatIdentifier的high nibble(bit 4)定义。如果使用了数据压缩,memory size是否代表压缩或未压缩的大小是由车辆制造商决定的。

3 0x35服务肯定响应消息

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

表400 - 肯定响应消息定义

A_Data byte

参数名称

Cvt

字节值

助记符

#1

RequestUpload Response SID

请求上传响应SID

M

0x75

RUPR

#2

lengthFormatIdentifier

M

0x00 – 0xF0

LFID

#3

:

#n

maxNumberOfBlockLength = [

byte#1 (MSB)

:

byte#m ]

M

:

M

0x00 – 0xFF

:

0x00 – 0xFF

MNROB_

B1

:

Bm

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

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

定义

lengthFormatIdentifier长度格式标识符

这个参数是一个字节的值,每个nibble单独编码:

位7-4:maxNumberOfBlockLength参数的长度(字节数)。

位3-0:由文件保留,要设置为'0'。

该参数的格式与请求信息中包含的addressAndLengthFormatIdentifier参数的格式兼容,只是lower nibble必须被设置为'0'。

maxNumberOfBlockLength最大块长度

这个参数被RequestUpload肯定响应消息用来通知client在server的每个TransferData肯定响应消息中包含多少数据字节。这个长度反映了完整的消息长度,包括TransferData肯定响应消息中的service identifier和data-parameter。这个参数允许client在server开始向client传输数据之前适应server的发送缓冲区大小。client需要接受长度与报告的maxNumberOfBlockLength相同的transferData响应。发送哪些长度小于maxNumberOfBlockLength的transferData响应(如果有的话)是由server决定的。

注意:一个给定block块中的最后一个transferData响应可能被要求小于maxNumberOfBlockLength。

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

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

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

NRC

描述

助记符

0x13

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

如果信息的长度有误,则应发送该NRC。

IMLOIF

0x22

conditionsNotCorrect条件不正确

如果不符合requestUpload的标准,将返回这个NRC。如果server在requestUpload已经激活但尚未完成的情况下收到该服务的请求,就会发生这种情况。

CNC

0x31

requestOutOfRange请求超出范围

如果出现以下情况,将返回这个NRC:

指定的dataFormatIdentifier是无效的。

指定的addressAndLengthFormatIdentifier是无效的。

指定的memoryAddress/memorySize是无效的。

ROOR

0x33

securityAccessDenied安全访问被拒绝

如果在收到对该服务的请求时,server是安全的(对于支持SecurityAccess服务的server),应返回这个NRC。

SAD

0x70

uploadDownloadNotAccepted上传下载不被接受

该NRC表明,由于某些故障条件,无法完成向server的memory下载的尝试。

UDNA

评价顺序记录在图27中。

Key

1)至少5个(SI+DFI_+ALFID+最小MA_+最小MS_)。

2)长度可以从addressAndLengthFormatIdentifier中计算出来。

27 - NRC处理请求下载服务

5 示例:0x35 RequestUpload服务消息流

附录:H.1 addressAndLengthFormatIdentifier示例值

表 H.1 包含 addressAndLengthFormatIdentifier 的high和low nibble的值组合示例。需要考虑以下几点:

⎯对于“manageable memorySize”或“memoryAddress range”标记为“not applicable”的值,不允许使用,并且必须通过否定响应消息被server拒绝。

⎯此参数允许具有适用的“manageable memorySize”和“memoryAddress range”的值。

表H.1 - addressAndLengthFormatIdentifier示例

Byte Value

Description

bit 7-4 (high nibble) number of memorySize bytes

bit 3-0 (low nibble) number of memoryAddress bytes

bytes used for memorySize parameter

manageable size

bytes used for memoryAddress parameter

addressable memory

0x00

not applicable

not applicable

not applicable

not applicable

0x01

not applicable

not applicable

1

256 Byte - 1

0x02

not applicable

not applicable

2

64 KB - 1

0x03

not applicable

not applicable

3

16 MB - 1

0x04

not applicable

not applicable

4

4 GB - 1

0x05

not applicable

not applicable

5

1,024 GB - 1

0x06 – 0x0F

:

:

:

:

0x10

1

256 Byte

not applicable

not applicable

0x11

1

256 Byte

1

256 Byte – 1

0x12

1

256 Byte

2

64 KB – 1

0x13

1

256 Byte

3

16 MB – 1

0x14

1

256 Byte

4

4 GB – 1

0x15

1

256 Byte

5

1,024 GB – 1

0x16 – 0x1F

:

:

:

:

0x20

2

64 KB

not applicable

not applicable

0x21

2

64 KB

1

256 Byte – 1

0x22

2

64 KB

2

64 KB – 1

0x23

2

64 KB

3

16 MB – 1

0x24

2

64 KB

4

4 GB – 1

0x25

2

64 KB

5

1,024 GB – 1

0x26 – 0x2F

:

:

:

:

0x30

3

16 MB

not applicable

not applicable

0x31

3

16 MB

1

256 Byte – 1

0x32

3

16 MB

2

64 KB – 1

0x33

3

16 MB

3

16 MB – 1

0x34

3

16 MB

4

4 GB – 1

0x35

3

16 MB

5

1,024 GB – 1

0x36 – 0x3F

:

:

:

:

0x40

4

4 GB

not applicable

not applicable

0x41

4

4 GB

1

256 Byte – 1

0x42

4

4 GB

2

64 KB – 1

0x43

4

4 GB

3

16 MB – 1

0x44

4

4 GB

4

4 GB – 1

0x45

4

4 GB

5

1,024 GB - 1

0x46 -0xFF

:

:

:

:

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

结尾

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

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

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

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

相关文章

2022中国大学生程序设计竞赛(CCPC)高职专场

一,期望 题意: 初始时你有1−n这n个正整数和一个空的序列,你准备玩一个往序列中加数字的无聊游戏。游戏进行n轮,在游戏的每一轮中你要向序列尾部加入一个还未被加入的数,最终的序列将会是一个长度为n的排列。在某一轮游戏开始前…

五、Docker仓库之https的registry搭建(二)

本节我们分享更多的实用的仓库搭建使用方式。包括支持https的registry、Harbor、nexus。 支持HTTPS的registry 准备站点证书(测试使用,用一个自己的测试域名,配置本地hosts) 如果你拥有一个公网域名,那很好&#xff…

ESP-01模块刷固件

ESP-01模块刷固件 0.前言一、准备二、烧写1.接线2.软件设置3.检验 0.前言 最近需要用esp-01模块作为wifi模块上云,但由于出厂自带固件太过老旧,经常会出现奇奇怪怪的警告,所以记录下如何给ESP-01刷写较新的固件。 一、准备 需要准备三个东西…

Python之并发编程一背景知识

一、开篇介绍 顾名思义,进程即正在执行的一个过程。进程是对正在运行程序的一个抽象。 进程的概念起源于操作系统,是操作系统最核心的概念,也是操作系统提供的最古老也是最重要的抽象概念之一。操作系统的其他所有内容都是围绕进程的概念展…

大型软件外包开发管理工具

大型软件项目涉及人员多,软件代码量大,业务复杂,因此需要借助软件工程的管理工具进行管理,否则容易隐入混乱。今天和大家分享这些工具,这些工具比较实用,在实际工作中使用广泛,希望对大家有所帮…

Linux常规基础配置

通过VMware成功安装RHEL7服务器后,为了能够正常使用,需要对其进行常规的一些基础配置,主要有:关闭防火墙与selinux,设置主机名,配置虚拟机IP地址使其能够与外网ping通,配置IP地址与主机名映射&a…

从小白到大神之路之学习运维第29天

第二阶段基础 时 间:2023年5月25日 参加人:全班人员 内 容: Apache服务 目录 一、基本信息 二、安装方法 三、配置方法 四、虚拟主机头 1:基于不同的IP地址 2:基于不同的端口 3:基于不同的域…

SQL 教程(2)

SQL 函数 SQL 拥有很多可用于计数和计算的内建函数。 SQL Aggregate 函数 SQL Aggregate 函数计算从列中取得的值,返回一个单一的值。 有用的 Aggregate 函数: AVG() - 返回平均值COUNT() - 返回行数FIRST() - 返回第一个记录的值LAST() - 返回最后…

C++回调函数理解

C回调函数理解 0.引言1.回调函数的实现方式2.普通函数以函数指针的形式进行实现3.类成员函数以静态函数进行实现4.类成员函数以非静态函数进行实现5.std::funtion和std::bind的使用6.c回调的实现7.应用实例 0.引言 看了一些介绍感觉太官方了,我的简单理解就是从模式…

3D点云深度学习处理的基本概念

权重矩阵更新学习方法概述 参数初始化: 需要对权重矩阵初始化参数(通常使用随机初始化方法,如正态分布或者均匀分布生成随机数) 前向传播: 前向传播中,模型计算权重矩阵和输入数据的结果,得…

第1关:JDBC程序设计

第1关:JDBC程序设计 任务描述相关知识JDBC程序设计JDBC主要功能JDBC主要接口和函数JDBC应用程序开发实例编程要求代码参考 任务描述 本关任务:使用 JDBC 往表中插入数据。 相关知识 为了完成本关任务,你需要掌握: 1.JDBC 主要功…

SM3_CNC,轴组,G代码解析,CNC运动控制

硬件要求: 中型PLC(汇川AM600,禾川HCQ0),且带 SM3_CNC.library 库(3.5.6支持离线仿真) G代码标准: DIN66025 DIN66025-1标准G0 运动定位 G1 线性插补 G2 顺圆插补 G3 …

决策树案例以及决策树可视化

一、案例背景 泰坦尼克号沉没是历史上最臭名昭著的沉船之一。1912年4月15日,在她的处女航中,泰坦尼克号在与冰山相撞后沉没,在2224名乘客和机组人员中造成1502人死亡。在这个案例中,我们要求完成对哪些人可能存活的分析。特别是&…

【C++系列Pn】引用——背刺指针的神秘刺客“吃我一棍”

前言 大家好吖,欢迎来到 YY 滴 C系列 ,热烈欢迎!如标题所示,本章主要内容主要来侃侃“引用”这个刺客!如下就是大纲啦~ 一.引用 1.含义与特点 引用,即取别名。它的最大特点是编译器不会为引用变量而开辟空间…

202313读书笔记|《山居七年》————我只想在广袤璀璨的星河里享受生的鲜活,独自飞,游走

202313读书笔记|《山居七年》————我只想在广袤璀璨的星河里享受生的鲜活,独自飞,游走 《山居七年》 作者张二冬,选择隐士山居是一种很自由随性的生活态度,我觉得这不是普通人可以拥有的,比如我,并未入…

Office project 2007安装

哈喽,大家好。今天一起学习的是project 2007的安装,Microsoft Office project项目管理工具软件,凝集了许多成熟的项目管理现代理论和方法,可以帮助项目管理者实现时间、资源、成本计划、控制。有兴趣的小伙伴也可以来一起试试手。…

xmind思维导图转成禅道测试用例

xmind思维导图用来编写用例胜在效率高,可以快速的理清楚需求。缺点在于没法上传禅道,但是公司有要求每次迭代要有禅道的测试用例。直接写禅道的测试用例的话,又很耗时,效率低下,与提高人效的公司年度战略不符&#xff…

apache虚拟主机头的实现方式

目录 一:基于不同的IP地址 二:基于不同的端口 三:基于不同的域名 一:基于不同的IP地址 步骤一:修改主配置文件 vim /usr/local/apache/conf/httpd.conf 声明监听不同的IP地址的80端口 Listen 192.168.2.20:80 Listen…

ChatGPT工作提效之使用python开发对接百度地图开放平台API的实战方案(批量路线规划、批量获取POI、突破数量有限制、批量地理编码)

ChatGPT工作提效系列文章目录 ChatGPT工作提效系列 ChatGPT工作提效之初探路径独孤九剑遇强则强ChatGPT工作提效之在程序开发中的巧劲和指令(创建MySQL语句、PHP语句、Javascript用法、python的交互)ChatGPT工作提效之生成开发需求和报价单并转为Excel格式ChatGPT工作提效之小…

URLConnection(四)

文章目录 1. 配置客户端请求HTTP首部2. 向服务器写入数据3. URLConnection的安全考虑4. HttpURLConnection 1. 配置客户端请求HTTP首部 HTTP客户端(如浏览器)向服务器发送一个请求行和一个首部,如下: web服务器可以根据这个信息…