[4.2]-AutoSAR零基础学习-XCP 测量/校准 <<2>>
4. XCP协议规范
4.1 数据包简介
4.2 数据包报文格式
5. XCP测量
5.1 异步测量(Poling)
5.2 同步测量
6 校准/标定
4. XCP协议规范
4.1 数据包简介
XCP的数据包分为两类:
指令传送对象CTO(Command Transfer Object)
数据传送对象DTO(Data Transfer Object)
如将命令按传递方向,可划分下图:
CMD:指的是上位机下发给下位机的一些命令,比如连接命令FF,解锁,获取状态等一些和下位机交互的命令;
STIM:你可以理解为一种上位机向下位机大量发数据的一种方式,相当于反向的DAQ;用于数据标定时,上位机向下位机修改参数。
Response:肯定应答,指的下位机答复上位机的命令;
Error:否定应答上位机的命令;
Event:事件,指下位机发生某事件时通知上位机;
Service:指下位机在某些情况下,需要上位机执行一些动作,可理解为请求上位机服务。
DAQ:下位机上传数据给上位机。
4.2 数据包报文格式
XCP帧的格式,包含帧头帧尾+XCP数据包。XCP帧支持的传输层可将这三个帧元素映射到相应的传输帧格式。
以下为基于CAN传输层的XCP on CAN。
CTO与DTO报文XCP Packet包格式如下:
PID是标识字段的一部分,用于标记数据包及数据包内部的数据值。比如:
主结点对从结点进行XCP控制时使用“命令(CMD)”,此时的PID在“0xC0”到“0xFF”的范围内。
从结点对这个命令返回肯定应答的情况下,使用“应答(RES)”,此时PID变为“0xFF”。
5. XCP测量
参数测量本质上是作为主设备对从设备的请求而实现的:“读取存储位置0x1234的值”。按测量方式可分为异步测量与同步测量。
5.1 异步测量(Poling)
即Poling模式,Poling是最简单的测量方法:基于CTO。对需要采集的变量进行挨个轮询。
主站可以使用SHORT_UPLOAD命令从从站请求测量参数的值。这称为轮询。这是最简单的测量情况:在已接收并执行SHORT_UPLOAD命令时发送测量参数的测量值。
异步测量是使用主结点发送的命令,通过指定的XCP地址来提取从结点的ECU内部的数据,并通过从结点的应答将该数据传送给主结点,如此循环往复来实现的。为了取出数据,使用PID为“0xF4”的命令“SHORT_UPLOAD”。这个命令和应答的格式如下所述。
5.2 同步测量
异步测量,主结点决定测量时间。为使测量时机与ECU的控制相匹配,必须由ECU确定测量时机,在数据取出后由从结点发送到主结点,通过DTO来完成。
主结点在进行同步测量前,通过命令指定要取出的数据的XCP地址,从结点等到同步测量开始命令后,使用DTO发送到主结点。因此,在同步测量的情况下,不是通过命令和应答的组合,而是通过测量周期或事件,由从结点发送DTO报文到主结点。
6 校准/标定
校准是为了重写ECU内部软件中的参数,主结点发送指定XCP地址和重写数据的命令,从结点导出适当的参数地址、执行重写,并返回一个应答。简单的说 就是将从节点的某个地址的值改为指定的值。
[4.2]-AutoSAR零基础学习-XCP 测量/校准 <<2>>相关推荐
- [0.0]-AutoSAR零基础学习-专栏介绍
前言 年前公司业务变动,博主有幸参加了车载相关的开发任务,负责cdd中的某个模块,由于之前没有接触过AutoSAR,项目前期比较难受,目前项目也接近尾声了,打算把这一路的学习过程记录下来,和大家一 ...
- [2.5]-AutoSAR零基础学习-AutoSAR解决方案
目录 1 etas autoSAR系统解决方案 2 INTEWORK-EAS 3 vector解决方案 4 本文解决方案 4.1 使用Matlab/Simulink来实现部分软件组件级的开发 4.2 ...
- [4.3]-AutoSAR零基础学习-Bsw-NvM学习 <上>
目录 1 AutoSAR Memory Stack 1.1 内存栈结构 1.2 NV 数据的存储方式 1.3 NV数据的读写 2 NvM功能介绍 2.1 NvM与其他模块的关系 2.2 NvM数据操作 ...
- 抛物线的中点生成算法_零基础学习梯度下降算法
零基础学习梯度下降算法 作者:Philipp Muens 翻译:老齐 与本文相关的图书推荐:<数据准备和特征工程> 梯度下降法是机器学习中最基本的优化技术之一.那么,什么是梯度? 下降的是 ...
- 零基础学习深度学习_深度学习的基础!!!
零基础学习深度学习 The ability to learn from experience and perform better when confronted with similar chall ...
- 无线通信零基础学习记录(2)——GSM空中接口物理层的设计
无线通信零基础学习记录(2)--GSM空中接口物理层的设计 本章解释清楚了之前未搞懂的名词,如时隙等,以及各种信道类型,在此一并总结. TDMA空中接口技术 时分多址(TDMA,Time Divisi ...
- 零基础学习openstack【完整中级篇】及openstack资源汇总
1.你是如何学习openstack的? 2.你对openstack的组件了解多少? 3.你认为openstack该如何学习? 一直想写关于openstack的方面的内容,今天终于整理完成.算是完成一桩 ...
- ue5新手零基础学习教程 Unreal Engine 5 Beginner Tutorial - UE5 Starter Course
ue5新手零基础学习教程 Unreal Engine 5 Beginner Tutorial - UE5 Starter Course! 教程大小解压后:4.96G 语言:英语+中英文字幕(机译)时长 ...
- 0基础学好python难不难_零基础学习Python难不难?Python有什么优势?
原标题:零基础学习Python难不难?Python有什么优势? Python是一种计算机程序设计语言.首先,我们普及一下编程语言的基础知识.用任何编程语言来开发程序,都是为了让计算机干活,比如下载一个 ...
- Java零基础学习难吗
java编程是入行互联网的小伙伴们大多数的选择,那么对于零基础的小伙伴来说Java零基础学习难吗?如果你是初学者,你可以很好的理解java编程语言.并不困难.如果你的学习能力比较高,那么你对Java的 ...
最新文章
- 2018.90.20列表
- AJAX ASP/PHP 请求实例
- 博客页面运行代码demo测试
- 俊鸟的数据输入校验专题(三) WPF 的五种输入校验概述
- 3、数据类型一:strings
- 一个即将步入运维的菜虫内心
- [Vulhub](WooYun-2016-199433)phpmyadmin反序列化漏洞
- DjangoORM字段介绍
- 白盒测试 | 用例设计方法之语句覆盖
- autocaddesk之 autocad2014的安装
- 很久没来这里,今天的评测java怪东西,左右Date类和时间戳转换
- ​学习C语言的知识点整理
- jQuery中文文档(jQuery 3.1 参考手册+jQuery.api.3.2.1)
- volatility内存取证分析与讲解(持续更新)
- 时间序列 预处理 python_时间序列算法理论及python实现(1-算法理论部分)
- 全球最受欢迎电商平台有哪些?这些平台怎么快速增加销量?
- 20145240 《信息安全系统设计基础》第六周同学问题总结
- Python利用马青公式计算圆周率Π并写入文件
- 中国国际货代行业市场运营规划及发展潜力研究报告2022年版
- usaco 奶牛集会 奶牛抗议
热门文章
- C# 身份证号码验证正则和验证函数
- 《web安全深度剖析》——信息探测and漏洞扫描
- python 百度地图api热力图,Python+百度API 画出美美哒热力地图(代码+数据)
- c语言方波生成程序,关于C#:在软件上生成方波以进行模拟输入/输出
- Vagrant 安装 Centos7
- Linux下载HTTP文件
- MySQL Enterprise Backup使用简介
- 论文阅读|Cascade R-CNN
- android获取全部ram和rom,手机中的RAM和ROM,你懂得多少?
- mysql中exists的用法详解