【问题标题】:Is ACK mandatory in CAN bus communicationCAN总线通信中是否强制ACK
【发布时间】:2019-04-10 10:28:42
【问题描述】:

我正在为 GPS 跟踪器制作 CAN 模拟器,它们只记录 CAN 数据,不发送 ACK。是否可以使用 mcp2515/tja1050 使用树莓派发送 CAN 数据,而总线上没有任何会触发 ACK 的设备?

【问题讨论】:

    标签: raspberry-pi3 can-bus socketcan


    【解决方案1】:

    这通常会产生一个连续的重传。

    某些设备在仅发送 CAN 帧而不尝试重新传输时具有“一次性”传输模式。如果您的发射器具有这种模式,您可以按照您的描述进行操作,否则您将获得大量重传。

    【讨论】:

      【解决方案2】:

      不,这是不可能的,您至少需要 2 个积极参与通信的节点。然而,这可以通过在总线上提供另一个 CAN 控制器来解决,除了 ACK 部分之外,它不需要做任何智能的事情。

      出于开发/调试/测试目的,您可以将自己的节点置于“环回模式”,这意味着它会自己说话。如果您还需要合适的硬件,它会很方便。

      【讨论】:

        【解决方案3】:

        您可以尝试将控制模式presume-ack设置为开启。

        假设您正在使用 ip 命令创建您的 can 套接字,类似于

        ip link set <DEVICE> type can presume-ack on
        

        这将忽略丢失的 ACK。但是我不确定这是否适用于所有控制器。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-08-04
          • 1970-01-01
          • 2023-04-08
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多