Sunteți pe pagina 1din 35

Diseo y realizacin de un

sistema On Board Diagnostics


(OBD-II)

ALUMNO: Oscar Rayo Mansilla


ESPECIALIDAD: Electrnica
DIRECTOR: Jordi Sellars Gonzlez
DEPARTAMENTO: Fsica y Ingeniera
Nuclear

NDICE

1. INTRODUCCIN
Motivacin del proyecto
Antecedentes
Objetivos
Descripcin general
2. DISEOS
Diseo del modem interface
Construccin del programador JDM2
Mejoras del modem interface
Programas de prueba
Diseo del software de control

3. RESULTADOS
Descripcin del funcionamiento
Posibles aplicaciones
4. PRESUPUESTO
5. CONCLUSIONES Y MEJORAS
Plan de trabajo
Objetivos logrados
Conclusiones finales
Mejoras futuras del sistema

INTRODUCCI
N

DISEO Y REALIZACIN DE UN SISTEMA ON BOARD DIAGNOSTIC (OBD-II)

MOTIVACIN DEL PROYECTO


Diagnstico

tcnico de las averas de un


vehculo a travs de su computadora.

Disponibilidad

coste.

Evitar

de una solucin de bajo

la dependencia de los servicios


oficiales del mantenimiento del automvil.

INTRODUCCI
N

DISEO Y REALIZACIN DE UN SISTEMA ON BOARD DIAGNOSTIC (OBD-II)

ANTECEDENTES
OBD II
Equipamiento autodiagnosticable de
abordo
OBD-II (Estados Unidos), EOBD (Europa), y JOBD (
Japn)
Sus caractersticas pueden monitorear prcticamente
todos los componentes que pueden afectar las
emisiones contaminantes
Informaciones importantes sobre posibles fallas
detectadas

EE.UU.
Europa

1996 (OBD-II)
2001 (EOBD)

INTRODUCCI
N

DISEO Y REALIZACIN DE UN SISTEMA ON BOARD DIAGNOSTIC (OBD-II)

ANTECEDENTES
Herramientas y software disponible en el mercado basados en
el micro ELM327

Interface
con micro
ELM327

Software de control ScanTool.net

Interface
con Bluetooth
basada
en el
ELM327

INTRODUCCI
N

DISEO Y REALIZACIN DE UN SISTEMA ON BOARD DIAGNOSTIC (OBD-II)

OBJETIVOS
Conseguir

una comunicacin estable con cualquier


centralita electrnica (ECU) de cualquier vehculo
equipado con OBD-II.

Conseguir

desarrollar una aplicacin portable a cualquier


sistema operativo y plataforma utilizando lenguaje JAVA
y la estructura de programacin por capas.

Realizar

mejoras en el hardware ya existente en el


mercado a partir del cual se construir nuestra interface.

Demostrar

que con la informacin disponible en la red,


es posible acceder a los sistemas de control que
implementan los fabricantes de automviles en sus
vehculos.

INTRODUCCI
N

DISEO Y REALIZACIN DE UN SISTEMA ON BOARD DIAGNOSTIC (OBD-II)

DESCRIPCIN GENERAL DEL HARDWARE


Modem

OBD-II 16 PIN(Macho)

DB9 PIN(Hembra)

(J2850 BUS+)2
(Masa chasis)4
(Masa seal) 5
(CAN H) 6
(ISO 9141-2 K Line) 7
(J2850 BUS- ) 10
(CAN L) 14
(Linea L ISO 9141-2) 15
(Voltaje batera) 16

7
1+2
1+2
3
4
6
5
8
9

interface,
interprete entre la
ECU y el puerto USB.
Protocolos OBDII:
SAEJ1850PWM
ISO 9141/14230
SAEJ1850VPW
ISO15765 (CAN)
CABLEADO:
Cable USB tipo A-B
Cable conector J1962
especfico OBD-II.

INTRODUCCI
N

DISEO Y REALIZACIN DE UN SISTEMA ON BOARD DIAGNOSTIC (OBD-II)

DESCRIPCIN GENERAL DEL SOFTWARE


Gestin

o USB.

del modem interface atreves del puerto serie

Configuracin del
puerto
Lecturas de
cdigos de error
Seleccin de
protocolos de
comunicacin
Lecturas a tiempo
real de los
sensores del
motor
Exploracin del
trfico de datos

DISEOS

DISEO Y REALIZACIN DE UN SISTEMA ON BOARD DIAGNOSTIC (OBD-II)

DISEO DEL MODEM INTERFACE

Utilizacin

de un diseo disponible en la red para realizar mejoras


Interface basada en el microcontrolador PIC18F2550
Compatibilidad con el micro ELM327

DISEOS

DISEO Y REALIZACIN DE UN SISTEMA ON BOARD DIAGNOSTIC (OBD-II)

