Escolar Documentos
Profissional Documentos
Cultura Documentos
Apostila Sobre Obd
Apostila Sobre Obd
FACULDADE DE TECNOLOGIA
FATEC SANTO ANDR
Tecnologia em Eletrnica Automotiva
ADEMAR DULTRA CERQUEIRA
FERNANDO VENEZIAN BEZERRA
GUILHERME ZAMBONI
THOMAS EDSON
SISTEMA DE DIAGNSTICO PARA VECULOS
QUE UTILIZAM OS PROTOCOLOS ISO 9141 E
ISO 14230 ATRAVS DE UMA PLATAFORMA
EM LabVIEW
Santo Andr So Paulo
2009
CENTRO PAULA SOUZA
FACULDADE DE TECNOLOGIA
FATEC SANTO ANDR
Tecnologia em Eletrnica Automotiva
ADEMAR DULTRA CERQUEIRA
FERNANDO VENEZIAN BEZERRA
GUILHERME ZAMBONI
THOMAS EDSON
SISTEMA DE DIAGNSTICO PARA VECULOS
QUE UTILIZAM OS PROTOCOLOS ISO 9141 E
ISO 14230 ATRAVS DE UMA PLATAFORMA
EM LabVIEW
Monografia apresentada ao Curso de Tecnologia
em Eletrnica Automotiva da FATEC Santo
Andr, como requisito parcial para concluso do
curso de Tecnologia em Eletrnica Automotiva
Orientador: Prof. Orlando Salvo Junior
Co-orientador: Prof. Edson Kitani
Santo Andr So Paulo
2009
Dedicamos este trabalho a nossas famlias
e amigos que sempre estiveram prximos
durante esta jornada.
AGRADECIMENTOS
Gostaramos de agradecer a todos aqueles que direta e indiretamente contriburam para
a realizao deste trabalho e principalmente aos colegas de sala que mantiveram estmulos nos
momentos mais rduos desta jornada. Agradecemos aos professores, colaboradores e
funcionrios da Fatec Santo Andr que sempre estiveram prontos a nos ajudar. Agradecemos
tambm ao professor Cleber Gomes que nos disponibilizou o hardware utilizado do
desenvolvimento deste trabalho, e Fatec por disponibilizar o veculo Volkswagen Golf e os
demais equipamentos que tornaram possvel o desenvolvimento deste trabalho.
RESUMO
Os sistemas de diagnstico veicular surgiram para controlar os nveis de emisses de
poluentes dos veculos automotores, atravs da leitura de informaes e deteco de falhas
nos veculos. Este trabalho teve como idia inicial o desenvolvimento de um sistema de
diagnstico veicular, para permitir ao usurio acesso s informaes do veculo atravs de
uma interface grfica amigvel e de fcil manuseio. Esta interface foi desenvolvida atravs de
uma plataforma em LabVIEW
.
ABSTRACT
The vehicle diagnostic systems have emerged to control the emissions of pollutants
from motor vehicles, by reading information and fault detection in vehicles.This work had as
an initial idea to develop a diagnostic system for vehicles, to allow the user access the vehicle
information through a friendly interface and easy to use. This interface was developed using
LabVIEW
.
LISTA DE ILUSTRAES
Figura 2.1 Barramento de diagnstico ISO 9141............................................... 16
Figura 2.2 Topologia KWP 2000....................................................................... 17
Figura 2.3 Conector OBD II............................................................................... 18
Figura 2.4 Formato do cdigo DTC atravs de 2 bytes...................................... 19
Figura 2.5 Painel Frontal e diagrama de blocos do LabVIEW
.......................... 24
Figura 3.1 Esquema eltrico para a utilizao dos protocolos ISO 9141 e ISO
14230 atravs do ELM327.................................................................................... 27
Figura 3.2 Circuito fonte de alimentao............................................................ 28
Figura 3.3 Circuito USB/Serial usando CP2101................................................ 29
Figura 3.4 VI para escrita e leitura de dados na serial........................................ 30
Figura 3.5 Leitura da rotao do motor.............................................................. 31
Figura 3.6 Tratamento da leitura de tenso da bateria........................................ 32
Figura 3.7 Grfico da relao entre o valor de rotao obtido e o valor de
rotao real indicado no conta-giros..................................................................... 34
Figura 3.8 Tratamento da leitura de rotao...................................................... 35
Figura 3.9 Tratamento da verificao da quantidade de falhas.......................... 36
Figura 3.10 Tratamento da leitura dos cdigos de falha..................................... 38
Figura 4.1 Leituras de tenso da bateria e rotao.............................................. 39
Figura 4.2 Leitura dos cdigos de falha.............................................................. 40
Figura 4.3 - Aparncia final do Software.............................................................. 41
LISTA DE TABELAS
Tabela 2.1 Principais normas ISO e SAE............................................................ 15
Tabela 2.2 Primeiro dgito do cdigo de falhas................................................... 18
Tabela 2.3 Primeiro e segundo dgitos do cdigo de falhas................................ 19
Tabela 2.4 Terceiro dgito do cdigo de falhas................................................... 19
Tabela 2.5 Diferenas entre o ELM323 e ELM327............................................ 23
Tabela 3.1 Relao entre o valor de rotao obtido e o valor de rotao real
indicado no conta-giros.......................................................................................... 33
Tabela 3.2 Lista de caracteres que devem substituir o primeiro dgito do
cdigo de falha recebido......................................................................................... 37
SUMRIO
1 INTRODUO............................................................................................................... 10
2 HISTRICO DOS SISTEMAS DE DIAGNSTICO VEICULAR E DA
LINGUAGEM LABVIEW
................................................................................................. 12
2.1 Protocolos de Comunicao Automotivos........................................................ 13
2.1.1 Classe A.............................................................................................. 13
2.1.2 Classe B.............................................................................................. 13
2.1.3 Classe C.............................................................................................. 14
2.1.4 Utilizados em diagnstico.................................................................. 14
2.1.5 Utilizados em Mobile Media.............................................................. 14
2.1.6 Utilizados em Safety Bus.................................................................... 14
2.1.7 Utilizados em aplicaes BY-WIRE................................................... 15
2.2 Protocolos de Comunicao Utilizados em Diagnstico.................................. 15
2.2.1 O protocolo ISO 9141........................................................................ 15
2.2.2 O protocolo KWP 2000 (ISO 14230)................................................ 16
2.3 O Conector OBD II.......................................................................................... 17
2.3.1 Localizao........................................................................................ 17
2.3.2 Pinagem............................................................................................. 18
2.4 Cdigos de Falha.............................................................................................. 18
2.5 O Circuito Integrado ELM 323......................................................................... 20
2.5.1 Comunicao...................................................................................... 20
2.6 O Circuito Integrado ELM 327........................................................................ 21
2.6.1 Comunicao..................................................................................... 21
2.7 Instrumentao Virtual..................................................................................... 23
2.8 Consideraes Finais........................................................................................ 24
3 METODOLOGIA........................................................................................................... 26
3.1 O Hardware Utilizado...................................................................................... 26
3.1.1 Funcionamento do circuito................................................................ 27
3.2 Desenvolvimento do Software.......................................................................... 29
3.2.1 Tratamento da leitura de tenso da bateria......................................... 31
3.2.2 Tratamento da leitura de rotao........................................................ 32
3.2.3 Leitura dos cdigos de falha............................................................... 35
3.2.3.1 Tratamento da verificao da quantidade de falhas........................ 35
3.2.3.2 Tratamento da leitura dos cdigos de falha.................................... 36
4 ANLISE DE RESULTADOS....................................................................................... 39
4.1 Leitura de Tenso da Bateria............................................................................ 39
4.2 Leitura de Rotao............................................................................................ 40
4.3 Leitura da Quantidade de Falhas....................................................................... 40
4.4 Leitura dos Cdigos de Falha (DTC)................................................................ 40
4.5 Apagando os Cdigos de Falha......................................................................... 41
4.6 Software Final................................................................................................... 41
5 CONCLUSO................................................................................................................. 42
5.1 Propostas Futuras............................................................................................... 42
6 REFERNCIAS BIBLIOGRFICAS ............................................................................ 43
ANEXOS............................................................................................................................. 44
Anexo A Cdigo do Programa em LabVIEW
Anexo B Lista dos DTCs
Anexo C Datasheet ELM 327
Anexo D Esquema Eltrico ELM 327
1 INTRODUO
Todos os veculos produzidos atualmente dispem de uma ou mais ECUs (Electronic
Control Unit), responsveis pelo gerenciamento de determinados parmetros do veculo para
garantir seu correto funcionamento. As relaes entre esses parmetros devem permanecer
delimitadas, e dependendo das condies externas podem sair de sua faixa, gerando um mau
funcionamento do veculo.
Os principais parmetros que determinam o funcionamento do motor, que devem ser
verificados se esto funcionando corretamente so: velocidade, carga, temperatura do motor,
consumo de combustvel, temperatura ambiente, fluxo de ar e emisses de poluentes, sendo
que este ltimo o principal parmetro para o qual o sistema de diagnstico foi desenvolvido.
Para ler estes parmetros, os automveis atuais incorporam um grande nmero de
sensores, que fornecem informaes para a ECU referentes s condies externas do veculo,
para que a ECU decida como atuar sobre o motor. Se algum dos parmetros estiver fora da
faixa delimitada, o sistema OBD II (On-Board Diagnostics Second Generation) responsvel
por armazenar esta informao e notificar ao motorista atravs do painel de instrumentos que
h alguma anormalidade no veculo, orientando-o a encaminhar o veculo a uma oficina ou
concessionria.
Quando o veculo chega oficina ou concessionria, os tcnicos podem acessar as
informaes armazenadas pelo sistema OBD II e verificar quais as falhas que ocorreram no
veculo, corrigindo-as quando necessrio, sem precisar realizar vrios testes para detectar a
procedncia do erro.
Evidentemente, o sistema no perfeito, e geralmente quando ocorre uma falha no
veculo, esta pode desencadear uma srie de falhas induzidas, que tambm so armazenadas.
Neste caso, necessrio um conhecimento mais profundo para detectar a origem ou
procedncia do problema.
Este trabalho tem o objetivo de desenvolver um sistema de diagnstico veicular
utilizando um software desenvolvido em LabVIEW
. O LabVIEW
um ambiente de
programao criado pela National Instruments que utiliza a linguagem grfica para o
desenvolvimento de aplicativos. Sua forma de programao altamente produtiva na
construo de sistemas voltados para aquisio de dados e instrumentao e permite tambm a
comunicao (transmisso e aquisio de dados) atravs de uma porta serial RS232.
Para realizar a comunicao entre o sistema OBD II do veculo e a porta serial, foi
utilizado um hardware baseado em circuito integrado da famlia ELM. Este circuito integrado
11
permite a converso entre o formato de dados OBD II para o formato de dados do padro
serial RS232. Com isto, atravs do software desenvolvido no LabVIEW
foi possvel
obtermos a comunicao com o veculo atravs de um computador pessoal utilizando somente
uma porta serial.
No captulo 2, relatado um histrico sobre os temas que foram pesquisados para o
desenvolvimento deste trabalho. Entre estes temas esto os sistemas de diagnstico veicular,
bem como os protocolos de comunicao automotivos utilizados em diagnstico, o padro
OBD II, os circuitos integrados da famlia ELM e a instrumentao virtual baseado em
LabVIEW
.
A escolha do LabVIEW
responsveis por esta comunicao serial so as funes VISA Whrite (escreve na serial) e
VISA Read (l os dados da serial).
30
Figura 3.4 VI para escrita e leitura de dados na serial.
Com esta VI, podemos escrever a solicitao dos dados que queremos obter utilizando
alguns comandos do ELM327 no campo string to write e ler os dados obtidos no campo
read string.
No exemplo da Figura 3.4, ao escrevermos o comando atrv (l tenso da bateria),
podemos ler o dado 12.2V seguido do eco do comando que foi escrito (atrv). Da mesma
forma, ao escrevermos o comando 010c (l rotao do motor), podemos ler os dados 41 0C 00
00 (hexadecimal) seguido do eco do comando que foi escrito (010c), conforme ilustrado na
Figura 3.5.
31
Figura 3.5 Leitura da rotao do motor
Aps estes resultados, comeamos a trabalhar no desenvolvimento de uma interface
grfica amigvel e de fcil manuseio. Para isto, foi necessrio tratar os dados recebidos para
exibi-los de forma a permitir uma leitura mais fcil destes dados.
Apesar de o sistema permitir a leitura de vrias informaes do veculo, nosso trabalho
se limitar leitura e tratamento dos seguintes dados: tenso da bateria, rotao do motor e
cdigos de falha (DTC).
3.2.1 Tratamento da leitura de tenso da bateria
Todos os dados recebidos no campo read string, como o prprio nome diz uma
string, ou seja, um conjunto de caracteres onde cada caractere codificado como um inteiro
de 8 bits.
A interface grfica que escolhemos para a leitura de tenso da bateria uma varivel
do tipo DBL (Double Precision) e permite a leitura apenas de dados numricos. Para
32
converter uma string em formato DBL, utilizamos a funo Scan From String, porm ao
converter direto a string 12.2 V para o formato DBL, obtm-se na sada apenas o numeral
12, pois o caractere . no reconhecido como numeral.
Para resolver este problema, utilizamos duas vezes a funo String Subset para
eliminar o caractere . da string. A primeira String Subset fornece na sada o valor a contar
do primeiro caractere, exibindo os prximos dois caracteres, ou seja, na sada da primeira
String Subset teremos os caracteres 12. A segunda String Subset fornece na sada o valor a
contar do quarto caractere, exibindo apenas este caractere, ou seja, na sada da segunda String
Subset teremos o caractere 2. Atravs da funo Concatenate Strings, podemos agrupar os
dados destas duas sadas, obtendo o caractere 122, que agora pode ser convertido para o
formato DBL atravs da funo Scan From String, e ao dividirmos este valor por 10, obtemos
o valor desejado de 12,2 para a varivel Bateria (V). Este tratamento ilustrado na Figura
3.6.
Figura 3.6 Tratamento da leitura de tenso da bateria
3.2.2 Tratamento da leitura de rotao
Assim como para a leitura de tenso da bateria, a interface grfica escolhida para a
leitura de rotao uma varivel do tipo DBL (Double Precision) e permite a leitura apenas
de dados numricos. O valor de rotao exibido em formato hexadecimal de 4 bytes, onde
os 2 primeiros bytes retornam o comando que foi escrito somando o valor 40h (hexadecimal)
no primeiro byte, e os 2 ltimos bytes referem-se ao valor da rotao.
33
Conforme j visto na Figura 3.5, ao escrevermos o comando 010c (l rotao do
motor), podemos ler os dados 41 0C 00 00 (hexadecimal). Neste caso, os dois primeiros bytes
(41 0C) retornam o comando que foi escrito (01 0C) somando o valor 40h (hexadecimal) no
primeiro byte, totalizando 41 0C. Os dois ltimos bytes (00 00) referem-se ao valor da
rotao, que neste caso 0 (zero), ou seja, o motor no est em funcionamento.
H uma funo no LabVIEW
construdo neste
trabalho. A curva de rotao apresentada no painel de instrumentos do veculo Golf 2.0 ano
2004 se encontrava em desacordo com os aparelhos de medio.
Foram feitas simulaes tambm no veculo Plo 2.0 ano 2004, no qual se obteve um
valor linear e prximo do valor obtido com os aparelhos de medio e o programa em
LabVIEW
o
o
b
t
i
d
o
p
e
l
o
O
B
D
35
Figura 3.8 Tratamento da leitura de rotao
3.2.3 Leitura dos cdigos de falha
Para a leitura dos cdigos de falha (DTC), primeiramente necessrio enviar um
comando para verificar a quantidade de falhas presentes no veculo (0101) e em seguida um
novo comando para ler quais so estas falhas (03). Para apagar os cdigos de falha, escreve-se
o comando 04.
3.2.3.1 Tratamento da verificao da quantidade de falhas
Ao escrevermos o comando 0101, receberemos os dados 41 01 81 07 65 04
(hexadecimal), onde os dois primeiros bytes (41 01) retornam o comando que foi escrito (01
01) somando o valor 40h (hexadecimal) no primeiro byte, totalizando 41 01. O terceiro byte
(81) indica a quantidade de falhas somando o valor 80h (hexadecimal) caso a quantidade de
falhas seja diferente de zero. Portanto, neste exemplo, h um cdigo de falha registrado no
veculo. O valor 80h somando quantidade de falhas (bit mais significativo do byte na
posio 1) significa que a lmpada indicadora de falhas localizada no painel de
instrumentos do veculo est ligada. Os trs bytes restantes (07 65 04) fornecem informaes
sobre os tipos de testes suportados por cada mdulo, porm estes dados no sero tratados
neste trabalho, pois referem-se norma SAE J1949.
Neste caso, para exibir a quantidade de falhas existentes em um valor numrico,
utilizamos a funo String Subset para separarmos em um subconjunto apenas o terceiro byte,
que onde encontra-se a informao desejada. Para converter os dados contidos neste
36
subconjunto em valor numrico decimal, foi utilizada a funo Hexadecimal String To
Number, e o resultado subtramos por 128, que o valor decimal correspondente ao valor 80h,
se o valor decimal for maior que 128, ou seja, se houver falhas. Caso contrrio, ser exibido o
valor direto. Este tratamento ilustrado na Figura 3.9.
Figura 3.9 Tratamento da verificao da quantidade de falhas
3.2.3.2 Tratamento da leitura dos cdigos de falha
Ao escrevermos o comando 03, receberemos os dados 43 01 33 00 00 00 00
(hexadecimal), onde o primeiro byte (43) retorna o comando que foi escrito somando o valor
40h (hexadecimal). Os bytes seguintes devem ser lidos em pares para a interpretao dos
cdigos de falha. Para a leitura correta dos cdigos de falha (vide Anexo A), deve-se
substituir o primeiro dgito do cdigo recebido por dois caracteres, conforme descrito na
Tabela 3.2.
37
Primeiro dgito do
cdigo de falhas
Dois caracteres que devem
substituir o primeiro dgito
0 P0
1 P1
2 P2
3 P3
4 C0
5 C1
6 C2
7 C3
8 B0
9 B1
A B2
B B3
C U0
D U1
E U2
F U3
Tabela 3.2 Lista de caracteres que devem substituir o primeiro dgito do cdigo de falha recebido.
Neste trabalho, para no ficar muito extenso, a leitura dos cdigos de falhas foi
limitada a uma quantidade de 9 (nove) cdigos, portanto, caso haja mais de nove falhas no
veculo (esta quantidade pode ser verificada conforme o tpico anterior), devero ser
corrigidas algumas falhas para a verificao das outras que no sero exibidas no primeiro
instante.
Para exibir os cdigos de falha separadamente, foi necessrio utilizarmos dezoito
vezes a funo String Subset para eliminarmos o caractere espao entre os bytes. Aps isto,
atravs da funo Concatenate Strings, podemos agrupar os bytes aos pares, exibindo cada
par em uma varivel separada, conforme ilustrado na Figura 3.10.
38
Figura 3.10 Tratamento da leitura dos cdigos de falha
4 ANLISE DOS RESULTADOS
Aps concludo o tratamento das informaes, foram realizadas as leituras destas
informaes atravs do Front Panel (Painel Frontal) do nosso programa desenvolvido em
LabVIEW