
HAT Raspberry Pi open source fournissant 4 interfaces CAN pour les tests de bus automobiles, les attaques CAN-in-the-middle et la surveillance simultanée du trafic multi-bus via socketcan.
Le 4CAN est un HAT pour Raspberry Pi qui fournit 4 interfaces CAN. Le 4CAN est 100% compatible avec socketcan et can-utils, et très facile à mettre en route. Un adaptateur série microUSB-UART est inclus pour faciliter le dépannage du Pi, et il y a 4 LED sur la carte, dont 2 bidirectionnelles vert/rouge. Et la meilleure nouvelle est que le 4CAN est open source, donc vous pouvez construire le vôtre !
Il n'y a pas beaucoup d'appareils bon marché qui offrent 4 interfaces CAN, compatibles avec socketcan, petits, compacts et qui s'adaptent bien à un Raspberry Pi. Avoir 4 bus CAN permet de tester 4 bus CAN simultanément, ainsi que de faire du man-in-the-middle CAN avec 2 bus en même temps.
Testé sur les images raspbian suivantes avec un pi3b+
4can fonctionne aussi avec le Raspberry Pi 4
4can devrait aussi fonctionner avec un pi0w, mais il est recommandé d'utiliser au moins un pi3b. Il est également recommandé d'utiliser un dissipateur thermique sur le Pi, car le Pi peut chauffer un peu en faisant tourner 4 interfaces CAN.
exécutez le script install.sh (nécessite sudo) pour installer automatiquement le tout, puis redémarrez.
Le script d'installation fera ce qui suit :
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
# l'ordre des interfaces est important
# c'est-à-dire que can3,can2,can1,can0 doit être préservé
# sinon can0 ne sera pas vraiment 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
Avant d'utiliser 4can, assurez-vous que le module noyau socketcan est chargé avec sudo modprobe can_dev. Cela ne devrait pas être nécessaire puisque le Pi chargera le module noyau correct basé sur l'arbre de périphérique, mais cela ne fait pas de mal de vérifier.
Une fois installé, exécutez 4can.sh pour activer les interfaces CAN
./4can.sh
câblez les interfaces CAN et faites candump -acc any pour vérifier qu'elles fonctionnent.
remarque : nécessite can-utils
pour installer sudo apt install can-utils
Remarque : Parfois les interfaces apparaissent dans le désordre, redémarrez le Pi et cela devrait résoudre le problème. Sinon, vous devrez peut-être modifier /boot/config.txt.
Le 4can utilise un certain nombre de GPIO sur le Raspberry Pi. Les broches GPIO disponibles sont
3, 5, 8, 10, 27, 28, 32, 36 (numérotation physique des broches)
Toutes les broches de masse sont reliées entre elles et peuvent être utilisées comme connexions de masse. Les broches 3,3 V et 5 V peuvent également être utilisées pour fournir une tension.
Consultez le schéma pour plus de détails.
N'oubliez pas de connecter la masse CAN externe à la masse du 4can (la connexion "C" sur le bornier à vis). Cela garantira une bonne intégrité de la masse et minimisera les erreurs de tx/rx.
![]() | ![]() |
Lorsque vous utilisez le 4can avec la HyenaPlate, les fils CAN peuvent être acheminés sous le Pi et connectés à la plaque d'essai. C'est principalement pour l'esthétique, mais d'autres avantages incluent le fait de ne pas avoir à visser/dévisser constamment les borniers à vis pour faire de nouvelles connexions, un dépannage plus facile et des connexions plus stables.
Pour encore plus d'esthétique, le code de couleurs des résistances peut être utilisé pour attribuer des couleurs aux signaux. Par exemple, dans l'image ci-dessus :
| interface | CAN-L |
|---|
le noir peut être utilisé pour la masse.
Le 4can a été inspiré par et est basé librement sur le IndustrialBerry QUAD CAN BUS adapter for Raspberry CanBerry. Bien que nous ayons modifié la conception pour répondre à nos besoins, nous devons créditer le travail fantastique réalisé par IndustrialBerry. Le 4CAN, ainsi que l'IndustrialBerry, sont sous licence Creative Commons Attribution Share-Alike.
Le crédit doit également être donné à George Tarnovsky, pour le schéma, la disposition, l'assemblage et la vérification !
| CAN-H |
|---|
| CAN0 | marron | rouge |
| CAN1 | orange | jaune |
| CAN2 | bleu | violet |
| CAN3 | vert | blanc |