Para realizar la placa de circuito impreso se utiliz el siguiente


layout:

Pistas de la cara inferior del


circuito

Distribucin de componentes de la cara


inferior del circuito

Pistas de la cara superior del circuito

Distribucin de componentes de la cara


superior del circuito

DISEOS

DISEO Y REALIZACIN DE UN SISTEMA ON BOARD DIAGNOSTIC (OBD-II)

CONSTRUCCIN DEL PROGRAMADOR JDM2


Cumple con el
estndar ICSP de
Microchip
Montaje en placa de
baquelita para
prototipos
Construccin rpida
y con pocos
componentes

DISEOS

DISEO Y REALIZACIN DE UN SISTEMA ON BOARD DIAGNOSTIC (OBD-II)

MEJORAS DEL MODEM


INTERFACE
Funcionamiento correcto en varios
Duracin del periodo de un bit
vehculos y diferentes protocolos

Problemas de comunicacin en el
protocolo SAEJ1850PWM a travs
de una ECU de diseo obsoleto

Pin 2 conector OBD-II(BUS+)

Pin 10 conector OBD-

24s
Un bit=1
8s
Un bit=0
16s
BUS+ activo
5v.
BUS- activo
0v.

Activo durante
Activo durante

DISEOS

DISEO Y REALIZACIN DE UN SISTEMA ON BOARD DIAGNOSTIC (OBD-II)

Modificacin del circuito por obtener tensiones


incorrectas en el BUS+
Componentes
que gestionan el
protocolo
SAEJ1850PWM
Q1(Canal-N)
Q2(Canal-P)
Resultado de la
modificacin del
circuito
Q1(NPN)
Q2(PNP)

DISEOS

DISEO Y REALIZACIN DE UN SISTEMA ON BOARD DIAGNOSTIC (OBD-II)

Las

especificaciones del protocolo indican que las


tensiones del BUS estn dentro de los mrgenes
Posibilidad de errores en las tramas enviadas

61 6A F1
01 00
Trama que el modem enva por defecto
0A
Unnable to connect

Respuesta real del modem,


al no responder la ECU
Trama con la que debera responder la ECU

La

61 F1 6A 41 0C 0B 88
5C

cabecera del trama (Header Field) especifica direcciones


de memoria
Solucin mediante la modificacin de la cabecera

DISEOS

DISEO Y REALIZACIN DE UN SISTEMA ON BOARD DIAGNOSTIC (OBD-II)

:
Modificacin
de la cabecera (Header Field) accediendo
103C70000350E66EE66A00010028BC6F000E0120
directamente
al firmware del microcontrolador
CA
:103C8000BD6FBCC0E6FFBDC0E6FF040E0024BE6 Localizacin
FE2
de la
:103C9000000E0120BF6FBEC0E6FFBFC0E6FFDDE
cabecera
C37
:103CA0001EF046E90028E96E000E0120EA6E610E59
:103CB000EF6E020E0024E96E000E0120EA6E6A0E26
::103CC000EF6E030E0024E96E000E0120EA6EF10E85
103C70000350E66EE66A00010028BC6F000E012
:103CD000EF6E0001030EBC6F00EBE9FF01EBEAFF
0CA
A2
:103C8000BD6FBCC0E6FFBDC0E6FF040E0024BE
:103CE000BC51EF2642E9E7CFD9FF1200D9CFE6F Modificacin
6FE2
F5A
de la
:103C9000000E0120BF6FBEC0E6FFBFC0E6FFDDE
cabecera y
C37
del
:103CA0001EF046E90028E96E000E0120EA6EE40EBA
checksum
:103CB000EF6E020E0024E96E000E0120EA6E100E77
:103CC000EF6E030E0024E96E000E0120EA6EF10E85
:103CD000EF6E0001030EBC6F00EBE9FF01EBEAF
FA2
Respuesta
de la ECU despus de la modificacin:
:103CE000BC51EF2642E9E7CFD9FF1200D9CFE6F
E4F5A
10 F1 01 00
C4 F1 10 7F 01 01 00

0A
7F 01: modo de trabajo no41
compatible

00 11

DISEOS

DISEO Y REALIZACIN DE UN SISTEMA ON BOARD DIAGNOSTIC (OBD-II)

PROGRAMAS DE PRUEBA
Realizacin

de pequeos programas de prueba


Utilizacin del cdigo fuente de ScanTool.net
Mediante la herramienta Dev-C++ se dise un pequeo programa con
la siguiente estructura:

main(): Arranca el hilo de ejecucin.


init(): Carga las libreras y abre el puerto.
deinit(): Descarga las libreras y cierra el puerto.
read_comport(): Lee el puerto serie.
open_comport(): Abre el puerto serie.
close_commport(): Cierra el puerto serie.
send_command(): Escribe en el puerto serie

