Está en la página 1de 10

GRUPO: ___________ FECHA: _______________________

ALUMNO 1: ___________________ ALUMNO2:_________________________

EQUIPOS ELECTRNICOS DE MEDIDA


4 GRADUADO EN INGENIERA MECNICA

SESIN 10 DE GRUPO REDUCIDO


DIAGNSTICO DE AUTOMVILES
OBD II

Las cuestiones se respondern en el ANEXO, no en el


cuadernillo. (No es necesario entregar ste, slo el anexo)

Introduccin:

Tras ver el bus CAN y el diagnstico de automviles OBD (On Board Diagnostics), en
esta sesin se utilizar un cable interface USB-OBD conectado a un emulador del vehculo
para probar modos y pids bsicos y entender el funcionamiento. Seguidamente se har un
pequeo programa demo en LabVIEW y, finalmente, se podr comprobar una herramienta
comercial que utiliza dicho cable.

Para realizar la prctica se contar con un cable ELM327 que sirve de interface entre
el PC (USB) y el vehculo. Este cable utiliza el circuito integrado ELM327 que se ha visto en
clase y que se conectar con un emulador de ECUs del vehculo para intercambiar
informacin simulando que la misma se enva a un vehculo.

Planteamiento:

Para la prctica se utilizar el simulador de ECU mOByDic1610. Este circuito simula


un interface OBD donde estuvieran conectadas tres ECUs ( una de motor ECM, una de
traccin TCM y una de ABS).

https://www.ozenelektronik.com/canbus-obd-ecu-simulator-p.html
Por otra parte se utilizar un adaptador ELM327 USB, que realiza el interface entre el
PC y el vehculo (en nuestro caso el emulador del mismo)

Este adaptador se ve desde el PC como un puerto serie ya que, al instalar su driver


USB, ste se instala como un puerto COM. Este puerto serie se comunicar con un circuito
integrado ELM327 (visto en clase) que nos sirve de interface con el conector OBD.

En este sentido nos resultar de inters el manual del ELM327 que podremos
descargar de la web (ELM327DS.pdf).

Bsicamente nuestra comunicacin consistir en enviarle comandos y recibir


respuestas por el puerto serie. Los comandos podrn ser de dos tipos:

