《AUTOSAR谱系分解(ETAS工具链)》之XCP

《AUTOSAR谱系分解(ETAS工具链)》之XCP

一、XCP协议概述

1、XCP概念

XCP表示"Universal Measurement and Calibration Protocol",X表示支持多用传输协议。
XCP支持CAN Eth FlexRay Sxl USB等多种协议。
在这里插入图片描述

XCP协议主要分为三个部分MCD-1 MCD-2 MCD-3.

  • MCD-1 主要介绍XCP驱动层,xcp是如何进行数据传输的。
  • MCD-2 主要介绍A2L文件的格式描述
  • MCD-3 主要介绍自动化标定的工具

本文仅介绍XCP 驱动部分
在这里插入图片描述

2、XCP 数据格式

XCP协议分为Master 和Salve,由标定上位机(Canape)构成Master,ECU构成Salve。主从机之间采用XCP Packet 交互。
在这里插入图片描述

其中XCP Header与XCP Tail是TCP/UDP协议下的控制字,当采用CAN传输时,不需要关注。
PID: Packet Identifier,定义如下
在这里插入图片描述

3、通讯模式

XCP包含两种通讯模式CTO,DTO。

  • CTO: Commadn Transfer Object
  • DTO: Data Transfer Object

在这里插入图片描述

  • 当采用CTO模式时,主从之间总是采用一问一答的方式进行交互。每个CTO命令都会有一个Response 或者Error响应;
  • 当采用DTO模式时,DTO的数据会需要根据Event关联。

CMD数据包由PID和DATA组成。
在这里插入图片描述

命令码PID如下:
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

当采用DTO的方式时,从机主动上报测量数据。从机通过EV数据包,告知主机上报数据。
在这里插入图片描述

二、XCP参数测量

1、参数测量的方式

依据CTO 与DTO两种传输方式,产生两种不同的参数测量过程。

  1. Polling
  2. Event

Poling是基于CTO的方式,当主机请求一个数据的测量时,从机返回这个值。当多个值存在依赖关系时,这种请求方式就无法体现多个测量值的依赖关系。
在这里插入图片描述

Polling是基于CTO的问答机制,进行数据测量
在这里插入图片描述

主机通过PID 0xF4(SHORT_UPLOAD)请求了0x0021A1BD地址的数据
从机响应了PID 0xFF(RES)返回改地址的数据0x1E

Event是基于DTO的方式,主机不在主动请求测量数据,采用从机主动上报的方式执行。当多个测量数据完成时,从机调用Xcp_Event接口。触发DTO数据的主动上报。
在这里插入图片描述

2、DAQ List

每个XCP Event都会对应一个DAQ List,这些DAQ List 包含了这个Event所需要上传的全部数据。这些数据以ODT(Object Data Table)的形式组成,每个ODT对应一个PID编号
在这里插入图片描述

在由ODT组成一个DAQ LIST
在这里插入图片描述

Static DAQ list:
静态DAQlist 是集成在ECU中的,通过A2L文件。上位机可以获取到这个List中的信息。
一个DAQ List 由N个ODT组成,每个ODT对应N个测量Entry.

Dynamic DAQ list:
XCP提供三个命令配置动态DAQ,

  1. ALLOC_DAQ(0xD5)
  2. ALLOC_ODT_ENTRY(0xD3)
  3. ALLOC_ODT(0xD4)
    在这里插入图片描述

3、DAQ List传输模式

DAQ LIST在传输过程中,以ODT为最小的传输单元。
在传输ODT的过程中,主要以relative ODT numbers 和 absolute ODT number。两种方式对应两种传输的数据接口

在这里插入图片描述

在这里插入图片描述

  • 当采用absolute ODT number时,每个ODT的编号在A2L文件中都是固定的,依次递增。

  • 当采用relative ODT number时,每个ODT仅代表当前DAQ LIST内的ODT编号。同时增加absolute DAQ list number进行区分。

三、XCP参数标定

1、线上标定

在系统运行过程中,进行参数标定。但是XCP不会修改程序中固化的参数值。
在这里插入图片描述

  • 主机发送0xF6 (SET_MEA) 表示需要0x0021C02C地址的值
  • 从机返回0xFF (RES)
  • 主机发送0xF0(DOWNLOAD)命令,将修改的值下发
  • 从机返回0xFF
  • 主机发送0xF4(SHROT_UPLOAD),获取修改后的值
  • 从机返回0xFF(RES)和修改之后的值

修改之后的数据,XCP不进行保存处理。ECU可以在下电过程中保存。

2、线下标定

XCP提供paramset filer,通过这个文件可以保存当前标定的参数值,上位机可以在下次标定时,将标定参数传输给ECU。
在这里插入图片描述

上位机也可以通过修改elf文件,直接将标定参数修改进ECU的烧录文件中。
在这里插入图片描述

四、XCP安全机制

XCP提供类似UDS的27服务,主机在进行connet请求时,需要先进行解锁。
从机发送Seed 给到主机,主机返回对应的Key。从机核对这个Key值,Key值符合期,则解锁成功。

五、激励与旁路

Bypassing,就是将ECU的数据测量出来,Bypass Hardawre获取ECU的数据,并返回给ECU。同时ECU将不再使用内部的计算数据,而是采用Bypass Hardware提供的数据。
在这里插入图片描述

在这里插入图片描述

当旁路发生时,ECU不再使用算法A计算出来的数据,而是使用外部的计算数据。这里应该是算法A不再执行了。

六、XCP接口

1、接口定义

AUTOSAR中定义XCP以下几个接口

  1. void Xcp_Init(const Xcp_ConfigType* Xcp_ConfigPtr)

  2. void Xcp_GetVersionInfo(Std_VersionInfoType* versioninfo)

  3. voidXcp_SetTransmissionMode(NetworkHandleTypeChannel, Xcp_TransmissionModeType Mode)

  4. Xcp_RxIndication(传输层接口,根据不同的传输层有不同的命名)

  5. void Xcp_TxConfirmation(PduIdType TxPduId,Std_ReturnType result)(同上)

  6. Std_ReturnType Xcp_TriggerTransmit(PduIdType TxPduId,PduInfoType* PduInfoPtr)

2、XCP ON CAN

CAN实现XCP时,主要实现

  1. Xcp_CanRxIndication
  2. Xcp_CanTxConfirmation
  3. Xcp_CanTriggersmit

XCP在AUTOSAR架构中不经过PDUR,与NM CANTP J1939TP一样。下层是CanIf,CanIf收到报文后,根据报文ID找到对应的User.最后找到对应的上层。

七、ISOLAR中XCP模块的配置

1、XCP模块在BSW中的位置

在这里插入图片描述

2、XCP模块配置架构

在这里插入图片描述

3、XCP模块XcpA2LFile的配置

在这里插入图片描述

4、XCP模块XcpConfig的配置

在这里插入图片描述

5、XCP模块XcpGeneral的配置

在这里插入图片描述

《AUTOSAR谱系分解(ETAS工具链)》之总目录

《AUTOSAR谱系分解(ETAS工具链)》之总目录

  • 4
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值