XCP协议测量详解

XCP协议

1 前言

XCP(Universal Calibration Protocol)是通用测量和校准协议的缩写, “X”代表任意的传输层(如CAN、CAN FD、FlexRay、Ethernet…)。主要目的是来自电子控制单元的数据采集和校准访问。因此定义了通用协议层。作为传输介质的不同物理总线和可以使用网络。对于每个授权传输介质,需要一个单独的传输层定义。

XCP术语集合:

 ODT :  objiect description table

 ODT_Entry:  ODT条目元素

 DAQ: data acquisition

 STIM:  data stimulation

2 XCP特点和概念

图2-1 ODT列表结构

 对象描述符表(ODT)描述了同步数据传输对象和slave内存之间的映射。同步数据传输对象由其包标识符(Packet IDentifier, PID)标识,该PID标识描述此同步数据传输对象内容的ODT。

2.1 同步数据传输

2.1 .1 ODT_Entry

代表ODT的元素的测量对象,包含测量信号地址和长度。ODT中的条目通过地址、地址扩展、地址粒度ADDRESS_GRANULARITY(AG)中元素的大小引用数据元素,对于表示位的数据元素,则通过位偏移量引用。

GRANULARITY_ODT_ENTRY_SIZE_x(GRANULARITY_ODT_ENTRY_SIZE_DAQ或GRANULARITY_ODT_ENTRY_SIZE_STIM)决定ODT条目引用的数据元素的最小大小。

GRANULARITY_ODT_ENTRY_SIZE_x不能小于AG

GRANULARITY_ODT_ENTRY_SIZE_x[BYTE] >= AG[BYTE]

ODT表项的地址和大小必须符合GRANULARITY_ODT_ENTRY_SIZE_x的对齐要求。

对于ODT条目所描述的元素地址必须满足以下要求:

Address[AG] mod (GRANULARITY_ODT_ENTRY_SIZE_x[BYTE] / AG[BYTE]) = 0

对于ODT条目所描述的每个元素的大小,必须满足以下要求:

SizeOf(element described by ODT entry)[AG] mod (GRANULARITY_ODT_ENTRY_SIZE_x[BYTE] / AG[BYTE]) = 0

GRANULARITY_ODT_ENTRY_SIZE_x的可能值是{1,2,4,8}。

ADDRESS_GRANULARITY的取值为{1,2,4}。

说明:

ADDRESS_GRANULARITYGRANULARITY_ODT_ENTRY_SIZE_x在A2L描述文件中已描述。

2.1.2 Object Descriptor Table

对象描述表ODT(objiect description table),ODT条目分组在ODT中

如果DAQ列表是静态配置的,MAX_ODT_ENTRIES指定该DAQ列表中每个ODT的最大ODT表项数。

如果DAQ列表是动态配置的,那么MAX_ODT_ENTRIES不是固定的,它将是0。

对于每个ODT,通过ODT_ENTRY_NUMBER对ODT项的编号从0开始重新启动。

ODT_ENTRY_NUMBER [0,1,..MAX_ODT_ENTRIES(DAQ list)-1]

2.1.3 DAQ List

可以将多个ODT分组到一个DAQ列表中。XCP允许多个DAQ列表,这些列表可以同时激活。每个DAQ列表的采样和传输是由从机中的单个事件触发的。

                                                                图2-2 DAQ列表结构

如果DAQ列表是静态配置的,MAX_ODT指定这个DAQ列表的ODT数量。

如果DAQ列表是动态配置的,那么MAX_ODT不是固定的,它将是0。

MAX_DAQ是从设备中可用的DAQ列表的总数。它包括不可配置的预定义DAQ列表(在GET_DAQ_LIST_INFO处用预定义表示)和可配置的预定义DAQ列表。如果DAQ_CONFIG_TYPE = dynamic,则MAX_DAQ = MIN_DAQ+DAQ_COUNT。

MIN_DAQ是预定义DAQ列表的个数。对于预定义的DAQ列表,DAQ_LIST_NUMBER的范围是[0,1,..MIN_DAQ-1]。

DAQ_COUNT是动态分配的DAQ列表的数量。MAX_DAQ-MIN_DAQ是可配置DAQ列表的个数。对于可配置的DAQ列表,DAQ_LIST_NUMBER在[MIN_DAQ,MIN_DAQ+1,

..MAX_DAQ-1]范围内。

对于每个DAQ列表,通过ODT_NUMBER从0开始重新启动ODT的编号,并且必须是连续的。ODT_NUMBER [0, 1 . .MAX_ODT(采集列表)1]在同一个XCP从设备中,DAQ列表号的范围从0开始,并且必须是连续的。

DAQ_LIST_NUMBER [0, 1 . .MIN_DAQ-1] + [MIN_DAQ MIN_DAQ + 1 . . MAX_DAQ-1]为了降低所需的传输速率,可以将传输速率预分频器应用于DAQ列表(参见GET_DAQ_PROCESSOR_INFO的DAQ_PROPERTIES中的

PRESCALER_SUPPORTED标志)。如果不进行还原,预分频器值必须等于1。为了还原,预分频器必须大于1。预分频器的使用只允许用于有DAQ方向的DAQ列表。

2.1.4 Event Channels

XCP允许多个DAQ列表,这些列表可以同时激活。

每个DAQ列表的采样和传输是由从机中的单个事件触发的(参见

SET_DAQ_LIST_MODE)。事件通道构建有效确定数据传输时间的通用信号源。

对于没有固定周期时间的事件通道,例如,偶发或突发同步事件,可以添加一个最小周期时间(MIN_CYCLE_TIME),这样XCP master就可以进行最坏情况的计算,例如CPU负载或所需的传输层带宽。

MAX_EVENT_CHANNEL是可用事件通道的数量。对于每个事件通道,MAX_DAQ_LIST表示可以分配给该事件通道的最大DAQ列表数量。MAX_DAQ_LIST = 0x00表示此事件可用,但目前不能使用。MAX_DAQ_LIST = 0xFF表示没有限制。

XCP允许对事件通道进行优先级排序。这个优先级是slave的固定属性,因此是只读的。事件通道优先级= FF的事件通道优先级最高。

在MEASUREMENT变量的每个定义处,可以在DAQ_EVENT小节中选择性地控制将MEASUREMENT变量分配给事件通道。

赋值可以是固定的,也可以是可变的。如果分配是固定的,那么必须在任何需要固定分配的MEASUREMENT变量上定义一个包含所有要使用的事件通道的列表(FIXED_EVENT_LIST)。该工具无法更改具有固定列表的MEASUREMENT变量的事件通道的分配。如果分配不是固定的,而是可变的,则可以在MEASUREMENT处本地提供一个包含该度量(AVAILABLE_EVENT_LIST)所有有效事件通道的列表。如果此列表不存在,则ECU提供的所有事件通道都可以由工具分配。

2.1.5 动态DAQ配置

    对于可配置的DAQ列表,slave可以对DAQ列表的数量、每个DAQ列表的ODT数量和每个ODT的ODT条目数量有一定的固定限制。

slave也可以完全动态地配置DAQ列表。

 

图2-3 静态DAQ列表配置

图2-4 动态DAQ列表配置

 

2.2 测量模式

2.2.1 轮询(polling)采集

最简单的测量方法是使用轮询方法。这种方法的特点是XCP

  • 12
    点赞
  • 87
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值