XCP协议总结----01

XCP协议总结----01

XCP表示“通用测量和校准协议”。“X”代表任意的传输层(如CAN、CANFD、FlexRay、Ethernet…)。由ASAM工作委员会(自动化和测量系统标准化协会)标准化。ASAM是汽车OEM,供应商和工具生产商的组织。
XCP是继CCP(CAN校准协议)之后的协议升级版,基于CAN的部分基本没有改变。XCP的开发旨在通过不同的传输媒介来实现此功能。

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

XCP主要的用处以下总结为四点:测量、标定、刷新及对ECU进行旁路仿真。
在这里插入图片描述
其中主要用测量、标定及刷新功能,旁路功能用的相对较少。

1.XCP的一般工作流程:
首先XCP是主从的工作结构,主节点(Master)即一个上位机,我们定义它为测试系统,当然也可以理解为我们使用的XCP工具,一个主节点可以连接多个从节点(Slave),整个测试系统的连接如下所示:
在这里插入图片描述
Master(带上位机的笔记本)<–>CAN工具(CANape/INCA等)<–>Slave(ECU-可多个)
在这里插入图片描述
1).将Master和Slave通过设备连接起来,通过发命令的方式建立连接;
2).通过上位机工具观测之前定义好的一些变量,例如速度,转矩,电压等参数;
3)可进行在线标定,一般是先在一个存储区(RAM)定义的变量找出一个比较好的参数,然后将这个比较好的参数固化下来,擦除原来的数据写入到另外一个映射好的存储区(flash);
4).通过将标定完成的软件烧录到ECU中,使用其编程的功能。

2.XCP的命令介绍:
2.1数据包简介
XCP的数据包分为两类:CTO(Command Transfer Object) and DTO(Data Transfer Object)
在这里插入图片描述
如将命令按传递方向,可划分如下:
在这里插入图片描述
CMD:指的是上位机下发给下位机的一些命令,比如连接命令FF,解锁,获取状态等一些和下位机交互的命令;
STIM:你可以理解为一种上位机向下位机大量发数据的一种方式,相当于反向的DAQ;用于数据标定时,上位机向下位机修改参数。
Response:肯定应答,指的下位机答复上位机的命令;
Error:否定应答上位机的命令;
Event:事件,指下位机发生某事件时通知上位机;
Service:指下位机在某些情况下,需要上位机执行一些动作,可理解为请求上位机服务。
Daq:下位机上传数据给上位机。
在这里插入图片描述
2.2数据报文格式:
主、从设备之间每次传输的数据都采用XCP帧的格式,包含一个XCP报头、XCP数据包和XCP报尾。XCP帧支持的传输层可将这三个帧元素映射到相应的传输帧格式。
在这里插入图片描述
PID是标识字段的一部分,用于标记数据包及数据包内部的数据值。

CTO与DTO报文XCP Packet包格式如下:
在这里插入图片描述
主结点对从结点进行XCP控制时使用“命令(CMD)”,此时的PID在“0xC0”到“0xFF”的范围内。从结点对这个命令返回肯定应答的情况下,使用“应答(RES)”,此时PID变为“0xFF”。
2.3数据传输方式
在这里插入图片描述
标准传输模式:
在标准通信模型中,对从机的每个请求都有一个响应。除了 XCP 在 CAN 上,不允许多个从机对主机的命令做出响应。因此,每条 XCP 消息总是可以追溯到一个唯一的从机。这种模式是通信中的标准情况。

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

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

3.XCP测量
参数测量本质上是作为主设备对从设备的请求而实现的:“读取存储位置0x1234的值”。按测量方式可分为异步测量与同步测量。
3.1异步测量(Poling)
即Poling模式,Poling是最简单的测量方法,它不是基于DTO,而是基于CTO。对需要采集的变量进行挨个轮询。

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

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

3.1.1 SHORT_UPLOAD命令
0字节 指定为PID“0xF4”
1字节 指定为取出字节数。最大为MAX_CTO -1字节
2字节 保留字段
3字节 指定为要读出的8位扩展地址
4-7字节 指定为要读出的32位地址

3.1.2 SHORT_UPLOAD应答
CTO 0字节位置,指定为PID“0xFF” CTO 1~MAX_CTO字节位置,指定为取出的数据
Poling模式下的特性:

3.1.3 Poling模式特点
1)Poling模式下的时间戳机制不能使用;
2)不同测量值时间上没有一致性。
3)包含2条报文(上位机请求和Slave响应),影响总线负载率

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

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

ODT:同步数据传输对象与从机内存之间的映射关系(Object Descriptor Table)
DAQ: 位于从机的数据元素通过数据传输对象(Data AcQuisition),传输到主机,决定了在一个同步测量的周期或者事件触发时要测量的内存数量。
每个事件周期(Event)可对应多个DAQ,一个DAQ包括多个ODT List,一个ODT包括多个变量。
3.3DAQ基本原理
3.3.1DAQ基本原理
主机一次性配置好所有要读取的变量,并关联ECU端的不同事件channel,一旦ECU对应的事件发生(例如每隔100ms),主动上传数据给主机。

