XCP协议系列介绍01-看了就会的XCP协议

XCP协议系列介绍01-看了就会的XCP协议系统介绍 XCP 概念 功能 常用指令及日常使用 着重对 XCP 测量及标定功能进行介绍 有利于相关开发人员迅速掌握及应用 XCP 协议

大家好,欢迎来到IT知识分享网。

0. 前言

本文将对XCP是什么?做什么?一般工作过程,测量及标定等基本内容用最直白的语言掰开揉碎详细介绍,满足大家对XCP初步的认识,耐心看完本文你就会对XCP有基本掌握,收藏反复看效果更好。

如您对XCP实战有更高需求,可移步到XCP实战专栏,满足更高进阶需求,实战系列导读快速链接:XCP实战系列导读

如您对AutosarMCAL配置,通信,诊断等实战有更高需求,可以参见AutoSar 实战进阶系列专栏,快速链接:AutoSar实战进阶系列导读

1. XCP是什么?

XCP表示“通用测量和校准协议”。“X”代表任意的传输层(如CAN、CANFD、FlexRay、Ethernet…)。由ASAM工作委员会(自动化和测量系统标准化协会)标准化。ASAM是汽车OEM,供应商和工具生产商的组织。

2. XCP用来做什么?

XCP的主要应用是内部ECU参数的测量和标定。在汽车软件开发中,常会遇到需要在实车或者台架调试时才能确定的变量,例如发动机控制器的点火角等参数,可能根据汽车的负载不一样需要调整,这个时候就可通过XCP来标定。

3. XCP一般工作过程

4. XCP命令简介

4.1 数据包简介

4.2 数据包报文格式

4.3 数据传输方式

在这里插入图片描述
标准传输模式
在标准通信模型中,对从机的每个请求都有一个响应。除了 XCP 在 CAN 上,不允许多个从机对主机的命令做出响应。因此,每条 XCP 消息总是可以追溯到一个唯一的从机。这种模式是通信中的标准情况。

块传输模式
块传输模式是可选的,可以节省大量数据传输(例如上传或下载操作)的时间。尽管如此,在这种模式下,性能问题必须朝着从机的方向考虑。因此,必须保持两个命令之间的最小时间,命令总数必须限制在最大值的上限。

交错传输模式
交错模式也是出于性能原因而提供的,在典型通讯模式中,主机在收到上一条指令的回复前不会发送下一条指令,为提高通讯的效率,交错通讯模型可以不等待回复直接再发送下一条指令。但是这种方法也是可选的,并且与块传输模式相反,它在实践中没有相关性。

5. XCP测量

参数测量本质上是作为主设备对从设备的请求而实现的:“读取存储位置0x1234的值”。按测量方式可分为异步测量与同步测量。

5.1 异步测量(Poling)

即Poling模式,Poling是最简单的测量方法,它不是基于DTO,而是基于CTO。对需要采集的变量进行挨个轮询。

主站可以使用SHORT_UPLOAD命令从从站请求测量参数的值。这称为轮询。这是最简单的测量情况:在已接收并执行SHORT_UPLOAD命令时发送测量参数的测量值。

异步测量是使用主结点发送的命令,通过指定的XCP地址来提取从结点的ECU内部的数据,并通过从结点的应答将该数据传送给主结点,如此循环往复来实现的。为了取出数据,使用PID为“0xF4”的命令“SHORT_UPLOAD”。这个命令和应答的格式如下所述。

5.1.1 SHORT_UPLOAD命令

5.1.2 SHORT_UPLOAD应答

5.1.3 Poling模式特点

5.2 DAQ测量

在这里插入图片描述
为了使测量与ECU的控制相匹配,有必要由ECU确定测量时机,并在数据取出来后由从结点发送到主结点。这种数据通信是通过DTO来完成的。

主结点在进行同步测量之前,通过命令指定要取出的数据的XCP地址,从结点在等到同步测量开始命令后,使用DTO发送到主结点。因此,在同步测量的情况下,不是通过命令和应答的组合,而是通过测量周期或事件,由从结点发送DTO报文到主结点。

5.3 DAQ基本原理

5.3.1DAQ基本原理

主机一次性配置好所有要读取的变量,并关联ECU端的不同事件channel,一旦ECU对应的事件发生(例如每隔100ms),主动上传数据给主机。

5.3.2 动态DAQ

通过增加管理测量目标的DAQ列表中的ODT及其条目的数量,可以增加测量的测量点的数量。而且通过维持与要测量的事件通道数量一样多的DAQ列表,可以对ECU的所有测量时机进行测量。但是这些数量的增加会增大ECU中的管理缓冲区,因此会消耗ECU的内存。

而且如果ECU具有10ms和20ms的控制周期,有场景下10ms的控制周期中测量的测量点的数量很大,有场景下20ms的控制周期中测量的测量点的数量也很大,即根据测量的场景不同,测量点的数量需求会有不同。对于这样的应用程序,有一种称为“动态DAQ”的功能,可以允许从结点动态更改每次测量的DAQ列表、ODT和ODT条目的数量。相反的,如果在集成XCP驱动程序时,这些数量是预先确定的,则称为“静态DAQ”。一个从结点将具有静态或动态DAQ功能。

