USB an seriellen Adapter anschließen CANBUS und can-utils ubuntu?

17

Ich habe diesen Adapter und versuche verzweifelt, ihn in Ubuntu zu mounten, damit ich can-utilsdas Gerät überwachen kann, aber ich versage.

Ich versuche, mit can-utils über eine serielle Schnittstelle mit dem Can-Bus-Adapter in 14.04 zu kommunizieren. Dies ist das Canopen-Gerät, auf das ich zugreifen möchte, und dies ist der Adapter, den ich verwende

dmesg:

[ 4316.555254] usb 3-3: new full-speed USB device number 8 using xhci_hcd
[ 4316.572534] usb 3-3: New USB device found, idVendor=1a86, idProduct=7523
[ 4316.572541] usb 3-3: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[ 4316.572545] usb 3-3: Product: USB2.0-Serial
[ 4316.573058] ch341 3-3:1.0: ch341-uart converter detected
[ 4316.574083] usb 3-3: ch341-uart converter now attached to ttyUSB1
[ 4836.845113] CAN device driver interface
[ 5389.346203] can: broadcast manager protocol (rev 20120528 t)
[ 5570.910652] systemd-hostnamed[23407]: Warning: nss-myhostname is not installed. Changing the local hostname might make it unresolveable. Please install nss-myhostname!

Das ist die dmesg-Ausgabe für das Gerät

Was ich denke ist das Gerät.

lsusb gibt mir:

Bus 003 Device 002: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter

Ich habe es geschafft, es auf slcan0 zu mounten:

sudo slcand -o -s6 -t hw -S 3000000 /dev/ttyUSB2

ip link set up slcan0

IP-Link gibt mir dann:

6: slcan1: <NOARP,UP,LOWER_UP> mtu 16 qdisc pfifo_fast state UNKNOWN mode DEFAULT group default qlen 10
    link/can 

Egal was ich dann per can-send werfe, ich bekomme keine Antwort zurück ...

vimes1984
quelle
> [ 4316.574083] usb 3-3: ch341-uart converter now attached to ttyUSB1und > sudo slcand -o -s6 -t hw -S 3000000 /dev/ttyUSB2scheint nicht zu passen?
Hannu
Fließen die Daten physikalisch am Bus? Hast du es bei Oscilloscope gesehen?
Ruslan Gerasimov
Nein, nichts scheint von überall auszugeben ....
vimes1984
1
Hast du den Bus richtig terminiert? CAN-Bus verwendet Abschlusswiderstände. Ohne sie geht es nicht.
Ruslan Gerasimov
5
@ vimes1984, USB-Adapter unterstützt maximal 1M Baud und Transmitter unterstützt zwischen 20K und 1M. Der von Ihnen erwähnte Befehl war mit 3M Baud. Versuchen Sie es mit einer niedrigeren Baudrate von 1M ( -S 1000000) oder weniger.
user.dz

Antworten:

2

Ich weiß, dass dies ein sehr alter Thread ist. Aber es ist immer noch unbeantwortet und als ich nach einer Lösung suchte, bin ich auf diesen Thread gestoßen.

Die Lösung für dieses Problem ist, dass slcand diese Schnittstelle nicht unterstützt. Um es trotzdem nutzen zu können, muss ein Mapper zwischen Interface und Socket verwendet werden. Diesen Adapter finden Sie unter https://github.com/alexmohr/usb-can

Nach der Installation einfach ausführen usbcan -s 500000 -d /dev/ttyUSB0

Alex
quelle