【发布时间】:2019-04-10 10:28:42
【问题描述】:
我正在为 GPS 跟踪器制作 CAN 模拟器,它们只记录 CAN 数据,不发送 ACK。是否可以使用 mcp2515/tja1050 使用树莓派发送 CAN 数据,而总线上没有任何会触发 ACK 的设备?
【问题讨论】:
标签: raspberry-pi3 can-bus socketcan
我正在为 GPS 跟踪器制作 CAN 模拟器,它们只记录 CAN 数据,不发送 ACK。是否可以使用 mcp2515/tja1050 使用树莓派发送 CAN 数据,而总线上没有任何会触发 ACK 的设备?
【问题讨论】:
标签: raspberry-pi3 can-bus socketcan
这通常会产生一个连续的重传。
某些设备在仅发送 CAN 帧而不尝试重新传输时具有“一次性”传输模式。如果您的发射器具有这种模式,您可以按照您的描述进行操作,否则您将获得大量重传。
【讨论】:
不,这是不可能的,您至少需要 2 个积极参与通信的节点。然而,这可以通过在总线上提供另一个 CAN 控制器来解决,除了 ACK 部分之外,它不需要做任何智能的事情。
出于开发/调试/测试目的,您可以将自己的节点置于“环回模式”,这意味着它会自己说话。如果您还需要合适的硬件,它会很方便。
【讨论】:
您可以尝试将控制模式presume-ack设置为开启。
假设您正在使用 ip 命令创建您的 can 套接字,类似于
ip link set <DEVICE> type can presume-ack on
这将忽略丢失的 ACK。但是我不确定这是否适用于所有控制器。
【讨论】: