在CAN总线通信中是否必须使用ACK

时间:2019-04-10 10:28:43

标签: raspberry-pi3 can-bus socketcan

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

3 个答案:

答案 0 :(得分:0)

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

某些设备仅发送CAN帧而不尝试重发时具有“一次性”传输模式。如果您的发送器具有此模式,则可以执行您描述的操作,否则您将获得很多重传。

答案 1 :(得分:0)

否,这是不可能的,您需要至少2个正在积极参与通信的节点。但是,可以通过在总线上仅提供另一个CAN控制器来解决此问题,除了ACK部分外,该控制器无需执行任何其他智能操作。

但是,出于开发/调试/测试的目的,您可以将自己的节点置于“回送模式”,这意味着它可以自言自语。如果您需要适当的硬件,可以很方便。

答案 2 :(得分:0)

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

假设您正在使用ip命令来创建can socket,就像这样

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

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