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>>相关推荐

  1. [0.0]-AutoSAR零基础学习-专栏介绍

    前言   年前公司业务变动,博主有幸参加了车载相关的开发任务,负责cdd中的某个模块,由于之前没有接触过AutoSAR,项目前期比较难受,目前项目也接近尾声了,打算把这一路的学习过程记录下来,和大家一 ...

  2. [2.5]-AutoSAR零基础学习-AutoSAR解决方案

    目录 1 etas autoSAR系统解决方案 2 INTEWORK-EAS 3 vector解决方案 4 本文解决方案 4.1 使用Matlab/Simulink来实现部分软件组件级的开发 4.2 ...

  3. [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数据操作 ...

  4. 抛物线的中点生成算法_零基础学习梯度下降算法

    零基础学习梯度下降算法 作者:Philipp Muens 翻译:老齐 与本文相关的图书推荐:<数据准备和特征工程> 梯度下降法是机器学习中最基本的优化技术之一.那么,什么是梯度? 下降的是 ...

  5. 零基础学习深度学习_深度学习的基础!!!

    零基础学习深度学习 The ability to learn from experience and perform better when confronted with similar chall ...

  6. 无线通信零基础学习记录(2)——GSM空中接口物理层的设计

    无线通信零基础学习记录(2)--GSM空中接口物理层的设计 本章解释清楚了之前未搞懂的名词,如时隙等,以及各种信道类型,在此一并总结. TDMA空中接口技术 时分多址(TDMA,Time Divisi ...

  7. 零基础学习openstack【完整中级篇】及openstack资源汇总

    1.你是如何学习openstack的? 2.你对openstack的组件了解多少? 3.你认为openstack该如何学习? 一直想写关于openstack的方面的内容,今天终于整理完成.算是完成一桩 ...

  8. ue5新手零基础学习教程 Unreal Engine 5 Beginner Tutorial - UE5 Starter Course

    ue5新手零基础学习教程 Unreal Engine 5 Beginner Tutorial - UE5 Starter Course! 教程大小解压后:4.96G 语言:英语+中英文字幕(机译)时长 ...

  9. 0基础学好python难不难_零基础学习Python难不难?Python有什么优势?

    原标题:零基础学习Python难不难?Python有什么优势? Python是一种计算机程序设计语言.首先,我们普及一下编程语言的基础知识.用任何编程语言来开发程序,都是为了让计算机干活,比如下载一个 ...

  10. Java零基础学习难吗

    java编程是入行互联网的小伙伴们大多数的选择,那么对于零基础的小伙伴来说Java零基础学习难吗?如果你是初学者,你可以很好的理解java编程语言.并不困难.如果你的学习能力比较高,那么你对Java的 ...

最新文章

  1. 2018.90.20列表
  2. AJAX ASP/PHP 请求实例
  3. 博客页面运行代码demo测试
  4. 俊鸟的数据输入校验专题(三) WPF 的五种输入校验概述
  5. 3、数据类型一:strings
  6. 一个即将步入运维的菜虫内心
  7. [Vulhub](WooYun-2016-199433)phpmyadmin反序列化漏洞
  8. DjangoORM字段介绍
  9. 白盒测试 | 用例设计方法之语句覆盖
  10. autocaddesk之 autocad2014的安装
  11. 很久没来这里,今天的评测java怪东西,左右Date类和时间戳转换
  12. ​学习C语言的知识点整理
  13. jQuery中文文档(jQuery 3.1 参考手册+jQuery.api.3.2.1)
  14. volatility内存取证分析与讲解(持续更新)
  15. 时间序列 预处理 python_时间序列算法理论及python实现(1-算法理论部分)
  16. 全球最受欢迎电商平台有哪些?这些平台怎么快速增加销量?
  17. 20145240 《信息安全系统设计基础》第六周同学问题总结
  18. Python利用马青公式计算圆周率Π并写入文件
  19. 中国国际货代行业市场运营规划及发展潜力研究报告2022年版
  20. usaco 奶牛集会 奶牛抗议

热门文章

  1. C# 身份证号码验证正则和验证函数
  2. 《web安全深度剖析》——信息探测and漏洞扫描
  3. python 百度地图api热力图,Python+百度API 画出美美哒热力地图(代码+数据)
  4. c语言方波生成程序,关于C#:在软件上生成方波以进行模拟输入/输出
  5. Vagrant 安装 Centos7
  6. Linux下载HTTP文件
  7. MySQL Enterprise Backup使用简介
  8. 论文阅读|Cascade R-CNN
  9. android获取全部ram和rom,手机中的RAM和ROM,你懂得多少?
  10. mysql中exists的用法详解