KW2000
KW2000
So Paulo
2007
RODRIGO PVOA
So Paulo
2007
RODRIGO PVOA
So Paulo
2007
DEDICATRIA
Primeiramente a Deus por permitir a vida humana na Terra mesmo frente a tanta
calamidade causada pelo homem, minha famlia por incentivar-me a lutar na vida e
minha esposa por dividir comigo o jugo desta luta.
RESUMO
Atualmente a programao das ferramentas de diagnstico eletrnico, utilizadas por oficinas
e rede de concessionrias de algumas montadoras de veculos do Brasil, executada por
mo-de-obra internacional com elevado custo, impactando negativamente o custo estrutural
das empresas nacionais que dependem deste servio. Desta forma, surgiu o interesse na
nacionalizao desta programao. A proposta de pesquisa deste trabalho teve como
objetivo a familiarizao com o protocolo de diagnstico KW2000 (Keyword 2000), que
atualmente classificado como o principal protocolo utilizado para leitura de informaes
dos mdulos eletrnicos de controle de dispositivos em veculos nacionais, atravs de
ferramentas de diagnstico dedicadas ou genricas, utilizadas por toda a rede de
concessionrias e oficinas do pas. O projeto foi formado por duas partes principais, a saber,
pesquisa dos requerimentos do protocolo por meio de consulta s normas internacionais
que padronizam a aplicao deste protocolo e desenvolvimento de uma interface de
software atravs do Delphi (linguagem de computao baseada em Pascal), a qual extraiu
do mdulo de controle do motor de um veculo popular as informaes existentes
relacionadas ao funcionamento do motor e identificao do prprio mdulo, atualizando-as
continuamente na tela de um computador que recebe e solicita as informaes atravs da
porta serial.
Palavras-Chave: Protocolos de Comunicao, Desenvolvimento de Software, Veculos
Populares
ABSTRACT
Nowadays the programming of the electronic diagnosis tool, used by workshops and dealers
of some Brazilian automobile companies, is performed by foreign labor with high cost,
negatively impacting the structural cost of national companies which depend on this kind of
service. This way, it encourages the interest in this programming nationalization. The
research proposal of this work was getting familiarized with the diagnostic protocol KW2000
(Keyword 2000) which, nowadays, is classified as the main protocol used for information
exchange between the vehicle control module and the diagnosis tool in Brazilian market. The
project was built in two main parts. The first one consists in a protocol requirements
research, consulting the international standardizations which define KW2000 protocol. The
second one consists in a software interface development based on Delphi (computer
language derived from Pascal), which get information from an economy class vehicle engine
control module regarding the engine behavior and the controller identification. This data is
updated continuously and shown on the computer screen which receives and requests such
information through serial communication port.
Keywords: Communication Protocols, Software Development, Economy Class Vehicles.
LISTA DE ILUSTRAES
LISTA DE TABELAS
Format
Tgt
Target
Src
Source
Len
Length
KB
Key Byte
CARB
SId
Service Identification
CS
Checksum
Wup
Wake up
Rep
Repouso
Inil
Inicializao
SUMRIO
Introduo............................................................................. 10
Especificaes...................................................................... 14
3.1
Topologia fsica................................................................................................14
3.2
Estrutura da Mensagem...................................................................................15
3.2.1
Cabealho........................................................................................................15
3.2.1.1
3.2.1.2
3.2.1.3
3.2.1.4
3.2.1.5
Tipos de mensagens.................................................................................17
3.2.2
3.2.3
3.2.4
3.2.4.1
Parmetros ...............................................................................................19
3.2.4.2
Excees ..................................................................................................22
3.3
Estrutura da Mensagem...................................................................................22
3.3.1
Geral................................................................................................................22
3.3.2
3.3.2.1
3.3.2.2
3.3.2.3
3.3.2.4
Implementao..........................................................................................25
3.3.2.4.1
3.3.2.4.2
3.3.3
3.3.2.4.2.1
3.3.2.4.2.2
Inicializao 5-Baud.......................................................................29
3.3.2.4.2.3
Servio StopCommunication..........................................................................33
3.3.3.1
3.3.3.2
3.3.3.3
3.3.3.4
Implementao..........................................................................................34
3.3.4
Servio AccessTimingParameter...................................................................35
3.3.4.1
3.3.4.2
3.3.4.3
3.3.4.4
Implementao..........................................................................................37
3.3.4.5
3.3.5
Servio SendData..........................................................................................39
3.3.5.1
Definio ...................................................................................................39
3.3.5.2
3.3.5.3
3.3.6
Manuseando Erros...........................................................................................40
3.3.6.1
Servio StartCommunication...................................................................40
3.3.6.2
3.3.6.3
3.3.6.4
3.3.6.5
3.3.6.6
Introduo........................................................................................................43
4.2
Objetivo ...........................................................................................................44
4.3
Desenvolvimento .............................................................................................44
4.3.1
4.3.2
4.3.3
Desenvolvimento do Software..........................................................................47
Concluso............................................................................. 66
Referncias .......................................................................... 67
10
1 Introduo
11
analisadas com o objetivo de enriquecer o detalhamento das informaes referentes ao
protocolo.
Sobre a aplicao em Delphi para anlise do comportamento do protocolo, o diagrama de
blocos a seguir expe a forma de conexo de uma ferramenta de diagnstico eletrnico
genrica a um veculo:
KWP2000
Ferramenta de
Diagnstico
Veculo
A proposta para familiarizao com o protocolo KWP2000 pode ser observada atravs do
seguinte diagrama de blocos:
KWP2000
Veculo
Interface Eletrnica
(adequao de
sinais)
KWP2000
PC executando
interface
programada em
Delphi.
12
Com a exploso eletrnica no ramo automobilstico no final dos anos 80 e comeo dos anos
90, cada montadora acabou recorrendo a protocolos de comunicao prprios para
obteno de dados de diagnstico eletrnico em veculos automotores. Desta forma,
existiam inmeras vertentes de solues para cada problema encontrado relacionado a esta
atividade.
Em meados dos anos 90, vrias empresas do ramo automotivo se juntaram para criar um
protocolo de comunicao padronizado, que posteriormente foi batizado de Keyword
Protocol 2000. A seguir so apresentadas as empresas que participaram deste processo:
- Adam Opel AG
- AISIN AW CO., Limited Japan
- Audi AG / Volkswagen AG
- BMW AG
- Daimler-Benz AG
- Debis Systemhaus GmbH
- DELCO Electronics Europe
- DSA Daten und Systemtechnik GmbH
- ETAS GmbH & Co. KG
- FEV Motorentechnik GmbH & Co. KG
- GenRad Europe Ltd.
- GM Europe GmbH Service Technology Group Intl Operations
- Hella KG
- Isuzu Motors Ltd.
- Kelsey-Hayes
- LucasVarity
- MAN Nutzfahrzeuge AG
- Mecel AB
- Robert Bosch GmbH
- Saab Automobile AB
- Siemens AG
- Softing GmbH
13
- VDO Adolf Schindling AG
Hoje o protocolo KW2000 amplamente utilizado no desenvolvimento de mdulos
eletrnicos e ferramentas de diagnstico para o setor automobilstico, o que incentivou o
aprofundamento da pesquisa do protocolo atravs deste trabalho.
A seguir sero apresentadas as especificaes deste protocolo.
14
3 Especificaes
O protocolo KW2000 utiliza o conceito bus, tendo como estrutura duas linhas seriais para
transmisso de dados: Linha K, que utilizada para comunicao e inicializao e, Linha L,
que opcional e utilizada apenas para inicializao. A figura a seguir ilustra esta estrutura.
Linha L
Ferramenta de
diagnstico
Linha K
Mdulo
1
Mdulo
2
Mdulo
n
Figura 3 - Topologia
15
Cabealho
Fmt
Tgt
Src
max. 4 bytes
Bytes de Dados
Len
SId
.. Dados ..
max. 255 bytes
Verificao
CS
1 byte
Obs.: Os bytes Tgt, Src e Len so opcionais, dependendo do Format Byte (Fmt) veja
3.2.1.1.
3.2.1 Cabealho
16
3.2.1.1 Format Byte (Fmt)
O Format Byte contm 6 bits que podem ser utilizados para informar quantos bytes de
dados, incluindo o SId (Service Identification) sero enviados na mensagem. Desta forma,
para que a indicao de tamanho da mensagem seja indicada no Format Byte, o nmero
efetivo de bytes de dados (incluindo o Sid) no pode ultrapassar 63 (Tabela 2). Os 2 bits
mais significativos indicam o endereamento da mensagem (existncia e modo).
A1 A0 L5 L4 L3 L2 L1 L0
7
A1
0
0
1
1
A0
0
1
0
1
Significado
Sem informao de endereamento
Modo de exceo (CARB)
Com informao fsica de endereamento
Com informao funcional de endereamento
Obs.: O modo de exceo CARB no objeto de estudo deste trabalho. Informaes sobre
este modo podem ser obtidas atravs das normas ISO 9141-2 e SAE J1979.
Este byte especifica o endereo do objetivo da mensagem e sempre usado com o Source
Byte. Quando usado na mensagem de solicitao, ou seja, da ferramenta de diagnstico
para os mdulos eletrnicos, ele pode indicar endereamento fsico ou funcional. J a
mensagem de retorno dos mdulos para a ferramenta de diagnstico, deve sempre indicar o
endereamento fsico. Somente se faz necessrio o seu uso quando se trata de uma
estrutura com mltiplos ns.
Obs.: Para saber o correto endereo a ser utilizado, pode-se consultar as normas ISO
14230-2 e SAE J2178-1.
17
3.2.1.3 Source Byte (Src)
Este byte utilizado em conjunto com o Target Byte e somente necessrio para estruturas
de mltiplos ns, indicando o endereo do dispositivo que est transmitindo a mensagem.
Deve sempre ser endereamento fsico, que especificado nas normas ISO 14230-2 e SAE
J2178-1.
Este byte utilizado quando os bits de tamanho do Format Byte esto zerados (L0 a L5),
conforme mostrado na Tabela 2. Em geral, sua utilizao ocorre quando os bytes de dados
(incluindo o SId) so superiores a 63 bytes, limitados a 255. Tambm pode ser utilizado para
mensagens com um nmero de bytes de dados inferior a 64, porm o Format Byte capaz
de indicar este tamanho, tornando o Additional Length Byte desnecessrio.
Tamanho indicado no
Format Byte
Additional Length Byte
XX00 0000
Presente
XXLL LLLL
No presente
XX00 0000
Presente
Tamanho
< 64
< 64
64
3.2.1.5
Tipos de mensagens
Com estas definies possvel definir 4 formas de mensagens, exibidas na figura a seguir:
18
Tamanho
Fmt
SId
.. Dados ..
CS
Tamanho
Fmt
Src
Tgt
SId
.. Dados ..
CS
Tamanho
Len
Fmt
SId
.. Dados ..
CS
Tamanho
Fmt
Tgt
Src
Len
SId
.. Dados ..
CS
19
O byte de verificao existente no fim da mensagem pode ser definido como uma simples
somatria de todos os bytes da mensagem, excluindo ele prprio e limitando-se a 2
caracteres em hexadecimal.
Como exemplo, suponha que foram recebidos 6 bytes com os seguintes contedos (em
hexadecimal):
- 80h / 11h / F1h / 02h / 21h / 01h
O valor do Checksum dado por: 80h+11h+F1h+02h+21h+01h = 1A6h, que limitado a 2
caracteres igual a A6.
3.2.4.1 Parmetros
20
Solicitao da
Ferramenta de
Diagnstico
Resposta do
Mdulo 1
...
P4
...
P2
P1
Solicitao da
Ferramenta de
Diagnstico
Resposta do
Mdulo 2
...
P2
...
P2
P3
Descrio
Intervalo de tempo entre os bytes da resposta do mdulo
Intervalo de tempo entre a solicitao da ferramenta de diagnstico e a resposta do
mdulo ou o tempo entre duas respostas de mdulos diferentes
Intervalo de tempo entre a ltima resposta dos mdulos e o incio de uma nova
solicitao da ferramenta de diagnstico (Exceo 4.2.4.2)
Intervalo de tempo entre os bytes da solicitao da ferramenta de diagnstico
Tabela 3 - Descrio dos intervalos de tempo
21
P2min > P4max
P2min > P1max
Como pode ser observado, a escolha de parmetros apropriados primordial para o bom
funcionamento da comunicao entre a ferramenta de diagnstico e os mdulos eletrnicos.
muito importante respeitar as limitaes dos mdulos e da ferramenta de diagnstico,
definindo os parmetros de intervalo de tempo conforme as caractersticas mais crticas
(piores casos) dos dispositivos que compem a rede de comunicao. As tabelas a seguir
apresentam os valores padres para estes parmetros, apontando os limites e a resoluo
que devem ser usados para configurar um outro valor atravs do servio de comunicao
AccessTimingParameter:
Valores Mnimos
Parmetro
P1
P2
P3
P4
Limite
Inferior
0 (ms)
0 (ms)
0 (ms)
0 (ms)
Padro
Resoluo
0 (ms)
25 (ms)
55 (ms)
5 (ms)
0,5 (ms)
0,5 (ms)
0,5 (ms)
Valores Mximos
Limite
Padro
Resoluo
Superior
20 (ms)
20 (ms)
50 (ms)
Veja tabela 4
5000 (ms)
250 (ms)
20 (ms)
20 (ms)
-
No Aplicvel
O valor do parmetro deve sempre ser um valor de byte individual no servio
AccessTimingParameter. As modificaes dos intervalos devem ser ativadas atravs da
implementao do servio AccessTimingParameter.
Tabela 5 - Clculo do Parmetro P2max
22
3.2.4.2 Excees
O intervalo de tempo definido pelo parmetro P2 pode ser estendido para possibilitar que o
servidor responda a uma solicitao em um tempo superior ao limitado por P2. Esta exceo
somente permitida quando ocorre uma ou vrias mensagens de resposta negativa, cujo
cdigo 78h (Request Correctly Received - Response Pending), proveniente do servidor.
Tal cdigo de resposta pode ser usado somente nos casos em que o servidor no conseguir
enviar uma resposta negativa ou positiva, relativa mensagem recebida, durante o intervalo
P2. Este processo caracteriza a incapacidade do servidor de responder ao cliente no
intervalo P2, o que deve fazer com que este parmetro seja ajustado com o mesmo valor do
parmetro P3, permitindo nova tentativa por parte do servidor.
Assim que o servidor finalizar a tarefa solicitada pelo cliente, ele deve enviar um cdigo de
resposta negativa ou positiva (diferente do cdigo 78h), baseado na mensagem recebida.
Quando o cliente recebe a primeira mensagem diferente do cdigo 78h, tanto o servidor
como o cliente devem ajustar o parmetro P2 para o valor anterior primeira resposta
negativa 78h recebida, restaurando o intervalo de tempo padro.
3.3.1 Geral
23
Geralmente, estes servios no so mandatrios. Somente o servio StartCommunication
deve ser implementado. Este servio, assim como o AccessTimingParameter, usado
para iniciar uma comunicao de diagnstico. A figura a seguir ilustra o uso do servio de
comunicao.
Servio de
diagnstico
solicitado
Sim
Comunicao
funcionando?
No
Iniciar
comunicao
Sim
Parmetros de
comunicao
corretos?
No
Ajuste dos
parmetros
Servio de
diagnstico
Figura 7 - Uso dos servios de comunicao
24
3.3.2.2 Tabela de Servio
Parmetro
StartCommunication Request
Identificador de Modo de Inicializao
Endereo de Inicializao do Objetivo
Endereo de Inicializao da Origem
StartCommunication Positive Response
Classificao
M
M
M
C1
M
Endereo do Objetivo
C2
Endereo da Origem
C2
Key Bytes
M2
1) O caminho da inicializao determinado pelo identificador do modo de inicializao.
2) C1: Endereo da Inicializao da Origem adicionado se o Identificador do Modo de
Inicializao representa uma Inicializao Fast
3) C2: Endereo de Objetivo e Origem so adicionados se a informao do endereo
usada no cabealho.
Uma vez recebida uma indicao inicial de StartCommunication, o mdulo eletrnico deve
verificar se a conexo solicitada pode ser inicializada com as condies do momento. Isto
feito, o mdulo deve executar todas as aes necessrias para iniciar a conexo de
comunicao e enviar uma resposta inicial de StartCommunication com o parmetro
Positive Response selecionado. Caso a conexo no possa ser inicializada por qualquer
motivo,
mdulo
deve
se
manter
em
operao
normal
(consulte
Servio
25
3.3.2.4 Implementao
- Inicializao CARB;
- Inicializao 5-Baud;
- Inicializao Fast.
A figura a seguir apresenta as trs possibilidades e o estado do mdulo aps cada tipo de
inicializao. Terminada a inicializao, os mdulos envolvidos ficaro no mesmo estado:
26
Servio
StartCommunication
No
Modo de
Inicializao =
5-Baud ou
Fast?
5-Baud
Inicializao
5-Baud
Modo de
Inicializao
= CARB?
Sim
Fast
Inicializao
Fast
Inicializao
CARB
Intervalo CARB
Modo CARB
Intervalo padro
Modo padro
Fim do servio
StartCommunication
27
A figura a seguir mostra a representao grfica dos Key Bytes. O significado de cada um
de seus bits est na tabela 7 e os possveis valores na Tabela 8.
2)
3)
4)
1
5)
1)
2)
3)
4)
5)
Tempo
1) Bit de incio
2) Bit menos significativo
3) Bit mais significativo
4) Bit de equalizao
5) Bit de paridade
Valor
0
1
Tamanho da Informao no suportada Tamanho da Informao suportada no
AL0
no Format Byte,
Format Byte
Additional Length Byte no suportado
Additional Length Byte suportado
AL1
1 Byte de cabealho no suportado
1 Byte de cabealho suportado
HB0
Endereos de Objetivo e Origem no Endereos de Objetivo e Origem
HB1
suportados
suportados
Parmetro
de
intervalo
normal Parmetro de intervalo estendido
1)
TP0
selecionado
selecionado
Parmetro de intervalo estendido Parmetro
de
intervalo
normal
1)
TP1
selecionado
selecionado
1) Somente TP0, TP1 = 0, 1 ou 1, 0 so permitidos
Bit
28
Key Bytes
Suportado
Tamanho da
Tipo de
Informao
Cabealho
Intervalo
Hex.
Dec.
KB2
KB1
2)
1000 1111 1101 0000 $8FD0
2000
Format Byte
1000 1111 1101 0101 $8FD5
2005
Sem informao
Additional Length Byte
1000 1111 1101 0110 $8FD6
2006
de endereo
1000 1111 0101 0111 $8F57
2007
Ambos os Modos
Format Byte
1000 1111 1101 1001 $8FD9
2009
Com informao
de endereo de Estendido
Additional Length Byte
1000 1111 1101 1010 $5FDA
2010
Origem/Objetivo
1000 1111 0101 1011 $8F5B
2011
Ambos os Modos
Format Byte
1000 1111 0101 1101 $8F5D
2013
Ambos os Tipos
Additional Length Byte
1000 1111 0101 1110 $8F5E
2014
1000 1111 1101 1111 $8FDF
2015
Ambos os Modos
Format Byte
1000 1111 1110 0101 $8FE5
2021
Sem informao
Additional Length Byte
1000 1111 1110 0110 $8FE6
2022
de endereo
1000 1111 0110 0111 $8F67
2023
Ambos os Modos
Format Byte
1000 1111 1110 1001 $8FE9
2025
Com informao
de endereo de
Normal
Additional Length Byte
1000 1111 1110 1010 $8FEA
2026
Origem/Objetivo
1000 1111 0110 1011 $8F6B
2027
Ambos os Modos
Format Byte
1000 1111 0110 1101 $8F6D
2029
Ambos os Tipos
Additional Length Byte
1000 1111 0110 1110 $8F6E
2030
1000 1111 1110 1111 $8FEF
2031
Ambos os Modos
1) Para o clculo do valor decimal, zerar o bit de paridade de cada Key Byte, multiplicar o Key Byte 2
7
(KB2) por 128 (2 ) e somar o Key Byte 1 (KB1);
Binrio
1)
2) Com valor decimal de 2000, o mdulo no fornece informaes sobre quais opes so
suportadas. Estas opes se referem ao uso de intervalo padro ou estendido, Additional Length
Byte e Cabealho com ou sem informao de endereo;
Em caso de Inicializao 5-Baud a ferramenta de diagnstico deve saber quais as opes que esto
implementadas. Em caso de Inicializao Fast o uso do Cabealho e do Additional Length Byte ser
igual
aos
casos
de
resposta
positiva
do
mdulo
eletrnico
relacionada
ao
StartCommunicationSession.
Tabela 8 - Valores possveis para os Key Bytes
Para o uso de CARB, apenas a inicializao 5-Baud possvel. Esta uma inicializao
funcional onde mensagens so enviadas para todos os mdulos relacionados. Para maiores
detalhes, consultar ISO 9141-2 e ISO 14230-4.
29
3.3.2.4.2.2 Inicializao 5-Baud
3.3.2.4.2.2.1 Geral
A figura a seguir mostra a forma geral da inicializao 5-Baud. O byte de endereo 5-Baud
transferido da ferramenta de diagnstico pelas linhas K e L. Aps enviar o byte de endereo
5-Baud, a ferramenta de diagnstico ir manter a linha L em nvel alto.
Aps receber o byte de endereo 5-Baud, o mdulo eletrnico enviar o modelo de
sincronizao 55h e os dois Key Bytes na taxa de comunicao atual. A ferramenta de
diagnstico envia o Key Bytes 2 com os bits invertidos e o mdulo envia o byte de endereo
com os bits invertidos.
No caso de uma inicializao fsica, o mdulo deve responder como mostra a Figura 10.
Para o caso de inicializao funcional, onde mais de um mdulo inicializado, o fabricante
deve cuidar para que todos os mdulos usem a mesma opo de protocolo. Apenas um
mdulo pode executar a seqncia de inicializao.
Byte de
Endereo
Ferramenta de
diagnstico
___
KB2
(Linhas K e L)
W5
W1
Veculo
(Linhas K e L)
W2
55h
KB1
W3
W4
KB2
W4
________
Endereo
5-Baud
Figura 10 -
Inicializao 5-Baud
30
A tabela a seguir apresenta os valores e significados dos intervalos da inicializao 5-Baud.
Estes
valores
so
fixos
no
podem
ser
alterados
pelo
servio
AccessCommunicationParameter.
Parmetros
de Intervalo
Valores (ms)
Min.
Max.
W1
60
300
W2
20
W3
20
W4
25
50
W5
300
Descrio
Tempo entre o final do byte de endereo e o inicio do modelo de
sincronizao
Tempo entre o final do modelo de sincronizao e o incio do
Key Byte 1.
Tempo entre os Key Bytes 1 e 2
Tempo entre o Key Byte 2 enviado pelo mdulo e o mesmo byte
com os bits invertidos enviado pela ferramenta de diagnstico.
Este o mesmo tempo entre o Key Byte 2 invertido pela
ferramenta e o endereo com os bits invertidos pelo mdulo.
Tempo mnimo anterior ao envio do byte de endereo por parte
da ferramenta de diagnstico.
31
Por razes bvias, o endereamento funcional somente possvel quando todos os
mdulos trabalham na mesma taxa de transferncia.
3.3.2.4.2.3.1 Geral
No caso da Inicializao Fast, todos os mdulos que sero inicializados devem usar taxa de
transferncia de 10400 kbps (tanto para inicializao como para comunicao).
A ferramenta de diagnstico envia um modelo de Wake-up (WuP) nas linhas K e L de
maneira sincronizada. O modelo inicia aps um tempo de repouso na linha K com um curto
tempo de Tinil. Aps o intervalo Twup, a ferramenta de diagnstico envia o primeiro bit do
servio StartCommunication, como mostra a figura a seguir:
Twup
P2
Trep
Tinil
StartCommunication
Request
Figura 11 -
StartCommunication
Response
Inicializao Fast
32
Existem trs possibilidades para o intervalo Trep.:
- Primeira transmisso aps acionamento da ferramenta de diagnstico: Trep W5min;
- Aps finalizao do servio StopCommunication: Trep P3min;
- Aps finalizar a comunicao por estouro (timeout) de P3max: Trep 0.
A tabela a seguir traz os valores de Tinil e Twup:
Parmetro
Tinil
Twup
25 1 ms
50 1 ms
Nome do Parmetro
Format Byte
Endereamento fsico
Endereamento funcional
Target Byte
Source Byte
StartCommunication Request Service Id
Checksum
CVT
M
M
M
M
M
1)
Vlr Hex.
$81
$C1
$XX
$XX
$81
$XX
Mnemonic
FMT
TGT
SRC
SCR
CS
33
Nome do Parmetro
N do Byte
Format Byte
1
Target Byte
2
Source Byte
3
Additional Length Byte
4
StartCommunication Positive Response Service Id
5
4)
Key Byte 1
6
4)
Key Byte 2
7
Checksum
8
1) Veja 4.3.1
2) O Format Byte 10XX XXXX ou 11XX XXXX
3) O Format Byte XX00 0000
4) Veja 4.3.2.4.1 referente ao uso dos Key Bytes
CVT
M
2)
C
2)
C
3)
C
S
M
M
M
1)
Vlr Hex.
$XX
$XX
$XX
$XX
$C1
$XX
$XX
$XX
Parmetro
StopCommunication Request
StopCommunication Positive Response
StopCommunication Negative Response
Cdigo de Resposta
Classificao
M
S
S
M
Mnemonic
FMT
TGT
SRC
LEN
SCRPR
KB1
KB2
CS
34
3.3.3.3 Procedimento de Servio
3.3.3.4 Implementao
tabela
seguir
apresenta
as
diferentes
mensagens
de
solicitao
para
StopCommunication.
Nome do Parmetro
N do Byte
Format Byte
1
Target Byte
2
Source Byte
3
Additional Length Byte
4
StopCommunication Request Service Id
5
Checksum
6
1) Veja 4.3.1
2) O Format Byte 10XX XXXX ou 11XX XXXX
3) O Format Byte XX00 0000
CVT
M
2)
C
2)
C
3)
C
M
M
1)
Vlr Hex.
$XX
$XX
$XX
$XX
$82
$XX
Mnemonic
FMT
TGT
SRC
LEN
SPR
CS
CVT
M
2)
C
2)
C
3)
C
M
M
1)
Vlr Hex.
$XX
$XX
$XX
$XX
$C2
$XX
Mnemonic
FMT
TGT
SRC
LEN
SPRPR
CS
35
Nome do Parmetro
N do Byte
Format Byte
1
Target Byte
2
Source Byte
3
Additional Length Byte
4
StopCommunication Negative Response Service Id
5
StopCommunication Request Service Id
6
4)
Cdigo de Resposta = generalReject
7
Checksum
8
1) Veja 4.3.1
2) O Format Byte 10XX XXXX ou 11XX XXXX
3) O Format Byte XX00 0000
4) Outros cdigos de resposta so possveis: consulte ISO 14230-3
CVT
M
2)
C
2)
C
3)
C
S
M
M
M
1)
Vlr Hex.
$XX
$XX
$XX
$XX
$C1
$82
$XX=$10
$XX
Mnemonic
FMT
TGT
SRC
LEN
SPRNR
SPR
RC
CS
M
1)
C
1)
C
1)
C
1)
C
1)
C
M
2)
C
2)
C
2)
C
2)
C
2)
C
S
M
M
36
3.3.4.3 Procedimento de Servio
37
Mais uma vez, por questes bvias, se o acesso de leitura aos parmetros de intervalo de
tempo for mal sucedido, o mdulo deve enviar um AccessTimingParameter com os
parmetros Negative Response.
Uma vez recebido um AccessTimingParameter com TPI=3, o mdulo deve verificar se os
parmetros de intervalo de tempo podem ser alterados nas condies presentes neste
momento.
Se as condies forem vlidas, o mdulo deve executar todas as aes necessrias para
alterar os parmetros e enviar um AccessTimingParameter com os parmetros Positive
Response antes que os parmetros com os novos valores se tornem ativos.
Como anteriormente, se os parmetros no puderem ser alterados para os valores
desejados por qualquer razo, o mdulo deve manter a comunicao e enviar um
AccessTimingParameter com os parmetros Negative Response.
3.3.4.4 Implementao
A tabela a seguir apresenta a seleo dos modos read, write, current e limits atravs do
Timing Parameter Identifier:
Modo
TPI
0000 0000
0000 0001
0000 0010
0000 0011
CVT
2)
C
Ler os limites
Configurar os parmetros para valores padres
3)
Ler os valores atuais
C
2)
Configurar valores
C
1) Veja 5.1
2) Os parmetros de intervalo de tempo so includos na mensagem se TPI=3
3) Os parmetros de intervalo de tempo so includos na mensagem se TPI=0 ou 2
1)
38
3.3.4.5 Bytes da Mensagem
1)
Vlrs Hex
Mnemonic
Nome do Parmetro
CVT
Byte
Format Byte
1
M
$XX
FMT
2)
Target Address Byte
2
C
$XX
TGT
2)
Source Address Byte
3
C
$XX
SRC
3)
Additional Length Byte
4
C
$XX
LEN
AccessTimingParameter Request Service Id
5
S
$83
ATP
5)
Timing Parameters Identifier
6
M
$0X
TPI
4)
7
P2min
C
$XX
P2min
4)
8
P2max
C
$XX
P2max
4)
9
P3min
C
$XX
P3min
4)
10
P3max
C
$XX
P3max
4)
11
P4min
C
$XX
P4min
Checksum
12
M
$XX
CS
1) Veja 5.1
2) Format Byte 10XX XXXX ou 11XX XXXX
3) Format Byte XX00 0000
4) Os parmetros de intervalo de tempo so includos na mensagem se TPI=3
5) Onde X pode ser 0 (ler limites), 1 (configurar parmetros com valores padres), 3 (ler
parmetros ativos), 4 (configurar parmetros com valores desejados)
Tabela 19 - Mensagem AccessTimingParameter Request
Nome do Parmetro
CVT
M
2)
C
2)
C
3)
C
M
1)
Vlrs Hex
Mnemonic
Format Byte
$XX
FMT
Target Address Byte
$XX
TGT
Source Address Byte
$XX
SRC
Additional Length Byte
$XX
LEN
AccessTimingParameter Positive Response
$C3
ATPPR
Service Id
5)
Timing Parameters Identifier
6
M
$0X
TPI
4)
7
P2min
C
$XX
P2min
4)
8
P2max
C
$XX
P2max
4)
9
P3min
C
$XX
P3min
4)
10
P3max
C
$XX
P3max
4)
11
P4min
C
$XX
P4min
Checksum
12
M
$XX
CS
1) Veja 5.1
2) Format Byte 10XX XXXX ou 11XX XXXX
3) Format Byte XX00 0000
4) Os parmetros de intervalo de tempo so includos na mensagem se TPI=0 ou 2
5) Onde X pode ser 0 (ler limites), 1 (configurar parmetros com valores padres), 3 (ler
parmetros ativos), 4 (configurar parmetros com valores desejados)
Byte
1
2
3
4
5
39
1)
Nome do Parmetro
CVT
Vlrs Hex
Mnemonic
Byte
Format Byte
1
M
$XX
FMT
2)
Target Address Byte
2
C
$XX
TGT
2)
Source Address Byte
3
C
$XX
SRC
3)
Additional Length Byte
4
C
$XX
LEN
Negative Response Service Id
5
S
$7F
ATPNR
AccessTimingParameter Request Service Id
6
M
$10
ATP
4)
4)
Response Code = generalReject
7
C
$10
RC
Checksum
8
M
$XX
CS
1) Veja 5.1
2) Format Byte 10XX XXXX ou 11XX XXXX
3) Format Byte XX00 0000
4) Outros Response Codes so possveis. Consulte ISO 14230-3
5) Onde X pode ser 0 (ler limites), 1 (configurar parmetros com valores padres), 3 (ler
parmetros ativos), 4 (configurar parmetros com valores desejados)
Tabela 21 - Mensagem AccessTimingParameter Negative Response
3.3.5.1 Definio
SendData Request
Service Data
SendData Positive Response
SendData Negative Response
Response Code
M
M
S
S
M
40
3.3.5.3 Procedimento do Servio
41
um mdulo detectar um erro proveniente da ferramenta de diagnstico, este deve ser
imediatamente preparado para reconhecer um outro Servio StartCommunication.
Tanto a ferramenta de diagnstico como o mdulo devem estar aptos a reconhecer falhas e
aceitar valores mximos de intervalos de tempo. Valores mnimos de erro de intervalos de
tempo podem ser descartados, mas podero causar erros na identificao dos bits.
O mdulo deve verificar cada mensagem recebida atravs do Checksum e nmero de bytes
recebidos antes que o intervalo P2max seja executado. Se ambos estiverem errados, ento
o mdulo no deve enviar resposta alguma e deve ignorar a mensagem completamente.
No mandatrio que o mdulo verifique outros intervalos de tempo, mas isto pode ser feito
se conveniente. Caso um erro seja identificado neste caso, mais uma vez nenhuma
mensagem deve ser enviada.
O mdulo pode detectar outros erros como de formato ou contedo das mensagens, e estes
devem satisfazer as condies de Checksum e tamanho. Neste caso, para que a ferramenta
de diagnstico possa ser informada que no h apenas um simples problema de
comunicao, o mdulo deve responder com a resposta negativa apropriada.
42
3.3.6.4 Ferramenta de diagnstico detecta erro na resposta do veculo
O mdulo pode detectar diferenas entre o que ele transmitiu e o que foi detectado na linha
K. Neste caso ele no deve agir ou deve simplesmente tentar retransmitir a informao
dentro de um perodo P2 aps cessar as atividades no barramento. Isto permite a adaptao
de vrios mtodos de gerenciamento de barramento.
A ferramenta de diagnstico pode detectar diferenas entre o que ela transmitiu e o que foi
detectado na linha K. Neste caso ela deve retransmitir a mensagem inteira e indicar um erro
camada de aplicao. Aps um tempo de P2max, a ferramenta deve retransmitir a
solicitao.
43
4.1 Introduo
44
A estratgia para seleo destas duas funes baseou-se no nmero de parmetros
envolvidos em cada uma e a possibilidade de visualizao imediata da alterao dos
parmetros colhidos. No total so mais de 100 bytes de dados, sendo que 55 parmetros
que so parte destes bytes necessitam ser atualizados instantaneamente e mostrados na
tela do computador, propiciando a anlise do comportamento do veculo em funcionamento.
A seguir sero apresentados os passos executados para a concluso deste software.
4.2 Objetivo
4.3 Desenvolvimento
KWP2000
Veculo
Interface Eletrnica
(adequao de
sinais)
KWP2000
PC executando
interface
programada em
Delphi.
O veculo possui vrios mdulos eletrnicos de controle. Neste trabalho o alvo o mdulo
de controle do motor localizado no compartimento do motor do veculo, cuja linha de
diagnstico est posicionada juntamente com as linhas dos demais mdulos do veculo no
45
conector de diagnstico que pode ser encontrado ao lado da caixa principal de fusveis,
conforme apresentado na figura abaixo.
Com esta estrutura definida, foram realizados testes de navegao com a ferramenta de
diagnstico dedicada, utilizada por toda a rede de concessionrias de uma das maiores
montadoras do pas. Estes testes tiveram por finalidade a verificao do funcionamento da
ferramenta existente, bem como a visualizao dos parmetros relacionados ao motor do
veculo.
A partir destes testes, foi desenvolvida a interface em Delphi, conforme segue:
46
transferncia exigida. Porm, em consulta a profissionais que trabalham diretamente com
programas de desenvolvimento de calibraes de mdulos de controle de motores, foi
possvel notar a utilizao de uma interface simples, confeccionada com transistores para
adequao dos nveis de sinais.
Uma vez descoberta a interface, a taxa de transferncia foi alterada para 10400 bps atravs
das configuraes do Delphi, sendo possvel notar que o mdulo de controle do motor
respondia positivamente aos comandos enviados.
Relembrando o embasamento terico deste trabalho, para a inicializao Fast (que foi a
escolhida para esta aplicao) o ciclo de Wake-up deve respeitar o seguinte formato:
P2
50 ms
Trep
25 ms
StartCommunication
Request
StartCommunication
Response
47
2,
3,
4,
5,
Os valores acima representam os 5 bytes enviados atravs da porta serial pelo software
desenvolvido. O significado de cada valor apresentado pode ser explicado da seguinte
forma:
Primeira Coluna: Seqncia de acontecimentos. O nmero 1 representa o primeiro byte
enviado, o nmero dois o segundo e assim por diante;
Segunda Coluna: Intervalo de tempo (em ms) entre os bytes. O primeiro valor (49,576 ms)
significa que o primeiro byte (Format Byte) foi enviado 49,576 ms aps a primeira atuao
da porta serial, o que respeita o ciclo total de Wake-up que padronizado como 50 ms ( 1).
48
O segundo valor (5,277 ms) mostra que o Target Byte foi enviado 5,277 ms aps o Format
Byte, o que comprova a observao do intervalo de tempo P4 entre os bytes da mesma
mensagem, que padronizado no intervalo de 5 a 20 ms. Da mesma forma temos os bytes
3, 4 e 5 respeitando os intervalos exigidos pelo protocolo KW2000.
Terceira Coluna: Valor em hexadecimal do byte enviado pelo notebook para o mdulo. O
primeiro byte (Format Byte) possui o valor 81h, que em binrio representa 10000001, cujo
significado pode ser detalhado recorrendo-se ao conceito do Format Byte (Tabela 1), ou
seja:
Format Byte:
A1 A0 L5 L4 L3 L2 L1 L0
7
Substituindo:
Portanto:
A1 e A0 valem respectivamente 1 e 0. Recorrendo-se Tabela 1, isto caracteriza Com
informao fsica de endereamento, ou seja, os bytes de origem e destino contm
endereamentos fsicos.
L5, L4, L3, L2, L1 e L0 valem respectivamente 0, 0, 0, 0, 0 e 1. Na Tabela 2, vemos que
quando estes bits no esto zerados, eles representam a quantidade de bytes de dados
(incluindo o SId), no sendo necessrio utilizar o byte de tamanho adicional (Additional
Length Byte). Assim, significa que existe apenas um byte de dados: o SId.
Em seguida h a presena do Target Byte, que representa o endereo fsico do mdulo de
controle do motor (11h). Aps ele o Source Byte, apresentando o endereo fsico da
ferramenta de diagnstico (no caso o notebook F1h). Em seguida encontra-se o Service
Identification (SId) que vale 81h, valor este correspondente ao servio StartCommunication
49
(vide Tabela 10). E por fim o Checksum que representa a soma simples de todos os bytes
enviados (excluindo o prprio Checksum) nesta mensagem, limitado a 2 algarismos em
hexadecimal:
81h + 11h + F1h + 81h = 204h, logo o Checksum vale 04h.
Como resposta do mdulo, colheu-se os seguintes dados:
<RESPONSE> STCPR StartCommunication Positive Response :
6,
7,
8,
9,
10,
11,
12,
Mais uma vez foi possvel notar o cumprimento dos intervalos de tempo exigidos pelo
protocolo KW2000. O primeiro valor (32,935 ms) representa P2 (limitado entre 25 e 50 ms
vide Tabela 3). Os demais (por volta de 0,093 ms) representam P1 (limitado entre 0 e 20
ms vide Tabela 3).
Quanto aos valores:
- o byte de formato recebido foi 83h, que significa endereamento fsico com 3 bytes de
dados;
- Objetivo igual a F1h, que o endereo do notebook;
- Fonte igual a 11h, que representa o endereo do mdulo que est respondendo;
- Service Identifier igual a C1h, que caracteriza resposta positiva solicitao de incio de
comunicao (StartCommunication vide Tabela 11);
- Key Byte 1 igual a EFh e Key Byte 2 igual a 8Fh, que representa, segundo a Tabela 7:
- Tamanho da Informao suportado: Format Byte e Additional Length Byte (Ambos
os modos);
- Tipo de cabealho suportado: Com e sem informao de endereo (Ambos os
tipos);
- Intervalo: Normal.
- Checksum: 83h + F1h + 11h + C1h + EFh + 8Fh = 3C4h, portanto igual a C4h.
50
Estabelecida a comunicao, enviou-se o servio desejado para leitura dos dados do motor
do veculo (ReadDataByLocalIdentifier) e da identificao do mdulo de controle do motor
(ReadEcuIdentification).
Para executar a leitura dos dados do motor, o software desenvolvido enviou a seguinte
seqncia de bytes:
<REQUEST> RDBLI ReadDataByLocalIdentifier :
13,
14,
15,
16,
17,
18,
19,
Neste caso, para verificar a aplicao do byte de tamanho adicional (Additional Length
Byte), o byte de formato foi enviado com apenas informaes sobre o tipo de
endereamento, sendo a quantidade de bytes de dados informada pelo Additional Length
Byte.
Os bytes significam:
- Byte de formato igual a 80h, que indica endereamento fsico. Agora foi a vez do intervalo
P3 ser respeitado (variao permitida entre 55 e 5000 ms) conforme representado na figura
6;
- Objetivo igual a 11h, que o endereo do mdulo controlador;
- Fonte igual a F1h, que representa o endereo do notebook;
- Byte de tamanho adicional igual a 02h, que indica que a mensagem de dados ter 2 bytes.
- SId igual a 21h, que indica o servio solicitado (ReadDataByLocalIdentifier conforme
ISO14230-3);
- Primeiro e nico byte de mensagem igual a 01h. Este byte exigido pelo servio
ReadDataByLocalIdentifier denominado RecordLocalIdentifier (segundo ISO14230-3).
Seu contedo no especificado por norma e sim por cada montadora.
- Soma para Checksum igual a 1A6h, portanto Checksum igual a A6h.
51
Como resposta do mdulo encontrou-se:
<RESPONSE> RDBLIPR - ReadDataByLocalIdentifier Positive Response :
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
0.093, <20>
30,
31,
32,
33,
34,
35,
36,
37,
38,
39,
40,
41,
42,
43,
44,
45,
46,
0.093, <21> !
47,
48,
49,
50,
51,
52,
52
53,
54,
55,
56,
57,
0.093, <74> t
58,
59,
60,
0.093, <67> g
61,
62,
63,
0.093, <80>
64,
0.093, <6A> j
65,
0.093, <41> A
66,
67,
0.093, <42> B
68,
69,
70,
71,
72,
73,
0.093, <5C> \
74,
75,
76,
77,
78,
79,
70,
81,
82,
83,
84,
85,
86,
87,
88,
89,
0.093, <33> 3
53
90,
0.093, <5A> Z
91,
0.093, <43> C
92,
93,
0.092, <33> 3
94,
0.093, <20>
95,
96,
0.093, <32> 2
97,
98,
99,
100,
101,
102,
103,
104,
105,
106,
0.093, <51> Q
107,
0.093, <51> Q
108,
0.093, <80>
109,
110,
0.093, <64> d
111,
112,
113,
114,
0.093, <69> i
115,
116,
117,
0.092, <80>
118,
0.093, <62> b
119,
120,
Os bytes representam:
- Byte de formato igual a 80h, indicando endereamento fsico e necessidade da utilizao
do byte de tamanho adicional (conforma descrito na Tabela 2);
- Objetivo igual a F1h, que o endereo estipulado para o notebook;
54
- Fonte igual a 11h, que representa o endereo do mdulo que est respondendo;
- Byte de tamanho adicional igual a 60h, indicando 96 bytes de dados incluindo o SId;
- SId igual a 61h, indicando resposta positiva do mdulo frente a solicitao
ReadDataByLocalIdentifier (conforme ISO14230-3);
- Bytes de nmero 25 a 119 representam toda a informao dos dados do motor que esto
disponveis neste servio. Itens como rotao do motor, temperatura do lquido de
arrefecimento, posio da borboleta de acelerao, quantidade de combustvel no tanque,
etc. esto neste pacote enviado ao notebook pelo mdulo;
- Checksum calculado igual a 48h.
Desta forma, aplicando-se as equaes necessrias sobre cada byte recebido (conforme
especificao tcnica do mdulo), foi possvel mostrar na tela do notebook os mesmos
dados do motor estudado, lidos atravs da ferramenta de diagnstico nas concessionrias e
oficinas. Esta tela apresentada abaixo:
55
Para solicitar este servio, os seguintes bytes foram enviados atravs do software
desenvolvido:
<REQUEST> REI - ReadEcuIdentification :
121,
122,
123,
124,
125,
126,
127,
Mais uma vez foi utilizado o byte de tamanho adicional para indicar a quantidade de bytes
na mensagem enviada.
A seguir o significado dos bytes:
- Byte de formato igual a 80h, indicando endereamento fsico e o uso do byte de tamanho
adicional;
- Objetivo igual a 11h, que o endereo do mdulo controlador;
- Fonte igual a F1h, que representa o endereo do notebook;
- Byte de Tamanho adicional igual a 02h, indicando a existncia de apenas 2 bytes na
mensagem de dados;
- SId igual a 1Ah, que representa o servio solicitado (ReadEcuIdentification) conforme a
ISO14230-3;
- Primeiro e nico byte de mensagem igual a 80h. Este byte parte integrante do processo
de solicitao do servio ReadEcuIdentification e chamado de IdentificationOption,
sendo seu contedo especificado pela montadora;
- Checksum calculado igual a 1Eh.
Como resposta do mdulo:
<RESPONSE> REIPR - ReadEcuIdentification Positive Response :
128,
129,
56
130,
131,
132,
133,
0.093, <80>
134,
0.093, <38> 8
135,
0.093, <42> B
136,
0.093, <47> G
137,
0.093, <52> R
138,
0.093, <4D> M
139,
0.093, <36> 6
140,
0.093, <39> 9
141,
0.093, <39> 9
142,
0.093, <30> 0
143,
0.093, <37> 7
144,
0.093, <47> G
145,
0.093, <31> 1
146,
0.093, <34> 4
147,
0.093, <31> 1
148,
0.093, <33> 3
149,
0.093, <32> 2
150,
0.093, <38> 8
151,
0.092, <53> S
152,
0.093, <30> 0
153,
0.093, <30> 0
154,
0.093, <31> 1
155,
0.093, <30> 0
156,
0.093, <30> 0
157,
0.093, <39> 9
158,
0.093, <36> 6
159,
0.093, <36> 6
160,
0.093, <34> 4
161,
0.093, <20>
162,
163,
164,
165,
0.093, <44> D
166,
0.093, <45> E
57
167,
0.093, <4C> L
168,
0.093, <20>
169,
0.093, <20>
170,
0.093, <30> 0
171,
0.093, <31> 1
172,
0.093, <31> 1
173,
0.093, <46> F
174,
0.093, <33> 3
175,
0.093, <31> 1
176,
0.093, <30> 0
177,
0.092, <36> 6
178,
0.093, <33> 3
179,
0.093, <30> 0
180,
0.093, <39> 9
181,
0.093, <34> 4
182,
0.093, <37> 7
183,
0.093, <30> 0
184,
0.093, <32> 2
185,
0.093, <33> 3
186,
0.093, <33> 3
187,
0.093, <31> 1
188,
0.093, <20>
189,
0.093, <5A> Z
190,
0.093, <43> C
191,
0.093, <46> F
192,
0.093, <46> F
193,
0.093, <52> R
194,
0.093, <4B> K
195,
196,
197,
0.093, <20>
198,
0.093, <20>
199,
0.093, <20>
200,
0.093, <20>
201,
0.092, <20>
202,
0.093, <20>
203,
0.093, <58> X
58
204,
0.093, <31> 1
205,
0.093, <30> 0
206,
0.093, <59> Y
207,
0.093, <46> F
208,
0.093, <4C> L
209,
210,
211,
0.093, <64> d
212,
0.093, <50> P
213,
0.093, <42> B
214,
0.093, <52> R
215,
0.093, <32> 2
216,
0.092, <30> 0
217,
0.093, <30> 0
218,
0.093, <37> 7
219,
0.093, <20>
220,
59
Desta forma, organizando os bytes recebidos conforme especificao tcnica do mdulo, foi
possvel mostrar na tela do notebook as mesmas informaes sobre identificao do mdulo
controlador do motor, lidas atravs da ferramenta de diagnstico nas concessionrias. Esta
tela apresentada abaixo:
Assim, os trs servios propostos foram testados, possibilitando a leitura dos dados do
motor em tempo real e a identificao do mdulo controlador sempre que necessrio.
A seguir apresentado o fluxograma do software desenvolvido:
60
Primeiramente apresentada uma viso macro do funcionamento do software:
Incio
Usurio deseja
sair do
programa?
Sim
No
No
Identificao de
mdulo
selecionada?
Dados do
motor
selecionado?
No
Sim
Sim
Estabelece Comunicao e envia
solicitao para receber dados
referentes identificao do mdulo.
Apresenta os resultados na
tela do computador.
Fim
61
Agora apresentado o detalhamento da funo Estabelece Comunicao e envia
solicitao para receber dados referentes identificao do mdulo.:
Incio
Target Byte
recebido =
F1h?
No
No
No
Sim
Source Byte
recebido =
11h?
Sim
SId recebido
= C1h?
Sim
Checksum
correto?
Sim
No
62
Target Byte
recebido =
F1h?
No
No
No
No
Sim
Source Byte
recebido =
11h?
Sim
SId recebido
= 5Ah?
Sim
Checksum
correto?
Sim
Fim
63
Agora apresentado o detalhamento da funo Estabelece Comunicao e envia
solicitao para receber dados referentes ao motor.:
Incio
Target Byte
recebido =
F1h?
No
Sim
Source Byte
recebido =
11h?
No
Sim
SId recebido
= C1h?
No
Sim
Checksum
correto?
Sim
No
64
Target Byte
recebido =
F1h?
No
No
No
No
Sim
Source Byte
recebido =
11h?
Sim
SId recebido
= 61h?
Sim
Checksum
correto?
Sim
No
Usurio deseja
sair do
programa?
Sim
Fim
65
Com o trmino da aplicao em Delphi, foi possvel verificar o comportamento do protocolo
KW2000 na prtica. Cada comando executado, seja pelo lado da interface, seja pelo lado
do mdulo de controle do motor do veculo, respeitou integralmente as especificaes
detalhadas nas normas consultadas. Atravs de testes que simularam o descumprimento
das especificaes do protocolo, foi possvel notar o envio de mensagens de erro por parte
do mdulo estudado, o que caracterizou o correto manuseio de erros, conforme descrito na
parte terica deste trabalho.
66
5 Concluso
Atravs da execuo deste trabalho foi possvel notar que o protocolo KW2000 possui
caractersticas bem definidas pelas normas ISO que o padroniza.
Uma vez vencidos os desafios, alcanou-se as pr-condies necessrias para enviar e
receber as informaes atravs da aplicao (construda sobre a linguagem de
programao Delphi) e evidenciou-se o bom funcionamento do protocolo levando-se em
considerao a atualizao contnua dos valores apresentados na tela do notebook. Tais
valores mostraram-se em conformidade, quando comparados com os dados lidos a partir de
uma ferramenta de diagnstico dedicada, utilizada pela rede de concessionrias de uma das
maiores montadoras do pas.
Com o trmino deste trabalho, conclui-se que perfeitamente possvel a realizao da
programao de ferramentas de diagnstico em territrio nacional, visando reduzir
drasticamente o custo relacionado a este item nas montadoras que ainda no o fazem e
possibilitando o surgimento de novos postos de trabalho no Brasil. Para tanto, basta o
aprendizado da linguagem de programao da ferramenta de diagnstico e a aquisio dos
softwares necessrios, alm, claro, da contratao de profissionais habilitados e com perfil
adequado para tal funo.
Este trabalho caracteriza uma pequena poro das funes que so padronizadas pelo
protocolo KW2000. Itens como o envio de comandos para movimentar componentes
(gerenciados pelo mdulo de controle do motor) e a programao de variveis (tipo de
combustvel, nmero de identificao do veculo (VIN), nmero da pea, etc.) so comandos
que podem ser desenvolvidos a partir deste trabalho, recorrendo-se s normas que
padronizam o protocolo KW2000. Fica o convite para que futuros projetos apliquem estas
funes visando incrementar a aplicao desenvolvida nesta dissertao.
67
6 Referncias
INTERNATIONAL ORGANIZATION FOR STANDARDIZATION. ISO 14229: Road Vehicles Diagnostic Systems Diagnostic Services Specification - 1998
______. ISO 14230-1: Road Vehicles - Diagnostic Systems Physical Layer - 1999
______. ISO 14230-2: Road Vehicles - Diagnostic Systems Data Link Layer - 1999
______. ISO 14230-3: Road Vehicles - Diagnostic Systems Application Layer - 1999
______. ISO 14230-4: Road Vehicles - Diagnostic Systems Requirements for
Emission Related Systems - 2000
______. ISO 9141-2: CARB Requirements for Interchange of Digital Information. - 1994
KEYWORD Protocol 2000 Part 2: Data Link Layer Recommended Practice - 1997
KEYWORD Protocol 2000 Part 3: Implementation Recommended Practice - 1997
SOCIETY OF AUTOMOTIVE ENGINEERS. SAE J1978: OBD II Scan Tool - 1997
______. SAE J1979: Draft E/E Diagnostic Test Modes revised for ISO 14230-4 - 1998