Comandos que comienzan con AT, van dirigidos al circuito integrado y ste los
interpretar como rdenes de configuracin, peticiones, reset, (por ejemplo, el
comando AT Z provocar su reset y nos responder con su modelo y versin.

Resto de comandos, aquellos caracteres que no vayan precedidos por AT, el


ELM327 los transferir directamente al bus OBD. (por ejemplo, si enviamos 04
enviar un 04 por el bus OBD lo que es un modo 04 u orden de resetear el MIL.
(La ventaja principal est en que el circuito se encarga de adaptar esta transmisin
a las tramas CAN)

Por su parte, el emulador de ECUs dispone de 5 potencimetros con los que podremos
simular los valores respectivamente de la temperatura del refrigerante (ECT), las revoluciones
(RPM), la velocidad (Speed), el sensor de oxgeno (O2) y el sensor de caudal de aire (mass air
flow sensor (MAF)). As mismo disponemos de un pulsador para provocar un fallo y
encender el indicador MIL (led ROJO).

Con este sistema podremos probar los modos (comandos), PIDs (parmetros) y DTCs
(cdigos de error).

Nuestro objetivo es entender el funcionamiento y comandos. Como hemos visto en


clase, el nmero de parmetros (PIDs) y cdigos de error (DTCs), entre estndares y
propietarios, es muy elevado y exige en muchos casos el conocimiento de sus significados y
encriptacin (bitwise).

En este sentido, existen en el mercado programas especficos y herramientas, unas


universales (para PIDs y DTCs estndares) y otras particulares y/o propietarias (para
modelos/fabricantes concretos).
Primera parte: Configuracin y pruebas manuales.
En esta primera parte de la prctica enviaremos comandos manualmente utilizando un
terminal serie para familiarizarnos con el bajo nivel.

La siguiente tabla nos muestra algunos PIDs estndares, de los que hemos marcado los
que emula la tarjeta:

As mismo se indica la frmula para obtener los valores de los parmetros respectivos
a partir de los bytes recibidos (A, B, ..)

Mediciones:

Para esta parte utilizaremos como terminal la utilidad serial.prj que lanzaremos desde
CVI (Directorio samples de CVI). Al ejecutarla nos aparecer un primer panel de
configuracin:

Elegiremos el puerto COM que haya instalado el driver del cable. Si ste es mayor que
COM8 abrir las propiedades de sistema del PC y en Hardware abrir las propiedades de puerto
serie y, en las mismas, en Avanzadas, modificar el puerto eligiendo uno inferior al COM9 (no
usar ni el COM1 ni el COM2 que puede que existan fsicamente).

As mismo pondremos un timeout de 1 segundo.


El puerto lo configuraremos a 38400 baudios, 8 bits de datos, sin paridad y 1 bit de stop,
que es lo que especifica el ELM327 por defecto.

Una vez configurado, nos aparecer el panel de terminal:

Nota: Como el ELM327 nos exige que todo comando acabe en CR lo fijaremos como carcter
terminador en las transmisiones. Para las recepciones, como puede haber respuestas mltiples
con varios CR, para evitar que se interrumpan, pondremos sin carcter terminador y 200 bytes
a leer. Como ninguna respuesta ser de 200, cuando pidamos leer acabar saltando el timeout,
por eso lo pusimos a mnimo (1 segundo).

Podremos probar a enviar distintos comandos:

Comandos al ELM327:

Enviar : AT Z

Cuestin 1: Respuesta al comando AT Z: (Responder en el anexo)


Comandos al emulador:
Enviar: 01 05
Modo (comando) 01 -> (Show current data),
PID 05 -> ( Temperature of the engine coolant in C) (frmula -> A-40)

Vemos que se reciben dos respuestas (ms la cabecera que indica que es un comando 01 con
PID 05), ello se debe a que el ELM327 emula que hubiera varias ECUs en el bus (una de
motor, una de transmisin y una de ABS). (Nosotros vamos a trabajar con la primera que es el
motor). (Temperatura => 55 Hex = 85 Dec  Temperatura = 85 40 = 45 C)
Si se quiere preguntar cul es la temperatura del motor, el primer byte ser el modo01 que muestra flujo de datos y el segundo byte es el PID
05. En el documento SAE J1979 se establecen todas las regulaciones sobre OBD. As siguiendo el ejemplo, para conocer la temperatura la
comunicacin a nivel de bytes se realiza de la siguiente manera:
>01 05 Pregunta
>41 05 7B Respuesta
En la respuesta recibida, se suma en hexadecimal 40+01=41, a continuacin el PID =05 y despus la respuesta recibida ser 7B. Este nmero en
decimal es el 123, el cual corresponde en la frmula de obtencin del dato al byte A. Por lo que:
Temperatura motor=A-40=123-40=83C

https://es.wikibooks.org/wiki/El_OBDII_Completo/OBD_En_Breve/PID_a_fondo

Cuestiones: (Responder en el anexo)

Cuestin 2: Respuesta al comando 01 0D con el potencimetro central a mnimo:

Cuestin 3: Respuesta al comando 01 0D con el potencimetro central a mximo:

Cuestin 4: Qu hemos ledo en las dos anteriores?

Cuestin 5: Colocar aleatoriamente los 5 potencimetros y obtener (enviar comandos con


PID respectivos, ver respuesta y calcular valor real segn las ecuaciones):

- Temperatura del refrigerante:

- R.P.M.

- Velocidad

- O2

- Caudal de aire
Enviar un comando 03 sin PID, si no est el MIL encendido hemos de recibir :

Lo que significa que ninguna de las tres ECUs tiene cdigos de error.
Activar el MIL (pulsando el pulsador de la placa ECU), deber encenderse el LED rojo.

Enviar de nuevo un comando 03, qu respuesta obtenemos ahora?

Cuestin 6: Respuesta a comando 03 con MIL encendido:

La respuesta recibida ahora es distinta de 00 y el emulador nos enva una serie de errores que
tendramos que decodificar a partir de la especificacin OBD (SAE J2012). En nuestro caso
nos quedamos con que hemos recibido errores

Enviar ahora un comando 04, qu respuesta obtenemos ahora?

Cuestin 7: Respuesta a comando 04:

Cuestin 8: Qu ha ocurrido con el led?

Volver a enviar de nuevo un comando 03, qu respuesta obtenemos ahora?

Cuestin 9: Respuesta a comando 03 con MIL apagado:

Cuestin 10: El modo 04 ha reparado la avera?

Segunda parte: Programa LabVIEW Comunicacin OBD a


travs de puerto serie.
Es evidente que con un terminal resultara muy tedioso manejar los cdigos de modos,
PIDs, DTCs, (aunque algunas herramientas permiten el uso en modo terminal para poder
observar o evaluar cdigos propietarios o bien por ser herramientas simples).

Mediante un programa podemos realizar el manejo y control de parmetros, cdigos,


funciones, segn nuestra necesidad.

A modo de ejemplo podemos probar el siguiente programa LabVIEW que,


obviamente, no es ms que un pequeo ejemplo de cmo podramos manejar la informacin.
En este ejemplo (visto en clase) leeremos la velocidad y podremos resetear el MIL.
(Este programa estar disponible en CV, la idea no es editarlo sino tener un ejemplo bsico.
SER NECESARIO ADECUAR EL PUERTO SERIE.
Aunque se explica en la clase, bsicamente tenemos una secuencia donde primero
inicializamos el puerto serie, despus entramos en el bucle principal y, finalmente liberamos
el puerto serie.

En el bucle principal hemos implementado dos posibilidades a elegir con el botn BORRA
MIL. Si el botn no est pulsado, enviamos un comando 01 0D que es leer la velocidad y
hemos puesto un indicador (create indicator) en la salida para ver la misma. A partir de esa
informacin hemos observado que los caracteres ASCII de la respuesta son los
correspondientes a la velocidad (de 00 a FF) por lo que los extraemos de la respuesta, los
convertimos de ASCII a valor y los ponderamos a base 16 para obtener el valor que
representamos directamente en un indicador.

Si el BORRA MIL est activo, la secuencia que seguimos es simplemente enviar un cdigo
04 que es borrar el MIL. Aunque no procesamos la respuesta, la extraemos de la FIFO de
recepcin para que sta no se llene.

As mismo hemos puesto algunos indicadores para ver con ms detalle diferentes partes.

Se puede implementar este mismo programa pero leer la temperatura en lugar de la velocidad
e indicarlo con un termmetro en lugar de con el cuadro de aguja.

Cuestin 11: Describir los cambios realizados para leer la temperatura en lugar de la
velocidad.

Tercera parte: Aplicacin comercial.

Una vez que nos hemos familiarizado con el sistema, la realidad es que en talleres y
concesionarios lo que se utilizan son herramientas y programas ya desarrollados con una
amplia gama de opciones y resultados.

A modo ilustrativo, podemos probar el programa ScanMaster del PC del laboratorio.

Lo primero que habremos de hacer es inicializar el puerto serie, a partir de ah podremos


entrar en la aplicacin y realizar mediciones y pruebas.

Ahora el programa nos decodifica los DTCs por lo que podremos comprobar los errores que
nos devuelve el emulador si provocamos un error (pulsador):

Cuestin 12: Provocar un error y leer los cdigos recibidos y su interpretacin:

Resultados:
Entregar el ANEXO relleno (no es necesario imprimir el cuadernillo completo)

OBSERVACIONES / COMENTARIOS:
GRUPO: ___________ FECHA: _______________________

ALUMNO 1: ___________________ ALUMNO2:_________________________

EQUIPOS ELECTRNICOS DE MEDIDA


4 GRADUADO EN INGENIERA MECNICA

SESIN 10 DE GRUPO REDUCIDO


DIAGNSTICO DE AUTOMVILES
OBD II

ANEXO RESULTADOS
Cuestin 1: Respuesta al comando AT Z:

Cuestin 2: Respuesta al comando 01 0D con el potencimetro central a mnimo:

Cuestin 3: Respuesta al comando 01 0D con el potencimetro central a mximo:

Cuestin 4: Qu hemos ledo en las dos anteriores?

Cuestin 5: Colocar aleatoriamente los 5 potencimetros y obtener (enviar comando, ver


respuesta y calcular valor real segn las ecuaciones):

- Temperatura del refrigerante:

- R.P.M.

- Velocidad

- O2

- Caudal de aire
Cuestin 6: Respuesta a comando 03 con MIL encendido:

Cuestin 7: Respuesta al comando 04:

Cuestin 8: Qu ha ocurrido con el led?

Cuestin 9: Respuesta al comando 03 con MIL apagado:

Cuestin 10: El modo 04 ha reparado la avera?

Cuestin 11: Describir los cambios realizados para leer la temperatura en lugar de la
velocidad.

Cuestin 12: Provocar un error y leer los cdigos recibidos y su interpretacin:

También podría gustarte