CENTRO PAULA SOUZA DE EDUCAÇÃO TECNOLÓGICA
FACULDADE DE TECNOLOGIA RUBENS LARA
Claudio Gomes Gobbetti
Robson Louro legramante
Integração de Dispositivo Móvel com a computação embarcada automotiva
Trabalho de Conclusão de Curso
apresentado À Faculdade de Tecnologia
Rubens Lara como parte dos requisitos
para obtenção do título de Tecnólogo em
Análise e Desenvolvimento de Sistemas.
Orientador
Ms. Ciro Cirne Trindade
Santos
2012
CLAUDIO GOMES GOBBETTI
ROBSON LOURO LEGRAMANTE
Integração de Dispositivo Móvel com a
computação embarcada automotiva.
Banca Examinadora:
Orientador:
Ms. Ciro Cirne Trindade
Membro:
<>
Membro:
<>
Santos
2012
RESUMO
Todo veículo automotor moderno possui um Sistema Computacional Distribuído que trabalha
visando à segurança e bem estar dos ocupantes. Este Sistema possui um sistema de diagnose
definido como On-Board Diagnostic (OBD) que permite que sejam coletadas informações de
seu estado atual, falhas registradas anteriormente e identificação do veículo e seus
componentes. O CONAMA inclui nas ações governamentais de controle de poluição o
sistema OBD, gerando a obrigatoriedade das montadoras de que sejam registrados dados que
permitam verificar o estado do veículo para prevenção e controle de poluição. O acesso ao
sistema OBD eram disponibilizado apenas à especialista do meio automobilístico e seus
equipamentos eram dispendiosos. Visando tornar acessível efetuou-se o estudo referente a
integrar o Sistema OBD a um dispositivo móvel dotado de Sistema Operacional Android
através de um dispositivo Bluetooth. O estudo gerou um aplicativo que possibilita a obtenção
das informações contidas no veículo e sua interpretação.
Palavras-chave: On-Board Diagnostic, OBD, Bluetooth, Veículo automotor, Poluição,
Identificação veicular.
ABSTRACT
Every motor vehicle has a modern Distributed Computer System that works to the safety and
welfare of the occupants. This system has a system of diagnosis defined as On-Board
Diagnostic (OBD) system that allows information to be collected from its current state,
recorded earlier failures and identify the vehicle and its components. The CONAMA includes
government actions in pollution control OBD, generated the requirement the automakers that
are registered data to check the status of the vehicle to prevent and control pollution. Access
to the OBD system was only available through the specialist automobile and its equipment
was costly. Aiming make it accessible was made the study concerning the OBD system
integration with a mobile device equipped with Android operating system via a Bluetooth
device. The study generated an application that enables the collection of information
contained in the vehicle and its interpretation.
Keywords: On-Board Diagnostics, OBD, Bluetooth, Automotive vehicle, Pollution, Vehicle
identification.


SUMÁRIO
INTRODUÇÃO ................................................................................................................ 10
COMPUTAÇÃO EMBARCADA AUTOMOTIVA ....................................................... 15
2.1
Definição................................................................................................................ 15
2.1.1
Unidade Eletrônica de Controle – ECU ............................................................ 15
2.1.2
Redes de Comunicação Automotivas ............................................................... 16
2.2
Diagnóstico Automotivo........................................................................................ 17
2.2.1
Definição ........................................................................................................... 17
2.2.2
Evolução do OBD ............................................................................................. 18
2.2.3
Padrão OBD-II .................................................................................................. 18
2.2.3.1 Diagnostic Troube Code - DTC ................................................................... 20
2.2.4
Padrão OBDBr-2 ............................................................................................... 21
2.2.5
Conector do OBD-II ......................................................................................... 22
2.2.6
Protocolos de Comunicação .............................................................................. 23
 TECNOLOGIA ................................................................................................................ 25
3.1
Android .................................................................................................................. 25
3.2
Arquitetura Android............................................................................................... 25
3.3
Aplicações.............................................................................................................. 27
 DO SISTEMA .................................................................................................................. 30
4.1
Arquitetura Geral do Sistema ................................................................................ 30
4.2
Do desenvolvimento do Sistema ........................................................................... 30
4.2.1
Da Conexão BLUETOOTH .............................................................................. 33
4.2.2
Das funcionalidades .......................................................................................... 36
4.3
Da Aplicação Android ........................................................................................... 37
 CONSIDERAÇÕES FINAIS ........................................................................................... 41
REFERÊNCIAS BIBLIOGRÁFICAS ..................................................................................... 42
LISTA DE ILUSTRAÇÕES
Ilustração 1 - Comparação de Vendas entre PC’s e dispositivos móveis. ................................ 11
Ilustração 2 - Market Share e Previsão de Vendas ................................................................... 11
Ilustração 3 - Conector fêmea OBD-II com indicação de pinagem ......................................... 22
Ilustração 4 - Dispositivo ELM 327 - Bluetooth ...................................................................... 24
Ilustração 5 - Arquitetura Android ........................................................................................... 26
Ilustração 6 - Solicitação de permissões ao instalar ................................................................. 28
Ilustração 7 - Instalação dos Pacotes através do SDK Android Manager ................................ 31
Ilustração 8 - Distribuição atual das versões da Plataforma Android....................................... 33
Ilustração 9 - Fluxograma da conexão Bluetooth ..................................................................... 35
Ilustração 10 - Tela de linha de comando ................................................................................. 38
Ilustração 11 - Tela com linhas de Comando AT ..................................................................... 39
Ilustração 12 - Tela de Comandos no modo gráfico ................................................................. 40
LISTA DE TABELAS
Tabela 1 - Códigos de solicitação SERVICE ........................................................................... 19
Tabela 2 - Pinagem do conector OBD-II .................................................................................. 23
LISTA DE ABREVIAÇÕES
ADB
ANATEL
ANFAVEA
API
AOSP
AVD
BCM
CALID
CAN
CONAMA
CPU
DTC
DVM
ECM
ECU
EOBD
GPS
ISO
KW2000
MAC Adress
MIL
OBD
OBDBr
OICA
OSI
PCM
PC
PID
PWM
SAE
SDK
SMS
TCM
UTF-16
UTF-8
VIN
VPW
Android Device Bridge
Agência Nacional de Telecomunicações
Associação Nacional de Fabricantes de Veículos Automotores
Application Programming Interface
Android Open Source Project
Android Virtual Device
Body Control Module
Calibration Identifications
Controller Area Network
Conselho Nacional de Meio Ambiente
Central Processing Unit
Diagnostic Trouble Codes
Dalvik Virutal Machine
Engine Control Module
Eletronic Control Unit
European On-Board Diagnostics System
Global Positioning System
International Organization for Standardization
Keyword 2000
Media Access Control Adress
Malfunction Indication Lamp
On-Board Diagnostic System
On-Board Diagnostic System - Brasil
Organisation Internationale des Constructeurs d’Automobiles
Open Systems Interconnection
Powertrain Control Module
Pocket Computer
Parameter Identification
Pulse Width Modulation
Society of Automobile Engineers
Software Development Kit
Short Message Service
Transmission Control Module
16-bit Unicode Transformation Format
8-bit Unicode Transformation Format
Vehicle Identification Number
Variable Pulse Width
 INTRODUÇÃO
