最近整理一下XCP,XCP开发过程中有的一些心得。感觉整个开发过程中,帮助最大的就是CANape这个工具,其次是Vector官网上的一些免费的协议和驱动例程(也就是CSDN经常链接的一些付费才能下载的驱动)。如果你对CAN的系统服务(基于AUTOSAR的)相当了解,那开发XCP是相当容易的。XCP下载的协议是ASAM协会发布的XCP 1.1版本,驱动支持的是标准帧,基本可以实现XCP常用的基本的功能,可能基于不同的芯片需要简单做一些裁剪。

上面上一个简单的图,了解一些简单的术语。我们的XCP是目前基于标准CAN的主从的会话结构,从上面图我们可以看到,主要的几个方式,一是CMD用于主机向从机发送命令,RES是从机回复命令,采取一问一答的形式,而后面的DTO是我们重点要说的测量,而我们主要意义上说的测量就是把从机的数据发送至主机电脑CANape,在测量过程中我们传输数据用到的就是上图所示的XCP message format数据包,其中头和尾按照发送的协议的不同而不同。

然后没包数据都会按照ID、时间戳(数据包的首帧选择发送,可以不填充时间戳)、和数据部分,XCP1.1协议就是按照这样的最小单位将数据包一帧一帧地更新到主机。同时如果选择时间戳,主机CANape还会主动地发出获取时间戳的会话,大概1s会询问一次,以确保测量值时时地更新。

关于测量数据如何添加,XCP及CANape工具和协议支持两种,一种是预定义在ECU中的DAQ数据包,一种是由ECU预定于内存,然后由上位机CANape在会话中传送具体的变量地址。显然,第一种只适用于标定量固定且不变的观测数据。第二种方法适用于大多数测量场景,其中数据测量量的地址信息来源于A2L文件,CANape中获取数据地址信息的数据库就是A2L文件。

A2L文件的制作来源于代码生成中编译的.ELF或其他生成文件,A2L文件中还包含CANape工程的配置信息,可以后边单独陈列。A2L有了之后只需要将相应的变量添加到测量周期中就可以了,在这里信号的测量周期包括周期名称、通道和优先级、及其测量类型都有ECU代码描述,通过和上位机的会话交互,将这些参数传递到CANape界面。然后你上面的测量变量就可以添加到如下事件中了。

然后点开始测量,数据就会按照你想到的格式绘制在CANape界面,数据的传输速率主要由传输介质CAN决定,以及相关的首帧发送然后补发及相关服务都基于CAN的服务演变而来,不同的是XCP在处理测量数据的时候会预留一个队列的数据缓存包,来保证每个数据都可以按照周期及优先级发送。

如上图所示就是XCP常用的绘制3D数据包。

以上截图来自XCP免费标准协议和Vector的使用例程,其中一些标准的会话以具体协议支持的会话为准,主要了解大概思路,一些标准术语解释参考协议,开发仍旧需要购买正版软件。