3.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的数量,在总的内存范围中动态调整。

3.3.3动态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。

原文链接:https://blog.csdn.net/initiallizer/article/details/121001825

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: ASAM XCP MCD-2 MC是一种用于汽车电子控制单元(ECU)的通信协议。它是ASAM(汽车电子系统供应商协会)定义的一种基于XCP(Universal Measurement and Calibration Protocol)的通信协议。 ASAM XCP MCD-2 MC协议的主要目的是实现汽车ECU的测量和校准功能。通过该协议,工程师可以使用标准的诊断工具与ECU通信,并读取ECU上的数据、修改参数或配置ECU的行为。 该协议的核心组件是Measurements and Calibration Data (MCD)导出模块。MCD是一种数据格式,用于描述需要测量和校准的参数。这些参数可以包括引擎转速、车速、温度、氧气传感器输出等等。通过MCD导出模块,工程师可以将这些参数导出为一种易于使用的数据格式,方便进行测量和校准操作。 ASAM XCP MCD-2 MC协议还定义了一组命令和响应消息,用于控制ECU的测量和校准过程。工程师可以通过发送命令来读取或修改ECU的参数,同时ECU会返回相应的响应消息。 此外,ASAM XCP MCD-2 MC还提供了数据传输和保护机制,以确保数据的安全和完整性。它支持不同的通信接口,如CAN(Controller Area Network),以实现与多个ECU的通信。 总之,ASAM XCP MCD-2 MC是一种用于汽车ECU测量和校准的通信协议。它提供了一种标准化的方式来与ECU进行交互,并实现对ECU参数的读取和修改操作。通过这种协议,工程师可以更方便地进行汽车电子控制系统相关的开发和调试工作。 ### 回答2: asam_xcp_mcd-2 mc 是一种用于汽车电子系统的通信协议。ASAM代表汽车电子系统协会,XCP代表通用测量和标定协议,MCD-2代表测量和标定协议第2代,MC代表主计算。ASAM_XCP_MCD-2 MC提供了一种标准化的通信方式,用于在开发和测试汽车电子控制单元(ECU)时进行测量、标定和诊断。 ASAM_XCP_MCD-2 MC通过CAN总线或其他物理接口,使计算机(通常是开发工具)能够与ECU进行通信,并发送命令和接收数据。该协议定义了ECU的测量和标定参数、数据采集和操作命令等。通过ASAM_XCP_MCD-2 MC,开发人员可以实时监控和调整ECU的内部参数,以确保其正常运行和满足需求。此外,该协议也支持诊断功能,可用于排除故障和监测ECU的健康状态。 ASAM_XCP_MCD-2 MC的优点是高效、灵活且易于使用。它提供了一套标准化的通信命令和数据格式,使开发工具可以与不同供应商的ECU进行兼容。开发人员可以使用各种设备和软件工具来与ECU进行通信和操作,而无需担心兼容性问题。此外,ASAM_XCP_MCD-2 MC还具有高速传输和实时响应的特点,能够处理大量的测量数据,并实时更新ECU的参数。 总之,ASAM_XCP_MCD-2 MC是一种重要的通信协议,用于在汽车电子系统的开发和测试过程中进行测量、标定和诊断。它提供了标准化的通信方式,支持实时监控和调整ECU的参数,以确保汽车电子系统的正常运行。该协议具有高效、灵活且易于使用的特点,为开发人员提供了便利和可靠的工具。 ### 回答3: ASAM_XCP_MCD-2 MC是一种嵌入式系统开发中常见的测量和校准协议。ASAM(Association for Standardization of Automation and Measuring Systems)是一个开放的国际组织,致力于制定和推广自动化和测量系统的标准。XCP(Universal Measurement and Calibration Protocol)是ASAM标准中的一个子协议,用于嵌入式系统中的测量和校准任务。 ASAM_XCP_MCD-2 MC是一种用于嵌入式系统中的测量和校准的协议规范,它定义了通信的格式和连接方式。通过ASAM_XCP_MCD-2 MC,开发人员可以实现对嵌入式系统的测量和校准,并使用标准的工具进行在线参数调整和性能优化。它提供了一种可靠和高效的方法,使开发人员能够对嵌入式系统的各种参数进行实时监测和调整。 ASAM_XCP_MCD-2 MC支持多种通信接口,包括CAN、Ethernet等。它可以在系统生命周期的不同阶段使用,从早期的开发和测试阶段到产品的实际部署和运行阶段。开发人员可以使用ASAM_XCP_MCD-2 MC协议进行快速原型开发和验证,同时也可以在实际的车辆环境中进行在线参数校准和优化。 ASAM_XCP_MCD-2 MC在汽车行业中广泛应用,特别是在电动汽车和自动驾驶技术领域。它提供了一种标准化的方法,使开发人员能够更好地管理和优化车辆性能,并支持车辆的后期维护和升级。通过使用ASAM_XCP_MCD-2 MC,开发人员可以实现更高效和安全的车辆开发过程,提高产品质量和用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值