Os Sistemas de Informações e o controle de processos baseados em CPU1s passaram a
ser instrumento indispensável na vida profissional e particular das pessoas. Entretanto, mais
de 90 por cento das CPUs em utilização no mundo não estão em PCs desktops e notebooks
(TANENBAUM, 2009). Eles estão em aparelhos comuns como telefones celulares, tablets,
roteadores sem fio, modens, aparelhos GPS, televisores e veículos automotivos entre outros.
Quando tais Sistemas de Informações e o controle de processos são completamente
encapsulados ou dedicados ao dispositivo ou sistema que ele controla é considerado um
Sistema Embarcado. Com mais de 40 milhões de veículos produzidos e registrados no Brasil
nos últimos 10 anos (ANFAVEA, 2012) e aproximadamente 60 milhões de veículos
produzidos no mundo apenas em 2011 (OICA, 2012), a computação embarcada
automobilística tornou-se um assunto de relevante importância.
Nos
últimos
anos
presenciamos
uma
evolução
tecnológica
na
indústria
automobilística, e um dos maiores avanço foi a padronização de um sistema de comunicação,
diagnóstico e aviso de erros de todos os componentes de um veículo conhecido por OBD (OnBoard Diagnostic System).
O modelo foi introduzido ao mercado pela Volkswagen em 1969, quando incluiu em
seus carros um sistema computadorizado com capacidade de escaneamento de erros em seus
primeiros modelos de carros equipados com injeção eletrônica, e desde então tem sido
evoluído até chegar ao modelo usado nos dias de hoje, conhecido como OBD-II.
Com a evolução tecnológica, outras áreas acabam se destacando, como é o caso da
área móvel, formada por Smartphones e Tablets, tendo sido vendido no ano passado mais
unidades de tais dispositivos móveis do que PC’s comuns, conforme mostra estudo realizado
pela empresa especializada em TI Canalys (CANALYS, 2012), visto na Ilustração 1.
1
1
CPU – Unidade Central de Processamento (Central Processing Unit)
Ilustração 1 - Comparação de Vendas entre PC’s e dispositivos móveis.
Outro estudo, realizado pelo instituto Gartner (GARTNER, 2012), indica a explosão
do Sistema Android, mostrando a evolução do Sistema em Market Share, durante os últimos
anos e prevendo uma participação próxima a 50% nos Sistemas Operacionais instalados em
dispositivos móveis, como mostra a Ilustração 2.
Ilustração 2 - Market Share e Previsão de Vendas
A utilização do OBD-II sempre esbarrou em um problema, sua utilização era apenas
visando técnicos de manutenção manuseando equipamentos caros e restritos. Para uma
verificação apurada era necessário que o veículo estivesse ligado por cabos a uma estação de
checagem, normalmente um desktop, sendo tais cabos e programas específicos a cada modelo
de veículo. Estes empecilhos geram descrença de proprietários de veículos, visto que, em
muitos lugares o lucro do estabelecimento ainda é feito em cima de pessoas sem
conhecimento avançado de mecânica e sem acesso as informações do Sistema de Diagnóstico
do veículo.
Existe também certa dificuldade de órgãos públicos em fiscalizar veículos
automotores de procedência duvidosa, não existindo métodos que possam identificar o
veículo e assegurar a autenticidade das informações contidas no sistema embarcado.
O surgimento de conectores de diagnóstico OBD-II utilizando a tecnologia Bluetooth
o qual, em tese, eliminaria a necessidade de cabos e estações de checagem e como um grande
número de dispositivos móveis tais, como Smartphones e Tablets, possuem incorporados tal
protocolo de comunicação, surgem então as questões:
Como integrar dispositivos móveis baseados em Sistema Operacional Android com
sistemas embarcados automotivos, mais especificamente com o OBD-II, através do protocolo
de comunicação Bluetooth?
Como utilizar tal integração para coletar dados do veículo tanto para uso de
manutenção e prevenção como para identificação do veículo?
Tais perguntas levam a este Trabalho de Conclusão de Curso.
Este Trabalho teve como objetivo o aprendizado das técnicas e desenvolvimento de
uma aplicação em linguagem Java, compatível com dispositivos móveis que utilizam Sistema
Operacional Android, para que, através de uma conexão Bluetooth com um adaptador
compatível com OBD-II, todas as informações obtidas através dos sensores instalados em um
veículo possam ser mostradas para o usuário, sejam essas informações referentes a erros e
defeitos, identificação veicular ou apenas informações simples, como velocidade de rotação e
temperatura do motor.
Para validar o desenvolvimento da aplicação e sua confiabilidade na coleta de
informações referentes oa status do veículo e sua identificação, planejamos testes com os
seguintes objetivos:

Realizar ensaios para coleta de informações em diversos veículos;Realizar os
mesmos ensaios alterando condições, tais como, simulando defeitos (testes não
realizado por motivos alheios a nossa vontade);

Verificar confiabilidade da identificação do veículo tanto através do numeral
VIN2, bem como por números de autenticação do sistema coletados utilizando
o OBD-II.
Na loja de aplicativos do Google, a Play Store, existem poucos aplicativos
compatíveis com o protocolo OBD-II, sendo que os poucos existentes são falhos ou com
funções que não ajudariam uma gama maior de usuários.
O desenvolvimento do aplicativo, devido às facilidades da plataforma escolhida, o
número de usuários e suas previsões de vendas atingirão três tipos de usuário:

O cliente de uma oficina ou concessionária que deseja saber se o seu
veículo, por exemplo, está com aquela peça realmente quebrada ou apenas
saber se o carro usado que está comprando tem realmente aquela
quilometragem mostrada.

Órgãos públicos que necessitam de informações detalhadas de veículos,
como se o número de chassi que consta gravado no módulo do carro
corresponde com o chassi do veículo.

Seguradoras/vistoriadoras de veículos, as quais precisam de informações
que podem ser omitidas por clientes.
No intuito de desenvolver o aplicativo utilizamos “Pesquisa Bibliográfica” onde foram
utilizados livros, artigos científicos publicados e artigos técnicos relacionados com os
assuntos. Consultados também manuais técnicos dos equipamentos utilizados (B&B
ELETRONIC MANUFECTURING COMPANY, 2012; ELM ELECTRONICS, 2012) e
material de cursos de habilitação em tais equipamentos; realizamos “Estudo de Ferramenta”
2
VIN – Número de identificação do veículo (Vehicle Identification Number).
utilizando ferramentas de interface para comunicação entre o veículo e o dispositivo móvel,
ferramentas de desenvolvimento para dispositivos móveis e ferramentas de teste e finalmente
efetuamos “Pesquisa Exploratória” onde realizamos levantamento das instruções utilizadas
pelo Sistema OBD-II e os padrões de dados recebidos e suas conversões. Também fez parte
da pesquisa exploratória o desenvolvimento do sistema e os testes de campo. Quanto ao
desenvolvimento do sistema este foi desenvolvido utilizando conhecimentos em Linguagem
de Programação Java, voltada para o Sistema Operacional Android. Foi realizado estudo
específico das classes que permitem a utilização de dispositivos Bluetooth na plataforma
Android. Os testes de campo foram realizados aquém do nosso desejo, pois a dificuldade de
conseguir veículos de diversas marcas e ano de fabricação precisa ser levado em relevância
quanto à consistência da massa de teste.
 COMPUTAÇÃO EMBARCADA AUTOMOTIVA
