【AUTOSAR】CCP协议的代码分析与解读(四)----CCP协议数据下载和上传

2023-11-08

  1. 数据下载(DNLOAD)

DNLOAD指令负责将CRO中的数据下载到ECU中,起始地址为先前设定的MTA0,下载完毕后MTA0指针自增,自增的字数为下载的字节数。DNLOAD命令的CRO数据场结构,如下所示。

位  置

类  型

描  述

0

字节

命令代码=0x03(DNLOAD)

1

字节

命令序号=CTR

2

字节

下载数据大小(字节数)

3~7

字节

下载数据(最多为5个字节)

针对DNLOAD命令返回DTO的数据场结构,如下所示。

位  置

类  型

描  述

0

字节

Packet ID:0xFF

1

字节

命令返回代码=ERR

2

字节

命令序号=CTR

3

字节

MTA0偏移量(自增后)

4~7

字节

MTA0地址(自增后)

例如,主设备向从设备发送DNLOAD命令,当前CTR为0x23,需下载的数据块大小为5个字节,所需下载的数据为0x10,0x11,0x12,0x13,0x14,如下所示。

byte

0

1

2

3

4

5

6

7

0x03

0x23

0x05

0x10

0x11

0x12

0x13

0x14

从设备返回TDO,包括确认代码ERR(0x00)、CTR(0x23)、MTA的偏移(0x02)及自增后当前的MTA0地址,如下所示。

byte

0

1

2

3

4

5

6

7

0xFF

0x00

0x23

0x02

0x34

0x00

0x20

0x05

由返回DTO可知,执行该命令前MTA0为0x34002000,执行命令后MTA0自动增加了5个字节。

2.字节数据下载(DNLOAD_6)

该命令功能与DNLOAD命令相同,区别在于DNLOAD命令一次下载数据可为1~5各字节不等,DNLOAD_6下载固定为6字节大小的数据,起始地址为MTA0,下载结束后MTA0指针会自增6个字节。DNLOAD_6的CRO数据场结构如下所示。

位  置

类  型

描  述

0

字节

命令代码=0x23(DNLOAD_6)

1

字节

命令序号=CTR

2~7

字节

下载的数据(最多为6个字节)

针对DNLOAD_6命令返回DTO的数据场结构,如下所示。

位  置

类  型

描  述

0

字节

Packet ID:0xFF

1

字节

命令返回代码=ERR

2

字节

命令序号=CTR

3

字节

MTA0偏移量(自增后)

4~7

字节

MTA0地址(自增后)

例如,主设备向从设备发送DNLOAD_6命令,当前CTR为0x23,需下载的数据块大小为6个字节,所需下载的数据为0x10,0x11,0x12,0x13,0x14,如下所示。

byte

0

1

2

3

4

5

6

7

0x03

0x23

0x10

0x11

0x12

0x13

0x14

0x15

从设备返回TDO,包括确认代码ERR(0x00)、CTR(0x23)、MTA的偏移(0x02)及自增后当前的MTA0地址,如下所示。

byte

0

1

2

3

4

5

6

7

0xFF

0x00

0x25

0x02

0x34

0x00

0x20

0x06

由返回DTO可知,执行该命令前MTA0为0x34002000,执行命令后MTA0自动增加了6个字节。

​​​​​​​3.数据上传(UPLOAD)

主设备通过UPLOAD命令,请求从设备以MTA0为起始地址,将命令中规定字节数的数据上传。随后MTA0指针自动增加相应的字节数(上传的字节数)。UPLOAD命令的CRO数据场结构,如下所示。

位  置

类  型

描  述

0

字节

命令代码=0x04(DNLOAD)

1

字节

命令序号=CTR

2

字节

请求上传的数据大小(字节数)

3~7

字节

无效

针对UPLOAD命令返回DTO的数据场结构,如下所示。

位  置

类  型

描  述

0

字节

Packet ID:0xFF

1

字节

命令返回代码=ERR

2

字节

命令序号=CTR

3~7

字节

所请求的数据

例如,主设备向从设备发送DPLOAD命令,当前CTR为0x23,请求以MTA0为起始地址,上传4个字节的数据,如下所示。

