我们正在尝试使用 Apacer 的 EFC-D10 模块和 CP2105 双 USB 转 UART 桥接控制器使 Canbus 在工业 PC 上工作。我们使用的是 Linux 内核 4.19.129,其中包含 CP2105 的驱动程序。来自 dmesg:
[ 2.347510] usb 1-3: Product: CP2105 Dual USB to UART Bridge Controller
[ 2.349828] usb 1-3: Manufacturer: Silicon Labs
[ 2.351386] usb 1-3: SerialNumber: 00A1240E
[...]
[ 5.262243] usbcore: registered new interface driver cp210x
[ 5.263581] usbserial: USB Serial support registered for cp210x
[ 5.271657] cp210x 1-3:1.0: cp210x converter detected
[ 5.302067] usb 1-3: cp210x converter now attached to ttyUSB0
[ 5.303403] cp210x 1-3:1.1: cp210x converter detected
[ 5.307509] usb 1-3: cp210x converter now attached to ttyUSB1
到目前为止一切都很好。然后直接调用 slcand 似乎可以工作:
slcand -o -c -f -s4 /dev/ttyUSB0 can0
ip link set can0 up
来自journalctl:
slcand[1266]: starting on TTY device /dev/ttyUSB0
slcand[1267]: attached TTY /dev/ttyUSB0 to netdevice slcan0
kernel: can0: renamed from slcan0
slcand[1267]: netdevice slcan0 renamed to can0
systemd-networkd[140]: can0: Link UP
systemd-networkd[140]: can0: Gained carrier
我们可以使用 candump 查看通过 cansend 发送的本地流量,但我们看不到任何外部流量。我们尝试设置串行波特率(使用 -S 选项)以及我们可以从 slcand 控制的其他所有内容,但这没有什么区别。我们已经使用普通的 USB 转 Can 适配器进行了测试,使用相同的命令启动 slcan,并且它可以工作。我们已经阅读了用户手册。
这当然可能是硬件问题,但我读到不同的卡对 SLCAN 协议的支持不同。难道slcand不支持这张卡?
所以真正的问题是,有人有在 Linux 上使用 Apacer EFC-D10 模块的经验吗? (我们已联系制作方,但未得到任何反馈。)