2.1 Definição
Os veículos automotivos atualmente podem ser considerados complexos Sistemas
Computacionais Distribuídos Embarcados (NOLTE, HANSSON, LO BELLO, 2005). Um
Sistema Computacional pode ser definido como distribuído se atender as seguintes
características: diversas unidades de processamento próprias e com memórias individuais que
compartilham informações através de uma rede de dados com o objetivo de concluir uma
tarefa em comum (TANENBAUM, 2009). No mesmo princípio um sistema é dito embarcado
quando se dedica a uma única tarefa e interage continuamente com o ambiente à sua volta por
meio de sensores e atuadores (SANTOS, 2010).
2.1.1 Unidade Eletrônica de Controle – ECU
As Unidades Eletrônicas de Controle (Eletronic Control Unit – ECU) são dispostas
em módulos eletrônicos, os quais são responsáveis pela leitura das entradas, acionamento das
saídas e pelo gerenciamento dos protocolos de comunicação utilizados nos veículos
(GUIMARÃES, 2011). Um módulo ECU é tipicamente constituído por um microprocessador,
uma memória que armazena o software3 do módulo, portas para os controladores de
comunicação, portas de entrada de sinais medidos por sensores e portas de saída dos sinais
controlados pelo módulo.
Conforme a finalidade da ECU são utilizadas siglas padronizadas como forma de
identificar os diversos sistemas e os seus controles. Seguem alguns dos principais módulos e
suas siglas:

Body Control Module (BCM): Módulo de Controle da Carroceria. Quando
esta denominação é utilizada, significa que todas as funções básicas e até
algumas funções opcionais são realizadas por essa ECU. Em caso de mais de
3
Software da ECU: Constituído de um Firmware (programa gravado em uma memória EEPROM), área
de memória para calibração e parâmetros programáveis. O Firmware é gravado pelo fornecedor do módulo, os
dados de calibração são gravados pela montadora do veículo conforme a aplicação do módulo.
uma rede de comunicação de dados geralmente a BCM tem a função de
compatibilizar os níveis de sinais de tais redes.

Engine Control Module (ECM): Módulo de Controle do Motor.

Transmission Control Module (TCM): Módulo de Controle da Transmissão.

Powertrain Control Module (PCM):
Módulo de Controle do Motor e
Transmissão, módulo que controla o conjunto motor e transmissão.
2.1.2 Redes de Comunicação Automotivas
No setor automotivo a utilização de um maior número de ECU por veículo, sendo que
em alguns casos ultrapassam 60 módulos em um único veículo, gerou a necessidade da
criação de Protocolos de Comunicação Automotivos. Como toda rede de comunicação
computacional tais protocolos seguem o padrão de comunicação OSI de sete camadas (ISO
7498).

Camada 1: Física – Define as especificações elétricas e físicas dos
dispositivos, sendo responsável pela codificação e decodificação de símbolos
em sinais elétricos que serão lançados no meio físico. Efetua transmissões de
bits (0 e 1).

Camada 2: Enlace de dados - Detecta e corrige erros encontrados na Camada
1. Responsável pela conexão confiável e controla a taxa de transmissão
evitando que o sistema transmissor envie dados em uma taxa maior do que o
receptor consegue processar.

Camada 3: Rede - Controla as operações da rede efetuando o roteamento na
rede e garante o endereçamento.

Camada 4: Transporte - Parte central de toda a hierarquia de protocolos. Sua
tarefa é prover o transporte confiável de dados, independente da rede física.
Segmenta a mensagem no transmissor e monta no receptor.

Camada 5: Sessão – Estabelece, gerencia e finaliza as conexões entre
módulos ligados a rede de comunicação de dados.

Camada 6: Apresentação – Assegura que a informação seja transmitida de tal
forma que possa ser entendida e utilizada pelo receptor.

Camada 7: Aplicação – Camada superior do modelo OSI, responsável por
prover serviços para as aplicações superiores de forma a abstrair a existência
de comunicação entre processos de diferentes computadores.
As tecnologias de redes automotivas podem ser classificadas quanto à funcionalidade
e satisfação de requisitos operacionais entre outras características. Em um veículo podem
existir diversas tecnologias de redes de comunicações, porém tal detalhamento não faz parte
do escopo deste trabalho. Como exemplo, temos a classificação de redes automotivas da SAE4
que agrupa protocolos de comunicação em classes e utiliza as denominações Classe A
(sensores e controles não críticos e alguns diagnósticos), Classe B (utilizado para
comunicação entre ECUs) e Classe C (Comunicação de alta velocidade para sistemas que
envolvam segurança do veículo) que diferem quanto ao barramento de comunicação, a taxa de
transmissão e utilização. Também utiliza as classes Mobile Media (Entretenimento), Safety
Bus (Airbag), Drive by-wire (Substituição de acionamentos mecânicos, tais como freio e
acelerado, por acionamento elétrico) e a Classe Diagnóstico que faz parte do escopo deste
trabalho.
2.2
Diagnóstico Automotivo
2.2.1 Definição
O Diagnóstico Automotivo surgiu da necessidade de verificar possíveis falhas de
sistemas na Computação Embarcada Automotiva, bem como efetuar a telemetria do veículo.
Criaram-se requisitos para a troca de informação entre os módulos ECU, armazenamento de
códigos de falhas DTC5, identificação dos módulos e do veículo. Tal sistema recebeu a
designação OBD (On-board diagnostics) que compreende toda a aquisição de dados
disponíveis através de um equipamento externo. Evoluiu de uma simples luz indicadora que
avisava sobre uma falha no motor ou painel até um controle total que permite que problemas
sejam detectados, identificados e resolvidos rapidamente.
4
SAE: Society of Automobile Engineers - Associação global de engenheiros e técnicos que visa
desenvolver padrões para os mercados aeroespacial, automotivo e comercial do veículo.
5
DTC: Diagnostic Trouble Codes, definidos no item 2.2.3.1.
2.2.2 Evolução do OBD
No final da década de 60 e início da década de 70 veículos começaram a utilizar ECUs
para monitorar e ajustar sistema de injeção eletrônicas, dando início às primeiras
implementações de OBD, mas sem um padrão definido. Na década de 80 cria-se o primeiro
padrão para conectores e sinais de diagnóstico que foi definido como OBD-I. Na década de
90 cria-se o padrão OBD-II com conectores e protocolos de comunicação, padrão este
adotado por todos os carros vendidos nos Estados Unidos. A União Europeia toma como base
o OBD-II e cria o EOBD para todos os veículos vendidos em sua região.
No Brasil o grande marco em relação à telemetria automotiva adveio do Conselho
Nacional de Meio Ambiente - CONAMA que estabeleceu, através da Resolução 354 de 13 de
dezembro de 2004, a criação dos Sistemas OBDBr-1 e OBDBr-2 para o controle de poluição
do ar por veículos automotores, sistemas estes baseados no OBD-II. Tal resolução teve sua
implementação gradativa, sendo a primeira fase o sistema OBDBr-1 e progredindo para o
sistema OBDBr-2. Desde o início de 2011 tornou-se obrigatório que o Sistema de Diagnose
OBDBr-2 esteja presente e acessível em todos os veículos leves de passageiro e leves
comerciais, nacionais e importados destinados ao mercado brasileiro.
2.2.3 Padrão OBD-II
O padrão OBD-II para solicitação e recebimento de telemetria dos módulos segue a
ISO 15031-5:2006 que define todas as requisições de serviços padrão, independente dos
protocolos de comunicação ou do emissor da norma. Tal diferenciação será explicada mais a
frente quando exemplificarmos os métodos de conexão com o ODB-II.
São padronizados os códigos de solicitação de informação a partir de um par definido
como SERVICE e PID. Uma requisição de SERVICE é definida pela ISO 15031-5:2006
como “troca de informações iniciada por um cliente (equipamento de teste externo) a fim de
exigir informações de diagnóstico a partir de um módulo (ECU) e / ou para modificar o seu
comportamento para fins de diagnóstico6”. Um código PID (Parameter Identification)
completa o par da solicitação de informação sendo que seus valores variam de $01 a $FF (em
hexadecimal), porém nem todos os valores de PID são utilizados em todos os SERVICE.
Exceção feita ao SERVICE $01 PID $00 que é definido como mensagem universal de
6
Tradução livre.
“inicialization/keep alive/ping” entre todas as emissões que relacione o OBD com uma ECU.
Os códigos de solicitação SERVICE são definidos conforme a tabela 1.
Cabe ressaltar que a ISO 15031-5:2006 define os códigos PID mínimos utilizados e
que estes são reservados em comum a todas as montadoras de veículos, sendo possível a
utilização pelas montadoras de PID próprios para controle de funções exclusivas.
Tabela 1 - Códigos de solicitação SERVICE
SERVICE
$01
$02
$03
$04
$05
$06
$07
$08
$09
ISO 15031-5:2006
Request current powertrain diagnostic data
Request powertrain freeze frame data
Request emission-related diagnostic trouble codes
Clear/reset emission-related diagnostic information
Request oxygen sensor monitoring test results
Request on-board monitoring test results for specific monitored
systems
Request emission-related diagnostic trouble codes detected during
current or last completed driving cycle
Request control of on-board system, test or component
Request vehicle information
Como tradução livre e resumo dos SERVICE (Tabela 1) temos:

