Ubuntu 22.04 (Canalyst ii) 上的 USB 转 CAN 适配器问题

Ubuntu 22.04 (Canalyst ii) 上的 USB 转 CAN 适配器问题

我刚买了一个 USB 转 CAN 适配器 (Waveshare USB-CAN-B),用于通过 CAN 与一些 MCU 通信。正在使用安装在我笔记本电脑上的 Ubuntu 22.04。连接适配器时,我无法看到 can0 接口。以下是一些可能有用的数据。

命令dmesg

[  592.764609] usb 1-4: new full-speed USB device number 4 using xhci_hcd
[  592.935936] usb 1-4: New USB device found, idVendor=04d8, idProduct=0053, bcdDevice= 3.41
[  592.935947] usb 1-4: New USB device strings: Mfr=1, Product=3, SerialNumber=0
[  592.935951] usb 1-4: Product: Chuangxin Tech USBCAN/CANalyst-II
[  592.935955] usb 1-4: Manufacturer: Microchip Technology Inc.

ip 链接显示

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp2s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN mode DEFAULT group default qlen 1000
    link/ether 54:05:db:dd:26:70 brd ff:ff:ff:ff:ff:ff
3: wlp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DORMANT group default qlen 1000
    link/ether b0:a4:60:2c:9b:e7 brd ff:ff:ff:ff:ff:ff
4: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default 
    link/ether 02:42:a4:4c:02:09 brd ff:ff:ff:ff:ff:ff

我不知道是否有区别,但我也在 Windows 机器上试用了 USB-CAN-B,并且能够在 CAN2 上接收从 CAN1 发送的数据。

更新:我取得了一些进展。USB-CAN-B 适配器是 Canalyst II 的变体。显然它没有 SocketCan 驱动程序(请参阅https://nick-black.com/dankwiki/index.php/CANalyst_II)。该链接还提到了一种使用 为设备 ttyUSBx{x->0to5} 创建 6 个 tty 节点的方法sudo modprobe usbserial vendor=0x04d8 product=0x0053。在此之后,我能够将它们连接到 slcan 接口sudo slcand -o -s4 -F ttyUSB0(但这会创建一个 can0 接口,我期望的是 slcan0)。但是,一旦接口启动,我只能从 USB0(连接到 can0)和 USB2(连接到 can2)获得输出。使用 cansend 通过 can0 接口发送数据会点亮设备(CAN1)上一个总线上的状态 LED,通过 can2 发送会点亮第二个 LED(CAN2)。问题是,当我连接 CAN1 和 CAN2 时,运行 candump 时没有收到任何数据。我通过在 Windows 上运行再次检查了硬件,它正常工作。

相关内容