我有一个虚拟的 socketCAN 网络。如何阻止特定 ID 在网络上发送?
问问题
53 次
1 回答
0
如果一个节点连接到 CAN 总线,在最低级别上,它不能被阻止向外部发送任何消息。
但是,可以做 3 件事:
添加网关 - 将总线分成多个小总线并将消息从每个子总线传递给其他子总线的设备,它不会阻止任何节点发送消息,但不会将消息传递给其他节点。该解决方案有一些明显的缺点 - 它需要具有多个 CAN 接口的单独设备(最多为总线上的节点数),它为每个消息增加了延迟,并且它使 ACK 位不可用。
对每个节点中收到的消息应用过滤器。同样,这不会阻止发送消息,但会降低节点上的负载。大多数 CAN 控制器都支持通过 ID 或 ID 位掩码进行过滤的硬件。
有一些 CAN 控制器可以阻止消息的发送,同样,这将需要添加这样的控制器并为 CAN 总线中的每个节点进行设置。
于 2018-04-25T18:03:39.907 回答