SERVICE $01: Requisição de dados correntes presentes na memória RAM da
ECU sobre o Sistema Powertrain (motor e transmissão).

SERVICE $02: Serviço responsável pela aquisição de parâmetros instantâneos
(QIP), sendo que fornece a condição do veículo no exato momento de uma
falha registrada através da lâmpada MIL7.

SERVICE $03: Requisição dos códigos de falha (DTC8).

SERVICE $04: Reseta os códigos de falha existentes no veículo.

SERVICE $05: Requisição para visualizar os resultados dos testes no sensor
de oxigênio.
MIL: Malfunction Indicator Lamp – Lâmpada instalada no painel do veículo que informa um mau
funcionamento do sistema de controle de emissões. Descrita na Instrução Normativa nº 24/2009 IBAMA.
8
DTC: Diagnostic Trouble Codes, definidos no item 2.2.3.1.
7

SERVICE $06: Requisição para visualizar resultados dos testes on-board em
componentes específicos, como catalisador (PID $21).

SERVICE $07: Similar ao SERVICE $03, porém apresenta os últimos DTCs
que ocorreram mas não necessariamente acenderam a MIL.
2.2.3.1

SERVICE $08: Requisição para testes específicos nas ECUs.

SERVICE $09: Fornece informações gerais sobre a identificação do veículo.
Diagnostic Troube Code - DTC
Toda vez que uma ECU reconhece uma falha ou mau funcionamento em algum
sistema do veículo, módulo eletrônico, ou ainda perda de comunicação entre ECUs fica
registrado na memória dos módulos eletrônicos um código DTC. Este código é registrado
automaticamente e pode ser recuperado através de um equipamento externo utilizando as
solicitações de SERVICE $03 e $07. Os códigos de falha, definidos na ISO 15031-6,
possuem um conjunto de cinco dígitos sendo o primeiro dígito sempre será representado por
uma letra (B / C / P / U) e define o sistema que está sofrendo a falha. O segundo dígito, de
valor numérico 0 a 3, define se este código de erro é genérico (ISO/SAE) ou trata-se de uma
DTC específica da montadora. O terceiro dígito alfanumérico (0 a 9, A, B, C) indica o
subsistema que onde está acontecendo a falha. O quatro e quinto dígitos correspondem ao
número serial da falha diagnóstica para aquele grupo, variando de 00 a 99. Tais códigos
seguem o seguinte padrão:
1º Dígito – Grupo Sistema:
P – Motor (Powertrain)
B – Carroceria (Body)
C – Chassi (Chassi)
U – Rede (Network)
2º Dígito – Tipo de DTC9:
0 – Descrição ISO/SAE
1 – Descrição Montadora
9
Códigos 0 e 1 são padrões para todos os Grupos de Sistema, valores 2 e 3 assumem padrões próprios
dependendo do Grupo de Sistema.
3º Dígito – Indicação Subsistema:
1 – Medição de combustível e ar
2 – Medição de combustível e ar (injetor)
3 – Sistema de Ignição
4 – Controle Auxiliar de Emissões
5 – Controle de Velocidade veículo/Rotação
6 - Circuitos de Entrada/Saída Computador
7 – Transmissão
8 – Transmissão
2.2.4 Padrão OBDBr-2
Conselho Nacional de Meio Ambiente - CONAMA estabeleceu, através da Resolução
354 de 13 de dezembro de 2004, padrões de controle de poluição do ar por veículos
automotores os quais nomeou como OBDBr (BRASIL, 2004). Definiu controles obrigatórios
através do diagnóstico de bordo (OBD) e estipulou duas etapas consecutivas e
complementares denominadas por OBDBr-1 e OBDBr-2, esta última totalmente
implementada desde janeiro de
2011. Posteriormente o IBAMA estabeleceu, em suas
Instruções Normativas nº 126/2006 e nº 24/2009, especificações e critérios de verificação dos
sistemas OBDBr-2 (BRASIL, 2006 e 2009). Determinou que a norma técnica a ser seguida
para verificação dos dispositivos mínimos, seria a ISO 15031 – parte 3, 4, 5 e 6. A parte 3 da
norma define o conector que deve estar disponível no veículo e a parte 4 os protocolos de
comunicação. A parte 5 da ISO 15031 trata da aquisição de dados através dos serviços
SERVICE e PID e a Instruções Normativas definem os serviços mínimos ativos no veículo
como:
Service $01 – Request current powertrain diagnostic data:
PID $01: Números de relatos DTC e status da MIL;
PID $21: Distância percorrida desde o acionamento da MIL.
Service $03 – Request emission-related diagnostic trouble codes: completo.
Service $04 – Clear/reset emission-related diagnostic information: completo.
Service $09 – Request vehicle information:
PID $01: Número de mensagens para reportar o VIN.
PID $02: VIN (Vehicle Identification Number).
PID $03: Número de mensagens para reportar o CALID.
PID $04: CALID10 – Calibration Identifications.
Todos os códigos DTC definidos na ISO 15031-6 devem ser integralmente acessíveis
por meio do equipamento de diagnóstico normalizado.
2.2.5 Conector do OBD-II
A ISO 15031-3 especifica os requisitos pra o conector OBD-II para comunicação
entre um veículo e um equipamento de diagnóstico. Determina que o conector instalado no
veículo (tipo fêmea) deve ter fácil acesso e sempre instalado ao alcance do motorista. O
conector de diagnóstico (tipo macho) possui 16 pinos (2X8). Basicamente permite a conexão
com todos os protocolos de comunicação através da seleção dos pinos correspondentes. Sua
pinagem (Tabela 2) e formato (Ilustração 3) são apresentados a seguir.
Ilustração 3 - Conector fêmea OBD-II com indicação de pinagem
10
CALID: Identifica o software instalado na ECU e suas calibrações.
Tabela 2 - Pinagem do conector OBD-II
Pino
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Descrição
Fabricante
J1850 Bus+
Fabricante
Chassi Terra (GND)
Sinal Terra (GND)
CAN high (ISO 15765-4/SAE J2284)
K line (ISO 9141-2 ou ISO 14230-4)
Fabricante
Fabricante
J1850 BusFabricante
Fabricante
Fabricante
CAN low (ISO 15765-4/SAE J2284)
L line (ISO 9141-2 ou ISO 14230-4)
Voltage Positiva Permanente
2.2.6 Protocolos de Comunicação
Existem cinco protocolos de sinais possíveis em sistema OBD-II, que diferem quando
taxa de transferência, utilização de pinagem do conector OBD-II, sistema de detecção de erro
de transmissão e método de estabelecer contato. O protocolo mais utilizado ultimamente é o
ISO 15765 também conhecido como Controller Area Network (CAN). Os outros protocolos
são SAE J1850 PWM (Pulse Width Modulation), SAE J1850 VPW (Variable Pulse Width),
ISO
9141-2 e o ISO 14230, também conhecido como KW2000 (Keyword 2000). Tais
protocolos não fazem parte do detalhamento do escopo deste trabalho, pois a ferramenta que
será utilizada para a conexão entre OBD-II e os dispositivos móveis será a ELM 327 –
Interface Bluetooth (vide a Ilustração 4), ferramenta esta que através de comandos identifica
os protocolos de comunicação estabelecendo uma conexão.
Ilustração 4 - Dispositivo ELM 327 - Bluetooth
Fonte: Captado pelos Autores
O dispositivo ELM 327 – Interface Bluetooth uma vez instalado no conector OBD – II
do veículo conseguirá estabelecer uma conexão entre o sistema OBD – II do veículo e o
Sistema a ser desenvolvido, executar as solicitações SERVICE e PID e retransmitir
informações do veículo e as DTC.
as
 TECNOLOGIA
