Sei sulla pagina 1di 5

Segundo Congreso Virtual, Microcontroladores y sus Aplicaciones

Rede de Comunicao Via Protocolo CAN


Bruno Casagrande Dias, Marcos Antonio de Carvalho Guedes, Ricardo de Andrade.
Faculdade de Tecnologia de Santo Andr
Brasil
e-mail: bruno.dias4@fatec.sp.gov.br , marcos.guedes@fatec.sp.gov.br, ricardo.andrade@fatec.sp.gov.br
Abstract. Este trabalho tem como objetivo o estudo do protocolo de comunicao CAN (Controller
Area Network) que muito utilizado na indstria automobilstica e possui alguns acessos restritos a ele. Pretende-se mostrar uma simulao de transmisso e recepo de mensagens em uma placa eletrnica mostrando a importncia desse protocolo para a sociedade no sentido de segurana e conforto aos
motoristas e passageiros, visto que o Protocolo CAN substituiria o aglomerado de fios no veculo alm
de torn-lo mais flexvel alterao e/ou incremento de mdulos eletrnicos.

1. Introduo
Devido produo em larga escala dos microcontroladores e a crise do petrleo na dcada de 70 e
o seu conseqente barateamento, foi economicamente
vivel a implantao desses componentes no setor
automobilstico. Foi assim que surgiu a eletrnica
embarcada nos veculos e onde este projeto visa
trabalhar [1].
A partir de 1990, o setor de eletrnicos embarcados
especialmente o de software tem aumentado em torno
de 10% ao ano. Em 2006, o custo de um sistema
eletrnico embarcado de um automvel era de 25%
do preo dele, chegando a veculos de alta tecnologia
em 35% do seu valor.
Hoje a indstria automobilstica a sexta maior economia do mundo produzindo cerca de 70 milhes de
carros por ano e contribuindo com o crescimento do
PIB mundial. Assim como em outras indstrias, significantes melhorias como desempenho, segurana,
conforto, convenincia precisam de dispositivos
eletrnicos e softwares.
A indstria automobilstica tem evoludo rapidamente
a tecnologia visto que j existem carros que possuem
70 micro-controladores com 500 MB de memria e
todos esses dispositivos conectados em redes de comunicao automotivas tal como o Controller Area
Network (CAN) que controlam o motor, os limpadores, as luzes, as portas, a suspenso, auxilia a interao entre motorista e passageiros, por exemplo.
O envio de mensagens entre veculos j aparece no
cenrio automobilstico como um novo setor tecnolgico e utilizada em alguns pases e para coletar
informaes da estrada e estabelecer uma comunicao entre dois veculos [2].

2. Protocolo CAN (Controller Area


Network)
Devido ao seu desempenho e versatilidade o sistema
de barramento CAN tornou-se padro para a aplicacao
veicular, otimizando assim as ligaes das unidades
de controle automotivo, que antes eram ligadas atravs de um nmero enormes de cabos individuais.
Com a introduo do CAN as unidades de controles
automotivas so conectadas em rede atravs de um
barramento de dados, resultando na eliminao da
multiplicidade de conexes eltricas e na reduo da
probabilidade de falhas de aparelhos conectados a
rede [3].
O CAN trabalha dentro do princpio de multimaster, ou seja, vrias unidades de controle eletrnico so interconectadas atravs de uma estrutura linear
de barramento. Uma das vantagens desse tipo de
topologia que caso ocorra uma falha em um dos
mdulos integrantes a mesma no impede o acesso
dos demais a rede, diferente das topologias tipo circular ou estrela, onde uma falha de um dos integrantes
pode resultar na falha geral do sistema [3].
Para cada mensagem do CAN designado um identificador (ID) que caracteriza seu contedo (ex.: ID
00001100000 poderia ser o identificador de rotao
do motor), ou seja, ele utiliza um endereamento
baseado na mensagem [3]. Os identificadores dos
sistemas automotivos no so universais, sendo que
cada montadora fica responsvel pela distribuio de
IDs no seu projeto e essa informao mantida em
sigilo [4]. Alm de o ID definir o contedo da mensagem ele tambm fica responsvel pela sua prioridade, quando a mesma est sendo enviada. Um identificador que corresponde a um nmero binrio de baixo
nvel possui alta prioridade e um identificador com
nmero binrio de alto nvel possuir uma prioridade
menor [3] (ex.: Um ID 00000100000 correspondente
a 020 hexadecimal, possui uma prioridade maior que

um ID 00000110000 correspondente a 030 hexadecimal).


