gpt4 book ai didi

linux - RAW CAN 套接字和广播管理器 CAN 套接字之间有什么区别以及如何使用它们?

转载 作者:行者123 更新时间:2023-12-03 08:51:56 42 4
gpt4 key购买 nike

我是 CAN 协议(protocol)的新手,我正在尝试通过 Linux 的 SocketCAN 使用它。然而,我对可用的 2 种不同的 CAN 套接字(RAW 和广播管理器 (BCM))感到困惑。

文档指出 BCM 套接字不适用于发送单独的 CAN 帧。直觉上我猜测 BCM 更适合单主多从配置,但这似乎有些错误。

BCM 的用途是什么?或者说,它们之间的功能有什么区别?在什么情况下我会选择使用广播管理器而不是原始套接字?

最佳答案

我建议查看官方文档: https://www.kernel.org/doc/html/latest/networking/can.html

简而言之:

  • RAW套接字用于接收和发送CAN帧。
  • BCM 套接字用于特殊操作,当您想要将一些与 CAN 消息传递相关的任务卸载到 Linux 内核而不是手动实现时。

例如:您可以使用 RAW 套接字和一些计时器从代码中定期发送消息。

或者您可以通过适当的配置在 BCM 套接字上发送一条消息,然后 Linux 内核将定期为您发送 CAN 消息。要停止这种情况,您可以使用不同的配置再次在 BCM 套接字上发送消息。

BCM套接字还可以用于自动监控接收到的消息。在这种情况下,您指定期望接收每条消息的频率和数据掩码,将消息发送到 BCM 套接字以配置它,然后瞧。仅当触发接收预期消息的超时并且消息根据您提供的数据掩码更改内容时,您才能够从 BCM 套接字读取数据。

关于linux - RAW CAN 套接字和广播管理器 CAN 套接字之间有什么区别以及如何使用它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58369120/

42 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com