
Open-Source-Raspberry-Pi-HAT mit 4 CAN-Schnittstellen für Automobil-Bus-Tests, CAN-in-the-middle-Angriffe und gleichzeitige Multi-Bus-Verkehrsüberwachung über socketcan.
Der 4CAN ist ein Raspberry Pi HAT, der 4 CAN-Schnittstellen bereitstellt. Der 4CAN ist 100% kompatibel mit socketcan und can-utils und ist sehr einfach einzurichten. Ein microUSB-UART-Serielladapter ist enthalten, um die Fehlersuche am Pi zu erleichtern, und es gibt 4 LEDs auf der Platine, von denen 2 bidirektional grün/rot sind. Und die beste Nachricht ist, dass der 4CAN Open Source ist, sodass Sie Ihren eigenen bauen können!
Es gibt nicht viele günstige Geräte, die 4 CAN-Schnittstellen bieten, mit socketcan kompatibel sind und klein, kompakt sind und gut mit einem Raspberry Pi zusammenpassen. Mit 4 CAN-Bussen kann man 4 CAN-Busse gleichzeitig testen sowie CAN-in-the-middle mit 2 Bussen gleichzeitig durchführen.
Getestet auf folgenden Raspbian-Images mit einem pi3b+
4can funktioniert auch mit dem Raspberry Pi 4
4can sollte auch mit einem pi0w funktionieren, aber es wird empfohlen, mindestens einen pi3b zu verwenden. Es wird auch empfohlen, einen Kühlkörper auf dem Pi zu verwenden, da der Pi beim Betrieb von 4 CAN-Schnittstellen etwas warm werden kann.
Führen Sie das Skript install.sh (erfordert sudo) aus, um alles automatisch zu installieren, und starten Sie dann neu.
Das Installationsskript führt Folgendes aus:
sudo mkdir /boot/overlays/bak
sudo cp /boot/overlays/mcp2515* /boot/overlays/bak
sudo cp ./dtbo/*.dtbo /boot/overlays
sudo cp /boot/config.txt /boot/config.txt.bak
cat << EOF >> /boot/config.txt
# 4CAN setup
# the order of the interfaces matter
# ie can3,can2,can1,can0 must be preserved
# otherwise can0 will not REALLY be can0
dtparam=spi=on
dtoverlay=spi1-2cs
dtoverlay=mcp2515-can3,oscillator=16000000,interrupt=24
dtoverlay=mcp2515-can2,oscillator=16000000,interrupt=23
dtoverlay=mcp2515-can1,oscillator=16000000,interrupt=25
dtoverlay=mcp2515-can0,oscillator=16000000,interrupt=22
# enable uart
enable_uart=1
EOF
Stellen Sie vor der Verwendung von 4can sicher, dass das Socketcan-Kernelmodul mit sudo modprobe can_dev geladen ist. Dies sollte nicht notwendig sein, da der Pi das richtige Kernelmodul basierend auf dem Device Tree lädt, aber es schadet nicht, dies zu überprüfen.
Nach der Installation führen Sie 4can.sh aus, um die CAN-Schnittstellen zu aktivieren
./4can.sh
Verkabeln Sie die CAN-Schnittstellen und führen Sie candump -acc any aus, um zu überprüfen, ob sie funktionieren.
Hinweis: Erfordert can-utils. Zur Installation: sudo apt install can-utils
Hinweis: Manchmal erscheinen die Schnittstellen in falscher Reihenfolge. Starten Sie den Pi neu, das sollte das Problem beheben. Wenn nicht, müssen Sie möglicherweise /boot/config.txt bearbeiten.
Der 4CAN verwendet eine Reihe von GPIOs auf dem Raspberry Pi. Die verfügbaren GPIO-Pins sind
3, 5, 8, 10, 27, 28, 32, 36 (physikalische Pin-Nummerierung)
Alle Massepins sind miteinander verbunden und können als Masseanschlüsse verwendet werden. Die 3,3V- und 5V-Pins können ebenfalls zur Spannungsversorgung genutzt werden.
Weitere Einzelheiten finden Sie im Schaltplan.
Denken Sie daran, die externe CAN-Masse mit der 4CAN-Masse zu verbinden (der "C"-Anschluss an der Schraubklemme). Dadurch wird eine gute Masseintegrität sichergestellt und tx/rx-Fehler minimiert.
![]() | ![]() |
Wenn Sie den 4CAN mit der HyenaPlate verwenden, können die CAN-Kabel unter dem Pi verlegt und mit dem Breadboard verbunden werden. Dies dient hauptsächlich der Optik, aber andere Vorteile sind, dass die Schraubklemmen nicht ständig fest- und losgeschraubt werden müssen, um neue Verbindungen herzustellen, eine einfachere Fehlersuche und stabilere Verbindungen.
Für noch mehr Ästhetik kann der Widerstands-Farbcode verwendet werden, um Signalen Farben zuzuweisen. Zum Beispiel im obigen Bild:
| Schnittstelle | CAN-L |
|---|
Schwarz kann für Masse verwendet werden.
Der 4CAN wurde vom IndustrialBerry QUAD CAN BUS Adapter für Raspberry CanBerry inspiriert und basiert lose darauf. Obwohl wir das Design an unsere Bedürfnisse angepasst haben, müssen wir die fantastische Arbeit von IndustrialBerry würdigen. Der 4CAN sowie der IndustrialBerry sind unter einer Creative Commons Attribution Share-Alike Lizenz lizenziert.
Anerkennung gebührt auch George Tarnovsky für Schaltplan, Layout, Bestückung und Verifikation!
| CAN-H |
|---|
| CAN0 | braun | rot |
| CAN1 | orange | gelb |
| CAN2 | blau | violett |
| CAN3 | grün | weiß |