我有一个虚拟的socketCAN网络。如何阻止特定ID在网络上发送?
答案 0 :(得分:0)
如果节点连接到CAN总线,则在最低级别无法阻止外部发送任何消息。
但是,有三件事可以做:
添加网关 - 将总线分成多个小型总线并将消息从每个子总线传递给其他子总线的设备,它不会阻止任何节点发送消息,但它不会将其传递给其他。这个解决方案有一些明显的缺点 - 它需要一个带有多个CAN接口的独立设备(最多可达总线上的节点数),它会为每条消息增加一个延迟,并使ACK位无法使用。
< / LI>在每个节点中为收到的消息应用过滤器。同样,这不会阻止发送消息,但会降低节点上的负载。大多数CAN控制器都具有硬件支持,可通过ID或ID的位掩码进行过滤。
有些CAN控制器可以阻止发送消息,同样,这需要添加这样的控制器并为CAN总线中的每个节点进行设置。