3.1 Android
Segundo a Anatel, em 2007 existiam 160,4 milhões de aparelhos móveis no Brasil,
uma média de 0,84 aparelhos por habitante, e chegando em 2011 com 285,2 milhões de
aparelhos, aumentando esta média para 1,45 por habitante, nos dá uma idéia do crescimento
comercial deste tipo de dispositivo.
Por suas previsões comerciais e de market-share, a plataforma usada neste projeto será
o Android, um sistema operacional móvel aberto baseado em Linux.
O Android foi criado em 2003, pela empresa chamada Android, Inc., que, nas palavras
de um de seus fundadores, Andy Rubin, foi criada para desenvolver "dispositivos inteligentes
móveis que, dentre outras coisas, estão mais cientes da localização de seu dono e
preferências".
Em 2005 a empresa foi adquirida pelo Google, e seus fundadores contratados pela
empresa. Andy hoje é Vice-Presidente de Móveis do Google.
Em 2007, o Google anuncia a primeira distribuição do Android, junto com a fundação
da Open Handset Alliance, um consórcio de 86 empresas de hardware, software e
telecomunicações. Encarregado de discutir, planejar e desenvolver novos padrões e
tecnologias para dispositivos móveis, o consórcio é liderada pelo Google.
Atualmente, o código-fonte do Android é disponibilizado em Open-Source, sob a
licença Apache.
O projeto de código aberto do Android (Android Open Source Project, ou AOSP) é
liderado pelo Google, que é encarregado principalmente da manutenção do código e futuros
desenvolvimentos.
3.2 Arquitetura Android
A arquitetura do sistema operacional Android é uma pilha agrupada em camadas
divididas em quatro níveis, normalmente chamados de níveis zero, um, dois e três, conforme
figura abaixo:
Ilustração 5 - Arquitetura Android
Fonte: http://developer.android.com/guide/basics/what-is-android.htm
No Nível Zero temos o Kernel, também chamado de base da pilha. Foi desenvolvido
utilizando-se a versão 26 do SO Linux.
É onde se encontram os programas de gerenciamento de memória, configurações de
segurança e alguns dos drivers de hardware.
No Nível Um encontram-se as camadas de biblioteca (libraries e de tempo de
execução - Android RunTime).
A camada de biblioteca é responsável por tratar diferentes tipos de dados, incluindo
uma biblioteca C/C++ usada por componentes do sistema.
A camada de tempo de execução é formada por um conjunto de bibliotecas do núcleo
Java e a Máquina Virtual Dalvik (DVM), usada para a compilação de aplicações do
dispositivo. A DVM é otimizada para trabalhar com baixa memória e permite várias
instancias rodando ao mesmo tempo.
A estrutura do Android usa a máquina virtual para que nenhuma aplicação fique
dependente de outra, e simplifica o gerenciamento da memória.
No Nível Dois temos a camada de framework de aplicação (Application Framework),
onde residem programas que gerenciam as aplicações básicas do telefone.
No Nível Três estão as camadas de aplicações e funções especificas do dispositivo,
onde são fornecidas as funções do telefone, tais como fazer uma ligação, enviar um SMS, etc.
3.3 Aplicações
O Android conta com uma vasta biblioteca de API's, facilitando o desenvolvimento de
aplicações e permitindo que suas funções sejam mais bem gerenciadas, tanto do ponto de vista
do usuário quanto do desenvolvedor.
Uma das maiores diferenças na plataforma Android é que não existem privilégios
entre as aplicações embarcadas no dispositivo e aplicações criadas por desenvolvedores.
Ambas são desenvolvidas com o mesmo SDK (Kit de desenvolvimento de software),
mostrando que é possível criar aplicações que utilizem todos os recursos do aparelho.
Aplicativos de terceiros, também conhecidos como third-party têm a mesma prioridade para
serem executados que aplicativos de núcleo.
O SDK do Android é bem completo e dá acessos a qualquer função que o sistema
operacional tenha, permitindo ao desenvolvedor uma liberdade maior ao adicionar funções, ao
contrário de outras plataformas móveis onde, por exemplo, a funcionalidade de bluetooth é
disponível apenas para atividades relacionadas ao player de música, como fones de ouvidos.
Após a fase de pesquisa bibliográfica e durante a fase de estudo de ferramentas,
optamos por usar a IDE Eclipse para o desenvolvimento, utilizando um plugin não oficial,
porém indicado na página oficial do Android Developer (ANDROID), que irá possibilitar o
uso do vasto conjunto de bibliotecas existentes no SDK, conhecidas como API. A instalação
de todos os componentes necessários também foi seguida de acordo com as recomendações
disponíveis no mesmo site.
Dentre essas API's está o conjunto de classes e métodos disponíveis para o uso do
Bluetooth. Este conjunto abrange desde tarefas mais simples, como verificar se o existe um
adaptador Bluetooth no aparelho, descobrir outros aparelhos e ser descoberto por esses
mesmos aparelhos, solicitar conexões com outros dispositivos, podendo estas conexões serem
seguras, através de uma senha solicitada pelos dois aparelhos ou sem segurança.
Para toda e qualquer funcionalidade que seja inserida dentro de uma aplicação e que
possa envolver a segurança do usuário, a plataforma exige que sejam solicitadas permissões.
Estas permissões devem ser declaradas no AndroidManifest.xml e devem estar
condizentes com as funcionalidades da aplicação. A segurança para o usuário se dá quando a
aplicação é instalada, onde uma tela aparece mostrando quais permissões o aplicativo
necessita e se o usuário aceita estas permissões. Caso o usuário não concorde com as
permissões à instalação do programa é abortada (Ilustração 6).
Ilustração 6 - Solicitação de permissões ao instalar
Fonte: Elaborado pelos Autores
Dentro das permissões que deverão ser solicitadas, deve-se usar os dois tipos de
permissão existentes relacionados ao Bluetooth: BLUETOOTH, para obter permissão de
comunicação através do adaptador Bluetooth e BLUETOOTH ADMIN, para manipular
configurações dos dispositivos, como por exemplo, ativar o adaptador caso o mesmo esteja
desativado.
 DO SISTEMA
