SlideShare uma empresa Scribd logo
1 de 55
Baixar para ler offline
Rede CAN em Linux
Embarcado para
Aplicações Conectadas
Prof. André Márcio de Lima Curvello – contato@andrecurvello.com.br
Sobre mim
2
André Márcio de Lima Curvello
• Engenheiro de Computação – USP São Carlos
• MBA em Gestão de TI - UNIFRAN
• Mestre em Ciências – USP São Carlos
• Analista de Tecnologia – Padtec S/A
• Articulista do Portal Embarcados e FilipeFlop
• Professor na Pós-Graduação em Sistemas
Embarcados – UNISAL São José – Campinas
“Se não puder voar, corra.
Se não puder correr, ande.
Se não puder andar, rasteje.
Mas continue em frente de
qualquer jeito.
Martin Luther King
!
Linux e CAN
Vamos começar pelas partes
4
O que é Linux Embarcado?
▸ Mesmo Linux que o usado em um PC
▸ Mas com algumas “adaptações” para sistemas
embarcados
▸ Precisa de um sistema com microprocessador
▸ Uso em ascensão!
▸ Redução de custos de componentes
▸ Facilidade no desenvolvimento e manutenção
5
6
O que é Linux Embarcado?
7
O que é Linux Embarcado?
▸ Linux Embarcado favorece aplicações que usem:
▸ Recursos multimídia (áudio, fotos, vídeos)
▸ Rede
▸ Criptografia
▸ Banco de Dados
▸ Interface Gráfica
8
O que é Linux Embarcado?
9
Linux Embarcado - Estrutura
10
Fonte: Traduzido pelo Sergio Prado de http://free-electrons.com/
Fonte: http://free-electrons.com/
E a CAN?
11
O que é Rede CAN?
▸ Desenvolvido pela Bosch para redes de
comunicação veiculares na década de 80
▸ Publicado em 1986 na SAE
▸ Troca de mensagens entre ECUs
▸ Electronic Control Unit
▸ Robusto em ambientes com ruído!
▸ Baixo custo
12
O que é Rede CAN?
▸ Protocolo multi-mestre
▸ Broadcast
▸ Comunicação serial
▸ Baseado em mensagens
▸ Sem “endereços”
▸ IDs
▸ Mensagens
13
O que é Rede CAN?
Standard CAN – Versão 2.0A
▸ ID de 11 bit
▸ 2048 ids diferentes!
14
Fonte: http://www.ti.com
Transmissão de dados em CAN
15
Fonte: https://www.linkedin.com/pulse/automotive-can-bus-system-explained-kiril-mucevski
Transmissão de dados em CAN
16
Fonte: https://www.linkedin.com/pulse/automotive-can-bus-system-explained-kiril-mucevski
Topologia de uma rede CAN
17
Fonte: https://www.linkedin.com/pulse/automotive-can-bus-system-explained-kiril-mucevski
Topologia de um nó em CAN
18
Fonte: http://www.ti.com
CAN Controller?
19
CAN Transceiver?
20
SN65HVD230
Fonte: http://www.ti.com
CAN Controller + Transceiver?
21
CAN – Muito usado nos veículos!
22
A IntegraçãoA integração de um sistema operacional
com uma rede robusta em automação
23
Quando aconteceu?
▸ Contribuição do
Volkswagen Research
▸ Drivers e pilha de rede
chamada SocketCAN
▸ Código-aberto
24
Documentação
▸ Já disponível na árvore do Kernel Linux
▸ Link:
▸ https://www.kernel.org/doc/Documentation/networking/can.txt
▸ Documentação tem por base o SocketCAN
▸ Trata de CAN como interface de rede
▸ Especifica chamadas (API)
▸ E estruturas de dados
25
Ferramentas
▸ Tudo parte do can-utils
▸ Link: https://github.com/linux-can/can-utils/
▸ candump - display, filter and log CAN data to files
▸ canplayer - replay CAN logfiles
▸ cansend - send a single frame
▸ cangen - generate (random) CAN traffic
▸ cansniffer - display CAN data content differences (just 11bit
CAN IDs)
26
Linux Embarcado + Rede CAN
▸ SocketCAN é uma API em C
▸ Mas há “wrappers” para outras linguagens
▸ Como por exemplo... Python!
▸ Biblioteca python-can
▸ E suporte no Python 3.3 em diante
27
Linux Embarcado + Rede CAN - Setup
▸ Módulos habilitados em Kernel
28
Linux Embarcado + Rede CAN - Setup
▸ Configuração em Device-Tree
29
Linux Embarcado + Rede CAN - Setup
▸ Carregamento dos módulos
30
# modprobe can
# modprobe can_raw
# modprobe can_dev
Linux Embarcado + Rede CAN - Setup
▸ Setup da Rede
31
# ip link set can0 type can bitrate 500000
# ip link set can0 up
# ip link show can0
Desenvolvimento com CAN em Linux
▸ SocketCAN é uma API em C
▸ Mas há “wrappers” para outras linguagens
▸ Como por exemplo... Python!
▸ Biblioteca python-can
▸ E suporte no Python 3.3 em diante
32
Desenvolvimento com CAN em Linux - C
33
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <net/if.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <linux/can.h>
#include <linux/can/raw.h>
Desenvolvimento com CAN em Linux - C
34
CAN em Linux - Python
35
36
Fonte: https://fabiobaltieri.com/2013/07/23/hacking-into-a-vehicle-can-bus-toyothack-and-socketcan/
37
38
Muito cuidado ao ligar
em um veículo...
Velocidade / baudrate
da CAN é
fundamental!
Como tornar isso real? Plaquinhas!
39
BeagleBone Black
▸AM335x 1GHz ARM® Cortex-A8
▸2x PRU 32-bit microcontrollers
▸Controller CAN
+Transceiver
40
Toradex Colibri NXP iMX6 + Placa base Viola
 Módulo SODIMM NXP
