SocketCan设备在发送特定数量的邮件后停止发送邮件

时间:2018-03-09 01:23:49

标签: socketcan

我正在使用canable CAN-to-USB适配器与CAN总线通信。要初始化SocketCan设备,我使用以下命令:

slcand -c -o -f -s6 /dev/ttyACM0

ifconfig slcan0 up

CAN总线工作在500KHz。我可以传输和阅读消息一段时间。但在发送和接收几分钟后,我再也无法发送消息但仍可以接收消息。

这是ip -details -statistics link show slcan0

的输出
469: slcan0: <NOARP,UP,LOWER_UP> mtu 16 qdisc fq_codel state UNKNOWN mode DEFAULT group default qlen 10
    link/can  promiscuity 0 numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535 
    RX: bytes  packets  errors  dropped overrun mcast   
    179974     24437    0       0       0       0       
    TX: bytes  packets  errors  dropped carrier collsns 
    136        17       0       0       0       0  

如果我断开设备,将其重新插入,然后再次运行slcand命令,它就能正常工作。

1 个答案:

答案 0 :(得分:0)

我的CANAble也有类似的问题。我使用CandleLight固件的情况比较好,请参阅CANAble Getting Started的“替代固件”页面的一半。

我的CANAble偶尔不发送消息(接收仍然有效)仍然有问题,但是固件升级后的频率要低得多。发生这种情况时,我只需要关闭接口并重新启动它,而无需拔掉插头。

此外,您可以尝试将txqueulen增加到大约10,000。这似乎对某些人有用,但是我偶尔还是会被锁死。

  

sudo ifconfig slcan0 txqueuelen 10000