基于CANape开发的XCP测量相关推荐

  1. request[limit]取不到前台的值_基于uFUN开发板的心率计(二)动态阈值算法获取心率值...

    前言 上一篇文章:基于uFUN开发板的心率计(一)DMA方式获取传感器数据,介绍了如何获取PulseSensor心率传感器的电压值,并对硬件电路进行了计算分析.心率计,重要的是要获取到心率值,本篇文章 ...

  2. 分享]基于Web开发资料专集

    分享]基于Web开发资料专集 [这个贴子最后由huili46在 2006/02/17 04:17pm 第 4 次编辑] 本专集包含的内容如下: [color=#008B8B] 网页设计制作标准规范 [ ...

  3. 基于51单片机的脉搏测量仪(心率计)

    具体实现功能 本系统由STC89C51/52单片机+LCD1602显示模块+5mm红外接收管+LM358运放电路+按键模块等构成. 具体功能: (1)手指放到红外对管中,2秒内读出心率: (2)LCD ...

  4. 基于uFUN开发板的心率计(二)动态阈值算法获取心率值

    文章目录 前言 IBI和BPM 核心操作 -- 识别一个脉搏信号 问题一:阈值的选取 问题二:特征点识别 算法整体框架与代码实现 总结 基于uFUN开发板的Keil源码下载 uFUN评测系列文章 前言 ...

  5. 基于STM32开发的CO2浓度、温湿度、气压监测系统

    基于STM32开发的CO2浓度.温湿度.气压监测系统 写在开头 项目开发过程 项目要求 项目方案 MG812传感器监测CO2浓度 RSCM1700传感器监测气压值 AM1011A传感器监测温湿度 原理 ...

  6. arduino编码器计数_基于Arduino开发环境的光电编码器检测仪设计方案 - 全文

    0 引言 Arduino是一款基于单片机系统的电子产品开发平台,它的软硬件系统都具有高度的模块化,而且软件系统是完全开源的.其硬件系统也是高度模块化的,在核心控制板的外围有开关量输入/输出模块.各种模 ...

  7. 开源夏令营《基于HackRF开发GPS信号仿真模拟器》开题报告

    基于HackRF开发GPS信号仿真模拟器 1. 研究意义 随着GPS卫星导航定位系统在现在社会得到越来越广泛的应用,一个能够定量评估.可以模拟不同环境.并具有足够精度的卫星信号仿真模拟器为GPS终端设 ...

  8. 【毕业设计_课程设计】基于Android Studio平台的测量程序设计与实现

    文章目录 0 项目说明 1 简介 2 程序说明 2.1 主界面 2.2 测量工具箱 2.3 五个测量程序 3 项目工程 0 项目说明 基于Android Studio平台的测量程序设计与实现 提示:适 ...

  9. 基于osgearth开发的三维仿真与态势软件系统源代码

    基于osgearth开发的三维仿真与态势软件系统源代码. 功能如下: 1.新建方案.打开方案.保存方案: 2.导入影像.高程.矢量.模型数据: 3.灯光控制.雨.雪.雾特效: 4.通视分析.距离测量. ...

  10. 基于51单片机的脉搏测量仪设计与实现

    目录 前言 一.设计背景 二.系统功能 三.系统硬件设计 3.1 总体方案设计 3.2 信号采集电路设计 3.3 报警电路设计 3.4 下载电路 3.5 电源电路设计 3.6 OLED显示设计 3.7 ...

最新文章

  1. 《Pro/ENGINEER野火版5.0从入门到精通》——1.3 体验Pro/E野火版5.0
  2. 结对编程作业——四则运算GUI程序
  3. 函数指针,指针函数,数组指针,指针数组 区分
  4. DCMTK:DcmItem类的测试程序
  5. scrollLeft,scrollWidth,clientWidth,offsetWidth之完全详解
  6. 数据结构:静态查找动态查找
  7. iview的表格自定义_Vue中使用iview-UI表格样式修改和使用自定义模板数据渲染相关...
  8. eclipse4.3.1标准版安装freemarker插件
  9. 理工男最该死的十二个瞬间
  10. 求树的直径(两种方法)
  11. 动态优先级调度、时间片轮转调度
  12. 葛冬冬斯坦福专业_比较预测模型的表现冬冬与有马
  13. 解决微信小程序点击出现蓝色背景色问题
  14. 《西部世界》,能给现实世界的人工智能带来怎样的狂想
  15. 【c++】2.DISALLOW_COPY_AND_ASSIGN的用法
  16. Matlab论文插图绘制模板第28期—柱状图(带误差棒errorbar)
  17. 微信小程序--监听对象属性变化
  18. window10开启移动热点
  19. SimulateSlidingTrack滑动轨迹库:一行代码获取仿真手动滑动轨迹
  20. LiteCAD参考文档的学习四(单文本、多文本、弧形文本、光栅图像、图像引用、ECW/Jpeg2000 Image图像、填充图案、尺寸、引线)

热门文章

  1. R语言_安装包时联网失败
  2. 捷联惯导系统学习2.2(方向余弦)
  3. 新浪微博android apk,新浪微博app(新浪微博手机版) V9.4.2安卓版
  4. 实验七 6 音乐DJ和回响贝斯
  5. Spss的基本方法使用步骤
  6. 最新二开版漫画小说听书三合一完整源码/整合免签接口/搭建教程/带采集接口
  7. 3dmax高级建模方法总结
  8. 关于微信精选留言点赞刷赞之公众号评论点赞及文章评论点赞软件使用方法
  9. 解决2345劫持主页的办法--火绒2345专杀
  10. VOS2009_2.1.2.0的安装教程