2016-05-10 14 views
0

Linux unterstützt virtuelle kann schnittstelle. es wurde ermöglicht durch:vcan0 schnittstelle linux kommunikation

modprobe vcan 
sudo ip link add dev vcan0 type vcan 
sudo ifconfig vcan0 up 

Bei der Verwendung von cam-utils wie camsniffer und cansend

cansend vcan0 321#1212 
cansniffer vcan0 

Ich konnte Lage können Pakete sehen; aber nur innerhalb desselben Hosts. Ich habe Ubuntu VirtualBox Maschine ausprobiert. Sowohl das Gast- als auch das Host-Betriebssystem werden über den Nur-Host-Adapter vboxnet0 miteinander verbunden.

versuchte auch SocketCAN socket(PF_CAN, SOCK_RAW, CAN_RAW) aber nicht in der Lage auf einer anderen Maschine zu empfangen (funktioniert innerhalb derselben Maschine) Während mit Broadcast-Manager socket(PF_CAN, SOCK_DGRAM, CAN_BCM) zu versuchen stderr Ausführung sagt `Operation

einfach nicht

unterstützt, könnte man CAN-Pakete zwischen senden und empfangen Linux-Hosts? Es spielt keine Rolle, ob die virtuelle Maschine (vboxnet0) oder physisch verbunden ist (Ethernet).

Hinweis: Ich habe Ubuntu 16.04 und 12.04 als Host- bzw. Gastbetriebssystem verwendet.

Antwort

2

CAN verwendet seinen eigenen physikalischen Bus. Die vcan Geräte wurden zum Testen von Software entwickelt, die über den Bus kommuniziert, ohne dass eine tatsächliche physische Verbindung erforderlich ist. Sie werden nicht vom Hypervisor bereitgestellt, sondern sind Teil von SocketCAN.

Sie versuchen, einen virtuellen CAN-Bus in Virtualbox aufzubauen, mehrere Maschinen miteinander zu verbinden, als ob sie alle CAN-Controller hätten und mit einem physischen Bus verbunden wären. Ich habe gesucht, aber es scheint, dass eine solche Funktionalität nicht existiert, und darüber hinaus wahrscheinlich eine Erweiterung für VirtualBox nicht wahrscheinlich ist.

Gibt es einen bestimmten Grund, warum Sie CAN verwenden möchten? Versuchen Sie, Daten von einem Steuergerät zu holen oder mit eingebetteter Hardware zu kommunizieren, die über einen CAN-Controller verfügt? Soweit Desktop-PC-Kommunikation, ist Ethernet viel bequemer, schneller und gut unterstützt.

+0

Lernen, eine virtuelle Umgebung für Autosimulation einzurichten. Beispiel, Türschloss-Simulation. Ein Programm wird geschrieben, um das Ein- und Ausschalten der Fahrertür zu aktivieren. Ergebnisse in 3 verbleibenden Tür erhalten CAN-Nachricht und Sperren/entsperrt automatisch. Die Programme zeigen nur die Nachricht gesperrt/entsperrt auf dem Bildschirm. – Gopi

Verwandte Themen