Este capítulo descreve o Sistema desenvolvido e como este foi concebido a partir do
problema inicial: como integrar dispositivos móveis baseados em Sistema Operacional
Android com sistemas embarcados automotivos, mais especificamente com o OBD-II, através
do protocolo de comunicação Bluetooth?
4.1 Arquitetura Geral do Sistema
O Sistema XXX utilizará as funcionalidades de um dispositivo móvel para realizar a
conexão com o dispositivo ELM 327 – Interface Bluetooth o qual servirá de intermediário
para obtenção de informações do Sistema Computacional Embarcado do veículo que utiliza o
Sistema OBD-II.
Realizada a conexão o Sistema apresentará as seguintes funcionalidades que serão
obtidas referentes ao dispositivo ELM 327 (E) ou do Sistema OBD-II (O):

Apresentar a versão do dispositivo ELM 327 (E);

Apresentar o protocolo de comunicação existente no veículo (E);

Informar se existe falha registrada (lâmpada MIL acionada) (O);

Informar se existiu e quais falhas foram registradas (DTCs) (O);

Informar condições gerais do veículo tais como velocidade, rotações por
minuto, temperatura da água do radiador, aceleração, temperatura de entrada
de ar no sistema de arrefecimento, etc. (O);

Informar se está disponível a identificação do veículo e seu VIN (O).
4.2 Do desenvolvimento do Sistema
Inicialmente definido e instalado nas máquinas estações de trabalho os seguintes
softwares recomendados:

Maquina virtual JAVA versão 1.6.0_37;

Eclipse JUNO versão 4.2.0;

SDK Android Revisão 20.0.1;

Plugin ADT 20.0.3.
O SDK do Android separa ferramentas, componentes e APIs em pacotes (Packages) e
estes podem ser escolhidos para download conforme a faixa de versão que deseja-se
implementar (Ilustração 7).
Ilustração 7 - Instalação dos Pacotes através do SDK Android Manager
Fonte: Elaborado pelos Autores
Instalados os softwares que nos permitem a programação para dispositivos móveis
baseados em Android definimos um Android Virtual Device (AVD). Um AVD é um
emulador de características de smartphone, para que possamos testar nosso Sistema em versão
específica ou grupos de versões do Android. Foi definido que o emulador AVD seria
compatível a smartphones que suportassem as versões 2.2 até 4.1. Tal escolha gera
compatibilidade do Sistema desenvolvido a todos os aparelhos desta faixa de versões.
Após os primeiros testes com as funções de Bluetooth da aplicação, percebeu-se que o
aplicativo quando instalado no emulador não executava a aplicação. Todas as vezes que o
aplicativo solicitava ao emulador a verificação da existência de um adaptador Bluetooth
presente, o aplicativo fechava e exibia um erro. Consultada a documentação oficial do
Android descobriu-se que o emulador não tem capacidade de lidar com algumas funções,
dentre elas o Bluetooth.
O ADB é uma ferramenta em linha de comando que faz a comunicação (uma ponte)
entre a plataforma de desenvolvimento e o emulador ou um dispositivo conectado através
deste modo. Consiste em um programa cliente-servidor que inclui três componentes:
 Um cliente, que instala e executa a aplicação no dispositivo, seja ele um
emulador ou um dispositivo Android real;
 Um servidor, que cria um processo em plano de fundo na máquina;
Um daemon11, que também roda um processo de fundo, controlando o acesso de
portas necessárias para a execução do ADB em dispositivos físicos.Foi utilizada na grande
maioria dos testes, através do ADB um aparelho Samsung Galaxy Tab modelo GT-P1010
rodando uma versão modificada do Android 2.3.3 chamada Cyanogen 7.2.
Testes foram efetuados também em aparelhos de outras marcas, tais como Motorola,
LG e Sony-Ericsson, englobando versões desde a 2.2 até a mais recente, 4.1.
Optou-se por desenvolver a aplicação compatível com esta faixa de mercado e
baseando o desenvolvimento na 2.3.3 por esta ser a maior parcela ativa no mercado segundo
11
Daemon: acrônimo de Disk And Execution MONitor (Monitor de Execução e de Disco), é um programa
de computador que roda de forma independente em background, ao invés de ser controlado diretamente por um
usuário.
página informativa sobre dispositivos em uso no site Android Developer (ANDROID)
conforme visto na Ilustração 8.
A soma das parcelas de todas as versões compatíveis com nossa aplicação chega a
96,5% segundo esta pesquisa.
Ilustração 8 - Distribuição atual das versões da Plataforma Android
Fonte: http://developer.android.com/about/dashboards/index.html
4.2.1 Da Conexão BLUETOOTH
No site oficial da plataforma Android, mais especificamente no tópico APIs
Bluetooth utilizadas por desenvolvedores, é descrito que utilizando as APIs Bluetooth uma
aplicação Android pode, entre outras funcionalidades, executar:

Consultar se existe adaptador Bluetooth no dispositivo onde a aplicação
está funcionando;

Verificar se existem outros dispositivos Bluetooth acessíveis;

Conectar a outros dispositivos que foram descobertos;

Transferir dados para e de outros dispositivos.
Todas as APIs Bluetooth encontram-se disponíveis no pacote android.bluetooth
sendo que na aplicação utilizou-se as classes:

BluetoothAdapter – Classe que permite executar tarefas fundamentais no
Bluetooth, como localizar o adaptador Bluetooth e identificar seu MAC
Address, iniciar a descoberta de dispositivos disponíveis para conexão,
consultar lista de
aparelhos já conectados (emparelhados) e instanciar um
BluetoothDevice usando o MAC Address obtido;

BluetoothDevice – Representa um dispositivo Bluetooth remoto. Esta classe é
um invólucro para o MAC Address sendo que as operações desta classe são
executadas utilizando o BluetoothAdapter que a criou;

BluetoothServerSocket – Classe responsável em criar um socket tipo servidor
de escuta. Quando a conexão é aceita a classe irá gerar um BluetoothSocket
para gerencia a conexão;