iMX6S
 CPU Cortex A9 – 800 MHz
a 1.0 GHz
 Controller CAN
+ Transceiver CAN
41
Qualcomm DragonBoard 410c
42
▸ Quad-core ARM® Cortex® A53
Snapdragon 410E Processor at up to
1.2 GHz per core
▸ 1GB 533MHz LPDDR3 memory
▸ 8GB eMMC 4.51 storage
▸ WiFi + BT + GPS
▸ Android / Linux / Win10 IoT
+ Transceiver e Controller CAN
AutoPi – Raspberry Pi Zero Wireless com OBDII
43
44
45
Módulo
Conexões
Execução
Transceiver
Telemetria de Dados Coletados
Execução em um veículo
46
 Termos principais:
 ID – identificação da mensagem
 DLC – tamanho em bytes da mensagem
 Payload – mensagem propriamente
(bytes)
Telemetria de Dados Coletados
47
+
+
Telemetria de Dados Coletados
48
Áreas de Atuação / Aplicação
▸ Automotivo
▸ Militar
▸ Maquinário Industrial
▸ Maquinário Agrícola
▸ Controle de Elevadores
▸ Sistemas Médicos
▸ Robótica
▸ Drones
▸ Etc
49
50
51
• Autor: Derek Molloy
• De A a Z com Linux Embarcado na Beagle
Bone Black
• Link:
https://www.amazon.com/Exploring-BeagleBone-
Techniques-Building-Embedded/dp/1118935128
Exploring BeagleBone: Tools and Techniques for Building with Embedded Linux
52
• Livro disponibilizado gratuitamente na
forma de ebook: PDF!
• Objetivo: Inspirar a criação de Internet das
Coisas
• Disponível no Google mais próximo de
você! Ou...
http://iotcomicbook.org/
Inspirando a Internet das Coisas!
53
• Livro disponibilizado gratuitamente via web.
• Informações sobre como explorar recursos
do veículo (como informações da rede
CAN).
• Link:
http://opengarages.org/handbook/
The Car Hacker’s Handbook
54
Obrigado!
Perguntas?
Contato
55
@andremlcurvello
http://youtube.com/profandrecurvello
http://andrecurvello.com.br
contato@andrecurvello.com.br
http://facebook.com/profandrecurvello

Mais conteúdo relacionado

Mais procurados

Catálogo peças biz 100(1).pdf
Catálogo peças biz 100(1).pdfCatálogo peças biz 100(1).pdf
Catálogo peças biz 100(1).pdfLeoNeves5
 
29 manual-do-palio-e-siena-fire
29 manual-do-palio-e-siena-fire29 manual-do-palio-e-siena-fire
29 manual-do-palio-e-siena-fireJose Tavares
 
Códigos de falhas gm
Códigos de falhas gmCódigos de falhas gm
Códigos de falhas gmAndre Cardoso
 
Rainha das Sete-2012 parte 1
Rainha das Sete-2012 parte 1Rainha das Sete-2012 parte 1
Rainha das Sete-2012 parte 1mapple2012
 
Manaul de serviço ms cbx250 (2006) 00 x6b-kpf-003 18. luzes
Manaul de serviço ms cbx250 (2006)   00 x6b-kpf-003 18. luzesManaul de serviço ms cbx250 (2006)   00 x6b-kpf-003 18. luzes
Manaul de serviço ms cbx250 (2006) 00 x6b-kpf-003 18. luzesThiago Huari
 
381743680-CAT-Codigos-de-Falha-Atual.pdf
381743680-CAT-Codigos-de-Falha-Atual.pdf381743680-CAT-Codigos-de-Falha-Atual.pdf
381743680-CAT-Codigos-de-Falha-Atual.pdfEguima Guima
 
John deere 770 compact utility tractor service repair manual
John deere 770 compact utility tractor service repair manualJohn deere 770 compact utility tractor service repair manual
John deere 770 compact utility tractor service repair manualfjjskedmme
 
Manual de serviço cg125 titan ks es cg125 cargo partida
Manual de serviço cg125 titan ks es cg125 cargo partidaManual de serviço cg125 titan ks es cg125 cargo partida
Manual de serviço cg125 titan ks es cg125 cargo partidaThiago Huari
 
Manual de serviço cg150 titan ks es esd partida
Manual de serviço cg150 titan ks es esd partidaManual de serviço cg150 titan ks es esd partida
Manual de serviço cg150 titan ks es esd partidaThiago Huari
 
Ntc 901100 2013 - fornecimento em tensão secundária de distribuição
Ntc 901100 2013 - fornecimento em tensão secundária de distribuiçãoNtc 901100 2013 - fornecimento em tensão secundária de distribuição
Ntc 901100 2013 - fornecimento em tensão secundária de distribuiçãoMarcelo Godoy
 
Manual serviço c 100 biz c-100 biz es c-100 biz+ (2002) - 00 x6b-gce-763 luzes
Manual serviço c 100 biz c-100 biz es c-100 biz+ (2002) - 00 x6b-gce-763 luzesManual serviço c 100 biz c-100 biz es c-100 biz+ (2002) - 00 x6b-gce-763 luzes
Manual serviço c 100 biz c-100 biz es c-100 biz+ (2002) - 00 x6b-gce-763 luzesThiago Huari
 
