SlideShare ist ein Scribd-Unternehmen logo
1 von 55
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

Pressostato danfoss kp
Pressostato danfoss kpPressostato danfoss kp
Pressostato danfoss kpJoaquim Pedro
 
Normas para-instalacao-de-banco-de-capacitores
Normas para-instalacao-de-banco-de-capacitoresNormas para-instalacao-de-banco-de-capacitores
Normas para-instalacao-de-banco-de-capacitoresLucasAmaral95
 
Utilizando um Display de LCD
Utilizando um Display de LCDUtilizando um Display de LCD
Utilizando um Display de LCDRodrigo Almeida
 
Exercicios clp l1 respondido
Exercicios clp l1   respondidoExercicios clp l1   respondido
Exercicios clp l1 respondidoMário Bassoli
 
Anexo 4 lista verificao spda - final
Anexo 4   lista verificao spda - finalAnexo 4   lista verificao spda - final
Anexo 4 lista verificao spda - finalTAMEBRA CESS Ltda
 
Ceb fornecimento de energia eletrica em tensao primaria de distribuicao-2a ...
Ceb   fornecimento de energia eletrica em tensao primaria de distribuicao-2a ...Ceb   fornecimento de energia eletrica em tensao primaria de distribuicao-2a ...
Ceb fornecimento de energia eletrica em tensao primaria de distribuicao-2a ...WagnerLamin
 
Manual de harmônicas (Manual of Harmonics)
Manual de harmônicas (Manual of Harmonics)Manual de harmônicas (Manual of Harmonics)
Manual de harmônicas (Manual of Harmonics)Gerson Roberto da Silva
 
Tabela de Aplicação NGK 2014 Velas e Cabos de Ignição
Tabela de Aplicação NGK 2014 Velas e Cabos de IgniçãoTabela de Aplicação NGK 2014 Velas e Cabos de Ignição
Tabela de Aplicação NGK 2014 Velas e Cabos de IgniçãoAlexandre Messias
 
Comissionamento como primeira manuten+º+úo rev
Comissionamento como primeira manuten+º+úo revComissionamento como primeira manuten+º+úo rev
Comissionamento como primeira manuten+º+úo revEdi Carlos M. de Lima
 
Nbr 13231 proteção contra incêndio em subestações elétricas
Nbr 13231   proteção contra incêndio em subestações elétricasNbr 13231   proteção contra incêndio em subestações elétricas
Nbr 13231 proteção contra incêndio em subestações elétricasmjmcreatore
 
Apostila de Pneumática
Apostila de PneumáticaApostila de Pneumática
Apostila de Pneumáticaluizgraf
 
Aula componentes simetricas
Aula componentes simetricasAula componentes simetricas
Aula componentes simetricasDaniel Anjos
 
NBR11836 - Detectores Automaticos de Fumaça para Proteção Contra Incêndio
NBR11836 - Detectores Automaticos de Fumaça para Proteção Contra IncêndioNBR11836 - Detectores Automaticos de Fumaça para Proteção Contra Incêndio
NBR11836 - Detectores Automaticos de Fumaça para Proteção Contra IncêndioIZAIAS DE SOUZA AGUIAR
 
Desenho técnico eletrônico
Desenho técnico eletrônicoDesenho técnico eletrônico
Desenho técnico eletrônicoFabio Curty
 

Was ist angesagt? (20)

Nr10 miranda
Nr10 mirandaNr10 miranda
Nr10 miranda
 
Cfw 08 u line
Cfw 08 u lineCfw 08 u line
Cfw 08 u line
 
Motores de inducao
Motores de inducaoMotores de inducao
Motores de inducao
 
Pressostato danfoss kp
Pressostato danfoss kpPressostato danfoss kp
Pressostato danfoss kp
 
Normas para-instalacao-de-banco-de-capacitores
Normas para-instalacao-de-banco-de-capacitoresNormas para-instalacao-de-banco-de-capacitores
Normas para-instalacao-de-banco-de-capacitores
 
Utilizando um Display de LCD
Utilizando um Display de LCDUtilizando um Display de LCD
Utilizando um Display de LCD
 
Exercicios clp l1 respondido
Exercicios clp l1   respondidoExercicios clp l1   respondido
Exercicios clp l1 respondido
 
Anexo 4 lista verificao spda - final
Anexo 4   lista verificao spda - finalAnexo 4   lista verificao spda - final
Anexo 4 lista verificao spda - final
 
Ceb fornecimento de energia eletrica em tensao primaria de distribuicao-2a ...
Ceb   fornecimento de energia eletrica em tensao primaria de distribuicao-2a ...Ceb   fornecimento de energia eletrica em tensao primaria de distribuicao-2a ...
Ceb fornecimento de energia eletrica em tensao primaria de distribuicao-2a ...
 
Manual de harmônicas (Manual of Harmonics)
Manual de harmônicas (Manual of Harmonics)Manual de harmônicas (Manual of Harmonics)
Manual de harmônicas (Manual of Harmonics)
 
Tabela de Aplicação NGK 2014 Velas e Cabos de Ignição
Tabela de Aplicação NGK 2014 Velas e Cabos de IgniçãoTabela de Aplicação NGK 2014 Velas e Cabos de Ignição
Tabela de Aplicação NGK 2014 Velas e Cabos de Ignição
 
Comissionamento como primeira manuten+º+úo rev
Comissionamento como primeira manuten+º+úo revComissionamento como primeira manuten+º+úo rev
Comissionamento como primeira manuten+º+úo rev
 
Corrente nominal de motores trifásicos 220v
Corrente nominal de motores trifásicos 220vCorrente nominal de motores trifásicos 220v
Corrente nominal de motores trifásicos 220v
 
Nbr 13231 proteção contra incêndio em subestações elétricas
Nbr 13231   proteção contra incêndio em subestações elétricasNbr 13231   proteção contra incêndio em subestações elétricas
Nbr 13231 proteção contra incêndio em subestações elétricas
 
Apostila de Pneumática
Apostila de PneumáticaApostila de Pneumática
Apostila de Pneumática
 
Nbr 5444
Nbr 5444Nbr 5444
Nbr 5444
 
Aula componentes simetricas
Aula componentes simetricasAula componentes simetricas
Aula componentes simetricas
 
NBR11836 - Detectores Automaticos de Fumaça para Proteção Contra Incêndio
NBR11836 - Detectores Automaticos de Fumaça para Proteção Contra IncêndioNBR11836 - Detectores Automaticos de Fumaça para Proteção Contra Incêndio
NBR11836 - Detectores Automaticos de Fumaça para Proteção Contra Incêndio
 
Aula pratica spda
Aula pratica spdaAula pratica spda
Aula pratica spda
 
Desenho técnico eletrônico
Desenho técnico eletrônicoDesenho técnico eletrônico
Desenho técnico eletrônico
 

Ähnlich wie Rede CAN em Linux Embarcado para Aplicações Conectadas

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
 
Analysis of the GNS3 as a teaching tool by simulated networks
Analysis of the GNS3 as a teaching tool by simulated networksAnalysis of the GNS3 as a teaching tool by simulated networks
Analysis of the GNS3 as a teaching tool by simulated networksMarlon Henry Schweigert
 

Ähnlich wie Rede CAN em Linux Embarcado para Aplicações Conectadas (20)

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
 
Analysis of the GNS3 as a teaching tool by simulated networks
Analysis of the GNS3 as a teaching tool by simulated networksAnalysis of the GNS3 as a teaching tool by simulated networks
Analysis of the GNS3 as a teaching tool by simulated networks
 

Mehr von 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
 

Mehr von 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