byte

0

1

2

3

4

5

6

7

0x04

0x23

0x04

--

--

--

--

--

从设备返回TDO,包括确认代码ERR(0x00)、CTR(0x23),如下所示。

byte

0

1

2

3

4

5

6

7

0xFF

0x00

0x23

0x10

0x11

0x12

0x13

--

备注:该命令返回的DTO不向主设备汇报自增后的MTA0地址。

​​​​​​​​​​​​​​4.数据短上传(SHORT_UP)

该命令的功能同UPLOAD命令,同样用于主设备要求从设备上传数据。区别在于UOLOAD命令中上传数据的起始地址是MTA0,SHORT_UP中的起始地址由命令本身指定,从设备按该起始地址上传数据,上传后MTA0指针保持不变。SHORT_UP命令的CRO数据场结构如下所示。

位  置

类  型

描  述

0

字节

命令代码=0x0F(SHORT_UP)

1

字节

命令序号=CTR

2

字节

请求上传的数据大小(字节数1~5)

3

字节

地址偏移量

4~7

无符号长整型

地址

针对SHOPT_UP命令返回DTO的数据场结构,如下所示。

位  置

类  型

描  述

0

字节

Packet ID:0xFF

1

字节

命令返回代码=ERR

2

字节

命令序号=CTR

3~7

字节

所请求的数据

例如,主设备向从设备发送SHORT_UP命令,当前CTR为0x23,所要上传数据长度为4个字节,起始地址为0x12345678,如下所示。

byte

0

1

2

3

4

5

6

7

0x0F

0x23

0x04

0x00

0x12

0x34

0x56

0x78

从设备返回TDO,包括确认代码ERR(0x00)、CTR(0x23)及所请求的数据,如下所示。

byte

0

1

2

3

4

5

6

7

0xFF

0x00

0x23

0x10

0x11

0x12

0x13

--

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【AUTOSAR】CCP协议的代码分析与解读(四)----CCP协议数据下载和上传 的相关文章

  • 6.6开发社区搜索功能

    业务层 新建ElasticsearchService类 package com nowcoder community service import com nowcoder community dao elasticsearch Discu