即同样ECU内存情况下,可以通过减少10ms的DAQ来增加20ms的数量,在总的内存范围中动态调整。

动态DAQ分配过程
动态DAQ列表配置使用FREE_DAQ、ALLOC_DAQ、ALLOC_ODT和ALLOC_ODT_ENTRY命令完成。这些命令允许在上述限制范围内动态分配多个DAQ列表、多个ODT到DAQ列表以及多个ODT list到ODT。如果没有足够的内存来分配请求的对象,这些命令会得到一个ERR_MEMORY_溢出作为负响应。如果发生错误内存溢出,则完整的DAQ列表配置无效。
在这里插入图片描述
在动态DAQ列表配置序列开始时,主机始终首先必须发送一个FREE_DAQ。其次,对于ALLOC_DAQ,主机必须分配可配置DAQ列表的数量。然后,主机必须使用ALLOC_ODT命令将所有ODT分配给所有DAQ列表。最后,主机必须使用ALLOC_ODT_ENTRY命令将所有ODT条目分配给所有DAQ列表的所有ODT。


6 XCP标定

对从站的参数(写访问)的标定简单可理解为:“将地址0x1234的值设置为5”。

6.1 地址映射

下面我们讲讲两种地址映射方式:硬件方式与软件方式

6.1.1 硬件方式(Overlay)

6.1.2 软件方式(Offset偏移)

6.2 TC3xx系列Overlay

在AURIX TM中,每个TriCore实例最多可使用32个Overlay范围。Overlay内存Block的大小可以是2nx32字节,n=0到12。这使Block大小的范围从32字节到128 KB。

7 A2L文件格式

相对A2L文件格式有详细了解可以去博主另一篇专门介绍A2L文件的文章(博文名称:XCP-A2L文件解析)中查看,下面部分仅做简单概述。

A2L文件是采用ASAP2指定的一套类XML语言的描述性语言(采用开标签和关标签来描述信息)书写的文件,是一种方便XCP进行工作的描述性文件,可以将其理解为一个通讯矩阵,包含了通讯接口(CAN,USB等,项目信息、ECU信息、标定变量信息、测量变量信息等。

一般A2l框架如下:

/begin PROJECT /*表示一整个项目,一个文件一个项目*/ /begin HEADER /*描述项目信息,包括项目编号,项目版本等信息*/ /end HEADER /begin MODULE Device/*描述ECU需要的所有信息,一个ECU对应一个MODULE块*/ /begin MOD_PAR /*管理ECU的数据,CPU 客户 编号等等,最重要的是内存的分段分页管理,类似DSP中的CMD文件*/ /end MOD_PAR /begin MOD_COMMON/*一般性描述信息,比如大小端,数据的对齐方式*/ /end MOD_COMMON /begin CHARACTERISTIC/*定义标定变量,包含被标定的变量的名字,地址,长度,计算公式,精度,最大最小值等信息*/ /end CHARACTERISTIC /*可定义多个*/ /begin AXIS_PTS /end AXIS_PTS /begin MEASUREMENT/*定义测量变量,包含了被测量的变量的名字,地址,长度,计算公式,精度,最大最小值等信息*/ /end MEASUREMENT/*可定义多个*/ /begin COMPU_METHOD/*定义计算公式,及原始值和物理值之前的转换关系 如phy = ax+b*/ /end COMPU_METHOD /begin COMPU_TAB /*定义原始值和物理值的映射关系 一般是枚举变量*/ /end COMPU_TAB /begin FUNCTION /end FUNCTION /begin GROUP /end GROUP /begin RECORD_LAYOUT/*定义标定变量的物理存储结构(一维,二维表,三维表等)*/ /end RECORD_LAYOUT /end MODULE Device /end PROJECT 

8 XCP的实际应用

8.1 XCP工具简介

9. XCP系列文章汇总

  1. XCP实战系列介绍01-测量与标定底层逻辑介绍
  2. XCP实战系列介绍02-A2L文件详尽解析
  3. XCP实战系列介绍03-英飞凌TC3xx芯片Overlay概述及开发过程介绍
  4. XCP实战系列介绍04-CANape工程配置超详细介绍
  5. XCP实战系列介绍05-CANape观测功能手把手教学
  6. XCP实战系列介绍06-CANape标定及标定后hex生成操作指导
  7. XCP实战系列介绍07-使用ASAP2 Editor生成A2l文件详解
  8. XCP实战系列介绍08-基于Vehicle Spy进行XCP测量的工程配置详解
  9. XCP实战系列介绍09-基于Vehicle Spy进行XCP测量步骤详解
  10. XCP实战系列介绍10-基于CANoe实现XCP测量功能详细介绍
  11. XCP实战系列介绍11-几个常用的XCP命令解析
  12. XCP实战系列介绍12-基于Vector_Davinci工具的XCP配置介绍(一)
  13. XCP实战系列介绍13-基于Vector_Davinci工具的XCP配置介绍(二)
  14. XCP实战系列介绍14-基于Vector_Davinci工具的XCP配置介绍(三)
  15. XCP实战系列介绍15-XCP故障排查指导
  16. XCP实战系列介绍16-XCP标定过程指令解析

在这里插入图片描述

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/110086.html

(0)
上一篇 2026-02-02 20:10
下一篇 2026-02-02 20:20

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信