微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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发送的值

原文地址:https://www.jb51.cc/wenti/3280791.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