随机推荐

  • 【电源】DC-DC电路中的伏秒平衡原理

    上一篇我们科普了开关电源 在提到的开关电源中我们常用也就DC DC电路 所以从今天开始将进入到我们的DC DC电路专题 在DC DC电路应用中 我们很多工程师比较难理解BUCK BOOST的升降压区别 或者原理看完就忘又区分不开 那是因为没
  • window子系统使用及问题汇总

    window子系统使用及问题汇总 安装 配置子系统的资源大小 切换默认源 安装docker 解决wsl无法使用systemctl的问题 子系统访问windows系统中的文件 window访问子系统的文件 总结 最近在使用windows上的d
  • nginx vue2+webpack 和 vue3+vite 配置二级目录访问

    我们开发中会遇到这样的需求 让我们用服务器nginx部署一个用域名的二级目录来访问项目 https xxx 二级目录 来放访问项目 目录 思路 1 nginx配置 vue2 和 vue3配置的nginx相同 2 vue2 webpack的配
  • 如何在IDEA设置Java类和方法的注释模板?

    如何在IDEA设置Java类和方法的注释模板 1 类的注释模板设置 首先我们打开IDEA软件 进行如下操作 File gt Settings gt Editor gt File and Code Templates 设置好后 当我们再次创建
  • 磁盘性能基本测试方法

    author skate time 2011 08 22 磁盘性能基本测试方法 dd if dev zero of tmp bs 1M count 10 用dd命令测试瞬间写的能力 iozone a i 1 i 0 c g 5M n 1M
  • PC电脑版微信聊天记录迁移方法

    微信电脑版自带的 备份与恢复 功能 只能把手机上的聊天记录 备份在电脑上 仅仅是备份 是不能在微信电脑版上查看刚备份的聊天记录的 备份后就可以删除手机上的聊天记录 需要的时候再用电脑版留存的备份恢复到手机上 适用场景 可自行琢磨 微信手机版
  • config:invalid signature

    之前服务器换了IP 啥都配置对了 就是IP没改过来 好了 又是花了半天时间排查问题 问题解决 微信config invalid signature 的其中一个错误就是ip地址问题 需在公众号后台 gt 基本配置 gt 设置IP白名单 欢迎关
  • Python time time()方法返回的是秒

    描述 Python time time 返回当前时间的时间戳 1970纪元后经过的浮点秒数 语法 time 方法语法 time time 参数 NA 返回值 返回当前时间的时间戳 1970纪元后经过的浮点秒数 实例 以下实例展示了 time
  • Linux目录操作命令

    1 查看目录命令 ls 用法 ls 选项 目录名 常用选项 a 显示所有文件 包含隐藏文件 l 显示长文件信息 案例 查看 user下的所有文件 ls a user ls 文件或目录路径信息 ls d 查看目录信息 ls l 文件或目录信息
  • Unity Shader入门精要文章目录

    前言 从今天开始 我将每天开始学习一些有关于Shader的知识 并把所学到的知识简化 写成文章来供大家参考或者学习 一方面是为了巩固知识 另一方面是我也没有找到什么系统的文章来学习Shader的知识 我的Shader学习大部分是参考了Uni
  • GDI+ 中路径类使用总结

    背景 路径是一系列相互连接的直线和曲线 由许多不同类型的点所构成 用于表示复杂的不规则图形 GraphicsPath 类表示 要绘制一组图形 如线条 矩形 多边形和曲线等 可以通过 Graphcis 类的 DrawPath 方法一次性绘制
  • 《Python进阶系列》二十六:面试题目:[lambda x: x*i for i in range(4)]

    quad quad 闲着无聊 看了道面试题 瞬间涨姿势了 特地做个总结 题目 题目如下 lst lambda x x i for i in range 4 res m 2 for m in lst print res 上述式子的输出结果 预
  • VirtualBox中出现 UUID have already exists : 修改 UUID

    VirtualBox中出现UUID have already exists 解决方法 要点 C Program Files Oracle VirtualBox VBoxManage exe internalcommands sethduui
  • C++——vector

    文章目录 vector的介绍 vector的使用 为什么vector不提供find 排序 sort vector的模拟实现 搭一个最简单的架子 构造函数和析构函数 尾插 尾删 operator 迭代器 insert erase 迭代器失效
  • [caffe安装]配置环境过程中出现的问题及解决

    今天要跑一下Convolutional Autoencoder for Loop Closure 轻量级神经网络闭环方法 caffe安好之后编译程序出现以下错误 Scanning dependencies of target deeplcd
  • React 之常用组件类型

    无状态组件 主要用于内部没有状态更新操作的组件 同构props进行基本的数据渲染或常量展示 该类组件职责单一 有利于组件的高复用 const PureComponent props gt div props list map txt ind
  • 金融市场概览

    文章目录 金融市场的功能 金融市场的分类 主要金融机构 中国金融市场概况 本文简要展现真实世界中的金融市场的面貌 介绍其基本结构 主要玩家 交易的主要资产 以及主要的业务形式 金融市场的功能 金融是通过交易金融资产来实现资金通融 很容易想到
  • Qt学习笔记3:Qt工程的目录结构

    经过前两篇的学习 已经可以使用Qt空项目模板创建自己的工程了 通过本篇的学习 整理一下如果使用Qt工程的目录结构 使项目更规范和容易管理 当前的目录结构 如图所示 这是前篇中创建的工程 只有main cpp和widget cpp widge
  • postman-接口批量执行、接口串联

    一 接口批量执行 1 点击postman左侧Collections下面有个添加文件夹图标 就可以创建测试项目 2 该目录下还可以创建子目录 进行测试用例的细分 3 创建测试用例 创建接口测试用例 即新建http请求 选择请求方式 写好url
  • 【AUTOSAR】CCP协议的代码分析与解读(四)----CCP协议数据下载和上传

    数据下载 DNLOAD DNLOAD指令负责将CRO中的数据下载到ECU中 起始地址为先前设定的MTA0 下载完毕后MTA0指针自增 自增的字数为下载的字节数 DNLOAD命令的CRO数据场结构 如下所示 位 置 类 型 描 述 0 字节