【问题标题】:SocketCan device stops sending messages after a specific amount of messages have been sentSocketCan 设备在发送特定数量的消息后停止发送消息
【发布时间】:2018-03-09 01:23:49
【问题描述】:

我正在使用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 命令,它就可以工作了。

【问题讨论】:

    标签: socketcan


    【解决方案1】:

    我的 CANAble 也有类似的问题。我对 CandleLight 固件的运气更好,请参阅 CANAble Getting Started 大约在页面中间的“替代固件”。

    我的 CANAble 仍然存在问题,无法每隔一段时间发送消息(接收仍然有效),但固件升级后它的频率要低得多。发生这种情况时,我只需要取下接口并重新启动它,无需拔掉电源。

    此外,您可以尝试将 txqueulen 增加到 10,000 左右。这似乎对某些人有用,但我仍然偶尔会被锁定。

    sudo ifconfig slcan0 txqueuelen 10000

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-10
      • 1970-01-01
      • 2015-10-04
      • 1970-01-01
      • 2019-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多