Manual serviço c 100 biz c-100 biz es c-100 biz+ (2002) - 00 x6b-gce-763 manu...
Manual serviço c 100 biz c-100 biz es c-100 biz+ (2002) - 00 x6b-gce-763 manu...Manual serviço c 100 biz c-100 biz es c-100 biz+ (2002) - 00 x6b-gce-763 manu...
Manual serviço c 100 biz c-100 biz es c-100 biz+ (2002) - 00 x6b-gce-763 manu...Thiago Huari
 
Manual de serviço cg125 titan ks es cg125 cargo diagrama
Manual de serviço cg125 titan ks es cg125 cargo diagramaManual de serviço cg125 titan ks es cg125 cargo diagrama
Manual de serviço cg125 titan ks es cg125 cargo diagramaThiago Huari
 
Todos Manuais de Serviço de Motos
Todos Manuais de Serviço de Motos Todos Manuais de Serviço de Motos
Todos Manuais de Serviço de Motos Luiz Avelar
 
SEMINAR TOPIC- 3 PHASE SELETOR AND PREVENTER FOR INDUSTRIAL APPS. 2007.ppt
SEMINAR TOPIC- 3 PHASE SELETOR AND PREVENTER FOR INDUSTRIAL APPS. 2007.pptSEMINAR TOPIC- 3 PHASE SELETOR AND PREVENTER FOR INDUSTRIAL APPS. 2007.ppt
SEMINAR TOPIC- 3 PHASE SELETOR AND PREVENTER FOR INDUSTRIAL APPS. 2007.pptSUJAY RAVI KALE
 

Mais procurados (20)

Catálogo peças biz 100(1).pdf
Catálogo peças biz 100(1).pdfCatálogo peças biz 100(1).pdf
Catálogo peças biz 100(1).pdf
 
29 manual-do-palio-e-siena-fire
29 manual-do-palio-e-siena-fire29 manual-do-palio-e-siena-fire
29 manual-do-palio-e-siena-fire
 
Xl1000 varadero service manual
Xl1000 varadero service manualXl1000 varadero service manual
Xl1000 varadero service manual
 
Diagrama
DiagramaDiagrama
Diagrama
 
Códigos de falhas gm
Códigos de falhas gmCódigos de falhas gm
Códigos de falhas gm
 
Diagrama radio g5
Diagrama radio g5Diagrama radio g5
Diagrama radio g5
 
Rainha das Sete-2012 parte 1
Rainha das Sete-2012 parte 1Rainha das Sete-2012 parte 1
Rainha das Sete-2012 parte 1
 
Manaul de serviço ms cbx250 (2006) 00 x6b-kpf-003 18. luzes
Manaul de serviço ms cbx250 (2006)   00 x6b-kpf-003 18. luzesManaul de serviço ms cbx250 (2006)   00 x6b-kpf-003 18. luzes
Manaul de serviço ms cbx250 (2006) 00 x6b-kpf-003 18. luzes
 
ABNT-IEC-60079-1-2016.pdf
ABNT-IEC-60079-1-2016.pdfABNT-IEC-60079-1-2016.pdf
ABNT-IEC-60079-1-2016.pdf
 
381743680-CAT-Codigos-de-Falha-Atual.pdf
381743680-CAT-Codigos-de-Falha-Atual.pdf381743680-CAT-Codigos-de-Falha-Atual.pdf
381743680-CAT-Codigos-de-Falha-Atual.pdf
 
John deere 770 compact utility tractor service repair manual
John deere 770 compact utility tractor service repair manualJohn deere 770 compact utility tractor service repair manual
John deere 770 compact utility tractor service repair manual
 
Manual de serviço cg125 titan ks es cg125 cargo partida
Manual de serviço cg125 titan ks es cg125 cargo partidaManual de serviço cg125 titan ks es cg125 cargo partida
Manual de serviço cg125 titan ks es cg125 cargo partida
 
Manual de serviço cg150 titan ks es esd partida
Manual de serviço cg150 titan ks es esd partidaManual de serviço cg150 titan ks es esd partida
Manual de serviço cg150 titan ks es esd partida
 
Ntc 901100 2013 - fornecimento em tensão secundária de distribuição
Ntc 901100 2013 - fornecimento em tensão secundária de distribuiçãoNtc 901100 2013 - fornecimento em tensão secundária de distribuição
Ntc 901100 2013 - fornecimento em tensão secundária de distribuição
 
Manual serviço c 100 biz c-100 biz es c-100 biz+ (2002) - 00 x6b-gce-763 luzes
Manual serviço c 100 biz c-100 biz es c-100 biz+ (2002) - 00 x6b-gce-763 luzesManual serviço c 100 biz c-100 biz es c-100 biz+ (2002) - 00 x6b-gce-763 luzes
Manual serviço c 100 biz c-100 biz es c-100 biz+ (2002) - 00 x6b-gce-763 luzes
 
Manual serviço c 100 biz c-100 biz es c-100 biz+ (2002) - 00 x6b-gce-763 manu...
Manual serviço c 100 biz c-100 biz es c-100 biz+ (2002) - 00 x6b-gce-763 manu...Manual serviço c 100 biz c-100 biz es c-100 biz+ (2002) - 00 x6b-gce-763 manu...
Manual serviço c 100 biz c-100 biz es c-100 biz+ (2002) - 00 x6b-gce-763 manu...
 
Manual de serviço cg125 titan ks es cg125 cargo diagrama
Manual de serviço cg125 titan ks es cg125 cargo diagramaManual de serviço cg125 titan ks es cg125 cargo diagrama
Manual de serviço cg125 titan ks es cg125 cargo diagrama
 
Todos Manuais de Serviço de Motos
Todos Manuais de Serviço de Motos Todos Manuais de Serviço de Motos
Todos Manuais de Serviço de Motos
 
