
Scheda HAT open-source per Raspberry Pi che fornisce 4 interfacce CAN per test su bus automobilistici, attacchi CAN-in-the-middle e monitoraggio simultaneo del traffico multi-bus tramite socketcan.
Il 4CAN è un HAT per Raspberry Pi che fornisce 4 interfacce CAN. Il 4CAN è compatibile al 100% con socketcan e can-utils, ed è molto facile da configurare e mettere in funzione. È incluso un adattatore seriale microUSB-UART per facilitare la risoluzione dei problemi del Pi, e ci sono 4 LED a bordo, 2 dei quali sono bidirezionali verde/rosso. E la notizia migliore è che il 4CAN è open source, quindi puoi costruirne uno tuo!
Non esistono molti dispositivi economici che offrono 4 interfacce CAN, compatibili con socketcan, e che siano piccoli, compatti e si adattino bene a un Raspberry Pi. Avere 4 bus CAN permette di testare 4 bus CAN contemporaneamente, oltre a eseguire attacchi CAN-in-the-middle con 2 bus simultaneamente.
Testato sulle seguenti immagini raspbian utilizzando un pi3b+
4can funziona anche con Raspberry pi 4
4can dovrebbe funzionare anche con un pi0w, ma si consiglia di utilizzare almeno un pi3b. Si consiglia anche di usare un dissipatore sul pi, perché il pi può scaldarsi un po' gestendo 4 interfacce can.
Esegui lo script install.sh (richiede sudo) per installare automaticamente tutto, e poi riavvia.
Lo script di installazione farà quanto segue:
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
Prima di utilizzare 4can, assicurati che il modulo del kernel socketcan sia caricato con sudo modprobe can_dev. Non dovrebbe essere necessario poiché il pi caricherà il modulo corretto in base al device tree, ma non fa male controllare.
Una volta installato, esegui 4can.sh per attivare le interfacce CAN
./4can.sh
Collega le interfacce can ed esegui candump -acc any per verificare che funzionino.
nota: richiede can-utils
per installare sudo apt install can-utils
Nota: A volte le interfacce vengono attivate in ordine errato, riavvia il pi e questo dovrebbe risolvere. In caso contrario, potrebbe essere necessario modificare /boot/config.txt.
Il 4can utilizza un certo numero di GPIO sul raspberry pi. I pin GPIO disponibili sono
3, 5, 8, 10, 27, 28, 32, 36 (numerazione fisica dei pin)
Tutti i pin di massa sono collegati insieme e possono essere usati come connessioni di massa. I pin 3.3v e 5v possono essere usati anche per fornire tensione.
Consulta lo schema per maggiori dettagli.
Ricordati di collegare la massa CAN esterna alla massa del 4can (il connettore "C" sul morsetto a vite). Questo garantirà una buona integrità di massa e minimizzerà gli errori di tx/rx.
![]() | ![]() |
Quando si utilizza il 4can con HyenaPlate, i cavi CAN possono essere instradati sotto il pi e collegati alla breadboard. Questo è principalmente per estetica, ma altri vantaggi includono il non dover avvitare/svitare costantemente i morsetti a vite per fare nuovi collegamenti, una più facile risoluzione dei problemi e connessioni più stabili.
Per un'estetica ancora maggiore, si può usare il codice colore dei resistori per assegnare colori ai segnali. Ad esempio, nell'immagine sopra:
| interfaccia | CAN-L | CAN-H |
|---|---|---|
| CAN0 | marrone | rosso |
| CAN1 | arancione | giallo |
| CAN2 | blu | viola |
| CAN3 | verde | bianco |
il nero può essere usato per la massa.
Il 4can è stato ispirato e si basa liberamente su IndustrialBerry QUAD CAN BUS adapter for Raspberry CanBerry. Sebbene abbiamo modificato il design per adattarlo alle nostre esigenze, dobbiamo riconoscere il fantastico lavoro svolto da IndustrialBerry. Il 4CAN, così come IndustrialBerry, sono concessi in licenza sotto licenza Creative Commons Attribuzione Condividi allo stesso modo.
Il merito va anche a George Tarnovsky, per lo schema, il layout, l'assemblaggio e la verifica!