O protocolo CAN baseado em dois estados lgicos,
que so os bits recessivos (nvel lgico 1) e bits dominantes (nvel lgico 0). Nesse conceito no momento em que um n envia um bit dominante, os demais
bits recessivos enviados simultaneamente por outros
ns so sobrescritos [3].

Figura 1 Priorizao de mensagens no barramento CAN.


(Criada pelos Autores).

Quando o barramento CAN estiver livre, qualquer n


na rede pode transmitir sua mensagem. Agora se
vrios ns mandarem suas mensagens simultaneamente quem ganhar o barramento ser a tiver maior
prioridade [3], conforme a figura 1. Quando um
transmissor perde sua arbitragem ele comutado
automaticamente para o modo receptor e repete a
tentativa de transmisso at que o barramento esteja
livre, conforme figura 2.

Figura 3 Frame do CAN 2.0A (11 bits ID) e CAN 2.0B (29
bits ID). [4]

Classificamos os frames do CAN da seguinte maneira:

2.1.1 Incio de registro (Start of bit


SOF)
Consiste de um bit dominante. Inicia o comeo da
mensagem e sincroniza todos os ns [10].

2.1.2 Campo de Arbitragem


Campo do Identificador da mensagem, pode ser 11
bits (CAN 2.0A) ou 29 bits (CAN 2.0B) e bits adicionais de controle. Durante a transmisso deste
campo, o emissor verifica a cada bit se ele ainda
detm prioridade ou se um n com maior prioridade
est transmitindo. O bit de controle determina se a
mensagem classificada como registro de dados ou
como registro remoto [3].

2.1.3 Campo de Controle (Data Field)


Determina a quantidade de bytes que a mensagem
transmitir [4].

2.1.4 Campo CRC (Cyclic Redundancy


Check)
Figura 2 Barramento com diversos IDs, sendo transmitidos
ou aguardando a liberao do barramento [4]

2.1 Frame do Protocolo CAN


O CAN suporta dois tipos de formatos, diferenciados
pelo comprimento do identificador (ID): O CAN
2.0A (11 bits) e o CAN 2.0B (29 bits).

O Campo CRC composto pela seqncia numrica


gerada (15 bits), e utilizado para verificao de
erros no quadro e 1 bit do delimitador de CRC (delimitador do CRC sempre transmitido como bit recessivo) [8].

2.1.5 Campo ACK


Contm o sinal de confirmao de todos os receptores, indicando que a mensagem foi recebida sem
erros.

2.1.6 Fim do Registro (End of Frame)


Indica o final da mensagem, envia 7 bits recessivo.
Quando ocorre um erro na mensagem esse o perodo de tempo para os ns enviarem uma mensagem de
erro, pois a mensagem no foi corretamente recebida
por esses ns

2.2. Sincronizao e Velocidade


Durante a configurao de uma rede CAN existe uma
parte crtica, que a sincronizao e velocidade da
transmisso da mensagem, onde uma m configurao resultaria em uma degradao do desempenho ou
at mesmo em uma falha da rede [4].
O CAN possui uma unidade temporal chamada tq
(time quantum ou tempo de bit), que definida pelo
selecionador de taxa de transmisso do sistema CAN.
Todo bit transmitido no CAN possui a seguinte diviso:

Figura 4 Diviso de 01 (um) bit [4]

Onde, Segundo Hodel [8]:


Sincronismo: o sincronismo entre a entrada no
barramento e o relgio do sistema e possui tamanho
mximo de 1 tq.
Propagao: Compensa os atrasos causados pelo
meio fsico, incluindo tempo de transmisso, propagao do sinal no barramento e tempo para recepo
do dado. Possui tamanho de um at oito tq.
Fase 1: Indicar onde ser feita a aquisio do valor
do sinal, ao qual est sendo lido no momento. Tambm pode ter tamanho de um at oito tq, este tamanho pode ser varivel durante o funcionamento para
sincronizao dos relgios.
Fase 2: As Transmisses ocorrero aps este segmento. Pode ser configurado com um at oito tq.
Existe tambm um fator de correo para a sincronizao, chamado SJW (Sincronization Jumpo Wiofth),
onde esta varivel indica o quanto o ponto de sincronismo pode ser modificado para que ocorra a recincronizao.