SEMINAR TOPIC- 3 PHASE SELETOR AND PREVENTER FOR INDUSTRIAL APPS. 2007.ppt
SEMINAR TOPIC- 3 PHASE SELETOR AND PREVENTER FOR INDUSTRIAL APPS. 2007.pptSEMINAR TOPIC- 3 PHASE SELETOR AND PREVENTER FOR INDUSTRIAL APPS. 2007.ppt
SEMINAR TOPIC- 3 PHASE SELETOR AND PREVENTER FOR INDUSTRIAL APPS. 2007.ppt
 
NFS-320
NFS-320NFS-320
NFS-320
 

Semelhante a Rede CAN em Linux Embarcado para Aplicações Conectadas

Veja como hackear seu carro usando Rede CAN com Arduino Due
Veja como hackear seu carro usando Rede CAN com Arduino DueVeja como hackear seu carro usando Rede CAN com Arduino Due
Veja como hackear seu carro usando Rede CAN com Arduino DueAndré Curvello
 
Linux Embarcado na Construção de Sistemas Inteligentes e Conectados
Linux Embarcado na Construção de Sistemas Inteligentes e ConectadosLinux Embarcado na Construção de Sistemas Inteligentes e Conectados
Linux Embarcado na Construção de Sistemas Inteligentes e ConectadosAndré Curvello
 
Linux Embarcado - O Sistema Operacional da Internet das Coisas
Linux Embarcado - O Sistema Operacional da Internet das CoisasLinux Embarcado - O Sistema Operacional da Internet das Coisas
Linux Embarcado - O Sistema Operacional da Internet das CoisasAndré Curvello
 
TDC2016SP - Trilha Embarcados
TDC2016SP - Trilha EmbarcadosTDC2016SP - Trilha Embarcados
TDC2016SP - Trilha Embarcadostdc-globalcode
 
Linux Embarcado para Dispositivos de IoT - Uninove 18/11/2017
Linux Embarcado para Dispositivos de IoT - Uninove 18/11/2017Linux Embarcado para Dispositivos de IoT - Uninove 18/11/2017
Linux Embarcado para Dispositivos de IoT - Uninove 18/11/2017Fernando Luiz Cola
 
Webinar: RISC-V: Novidades de 2020
Webinar: RISC-V: Novidades de 2020Webinar: RISC-V: Novidades de 2020
Webinar: RISC-V: Novidades de 2020Embarcados
 
Computador de Bordo, Linux
Computador de Bordo, LinuxComputador de Bordo, Linux
Computador de Bordo, Linuxbarrosjonatas
 
Arquiteturas_risc_e_cisc
Arquiteturas_risc_e_ciscArquiteturas_risc_e_cisc
Arquiteturas_risc_e_ciscBruno Dias
 
[Cloud Summit 2010] Tecla Internet - Antonio Carlos Pina
[Cloud Summit 2010] Tecla Internet - Antonio Carlos Pina[Cloud Summit 2010] Tecla Internet - Antonio Carlos Pina
[Cloud Summit 2010] Tecla Internet - Antonio Carlos PinaTecla Internet
 
ArquiteturaRisc_GabiCoelho
ArquiteturaRisc_GabiCoelhoArquiteturaRisc_GabiCoelho
ArquiteturaRisc_GabiCoelhoGabriela Coelho
 
Research Group on High Performance Computing - MDCC/UFC - Fortaleza, Brazil
Research Group on High Performance Computing - MDCC/UFC - Fortaleza, BrazilResearch Group on High Performance Computing - MDCC/UFC - Fortaleza, Brazil
Research Group on High Performance Computing - MDCC/UFC - Fortaleza, BrazilHeron Carvalho
 
Plataformas cisc e risc
Plataformas cisc e riscPlataformas cisc e risc
Plataformas cisc e riscTiago
 
Intro Sist Embarcados - Sergio cavalcante
Intro Sist Embarcados - Sergio cavalcanteIntro Sist Embarcados - Sergio cavalcante
Intro Sist Embarcados - Sergio cavalcantepaulocoob
 
TradeTech Brazil 2011 - O Desafio Da Latencia
TradeTech Brazil 2011 - O Desafio Da LatenciaTradeTech Brazil 2011 - O Desafio Da Latencia
TradeTech Brazil 2011 - O Desafio Da LatenciaJose Ricardo Maia Moraes
 
Webinar: Uma introdução a ISA RISC-V e seu ecossistema
Webinar: Uma introdução a ISA RISC-V e seu ecossistemaWebinar: Uma introdução a ISA RISC-V e seu ecossistema
Webinar: Uma introdução a ISA RISC-V e seu ecossistemaEmbarcados
 
Monitoramento de Redes TCP/IP - Monografia
Monitoramento de Redes TCP/IP - MonografiaMonitoramento de Redes TCP/IP - Monografia
Monitoramento de Redes TCP/IP - MonografiaPietro Scherer
 

Semelhante a Rede CAN em Linux Embarcado para Aplicações Conectadas (20)

Veja como hackear seu carro usando Rede CAN com Arduino Due
Veja como hackear seu carro usando Rede CAN com Arduino DueVeja como hackear seu carro usando Rede CAN com Arduino Due
Veja como hackear seu carro usando Rede CAN com Arduino Due
 
Linux Embarcado na Construção de Sistemas Inteligentes e Conectados
Linux Embarcado na Construção de Sistemas Inteligentes e ConectadosLinux Embarcado na Construção de Sistemas Inteligentes e Conectados
Linux Embarcado na Construção de Sistemas Inteligentes e Conectados
 
Linux Embarcado - O Sistema Operacional da Internet das Coisas
Linux Embarcado - O Sistema Operacional da Internet das CoisasLinux Embarcado - O Sistema Operacional da Internet das Coisas
Linux Embarcado - O Sistema Operacional da Internet das Coisas
 