Programa

de prueba utilizando la plataforma JAVA

public static void main(): Mtodo que inicia la ejecucin del programa.
public void Conectar(): Establece la conexin con el puerto serie indicado.
public void Enviar(): Escribe la trama de datos a enviar en el puerto serie.
public void recibir(): Lee la trama de datos recibida del puerto serie.
Public long timer(): Mtodo que realiza la espera necesaria a la respuesta del
puerto.

DISEOS

DISEO Y REALIZACIN DE UN SISTEMA ON BOARD DIAGNOSTIC (OBD-II)

Programa de prueba diseado en C++

DISEOS

DISEO Y REALIZACIN DE UN SISTEMA ON BOARD DIAGNOSTIC (OBD-II)

Ejemplo del tratamiento de las tramas digitales recibidas


y enviadas:

Comando a enviar: 01 00
Cdigo ASCII: 48,49,48,48
Mas retorno de carro01 00\r
Cdigo ASCII: 48,49,48,48,13
Si el protocolo a utilizar es SAEJ1850PWM:
SOF: Start Of Frame
Header Field: 61 6A F1
Data Field: 01 00
CRC: 0A
EOF: End Of Frame

Respuesta ECU

61 F1 6A 41 00 0B 88 5C

Respuesta Interface

Trama recibida en el puerto serie (Cdigo ASCII)


48,49,48,67,13,10,54,65,70,49,54,49,52,49,48,48,48,66,56,56,53
,67,13,10,62,-1

01 00 6A F1 61 41 00 0B 88 5C

DISEOS

DISEO Y REALIZACIN DE UN SISTEMA ON BOARD DIAGNOSTIC (OBD-II)

DISEO DEL SOFTWARE DE CONTROL

Realizacin de un software multiplataforma


mediante lenguaje JAVA
Utilizacin de la programacin estructurada
multihilo
Diseado en base a la estructura de programacin
por capas
CAPA DE DOMINIO
PRESENTACIN
DATOS

Interacta con el usuario


de la aplicacin
Facilita el acceso entre
capas
Gestiona las tramas de
datos procedentes del
modem

DISEOS

DISEO Y REALIZACIN DE UN SISTEMA ON BOARD DIAGNOSTIC (OBD-II)

PROGRAMACIN ESTRUCTURADA POR CAPAS

Capa de Datos:

Clase
Clase
Clase
Clase

Conexin
ControladorConexin
lecturaTXTErrores
MuestraIDs

Capa de Dominio:

Clase ControladorDominioConexin

Capa de Presentacin:

Clases
Clases
Clases
Clases

ControladorPrincipal y VistaPrincipal
ControladorErrores y VistaCodigosError
ControladorMediciones y VistaMediciones
ControladorProtocolo y VistaProtocolo

DISEOS

DISEO Y REALIZACIN DE UN SISTEMA ON BOARD DIAGNOSTIC (OBD-II)

PUESTA EN MARCHA DEL SOFTWARE


Arranque de la aplicacin mediante archivos ejecutables

RunLinux.sh
RunWindows.ba
t
VisualOBD.jar

Uso de la librera

RESULTADOS

DISEO Y REALIZACIN DE UN SISTEMA ON BOARD DIAGNOSTIC (OBD-II)

DESCRIPCIN DEL FUNCIONAMIENTO


Estado inicial del programa

RESULTADOS

DISEO Y REALIZACIN DE UN SISTEMA ON BOARD DIAGNOSTIC (OBD-II)

Configuracin del puerto serie

RESULTADOS

DISEO Y REALIZACIN DE UN SISTEMA ON BOARD DIAGNOSTIC (OBD-II)

Seleccin del protocolo de comunicacin

RESULTADOS

DISEO Y REALIZACIN DE UN SISTEMA ON BOARD DIAGNOSTIC (OBD-II)

Inicio de la conexin

RESULTADOS

DISEO Y REALIZACIN DE UN SISTEMA ON BOARD DIAGNOSTIC (OBD-II)

Conexin no consolidada

RESULTADOS

DISEO Y REALIZACIN DE UN SISTEMA ON BOARD DIAGNOSTIC (OBD-II)

Lectura de cdigos de error

RESULTADOS

DISEO Y REALIZACIN DE UN SISTEMA ON BOARD DIAGNOSTIC (OBD-II)

Lectura de sensores a tiempo real

RESULTADOS

DISEO Y REALIZACIN DE UN SISTEMA ON BOARD DIAGNOSTIC (OBD-II)

POSIBLES APLICACIONES

Labores de manteniendo de cualquier


profesional del sector

Labores de mantenimiento de uso


particular

Herramienta para aficionados a la


mecnica del automvil

PRESUPUESTO

