问题描述
我们为 CAN Connect 购买了一个 Revpi Connect 模块,并按照 Kunbus 论坛的 this 主题中的内容进行设置。据我们了解,这将提供适当的终止。
我们还遵循了 Revolution PI 提供的 this 指南。
当检查 CAN 模块的驱动程序是否正确加载时,一切看起来都很好:
$ dmesg | grep can
[ 4.616900] hi3110 spi0.0 can0: 3110 successfully initialized.
[ 107.049422] IPv6: ADDRCONF(NETDEV_UP): can0: link is not ready
[ 107.049463] IPv6: ADDRCONF(NETDEV_CHANGE): can0: link becomes ready
检查 ip 统计结果如下:
$ ip -det -statistics link show can0
5: can0: mtu 16 qdisc pfifo_fast state UP mode DEFAULT group default qlen 10
link/can promiscuity 0
can state ERROR-ACTIVE (berr-counter tx 0 rx 0) restart-ms 0
bitrate 50000 sample-point 0.875
tq 1250 prop-seg 6 phase-seg1 7 phase-seg2 2 sjw 1
hi3110: tseg1 2..16 tseg2 2..8 sjw 1..4 brp 1..64 brp-inc 1
clock 16000000
re-started bus-errors arbit-lost error-warn error-pass bus-off
0 0 0 0 0 0 numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535
RX: bytes packets errors dropped overrun mcast
0 0 0 0 0 0
TX: bytes packets errors dropped carrier collsns
0 0 0 0 0 0
但是,当我们打开 candump
并使用 cansend
发送消息时,candump
不会显示任何流量。
如果我们再次检查 CAN 的 dmesg
,我们会得到这个结果:
$ dmesg | grep can
[ 4.616900] hi3110 spi0.0 can0: 3110 successfully initialized.
[ 107.049422] IPv6: ADDRCONF(NETDEV_UP): can0: link is not ready
[ 107.049463] IPv6: ADDRCONF(NETDEV_CHANGE): can0: link becomes ready
[ 292.285353] can: controller area network core (rev 20170425 abi 9)
[ 292.297811] can: raw protocol (rev 20170425)
如果我们再次检查 ip -statistics
,我们可以看到连接的状态已经进入 ERROR-PASSIVE
:
$ ip -det -statistics link show can0
5: can0: mtu 16 qdisc pfifo_fast state UP mode DEFAULT group default qlen 10
link/can promiscuity 0
can state ERROR-PASSIVE (berr-counter tx 128 rx 0) restart-ms 0
bitrate 50000 sample-point 0.875
tq 1250 prop-seg 6 phase-seg1 7 phase-seg2 2 sjw 1
hi3110: tseg1 2..16 tseg2 2..8 sjw 1..4 brp 1..64 brp-inc 1
clock 16000000
re-started bus-errors arbit-lost error-warn error-pass bus-off
0 0 0 1 1 0 numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535
RX: bytes packets errors dropped overrun mcast
0 0 0 0 0 0
TX: bytes packets errors dropped carrier collsns
0 0 0 0 0 0
我们正在尝试与具有 Ixxat USB2CAN v2 和 Ixxat USB2CAN v2 的计算机通信,位于 50kbps
,具有高速和 FT 设置,但似乎没有任何效果。重置连接,似乎让它回到 ERROR-ACTIVE
状态。
尝试与上述计算机通信时,使用另一台带有 Socketcan 的计算机和另一台 Ixxat USB2CAN v2 设备,一切正常。
也许我还应该提到,如果我们打开 loopback
,我们可以看到我们发送的消息。
我们正在努力了解这是硬件错误还是软件错误。我们的终止是否正常? SocketCAN中有哪些神奇的设置我们忽略了?我们应该从哪里开始调试这个问题?
任何帮助将不胜感激。