TDC2016SP - Trilha Embarcados
TDC2016SP - Trilha EmbarcadosTDC2016SP - Trilha Embarcados
TDC2016SP - Trilha Embarcados
 
Linux Embarcado para Dispositivos de IoT - Uninove 18/11/2017
Linux Embarcado para Dispositivos de IoT - Uninove 18/11/2017Linux Embarcado para Dispositivos de IoT - Uninove 18/11/2017
Linux Embarcado para Dispositivos de IoT - Uninove 18/11/2017
 
Webinar: RISC-V: Novidades de 2020
Webinar: RISC-V: Novidades de 2020Webinar: RISC-V: Novidades de 2020
Webinar: RISC-V: Novidades de 2020
 
Computador de Bordo, Linux
Computador de Bordo, LinuxComputador de Bordo, Linux
Computador de Bordo, Linux
 
Arquiteturas_risc_e_cisc
Arquiteturas_risc_e_ciscArquiteturas_risc_e_cisc
Arquiteturas_risc_e_cisc
 
Redes de computador
Redes de computadorRedes de computador
Redes de computador
 
Embarcados
EmbarcadosEmbarcados
Embarcados
 
[Cloud Summit 2010] Tecla Internet - Antonio Carlos Pina
[Cloud Summit 2010] Tecla Internet - Antonio Carlos Pina[Cloud Summit 2010] Tecla Internet - Antonio Carlos Pina
[Cloud Summit 2010] Tecla Internet - Antonio Carlos Pina
 
ArquiteturaRisc_GabiCoelho
ArquiteturaRisc_GabiCoelhoArquiteturaRisc_GabiCoelho
ArquiteturaRisc_GabiCoelho
 
Research Group on High Performance Computing - MDCC/UFC - Fortaleza, Brazil
Research Group on High Performance Computing - MDCC/UFC - Fortaleza, BrazilResearch Group on High Performance Computing - MDCC/UFC - Fortaleza, Brazil
Research Group on High Performance Computing - MDCC/UFC - Fortaleza, Brazil
 
Processadores RISC
Processadores RISCProcessadores RISC
Processadores RISC
 
Arquitetura tcp ip - 1
Arquitetura tcp ip - 1Arquitetura tcp ip - 1
Arquitetura tcp ip - 1
 
Plataformas cisc e risc
Plataformas cisc e riscPlataformas cisc e risc
Plataformas cisc e risc
 
Intro Sist Embarcados - Sergio cavalcante
Intro Sist Embarcados - Sergio cavalcanteIntro Sist Embarcados - Sergio cavalcante
Intro Sist Embarcados - Sergio cavalcante
 
TradeTech Brazil 2011 - O Desafio Da Latencia
TradeTech Brazil 2011 - O Desafio Da LatenciaTradeTech Brazil 2011 - O Desafio Da Latencia
TradeTech Brazil 2011 - O Desafio Da Latencia
 
Webinar: Uma introdução a ISA RISC-V e seu ecossistema
Webinar: Uma introdução a ISA RISC-V e seu ecossistemaWebinar: Uma introdução a ISA RISC-V e seu ecossistema
Webinar: Uma introdução a ISA RISC-V e seu ecossistema
 
Monitoramento de Redes TCP/IP - Monografia
Monitoramento de Redes TCP/IP - MonografiaMonitoramento de Redes TCP/IP - Monografia
Monitoramento de Redes TCP/IP - Monografia
 

Mais de André Curvello

Sistemas embarcados e a contribuição para o combate a COVID-19
Sistemas embarcados e a contribuição para o combate a COVID-19Sistemas embarcados e a contribuição para o combate a COVID-19
Sistemas embarcados e a contribuição para o combate a COVID-19André Curvello
 
Blockchain em IoT - Desafios e considerações numa abordagem prática
Blockchain em IoT - Desafios e considerações numa abordagem práticaBlockchain em IoT - Desafios e considerações numa abordagem prática
Blockchain em IoT - Desafios e considerações numa abordagem práticaAndré Curvello
 
Arquitetando seu sistema de IoT com Azure
Arquitetando seu sistema de IoT com AzureArquitetando seu sistema de IoT com Azure
Arquitetando seu sistema de IoT com AzureAndré Curvello
 
Drones - Programando sistemas embarcados voadores e... autônomos!
Drones - Programando sistemas embarcados voadores e... autônomos!Drones - Programando sistemas embarcados voadores e... autônomos!
Drones - Programando sistemas embarcados voadores e... autônomos!André Curvello
 
Dispositivos IoT com FPGAs - Alto poder de processamento para crescentes dema...
Dispositivos IoT com FPGAs - Alto poder de processamento para crescentes dema...Dispositivos IoT com FPGAs - Alto poder de processamento para crescentes dema...
Dispositivos IoT com FPGAs - Alto poder de processamento para crescentes dema...André Curvello
 
Internet das Coisas - Na nuvem além da telemetria
Internet das Coisas - Na nuvem além da telemetriaInternet das Coisas - Na nuvem além da telemetria
Internet das Coisas - Na nuvem além da telemetriaAndré Curvello
 
Pilares da Computação para Internet das Coisas
Pilares da Computação para Internet das CoisasPilares da Computação para Internet das Coisas
Pilares da Computação para Internet das CoisasAndré Curvello
 
IoT Aplicada à Engenharia de Computação
IoT Aplicada à Engenharia de ComputaçãoIoT Aplicada à Engenharia de Computação
IoT Aplicada à Engenharia de ComputaçãoAndré Curvello
 