3 .Objetivo e Metodologia
O CAN (Controller Area Network) um protocolo
muito usado nas indstrias automobilsticas, navais,
aeronuticas, mdicas, entre outras, porm muito
restrito, fato este que o torna de difcil acesso e com
poucas informaes sobre seu modo de funcionamento e caractersticas tcnicas.
Tendo em vista essa situao este trabalho busca
estudar e desvendar este protocolo, podendo assim
demonstrar seu funcionamento e explicar de forma
sucinta seu modo de operao e caractersticas tcnicas, tornando possvel futuros trabalhos com novas
implementaes e inovaes na utilizao deste protocolo.
Nosso Objetivo nesse desenvolvimento criar uma
rede simples de Comunicao CAN com dois ns
conectados ao seu barramento, demonstrando sua
funcionalidade e desempenho para um melhor entendimento sobre seu funcionamento e possveis implementaes.

Utilizaremos para este experimento trs (3) placas


que j esto interligadas entre si, prprias para a
manipulao do protocolo CAN, pois j contm um
micro-controlador (PIC 16F877A), um controlador
CAN (MCP2515), um Display LCD (16X2), portas
de sadas e entradas (I/O) que sero usadas para interligar outros mdulos rede CAN e as demais configuraes necessrias para nosso experimento.
Projetaremos um programa (software) de recepo e
um de transmisso de dados que sero gravados nos
microcontroladores de cada placa, onde teremos duas
placas transmissoras representando dois ns na rede e
uma receptora.
Criaremos um identificador para cada n conectado
rede e definiremos seu grau de prioridade. Para cada
n conectado rede ser definida uma condio de
funcionamento no qual ele ter de enviar uma mensagem ao barramento CAN.
Os mdulos estaro conectados s placas transmissoras e quando ocorrer alguma interao em algum dos
ns o transmissor enviar uma mensagem ao barramento contendo seu nmero identificador, que determinar sua prioridade e um dado mostrando seu
status. A placa receptora por sua vez mostrar a informao de status do n no seu display assim que
receber a mensagem e acionar algum atuador (que
sero representados por um motor e por led`s).
Para este trabalho resolvemos usar um mdulo de
trava eltrica, onde criaremos uma condio de segurana, simulando um velocmetro de um carro, atravs da variao de uma fonte de tenso de 0 volt a 5
volts. A informao deste velocmetro estar ligada a
uma das placas transmissoras formando nosso n no.
01 (um). Assim que o velocmetro atingir a marca de
20Km/h, o software de transmisso far a leitura e
enviar para o barramento CAN uma mensagem
contendo essa informao. A placa receptora ir
receber essa mensagem do barramento e fazer a leitura da informao. Como resposta ela mostrar em seu
display a mensagem de que o velocmetro chegou a
20 km/h e ativar um circuito de potncia que acionar o motor da trava eltrica.
O nosso n n. 02 (dois) ser composto por uma placa
de led`s, que simularo as lmpadas dos faris e setas
de um veculo. A placa transmissora no. 02 far o
monitoramento desses led`s. Toda a vez que forarmos algum led da placa a se apagar, a placa transmissora dever enviar para o barramento CAN uma
mensagem contendo essa informao. A placa receptora ir receber essa mensagem do barramento, acender um led indicando a avaria e escrever no seu display que a lmpada no est funcionando.

4 Desenvolvimento
O primeiro passo no desenvolvimento desse trabalho
foi estudar os componentes das placas, como os datadheets do microcontrolador PIC 16F877A e do
controlador CAN MCP2515, o esquema eltrico da
placa e o display lcd de 16 segmentos.

Aps levantarmos todas as informaes de hardware


necessrias, comeamos a definir nossos parmetros
de trabalho. Utilizamos uma taxa de transmisso de
dados de 1MHz (um mega hertz) e estabelecemos o
identificador (ID) 060 para o n n. 01 e o ID 065
para o n n. 02. Para conseguir configurar os registradores do controlador CAN utilizamos funes de
escrita e leitura via protocolo SPI (Serial Peripheral
Interface)[7]. Comeamos a configurar os registradores para ativar o protocolo CAN, depois fizemos as
configuraes necessrias nos registradores de transmisso e recepo, onde definimos os IDs que tnhamos estabelecidos anteriormente, o tamanho da mensagem e o formato CAN 2.0A (11 bits) [5].
Para a configurao do sincronismo e velocidade de
transmisso na rede fizemos a diviso do bit de acordo com o clculo da nossa taxa de transmisso que
foi definida por 1MHz (um mega hertz) e chegamos
ao valor de tempo de 1 bit igual a 1us (um micro
segundo):
Tempo de 1 bit = (1/Tx. Transmisso (1MHz) )= 1us
( um micro segundo).
Desenvolvemos uma planilha de clculo no software
Microsoft Excel criando um algoritmo que considera
todos os possveis nmeros de tqs para nossa taxa de
transmisso de 1MHz (um mega hertz), de acordo
com a equao: TQ= [2*(BRF+1)]/20M [5]
Atravs do software chegamos ao um valor de BRF
(pr-escala interna do oscilador da placa, que no
nosso caso 20 mega hertz) igual a 0 (zero). Utilizando o BRF igual a zero achamos o tempo de 01
(um) TQ igual 0,1us. Para acharmos nosso nmero
de Tq, fizemos:

de software tambm determinamos a estratgia de


funcionamento de nossos mdulos ligados ao barramento.
Utilizamos uma fonte, onde variamos tenso de 0 a 5
volts para simular um velocmetro. Utilizamos um
canal analgico do microprocessador para trabalharmos esse sinal que ser convertido atravs do conversor A/D do canal [6] e tambm um protoboard onde
ligaremos led`s que simularo as lmpadas dos faris
e setas de um veculo.

5. Concluses
Neste mundo atual em que vivemos a tecnologia
muda a cada dia e a flexibilidade nos mdulos eletrnicos est cada vez mais presente e por isso que
abordamos um protocolo que muito usado fora do
Brasil e traz muitos resultados positivos para a sociedade internacional. Este trabalho mostra como podemos melhorar a segurana da frota nacional com
medidas simples e pretendemos para futuros trabalhos continuar a estudar os protocolos futuros substitutos do CAN.

6. Referncias
[1]
Cmara, Jlio Csar Chaves. MONITORAMENTO ELETRNICO DA MISTURA AR /
COMBUSTVEL EM MOTORES DE COMBUSTO INTERNA CICLO OTTO. 2006.170f. Dissertao (Mestrado em Mecatrnica) - Escola Politcnica, Universidade Federal da Bahia, Salvador 2006.
[2]
Navet, Nicolas; Simonot-Lion, Franois.
Automotive Embedded Systems Handbook. Florida United States Of America: CRC Press, 2009.

Nmero de Tqs = (Tempo de 1 bit / Tempo de 1 Tq)


= 10 tqs.

[3]
Bosh - Manual De Tecnologia Automotiva,
25 Ed., Editora Edgard Blcher.

Enfim, chegamos a um nmero de 10 Tqs, que significa que teremos 10 (dez) subdivises no nosso bit a
ser transmitido.

[4]

Fizemos nossa diviso de tqs no bit da seguinte maneira, conforme a figura 5 :

Notas de Aula do professor Kleber Hodel.

[5]
Microchip Technology. Inc.Stand-Alone
CAN Controller With SPI Interface MCP 2515
2005.
[6]

Data Sheet PIC 16F877A.

[7]
Pereira, Fbio Microcontroladores PIC:
Programao em C- 6 edio, rica 2003.
Figura 5 Diviso de Tqs no bit [Autores]

Definimos tambm 01 (um) Tq para o SJW (fator de


correo para a sincronizao).
Aps a configurao de todos os registradores e do
sincronismo e velocidade da rede para operar com
uma taxa de transmisso de 1MHz, criamos via software uma funo de transmisso e recepo. Atravs

[8]
Hodel, Kleber N. LIMITES DO PROTOCOLO CAN (CONTROLLER AREA NETWORK)PARA APLICAES QUE EXIGEM ALTO GRAU DE CONFIABILIDADE TEMPORAL.
Dissertao apresentada Escola Politcnica da Universidade de SoPaulo.Orientador: Prof. Dr. Sebastio Gomes dos Santos Filho. So Paulo, 2008. 77p.

Copyright 2010. Bruno Casagrande Dias, Marcos Antonio de Carvalho Guedes, Ricardo de Andrade: Los
autores delegam a la Organizacin del Segundo Congreso Virtual de Microcontroladores la licencia para
reproducir este documento para los fines del Congreso ya sea que este artculo se publique en el sitio web del
congreso, en un CD o en un documento impreso de las ponencias del Segundo Congreso Virtual de
Microcontroladores.

Potrebbero piacerti anche