首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

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

  • 23-11-14 08:42
  • 4755
  • 9417
blog.csdn.net

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

文章目录

  • 《AUTOSAR谱系分解(ETAS工具链)》之XCP
    • 一、XCP协议概述
      • 1、XCP概念
      • 2、XCP 数据格式
      • 3、通讯模式
    • 二、XCP参数测量
      • 1、参数测量的方式
      • 2、DAQ List
      • 3、DAQ List传输模式
    • 三、XCP参数标定
      • 1、线上标定
      • 2、线下标定
    • 四、XCP安全机制
    • 五、激励与旁路
    • 六、XCP接口
      • 1、接口定义
      • 2、XCP ON CAN
    • 七、ISOLAR中XCP模块的配置
      • 1、XCP模块在BSW中的位置
      • 2、XCP模块配置架构
      • 3、XCP模块XcpA2LFile的配置
      • 4、XCP模块XcpConfig的配置
      • 5、XCP模块XcpGeneral的配置
    • 《AUTOSAR谱系分解(ETAS工具链)》之总目录

一、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工具链)》之总目录

注:本文转载自blog.csdn.net的PlutoZuo的文章"https://blog.csdn.net/PlutoZuo/article/details/132774887"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top