IoE - Internet de Todas as Coisas - Quais os Riscos de Segurança
IoE - Internet de Todas as Coisas - Quais os Riscos de SegurançaIoE - Internet de Todas as Coisas - Quais os Riscos de Segurança
IoE - Internet de Todas as Coisas - Quais os Riscos de SegurançaAndré Curvello
 
Criando elementos conectados com visão computacional usando Raspberry Pi Zero...
Criando elementos conectados com visão computacional usando Raspberry Pi Zero...Criando elementos conectados com visão computacional usando Raspberry Pi Zero...
Criando elementos conectados com visão computacional usando Raspberry Pi Zero...André Curvello
 
TDC2017 - Sistemas Assimétricos com ARM e FPGA
TDC2017 - Sistemas Assimétricos com ARM e FPGATDC2017 - Sistemas Assimétricos com ARM e FPGA
TDC2017 - Sistemas Assimétricos com ARM e FPGAAndré Curvello
 
TDC2017 - Desvendando a Linux Device Tree
TDC2017 - Desvendando a Linux Device TreeTDC2017 - Desvendando a Linux Device Tree
TDC2017 - Desvendando a Linux Device TreeAndré Curvello
 
Indústria 4.0 - Do chão de fábrica à sua casa por um clique.
Indústria 4.0 - Do chão de fábrica à sua casa por um clique.Indústria 4.0 - Do chão de fábrica à sua casa por um clique.
Indústria 4.0 - Do chão de fábrica à sua casa por um clique.André Curvello
 
Internet das Coisas - Do Sensor à Nuvem, e Você?
Internet das Coisas - Do Sensor à Nuvem, e Você?Internet das Coisas - Do Sensor à Nuvem, e Você?
Internet das Coisas - Do Sensor à Nuvem, e Você?André Curvello
 
Laboratórios do HandsOn de mbedOS - FTF Connects SP 2016
Laboratórios do HandsOn de mbedOS - FTF Connects SP 2016Laboratórios do HandsOn de mbedOS - FTF Connects SP 2016
Laboratórios do HandsOn de mbedOS - FTF Connects SP 2016André Curvello
 
Sistemas Embarcados Híbridos - Processamento Assimétrico
Sistemas Embarcados Híbridos - Processamento AssimétricoSistemas Embarcados Híbridos - Processamento Assimétrico
Sistemas Embarcados Híbridos - Processamento AssimétricoAndré Curvello
 
IoT - Além da Telemetria
IoT - Além da TelemetriaIoT - Além da Telemetria
IoT - Além da TelemetriaAndré Curvello
 
Segurança em Foco no IoT - Protegendo as Informações das Coisas
Segurança em Foco no IoT - Protegendo as Informações das CoisasSegurança em Foco no IoT - Protegendo as Informações das Coisas
Segurança em Foco no IoT - Protegendo as Informações das CoisasAndré Curvello
 
CPqD - Detecção Inteligente de Eventos por Imagem - Um Desafio para Internet ...
CPqD - Detecção Inteligente de Eventos por Imagem - Um Desafio para Internet ...CPqD - Detecção Inteligente de Eventos por Imagem - Um Desafio para Internet ...
CPqD - Detecção Inteligente de Eventos por Imagem - Um Desafio para Internet ...André Curvello
 
Plataformas de Hardware para o seu Projeto - Quais seus diferenciais? Uma vis...
Plataformas de Hardware para o seu Projeto - Quais seus diferenciais? Uma vis...Plataformas de Hardware para o seu Projeto - Quais seus diferenciais? Uma vis...
Plataformas de Hardware para o seu Projeto - Quais seus diferenciais? Uma vis...André Curvello
 

Mais de André Curvello (20)

Sistemas embarcados e a contribuição para o combate a COVID-19
Sistemas embarcados e a contribuição para o combate a COVID-19Sistemas embarcados e a contribuição para o combate a COVID-19
Sistemas embarcados e a contribuição para o combate a COVID-19
 
Blockchain em IoT - Desafios e considerações numa abordagem prática
Blockchain em IoT - Desafios e considerações numa abordagem práticaBlockchain em IoT - Desafios e considerações numa abordagem prática
Blockchain em IoT - Desafios e considerações numa abordagem prática
 
Arquitetando seu sistema de IoT com Azure
Arquitetando seu sistema de IoT com AzureArquitetando seu sistema de IoT com Azure
Arquitetando seu sistema de IoT com Azure
 
Drones - Programando sistemas embarcados voadores e... autônomos!
Drones - Programando sistemas embarcados voadores e... autônomos!Drones - Programando sistemas embarcados voadores e... autônomos!
Drones - Programando sistemas embarcados voadores e... autônomos!
 
Dispositivos IoT com FPGAs - Alto poder de processamento para crescentes dema...
Dispositivos IoT com FPGAs - Alto poder de processamento para crescentes dema...Dispositivos IoT com FPGAs - Alto poder de processamento para crescentes dema...
Dispositivos IoT com FPGAs - Alto poder de processamento para crescentes dema...
 
Internet das Coisas - Na nuvem além da telemetria
Internet das Coisas - Na nuvem além da telemetriaInternet das Coisas - Na nuvem além da telemetria
Internet das Coisas - Na nuvem além da telemetria
 
Pilares da Computação para Internet das Coisas
Pilares da Computação para Internet das CoisasPilares da Computação para Internet das Coisas
Pilares da Computação para Internet das Coisas
 
IoT Aplicada à Engenharia de Computação
IoT Aplicada à Engenharia de ComputaçãoIoT Aplicada à Engenharia de Computação
IoT Aplicada à Engenharia de Computação
 
IoE - Internet de Todas as Coisas - Quais os Riscos de Segurança
IoE - Internet de Todas as Coisas - Quais os Riscos de SegurançaIoE - Internet de Todas as Coisas - Quais os Riscos de Segurança
IoE - Internet de Todas as Coisas - Quais os Riscos de Segurança
 
