什么是CAN协议中的消息对象?

时间:2014-06-05 07:14:24

标签: microcontroller can-bus

CAN协议 - 消息对象(MObs)

根据我的知识,这些是包含最新消息的缓冲区。

互联网上提供的信息非常少。

任何人都可以详细解释我究竟是什么消息对象? 如何在程序中使用它们?

期待感谢

2 个答案:

答案 0 :(得分:1)

消息对象的结构取决于处理器类型。因此,您需要做的就是获取处理器的数据表,看看它是如何存储消息和消息框配置的。

这意味着:每个消息对象是由消息的当前数据和消息配置组成的结构。配置引用消息ID过滤器。

根据要存储在该消息对象中的消息类型,您可以为一系列ID配置过滤器,处理器将在从线路接收到它们时为您存储它们。如果您使用传输,则不使用过滤器。

当然,如果消息对象配置为发送或接收,则结构可能还包含用于确认消息已发送或要取消消息传输的标志。

如果您有数据表,我们可以了解有关该消息对象中的内容的更多信息。

答案 1 :(得分:0)

在我看过的CAN总线上发送的消息似乎被称为"帧"。

有两种类型的消息:

  • 远程帧 - 从目前为止我所看到的这些被ECU用于从总线上其他ECU上的微控制器请求数据帧< / LI>
  • 数据框 - 使用该ECU的当前状态回复远程帧,发送这些也可用于模拟&#34;命令&#34;从一个ECU到另一个ECU,例如用于解锁门的RF接收器将(当被触发时)将数据帧发送到门锁系统(通常在由网关ECU连接到罐总线的不同总线上,特定于车辆)并且数据将包含所请求的状态。

此链接可以帮助您作为了解有关CAN协议/帧/总线的更多信息的起点 http://hem.bredband.net/stafni/developer/CAN.htm

根据协议,您与之合作的硬件和操作系统可能会发现SocketCan非常有用,因为您可以使用它来创建原始CAN帧:http://python-can.readthedocs.org/en/latest/socketcan.html