02 Xcp协议层介绍

Xcp协议层介绍

XCP 数据在 Master 和 Slave 之间以基于消息的方式进行交换。整个“XCP 消息帧”嵌入在传输层的帧中(XCP ON Ethernet 嵌入UDP报文中)。XCP报文包括三部分:XCP头、XCP包和XCP尾。

下图中,部分消息用红色表示,用于发送当前的 XCP 帧。XCP头和XCP尾取决于传输协议。

XCP包本身独立于所使用的传输协议。它总是包含三个组件:“标识字段”、“时间戳字段”和当前数据字段“数据字段”。每个标识字段以标识数据包的PID (Packet Identifier)开始。

下面显示已经定义了的PID:

 

XCP通信分为两种方式,一种是命令 (CTO),一种是发送同步数据 (DTO) 。

 

首字母缩略词代表

 

通过CTO(命令传输对象)交换命令。例如,Master以这种方式发起请求。Slave必须始终以RES或ERR响应CMD。其他CTO消息是异步发送的。数据传输对象(DTO)用于交换同步测量和激励数据。

 

标识段

 

当交换消息时,Master和Slave都必须能够确定对方发送了哪条消息。这在标识领域中完成。这就是为什么每个消息都以包标识符(PID)开始的原因。

在发送CTO时,PID字段完全足以识别CMD、RES或其他CTO数据包。可以看出,从Master到Slave的命令使用了一个从0xC0到0xFF的PID。XCP Slave用从0xFC到0xFF的pid响应或通知Master。这将导致一个独一无二的PID分配给单独发送的CTO。传输DTO时,将使用标识字段的其他元素。

时间戳字段

 

DTO包使用时间戳,但在CTO消息的传输中这是不可能的。Slave使用时间戳来提供测量值的时间信息。也就是说,Master不仅有测量值,还有测量值获取的时间点。测量值到达主服务器所花费的时间不再重要,因为测量值和时间点之间的关系直接来自于从服务器。

从Slave传输时间戳是可选的。这个主题在ASAM XCP第2部分协议层规范中有进一步的讨论。

数据字段

 

最后,XCP包还包含存储在数据字段中的数据。对于CTO报文,数据字段由不同命令的具体参数组成。DTO报文包含从Slave发送的测量值,当STIM数据被发送时,则包含从Master发送的值

相关文章

学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习...
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面...
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生...
Can’t connect to local MySQL server through socket \'/v...
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 ...
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服...