Criando elementos conectados com visão computacional usando Raspberry Pi Zero...
Criando elementos conectados com visão computacional usando Raspberry Pi Zero...Criando elementos conectados com visão computacional usando Raspberry Pi Zero...
Criando elementos conectados com visão computacional usando Raspberry Pi Zero...
 
TDC2017 - Sistemas Assimétricos com ARM e FPGA
TDC2017 - Sistemas Assimétricos com ARM e FPGATDC2017 - Sistemas Assimétricos com ARM e FPGA
TDC2017 - Sistemas Assimétricos com ARM e FPGA
 
TDC2017 - Desvendando a Linux Device Tree
TDC2017 - Desvendando a Linux Device TreeTDC2017 - Desvendando a Linux Device Tree
TDC2017 - Desvendando a Linux Device Tree
 
Indústria 4.0 - Do chão de fábrica à sua casa por um clique.
Indústria 4.0 - Do chão de fábrica à sua casa por um clique.Indústria 4.0 - Do chão de fábrica à sua casa por um clique.
Indústria 4.0 - Do chão de fábrica à sua casa por um clique.
 
Internet das Coisas - Do Sensor à Nuvem, e Você?
Internet das Coisas - Do Sensor à Nuvem, e Você?Internet das Coisas - Do Sensor à Nuvem, e Você?
Internet das Coisas - Do Sensor à Nuvem, e Você?
 
Laboratórios do HandsOn de mbedOS - FTF Connects SP 2016
Laboratórios do HandsOn de mbedOS - FTF Connects SP 2016Laboratórios do HandsOn de mbedOS - FTF Connects SP 2016
Laboratórios do HandsOn de mbedOS - FTF Connects SP 2016
 
Sistemas Embarcados Híbridos - Processamento Assimétrico
Sistemas Embarcados Híbridos - Processamento AssimétricoSistemas Embarcados Híbridos - Processamento Assimétrico
Sistemas Embarcados Híbridos - Processamento Assimétrico
 
IoT - Além da Telemetria
IoT - Além da TelemetriaIoT - Além da Telemetria
IoT - Além da Telemetria
 
Segurança em Foco no IoT - Protegendo as Informações das Coisas
Segurança em Foco no IoT - Protegendo as Informações das CoisasSegurança em Foco no IoT - Protegendo as Informações das Coisas
Segurança em Foco no IoT - Protegendo as Informações das Coisas
 
CPqD - Detecção Inteligente de Eventos por Imagem - Um Desafio para Internet ...
CPqD - Detecção Inteligente de Eventos por Imagem - Um Desafio para Internet ...CPqD - Detecção Inteligente de Eventos por Imagem - Um Desafio para Internet ...
CPqD - Detecção Inteligente de Eventos por Imagem - Um Desafio para Internet ...
 
Plataformas de Hardware para o seu Projeto - Quais seus diferenciais? Uma vis...
Plataformas de Hardware para o seu Projeto - Quais seus diferenciais? Uma vis...Plataformas de Hardware para o seu Projeto - Quais seus diferenciais? Uma vis...
Plataformas de Hardware para o seu Projeto - Quais seus diferenciais? Uma vis...
 

