1

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

4

1 回答 1

0

我的 CANAble 也有类似的问题。我对 CandleLight 固件的运气更好,请参阅“替代固件”页面的大约一半的 CANAble 入门。

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

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

须藤 ifconfig slcan0 txqueuelen 10000

于 2018-06-29T15:36:33.337 回答