BluetoothSocket – Classe responsável em criar um socket que gerenciará a
conexão e o fluxo de entrada e saída dos dados.
Para utilização das classes descritas é necessário declarar as permissões Bluetooth no
manifesto do aplicativo conforme exemplo:
<manifest ...>
<uses-permission android:name=”android.permission.BLUETOOTH” />
...
</manifest>
Com as classes descritas o Sistema irá realizar a sequência de tarefas mostrada na
Ilustração 9.
Ilustração 9 - Fluxograma da conexão Bluetooth
Iniciar Conexão
Existe
adaptador
Bluetooth?
N
Encerrar Aplicativo
S
N
Bluetooth
ligado?
Ligar
Bluetooth.
S
Verificar
dispositivo.
N
ELM 327
visível?
S
Solicitar
conexão.
N
Conexão
aceita?
S
Fonte: Elaborado
pelos Autores
Iniciar solicitações
de Comandos.
Nas classes desenvolvidas para o Sistema utilizando as Classes Bluetooth descritas
utilizou-se como base os exemplos de programação disponíveis no Android Developers –
Guia de APIs – Bluetooth (ANDROID).
4.2.2 Das funcionalidades
Realizada a conexão passou-se a analisar os dados obtidos através da conexão.
Inicialmente foram necessárias correções no Sistema para que a comunicação com o ELM
327 fosse aceita e retornasse dados legíveis. Como era recebido de retorno para qualquer
solicitação efetuada através da conexão Bluetooth caracteres estranhos (símbolos e letras de
outros alfabetos) foi efetuado nova consulta à documentação do ELM 327.
Em tal
documentação (ELM ELECTRONICS, p.5) verificou-se que era necessário definir a
comunicação para 8 bits. A informação levou a depuração da classe de conexão e foi
localizado um método que utilizava como um dos parâmetros o Formato de Transformação
Unicode12 de 16 bits (UTF-16) na conversão dos dados transmitidos em bytes do dispositivo
ELM 327 para uma string.
Realizada a alteração para UTF-8, default no Android, o aplicativo-teste passou a
receber caracteres corretos, porém o ELM 327 informava que não entendia a solicitação
retornando (‘?’).
Tal erro foi facilmente corrigido, pois em sua documentação (ELM
ELECTRONICS, p.5) informava que toda solicitação efetuada deveria ser finalizada com um
caractere de retorno de carro, isto é, hexadecimal ‘0D’ ou ‘\r’, ou seria entendido pelo
dispositivo que a informação solicitada está incompleta. Realizado o acréscimo da string ‘\r’
ao conjunto de dados a serem transmitidos ao ELM 327 passou-se a receber as informações
corretas do OBD-II.
Com o Sistema desenvolvido enviando e recebendo dados legíveis passou-se a testar
os grupos de comandos suportados pelo dispositivo ELM 327 – Interface Bluetooth utilizando
linhas de comando para enviar e receber dados não tratados. O dispositivo suporta comandos
internos, que são iniciados pelos caracteres ‘AT’, e comandos OBD relacionados na ISO
15031-5:2006 sendo que o dispositivo somente aceita comando OBD que contenham os
códigos ASCII para dígitos hexadecimais (‘0’ a ‘9’ e ‘A’ a ‘F’) .
Com referência aos Comandos AT testou-se e obtive-se êxito na obtenção da
informação dos seguintes comandos:

AT Z – Executa uma redefinição completa do dispositivo, retornando as
configurações do dispositivo aos valores padrões ;
12
Unicode: é um padrão que permite aos computadores representar e manipular, de forma consistente,
texto de qualquer sistema de escrita existente.

AT DP – Informa o Protocolo de comunicação que esta sendo utilizado. O
dispositivo detecta automaticamente o Protocolo OBD, mas não relata.
Utiliza-se este comando para saber que Protocolo esta sendo utilizado e se
o protocolo foi escolhido automaticamente informa a palavra ‘AUTO’
antes do Protocolo;

AT RV – Informa a tensão em volts.
Com referência aos Comandos OBD testou-se e obtive-se êxito nos Comandos
relacionados aos serviços:
Service $01 – Request current powertrain diagnostic data:
PID $01: Números de relatos DTC e status da MIL;
PID $21: Distância percorrida desde o acionamento da MIL.
Service $03 – Request emission-related diagnostic trouble codes: completo.
Service $04 – Clear/reset emission-related diagnostic information: completo.
Service $09 – Request vehicle information:
PID $01: Número de mensagens para reportar o VIN.
PID $02: VIN (Vehicle Identification Number).
PID $03: Número de mensagens para reportar o CALID.
PID $04: CALID – Calibration Identifications.
4.3 Da Aplicação Android
Esta seção consiste na descrição da aplicação Android desenvolvida, sendo explicadas
suas telas, seu modo de funcionamento e, quando houver, as conversões e adequações dos
dados recebidos do OBD-II para visualização final.
O aplicativo exibirá uma tela inicial, informando ao usuário sobre como proceder e a
necessidade de um adaptador bluetooth compatível com o sistema OBD. Durante as pesquisas
percebeu-se que esse é um dos muitos pontos em que usuários qualificam o aplicativo
negativamente na loja de aplicativos do Android por terem informações suficientes sobre o
funcionamento do OBD.
Nesta tela inicial ainda haverá um botão que fará a verificação do Bluetooth: se existe;
caso exista, se está ativado; e se estiver ativado se está disponível ou em uso.
Ao pressionar o botão de menu do dispositivo, o usuário poderá escolher entre as telas
de linha de comando ou gráfica.
Na tela de linha de comandos (Ilustração 10), o usuário poderá digitar o código OBD
ou AT, obtendo respostas diretamente do Adaptador ou da DCU, sem nenhum tipo de
tratamento, ou seja, para, por exemplo, mostrar a RPM do motor, o usuário deverá digitar
010C, recebendo a resposta 41 0C 0B E4. Ao converter os dados em Hexa para Decimal, o
usuário irá obter o valor de 3044, que, dividido por 4, resultará em 761 RPM.
Ilustração 10 - Tela de linha de comando
Fonte: Elaborado pelos Autores
Na Ilustração 11 são mostrados os Comandos AT sendo utilizados. Com a solicitação
AT Z o dispositivo resetou e informou sua versão – ELM327 v1.4. O Comando AT RV
retornou a voltagem da bateria e o Comando AT DP informou o Protocolo de comunicação
do veículo – ISO 14230-4(KWP FAST).
Ilustração 11 - Tela com linhas de Comando AT
Fonte: Elaborado pelos Autores
Na tela de modo gráfico o usuário terá a disposição vários botões do tipo Toogle, que
são botões que têm um funcionamento parecido com o de Liga/desliga. Na Ilustração 12 o
botão RPM encontra-se ligado e a informação das rotações por minutos (RPM) desta
disponível.
Ilustração 12 - Tela de Comandos no modo gráfico
Fonte: Elaborado pelos Autores
Enquanto um dos botões estiver ativado, todos os outros estarão desativados e as
informações que constantemente estão sendo atualizadas serão mostradas em tempo real, com
um laço de repetição repetindo o comando, recebendo a resposta e mostrando na tela o
resultado. Informações como VIN, erros na MIL que não necessitam de atualização, apenas
serão mostradas uma vez na tela.
 CONSIDERAÇÕES FINAIS