Rede CAN em Linux Embarcado para Aplicações Conectadas

  • 1. Rede CAN em Linux Embarcado para Aplicações Conectadas Prof. André Márcio de Lima Curvello – contato@andrecurvello.com.br
  • 2. Sobre mim 2 André Márcio de Lima Curvello • Engenheiro de Computação – USP São Carlos • MBA em Gestão de TI - UNIFRAN • Mestre em Ciências – USP São Carlos • Analista de Tecnologia – Padtec S/A • Articulista do Portal Embarcados e FilipeFlop • Professor na Pós-Graduação em Sistemas Embarcados – UNISAL São José – Campinas
  • 3. “Se não puder voar, corra. Se não puder correr, ande. Se não puder andar, rasteje. Mas continue em frente de qualquer jeito. Martin Luther King
  • 4. ! Linux e CAN Vamos começar pelas partes 4
  • 5. O que é Linux Embarcado? ▸ Mesmo Linux que o usado em um PC ▸ Mas com algumas “adaptações” para sistemas embarcados ▸ Precisa de um sistema com microprocessador ▸ Uso em ascensão! ▸ Redução de custos de componentes ▸ Facilidade no desenvolvimento e manutenção 5
  • 6. 6
  • 7. O que é Linux Embarcado? 7
  • 8. O que é Linux Embarcado? ▸ Linux Embarcado favorece aplicações que usem: ▸ Recursos multimídia (áudio, fotos, vídeos) ▸ Rede ▸ Criptografia ▸ Banco de Dados ▸ Interface Gráfica 8
  • 9. O que é Linux Embarcado? 9
  • 10. Linux Embarcado - Estrutura 10 Fonte: Traduzido pelo Sergio Prado de http://free-electrons.com/ Fonte: http://free-electrons.com/
  • 12. O que é Rede CAN? ▸ Desenvolvido pela Bosch para redes de comunicação veiculares na década de 80 ▸ Publicado em 1986 na SAE ▸ Troca de mensagens entre ECUs ▸ Electronic Control Unit ▸ Robusto em ambientes com ruído! ▸ Baixo custo 12
  • 13. O que é Rede CAN? ▸ Protocolo multi-mestre ▸ Broadcast ▸ Comunicação serial ▸ Baseado em mensagens ▸ Sem “endereços” ▸ IDs ▸ Mensagens 13
  • 14. O que é Rede CAN? Standard CAN – Versão 2.0A ▸ ID de 11 bit ▸ 2048 ids diferentes! 14 Fonte: http://www.ti.com
  • 15. Transmissão de dados em CAN 15 Fonte: https://www.linkedin.com/pulse/automotive-can-bus-system-explained-kiril-mucevski
  • 16. Transmissão de dados em CAN 16 Fonte: https://www.linkedin.com/pulse/automotive-can-bus-system-explained-kiril-mucevski
  • 17. Topologia de uma rede CAN 17 Fonte: https://www.linkedin.com/pulse/automotive-can-bus-system-explained-kiril-mucevski
  • 18. Topologia de um nó em CAN 18 Fonte: http://www.ti.com
  • 21. CAN Controller + Transceiver? 21
  • 22. CAN – Muito usado nos veículos! 22
  • 23. A IntegraçãoA integração de um sistema operacional com uma rede robusta em automação 23
  • 24. Quando aconteceu? ▸ Contribuição do Volkswagen Research ▸ Drivers e pilha de rede chamada SocketCAN ▸ Código-aberto 24
  • 25. Documentação ▸ Já disponível na árvore do Kernel Linux ▸ Link: ▸ https://www.kernel.org/doc/Documentation/networking/can.txt ▸ Documentação tem por base o SocketCAN ▸ Trata de CAN como interface de rede ▸ Especifica chamadas (API) ▸ E estruturas de dados 25
  • 26. Ferramentas ▸ Tudo parte do can-utils ▸ Link: https://github.com/linux-can/can-utils/ ▸ candump - display, filter and log CAN data to files ▸ canplayer - replay CAN logfiles ▸ cansend - send a single frame ▸ cangen - generate (random) CAN traffic ▸ cansniffer - display CAN data content differences (just 11bit CAN IDs) 26
  • 27. Linux Embarcado + Rede CAN ▸ SocketCAN é uma API em C ▸ Mas há “wrappers” para outras linguagens ▸ Como por exemplo... Python! ▸ Biblioteca python-can ▸ E suporte no Python 3.3 em diante 27
  • 28. Linux Embarcado + Rede CAN - Setup ▸ Módulos habilitados em Kernel 28
  • 29. Linux Embarcado + Rede CAN - Setup ▸ Configuração em Device-Tree 29
  • 30. Linux Embarcado + Rede CAN - Setup ▸ Carregamento dos módulos 30 # modprobe can # modprobe can_raw # modprobe can_dev
  • 31. Linux Embarcado + Rede CAN - Setup ▸ Setup da Rede 31 # ip link set can0 type can bitrate 500000 # ip link set can0 up # ip link show can0
  • 32. Desenvolvimento com CAN em Linux ▸ SocketCAN é uma API em C ▸ Mas há “wrappers” para outras linguagens ▸ Como por exemplo... Python! ▸ Biblioteca python-can ▸ E suporte no Python 3.3 em diante 32
  • 33. Desenvolvimento com CAN em Linux - C 33 #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h> #include <net/if.h> #include <sys/types.h> #include <sys/socket.h> #include <sys/ioctl.h> #include <linux/can.h> #include <linux/can/raw.h>
  • 34. Desenvolvimento com CAN em Linux - C 34
  • 35. CAN em Linux - Python 35
  • 37. 37
  • 38. 38 Muito cuidado ao ligar em um veículo... Velocidade / baudrate da CAN é fundamental!
  • 39. Como tornar isso real? Plaquinhas! 39
  • 40. BeagleBone Black ▸AM335x 1GHz ARM® Cortex-A8 ▸2x PRU 32-bit microcontrollers ▸Controller CAN +Transceiver 40
  • 41. Toradex Colibri NXP iMX6 + Placa base Viola  Módulo SODIMM NXP iMX6S  CPU Cortex A9 – 800 MHz a 1.0 GHz  Controller CAN + Transceiver CAN 41
  • 42. Qualcomm DragonBoard 410c 42 ▸ Quad-core ARM® Cortex® A53 Snapdragon 410E Processor at up to 1.2 GHz per core ▸ 1GB 533MHz LPDDR3 memory ▸ 8GB eMMC 4.51 storage ▸ WiFi + BT + GPS ▸ Android / Linux / Win10 IoT + Transceiver e Controller CAN
  • 43. AutoPi – Raspberry Pi Zero Wireless com OBDII 43
  • 44. 44
  • 46. Execução em um veículo 46  Termos principais:  ID – identificação da mensagem  DLC – tamanho em bytes da mensagem  Payload – mensagem propriamente (bytes)
  • 47. Telemetria de Dados Coletados 47 + +
  • 48. Telemetria de Dados Coletados 48
  • 49. Áreas de Atuação / Aplicação ▸ Automotivo ▸ Militar ▸ Maquinário Industrial ▸ Maquinário Agrícola ▸ Controle de Elevadores ▸ Sistemas Médicos ▸ Robótica ▸ Drones ▸ Etc 49
  • 50. 50
  • 51. 51 • Autor: Derek Molloy • De A a Z com Linux Embarcado na Beagle Bone Black • Link: https://www.amazon.com/Exploring-BeagleBone- Techniques-Building-Embedded/dp/1118935128 Exploring BeagleBone: Tools and Techniques for Building with Embedded Linux
  • 52. 52 • Livro disponibilizado gratuitamente na forma de ebook: PDF! • Objetivo: Inspirar a criação de Internet das Coisas • Disponível no Google mais próximo de você! Ou... http://iotcomicbook.org/ Inspirando a Internet das Coisas!
  • 53. 53 • Livro disponibilizado gratuitamente via web. • Informações sobre como explorar recursos do veículo (como informações da rede CAN). • Link: http://opengarages.org/handbook/ The Car Hacker’s Handbook