
HAT open-source para Raspberry Pi que fornece 4 interfaces CAN para testes de barramento automotivo, ataques de intermediário CAN e monitoramento simultâneo de tráfego em múltiplos barramentos via socketcan.
O 4CAN é um HAT para Raspberry Pi que fornece 4 interfaces CAN. O 4CAN é 100% compatível com socketcan e can-utils, e é muito fácil de configurar e usar. Um adaptador serial microUSB-UART está incluído para facilitar a depuração do Pi, e há 4 LEDs na placa, sendo 2 bidirecionais verde/vermelho. E a melhor notícia de todas é que o 4CAN é open source, então você pode construir o seu próprio!
Não existem muitos dispositivos baratos que ofereçam 4 interfaces CAN, compatíveis com socketcan, e que sejam pequenos, compactos e se encaixem bem em um Raspberry Pi. Ter 4 barramentos CAN permite testar 4 barramentos CAN simultaneamente, além de fazer CAN-in-the-middle com 2 barramentos simultaneamente.
Testado nas seguintes imagens raspbian usando um pi3b+
O 4can também funciona com o Raspberry Pi 4
O 4can também deve funcionar com um pi0w, mas é recomendado usar pelo menos um pi3b. Também recomenda-se usar um dissipador de calor no Pi, porque o Pi pode esquentar um pouco ao executar 4 interfaces CAN.
execute o script install.sh (requer sudo) para instalar tudo automaticamente e, em seguida, reinicie.
O script de instalação fará o seguinte:
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
Antes de usar o 4can, certifique-se de que o módulo do kernel socketcan está carregado com sudo modprobe can_dev. Isso não deveria ser necessário já que o Pi carregará o módulo correto com base na device tree, mas não custa verificar.
Após a instalação, execute o 4can.sh para ativar as interfaces CAN
./4can.sh
Conecte as interfaces CAN e execute candump -acc any para verificar se estão funcionando.
nota: requer can-utils
para instalar sudo apt install can-utils
Nota: Às vezes as interfaces sobem fora de ordem, reinicie o Pi e isso deve resolver. Se não, talvez seja necessário modificar /boot/config.txt.
O 4can utiliza vários GPIO no Raspberry Pi. Os pinos GPIO disponíveis para uso são
3, 5, 8, 10, 27, 28, 32, 36 (numeração física dos pinos)
Todos os pinos de terra são interligados e podem ser usados como conexões de terra. Os pinos de 3,3V e 5V também podem ser usados para fornecer tensão.
Consulte o esquemático para mais detalhes.
Lembre-se de conectar o terra CAN externo ao terra do 4can (a conexão "C" no terminal de parafuso). Isso garantirá uma boa integridade do terra e minimizará erros de tx/rx.
![]() | ![]() |
Ao usar o 4can com a HyenaPlate, os fios CAN podem ser roteados por baixo do Pi e conectados à protoboard. Isso é principalmente por estética, mas outros benefícios incluem não ter que apertar/afrouxar constantemente os terminais de parafuso para fazer novas conexões, facilidade na depuração e conexões mais estáveis.
Para ainda mais estética, o código de cores de resistores pode ser usado para atribuir cores aos sinais. Por exemplo, na imagem acima:
| interface | CAN-L |
|---|
preto pode ser usado para terra.
O 4can foi inspirado e é baseado livremente no IndustrialBerry QUAD CAN BUS adapter for Raspberry CanBerry. Embora tenhamos modificado o design para atender às nossas necessidades, devemos dar crédito ao fantástico trabalho realizado pela IndustrialBerry. O 4CAN, assim como o IndustrialBerry, são licenciados sob uma licença Creative Commons Attribution Share-Alike.
Crédito também deve ser dado a George Tarnovsky, pelo esquemático, layout, montagem e verificação!
| CAN-H |
|---|
| CAN0 | marrom | vermelho |
| CAN1 | laranja | amarelo |
| CAN2 | azul | violeta |
| CAN3 | verde | branco |