我是 CAN 协议的新手,我正在尝试通过 Linux 的 SocketCAN 来使用它。但是,我对可用的 2 个不同的 CAN 套接字感到困惑,即 RAW 和广播管理器 (BCM)。
文档指出 BCM 套接字不适用于发送单个 CAN 帧。直觉上我猜 BCM 更适合单主多从配置,但这似乎有些错误。
BCM 的用途是什么?或者更确切地说,它们之间在功能方面有什么区别?在什么样的情况下我选择使用广播管理器而不是原始套接字?
我建议查看官方文档: https ://www.kernel.org/doc/html/latest/networking/can.html
简而言之:
例如:您可以使用 RAW 套接字和一些计时器从您的代码中定期发送消息。
或者您可以通过适当的配置在 BCM 套接字上发送一条消息,然后 Linux 内核会定期为您发送 CAN 消息。要停止这种情况,您可以使用不同的配置再次在 BCM 套接字上发送消息。
BCM 套接字也可用于自动监控接收到的消息。在这种情况下,您指定希望接收每条消息的频率和数据掩码,向 BCM 套接字发送消息以进行配置,然后瞧。仅当触发接收预期消息的超时并且消息根据您提供的数据掩码更改内容时,您才能从 BCM 套接字读取。