O desenvolvimento do Aplicativo, tanto nos parte de linha de comando como na tela
gráfica, atendeu nosso objetivo inicial de integrar um dispositivo móvel ao sistema de
diagnóstico veicular OBD-II. O objetivo secundário de efetuar testes com simulação de
defeitos não pode ser realizado por ausência de veículos para tais testes. Quanto à
identificação veicular podemos constatar que veículos fabricados depois de janeiro de 2011
possuem a numeração VIN gravado em seu Sistema embarcado. Este Trabalho de Conclusão
de Curso será base para trabalhos futuros de Perícia Computacional Forense na área veicular
visaram identificar quais veículos de anos anteriores a 2011 possuem identificação
embarcada; efetuando a análise da possibilidade de adulteração dos dados identificadores e
caso positivo sua recuperação. Estudos sobre a coleta de dados em veículos apresentando
códigos de DTC relacionados à poluição, a precisão13 e acurácia14 de tais dados coletados em
Sistema Android baseado neste Trabalho também fazem parte de futuros trabalhos para
habilitar seu uso como auxiliar do Programa de Controle de Poluição do Ar por Veículos
Automotores (BRASIL, 2011).
“O termo precisão relaciona-se com a variação do valor, medido repetidamente sob mesmas
condições experimentais, em torno de um valor médio observado.” (CAPPELLI et al., 2006, p.65).
14
“[...] o termo acurácia refere-se à exatidão da medida, ou seja, refere-se a quão próximo está o
valor medido do valor real.” (Ibid., p.65).
13
REFERÊNCIAS BIBLIOGRÁFICAS
ANDROID: Developer Announcements. Disponível em: <http://www.android.com/>. Acesso
em: 21 mar. 2012.
ANFAVEA - ASSOCIAÇÃO NACIONAL DOS FABRICANTES DE VEÍCULOS
AUTOMOTORES (Brasil) (Org.). Estatísticas: Dados relativos à produção de Autoveículos.
Disponível em: <http://www.anfavea.com.br/tabelas.html>. Acesso em: 21 mar. 2012.
BRASIL. Conselho Nacional do Meio Ambiente - CONAMA. Ministério do Meio Ambiente
(Org.). RESOLUÇÃO Nº 354, DE 13 DE DEZEMBRO DE 2004. Disponível em:
<http://www.ibama.gov.br/phocadownload/category/4?download=4792%3Amanualportugues>. Acesso em: 13 jul. 2012.
BRASIL. Instituto Brasileiro do Meio Ambiente e dos Recursos Naturais Renováveis –
Ibama. Ministério do Meio Ambiente (Org.). INSTRUÇÃO NORMATIVA IBAMA nº
24/2009. Disponível
em:
<http://www.ibama.gov.br/phocadownload/category/4?
download=4792%3Amanual-portugues>. Acesso em: 13 jul. 2012.
BRASIL. Instituto Brasileiro do Meio Ambiente e dos Recursos Naturais Renováveis –
Ibama. Ministério do Meio Ambiente (Org.). INSTRUÇÃO NORMATIVA IBAMA nº
126/2006. Disponível
em:
<http://www.ibama.gov.br/phocadownload/category/4?
download=4792%3Amanual-portugues>. Acesso em: 13 jul. 2012.
BRASIL. Instituto Brasileiro do Meio Ambiente e Dos Recursos Naturais Renováveis Ibama. Ministério do Meio Ambiente (Org.). Programa de controle da poluição do ar por
veículos automotores: Proconve/Promot. 3. ed. Brasília: Ibama, 2011. 584 p. (Série
Diretrizes - Gestão Ambiental). Coleção Meio Ambiente. Disponível em:
<http://www.ibama.gov.br/phocadownload/category/4?download=4792%3Amanualportugues>. Acesso em: 12 jun. 2012.
B&B ELETRONIC MANUFECTURING COMPANY (EUA) (Org.). OBDII STREAMER
FAMILY: Commnad and Response Document. Ottawa, Il, 2012. 61 p. (V 2.07).
CANALYS (Eua) (Org.). Smart phones overtake client PCs in 2011. Disponível em:
<http://www.canalys.com/newsroom/smart-phones-overtake-client-pcs-2011#>. Acesso em:
23 mar. 2012.
CAPPELLI, Nelson Luis et al. Desempenho Comparativo entre Receptores GPS. Revista
Brasileira De Agroinformática, São Paulo, v. 1, n. 8, p.63-77, 2006. Semestral.
ELM ELECTRONICS (Canadá). ELM327: OBD to RS232 Interpreter. Disponível em:
<www.elmelectronics.com>. Acesso em: 13 jul. 2012.
GARTNER INC. (Eua) (Org.). Gartner Says Android to Command Nearly Half of
Worldwide Smartphone Operating System Market by Year-End 2012. Disponível em:
<http://www.gartner.com/it/page.jsp?id=1622614>. Acesso em: 23 mar. 2012.
GUIMARÃES, Alexandre de Almeida. Eletrônica Embarcada Automotiva. 1ª Edição São
Paulo: Editora Érica, 2011. 328 p.
ISO - INTERNATIONAL ORGANIZATION FOR STANDARDIZATION (Org.). Technical
Committee ISO/TC 22 - Road Vehicles / Subcommittee SC 3 - Electrical And Electronic
Equipment. (Comp.). ISO 9141: Road vehicles -- Diagnostic systems -- Requirements for
interchange of digital information. Switzerland, 1998. 3 v.
ISO - INTERNATIONAL ORGANIZATION FOR STANDARDIZATION (Org.). Technical
Committee ISO/TC 22 - Road Vehicles / Subcommittee SC 3 - Electrical And Electronic
Equipment. (Comp.). ISO 15031: Road vehicles — Communication between vehicle and
external equipment for emissions-related diagnostics. Switzerland, 2006. 7 v.
NOLTE, Thomas; HANSSON, Hans; LO BELLO, Lucia. Automotive Communications Past, Current and Future. Conference On Emerging Technologies And Factory
Automation, Catania - It., v. 1, pp. 985-992, 2005.
OICA
ORGANISATION
INTERNATIONALE
DES
CONSTRUCTEURS
D'AUTOMOBILES (Paris) (Org.). 2011 PRODUCTION STATISTICS. Disponível em:
<http://oica.net/category/production-statistics/>. Acesso em: 21 mar. 2012.
SANTOS, Max Mauro Dias. Redes de Comunicação Automotivas. 1ª edição São Paulo:
Editora Érica, 2010. 220 p.
TANENBAUM, Andrew S.. Sistemas Operacionais Modernos. 3ª Edição São Paulo:
Pearson Prentice Hall, 2009. 654 p.
THOMPSON, Timothy J.; KLINE, Paul J.; KUMAR, C Bala. Bluetooth Application
programming with Java APIs: Essentials Edition. Usa: Morgan Kauffmann Publishers,
2008. 286 p.
ANEXOS
Figura 1: informação ao usuario sobre as
Permissões à serem utilizadas.
Figura 2: Aplicativo instalado.
Figura 3: Tela inicial do aplicativo. Ao pressionar o botão de menu do aparelho o usario verá as opções
conforme figura 4.
Figura 4: Opções disponiveis ao usuario. O botão conecte a um dispositivo mostra ao usuario dispositivos
já pareados, conforme figura 5. O botão fazer a descoberta realiza todo o procedimento de parear um
novo dispositivo, conforme figura 6.
Figura 5: Solicitação de permissão para ativar a descoberta de novos dispositivos.
Figura 6: Pedido de permissão para ativar o Bluetooth, caso esteja desativado. Caso o bluetooth esteja
ativado, o dispositivo mostrará a tela 8.
Figura 6:Bluetooth sendo ativado.
Figura 7: Tela de seleção de dispositivos já pareados.
Figura 8:Dispositivo conectado ao OBD-II.
Figura 9:Comandos do leitor OBD-II Elm 327. O comando AT Z mostra a versão de software do
aparelho, o comando AT RV a voltagem da bateria do automóvel e o comando AT DP mostra o protocolo
usado pelo módulo do vepiculo.
Figura 10: Comandos OBD-II. O comando 01 0C solicita o numero de rotações por minuto (rpm). A
resposta é enviada confirmando a solicitação (41 0C) e a rpm aumentada em 4vezes (hexadecimal).
Figura 11:Comandos OBD-II. O comando 09 01 retorna a quantidade de linhas em que o VIN será
enviado ao solicitar o comando 09 02. No veículo testado o VIN não estava disponível.
Figura 12: O comando 01 01 monitora se houve mudança no status de algum dos DTC's desde que foi
resetado. O comando 03 retorna erros na DTC com acendimento da MIL e o comando 07 mostra erros em
que não foi necessario o acendimento da MIL.
Figura 13: O comando 01 05 mostra a temperatura do sistema de arrefecimento (radiador). A resposta 7D
é convertida da base hexadecimal para a base decimal e subtraido 20. O resultado é informado em graus
Celsius.
Download

TCC Completo