DISEO Y REALIZACIN DE UN SISTEMA ON BOARD DIAGNOSTIC (OBD-II)

PRESUPUESTO DEL PROYECTO


La siguiente tabla especifica el presupuesto detallado en
euros:
Referencia

Cantidad

Precio
unitario
20

Precio total

Material montaje interface

Material montaje programador

Cable OBD-II a DB9 hembra

Cable USB tipo A-B

20

10

200
232

Hora trabajo
Total

20

Observamos que nuestro sistema cuesta 232, frente a los


4000 que pueden llegar a costar las herramientas que
utilizan en cualquier servicio oficial.

CONCLUSIONES Y MEJORAS DISEO Y REALIZACIN DE UN SISTEMA ON BOARD DIAGNOSTIC (OBD

PLAN DE TRABAJO
Conseguir

todos los componentes y materiales.


Montar la interface y el programador.
Comprobar el correcto funcionamiento de la interface.
Instalacin de los sistemas operativos WindowsXP y Linux
Ubuntu 8.04 con la respectiva maquina virtual de JAVA.
Instalar software compatible con la interface para comprobar su
correcto funcionamiento.
Conectar la interface a diferentes vehculos para asegurar su
funcionalidad.
Programar aplicaciones de prueba en C++ y Java.
Programar aplicacin con entorno visual.
Verificar el correcto funcionamiento de la aplicacin visual.
Verificar el correcto funcionamiento de la aplicacin sobre la
centralita electrnica.
Verificar el correcto funcionamiento de la aplicacin en
diferentes sistemas operativos, Windows y Linux.

CONCLUSIONES Y MEJORAS DISEO Y REALIZACIN DE UN SISTEMA ON BOARD DIAGNOSTIC (OBD

OBJETIVOS LOGRADOS

Conseguir que el montaje de la interface funcione


correctamente.
Poder acceder a las centralitas electrnicas (ECU), segn el
estndar OBD-II.
Consolidar la comunicacin con el modem a travs del puerto
serie mediante aplicaciones de software de propio desarrollo
en C++ y JAVA.
Conseguir descifrar las tramas digitales para obtener una
informacin fcilmente comprensible en pantalla de los datos
enviados por la ECU.
Finalizar el desarrollo de la aplicacin visual en JAVA con todas
las opciones previstas.
Estabilizar la aplicacin visual en JAVA sin que se produzca
ningn error ya sea de comunicacin con la interface o de
manejo respecto al usuario.
Conseguir que la aplicacin visual en JAVA funcione
correctamente tanto en Windows como en Linux.

CONCLUSIONES Y MEJORAS DISEO Y REALIZACIN DE UN SISTEMA ON BOARD DIAGNOSTIC (OBD

CONCLUSIONES FINALES

El lenguaje de programacin JAVA es una herramienta muy potente,


ya que permite que una misma aplicacin pueda funcionar de igual
forma en diferentes sistemas operativos y plataformas.
Es posible acceder a la centralita electrnica de un vehculo
utilizando montajes sencillos y ordenadores personales. En realidad
est al alcance de cualquier usuario particular.
La ingeniera inversa sobre un firmware (desensamblado), tiene
limitaciones y para realizar cambios significativos es necesario
disponer del cdigo fuente, sino estamos limitados a pequeas
modificaciones.
Los fabricantes de automviles han implementado el estndar OBDII obligados por EE.UU. i U.E de una forma bastante compatible
como lo demuestra el que un pequeo dispositivo genrico como el
que se ha realizado, funcione en un amplio rango de vehculos.
El hecho de disponer de un microcontrolador programable
disminuye la dependencia en la plataforma, ya que solo es
necesario que disponga de conexin USB, y a partir de aqu el papel
de las plataformas es de gestionar una conexin serie. El procesado
de los protocolos los realiza el micro.

CONCLUSIONES Y MEJORAS DISEO Y REALIZACIN DE UN SISTEMA ON BOARD DIAGNOSTIC (OBD

MEJORAS FUTURAS DEL SISTEMA

Internacionalizar el software de control con la intencin de que


pueda mostrar la informacin en varios idiomas ya que en esta
primera versin solo se muestran en ingles.
Implementar todos los modos de trabajo del estndar OBD-II en
el software de control.
Dotar a la interface de una botonera y un pequeo display
para poder realizar las funciones ms simples de forma
autnoma, como por ejemplo la lectura y borrado de los
cdigos de error DTC.
Implementar en el software de control una opcin de autoayuda
para poder entender y manejar el sistema de forma ms
rpida. Esta mejora sera muy til porque los datos que se
manejan son bastante abstractos.
Crear un paquete instalador que automticamente site los
ficheros necesarios del software para acelerar su puesta en
marcha.

Turno de
preguntas

S-ar putea să vă placă și