Escolar Documentos
Profissional Documentos
Cultura Documentos
Decodificador de Dados Usando Protocolo CAN Padrao SAE J1939 PDF
Decodificador de Dados Usando Protocolo CAN Padrao SAE J1939 PDF
Passo Fundo
2011
2
Passo Fundo
2011
3
BANCA EXAMINADORA
_____________________________________
Prof. Dr. Eduardo Appel.
_____________________________________
Prof. Dr. Carlos Allan Caballero Petersen
_____________________________________
Prof. Dr. Paulo Sergio Correa Molina
4
“Yes, we CAN!”
RESUMO
SUMÁRIO
7.2.7 Microcontroladores................................................................................................................ 39
7.2.11.1 NÓ TX ........................................................................................................................... 44
7.2.11.2 NÓ RX .......................................................................................................................... 47
CONSIDERAÇÕES ............................................................................................................................... 52
REFERÊNCIAS ..................................................................................................................................... 53
LISTA DE FIGURAS
LISTA DE TABELAS
Abreviatura
Sigla ou Significado Literal Significado Traduzido
Unidade
°C Graus Celsius -
A Ampère -
ABS Anti-lock Braking System Sistema de frenagem anti-travante
ACK Acknowledgement Reconhecimento
AG Aktiengesellschaft Sociedade de ações
American Standard Code for Information Código Padrão Americano para o
ASCII
Interchange Intercâmbio de Informações
Bit Binary digit Dígito binário
CA Controller Application Aplicação controladora
CAN Controller Area Network Controlador de rede de área
CRC Cyclic redundancy check Verificação Cíclica de Redundância
DAF Van Doorne’s Automobiel Fabriek -
DIN Deutsche Institut für Normung Instituto Alemão para Normatização
DLC Data Length Code Código de Comprimento de Dado
ECM Engine Control Module Módulo de Controle do Motor
ECU Electronic Control Unit Unidade de Controle Eletrônico
EIA Electronic Industries Alliance Aliança das Indústrias Eletrônicas
EOF End of Frame Fim de Quadro
FMS Fleet Management System Sistema de Gerenciamento de Frota
GE Group Extension Extensão de Grupo
GM General Motors -
GmbH Gesellschaft mit beschränkter Haftung Sociedade de Responsabilidade Limitada
H Hora -
I/O Input/Output Entrada/Saída
I²C Inter Integrated Circuits Circuitos interintegrados
ID Identificator Identificador
IDE Identifier Extension Identificador de Extensão
IFS Inter-Frame Space Espaço entre quadros
ISSO International Standards Organization Organização Internacional de Padrões
IVECO Industrial Vehicles Corporation Corporação de Veículos Industriais
Kbps Kilobits per second Kilobits por Segundo
Km Quilômetro -
L Litro -
13
1.0 INTRODUÇÃO
Em linhas gerais, constitui-se como objetivo deste projeto a redução de custos na construção
e manutenção de um aparelho rastreador, através da redução da necessidade de utilização de
dispositivos à parte para leitura de parâmetros. De igual modo o projeto visa proporcionar total
correspondência entre os dados recebidos pela central de monitoramento com o que é mostrado no
painel do veículo, uma vez que ambas as informações possuirão a mesma origem: os recursos
embarcados no veículo.
Em seus primeiros capítulos, este trabalho apresentará conceitos teóricos básicos sobre
dispositivos de rastreamento e monitoramento, eletrônica automotiva, redes de dados e os Protocolos
CAN e SAE J1939, necessários ao correto entendimento do projeto. Posteriormente serão
apresentados os critérios de projeto, bem como seu desenvolvimento e testes realizados. Finalmente
serão apresentados os resultados definitivos e considerações.
15
A partir de 2003, quando o celular e a internet banda larga se tornaram mais acessíveis
verificou-se uma crescente demanda neste nicho de mercado. Para se ter uma idéia do crescimento,
hoje conta-se com cerca de 20% da frota nacional monitorada, enquanto em 1998 esse número era
de apenas 1,2% [12].
Sistemas mais avançados são capazes de prover à central uma gama de dados ainda maior,
as quais podem incluir:
Sensor de marcha;
Situação do veículo (em movimento ou parado);
Temperatura do motor;
Giros do motor;
De acordo com Guimarães (2007), os módulos eletrônicos nada mais são do que dispositivos
responsáveis pela leitura das entradas, acionamento de saídas e gerenciamento dos protocolos de
comunicação utilizados nos veículos. Estes são como um computador, dotados de uma estrutura de
hardware com um microprocessador ou microcontrolador e têm como tarefa a decisão de como
utilizar suas saídas em função do que está sendo lido nas entradas.
Módulos eletrônicos podem ter inúmeras aplicações, indo desde um controle MT (Multitimer)
responsável pelo controle de temporizações, como setas, limpador de pára-brisas, etc., até um
controle do tipo ECM (Engine Control Module) responsável pelo controle do próprio motor. Todos os
tipos de módulos eletrônicos podem ser denominados ECU (Electronic Control Unit) Unidade de
Controle Eletrônico [8].
Em diversas ocasiões, uma ECU necessita comunicar-se com outra ECU. Um exemplo disso
é o painel, que constantemente necessita saber o estado dos mais variados periféricos do veículo
para informar ao condutor. Esta comunicação notoriamente mesmo em veículos mais antigos tem se
dado predominantemente de forma serial.
A Figura 1 apresenta um diagrama de blocos bastante simplificado que ilustra, de uma forma
genérica, como estão organizados a maioria dos rastreadores comerciais disponíveis no mercado.
RASTREADOR
MÓDULO GPS
MÓDULO GSM/GPRS
MICROCONTROLADOR
Um assunto que merece ser brevemente abordado é a questão da atualização remota. Esta
atualização nada mais é do que a capacidade do microcontrolador receber uma nova versão do
firmware sem que seja necessária a intervenção direta no hardware do dispositivo através de uma
rotina chamada bootloader. O bootloader fica alocado em uma parte específica da memória de
programção e normalmente é gravado uma única vez. Seu funcionamento restringe-se a verificar em
uma dada condição se existe uma nova versão do firmware disponível, caso positivo a nova versão é
gravada na memória de programa, caso negativo a rotina principal é inicializada [29].
19
Adaptando o conceito de redes de computadores do autor Sousa (1999), pode-se definir uma
rede de dados automotiva como um conjunto de ECUs interligadas de maneira a trocarem
informações e compartilharem recursos entre si. Em suma, uma rede é composta por uma parte física
e uma parte lógica, podendo variar em sua arquitetura, isto é, os caminhos físicos através dos quais
equipamentos interligam-se e interagem entre si.
De acordo com Lopes (2007, apud TITTEL, 2003, p. 14) em uma rede de computadores, os
dados precisam trafegar por um caminho físico que interliga os dispositivos da rede. Os diferentes
tipos de caminhos são chamados de topologias. A Tabela 1, de uma forma resumida, elenca e
descreve as diferentes topologias sobre as quais uma rede pode ser montada.
Esta divisão, em camadas, tem por objetivo tornar as funções tão discretas e independentes
quanto possível, de forma que qualquer alteração realizada em uma única camada não implique na
necessidade de adaptação de qualquer outra. No modelo OSI cada camada utiliza os serviços das
camadas inferiores, assim como disponibiliza dados e serviços às camadas superiores a sua posição
[13].
É importante salientar que uma tecnologia que adote o modelo OSI, não necessariamente
deverá utilizar todas as suas camadas. Existem tecnologias que as utilizam de forma parcial como o
Protocolo CAN, o qual possui definido por suas especificações apenas a camada física e a camada
de enlace [13].
Os protocolos de comunicação de dados exercem uma função vital na troca de dados entre
dispositivos eletrônicos. De uma forma simples, podem ser definidos como um conjunto de regras que
controla e sincroniza a comunicação visando que esta seja eficiente e sem erros e assegurando que
a mensagem transmitida chegue ao destino da mesma forma que foi transmitida de maneira a
preservar a integridade dos dados [22].
Os Protocolos Classe B, objeto de interesse deste projeto, são protocolos com taxa de
transmissão compreendida entre 10 kbps a 125 kbps, a exceção dos protocolos ISO11898, ISO1159-
2 (os quais podem assumir velocidades superiores) e do SAE J1939, o qual possui velocidade fixada
em 250 kbps.
É interessante lembrar que além destas classes mencionadas, ainda existem classes de
protocolos de: diagnóstico embarcado, protocolos do tipo Mobile Media – utilizados na implementação
do conceito “computador sobre rodas”, Safety Bus – utilizados em sistemas de airbag e ainda Drive-
by-wire – aplicados a sistemas eletromecânicos que substituíram os sistemas puramente mecânicos,
tais como freio, direção, aceleração, etc. [8].
23
Anteriormente ao surgimento do CAN a maioria das conexões automotivas era do tipo híbrida,
em uma combinação de topologias Ponto-a-Ponto e Malha [4]. Uma rede com CAN provê uma rede
de custo não muito elevado onde as ECUs podem ter uma interface simples ao invés de diversas
entradas analógicas e digitais em cada dispositivo, o que diminui, sobretudo, custos com cabeamento
e peso nos automóveis [14]. A Figura 2 esboça um comparativo entre uma rede sem CAN e uma rede
com CAN.
Figura 2 – Comparativo entre uma rede sem CAN e uma rede com CAN
Fonte: (NATIONAL INSTRUMENTS, 2011)
24
O Protocolo CAN implementa as duas camadas mais inferiores do modelo de referência OSI:
física e de enlace. A parte referente ao meio de comunicação, em si, foi deixada de fora da
especificação CAN da Bosch, propositalmente, com a finalidade de flexibilizar aos projetistas a
possibilidade de adaptação e otimização do protocolo de comunicação de diversas maneiras.
Contudo, com esta flexibilização vem a possibilidade do surgimento de problemas com questões
relacionadas à interoperabilidade [15].
Uma rede utilizando o Protocolo CAN trabalha no conceito multimestre, onde qualquer
módulo pode tornar-se mestre em um dado momento e escravo no outro. Suas mensagens são
enviadas em regime multicast, o que significa que qualquer mensagem enviada ao barramento é
transmitida a todos os módulos existentes na rede [8], cabendo aos receptores a filtragem de
mensagens indesejadas ou desejadas, conforme ilustra a Figura 3 [3].
O Protocolo CAN, define sua codificação de bit como sendo do tipo Non-Return to Zero
(NRZ), onde o nível de sinal pode permanecer constante durante todo o tempo de bit. Desta forma,
medições devem ser feitas para assegurar o tempo máximo permitido entre duas bordas de sinal, o
que vem a ser importante para propósitos de sincronismo [3].
25
Considerando-se fios elétricos como meio de transmissão, os mesmos deverão ser trançados
e não blindados. Os dados transmitidos através do barramento não são caracterizados por possuírem
nível lógico alto “1” ou nível lógico baixo “0”, mas sim por uma representação denominada bits
dominantes “0” e bits recessivos “1”, em virtude de que as informações são interpretadas pela
diferença de potencial entre os fios CAN High (CAN_H) e CAN Low (CAN_L), ilustrado através da
Figura 5. Por esta razão o barramento CAN é classificado como par trançado diferencial [8].
Este par trançado diferencial atenua fortemente efeitos causados por interferências
eletromagnéticas, uma vez que, qualquer ação sobre um dos fios será sentida também pelo outro.
Desta forma, ambos os sinais irão flutuar para o mesmo sentido e com a mesma intensidade não
alterando a tensão diferencial entre CAN_H e CAN_L, a qual é a única referência para distinção de
estados lógicos no transceiver [8].
No protocolo CAN, as mensagens podem possuir dois formatos: CAN 2.0A, ou standard, e
CAN2.0B, também conhecido como formato estendido. O formato 2.0A, é caracterizado por possuir
um identificador de 11 bits possibilitando apenas 2.048 mensagens que utilizam esta formatação.
Esta limitação levou ao desenvolvimento do formato CAN 2.0B, o qual possui um identificador de 29
bits. A Figura 6 apresenta os quadros de mensagens para ambos os formatos vigentes.
CAN 2.0A
CAN 2.0B
A partir da Figura 6, percebe-se que ambos os formatos começam com um bit de início,
imediatamente sucedido por um identificador de 11 bits. Este identificador estabelece a prioridade da
mensagem para os demais nós da rede. Quanto menor é o seu valor binário, maior é a prioridade.
Em seguida o bit RTR (Remote Transmission Request), para o formato CAN, 2.0A é um bit
que indica que a informação está sendo solicitada. Este bit é seguido de mais dois bits em estado
dominante. O bit SRR (Substitute Remote Request), para o formato CAN 2.0B apenas cumpre função
de substituir este bit por um estado sempre dominante [23].
O marco da divisão entre CAN 2.0A e CAN2.0B encontra-se no bit IDE (Identifier Extension).
Caso este bit encontre-se em estado recessivo, indica que os próximos dezoito bits serão a
27
continuação do identificador para constituir o formato estendido, caso contrário significa que a
mensagem será uma mensagem no formato standard [23].
Para o formato estendido, após o complemento do endereço vem o bit de RTR, funcionando
exatamente da mesma maneira do modo standard. E após os dois bits recessivos que o sucedem,
ambos os formatos apresentam as mesmas características, sendo seguidos pelos bits de DLC (Data
Length Code) que informam ao receptor de quantos bytes de dados a mensagem se constitui.
Embora seja composto por quatro bits, este campo pode assumir o valor máximo de oito [23].
A quantia de bytes informada pelo campo DLC é transmitida e em seguida tem-se o campo
de CRC (Cyclic Redundancy Check). Este campo contém o checksum para a detecção de erros e é
sucedido pelo bit ACK (Acknowledgement), o qual é lançado em estado recessivo e qualquer nó da
rede que tenha recebido a mensagem corretamente deverá acusar o correto recebimento desta
mensagem sobrescrevendo este bit. Caso o transmissor não detecte esta sobrescrição, a mensagem
é novamente enviada [23].
Por fim, as mensagens possuem sete bits todos em estado recessivo. O primeiro bit é
denominado EOF (End of Frame), cuja função seria indicar o final da transmissão e os bits restantes
são denominados IFS (Inter-Frame Space) cuja função é dar o tempo necessário ao microcontrolador
mover corretamente os dados para um buffer de recepção de mensagem [23].
5.1.2.2 Arbitração
De acordo com Guimarães (2011) um dos pontos fortes do Protocolo CAN é a sua
fundamentação no conceito Carrier Sense Multiple Access/Collision Detection with Non-Destructive
Arbitration (CSMA/CD with NDA), o que significa que todos os módulos verificam o estado do
barramento, analisando se outro módulo com prioridade maior está tentando transmitir alguma
mensagem. Caso esta situação seja detectada, o módulo de menor prioridade imediatamente
interrompe sua transmissão e o de maior prioridade segue a transmissão normalmente.
Quanto menor é o valor binário do identificador de uma mensagem, maior é a sua prioridade.
Um identificador consistindo apenas de zeros é o que possui maior prioridade de mensagem na rede,
pois se dois nós iniciam uma transmissão simultaneamente, o nó que envia um bit dominante
enquanto o outro envia um bit recessivo fica com o controle do barramento e envia sua mensagem. E
o cancelamento da mensagem, feita pelo nó que perdeu a arbitração, só é possível porque um nó
monitora constantemente sua própria transmissão [23]. A Figura 7 ilustra a fase de arbitração.
28
Guimarães, (2007), afirma que o Protocolo CAN tem seus fundamentos especificados por
duas normas: ISO 11898, que determina as características para redes de alta velocidade de
transmissão de dados (de 125 kpbs a 1 Mbps) e ISO 11519-2, a qual determina características para
redes de baixa velocidade de transmissão de dados (de 10 kbps a 125 kbps). Ambos os padrões
especificam apenas as camadas 1 e 2 do modelo de referência OSI.
As demais camadas são especificadas por outros padrões onde cada um possui uma
aplicação específica. Como exemplo, pode-se citar os padrões [8]:
Dentre os padrões exemplificados, o padrão SAE J1939 é objeto de interesse deste projeto
uma vez que o decodificador de dados a ser projetado será o elo entre as leituras do caminhão com
os dispositivos de monitoramento instalados em ônibus e caminhões.
29
O Padrão SAE J1939 é um protocolo de alto nível o qual roda sobre o Protocolo CAN2.0B.
Nos dias atuais, este Padrão é utilizado como barramento de comunicação padrão para veículos
comerciais, sobretudo em ônibus e caminhões, em aplicações de diagnóstico e controle. Devido à
sua popularidade passou também a ser adotado em aplicações agrícolas (ISO 11789), navais e
aéreas (NMEA 2000) [17].
É chamado de Protocolo de Alto Nível porque faz a ligação entre as camadas de Enlace e
Aplicação, cabendo lembrar que o Protocolo CAN implementa apenas as duas camadas mais
inferiores do modelo de referência OSI. O Padrão J1939 define as camadas, de rede, transporte,
sessão e apresentação, deixando a camada de aplicação para outros desenvolvedores [28].
Este Protocolo especifica exatamente como a informação será intercambeada entre as ECUs
de um veículo, ou seja, define a prioridade, tamanho, escala e offset das mensagens. Tomando por
exemplo o tacômetro, é definido por este Padrão que sempre terá uma prioridade 3, um tamanho de
16 bits, uma resolução de 0.125 RPM/bit e um offset de 0 [17].
Dado ao fato que o J1939 roda sobre o Protocolo CAN 2.0B, suas mensagens utilizam
sempre um identificador de 29 bits. Este campo, como o próprio nome diz, destina-se à identificação
do dispositivo transmissor, e em alguns casos, endereçar o destino de informações no barramento
[28]. A Figura 8 ilustra o formato de mensagens do Protocolo J1939.
30
Existem dois tipos de PGN: Global e Específico. Um PGN global identifica Grupos de
Parâmetros que são enviados para todos sob a forma de broadcast de informações, enquanto um
PGN específico indica que Grupos de Parâmetros são enviados a dispositivos particulares ou peer-to-
peer e, desta forma, também pode ser utilizado como endereço de destino. O Formato da Unidade de
Protocolo de Dados (PDU Format) é o subconjunto de bits responsável pela identificação do tipo de
PGN [10].
Um broadcast é definido quando o bloco PDU Format possui um valor igual ou superior a
F016, neste caso este campo recebe a denominação de PDU1. Quando este bloco possuir valor
inferior, significa que Grupos de Parâmetros serão enviados a um dispositivo específico (peer-to-
peer), o campo então recebe o nome de PDU2 [10].
Seguindo adiante, na composição do PGN, vem o bloco chamado PDU Specific. Este bloco,
de acordo com Junger (2010), é utilizado apenas quando a mensagem é global. Neste caso, o bloco
é chamado de Extensão de Grupo (GE), caso contrário é sempre zero [10]. A Figura 9, facilita a
compreensão desta divisão.
31
Por fim, o identificador de uma mensagem J1939 possui um bloco de oito bits o qual contém o
endereço da Aplicação de Controle (CA). Cabe salientar que uma ECU pode conter uma ou mais
CAs, porém cada CA contém um único endereço associado com o nome do dispositivo [10].
Em uma rede J1939, todos os parâmetros utilizados são descritos por suas especificações e
são identificados por um número denominado SPN (Suspect Parameter Valor). Para cada SPN
atribuído pelo Comitê da SAE, a norma SAE J1939-71, são estabelecidos os seguintes critérios:
comprimento de dado (em bytes), tipo de dado, resolução, offset, faixa de dado, e um rótulo para
identificação. Os SPNs que compartilham uma mesma característica são agrupados em um mesmo
Grupo de Parâmetros (PG), e por sua vez, são transmitidos pela rede utilizando o mesmo PGN [1].
Para uma melhor compreensão, pode-se tomar como exemplo a taxa de consumo de
combustível (SPN=183) e a economia instantânea de combustível (SPN=184). De acordo com a
Norma SAE J1939-71 tem-se:
Para estes dois parâmetros, consultando a Referência PGN indicada pelos SPNs 183 e 184
encontra-se a definição:
Uma análise destas duas citações leva à conclusão de que para efetuar uma leitura dos
parâmetros Taxa de Combustível do Motor e Economia Instantânea de Combustível no Motor deve-
se esperar uma mensagem identificada pelo PGN=FEF216. Ambas são compostas por dois bytes de
dados, com resolução, offset, e faixa de valores definidas. Uma vez recebida uma mensagem
contendo o PGN desejado, basta efetuar a leitura dos Bytes 1 e 2 para o SPN 183 e os bytes 2 e 4
para o SPN 184. No entanto observa-se que o PGN=FEF216 ainda poderá conter duas informações
adicionais: Economia Média de Combustível e Posição do Acelerador do Motor, onde estes dados,
não sendo desejados, devem ser ignorados.
Para um melhor entendimento pode-se consultar a tabela contida no Anexo C deste projeto, a
qual versa sobre o exemplo do PGN=FEF216, para a Interface FMS (seção 6.2). O leitor irá notar que
para esta interface não se utilizam os SPNs 185 e 51. SPNs não implementados, via de regra
possuem seus bytes preenchidos com FF16.
A interface FMS é de grande importância por ser descrita como o único local para uma
conexão de dados segura para a rede interna do veículo [7]. Pois, de acordo com a carta intitulada
Letter to the European Institutes, ligações feitas diretamente ao barramento não são permitidas,
devido aos grandes riscos de interferências em sistemas de controle, como motor e freios. Caso tais
ligações sejam encontradas em um veículo, Hodac (2004) declara que os fabricantes reservam-se ao
direito de retirar qualquer garantia sobre o produto.
34
Partindo do ponto de que não é possível fazer testes com o barramento CAN sem a
existência de pelo menos dois nós de rede, e não é possível contar com um ônibus ou caminhão
sempre à disposição, faz-se necessária a construção de um pequeno kit de desenvolvimento J1939,
em uma disposição ilustrada pelo diagrama da Figura 11. Neste esquema, o bloco denominado Nó
TX assumirá o papel do veículo enquanto o Nó RX constitui o objetivo geral deste projeto.
7.2.1 Composição do Nó TX
SINAL DO SENSOR
DE TEMPERATURA
SINAL DO PEDAL DO
ACELERADOR
SINAL DO
VELOCÍMETRO
BOTÕES DE NAVEGAÇÃO
CHAVE
BARRAMENTO
PEDAL DO FREIO
CAN
CHAVE
PEDAL DA EMBREAGEM
CHAVE
PILOTO AUTOMÁTICO
7.2.2 Composição do Nó RX
BARRAMENTO
MEMÓRIA I²C
CAN
COMPUTADOR COMPUTADOR
Ambos os nós utilizam um display LCD individual para um melhor acompanhamento dos
sinais gerados e recebidos. Para o Nó TX é adotado um display LCD 2x16 ao passo que para o Nó
RX será utilizado um display LCD 4x16.
A navegação através dos menus de configuração e dados exibidos é dada por três botões de
comando para cada nó, dispostos na configuração Seta à Esquerda, Enter e Seta à Direita. Estes são
botões de ação momentânea, isto é, retornam à posição original após seu pressionamento.
37
O Nó TX contém duas entradas analógicas, as quais são utilizadas para que o usuário possa
simular diferentes valores para a posição do pedal do acelerador e para velocidade do veículo.
Fisicamente estão constituídos por dois potenciômetros conectados a dois canais A/D do
microcontrolador. A simulação dos sinais de acionamento de pedais do freio e embreagem, bem
como o piloto automático será feita através de chaves de ação permanente.
O hardware desta interface é composto por um circuito integrado MAX232, escolhido por ser
um CI relativamente comum e disponível no Almoxarifado de Eletrônica da UPF, ligado a um conector
DB9 (padrão para este tipo de comunicação).
Presente nos dois nós do kit de desenvolvimento esta interface realiza a conversão entre as
configurações físicas do sinal no formato TTL, para um sinal no formato CAN e vice versa. Para
desempenhar esta função foram analisados três circuitos integrados: MCP 2510, MCP 2515 e MCP
2551.
38
É caracterizado por ser um controlador CAN com interface embarcada SPI que implementa
por completo CAN 2.0A e CAN 2.0B. Possui uma taxa de transmissão programável de até 1 MBPS,
dois buffers de recepção com armazenamento priorizado, seis filtros de aceitação completos, duas
máscaras de filtro de aceitação e três buffers de transmissão com priorização. É oferecido em
encapsulamentos de 18 e 20 pinos.
O circuito integrado MCP 2510, é um controlador CAN que implementa o protocolo CAN
formato 2.0B. É capaz de transmitir e receber ambos os formatos. Possui duas máscaras de
aceitação e seis filtros de aceitação, os quais são utilizados para rejeitar mensagens não desejadas.
Sua comunicação com microcontroladores é dada através da interface embarcada SPI. É oferecido
em encapsulamentos de 18 e 20 pinos.
Este dispositivo é um transceptor de alta velocidade que suporta até 1 MBPS de taxa de
transmissão, recomendável para sistemas de 12 V e 24 V. Opera em baixa corrente quando em
standby, possui proteção contra condições de curto-circuito e proteções contra transientes de tensão
até ±250 V no barramento. Também apresenta proteção contra condições térmicas, entrando em
desligamento automático quando a temperatura limite for ultrapassada. É oferecido em
encapsulamentos de 4 pinos.
Diante das opções analisadas optou-se pela utilização do transceptor MCP 2551. Entende-se
que a interface CAN deva ser responsável apenas pela conversão entre um formato de sinal e outro.
Esta escolha permite que funções mais complexas como aplicação de filtros e máscaras,
programação da taxa de transmissão e seleção de padrões A ou B fiquem sob o gerenciamento do
microcontrolador, sem a necessidade da criação de um código fonte específico para a Interface CAN.
39
7.2.7 Microcontroladores
É um microcontrolador de 16-bits com um módulo ECAN 2.0B ativo, o qual oferece suporte a
taxas de transmissão de até 1 Mbps. Este módulo é capaz de implementar até 8 buffers de
transmissão e 32 buffers de recepção nas configurações normal, loopback e listen only. Possui 16
filtros de aceitação e três máscaras, assim como distintos modos de operação para diagnóstico e
monitoramento do barramento. O dispositivo também pode processar automaticamente requisições
remotas e quando em modo sleep o dispositivo pode ser despertado automaticamente ao detectar
uma mensagem CAN. Possui 35 pinos de I/O digitais e um conversor AD com 13 canais com
resolução de 12 bits.
40
Trata-se de um microcontrolador de 16-bits com um módulo ECAN 2.0B ativo. Seu módulo
suporta taxas de transmissão de até 1 Mbps passíveis de operar em três modos distintos: Legacy,
Enhanded Legacy e FIFO (First Input First Output). Possui três buffers dedicados à transmissão com
priorização e dois buffers dedicados à recepção, além de seis buffers programáveis, dentro das
configurações normal, loopback e listen only. Possui três máscaras de aceitação e 16 filtros com
associação dinâmica. Quando em sleep é capaz de despertar quando for detectada uma mensagem
no barramento CAN. Possui um conversor AD com 8 canais a uma resolução de 10 bits e 25 pinos de
I/O.
Quando uma atualização remota de firmware for iniciada, todo o arquivo hexadecimal será
descarregado previamente nesta memória I²C, de forma a assegurar que o microcontrolador só inicie
o processo de gravação na memória de programa após todos os dados já terem sido recebidos pelo
circuito. Uma vez completada a descarga de uma nova versão, o microcontrolador sinaliza o
recebimento de um novo firmware ao bootloader, e se reinicia. O bootloader, por fim, grava o arquivo
hexadecimal na memória de programa, limpa a sinalização e reinicia novamente o microcontrolador.
U6
7805
IN 12~24 FU1 D1 5VDC
1 3 VCC
VI VO
GND
1N4007 PIN
ENTRADA
R6
560R
2
D2 C9 C10 C11 C12
1N4007 100uF 100nF 10u
100nF
GND D3
TERRA LED
O modelo esquemático do hardware projetado para os dois nós encontra-se ilustrado através
da Figura 15, para o nó TX e pela Figura 16, para o nó RX. A lista dos materiais utilizados pode ser
visualizada no Anexo A, deste projeto.
42
LCD2
LM016L VCC
J3 RV4 VCC VCC VCC
1 VPP2
2 VCC
3 GND
SPEED S3 S4 S5
50%
4 PGD2
5 PGC2 5k
VDD
VSS
VEE
CLUTCH
RW
RS
CRUISE
D0
D1
D2
D3
D4
D5
D6
D7
BRAKE
E
TBLOCK-I5
1
GND 2
VCC 3
PGC2 4
5
PGD2 6
7
8
9
10
11
12
13
14
VCC
VE2
DT0
DT1
DT2
DT3
RV3 VCC
RV2 R13 R14 R15
10k 10k 10k
VE2
50%
ACCEL
50%
5k
U4
5k ACCEL
11 2
RC0/T1OSO/T13CKI RA0/AN0
12 3 SPEED
RC1/T1OSI RA1/AN1
13 4 BRAKE
RC2/CCP1 RA2/AN2/VREF-
14 5 CLUTCH
RC3/SCK/SCL RA3/AN3/VREF+
SDAB 15 6 CRUISE VCC <- LEFT VCC ENTER VCC RIGHT ->
RC4/SDI/SDA RA4/T0CKI
16 7
RC5/SDO RA5/AN4/SS/HLVDIN
17 10
RC6/TX/CK RA6/CLKO/OSC2 LEFTB INT0B RIGHTB
18 9
RC7/RX/DT RA7/CLKI/OSC1
S6 S7 S8
VPP2 1 21 INTOB
RE3/VPP/MCLR RB0/INT0/AN10
22
RB1/INT1/AN8
23 CANTX R10 R11 R12
RB2/INT2/CANTX 10k 10k 10k
24 CANRX
RB3/CANRX
25 LEFTB
RB4/KI0/AN9
26 RIGHTB
RB5/KBI1/PGM
27 PGC2
RB6//KBI2/PGC
28 PGD2
RB7/KBI3/PGD
PIC18F2580
VCC
3 U5
R7 VCC
VCC J8 U8
CANTX 1 7 120R
TXD CANH 3
PIN VCC
25.5 2 SDAB
CANRX 4 6 DQ
RXD CANL J5 1
GND
RS 8 5 PIN
RS VREF DS1822
GND
MCP2551
2
R5
10k
U9
J10 FU1 D4 7805
VCC
1 3
VI VO
GND
CHAVE 150mA
1N4007
ENTRADA
R18
C6 C7 560R
2
D6 C5
100u 100nF
1N4007 1000uF
J11 D5
TERRA LED
VCC
RV1
VEE
50% LCD1
LM041L
VCC <- LEFT VCC ENTER VCC RIGHT ->
5k
LEFT INT0 RIGHT
S9 S10 S11
R2 R3 R4
10k 10k 10k
VDD
VSS
VEE
RW
RS
D0
D1
D2
D3
D4
D5
D6
D7
E
GND 1
VCC 2
VEE 3
PGC 4
5
PGD 6
7
8
9
10
11
12
13
14
D0
D1
D2
D3
VCC
C1
U1 U2 J1
1 1uF 3
2 11 D0
3
RA0/AN0 RC0/T1OSO/T13CKI
12 D1 C3 1
RA1/AN1 RC1/T1OSI 1uF 6
4 13 D2 C1+ C1-
RA2/AN2/VREF- RC2/CCP1 2
5 14 SCK
RA3/AN3/VREF+ RC3/SCK/SCL TX 11 14 7
6 15 SDA T1IN T1OUT
RA4/T0CKI RC4/SDI/SDA RX 12 13 3
7 16 D3 R1OUT R1IN
RA5/AN4/SS/HLVDIN RC5/SDO 10 7 8
10 17 TX T2IN T2OUT
RA6/CLKO/OSC2 RC6/TX/CK 9 8 4
9 18 RX R2OUT R2IN
RA7/CLKI/OSC1 RC7/RX/DT 9
2 C4 5
INT0 21 1 VPP VS+
RB0/INT0/AN10 RE3/VPP/MCLR 6
INT1 22 VS-
RB1/INT1/AN8 CONN-D9F
TXD 23
RB2/INT2/CANTX 1uF
RXD 24 C2+ C2-
LEFT 25
RB3/CANRX R9
RB4/KI0/AN9 C2 10k
RIGHT 26
RB5/KBI1/PGM 4 5 MAX232
PGC 27
RB6//KBI2/PGC
PGD 28
RB7/KBI3/PGD
1uF
PIC18F2580
VCC
3 U3
R8
J4 R16 R17
VCC 10k 10k
PIN 120R 7 1 TXD
CANH TXD U7 J2
J9 6 4 RXD SCK 6 1 5
CANL RXD SCK A0
SDA 5 2 4 PGC
PIN SDA A1
5 8 SLP 7 3 3 PGD
VREF RS WP A2
2 GND
GND
24LC512 1 VCC
MCP2551 VPP
2 TBLOCK-I5
R1
10k
U6
J6 S1 D1 7805
FU2 VCC
1 3
VI VO
GND
D2 C9
100uF 100nF
1N4007 1000uF
J7 D3
TERRA LED
7.2.11.1 NÓ TX
Esta parte do projeto é a responsável pela simulação dos dados emitidos por um veículo, seu
funcionamento, de uma forma geral, é descrito pelo fluxograma das Figura 17 e 18.
Início Configuração
NÃO
Incrementa 1 ms #INT_TIMER2
Transmite dados de
TX Buffer disponível
pedais, cruise control,
C. Control / Velocidade Inverte estado
setado? SIM e velocidade baseada
na roda do LED e incrementa
contador
NÃO
Contador atingiu
Transmite dados TX Buffer disponível
180?
da velocidade do e Engine Controller #2
motor SIM setado?
NÃO SIM
NÃO
NÃO
Calcula taxa consumo
O valor de "ms" possui de combustível e
NÃO
NÃO
Adquire referência
de posição do O valor de "ms" possui
acelerador e calcula SIM divisão exata por 50?
Transmite dados TX Buffer disponível dados do tacógrafo
do Tacógrafo SIM e Tacógrafo setado?
NÃO
NÃO
NÃO
NÃO
FIM
NÃO
TX Buffer disponível
Transmite leitura
e Desconhecido
SIM desconhecida
setado?
NÃO
NÃO
46
NÃO
SIM
Qual menu
foi solicitado? Taxa de Transmissão
Modo de Operação
Tecla Pressionada?
Tecla Pressionada? NÃO
NÃO
Delay 200 ms
Delay 200 ms
#INT_EXT
Seta solicitação
de menu
Enquanto ENTER
estiver sendo pressionado
NÃO
Reseta Flags
Define solicitação de
menu Saída
FIM
7.2.11.2 NÓ RX
Início
Configuração
Recebeu Msg
CAN? NÃO
SIM
Verifica ID
SIM
SIM
A Saída é
Serial
Serial
NÃO SIM
ou igual a 1s?
SIM
Dados Brutos
ou Formatados?
Atualiza
visualização Formatados
Brutos
Existe solicitação
de menu? SIM
NÃO
NÃO
Modo de Operação
Tecla Pressionada?
Tecla Pressionada? NÃO
NÃO
LEFT
LEFT RIGHT ENTER
RIGHT ENTER
Delay 200 ms
#INT_EXT
Tecla Pressionada?
NÃO Seta solicitação
de menu
LEFT
RIGHT ENTER
Enquanto ENTER
estiver sendo pressionado
Decrementa Incrementa Sinaliza ENTER
menu menu Pressionado
Reseta Flags
NÃO
Define solicitação de
menu Saída
FIM
O projeto montado pode ser visualizado através da Figura 23, abaixo e os procedimentos de
ligação e operação encontram-se descritos no Apêndice A, deste trabalho. Optou-se por construir os
nós TX e RX em caixas separadas por ser mais fácil efetuar testes distintos em simultâneo. Enquanto
um aparelho é testado a bordo de um veículo, o outro pode ser testado com dispositivos capazes de
ler informações em um barramento com protocolo J1939. Os testes executados foram basicamente
três: comunicação entre os nós TX e RX, comunicação entre o nó TX com o módulo Teltonika
FM4200, e comunicação do nó RX com veículos comerciais.
Este teste consistiu em ligar os dois aparelhos com o objetivo de verificar o funcionamento do
kit como um todo. Verificou-se que todos os sinais gerados pelo nó TX foram recebidos, e
decodificados pelo nó RX. Ao mesmo tempo, também se testou a capacidade do nó RX de transmitir
os dados recebidos através do canal serial. Todas as leituras recebidas foram transmitidas ao
computador com sucesso.
O teste de comunicação do nó RX, com veículos comerciais foi realizado a bordo dos
veículos Volvo FH 440, IVECO Stralis 380, Scania G380 e Mercedes Axor e consistiu na ligação do
nó TX ao conector da interface FMS ou junto ao conector do tacógrafo quando esta interface não
estava presente. Os resultados obtidos encontram-se listados na Tabela 4.
CONSIDERAÇÕES
O desenvolvimento deste projeto permitiu que se chegasse a um protótipo que atende todas
as especificações requisitadas pela Empresa Cielo Indústria Mecatrônica LTDA os quais incluem:
leitura e decodificação dos dados presentes no Barramento CAN conforme especificações da norma
SAE J1939, operação em modo listen e capacidade de receber novas versões de firmware e envio
das informações decodificadas através da conexão serial. De forma indireta, os meios utilizados para
a resolução do problema acabaram por desenvolver um segundo protótipo também de aplicação. O
nó TX agora é chamado de “Simulador J1939”, e tem sido utilizado para realização de testes tanto
com novos protótipos quanto com dispositivos de terceiros a utilizar o Protocolo J1939.
Os testes realizados mostraram que, no momento, apenas três parâmetros são unanimidade
entre os fabricantes testados: velocidade do veículo, odômetro e giros do motor. Ainda é necessário
efetuar testes de bordo em veículos de outros fabricantes. Todavia, nos veículos testados pode-se
concluir que ao menos três parâmetros já podem ser adquiridos diretamente dos instrumentos
embarcados ao veículo.
O dispositivo projetado, com relação aos parâmetros lidos, possibilitou uma série de
vantagens verificadas na prática as quais incluem:
REFERÊNCIAS
[2] BAKER, B. C. Ease into the Flexible CANbus Network. [S.l.], Application Note. Microchip Technology
Inc. 2003.
[9] HODAC, I. Letter to the European Institutes. FMS-Standards, 2004. Disponível em:
<http://www.fms-standard.com/down_load/letter_acea.pdf>. Acesso em: 03 set. 2011.
[12] LOIOLA, R. Como Funciona o Rastreamento de Caminhões Via Satélite? Revista Mundo Estranho,
Editora Abril, 2011.
[13] LOPES, C. A. C. CAN - Controller Area Network. Universidade Estadual de Londrina. Londrina-PR.
2009.
[14] NATIONAL INSTRUMENTS. Controller Area Network (CAN) Overview. National Instruments, 2011.
Disponível em: <http://zone.ni.com/devzone/cda/tut/p/id/2732>. Acesso em: 25 ago. 2011.
[15] PAZUL, K. AN713 - Controller Area Network (CAN) Basics. Microchip Technology Inc., 2002.
[16] RICHARDS, P. AN228 - A CAN Physical Layer Discussion. Microchip Technology Inc., 2002.
[17] SIMMA SOFTWARE. Introduction to SAE J1939. Terre Haute, EUA. 2009.
[18] SOCIETY OF AUTOMOTIVE ENGINEERS. SAE J1939-21 - Data Link Layer. [S.l.]. 2001.
[19] SOCIETY OF AUTOMOTIVE ENGINEERS. SAE J1939-81 - Network Management. [S.l.]. 2003.
54
[20] SOCIETY OF AUTOMOTIVE ENGINEERS. SAE J1939 - Recommended Practice for a Serial Control
and Communications Vehicle Network. [S.l.]. 2005.
[21] SOCIETY OF AUTOMOTIVE ENGINEERS. SAE J1939-71 - Vehicle Application Layer. [S.l.]. 2006.
[22] SOUSA, L. B. D. Redes de Computadores, Dadoz, Voz e Imagem. In: SOUSA, L. B. D. Redes de
Computadores, Dadoz, Voz e Imagem. São Paulo: Érica, 1999. p. 60.
[24] TANENBAUM, A. S. Redes de Computadores. São Paulo: Pearson Prentice Hall, 2011.
[27] VARGAS, M. T. Computador de Bordo Automotivo. Universidade de Passo Fundo. Passo Fundo, RS.
2007.
[29] YOUR ELECTRONICS OPEN SOURCE. What a microcontroller Bootloader is and how it works?,
2008. Disponível em: <http://dev.emcelettronica.com/what-microcontroller-bootloader-and-how-it-
works>. Acesso em: 03 dez. 2011.
APÊNDICE A
MANUAIS DE OPERAÇÃO
1 - Ligando o aparelho
Para conectar o Simulador a uma rede CAN, ligue os bornes CANH e CANL, localizados na
parte frontal do aparelho, respectivamente aos conectores CANH e CANL da rede de destino. Por
padrão, este dispositivo trabalha apenas no modo NORMAL, enviando mensagens continuamente ao
barramento.
Para visualizar os diferentes parâmetros gerados pelo dispositivo, navegue através dos
botões esquerda () e direita () no topo do aparelho. Apesar de apenas dois parâmetros serem
mostrados a cada vez, o dispositivo envia continuamente todos os parâmetros gerados através do
barramento.
Para ajustar:
a) Velocidade: gire o potenciômetro „VEL‟ localizado à direita da parte frontal;
b) Posição do Pedal do Acelerador: gire o potenciômetro „ACEL‟ localizado à esquerda no
painel frontal;
c) Piloto automático: mude o estado da chave „CCA‟ na parte superior do dispositivo.
„O‟ – Desligado „I‟ - Ligado
d) Pedal do Freio: mude o estado da chave „BRS‟ na parte superior do dispositivo.
„O‟ – Desligado „I‟ - Ligado
e) Pedal da Embreagem: mude o estado da chave „CLS‟ na parte superior do dispositivo.
„O‟ – Desligado „I‟ – Ligado
f) Demais Parâmetros: As alterações em outros parâmetros, que não estão incluídos, nos
itens anteriores ocorrem de maneira indireta, como por exemplo, para alterar o número de
giros do motor por minuto, é necessário alterar a posição do pedal do acelerador.
5 – Acendendo o Backlight
Para acender ou apagar o backlight do display apenas mude o estado da chave „BCKL‟,
localizada na parte superior do dispositivo.
Para gravar um novo Firmware, insira o cabo de seu gravador na entrada localizada na parte
frontal do aparelho. Observando a pinagem:
1 2 3 4 5
1 - Ligando o aparelho
Para conectar o Simulador a uma rede CAN, ligue os bornes CANH e CANL, localizados na
parte frontal do aparelho, respectivamente aos conectores CANH e CANL da rede de destino. Por
padrão, este dispositivo trabalha apenas no modo NORMAL, enviando mensagens continuamente ao
barramento.
5 – Acendendo o Backlight
Para acender ou apagar o backlight do display apenas mude o estado da chave „BCKL‟,
localizada na parte superior do dispositivo.
Para gravar um novo Firmware, insira o cabo de seu gravador na entrada localizada na parte
frontal do aparelho. Observando a pinagem:
1 2 3 4 5
Para alterar as configurações de saída, pressione e solte o botão ENTER, localizado na parte
superior do aparelho. Selecione o modo através das demais teclas de navegação e novamente
pressione ENTER.
a) Serial: Quando este modo estiver selecionado, a saída dos dados decodificados será
dada através do conector DB-9, localizado na parte frontal do aparelho a uma taxa de
transmissão de 57,600 kbps. Neste modo, se as teclas DIREITA, ou ESQUERDA forem
pressionadas, os dados enviados serão alternados entre DADOS FORMATADOS, isto é,
decodificados ou DADOS BRUTOS, que representam a leitura literal do barramento cujo
formato de saída obedece ao padrão CSV (comma separated values);
b) Display: Este é o modo padrão de saída do aparelho. Os dados lidos são mostrados
diretamente no display 4x16, localizado na parte superior do aparelho;
ANEXO A
Lista de Materiais do Circuito Elétrico
18 Resistores
Qtd: Referências Valor Observações
14 R1-R5, R9-R17 10k
2 R6, R18 560R
2 R7, R8 120R
10 Capacitores
Qtd: Referências Valor Observações
4 C1-C4 1uF
2 C5, C9 1000uF/35V
2 C6, C11 100u
2 C7, C12 100nF
9 Circuitos Integrados
Qtd: Referências Valor Observações
2 U1, U4 PIC18F2580 Microcontrolador
1 U2 MAX232 Transceptor RS-232
2 U3, U5 MCP2551 Transceptor CAN
2 U6, U9 7805 Regulador de Tensão
1 U7 24LC512 Memória I²C
1 U8 DS1822 Sensor de Temperatura
6 Diodes
Qtd: Referências Valor Observações
4 D1, D2, D4, D6 1N4007
2 D3, D5 LED
61
29 Outros
Qtd: Referências Valor Observações
2 FU1, FU2 150mA
1 J1 CONN-D9F
2 J2, J3 TBLOCK-I5
4 J4, J5, J8, J9 PIN
2 J6, J10 ENTRADA
2 J7, J11 TERRA
1 LCD1 LM041L Display 4x16
1 LCD2 LM016L Dispay 2x16
4 RV1-RV4 5k
10 S1, S3-S11
ANEXO B
Descrição da Interface FMS em conformidade com SAE J1939
63