Aplicación distribuida para la monitorización y diagnosis de ...

136

Click here to load reader

Transcript of Aplicación distribuida para la monitorización y diagnosis de ...

Page 1: Aplicación distribuida para la monitorización y diagnosis de ...
Page 2: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Índice

1. Resumen .................................................................................................................................. 1

2. Abstract .................................................................................................................................... 3

3. Introducción ............................................................................................................................. 5

4. Diagnosis de automóviles ........................................................................................................ 7

4.1. Introducción ..................................................................................................................... 7

4.2. Diagnosis electrónica ....................................................................................................... 8

4.3. Estado del arte ................................................................................................................ 14

5. Estándares para la diagnosis del motor en automóviles ........................................................ 17

5.1. Historia ........................................................................................................................... 17

5.2. Redes y protocolos de comunicación ............................................................................. 24

5.3. Parámetros almacenados ................................................................................................ 29

5.4. Memoria de averías ........................................................................................................ 30

6. El microcontrolador ELM327 ............................................................................................... 33

6.1. Introducción ................................................................................................................... 33

6.2. Comandos ....................................................................................................................... 36

7. Diseño del software ............................................................................................................... 47

7.1. Introducción ................................................................................................................... 47

7.2. Diseño gráfico ................................................................................................................ 47

7.3. Distribución de la aplicación .......................................................................................... 50

7.4. Modelado UML .............................................................................................................. 50

7.4.1. Diagrama de casos de uso ....................................................................................... 50

7.4.2. Diagrama de despliegue .......................................................................................... 51

7.4.3. Diagramas de clases ................................................................................................ 51

7.4.4. Diagrama de secuencia ........................................................................................... 56

Page 3: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

8. Desarrollo y pruebas .............................................................................................................. 57

9. Conclusiones .......................................................................................................................... 67

10. Referencias ............................................................................................................................ 69

11. Biografía ................................................................................................................................ 71

12. Listado de acrónimos ............................................................................................................. 73

13. Anexo ..................................................................................................................................... 75

13.1. Listado de comandos AT para ELM327 ..................................................................... 75

13.2. Tabla de PIDs del modo 01 ........................................................................................ 77

13.3. Listado de códigos de error (DTCs) ........................................................................... 85

13.4. Ejemplo de uso de la librería RXTXcomm .............................................................. 131

Page 4: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 1 | Resumen

1. Resumen

En este proyecto se va desarrollar una aplicación distribuida para la diagnosis y monitorización de automóviles. Se pretende poder realizar estas funciones en prácticamente cualquier automóvil del mercado (con fabricación a partir del año 1996 para el caso de automóviles gasolina y para el año 2000 en el caso de automóviles diésel) de manera remota, aprovechando la conectividad a Internet que actualmente brindan la mayoría de los smartphones.

La viabilidad del proyecto reside en la existencia de estándares para la diagnosis de la electrónica del motor. Para poder llevar a cabo esta tarea, se empleará una interfaz de diagnóstico ELM327 bluetooth, que servirá de enlace entre el vehículo y el teléfono móvil del usuario y que a su vez se encargara de enviar los datos que reciba del vehículo a un terminal remoto. De esta manera, se tendrá la aplicación dividida en dos partes: por un lado la aplicación que se ejecuta en el terminal móvil del usuario que actuará como parte servidora, y por el otro la aplicación cliente que se ejecutará en un terminal remoto. También estará disponible una versión de la aplicación servidora para PC.

El potencial del proyecto reside en la capacidad de visualización en tiempo real de los parámetros más importantes del motor del vehículo y en la detección de averías gracias a la funcionalidad de lectura de la memoria de averías residente en el vehículo. Así mismo, otras funcionalidades podrían ser implementadas en posteriores versiones de la aplicación, como podría ser el registro de dichos parámetros en una base de datos para su posterior procesado estadístico; de este modo se podría saber el consumo medio, la velocidad media, velocidad máxima alcanzada, tiempo de uso, kilometraje diario o mensual…y un sin fin de posibilidades.

Figura 1. Estructura del sistema.

Page 5: Aplicación distribuida para la monitorización y diagnosis de ...
Page 6: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 3 | Abstract

2. Abstract

In this project a distributed application for car monitor and diagnostic is going to be developed. The idea is to be able to connect remotely to almost any car (with production starting in 1996 in the case of petrol engines and production starting in 2000 in case of diesel engines) using the Internet connection available in almost every smartphone.

The project is viable because of the existence of standards for engine electronic unit connection. In order to do that, an ELM327 bluetooth interface is going to be used. This interface works as a link between the car and the smartphone, and it is the smartphone which sends the received data from the car to a remote terminal (computer). Thus, the application is divided into two parts: the server which is running on smartphone and the client which is running on a remote terminal. Also there is available a server application for PC.

The potential of the project lies in the real-time display data capacity of the most important engine parameters and in the diagnostic capacity based on reading fault memory. In addition, other features could be implemented in later versions of the application, as the capacity of record data for future statistic analysis. By doing this, it is possible to know the average fuel consumption, average speed, maximum speed, time of use, daily or monthly mileage…and an endless number of possibilities.

You can find the structure of the system on figure 1.

Page 7: Aplicación distribuida para la monitorización y diagnosis de ...
Page 8: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 5 | Introducción

3. Introducción

Como se ha comentado en el apartado anterior, se pretende realizar el diagnóstico remoto de un vehículo mediante el desarrollo de una aplicación distribuida. Para ello, se utilizará Java como lenguaje de programación, por su versatilidad y compatibilidad multiplataforma, lo que permitirá además poder trabajar con stmartphones corriendo el sistema operativo Android. Por tanto, en este proyecto el desarrollo es puramente software, aprovechando equipos hardware que se encuentran en el mercado. En concreto, intervienen tres componentes hardware: la interfaz de diagnóstico ELM327 bluetooth, un smartphone y un terminal remoto (ordenador).

Esta interfaz se basa en un microcontrolador desarrollado por ELM Electronics, que a su vez se ayuda de otros componentes electrónicos que, unidos bajo la misma PCB (Printed Circuit Board), permiten la conexión con el vehículo a través de la toma de diagnóstico OBD-II (On-board diagnostic II) de 16 pines. Este microcontrolador responde a comandos serie (comandos AT) que recibe por bluetooth y se encarga de generar las tramas de datos en las que incluye las peticiones al vehículo, siguiendo los diferentes estándares que existen para este tipo de comunicaciones.

Tras esta breve introducción, se pasarán a explicar conceptos sobre la diagnosis de vehículos que den sentido y valor a la finalidad del mismo, junto con un estudio del estado del arte.

Acto seguido, ya introducidos los conceptos básicos, se tratarán los diferentes estándares existentes para la diagnosis de vehículos, es decir, se hablará de los protocolos de comunicación disponibles, las redes que los soportan y de los datos que se pueden obtener del vehículo mediante el uso de estos protocolos basados en un sistema de consulta/respuesta. Estos datos son básicamente parámetros del motor del vehículo y códigos de avería.

Pero no todas las peticiones que se harán al vehículo serán de lectura de información, también se implementará la funcionalidad de borrado de la memoria de averías, para eliminar del registro de una avería subsanada o una avería esporádica.

Una vez entendido el sistema de diagnosis que incorporan los vehículos, se hablará del microcontrolador ELM327, que juega un papel esencial en el sistema actuando como interfaz entre los dispositivos habituales y el vehículo.

A continuación se explicará el diseño software que se ha seguido, entrando en detalle en la implementación que permitirá hacer posible todo lo explicado anteriormente usando los

Page 9: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 6 | Introducción

componentes hardware citados. Se presentará un diseño basado en UML (Unified Modeling Language) que permita entender el funcionamiento de la aplicación en detalle mediante diagramas de clases o de secuencia. Así mismo, se hablará de la parte gráfica de la aplicación y de su distribución.

Tras explicar el diseño software, serán presentadas las pruebas realizadas de manera simultánea al desarrollo del proyecto y las pruebas finales, así como las conclusiones a las que se ha llegado tras el desarrollo del mismo.

Por último, se incluye un apartado biográfico para aquellos lectores que quieran aclarar o ampliar algún concepto de los tratados en este proyecto.

Page 10: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 7 | Diagnosis de automóviles

4. Diagnosis de automóviles

4.1. Introducción

La diagnosis de automóviles es un gran desconocido para la mayoría de los usuarios, quien normalmente únicamente tiene el conocimiento de que el taller “conecta un ordenador al coche” cuando éste presenta algún aviso luminoso en el cuadro de instrumentos. Lo cierto es que en términos generales no andan muy desencaminados, sin embargo con consideraciones así se estaría navegando en la superficie de algo que en realidad es muy profundo.

Actualmente las crecientes demandas de seguridad, eficiencia y fiabilidad han llevado a una alta complejidad técnica en los automóviles del mercado. Hasta los años 70 el mantenimiento de estos vehículos era comúnmente realizado por su propietario o en talleres pequeños, siguiendo un método de comprobación rudimentario basado en probar si algo funciona poniéndolo en marcha.

El método era eficaz y suficiente hasta la época por la simplicidad de los sistemas, en los que la electrónica no estaba apenas presente. Fue en esta fecha cuando surgió la preocupación por disminuir la contaminación y aumentar el rendimiento y potencia de los motores, a lo que progresivamente se iría uniendo después la preocupación por la seguridad del conductor como consecuencia de este aumento.

Esta evolución ha desembocado en la situación actual, donde sofisticados sistemas electrónicos tienen presencia en el automóvil y es necesario disponer de equipos y profesionales especializados para llevar a cabo las tareas de mantenimiento y reparación.

Las tecnologías asociadas a la diagnosis han ido evolucionando de manera paralela a las tecnologías del automóvil. En este sentido, la diagnosis ha ido pasando por diversas etapas, partiendo de una etapa inicial en la que, como ya se ha comentado, las comprobaciones se limitaban a los sistemas más críticos y se hacían de forma rutinaria, y donde los materiales eran limitados y por tanto el factor humano era fundamental, hasta la etapa actual, donde la diagnosis del vehículo es integral, es decir: comprende todos los sistemas del mismo.

Esta diagnosis integral, es definida en más detalle como la verificación y evaluación del funcionamiento del conjunto de sistemas del vehículo basadas en pruebas objetivas con la amplitud y precisión máximas que permiten las tecnologías de ensayo y verificación actuales, atendiendo a las restricciones que imponen el coste, el tiempo máximo dedicado al conjunto de las pruebas y la mínima intrusión en los elementos mecánicos del vehículo [1].

Page 11: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 8 | Diagnosis de automóviles

Figura 2. Ejemplo de diagnosis del automóvil realizada en los primeros años (1940-70).

Con la diagnosis integral se pretende comprobar el estado del vehículo respecto a sus condiciones originales, con vistas a detectar cualquier problema que pudiera existir o haber existido. De esta forma, no sólo se facilita el mantenimiento preventivo si no que se lleva a cabo un registro de los problemas que ha tenido o tiene el vehículo, lo cual puede ayudar a mejorar para futuros diseños.

4.2. Diagnosis electrónica

La finalidad de este documento es tratar la diagnosis electrónica, es decir, aquella parte de la diagnosis integral que se lleva a cabo de forma electrónica, gracias a la electrónica tanto de los vehículos como de las herramientas de diagnóstico.

Antes de adentrarse en profundidad en la diagnosis electrónica, se considera conveniente explicar los sistemas electrónicos del vehículo. Estos sistemas se podrían dividir en tres componentes hardware: sensores, actuadores y unidades de control (ECUs - Electronic Control Units).

Page 12: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 9 | Diagnosis de automóviles

Los sistemas electrónicos incorporados en el vehículo están continuamente recogiendo datos mediante sensores, y serán las unidades de control las que procesen esa información recibida de los sensores en base a parámetros prefijados para la posterior toma de decisiones. Por tanto, estamos hablando en todo momento de sistemas programados, y es importante señalar que estos sistemas son cruciales puesto que deben tomar decisiones críticas cuestión de milisegundos, estando en juego no sólo la integridad del vehículo sino también la del propio conductor.

Figura 3. Aspecto físico de una ECU de gestión de motor.

Estas unidades de control son centralitas electrónicas independientes, se encargan de controlar los distintos subsistemas y están interconectadas entre sí y conectadas a su vez con los actuadores correspondientes a cada una de ellas (del subsistema que gobiernan). Estos subsistemas pueden ser: sistema de frenado airbag, iluminación, motor/inyección…

En el caso de detectarse cualquier anomalía, las unidades de control toman las decisiones pertinentes, que pueden ir desde la desconexión de un actuador, sensor o sistema completo, hasta el registro de la propia avería en el registro de averías.

Page 13: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 10 | Diagnosis de automóviles

Figura 4. Esquema de unidades de control que pueden encontrarse en un coche actual.

En el caso de avería en el motor, lo más común es que se active el testigo de avería de motor o MIL (Malfunction Indicator Lamp). Este indicador, que también puede ser llamado check engine light, incluye tres tipos de presentación:

• Destellos ocasionales: cuando el defecto de funcionamiento es momentáneo. Si el defecto es de naturaleza más grave (afectando al producto de emisiones de gases o a la seguridad del vehículo) el parpadeo es más continuo.

• Destellos constantes: es indicativo de que existe un problema que puede causar un daño serio al motor si éste no es parado inmediatamente. En este caso se detiene el registro de las lecturas de los sensores (denominado freeze frame) y

Page 14: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 11 | Diagnosis de automóviles

se almacenan las últimas lecturas en la memoria del ordenador central del vehículo (MCU- Main Control Unit)1.

• Destello fijo: ocurre cuando se presentan problemas muy graves, y permanece activo mientras el vehículo esté funcionando y no se subsane el problema, siendo necesario en algunos casos el posterior borrado de la memoría de averías.

En este proyecto se trabaja con la MCU o unidad de control de motor, ya que es la única a la que se puede acceder de forma estandarizada. En la figura 5 pueden verse de forma gráfica algunos conceptos tratados hasta ahora en este capítulo de introducción:

Figura 5. Elementos del automóvil que intervienen en la diagnosis.

En esta imagen se puede observar un término que aún no se había mencionado: DLC (Data Link Connector). Éste es el conector de diagnóstico mediante el cual es posible conectar el

1 Dependiendo de la bibliografía es común encontrarse con que la ‘MCU’ es nombrada ‘ECU de control de motor’ o simplemente ‘ECU’.

Page 15: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 12 | Diagnosis de automóviles

coche a un equipo de diagnosis externo. Actualmente se trata de un conector de 16 pines denominado de manera estandarizada J1962 o conector OBD-II.

Figura 6. Estructura del conector de diagnosis OBD-II.

Por tanto, los sistemas de diagnosis electrónica incorporan tanto elementos hardware (tarjetas electrónicas o ECUs y buses de comunicación) como de software (algoritmos de supervisión e interpretación de las múltiples señales implicadas).

Estos sistemas se pueden clasificar en dos grandes categorías:

• On-board Diagnosis Systems (Sistemas de a bordo o internos).

• Off-board Diagnosis Systems (Sistemas externos).

Ambas no son excluyentes sino que se complementan. Para el primer caso no es necesario disponer de ninguna herramienta, el propio coche alerta en el cuadro de instrumentos de la presencia de un error; mientras que en el segundo caso la diagnosis se realiza empleando una

Page 16: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 13 | Diagnosis de automóviles

herramienta de diagnosis externa. Es en éste último caso cuando es posible obtener con precisión el error registrado, ya que en el caso de On-board Diagnosis se utiliza un mismo testigo de aviso (MIL) para numerosos códigos de error, sin proporcionar más información acerca del código detectado. La On-board Diagnosis también se utiliza para mostrar avisos de anomalías básicas, como podría ser ‘nivel de carburante bajo’ o ‘puerta abierta’.

Este proyecto se centra en los Off-board Diagnosis Systems. En la figura 7 y en la figura 8 pueden verse ambos sistemas.

Figura 7. Ejemplo de On-board Diagnosis en un coche VW Golf de 2002.

Figura 8. Ejemplo de Off-board Diagnosis de BOSCH.

Page 17: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 14 | Diagnosis de automóviles

4.3. Estado del arte

En la actualidad existen muchas herramientas de diagnosis (refiriéndose a Off-board Diagnosis) que se conectan al vehículo mediante el DLC. En algunos casos se componen de una interfaz de conexión con el vehículo que se apoya en un software para ordenador o smartphone, y otros incorporan una consola en la propia interfaz de conexión. En la figura 9 se muestra un ejemplo de herramienta con consola incorporada:

Figura 9. Ejemplo de máquina de diagnosis con consola incorporada.

Mientras que, como ya se ha comentado, el otro tipo de herramientas necesitan apoyarse en otros elementos como un PC o smartphone para compensar la ausencia de consola integrada, presentando la siguiente estructura representada en la figura 10.

Figura 10. Estructura de una máquina de diagnosis sin consola incorporada.

Page 18: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 15 | Diagnosis de automóviles

Este proyecto comprende este último caso, con la salvedad de que para la conexión serie en el PC se utiliza la tecnología bluetooth, y éste puede ser sustituido por un smartphone.

Figura 11. Ejemplo de máquina de diagnosis sin consola incorporada.

Sin embargo, la mayoría de estas herramientas de Off-board Diagnosis actúan en modo local, el concepto de diagnosis remota (relacionado con la tercera generación de diagnosis de a bordo (OBD-III) que se explica en el apartado 5.1) no está tan extendido. El único ejemplo que se ha encontrado es el de la compañía LAUNCH, que está desarrollando un sistema de diagnosis remota llamado golo. La descripción del producto, extraída de su web [2], es la siguiente:

“Es un dispositivo y una plataforma desarrollada por LAUNCH para construir una red social entre usuarios, mecánicos y talleres. Con la red golo obtendremos información y datos del vehículo, ofreciendo al usuario la posibilidad de hacer un chequeo básico de su coche, una diagnosis remota en tiempo real por el taller, o enviar una alarma por avería. La aplicación golo también ofrece un servicio de mensajería instantánea, red social y servicios de ubicación para crear una plataforma global para el mantenimiento y control del vehículo. Con golo estaremos vinculados a nuestro taller de confianza haciendo que cualquier problema que suceda en nuestro vehículo se informe de inmediato a nuestro taller.”

Page 19: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 16 | Diagnosis de automóviles

Por tanto la finalidad de golo es la diagnosis remota del vehículo por parte del taller mecánico que corresponda, aparte de constituir una red social. La finalidad es similar a la de este proyecto, pero aquí no se pretende crear una red social y aunque el alcance del proyecto no lo permita, la idea es avanzar en otro camino, creando una herramienta estadística o posible caja negra. Además, podría crearse una herramienta que no necesite un teléfono móvil, sino que incorporase un módulo GPRS (con una tarjeta SIM) que envíe directamente los datos a través de internet. Esto podría ser realizable incluso añadiendo un simple Arduino al ELM327, por lo que resultaría viable en un entorno no industrial como en el que se ha desarrollado este proyecto.

Page 20: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 17 | Estándares para la diagnosis del motor en automóviles

5. Estándares para la diagnosis del motor en automóviles

5.1. Historia

Hasta los años 80 la diagnosis de los automóviles se realizaba casi exclusivamente en los talleres mecánicos (diagnosis visual), y dada la escasa incorporación de sistemas electrónicos en los vehículos, la diagnosis electrónica de sentido. Por aquellas fechas no estaba estandarizada la y tampoco los fabricantes estaban obligados a incorporar sistemas electrónicos para realizarla. La misión del sistema de diagnosis era informar al conductor de algunas anomalías, tales como el estado del motor (temperatura, nivel de aceite) y nivel de combustible, pero nada al respecto del estado sobre los diferentes elementos que incorporaban los vehículos [3].

La diagnosis electrónica se puede decir que nace a inicios de los años 80 (si bien las investigaciones habían comenzado en los años 70), cuando los fabricantes de automóviles empiezan a incorporar dispositivos electrónicos para realizar las funciones de control del motor. La razón fundamental que forzó esta incorporación de dispositivos electrónicos fue la de tener que cumplir con los requerimientos de la Agencia de Protección del Medioambiente (EPA- Environmental Protection Agency) de los Estados Unidos. Para cumplir con el estándar, los fabricantes de automóviles incorporaron motores de inyección electrónica, y con ellos se fueron integrando diferentes sensores para medir el comportamiento de los motores y ajustar en lo posible su funcionamiento con el fin de lograr la mínima polución [3].

A mediados de 1980 organismos reguladores como la Sociedad de Ingenieros de Automóviles (SAE-Society Automobile Engineering) de USA empezaron a considerar que la diagnosis debía contribuir a la reducción de las emisiones de gases producidas por ciertos fallos causados en los automóviles. Por esta razón, decidieron definir estándares que los fabricantes de los automóviles debían tener en cuenta para llevar a cabo la diagnosis a través de la lectura de una memoria de averías, y además poder comprobar el estado de funcionamiento de las unidades de control (ECUs).

A continuación se detallan las diferentes generaciones estandarizadas relativas a la diagnosis del automóvil, conocidas como OBD (On Board Diagnostic), que nacen en USA y se extienden a Europa y Asia con denominaciones similares. En definitiva, son normas aceptadas e implantadas (algunas en fase de desarrollo) por los diversos fabricantes de automóviles con proyección internacional.

Page 21: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 18 | Estándares para la diagnosis del motor en automóviles

La primera generación de diagnosis de a bordo (OBD-I) data de los comienzos del año 1987, cuando todas las nuevas producciones de vehículos vendidos en California (USA) estaban obligados a incorporar equipos electrónicos que dieran respuesta a las demandas realizadas por las organizaciones americanas EPA y SAE. El objetivo subyacente de dicha diagnosis era minimizar la contaminación atmosférica producida por el parque automovilístico, si bien otros objetivos de gran importancia fueron considerados en la diagnosis, como por ejemplo el de poder notificar a los conductores el estado de su vehículo [3].

Con estos precedentes, en 1988 CARB (California Air Resources Board) definió los requisitos de la primera generación de diagnosis de a bordo (OBD-I).De forma resumida estos requisitos eran:

• Incorporar indicadores luminosos de fallos (MIL) para informar al conductor de la existencia de algún tipo de fallo en el vehículo.

• Disponer de un conector de diagnóstico (DLC) y de manual de interpretación de códigos de fallos (DTC-Data Trouble Code), leídos de la memoria de a bordo del vehículo, para facilitar a los talleres la traducción de los códigos asociados a los componentes defectuosos.

• Monitorizar la emisión de los gases de escape y relacionar dicha emisión con los fallos de los componentes eléctricos que controlan el funcionamiento del motor. Además debía tener capacidad para almacenar en una memoria (que formaba parte del ECU) a bordo del vehículo las incidencias relacionadas con los fallos [3].

De todo lo anterior se puede concluir que la primera generación de diagnosis de a bordo (OBD-I) fue fundamentalmente concebida para ser aplicada a todos los sistemas que ante un funcionamiento defectuoso contribuían a un incremento significativo de las emisiones de gases. Dentro de este grupo de sistemas se incluían:

• Todos los sensores importantes del motor: temperatura de refrigeración del motor (ECT - Engine Coolant Temperature), temperatura interna del motor (IAT - Intake Air Temperature), posición de la mariposa (TP - Throttle Position), etc.

• El sistema de medida de nivel de combustible.

• Sistema de recirculación de los gases de escape (EGR - Exhaust Gas Recirculation) [3].

Page 22: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 19 | Estándares para la diagnosis del motor en automóviles

En la figura 12 se muestran de forma resumida los aspectos más importantes incluidos en el OBD-I:

Figura 12. Diagrama de requerimientos del estándar OBD-I.

En resumen, se puede concluir que la incorporación de la tecnología electrónica en el sector del automóvil permitió afrontar la necesidad de reducir la contaminación producida por los vehículos a motor, informar al conductor del estado de los mismos, y reducir en gran medida los tiempos para la detección de fallos [3].

Sin embargo, cada fabricante usaba el protocolo de comunicación o lenguaje que mejor le parecía y esto provocó un sin número de conectores (DLCs), protocolos de comunicación y distintas formas de diagnosticar cada marca y cada tipo de vehículo. Si bien es cierto que se producía una reducción de la contaminación, la confusión generada porque cada fabricante hiciera las cosas a su manera llevó a las entidades gubernamentales a generar normas también en este sentido. Es por eso que partir de los años 90 se desarrolla toda una propuesta que desemboca en lo que se llama diagnosis de a bordo de segunda generación u OBD-II. Entonces se establece por ley un solo conector de diagnóstico trapezoidal de 16 pines y protocolos de comunicación estandarizados [4].

OBD

-I

Incorporación del MIL

DLC +Manual de DTCs

Monitorización

Diversos sensores motor

Nivel de combustible

EGR Comprobación de circuitos abiertos y cortocircuitos

Page 23: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 20 | Estándares para la diagnosis del motor en automóviles

La segunda generación de diagnosis de a bordo (OBD-II) surge por la necesidad de mejorar las prestaciones de OBD-I, siendo los propios grupos reguladores los que impulsaron nuevas mejoras, dando así lugar a la segunda generación de diagnosis de abordo (OBD-II) [3]. El rendimiento y efectividad se ve aumentado en gran medida, la diagnosis incorpora más elementos de sensorización y ahora el sistema no sólo avisa cuando una pieza falla sino que se realizan pruebas de rendimiento y se notifica si no se cumplen los requerimientos. Una de las características más importantes, aparte de la mejora en todos los sentidos en cuanto a rendimiento y efectividad de la diagnosis, es la estandarización del DLC (ver figura 6) y de los códigos de error (ver apartado 5.4).

El segundo nivel de diagnosis de a bordo (OBD-II) se impone de forma masiva a partir de 1996, estando los vehículos de turismo y de mercancías ligeros obligados a incorporar las nuevas funcionalidades. A modo de ejemplo, en la figura 12 se muestran algunos de los sensores y actuadores añadidos al sistema de inyección electrónico de combustible para realizar la diagnosis de a bordo (OBD-II) del mismo. Aquí la unidad de control electrónico principal recibe información de diversos sensores: flujo de aire, ángulo de cigüeñal, interruptor de arranque, sensores de velocidad, etc., y actúa enviando órdenes a los actuadores como la bobina de ignición, la válvula de control, etc. [3].

Figura 13. Indicadores MIL típicos.

Una particularidad de la segunda generación de diagnosis de a bordo (OBD-II) es el requisito de que todos los sistemas y componentes relacionados con el sistema de expulsión de gases (escape) deben ser monitorizados para detectar cualquier funcionamiento anómalo en alguno de dichos sistemas o componentes, y que pudieran dar lugar a un incremento significativo en la emisión de gases nocivos (Noxious exhaust-gas). Además, todos los componentes utilizados

Page 24: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 21 | Estándares para la diagnosis del motor en automóviles

en el control del sistema de escape y los que afectan a la diagnosis deben ser monitorizados [3].

Figura 14. Diagrama de secuencia de los elementos que intervienen en la diagnosis.

Es evidente que OBD-II es una versión mejorada de su predecesor OBD-I. Las ECUs son las encargadas de monitorizar el estado de los diferentes subsistemas que conforman el vehículo para identificar y definir los diferentes fallos; además se encargan de avisar al conductor (mediante el MIL) del posible funcionamiento anómalo de alguno de los componentes del vehículo, y proporcionar los códigos de error y datos identificativos correspondientes. Estos datos permiten determinar con precisión el componente que está fallando, permitiendo un ahorro de tiempo y coste en su subsanación. Este ahorro es muy significativo si se compara con los métodos tradicionales utilizados en la reparación del automóvil basados en “comparar y cambiar” (guess-and-replace repairs).

Es importante destacar que mientras OBD-I y OBD-II han sido desarrollados y estandarizados por las asociaciones de automóviles y de medioambiente estadounidenses, en Europa se estandarizó un sistema de diagnosis similar al estadounidense OBD-II, y conocido como

Page 25: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 22 | Estándares para la diagnosis del motor en automóviles

EOBD-I. Dicho estándar se empezó a aplicar a partir de 2001, y en consecuencia todos los automóviles fabricados en Europa a partir del 1 de enero de 2001 incorporan un sistema de diagnosis de a bordo para monitorizar las emisiones de gases del motor [3].

La tercera generación de diagnosis de a bordo (OBD-III) es conocida como la diagnosis del futuro. El importante avance que están experimentando las Tecnologías de la Información y de las Comunicaciones (TICs) hace que ya se esté caminando hacia un nuevo concepto de diagnosis, en el que los fallos del vehículo son enviados (vía radio terrestre o vía satélite) a un Centro de Soporte Remoto (CSR) que los analiza. El centro se encarga de notificar al cliente las acciones a tomar para solucionar el problema (taller al que se debe dirigirse, etc.).Así mismo, el CSR envía al taller la información necesaria para llevar a cabo la reparación y las pruebas a posteriori (una vez subsanada la avería). También existe una conexión con la Central de Datos donde se almacenan todos los históricos en una base de datos.

Todo esto justifica que OBD-III se empiece a conocer como diagnosis remota. Es evidente que la característica más significativa de OBD-III es la capacidad de comunicación del vehículo con el mundo exterior (tanto a corta como a larga distancia). En este sentido se están proponiendo diferentes alternativas tecnológicas y estrategias que permitan leer los datos almacenados por OBD-II y enviarlos a Centros de Atención al Cliente, Centros de Datos, Servicios Móviles de Mantenimiento, etc. [3].

Desde el punto de vista de las comunicaciones, algunas de las propuestas que se están realizando son:

• Lectores en los bordes de carreteras (Roadside readers): Este tipo de tecnología fue probada por la CARB en 1994. Permite leer hasta ocho carriles de tráfico y con velocidades de los vehículos de hasta 160 km/h. Las unidades lectoras a ubicar en los bordes de las carreteras pueden ser fijas o móviles. Cuando la unidad lectora detecta un fallo en un vehículo, tiene la capacidad de enviar el Número de Identificación de Vehículo (VIN - Vehicle Identification Number) más los códigos de los fallos (DTCs) al “centro de procesamiento”.

• Estaciones de redes locales o satélites (Local Networks or Satellite Stations): Esta tecnología todavía no ha sido probada por la CARB, pero podría permitir la localización y servicio de monitorización de vehículos. El sistema está basado en los satélites utilizados para la comunicación en telefonía móvil o para el posicionamiento global de sistemas terrestres dotados del correspondiente receptor. El vehículo recibiría una petición vía radio del centro de supervisión, y aquél enviaría su localización

Page 26: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 23 | Estándares para la diagnosis del motor en automóviles

(obtenida vía GPS, por ejemplo), la fecha, la hora, los datos de VIN y de OBD-III. El centro de supervisión se encargaría de recibir la información de fallos (DTC) y analizarlos para enviar posibles pruebas adicionales o recomendaciones de reparación a los talleres, reduciendo así el tiempo de respuesta ante fallos [3].

Otros aspectos a tener presentes y que están ligados al concepto de OBD-III, son los relacionados con los estándares y normas. Así, por ejemplo, todas las tecnologías implicadas, incluida la citada relativa a los lectores ubicados en los laterales de las carreteras, requerirán de una licencia de la Comisión Federal de Comunicaciones (FCC), ya que la posibilidad de interferencias con otras señales en la misma banda es considerable. En definitiva, los aspectos relacionados con los operadores comerciales, el cumplimiento de la ley, la jurisdicción entre las agencias de estado, los sistemas de autopista de vehículos inteligentes, etc., se deberán resolver antes de que OBD-III sea una realidad [3].

Figura 15. Etapas significativas en la evolución de la diagnosis estandarizada [3].

Page 27: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 24 | Estándares para la diagnosis del motor en automóviles

En Europa se ha desarrollado, en paralelo a las versiones OBD-II y OBD-III americanas, los estándares EOBD y EOBD-II conocidos como la primera y segunda generación del sistema europeo de diagnosis “Enhanced On-board Diagnostics” respectivamente. Se trata de normalizar las prestaciones que los fabricantes deben ofrecer para el acceso a los parámetros de diagnosis e información técnica adicional de un automóvil. En definitiva, tanto el EOBD como el todavía en desarrollo EOBD-II, son adaptaciones de las generaciones de diagnosis americanas, al contexto de la industria europea [3].

5.2. Redes y protocolos de comunicación

Como se ha visto en apartados anteriores, existe un fuerte incremento de presencia de la electrónica en la industria del automóvil. Este incremento trae consigo un mayor grado de exigencia para las instalaciones eléctricas, que deben soportar cada vez más elementos conectados a ellas y que pretenden interconectarse entre sí. Esto se traduce en un incremento de tamaño y complejidad, lo cual afecta negativamente al coste de producción, a la habitabilidad, a la fiabilidad y a la búsqueda de averías. La solución ante el problema reside en la reducción del volumen del cableado, empleando lo que se conoce como multiplexado.

El multiplexado consiste en intercambiar informaciones entre varios equipamientos sobre un único canal de transmisión. Se trata de colocar en red los diferentes calculadores o centralitas electrónicas que incorpora el vehículo, como si de una red informática se tratase. Este canal único recibe el nombre de bus y por él se intercambian datos y señales de control.

Además de las ventajas que se deducen de los inconvenientes de no contar con el multiplexado, se producen otras como las siguientes:

• Evitar la instalación múltiple de sensores. Los valores medidos por algunos sensores pueden ser compartidos por varias unidades.

• Un enriquecimiento de funciones debido a la posibilidad de comunicación entre las unidades de mando de distintos equipamientos y una mayor coordinación y sincronización.

• Facilidad de diagnosis mediante el conexionado al bus de un instrumento de diagnosis que funcione con la lógica adecuada.

Para comunicarse entre sí las diferentes unidades de mando y que éstas puedan intercambiarse esos datos y señales de control, hace falta definir tres elementos básicos:

Page 28: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 25 | Estándares para la diagnosis del motor en automóviles

• El soporte por el que circula la información, cualquiera que sea su naturaleza (cables eléctricos, fibra óptica, onda, etc.), se llama bus de información.

• La magnitud física que soporta la información (tensión, intensidad de corriente, ondas luminosas, ondas de radio, etc.).

• Las reglas y el formato de transmisión de datos entre los elementos de una red (codificación, velocidad de transmisión, analógica o digital, etc.), denominado protocolo de comunicación.

Figura 16. Comparación de red multiplexada con red no multiplexada.

Sin la presencia del protocolo adecuado las centralitas electrónicas no podrían comunicarse correctamente. En este proyecto la interfaz que se usa para comunicarse con el vehículo aísla completamente del protocolo implementado por el fabricante, por lo que simplemente se hablará, sin entrar profundidad, de los tres protocolos más importantes actualmente.

Page 29: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 26 | Estándares para la diagnosis del motor en automóviles

Figura 17. Necesidad de protocolo de comunicación entre unidades de control.

Distintos fabricantes de automóviles desarrollaron sus propios protocolos, aunque lamentablemente incompatibles entre sí. De los varios protocolos existentes, tres destacan en su aplicación en el mundo del automóvil:

1. Protocolo CAN (Controller Area Network). Fue desarrollado por Robert Bosch y se perfila hoy en día como líder mundial en sistemas multiplexados, siendo de gran aceptación por parte de fabricantes. En cuanto a sus características, destacamos:

• Simplicidad de concepción.

• Alta velocidad, hasta 1Mbits/s.

• Bajo coste de conexión por estación.

• Amplio soporte de componentes electrónicos.

• Eficacia y seguridad en su funcionamiento.

2. Protocolo VAN (Vehicle Area Network). Fue desarrollado principalmente por dos constructores franceses (el grupo PSA y Renault) e impulsado por el Gobierno francés. Actualmente se encuentra en desuso por parte de estos fabricantes, que lo han sustituido por el protocolo CAN. El protocolo VAN presenta las siguientes características:

• Presenta buenas prestaciones, es simple y económico.

• Su velocidad de trasmisión es de 250 Kbit/s.

• Es el protocolo más eficiente.

Page 30: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 27 | Estándares para la diagnosis del motor en automóviles

3. Protocolo SAE J1850. Desarrollado en EE.UU, es utilizado por fabricantes como Ford, Chrysler o General Motors. Entre sus características destaca:

• Su velocidad de trasmisión es de 41,6 Kbit/s.

• Es apto sólo para aplicaciones de velocidad baja y media.

• Es la tecnología más económica, gracias al soporte aportado por GM y Ford, así como de importantes suministradores de componentes (Intel, Motorola, Texas...) determinando su rápida expansión y abaratamiento.

Es importante señalar que en los EE.UU se hizo obligatorio en el año 2008 (para los vehículos fabricados o importados) el uso de un protocolo de comunicación universal para todos los vehículos, por lo menos en lo que a diagnóstico de motor se refiere. Se trata del antes mencionado protocolo CAN.

Figura 18. Ejemplo de red multiplexada.

Para entender la necesidad de comunicación entre los elementos electrónicos que incorpora el vehículo, se muestra a continuación el desarrollo de la comunicación en caso de colisión:

Page 31: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 28 | Estándares para la diagnosis del motor en automóviles

1. La unidad de airbag hace saltar los airbags e informa a la unidad de motor.

2. La unidad de motor desactiva la bomba de combustible e informa a la unidad de red de abordo.

3. La unidad de red de abordo procede a encender las luces de intermitencia y las luces de habitáculo e informa a la unidad central de confort.

4. La unidad central de confort transmite a las unidades de puertas la orden de desbloqueo de puertas.

Figura 19. Desarrollo de la comunicación en caso de colisión.

Sin embargo, a veces el protocolo utilizado para la comunicación entre las unidades electrónicas del vehículo (red de comunicación interna) no es el mismo que el utilizado para la conexión con una herramienta de diagnosis externa. Para la diagnosis, los protocolos más comunes son:

• ISO 9141-2. De forma resumida, se puede decir que es el estándar impuesto por los organismos europeos para satisfacer los requisitos del OBD-II. Con ello CARB aceptó el ISO 141-2 para el OBD-II como requisito fundamental en los vehículos fabricados en Europa y Asia.

Page 32: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 29 | Estándares para la diagnosis del motor en automóviles

• ISO/DIS14230-4 (Keyword Protocol 2000 o KWP2000). Se trata de una versión nueva del protocolo ISO 9141. Es utilizado por fabricantes de todos los continentes, con mayor presencia en Asia y Europa.

• SAE J1850, que presenta dos variantes: VPW Variable (Variable Pulse Width) y PWM (Pulse Width Modulatión).

• CAN. Es el menos implementado en la actualidad pero sin duda se trata de la tendencia futura.

5.3. Parámetros almacenados

La MCU del vehículo registra numerosos parámetros, así como una memoria de averías. La función que implementa el software desarrollado en este proyecto es la lectura en tiempo real de dichos parámetros, así como las funciones de lectura y borrado de la memoria de averías.

Los estándares requieren que cada comando OBD que se envía al vehículo cumpla con un formato establecido. El primer byte enviado (conocido como mode) describe el tipo de dato que se solicita con el comando, mientras que el segundo byte (y posiblemente, un tercero o más) especifica la información que realmente se solicita. Los bytes que siguen después del byte mode son conocidos como parameter identification o bytes numéricos PID. Estos modes y PIDs están descritos en detalle en estándares como el SAE J1979 o el ISO 15031-5 y también pueden ser definidos por los fabricantes de vehículos.

El estándar SAE J1979 define actualmente 10 posibles modos de comprobación (modes o test modes), que son:

01 - show current data.

02 - show freeze frame data.

03 - show diagnostic trouble codes.

04 - clear trouble codes and stored values.

05 - test results, oxygen sensors.

06 - test results, non-continuously monitored.

07 - show ‘pending’ trouble codes.

Page 33: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 30 | Estándares para la diagnosis del motor en automóviles

08 - special control mode.

09 - request vehicle information.

0A - request permanent trouble codes.

No es obligatorio que los vehículos soporten todos los modos, y dentro de ellos, no es obligatorio tampoco soportar todos los posibles PIDs (los primeros vehículos equipados con OBDII soportaban muy pocos). Dentro de cada modo, el PID 00 está reservado para mostrar que PIDs están disponibles en dicho modo y es obligatorio para todos los vehículos. En este proyecto solamente se van a utilizar los modos 01, 03 y 04, que son los más comunes y útiles. Se puede encontrar un listado con todos los PIDs del modo 01 en el apartado 13.2.

5.4. Memoria de averías

Como ya se ha comentado, la MCU posee una memoria de averías. En ella se registran las averías indicando como mínimo el código de error que las identifica, y dependiendo del fabricante, otros datos adicionales como parámetros del vehículo en el momento en el que se produjo el error (esto se conoce como freeze frame) o si se trata de una avería esporádica o permanente. Esta memoria puede ser leída y borrada con los modos 03 y 04 respectivamente, y se recomienda implementar en el software de diagnosis una confirmación antes del borrado, puesto que se trata de un proceso irreversible.

Las averías están identificadas por un código de error estandarizado. El estándar SAE J2012 de 1996 define un código de cinco dígitos en el cual cada dígito representa un valor predeterminado. Todos los códigos son presentados de igual forma para facilitar su interpretación. Algunos de estos son definidos por este estándar y otros son reservados para uso de los fabricantes.

El código tiene el siguiente formato: YYXXX (ej: P0308), donde YY, los dos primeros dígitos, representan la función del vehículo y la organización responsable de definir el código, de acuerdo a la siguiente tabla:

Page 34: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 31 | Estándares para la diagnosis del motor en automóviles

Tabla 1. Función del vehículo y organización responsable en el DTC.

Códigos del tren de potencia (motor y transmisión):

Códigos de red de abordo (incluye A/C y airbag):

P0XXX Genéricos (SAE) B0XXX Genéricos (SAE) P1XXX Específicos fabricante B1XXX Específicos fabricante P2XXX Genéricos (SAE) B2XXX Específicos fabricante

P30XX-P33XX Específicos fabricante B3XXX Reservado para uso futuro P34XX-P39XX Genéricos (SAE)

Códigos del chasis (incluye ABS):

Códigos de comunicación en la red (cableado):

C0XXX Genéricos (SAE) U0XXX Genéricos (SAE) C1XXX Específicos fabricante U1XXX Específicos fabricante C2XXX Específicos fabricante U2XXX Específicos fabricante C3XXX Reservado para uso futuro U3XXX Reservado para uso futuro

El tercer dígito representa una función específica del vehículo:

• 0 - El sistema electrónico completo.

• 1 y 2 - Control de aire y combustible.

• 3 - Sistema de encendido.

• 4 - Control auxiliar de emisiones.

• 5 - Control de velocidad y ralentí.

• 6- Circuito de salidas de la ECU.

• 7 y 8- Transmisión.

El cuarto y quinto dígito sirven para definir con detalle el error encontrado, dentro de la clasificación anterior.

Por ejemplo, el código P0308 indica un problema en la electrónica de motor (P) definido por SAE (0) y común a cualquier vehículo, que relacionado con el sistema de encendido (3) y concretamente representa un problema en el cilindro 8 (08).

Page 35: Aplicación distribuida para la monitorización y diagnosis de ...
Page 36: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 33 | El microcontrolador ELM327

6. El microcontrolador ELM327

6.1. Introducción

Casi todos los automóviles producidos hoy en día requieren disponer, por ley, de una interfaz de conexión para un equipo de diagnosis externo. La transmisión de datos en estas interfaces sigue varios estándares, pero ninguno de ellos es directamente utilizable por PCs o smartphones. El ELM327 está diseñado para actuar como puente entre esa interfaz o puerto OBD-II y una interfaz serie RS232 estándar.

Producido por ELM Electronics, el ELM327 es un microcontrolador programado que además de ser capaz de detectar e interpretar de manera automática nueve protocolos OBD, proporciona soporte para comunicaciones de alta velocidad, un modo low power sleep y compatibilidad con el estándar J1929 para camiones y autobuses.

Además, es completamente configurable, en caso de que se desee modificar para ajustarse a necesidades concretas. Basado en el microcontrolador PIC18F2480 de Microchip Technology, es una de las interfaces PC-OBD más conocidas e implementadas del mercado.

En resumen, el ELM327 abstrae la programación de bajo nivel y presenta una interfaz sencilla que se puede llamar a través de una UART, típicamente por una herramienta de diagnóstico o un programa informático (como es el caso que se trata en este proyecto) mediante una conexión serie RS232.

Estas herramientas o programas pueden implementar las siguientes funciones:

• Lectura de parámetros en tiempo real.

• Lectura de la memoria de averías.

• Borrado de la memoria de averías.

El ELM327 soporta 12 protocolos diferentes (dos de ellos ajustables por el usuario):

0 - Automatic.

1 - SAE J1850 PWM (41.6 kbaud).

2 - SAE J1850 VPW (10.4 kbaud).

3 - ISO 9141-2 (5 baud init, 10.4 kbaud).

Page 37: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 34 | El microcontrolador ELM327

4 - ISO 14230-4 KWP (5 baud init, 10.4 kbaud).

5 - ISO 14230-4 KWP (fast init, 10.4 kbaud).

6 - ISO 15765-4 CAN (11 bit ID, 500 kbaud).

7 - ISO 15765-4 CAN (29 bit ID, 500 kbaud).

8 - ISO 15765-4 CAN (11 bit ID, 250 kbaud).

9 - ISO 15765-4 CAN (29 bit ID, 250 kbaud).

A - SAE J1939 CAN (29 bit ID, 250* kbaud).

B - USER1 CAN (11 bit ID, 125 kbaud).

C - USER2 CAN (11 bit ID, 50 kbaud).

Aunque no es objetivo de este proyecto profundizar en la parte hardware, en la figura 20 se muestra un diagrama de bloques de la interfaz ELM327 que puede servir al lector como ayuda a entender la estructura y funcionamiento de la misma:

Figura 20. Diagrama de bloques del ELM327.

Así mismo, en la figura 21 se muestra un ejemplo de PCB implementando el microcontrolador de ELM Electronics:

Page 38: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 35 | El microcontrolador ELM327

Figura 21. Ejemplo de PCB de ELM327 con PIC18F2480 y módulo Bluetooth (BC417+29lv800c).

El aspecto final que podría tener la interfaz se muestra en la figura 22:

Figura 22. Aspecto físico de una interfaz ELM327.

Page 39: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 36 | El microcontrolador ELM327

6.2. Comandos

La interfaz ELM327 reconoce un tipo de comandos denominados comandos AT o comandos Hayes. El conjunto de comandos Hayes es un lenguaje desarrollado por la compañía Hayes Communications que prácticamente se convirtió en estándar abierto de comandos para configurar y parametrizar módems. Los caracteres ‘AT’, que preceden a todos los comandos, significan ‘atención’, e hicieron que se conociera también a este conjunto de comandos como comandos AT. Midiendo la longitud de los bits se puede determinar en detalle la velocidad de transmisión.

Un aparato que implemente el conjunto de comandos Hayes se considera compatible Hayes. Parte del conjunto de comandos Hayes fue incluido por la ITU-T en el protocolo V.25ter, actual V.250. La adopción de este estándar hizo el desarrollo de controladores específicos para distintos módems superfluo.

Si los bytes que se envían a la interfaz ELM327 no comienzan con las letras ‘A’ y ‘T’, ésta entiende que se trata de un comando OBD dirigido al coche. Cada pareja de bytes ASCII son comprobados para asegurarse de que se trata de dígitos hexadecimales válidos, y posteriormente se convierten en data bytes para transmitirse al vehículo.

Los comandos OBD son enviados al coche encapsulados en data packets. La mayoría de los estándares requieren tres bytes de cabecera y un byte de checksum en cada mensaje OBD, y el ELM327 se encarga de añadir esos bytes extra al comando OBD. Los valores por defecto para estos bytes extra son adecuados para la mayoría de los casos pero existe la opción de ajustarlos manualmente.

Figura 23. Trama del mensaje OBD para la mayoría de los estándares.

Page 40: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 37 | El microcontrolador ELM327

Figura 24. Trama del mensaje OBD para el estándar CAN.

La mayoría de los comandos OBD no tienen una longitud mayor de uno o dos bytes, pero algunos pueden ser más largos. El ELM327 limitará el límite de bytes que pueden ser enviados al máximo permitido por los estándares (normalmente siete bytes o catorce dígitos hexadecimales). Intentar enviar más bytes ocasionará un error y el comando será ignorado, mostrando por pantalla un signo de interrogación (?) a modo de mensaje de error.

Los dígitos hexadecimales son usados para todos los intercambios de datos con el ELM327 porque es el formato de datos más usado en los estándares OBD. La mayoría de los listados de peticiones OBD usan notación hexadecimal, y este también es el formato más utilizado para mostrar los resultados de las peticiones. Para entender esta notación con fluidez se requiere de cierta práctica.

La forma más sencilla de probar la interfaz es mediante un terminal de consola, como pueden ser putty o HyperTerminal, ajustando previamente los parámetros de conexión (COM port, baud rate, number of databits and number of parity bits). Como ejemplo de petición al vehículo, suponer que se desea enviar el comando ‘A6’ (en decimal 166); habría que teclear ‘A6’ y añadir un retorno de carro (return key). Estos tres caracteres serían enviados al ELM327 mediante un puerto RS232 (en nuestro caso bluetooth, implementando un puerto serie virtual) y éste los iría almacenando tal y como se fueran recibiendo hasta recibir el tercer carácter (retorno de carro), y entonces comenzaría a evaluar los otros dos. Se daría cuenta de que ambos son dígitos hexadecimales válidos y los convertiría en un byte (con valor hexadecimal 166). Los bytes de cabecera y checksum serían añadidos ahora y el total de cinco bytes sería enviado al vehículo. Es importante señalar que el retorno de carro es sólo una señal para el ELM327 y no se envía al vehículo.

Después de enviar el comando, el ELM327 escuchará el bus OBD en busca de una respuesta dirigida a él. Si la dirección del mensaje coincide, los bytes recibidos son enviados al usuario mediante el puerto RS232, mientras que los mensajes con direcciones no coincidentes son ignorados (aunque pueden ser visualizados con el comando ‘AT BD’).

El ELM327 continuará esperando mensajes dirigidos a él hasta que no encuentre ninguno durante el tiempo (timeout) establecido mediante el comando ‘AT ST’. Es decir, mientras que

Page 41: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 38 | El microcontrolador ELM327

el ELM327 siga recibiendo mensajes, el timeout se irá reiniciando y la búsqueda seguirá en curso. Señalar que el IC (Integrated circuit) siempre responderá a las peticiones con alguna respuesta, incluso para decir ‘NO DATA’, que significa que no había ningún mensaje encontrado o sí los había pero no coincidían con el criterio de recepción.

Existen multitud de comandos AT para el ELM327, en el apartado 13.1 se muestra una lista con todos ellos. Para obtener una descripción completa de cada uno se puede recurrir al datasheet del ELM327 2.

En este proyecto se tratarán sólo los comandos necesarios para establecer una conexión con el vehículo, obviando aquellos comandos cuya finalidad sea adaptar los parámetros de la interfaz a necesidades puntuales. Después de configurar la conexión PC-ELM327 en el terminal de consola, una prueba básica podría ser el envío del comando ‘AT RV’. Este comando devuelve el valor de la tensión de alimentación que está recibiendo la interfaz (por parte del vehículo) en formato ‘XX.X(V)’, donde las ‘X’ representan el valor numérico con un decimal de precisión y los paréntesis encierran la unidad de medida; un ejemplo sería el siguiente:

Enviado:

>AT RV

Recibido:

12.6V

>

El ELM327 no discrimina mayúsculas y minúsculas, ni tampoco espacios, por lo que la petición anterior podría haber sido ‘atrv’ o ‘ATRV’, por ejemplo. Es importante señalar también que la presencia del carácter ‘>’ no es casual, en el mensaje enviado indica que hay conexión con la interfaz y ésta está lista para recibir el comando, y en el mensaje recibido marca el final del mensaje. Una imagen puede ayudar a ver mejor esta idea:

2 Apartado AT commands de [5].

Page 42: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 39 | El microcontrolador ELM327

Figura 25. Prueba de conexión desde terminal de consola (HyperTerminal).

Es trivial deducir que en este intercambio de mensajes no ha intervenido el vehículo, quien se ha limitado a brindar tensión de alimentación al ELM327. Para enviar comandos que requieran una respuesta por parte del vehículo, es necesario asegurarse de que el contacto (llave en la última posición del clausor antes del arranque) está dado, porque en caso contrario la mayoría de los vehículos no responden las peticiones, devolviendo un mensaje de error ‘SEARCHING…UNABLE TO CONNECT’ tal como se muestra en la figura 26:

Figura 26. Error al acceder a la ECU.

Page 43: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 40 | El microcontrolador ELM327

A continuación, es necesario elegir el protocolo que va a utilizar el ELM327 para conectarse con el vehículo, pero la opción más simple es seleccionar el protocolo ‘0’, que el IC interpreta como ‘búsqueda automática de protocolo’:

>AT SP 0 Ahora ya estaría todo preparado para que el ELM327 pueda comunicarse con el vehículo. El siguiente paso es enviar al vehículo una petición del listado de PIDs que soporta; para ello usamos el comando que corresponde al PID 00 del modo 01:

>01 00

La respuesta sería similar a la siguiente:

41 00 BE 1F A8 13

El (41) significa que se trata de una respuesta a una petición modo 01 (01 + 40 = 41), mientras que el (00) repite el PID solicitado en la petición. Si la petición fuera del modo 02, ésta sería respondida con un (42), del modo 03 con un (43), etc. Los siguientes cuatro bytes (BE, 1F, A8, y 13) representan la información solicitada (datos). Para entender estos datos es evidente que es necesario realizar una conversión previa. En el apartado 13.2 se muestra un listado con los PIDs del modo 01 y la conversión a realizar. Para este caso en concreto, hay que convertir la cadena que contiene la información solicitada (BE, 1F, A8, y 13) a binario, e ir analizando uno por uno los dígitos de izquierda a derecha. Un uno en el bit más significativo (el de la izquierda) significa que el PID 01 está disponible, y un cero que no lo está. De igual manera ocurriría con el segundo bit empezando por la izquierda, que representa al PID 02. En la figura 27 se puede ver un ejemplo completo:

Figura 27. Ejemplo de decodificación de lista de PIDs del modo 01.

Otro ejemplo de petición podría ser solicitar la temperatura actual del líquido refrigerante del motor. Este es el PID 05 del modo 01. La petición sería:

Page 44: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 41 | El microcontrolador ELM327

>01 05

Y un ejemplo de posible respuesta sería:

41 05 7B El (41 05) indica que se trata de una respuesta a una petición del PID 05 del modo 01, mientras que el (7B) representa la información solicitada (la temperatura). Convirtiendo el (7B) a decimal, se obtiene: 7 x 16 + 11 = 123. Esta cifra representa la temperatura actual en grados Celsius (°C), pero con un zero offset con el fin de permitir temperaturas bajo cero. Para convertir este valor en el la temperatura actual real se necesita restar cuarenta al valor obtenido. En este caso, la temperatura resulta ser, por tanto: 123-40=83°C. Como último ejemplo para el modo 01, se obtendrá el régimen actual del motor en rpm (revoluciones por minuto). Este el PID 0C del modo 01. La petición sería:

>01 0C Si el motor está en funcionamiento (arrancado), un ejemplo de posible respuesta sería:

41 0C 1A F8

El valor devuelto (1A F8) es realmente un número hexadecimal de dos bytes que debe ser convertido a decimal. Una vez convertido, se obtiene el valor 6904, que aunque es un valor dentro del rango de rpm de un vehículo, resulta ser un poco alto. Esto sucede porque para obtener el valor real es necesario previamente dividir entre cuatro dicha cifra, de modo que el resultado sería: 6904/4=1726 rpm. Esta última cifra es sin duda más razonable. Cabe decir que salvo el PID 00 del modo 01, el resto de PIDs están sujetos a disponibilidad dependiendo del vehículo, por lo que antes de llevar a cabo las peticiones mostradas en los ejemplos anteriores es necesario comprobar que efectivamente están disponibles, en caso contrario la respuesta será ‘NO DATA’. En caso de que al interfaz no responda correctamente, puede ser reiniciada mediante el comando ‘ATZ’:

Page 45: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 42 | El microcontrolador ELM327

>ATZ

Los leds de la interfaz comenzarán a parpadear, y la respuesta recibida será del estilo ‘ELM327 v1.5’, dependiendo de la versión de la interfaz. Como ya se ha visto en el apartado 5.3, el modo 03 permite la lectura de averías. Sin embargo, existe un paso previo antes de obtener el listado de códigos de error almacenados en la memoria de averías: determinar el número de errores almacenados y si el MIL está activado o no. Este paso previo se realiza mediante el modo 01, con el PID 01. Un ejemplo de respuesta a ésta petición podría ser:

41 01 81 07 ED 00

El (41 01) indica que se trata de la respuesta para la petición ‘01 01’ y el siguiente byte (81) contiene el número de errores almacenados en la memoria de averías y el estado del MIL. Este dato hay que convertirlo a binario, y el bit más significativo (el de la izquierda) nos indicará con un 1 que el MIL está activado y con un 0 que no lo está, mientras que los otros 7 bits restantes indican, previa conversión a decimal, el número de errores almacenados en la memoria de averías. Para este ejemplo tendríamos:

• En binario: 10000001

• Bit más significativo: 1 (=MIL ON)

• Resto de bits: 0000001 → En decimal: 1 (Número de códigos de error=1)

Ahora que se ha comprobado que realmente hay alguna avería almacenada en la memoria de averías, es el momento de proceder a su lectura. El modo 03 no contiene ningún PID, por lo que la petición sería:

>03

Y una posible respuesta sería:

43 26 26 00 00 00 00

El (43) indica que es una respuesta a una petición del modo 03, y el resto de bytes contienen los códigos de error. Para interpretarlos hay que leerlos en parejas, por lo que tendríamos:

• Primera pareja: 26 26

Page 46: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 43 | El microcontrolador ELM327

• Segunda pareja: 00 00

• Tercera pareja: 00 00

Antes de seguir, es importante señalar que tal como indica el estándar SAE, las parejas constituidas íntegramente por ceros no representan un código de avería, por lo que en este ejemplo sólo se debe analizar la primera pareja. El primer dígito clasifica el tipo de error, de acuerdo a la figura 28.

Figura 28. Tipos de error definidos por el primer dígito del código SAE J2012.

Una vez obtenidos los códigos de error, el siguiente paso es traducir este código de manera que represente algo entendible y de valor para el usuario, y no sólo un identificador. Para ello es necesario recurrir a un listado de códigos de avería y sus correspondientes descripciones. Para este ejemplo, la descripción sería: ‘Fallo en sensor de oxígeno, banco 1’. Se refiere a que el sensor de oxígeno (sonda lambda) situado antes del catalizador (banco 1) reporta valores fuera de rango, bien por fallo del propio sensor o bien porque la combustión no es correcta. En el apartado 13.3 se encuentra un listado completo con los códigos de avería del tren de

Page 47: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 44 | El microcontrolador ELM327

potencia (motor y transmisión) con los que trabaja la aplicación y sus correspondientes descripciones.

Una vez leída la memoria de averías se puede proceder a su borrado, sin embargo es posible que los fallos vuelvan a registrarse en el caso de no haber sido subsanado su origen, bien de manera inmediata o cuando vuelvan a darse las circunstancias que los produjeron originalmente.

Parar borrar la memoria de averías es necesario utilizar el modo 04. Este modo no contiene ningún PID, y simplemente se debe hacer la petición siguiente:

>04

La respuesta por parte del vehículo será ‘44’, y la memoria habrá sido borrada. A continuación se muestra un diagrama de secuencia que resume el proceso de lectura y borrado de la memoria de averías:

Figura 29. Secuencia de lectura y borrado de la memoria de averías.

Page 48: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 45 | El microcontrolador ELM327

Como se puede observar, en todos estos ejemplos se ha solicitado información al coche sin preocuparse en absoluto del protocolo de comunicación que éste utiliza para la diagnosis. Esto ocurre porque en ELM327 se encarga de dar formato y traducir los paquetes de datos al protocolo correspondiente. Por tanto, no es necesario realmente saber qué protocolo utiliza el vehículo, puesto que de eso se encarga el ELM327 y el resto (modes y PIDs) es igual para todos los vehículos gracias a los estándares establecidos. En este apartado se han descrito los conceptos necesarios sobre comandos para entender el funcionamiento de la aplicación desarrollada en el proyecto, en caso de necesitar más información se puede acudir a la SAE3 o a la ISO4.

3 Web oficial en [6]. 4 Web oficial en [7].

Page 49: Aplicación distribuida para la monitorización y diagnosis de ...
Page 50: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 47 | Diseño del software

7. Diseño del software

7.1. Introducción

Una vez introducidos los conceptos básicos sobre diagnosis de vehículos, así como de la interfaz ELM327, es el momento de explicar la aplicación desarrollada en este proyecto. La aplicación permite realizar las funciones típicas de un programa/herramienta de diagnosis:

• Lectura de parámetros en tiempo real.

• Lectura de la memoria de averías.

• Borrado de la memoria de averías.

A las que se le ha añadido una característica diferencial, la capacidad de realizar estas funciones de manera remota. Para ello, la aplicación se distribuye en dos partes: cliente y servidor.

7.2. Diseño gráfico

Para el diseño gráfico de la aplicación, se decidió usar la biblioteca gráfica Swing, tanto en la parte cliente como en la servidora. En la parte servidora se compone de un único frame con las opciones de conexión y desconexión y una consola de texto, además de varios cuadros de texto para introducir algunos datos necesarios para establecer la conexión; el aspecto se presenta en la figura 30:

Figura 30. Aspecto de la aplicación servidora para PC.

Page 51: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 48 | Diseño del software

En cuanto a la parte cliente, se compone de dos frames. El principal tiene un aspecto muy similar a la parte cliente, pero incorpora algunas funciones más aparte de conexión y desconexión. Una de ellas, la de “leer parámetros” abre el segundo frame, donde se muestran los valores de los parámetros del vehículo en tiempo real. El aspecto del frame principal:

Figura 31. Aspecto de la pantalla principal de la aplicación cliente.

Mientras que el segundo frame presenta el aspecto mostrado en la figura 32:

Figura 32. Aspecto de pantalla de lectura de parámetros en la aplicación cliente.

Page 52: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 49 | Diseño del software

Como se puede observar, este frame tiene dos botones titulados como ‘GO!’ y ‘Stop’. Estas funciones se encargan de activar la lectura de parámetros en tiempo real o desactivarla, respectivamente.

Además de los frames comentados, el programa se apoya en algunos diálogos. Un ejemplo de ello sería el diálogo de confirmación que se abre al seleccionar la opción de borrado de averías desde el frame principal de la aplicación cliente. Éste puede verse en la figura 33:

Figura 33. Diálogo de confirmación para el borrado de la memoría de averías.

En cuanto a la aplicación cliente para Android, presenta las mismas funcionalidades que la aplicación cliente para PC, aunque no incluye la consola de texto, que es sustituida por un cuadro de texto donde únicamente se muestra el estado de la conexión. Su aspecto:

Figura 34. Aspecto de la aplicación servidora para Android corriendo en una tablet.

Page 53: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 50 | Diseño del software

La aplicación servidora para PC está más recomendada para fines didácticos, puesto que muestra multitud de mensajes mientras que la versión para Android se limita a trabajar de manera más transparente.

7.3. Distribución de la aplicación

La aplicación se ha distribuido empleando un modelo cliente-servidor. El servidor trabaja como intermediario, es decir, simplemente actúa como proxy reenviando las peticiones que le llegan desde el cliente al vehículo y viceversa. Prácticamente, la lógica de negocio del sistema distribuido se ha concentrado en el cliente, donde se procesan las peticiones del usuario y las respuestas del servidor.

Como middleware para la interoperación entre el cliente y servidor se ha utilizado directamente la capa de sockets existente para Java, creando una clase Skeleton en la parte servidora de la aplicación y una clase Stub en la parte cliente. Ambas clases encapsulan toda la lógica de transporte (socket) y se encargan de enviar a través de un puerto TCP los mensajes en formato cadena de caracteres (String). No se ha considerado necesario el cifrado de los paquetes para esta aplicación ya que el contenido de los datos encapsulados en los mismos no es, a priori, de carácter confidencial. En la figura 41 puede verse un diagrama de secuencia para una consulta (petición/respuesta).

Es importante señalar que el uso de sockets representa una conexión directa entre máquinas, por lo que debe existir una IP pública que permita el acceso remoto en el lado servidor. En el caso de tratarse de una red doméstica sería necesario un mapeo de puertos debido a la existencia de varias IPs privadas dentro de la red, y en el caso de tratarse de una conexión móvil, es importante que el operador no use IPs públicas virtuales, puesto que éstas no permiten el acceso remoto, ni si quiera responden a un simple “ping”. Así mismo, ningún firewall debe bloquear la conexión por el puerto elegido para la aplicación.

7.4. Modelado UML

7.4.1. Diagrama de casos de uso

La principal aplicación que puede tener el sistema en la versión en la que se presenta consiste en que un técnico remoto analice el vehículo. Para este caso, el diagrama de uso sería el siguiente:

Page 54: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 51 | Diseño del software

Figura 35. Diagrama de casos de uso del sistema.

7.4.2. Diagrama de despliegue

A continuación se muestra el diagrama de despliegue del sistema:

Figura 36. Diagrama de despliegue del sistema.

7.4.3. Diagramas de clases

Para la aplicación servidora para PC, el conjunto de clases se divide en dos paquetes: el paquete control (contiene la lógica de negocio) y el paquete gui (gráficos). A continuación se muestran sus clases descritas y los correspondientes diagramas:

Page 55: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 52 | Diseño del software

Descripción de las clases del paquete control:

• Clase auxFunct: Contiene funciones axiliares para el tratamiendo de los datos que se reciben y envían al vehículo.

• Clase Skeleton: Representa el enlace con la parte cliente, actuando como simulador para recibir parámetros de la implementación de cliente. Para ello, implementa la conexión socket.

• Clase IOControler: Se trata del controlador de conexión por puerto serie, se encarga de controlar el enlace bluetooth entre el PC y la interfaz ELM327.

• Clase hiloIO: Contiene la instanciación del Skeleton y se encarga de ejecutar las funciones que éste implementa de manera independiente a la parte gráfica, donde se encuentra el otro hilo de la aplicación.

• Clase excepción: Se encarga de mostrar en la consola del programa el error ocurrido y finalizar la conexión.

Figura 37. Diagrama de clases del paquete control de la aplicación servidora para PC.

Page 56: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 53 | Diseño del software

En el caso del paquete de gráficos gui existe una clase mainServer que contiene el frame principal y dos clases ActionCon y ActionDes que contienen respectivamente las acciones a realizar al pulsar los botones de conexión y desconexión.

Figura 38. Diagrama de clases del paquete gui de la aplicación servidora para PC.

En el caso de la versión servidora para Android, el paquete control contiene las mismas clases con leves diferencias de implementación debido al uso de distintas librerías para la comunicación bluetooth. En cuanto al paquete de gráficos, existe un único frame representado con la clase MainActivity, y se apoya en el entramado de archivos propios que utiliza Android para funcionar5.

Para la aplicación cliente, el conjunto de clases se divide de manera idéntica. A continuación se muestran sus clases descritas y los correspondientes diagramas:

Descripción de las clases del paquete control:

• Clase auxFunct: Contiene funciones axiliares para el tratamiendo de los datos que se reciben y envían al vehículo.

5 Esta estructura puede verse en detalle en [8].

Page 57: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 54 | Diseño del software

• Clase Stub: Representa el enlace con la parte servidora, actuando como simulador para todas las funciones que están siendo invocadas y pertenecen a la implementación de servidor. Para ello, implementa la conexión socket.

• Clase codesBBDD: Contiene la base de datos de códigos de error (DTCs) que importa desde un fichero externo en el momento de su instanciación. Así mismo, incorpora un método para obtener la descripción de un error a partir de su identificador.

• Clases Mode01, Mode03 y Mode04: Contienen los parámetros y funciones necesarias para manejar peticiones del modo 01, 03 y 04 respectivamente.

• Clase excepción: Se encarga de mostrar en la consola del programa el error ocurrido y finalizar la conexión.

Figura 39. Diagrama de clases del paquete control de la aplicación cliente.

Page 58: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 55 | Diseño del software

En el caso del paquete de gráficos gui existe una clase mainClient que contiene el frame principal y una clase jframe que contiene el frame de lectura de parámetros. El resto de clases representan las acciones a realizar al pulsar cada uno de los botones en el frame mainClient (clases ActionLectura, ActionCon, ActionDes, ActionBorrarDTC, ActionLeerDTC y ActionResetELM) y en el frame jframe (clases ActionGo y ActionStop).

Figura 40. Diagrama de clases del paquete gui de la aplicación cliente.

Page 59: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 56 | Diseño del software

7.4.4. Diagrama de secuencia

En la siguiente imagen se muestra un diagrama de secuencia para una consulta (petición/respuesta) típica en la aplicación:

Figura 41. Diagrama de secuencia para una petición de datos al vehículo.

Cabe señalar que la parte marcada como SMARTPHONE puede ser sustituida por un PC corriendo la aplicación servidora.

Page 60: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 57 | Desarrollo y pruebas

8. Desarrollo y pruebas

Durante todo el desarrollo del proyecto se han ido efectuando de manera paralela pruebas de funcionamiento. Se comenzó analizando el funcionamiento de la interfaz a través de un una conexión serie (en este caso bluetooth, mediante un puerto serie virtual) desde el terminal de consola, y una vez asimilados todos los conceptos necesarios (conexión, peticiones etc.) se pasó a buscar la manera de enviar estos comandos desde una aplicación Java.

La solución era utilizar la librería RXTXcomm de JControl6, que implementa las funciones necesarias para enviar y recibir datos por puerto serie. Basándose en los ejemplos incluidos en el apartado 13.4 se hicieron las primeras pruebas para comunicarse con el vehículo. Una de las ellas consistió en enviar el comando ‘ATZ’ a la interfaz, como muestra la figura 42:

Figura 42. Prueba de conexión mediante el envío del comando ‘ATZ’.

Se puede observar que la respuesta obtenida incluye el comando enviado, espacios y otros caracteres no significativos (>?), por lo que la respuesta se debe limpiar para tener un aspecto final como el mostrado en ‘Respuesta final’.

En este caso no se ha comprobado realmente que el vehículo responde a las peticiones, puesto que el comando ‘ATZ’ enviado simplemente resetea el ELM327. En el siguiente ejemplo sí se comprueba que el vehículo responde las peticiones, como puede verse en la figura 43:

6 Web oficial de JControl: www.jcontrol.org.

Page 61: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 58 | Desarrollo y pruebas

Figura 43. Prueba de conexión mediante el envío del comando ‘0100’.

En este caso se solicita al vehículo la lista de PIDs disponibles mediante el PID 00 del mode 01. La respuesta empieza con (41 00) por lo que todo indica que la petición se ha realizado con éxito.

Sin embargo, como la lista de PIDs soportados no está publicada no podemos saber si realmente es correcta, por lo que se mostrará en la figura 44 otra prueba que se realizó con el fin de comprobar que realmente se estaban obteniendo datos correctos del vehículo:

Figura 44. Prueba de conexión mediante el envío del comando ‘0105’.

Page 62: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 59 | Desarrollo y pruebas

En este caso se solicita al vehículo la temperatura del líquido refrigerante del motor, tras traducir la respuesta (detalles de cómo hacerlo en apartado 6.2) concluimos que el valor real es 30ºC, que coincide con la temperatura que marca el coche en ese momento, tal y como puede apreciarse en la figura 45:

Figura 45. Indicador de temperatura en cuadro de instrumentos.

Una vez conseguido esto, se concluyó que el proyecto era totalmente viable, y sólo era cuestión de tiempo el programar la automatización de estas peticiones para poder leer los parámetros del vehículo en tiempo real.

Las siguientes pruebas se centraron el analizar la velocidad de respuesta del ELM327 frente a las distintas peticiones. Al principio se pensó que se necesitaban varios segundos de espera entre peticiones, pero esto hacía imposible obtener una lista de parámetros que se refrescase en un tiempo razonable. Tras analizar el problema se llegó a la conclusión de que para consultas de PIDs el tiempo de espera entre peticiones debía ser de al menos 200ms por regla general, tal como se especifica en el datasheet del ELM327, pero esta demora se ve incrementada hasta varios segundos si efectuamos ciertos comandos como el ‘ATZ’, que provoca un reinicio de la interfaz. Por tanto, se concluyó que para obtener parámetros el tiempo de espera entre peticiones debía ser al menos 200ms, y esta era la limitación de refresco que se nos presentaba, la cual resulta bastante razonable.

En caso de no respetarse estos tiempos, se obtienen respuestas erróneas o simplemente el mensaje ‘STOPPED’ que indica que el IC del ELM327 ha sido interrumpido mientras procesaba. Sin embargo, en el caso de la aplicación servidora para Android, la librería que maneja la conexión por bluetooth se encarga automáticamente de respetar los tiempos.

Page 63: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 60 | Desarrollo y pruebas

Las siguientes pruebas se centraron en el resto de modos que se pretendían implementar: mode 03 y mode 04. Como ya se ha visto en el apartado 6.2 el mode 03 permite la lectura de averías, por lo que de nuevo el primer paso residía en comprobar que el coche respondía a una petición para este modo y estudiar cómo interpretarla. En la siguiente captura se puede ver como se envía el comando al coche y la respuesta que se recibe de éste:

Figura 46. Envío del comando ‘03’.

Este proceso fue descrito en detalle en el apartado 6.2. Una vez obtenidos los códigos de error, el siguiente paso es traducir este código en una descripción de la avería. Para llevar a cabo esta traducción se creó una base de datos en formato .csv que contiene los códigos de error y sus descripciones, y una función que busca los códigos de error mediante su identificador (en el ejemplo anterior, P2626) y devuelve la descripción asociada.

Una vez comprobado el funcionamiento de los comandos, se pasó a programar las funciones necesarias para automatizar el proceso de envío de peticiones y la conversión de las respuestas a valores entendibles por el usuario empleando las fórmulas descritas en el apartado 13.2 para el caso de los parámetros o el procedimiento de obtención de códigos de avería descrito en el apartado 6.2.

Por último, se procedió a realizar la distribución de la aplicación dividiéndola en dos partes: cliente y servidor. Como se ha explicado en el apartado 7.4, la lógica de negocio reside en la parte cliente y la parte servidora es simplemente un proxy que actúa de intermediario o puente entre el vehículo y la parte cliente.

Page 64: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 61 | Desarrollo y pruebas

Todas las pruebas se hicieron inicialmente mostrando mensajes en la consola de la herramienta de desarrollo (eclipse), y más tarde se procedió a implementar una interfaz gráfica tanto la parte cliente como en la servidor. En el aparado 7.3 se pueden ver más detalles sobre el diseño gráfico.

A continuación se va a mostrar la secuencia que hay que seguir para poner en marcha el programa, así como las pruebas de funcionamiento que se han realizado. Se comenzará con la aplicación servidora para PC; al abrir el programa se obtiene la imagen mostrada en la figura 47.

Deben rellenarse los campos solicitados, que corresponden al puerto COM que utiliza la conexión bluetooth, el baud rate y el puerto que utilizará la aplicación para conectarse con la parte cliente a través de Internet.

Figura 47. Aplicación servidora preparada para establecer la conexión.

Una vez vinculado el dispositivo ELM327 con el ordenador por bluetooth (este proceso es previo y ajeno a la aplicación) es el momento de pulsar en el botón ‘conectar’. Acto seguido el programa mostrará la dirección IP pública de la máquina y se conectará con la interfaz mediante el puerto COM. Así mismo, abrirá una conexión socket en el puerto establecido, quedando a la espera de la conexión de la parte cliente. En la figura 48 se muestra el estado del programa en este punto:

Page 65: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 62 | Desarrollo y pruebas

Figura 48. Aplicación servidora conectada con ELM327 y esperando conexión con cliente.

Ahora sería el momento de comunicarle al extremo cliente la dirección IP obtenida y el puerto elegido para la aplicación (no confundir con puerto COM). Al arrancar la aplicación cliente se solicitan estos datos, y pulsando ‘conectar’ se establece la conexión con el servidor.

Llegado a este punto, si todo es correcto la parte cliente se habrá conectado con la parte servidora y habrá enviado los primeros mensajes al vehículo, estableciendo los parámetros básicos de conexión y comprobando qué PIDs del modo 01 están soportados, el número de errores almacenados en la memoria de averías y el estado del MIL. Esto se puede ver en la figura 49:

Figura 49. Aplicación servidora conectada y enviando peticiones.

Page 66: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 63 | Desarrollo y pruebas

Figura 50. Aplicación servidora conectada y enviando peticiones.

Estos parámetros de conexión son los comandos ‘ATZ’, ‘ATSP0’, y ‘ATH0’. El primero reinicia la interfaz con el fin de borrar toda configuración que pudiera haberse realizado anteriormente, el segundo ajusta la búsqueda automática de protocolo (ver protocolos compatibles en apartado 6.1) y el tercero hace que la interfaz no envíe los bytes de cabecera y checksum al programa, que carecen de valor para el tratamiento de datos que realiza la aplicación.

En el caso de ocurrir algún error, ambas partes muestran mensajes de error:

Figura 51. Respuesta de la aplicación cliente en caso de error.

Page 67: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 64 | Desarrollo y pruebas

Figura 52. Respuesta de la aplicación servidora en caso de error.

Las opciones que se presentan ahora desde el cliente son: leer parámetros, reiniciar la interfaz, leer la memoria de averías y borrar la memoria de averías. Estas opciones no se encuentran disponibles antes de la conexión. Al pulsar el botón ‘Leer DTC’, todas las demás opciones pasan a estar no disponibles hasta que se finaliza la operación, que arroja el resultado en la consola de texto, indicando los errores encontrados y su descripción en caso de haberlos. En caso de existir algún fallo almacenado, es posible borrar la memoria de averías pulsando el botón ‘Borrar DTC’. Este proceso requiere confirmación por parte del usuario, y muestra en la consola de texto un mensaje de confirmación al finalizar.

Figura 53. Lectura de la memoría de averías.

Page 68: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 65 | Desarrollo y pruebas

Figura 54. Borrado de la memoría de averías.

Ante cualquier comportamiento anormal, puede reiniciarse la interfaz mediante el botón “Reset ELM327” dispuesto a tal fin. La última característica disponible es la lectura de parámetros en tiempo real. Para activar esta función es necesario pulsar el botón ‘Leer parámetros’, que abre un nuevo frame. En este nuevo frame se pueden visualizar los diversos parámetros que se han implementado, y dentro de ellos, los que estén soportados por el vehículo al que se está conectado. Para comenzar la lectura de parámetros es necesario pulsar el botón ‘GO!’, que inicia un refresco automático de los valores de los parámetros disponibles. Para detener esta acción se puede pulsar el botón ‘Stop’ o directamente cerrar el frame.

Figura 55. Lectura de parámetros en tiempo real.

Page 69: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 66 | Desarrollo y pruebas

Esta captura representa un ejemplo real utilizando como vehículo un Audi A3 8P de 2004 con motor 1.6MPI. Para comprobar la veracidad de los datos se muestra otra en la que se ven en el mismo escenario el portátil con la aplicación abierta y el cuadro de instrumentos del vehículo:

Figura 56. Lectura de parámetros en tiempo real (escenario completo).

Como se puede observar, la velocidad del motor está cercana a 600 rpm y la temperatura se encuentra alrededor de los 90ºC.

También se han realizado pruebas en los siguientes vehículos:

- Peugeot 307 1.6HDI, año 2007.

- BMW e46 320d, año 2004.

- Volkswagen Golf V 2.0TDI, año 2008.

Todos ellos han respondido de manera satisfactoria.

Page 70: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 67 | Conclusiones

9. Conclusiones

El proyecto ha concluido satisfactoriamente, lográndose todos los objetivos fijados en el anteproyecto en tiempo y forma. Se ha desarrollado la aplicación distribuida con versiones para Android y PC (multiplataforma), pudiéndose conectar a prácticamente cualquier coche del mercado y haciendo posible su monitorización en tiempo real y lectura y borrado de la memoria de averías de manera remota.

La viabilidad del proyecto reside en la existencia de estándares para acceder a datos del motor del vehículo, no existiendo para el acceso a otras unidades como “freno” (ABS, ESP…) o “sujeción” (Airbag), donde cada marca elige sus propias reglas. Esto hace que exista mucho secretismo entre los fabricantes de automóviles para evitar plagios. Es evidente que sin estándares no existe manera posible de acceder a los datos de estas unidades exceptuando el robo de información (filtraciones) o la ingeniería inversa, que son los métodos que utilizan los fabricantes de herramientas de diagnosis no oficiales para desarrollar sus productos.

Sin embargo, ha sido un proceso complicado porque no es un tema muy extendido bibliográficamente hablando y pese a la existencia de estándares, estos no están publicados de manera gratuita, siendo su precio nada despreciable. Esto ha hecho que el factor I+D haya sido un pilar fundamental, con un proceso progresivo de investigación y pruebas que han ido aportando el conocimiento necesario sobre el funcionamiento de los distintos elementos.

Personalmente creo que el hecho de que se trate de un tema no muy extendido hace el proyecto original y atractivo. Más aún si tenemos en cuenta los escasos recursos necesarios: dos equipos (cliente y servidor), que podrán ser PC o móvil, un vehículo a monitorizar y una interfaz de diagnóstico ELM327. Realmente el único recurso necesario para casi cualquier usuario probablemente sea la interfaz ELM327, cuyo precio en cualquier caso es inferior a los 50€.

Además, existen multitud de posibles líneas de trabajo para el futuro, como por ejemplo el registro de parámetros con finalidad estadística. Podrían detectarse y analizar comportamientos de los conductores (velocidad media, exceso de velocidad, tiempo con velocidad superior a 0km/h mientas está el coche arrancado para calcular tiempo perdido en semáforos o atascos o nivel de contaminación emitida, por ejemplo).

Page 71: Aplicación distribuida para la monitorización y diagnosis de ...
Page 72: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 69 | Referencias

10. Referencias

[1] Aparicio F, y otros (2003), “Estudio para la definición de la tecnología del programa de investigación sobre el diagnóstico integral del estado del automóvil”. Madrid, España.

[2] Web del producto golo de la compañía LAUNCH, [Link: http://golo.launchiberica.com/portfolio/diagnosis-remota/].

[3] Fundación Instituto Tecnológico para la Seguridad del Automóvil (FITSA). “Diagnosis Electrónica del Automóvil. Estado actual y tendencias futuras”.

[4] Artículo “¿Cuál es la diferencia entre OBDI y OBDII? Parte I”, [Link: http://automotrizenvideo.com/¿cual-es-la-diferencia-entre-obdi-y-obdii-parte-i/].

[5] Datasheet del microcontrolador ELM327, [Link: http://elmelectronics.com/DSheets/ELM327DS.pdf].

[6] Web oficial de la Society of Automotive Engineers, [Link: http://www.sae.org/automotive/].

[7] Web oficial de la International Organization for Standardization, [Link: http://www.iso.org/iso/home.html].

[8] Artículo “Estructura de un proyecto Android”, [Link: http://www.sgoliver.net/blog/estructura-de-un-proyecto-android-android-studio].

[9] Wiki de RXTX, ejemplo de uso de la librería RXTXcomm, [Link: http://rxtx.qbang.org/wiki/index.php/Two_way_communcation_with_the_serial_port].

Nota: Todos los enlaces citados han sido comprobados a 24 de junio de 2015.

Page 73: Aplicación distribuida para la monitorización y diagnosis de ...
Page 74: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 71 | Biografía

11. Biografía

• Gil, H. (2007), “Manual de Diagnosis del Automóvil”, España, CEAC.

• Wiki con información sobre diagnosis de vehículos (protocolos, normativas…), [Link: http://en.wikipedia.org/wiki/On-board_diagnostics].

• Web con información sobre los parámetros que almacenan los datos del vehículo: Electric Auto Association - Plug in Hybrid Electric Vehicle, [Link: http://www.eaa-phev.org/wiki/Escape_PHEV_TechInfo#PIDs].

• Web oficial del fabricante del microcontrolador ELM327, [Link: http://www.elmelectronics.com/].

• Web con listado completo de códigos de error (DTCs), [Link: http://www.obd-codes.com/trouble_codes/].

• Web con información sobre el manejo de conexiones bluetooth en Android, [Link: http://code.google.com/p/bluetooth-remote-control/source/browse/trunk/src/pro/apus/blueremote/BlueTerm.java?r=3].

• Tutorial sobre el manejo de conexiones bluetooth en Android: Brian Wirsing, “Sending and Receiving Data via Bluetooth with an Android Device”, [Link: http://www.egr.msu.edu/classes/ece480/capstone/spring14/group01/docs/appnote/Wirsing-SendingAndReceivingDataViaBluetoothWithAnAndroidDevice.pdf].

• Recurso publicado en el BOE sobre OBD: “DIRECTIVA 1999/102/CE DE LA COMISIÓN de 15 de diciembre de 1999”, [Link: http://www.boe.es/doue/1999/334/L00043-00050.pdf].

• Artículo sobre hilos en Java: Ricardo Moya, “Multitarea e Hilos en Java con ejemplos (Thread & Runnable)”, [Link: http://jarroba.com/multitarea-e-hilos-en-java-con-ejemplos-thread-runnable/].

• Web con ejemplo de uso de sockets en Java, [Link: http://codigoprogramacion.com/cursos/java/103-sockets-en-java-con-cliente-y-servidor.html#.VYsk8vntlHw].

Nota: Todos los enlaces citados han sido comprobados a 24 de junio de 2015.

Page 75: Aplicación distribuida para la monitorización y diagnosis de ...
Page 76: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 73 | Listado de acrónimos

12. Listado de acrónimos

OBD On-board diagnostics PCB Printed Circuit Board UML Unified Modeling Language ECU Electronic Control Unit MIL Malfunction Indicator Light MCU Main Control Unit DLC Data Link Connector GPRS General Packet Radio Service SIM Subscriber Identity Module EPA Environmental Protection Agency SAE Society Automobile Engineering CARB California Air Resources Board ECT Engine Coolant Temperature IAT Intake Air Temperature TP Throttle Position EGR Exhaust Gas Recirculation EOBD European On Board Diagnostics VIN Vehicle Identification Number DTC Data Trouble Code GPS Global Positioning System PID Parameter Identification UART Universal Asynchronous Receiver-Transmitter IC Integrated Circuit

Page 77: Aplicación distribuida para la monitorización y diagnosis de ...
Page 78: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 75 | Anexo

13. Anexo

13.1. Listado de comandos AT para el ELM327

Comandos generales: Programmable Parameter Commands: <CR> repeat the last command PP xx OFF disable Prog Parameter xx BRD hh try Baud Rate Divisor hh PP FF OFF all Prog Parameters disabled BRT hh set Baud Rate Timeout PP xx ON enable Prog Parameter xx D set all to Defaults PP FF ON all Prog Parameters enabled E0, E1 Echo off, or on PP xx SV yy for PP xx, Set the Value to yy FE Forget Events PPS print a PP Summary I print the version ID L0, L1 Linefeeds off, or on LP go to Low Power mode Voltage Reading Commands:

M0, M1 Memory off, or on CV dddd Calibrate the Voltage to dd.dd volts

RD Read the stored Data CV 0000 restore CV value to factory setting

SD hh Save Data byte hh RV Read the input Voltage

WS Warm Start (quick software reset)

Z reset all @1 display the device description Other: @2 display the device identifier IGN read the IgnMon input level @3 cccccccccccc store the @2 identifier

OBD commands: J1850 Specific Commands (protocols 1 and 2):

AL Allow Long (>7 byte) messages IFR0, 1, 2 IFRs off, auto, or on

AMC display Activity Monitor Count IFR H, S IFR value from Header or

Source

AMT hh set the Activity Mon Timeout to hh

AR Automatically Receive AT0, 1, 2 Adaptive Timing off, auto1,

auto2 ISO Specific Commands (protocols 3 to 5):

BD perform a Buffer Dump FI perform a Fast Initiation

BI Bypass the Initialization sequence IB 10 set the ISO Baud rate to 10400

DP Describe the current Protocol IB 48 set the ISO Baud rate to 4800

Page 79: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 76 | Anexo

DPN Describe the Protocol by Number IB 96 set the ISO Baud rate to 9600

H0, H1 Headers off, or on IIA hh set ISO (slow) Init Address to hh

MA Monitor All KW display the Key Words MR hh Monitor for Receiver = hh KW0, KW1 Key Word checking off, or on

MT hh Monitor for Transmitter = hh SI perform a Slow (5 baud) Initiation

NL Normal Length messages SW hh Set Wakeup interval to hh x 20 msec

PC Protocol Close SW 00 Stop sending Wakeup messages

R0, R1 Responses off, or on WM [1 - 6 bytes] set the Wakeup Message

RA hh set the Receive Address to hh S0, S1 printing of Spaces off, or on SH xyz Set Header to xyz CAN Specific Commands (protocols 6 to C):

SH xxyyzz Set Header to xxyyzz CEA turn off CAN Extended Addressing

SH wwxxyyzz Set Header to wwxxyyzz CEA hh use CAN Extended Address hh SP h Set Protocol to h and save it CAF0, CAF1 Automatic Formatting off, or on

SP Ah Set Protocol to Auto, h and save it CF hhh set the ID Filter to hhh

SP 00 Erase stored protocol CF hhhhhhhh set the ID Filter to hhhhhhhh SR hh Set the Receive address to hh CFC0, CFC1 Flow Controls off, or on

SS use Standard Search order (J1978) CM hhh set the ID Mask to hhh

ST hh Set Timeout to hh x 4 msec CM hhhhhhhh set the ID Mask to hhhhhhhh TA hh set Tester Address to hh CP hh set CAN Priority to hh (29 bit) TP h Try Protocol h CRA reset the Receive Address filters

TP Ah Try Protocol h with Auto search CRA hhh set CAN Receive Address to

hhh

CRA hhhhhhhh set the Rx Address to hhhhhhhh

CS show the CAN Status counts J1939 CAN Specific Commands (protocols A to C): CSM0, CSM1 Silent Monitoring off, or on

DM1 monitor for DM1 messages CTM1 set Timer Multiplier to 1 JE use J1939 Elm data format CTM5 set Timer Multiplier to 5 JHF0, JHF1 Header Formatting off, or on D0, D1 display of the DLC off, or on JS use J1939 SAE data format FC SM h Flow Control, Set the Mode to h JTM1 set Timer Multiplier to 1 FC SH hhh FC, Set the Header to hhh

JTM5 set Timer Multiplier to 5 FC SH hhhhhhhh Set the Header to hhhhhhhh

Page 80: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 77 | Anexo

MP hhhh Monitor for PGN 0hhhh FC SD [1 - 5 bytes] FC, Set Data to [...]

MP hhhh n “ “ and get n messages PB xx yy Protocol B options and baud rate

MP hhhhhh Monitor for PGN hhhhhh RTR send an RTR message MP hhhhhh n “ “ and get n messages V0, V1 use of Variable DLC off, or on

13.2. Tabla de PIDs del modo 01

PID Bytes Description Min value Max value Units Formula

0 4 PIDs supported [01 - 20] Bit encoded.

1 4

Monitor status since DTCs cleared. (Includes malfunction indicator lamp (MIL) status and number of DTCs.)

Bit encoded.

2 2 Freeze DTC 3 2 Fuel system status Bit encoded.

4 1 Calculated engine load value 0 100 % A*100/255

5 1 Engine coolant temperature -40 215 °C A-40

6 1 Short term fuel % trim—Bank 1

-100 Subtracting Fuel (Rich Condition)

99.22 Adding Fuel (Lean Condition)

% (A-128) * 100/128

7 1 Long term fuel % trim—Bank 1

-100 Subtracting Fuel (Rich Condition)

99.22 Adding Fuel (Lean Condition)

% (A-128) * 100/128

8 1 Short term fuel % trim—Bank 2

-100 Subtracting Fuel (Rich Condition)

99.22 Adding Fuel (Lean Condition)

% (A-128) * 100/128

9 1 Long term fuel % trim—Bank 2

-100 Subtracting Fuel (Rich Condition)

99.22 Adding Fuel (Lean Condition)

% (A-128) * 100/128

0A 1 Fuel pressure 0 765 kPa (gauge) A*3

0B 1 Intake manifold absolute pressure 0 255 kPa

(absolute) A

0C 2 Engine RPM 0 16,383.75 rpm ((A*256)+B)/4 0D 1 Vehicle speed 0 255 km/h A

Page 81: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 78 | Anexo

PID Bytes Description Min value Max value Units Formula

0E 1 Timing advance -64 63.5 ° relative

to #1 cylinder

(A-128)/2

0F 1 Intake air temperature -40 215 °C A-40 10 2 MAF air flow rate 0 655.35 grams/sec ((A*256)+B) / 100 11 1 Throttle position 0 100 % A*100/255

12 1 Commanded secondary air status Bit encoded.

13 1 Oxygen sensors present [A0..A3] == Bank 1, Sensors 1-4. [A4..A7] == Bank 2...

14 2

Bank 1, Sensor 1:

Oxygen sensor voltage, 0 1.275 Volts A/200

Short term fuel trim -100(lean) 99.2(rich) % (B-128) * 100/128 (if B==$FF, sensor is not used in trim calc)

15 2

Bank 1, Sensor 2:

Oxygen sensor voltage, 0 1.275 Volts A/200

Short term fuel trim -100(lean) 99.2(rich) % (B-128) * 100/128 (if B==$FF, sensor is not used in trim calc)

16 2

Bank 1, Sensor 3:

Oxygen sensor voltage, 0 1.275 Volts A/200

Short term fuel trim -100(lean) 99.2(rich) % (B-128) * 100/128 (if B==$FF, sensor is not used in trim calc)

17 2

Bank 1, Sensor 4:

Oxygen sensor voltage, 0 1.275 Volts A/200

Short term fuel trim -100(lean) 99.2(rich) % (B-128) * 100/128 (if B==$FF, sensor is not used in trim calc)

18 2

Bank 2, Sensor 1:

Oxygen sensor voltage, 0 1.275 Volts A/200

Short term fuel trim -100(lean) 99.2(rich) % (B-128) * 100/128 (if B==$FF, sensor is not used in trim calc)

19 2 Bank 2, Sensor 2:

Oxygen sensor voltage, 0 1.275 Volts A/200

Page 82: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 79 | Anexo

PID Bytes Description Min value Max value Units Formula

Short term fuel trim -100(lean) 99.2(rich) % (B-128) * 100/128 (if B==$FF, sensor is not used in trim calc)

1A 2

Bank 2, Sensor 3:

Oxygen sensor voltage, 0 1.275 Volts A/200

Short term fuel trim -100(lean) 99.2(rich) % (B-128) * 100/128 (if B==$FF, sensor is not used in trim calc)

1B 2

Bank 2, Sensor 4:

Oxygen sensor voltage, 0 1.275 Volts A/200

Short term fuel trim -100(lean) 99.2(rich) % (B-128) * 100/128 (if B==$FF, sensor is not used in trim calc)

1C 1 OBD standards this vehicle conforms to Bit encoded.

1D 1 Oxygen sensors present

Similar to PID 13, but [A0..A7] == [B1S1, B1S2, B2S1, B2S2, B3S1, B3S2, B4S1, B4S2]

1E 1 Auxiliary input status

A0 == Power Take Off (PTO) status (1 == active)

[A1..A7] not used 1F 2 Run time since engine start 0 65,535 seconds (A*256)+B 20 4 PIDs supported [21 - 40] Bit encoded.

21 2 Distance traveled with malfunction indicator lamp (MIL) on

0 65,535 km (A*256)+B

22 2 Fuel Rail Pressure (relative to manifold vacuum) 0 5.177.265 kPa ((A*256)+B) * 0.079

23 2 Fuel Rail Pressure (diesel, or gasoline direct inject) 0 655,35 kPa

(gauge) ((A*256)+B) * 10

24 4

O2S1_WR_lambda(1):

Equivalence Ratio 0 1.999 N/A ((A*256)+B)*2/65535 or ((A*256)+B)/32768

Voltage 0 7.999 V ((C*256)+D)*8/65535 or ((C*256)+D)/8192

25 4 O2S2_WR_lambda(1):

Page 83: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 80 | Anexo

PID Bytes Description Min value Max value Units Formula Equivalence Ratio 0 2 N/A ((A*256)+B)*2/65535 Voltage 0 8 V ((C*256)+D)*8/65535

26 4 O2S3_WR_lambda(1):

Equivalence Ratio 0 2 N/A ((A*256)+B)*2/65535 Voltage 0 8 V ((C*256)+D)*8/65535

27 4 O2S4_WR_lambda(1):

Equivalence Ratio 0 2 N/A ((A*256)+B)*2/65535 Voltage 0 8 V ((C*256)+D)*8/65535

28 4 O2S5_WR_lambda(1): Equivalence Ratio 0 2 N/A ((A*256)+B)*2/65535 Voltage 0 8 V ((C*256)+D)*8/65535

29 4 O2S6_WR_lambda(1):

Equivalence Ratio 0 2 N/A ((A*256)+B)*2/65535 Voltage 0 8 V ((C*256)+D)*8/65535

2A 4 O2S7_WR_lambda(1):

Equivalence Ratio 0 2 N/A ((A*256)+B)*2/65535 Voltage 0 8 V ((C*256)+D)*8/65535

2B 4 O2S8_WR_lambda(1):

Equivalence Ratio 0 2 N/A ((A*256)+B)*2/65535 Voltage 0 8 V ((C*256)+D)*8/65535

2C 1 Commanded EGR 0 100 % A*100/255 2D 1 EGR Error -100 99.22 % (A-128) * 100/128

2E 1 Commanded evaporative purge 0 100 % A*100/255

2F 1 Fuel Level Input 0 100 % A*100/255

30 1 # of warm-ups since codes cleared 0 255 N/A A

31 2 Distance traveled since codes cleared 0 65,535 km (A*256)+B

32 2 Evap. System Vapor Pressure -8,192 8,192 Pa

((A*256)+B)/4 (A and B are two's complement signed)

33 1 Barometric pressure 0 255 kPa (Absolute) A

34 4

O2S1_WR_lambda(1):

Equivalence Ratio 0 1.999 N/A ((A*256)+B)/32,768

Current -128 127.99 mA ((C*256)+D)/256 - 128

35 4 O2S2_WR_lambda(1):

Page 84: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 81 | Anexo

PID Bytes Description Min value Max value Units Formula Equivalence Ratio 0 2 N/A ((A*256)+B)/32,768

Current -128 128 mA ((C*256)+D)/256 - 128

36 4

O2S3_WR_lambda(1):

Equivalence Ratio 0 2 N/A ((A*256)+B)/32768

Current -128 128 mA ((C*256)+D)/256 - 128

37 4

O2S4_WR_lambda(1):

Equivalence Ratio 0 2 N/A ((A*256)+B)/32,768

Current -128 128 mA ((C*256)+D)/256 - 128

38 4

O2S5_WR_lambda(1):

Equivalence Ratio 0 2 N/A ((A*256)+B)/32,768

Current -128 128 mA ((C*256)+D)/256 - 128

39 4

O2S6_WR_lambda(1):

Equivalence Ratio 0 2 N/A ((A*256)+B)/32,768

Current -128 128 mA ((C*256)+D)/256 - 128

3A 4

O2S7_WR_lambda(1):

Equivalence Ratio 0 2 N/A ((A*256)+B)/32,768

Current -128 128 mA ((C*256)+D)/256 - 128

3B 4

O2S8_WR_lambda(1):

Equivalence Ratio 0 2 N/A ((A*256)+B)/32,768

Current -128 128 mA ((C*256)+D)/256 - 128

3C 2 Catalyst Temperature

-40 6,513.5 °C ((A*256)+B)/10 - 40 Bank 1, Sensor 1

3D 2 Catalyst Temperature

-40 6,513.5 °C ((A*256)+B)/10 - 40 Bank 2, Sensor 1

3E 2 Catalyst Temperature

-40 6,513.5 °C ((A*256)+B)/10 - 40 Bank 1, Sensor 2

3F 2 Catalyst Temperature

-40 6,513.5 °C ((A*256)+B)/10 - 40 Bank 2, Sensor 2

40 4 PIDs supported [41 - 60] Bit encoded.

41 4 Monitor status this drive cycle Bit encoded.

42 2 Control module voltage 0 65.535 V ((A*256)+B)/1000 43 2 Absolute load value 0 25,7 % ((A*256)+B)*100/255

Page 85: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 82 | Anexo

PID Bytes Description Min value Max value Units Formula

44 2 Fuel/Air commanded equivalence ratio 0 2 N/A ((A*256)+B)/32768

45 1 Relative throttle position 0 100 % A*100/255 46 1 Ambient air temperature -40 215 °C A-40 47 1 Absolute throttle position B 0 100 % A*100/255 48 1 Absolute throttle position C 0 100 % A*100/255

49 1 Accelerator pedal position D 0 100 % A*100/255

4A 1 Accelerator pedal position E 0 100 % A*100/255 4B 1 Accelerator pedal position F 0 100 % A*100/255

4C 1 Commanded throttle actuator 0 100 % A*100/255

4D 2 Time run with MIL on 0 65,535 minutes (A*256)+B

4E 2 Time since trouble codes cleared 0 65,535 minutes (A*256)+B

4F 4

Maximum value for equivalence ratio, oxygen sensor voltage, oxygen sensor current, and intake manifold absolute pressure

0, 0, 0, 0 255, 255, 255, 2550

, V, mA, kPa A, B, C, D*10

50 4 Maximum value for air flow rate from mass air flow sensor

0 2550 g/s A*10, B, C, and D are reserved for future use

51 1 Fuel Type Bit encoded. 52 1 Ethanol fuel % 0 100 % A*100/255

53 2 Absolute Evap system Vapor Pressure 0 327.675 kPa ((A*256)+B)/200

54 2 Evap system vapor pressure -32,767 32,768 Pa ((A*256)+B)-32767

55 2 Short term secondary oxygen sensor trim bank 1 and bank 3

-100 99.22 % (A-128)*100/128

(B-128)*100/128

56 2 Long term secondary oxygen sensor trim bank 1 and bank 3

-100 99.22 % (A-128)*100/128

(B-128)*100/128

57 2 Short term secondary oxygen sensor trim bank 2 and bank 4

-100 99.22 % (A-128)*100/128

(B-128)*100/128

58 2 Long term secondary oxygen sensor trim bank 2 and bank 4

-100 99.22 % (A-128)*100/128

(B-128)*100/128

59 2 Fuel rail pressure (absolute) 0 655,35 kPa ((A*256)+B) * 10

5A 1 Relative accelerator pedal position 0 100 % A*100/255

5B 1 Hybrid battery pack 0 100 % A*100/255

Page 86: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 83 | Anexo

PID Bytes Description Min value Max value Units Formula remaining life

5C 1 Engine oil temperature -40 210 °C A - 40

5D 2 Fuel injection timing -210.00 301.992 ° (((A*256)+B)-26,880)/128

5E 2 Engine fuel rate 0 3212.75 L/h ((A*256)+B)*0.05

5F 1 Emission requirements to which vehicle is designed Bit Encoded

60 4 PIDs supported [61 - 80] Bit encoded.

61 1 Driver's demand engine - percent torque -125 125 % A-125

62 1 Actual engine - percent torque -125 125 % A-125

63 2 Engine reference torque 0 65,535 Nm A*256+B

64 5 Engine percent torque data -125 125 %

A-125 Idle B-125 Engine point 1 C-125 Engine point 2 D-125 Engine point 3 E-125 Engine point 4

65 2 Auxiliary input / output supported Bit Encoded

66 5 Mass air flow sensor 67 3 Engine coolant temperature

68 7 Intake air temperature sensor

69 7 Commanded EGR and EGR Error

6A 5 Commanded Diesel intake air flow control and relative intake air flow position

6B 5 Exhaust gas recirculation temperature

6C 5 Commanded throttle actuator control and relative throttle position

6D 6 Fuel pressure control system

6E 5 Injection pressure control system

6F 3 Turbocharger compressor inlet pressure

70 9 Boost pressure control

Page 87: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 84 | Anexo

PID Bytes Description Min value Max value Units Formula

71 5 Variable Geometry turbo (VGT) control

72 5 Wastegate control 73 5 Exhaust pressure 74 5 Turbocharger RPM 75 7 Turbocharger temperature 76 7 Turbocharger temperature

77 5 Charge air cooler temperature (CACT)

78 9 Exhaust Gas temperature (EGT) Bank 1 Bit encoded.

79 9 Exhaust Gas temperature (EGT) Bank 2 Bit encoded.

7A 7 Diesel particulate filter (DPF)

7B 7 Diesel particulate filter (DPF)

7C 9 Diesel Particulate filter (DPF) temperature

7D 1 NOx NTE control area status

7E 1 PM NTE control area status 7F 13 Engine run time 80 4 PIDs supported [81 - A0] Bit encoded.

81 21 Engine run time for Auxiliary Emissions Control Device(AECD)

82 21 Engine run time for Auxiliary Emissions Control Device(AECD)

83 5 NOx sensor

84 Manifold surface temperature

85 NOx reagent system

86 Particulate matter (PM) sensor

87 Intake manifold absolute pressure

A0 4 PIDs supported [A1 - C0] Bit encoded. C0 4 PIDs supported [C1 - E0] Bit encoded.

Page 88: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 85 | Anexo

PID Bytes Description Min value Max value Units Formula

C3

Returns numerous data, including Drive Condition ID and Engine Speed

C4

B5 is Engine Idle Request

B6 is Engine Stop Request

13.3. Listado de códigos de error (DTCs)

En este apartado se incluye un listado completo de códigos del tren de potencia (motor y transmisión) con los que trabaja la aplicación:

P0001-P0099 - Fuel and Air Metering and Auxiliary Emission Controls P0001 Fuel Volume Regulator Control Circuit/Open P0002 Fuel Volume Regulator Control Circuit Range/Performance P0003 Fuel Volume Regulator Control Circuit Low P0004 Fuel Volume Regulator Control Circuit High P0005 Fuel Shutoff Valve "A" Control Circuit/Open P0006 Fuel Shutoff Valve "A" Control Circuit Low P0007 Fuel Shutoff Valve "A" Control Circuit High P0008 Engine Positions System Performance Bank 1 P0009 Engine Position System Performance Bank 2 P000A "A" Camshaft Position Slow Response P000B "B" Camshaft Position Slow Response P000C "A" Camshaft Position Slow Response P000D "B" Camshaft Position Slow Response P000E Fuel Volume Regulator Control Exceeded Learning Limit P000F Fuel System Over Pressure Relief Valve Activated P0010 "A" Camshaft Position Actuator Circuit (Bank 1) P0011 "A" Camshaft Position - Timing Over-Advanced or System Performance (Bank 1) P0012 "A" Camshaft Position - Timing Over-Retarded (Bank 1) P0013 "B" Camshaft Position - Actuator Circuit (Bank 1) P0014 "B" Camshaft Position - Timing Over-Advanced or System Performance (Bank 1) P0015 "B" Camshaft Position -Timing Over-Retarded (Bank 1) P0016 Crankshaft Position - Camshaft Position Correlation (Bank 1 Sensor A)

Page 89: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 86 | Anexo

P0017 Crankshaft Position - Camshaft Position Correlation (Bank 1 Sensor B) P0018 Crankshaft Position - Camshaft Position Correlation (Bank 2 Sensor A) P0019 Crankshaft Position - Camshaft Position Correlation (Bank 2 Sensor B) P001A "A" Camshaft Profile Control Circuit/Open P001B "A" Camshaft Profile Control Circuit Low P001C "A" Camshaft Profile Control Circuit High P001D "A" Camshaft Profile Control Circuit/Open P001E "A" Camshaft Profile Control Circuit Low P001F "A" Camshaft Profile Control Circuit High P0020 "A" Camshaft Position Actuator Circuit (Bank 2) P0021 "A" Camshaft Position - Timing Over-Advanced or System Performance (Bank 2) P0022 "A" Camshaft Position - Timing Over-Retarded (Bank 2) P0023 "B" Camshaft Position - Actuator Circuit (Bank 2) P0024 "B" Camshaft Position - Timing Over-Advanced or System Performance (Bank 2) P0025 "B" Camshaft Position - Timing Over-Retarded (Bank 2) P0026 Intake Valve Control Solenoid Circuit Range/Performance Bank 1 P0027 Exhaust Valve Control solenoid Circuit Range/Performance Bank 1 P0028 Intake valve Control Solenoid Circuit Range/Performance Bank 2 P0029 Exhaust Valve Control Solenoid Circuit Range/Performance Bank 2 P002A "B" Camshaft Profile Control Circuit/Open P002B "B" Camshaft Profile Control Circuit Low P002C "B" Camshaft Profile Control Circuit High P002D "B" Camshaft Profile Control Circuit/Open P002E "B" Camshaft Profile Control Circuit Low P002F "B" Camshaft Profile Control Circuit High P0030 HO2S Heater Control Circuit (Bank 1 Sensor 1) P0031 HO2S Heater Control Circuit Low (Bank 1 Sensor 1) P0032 HO2S Heater Control Circuit High (Bank 1 Sensor 1) P0033 Turbo Charger Bypass Valve Control Circuit P0034 Turbo Charger Bypass Valve Control Circuit Low P0035 Turbo Charger Bypass Valve Control Circuit High P0036 HO2S Heater Control Circuit (Bank 1 Sensor 2) P0037 HO2S Heater Control Circuit Low (Bank 1 Sensor 2) P0038 HO2S Heater Control Circuit High (Bank 1 Sensor 2) P0039 Turbo/Super Charger Bypass Valve Control Circuit Range/Performance P003A Turbocharger/Supercharger Boost Control "A" Position Exceeded Learning Limit P003B Turbocharger/Supercharger Boost Control "B" Position Exceeded Learning Limit P003C "A" Camshaft Profile Control Performance/Stuck Off

Page 90: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 87 | Anexo

P003D "A" Camshaft Profile Control Stuck On P003E "A" Camshaft Profile Control Performance/Stuck Off P003F "A" Camshaft Profile Control Stuck On P0040 Upstream Oxygen Sensors Swapped From Bank To Bank P0041 Downstream Oxygen Sensors Swapped From Bank To Bank P0042 HO2S Heater Control Circuit (Bank 1 Sensor 3) P0043 HO2S Heater Control Circuit Low (Bank 1 Sensor 3) P0044 HO2S Heater Control Circuit High (Bank 1 Sensor 3) P0045 Turbocharger/Supercharger Boost Control "A" Circuit/Open P0046 Turbocharger/Supercharger Boost Control "A" Circuit Range/Performance P0047 Turbocharger/Supercharger Boost Control "A" Circuit Low P0048 Turbocharger/Supercharger Boost Control "A" Circuit High P0049 Turbocharger/Supercharger Turbine Overspeed P004A Turbocharger/Supercharger Boost Control "B" Circuit/Open P004B Turbocharger/Supercharger Boost Control "B" Circuit Range/Performance P004C Turbocharger/Supercharger Boost Control "B" Circuit Low P004D Turbocharger/Supercharger Boost Control "B" Circuit High P004E Turbocharger/Supercharger Boost Control "A" Circuit Intermittent/Erratic P004F Turbocharger/Supercharger Boost Control "B" Circuit Intermittent/Erratic P0050 HO2S Heater Control Circuit (Bank 2 Sensor 1) P0051 HO2S Heater Control Circuit Low (Bank 2 Sensor 1) P0052 HO2S Heater Control Circuit High (Bank 2 Sensor 1) P0053 HO2S Heater Resistance (Bank 1, Sensor 1) P0054 HO2S Heater Resistance (Bank 1, Sensor 2) P0055 HO2S Heater Resistance (Bank 1, Sensor 3) P0056 HO2S Heater Control Circuit (Bank 2 Sensor 2) P0057 HO2S Heater Control Circuit Low (Bank 2 Sensor 2) P0058 HO2S Heater Control Circuit High (Bank 2 Sensor 2) P0059 HO2S Heater Resistance (Bank 2, Sensor 1) P005A "B" Camshaft Profile Control Performance/Stuck Off P005B "B" Camshaft Profile Control Stuck On P005C "B" Camshaft Profile Control Performance/Stuck Off P005D "B" Camshaft Profile Control Stuck On P005E Turbocharger/Supercharger Boost Control "B" Supply Voltage Circuit Low P005F Turbocharger/Supercharger Boost Control "B" Supply Voltage Circuit High P0060 HO2S Heater Resistance (Bank 2, Sensor 2) P0061 HO2S Heater Resistance (Bank 2, Sensor 3) P0062 HO2S Heater Control Circuit (Bank 2 Sensor 3)

Page 91: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 88 | Anexo

P0063 HO2S Heater Control Circuit Low (Bank 2 Sensor 3) P0064 HO2S Heater Control Circuit High (Bank 2 Sensor 3) P0065 Air Assisted Injector Control Range/Performance P0066 Air Assisted Injector Control Circuit or Circuit Low P0067 Air Assisted Injector Control Circuit High P0068 MAP/MAF - Throttle Position Correlation P0069 Manifold Absolute Pressure - Barometric Pressure Correlation P006A MAP - Mass or Volume Air Flow Correlation P006B MAP - Exhaust Pressure Correlation P006C MAP - Turbocharger/Supercharger Inlet Pressure Correlation P006D Barometric Pressure - Turbocharger/Supercharger Inlet Pressure Correlation P006E Turbocharger/Supercharger Boost Control "A" Supply Voltage Circuit Low P006F Turbocharger/Supercharger Boost Control "A" Supply Voltage Circuit High P0070 Ambient Air Temperature Sensor Circuit P0071 Ambient Air Temperature Sensor Range/Performance P0072 Ambient Air Temperature Sensor Circuit Low Input P0073 Ambient Air Temperature Sensor Circuit High Input P0074 Ambient Air Temperature Sensor Circuit Intermittent P0075 Intake Valve Control Solenoid Circuit (Bank 1) P0076 Intake Valve Control Solenoid Circuit Low (Bank 1) P0077 Intake Valve Control Solenoid Circuit High (Bank 1) P0078 Exhaust Valve Control Solenoid Circuit (Bank 1) P0079 Exhaust Valve Control Solenoid Circuit Low (Bank 1) P007A Charge Air Cooler Temperature Sensor Circuit P007B Charge Air Cooler Temperature Sensor Circuit Range/Performance P007C Charge Air Cooler Temperature Sensor Circuit Low P007D Charge Air Cooler Temperature Sensor Circuit High P007E Charge Air Cooler Temperature Sensor Circuit Intermittent/Erratic P007F Charge Air Cooler Temperature Sensor Bank1/Bank2 Correlation P0080 Exhaust Valve Control Solenoid Circuit High (Bank 1) P0081 Intake valve Control Solenoid Circuit (Bank 2) P0082 Intake Valve Control Solenoid Circuit Low (Bank 2) P0083 Intake Valve Control Solenoid Circuit High (Bank 2) P0084 Exhaust Valve Control Solenoid Circuit (Bank 2) P0085 Exhaust Valve Control Solenoid Circuit Low (Bank 2) P0086 Exhaust Valve Control Solenoid Circuit High (Bank 2) P0087 Fuel Rail/System Pressure - Too Low P0088 Fuel Rail/System Pressure - Too High

Page 92: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 89 | Anexo

P0089 Fuel Pressure Regulator 1 Performance P008A Low Pressure Fuel System Pressure - Too Low P008B Low Pressure Fuel System Pressure - Too High P008C Fuel Cooler Pump Control Circuit/Open P008D Fuel Cooler Pump Control Circuit Low P008E Fuel Cooler Pump Control Circuit High P008F Engine Coolant Temperature/Fuel Temperature Correlation P0090 Fuel Pressure Regulator 1 Control Circuit P0091 Fuel Pressure Regulator 1 Control Circuit Low P0092 Fuel Pressure Regulator 1 Control Circuit High P0093 Fuel System Leak Detected - Large Leak P0094 Fuel System Leak Detected - Small Leak P0095 Intake Air Temperature Sensor 2 Circuit P0096 Intake Air Temperature Sensor 2 Circuit Range/Performance P0097 Intake Air Temperature Sensor 2 Circuit Low P0098 Intake Air Temperature Sensor 2 Circuit High P0099 Intake Air Temperature Sensor 2 Circuit Intermittent/Erratic P009A Intake Air Temperature/Ambient Air Temperature Correlation P009B Fuel Pressure Relief Control Circuit/Open P009C Fuel Pressure Relief Control Circuit Low P009D Fuel Pressure Relief Control Circuit High P009E Fuel Pressure Relief Control Performance/Stuck Off P009F Fuel Pressure Relief Control Stuck On P00A0 Charge Air Cooler Temperature Sensor Circuit P00A1 Charge Air Cooler Temperature Sensor Circuit Range/Performance P00A2 Charge Air Cooler Temperature Sensor Circuit Low P00A3 Charge Air Cooler Temperature Sensor Circuit High P00A4 Charge Air Cooler Temperature Sensor Circuit Intermittent/Erratic P00A5 Intake Air Temperature Sensor 2 Circuit P00A6 Intake Air Temperature Sensor 2 Circuit Range/Performance P00A7 Intake Air Temperature Sensor 2 Circuit Low P00A8 Intake Air Temperature Sensor 2 Circuit High P00A9 Intake Air Temperature Sensor 2 Circuit Intermittent/Erratic P00AA Intake Air Temperature Sensor 1 Circuit P00AB Intake Air Temperature Sensor 1 Circuit Range/Performance P00AC Intake Air Temperature Sensor 1 Circuit Low P00AD Intake Air Temperature Sensor 1 Circuit High P00AE Intake Air Temperature Sensor 1 Circuit Intermittent/Erratic

Page 93: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 90 | Anexo

P00AF Turbocharger/Supercharger Boost Control "A" Module Performance P00B0 Turbocharger/Supercharger Boost Control "B" Module Performance P00B1 Radiator Coolant Temperature Sensor Circuit P00B2 Radiator Coolant Temperature Sensor Circuit Range/Performance P00B3 Radiator Coolant Temperature Sensor Circuit Low P00B4 Radiator Coolant Temperature Sensor Circuit High P00B5 Radiator Coolant Temperature Sensor Circuit Intermittent/Erratic P00B6 Radiator Coolant Temperature/Engine Coolant Temperature Correlation P00B7 Engine Coolant Flow Low/Performance P00B8 MAP - Mass or Volume Air Flow Correlation P00B9 Low Pressure Fuel System Pressure - Too Low, Low Ambient Temperature P00BA Low Fuel Pressure - Forced Limited Power P00BB Fuel Injector Insufficient Flow - Forced Limited Power P00BC Mass or Volume Air Flow "A" Circuit Range/Performance - Air Flow Too Low P00BD Mass or Volume Air Flow "A" Circuit Range/Performance - Air Flow Too High P00BE Mass or Volume Air Flow "B" Circuit Range/Performance - Air Flow Too Low P00BF Mass or Volume Air Flow "B" Circuit Range/Performance - Air Flow Too High

DTC Codes - P0100-P0199 - Fuel and Air Metering P0100 Mass or Volume Air Flow Circuit Malfunction P0101 Mass or Volume Air Flow Circuit Range/Performance Problem P0102 Mass or Volume Air Flow Circuit Low Input P0103 Mass or Volume Air Flow Circuit High Input P0104 Mass or Volume Air Flow Circuit Intermittent P0105 Manifold Absolute Pressure/Barometric Pressure Circuit Malfunction P0106 Manifold Absolute Pressure/Barometric Pressure Circuit Range/Performance Problem P0107 Manifold Absolute Pressure/Barometric Pressure Circuit Low Input P0108 Manifold Absolute Pressure/Barometric Pressure Circuit High Input P0109 Manifold Absolute Pressure/Barometric Pressure Circuit Intermittent P0110 Intake Air Temperature Circuit Malfunction P0111 Intake Air Temperature Circuit Range/Performance Problem P0112 Intake Air Temperature Circuit Low Input P0113 Intake Air Temperature Circuit High Input P0114 Intake Air Temperature Circuit Intermittent P0115 Engine Coolant Temperature Circuit Malfunction P0116 Engine Coolant Temperature Circuit Range/Performance Problem P0117 Engine Coolant Temperature Circuit Low Input P0118 Engine Coolant Temperature Circuit High Input

Page 94: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 91 | Anexo

P0119 Engine Coolant Temperature Circuit Intermittent P0120 Throttle Position Sensor/Switch A Circuit Malfunction P0121 Throttle Position Sensor/Switch A Circuit Range/Performance Problem P0122 Throttle Position Sensor/Switch A Circuit Low Input P0123 Throttle Position Sensor/Switch A Circuit High Input P0124 Throttle Position Sensor/Switch A Circuit Intermittent P0125 Insufficient Coolant Temperature for Closed Loop Fuel Control P0126 Insufficient Coolant Temperature for Stable Operation P0128 Coolant Thermostat (Coolant Temperature Below Thermostat Regulating Temperature) P0130 02 Sensor Circuit Malfunction (Bank I Sensor 1) P0131 02 Sensor Circuit Low Voltage (Bank I Sensor I) P0132 02 Sensor Circuit High Voltage (Bank I Sensor 1) P0133 02 Sensor Circuit Slow Response (Bank 1 Sensor 1) P0134 02 Sensor Circuit No Activity Detected (Bank I Sensor 1) P0135 02 Sensor Heater Circuit Malfunction (Bank 1 Sensor 1) P0136 02 Sensor Circuit Malfunction (Bank I Sensor 2) P0137 02 Sensor Circuit Low Voltage (Bank I Sensor 2) P0138 02 Sensor Circuit High Voltage (Bank I Sensor 2) P0139 02 Sensor Circuit Slow Response (Bank 1 Sensor 2) P0140 02 Sensor Circuit No Activity Detected (Bank 1 Sensor 2) P0141 02 Sensor Heater Circuit Malfunction (Bank 1 Sensor 2) P0142 02 Sensor Circuit Malfunction (Bank I Sensor 3) P0143 02 Sensor Circuit Low Voltage (Bank I Sensor 3) P0144 02 Sensor Circuit High Voltage (Bank I Sensor 3) P0145 02 Sensor Circuit Slow Response (Bank 1 Sensor 3) P0146 02 Sensor Circuit No Activity Detected (Bank I Sensor 3) P0147 02 Sensor Heater Circuit Malfunction (Bank I Sensor 3) P0150 02 Sensor Circuit Malfunction (Bank 2 Sensor I) P0151 02 Sensor Circuit Low Voltage (Bank 2 Sensor I) P0152 02 Sensor Circuit High Voltage (Bank 2 Sensor 1) P0153 02 Sensor Circuit Slow Response (Bank 2 Sensor 1) P0154 02 Sensor Circuit No Activity Detected (Bank 2 Sensor 1) P0155 02 Sensor Heater Circuit Malfunction (Bank 2 Sensor 1) P0156 02 Sensor Circuit Malfunction (Bank 2 Sensor 2) P0157 02 Sensor Circuit Low Voltage (Bank 2 Sensor 2) P0158 02 Sensor Circuit High Voltage (Bank 2 Sensor 2) P0159 02 Sensor Circuit Slow Response (Bank 2 Sensor 2) P0160 02 Sensor Circuit No Activity Detected (Bank 2 Sensor 2)

Page 95: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 92 | Anexo

P0161 02 Sensor Heater Circuit Malfunction (Bank 2 Sensor 2) P0162 02 Sensor Circuit Malfunction (Bank 2 Sensor 3) P0163 02 Sensor Circuit Low Voltage (Bank 2 Sensor 3) P0164 02 Sensor Circuit High Voltage (Bank 2 Sensor 3) P0165 02 Sensor Circuit Slow Response (Bank 2 Sensor 3) P0166 02 Sensor Circuit No Activity Detected (Bank 2 Sensor 3) P0167 02 Sensor Heater Circuit Malfunction (Bank 2 Sensor 3) P0170 Fuel Trim Malfunction (Bank 1) P0171 System too Lean (Bank 1) P0172 System too Rich (Bank 1) P0173 Fuel Trim Malfunction (Bank 2) P0174 System too Lean (Bank 2) P0175 System too Rich (Bank 2) P0176 Fuel Composition Sensor Circuit Malfunction P0177 Fuel Composition Sensor Circuit Range/Performance P0178 Fuel Composition Sensor Circuit Low Input P0179 Fuel Composition Sensor Circuit High Input P0180 Fuel Temperature Sensor A Circuit Malfunction P0181 Fuel Temperature Sensor A Circuit Range/Performance P0182 Fuel Temperature Sensor A Circuit Low Input P0183 Fuel Temperature Sensor A Circuit High Input P0184 Fuel Temperature Sensor A Circuit Intermittent P0185 Fuel Temperature Sensor B Circuit Malfunction P0186 Fuel Temperature Sensor B Circuit Range/Performance P0187 Fuel Temperature Sensor B Circuit Low Input P0188 Fuel Temperature Sensor B Circuit High Input P0189 Fuel Temperature Sensor B Circuit Intermittent P0190 Fuel Rail Pressure Sensor Circuit Malfunction P0191 Fuel Rail Pressure Sensor Circuit Range/Performance P0192 Fuel Rail Pressure Sensor Circuit Low Input P0193 Fuel Rail Pressure Sensor Circuit High Input P0194 Fuel Rail Pressure Sensor Circuit Intermittent P0195 Engine Oil Temperature Sensor Malfunction P0196 Engine Oil Temperature Sensor Range/Performance P0197 Engine Oil Temperature Sensor Low P0198 Engine Oil Temperature Sensor High P0199 Engine Oil Temperature Sensor Intermittent

Page 96: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 93 | Anexo

DTC Codes - P0200-P0299 - Fuel and Air Metering (Injector Circuit) P0200 Injector Circuit Malfunction P0201 Injector Circuit Malfunction - Cylinder 1 P0202 Injector Circuit Malfunction - Cylinder 2 P0203 Injector Circuit Malfunction - Cylinder 3 P0204 Injector Circuit Malfunction - Cylinder 4 P0205 Injector Circuit Malfunction - Cylinder 5 P0206 Injector Circuit Malfunction - Cylinder 6 P0207 Injector Circuit Malfunction - Cylinder 7 P0208 Injector Circuit Malfunction - Cylinder 8 P0209 Injector Circuit Malfunction - Cylinder 9 P0210 Injector Circuit Malfunction - Cylinder 10 P0211 Injector Circuit Malfunction - Cylinder 11 P0212 Injector Circuit Malfunction - Cylinder 12 P0213 Cold Start Injector 1 Malfunction P0214 Cold Start Injector 2 Malfunction P0215 Engine Shutoff Solenoid Malfunction P0216 Injection Timing Control Circuit Malfunction P0217 Engine Overtemp Condition P0218 Transmission Over Temperature Condition P0219 Engine Overspeed Condition P0220 Throttle/Petal Position Sensor/Switch B Circuit Malfunction P0221 Throttle/Petal Position Sensor/Switch B Circuit Range/Performance Problem P0222 Throttle/Petal Position Sensor/Switch B Circuit Low Input P0223 Throttle/Petal Position Sensor/Switch B Circuit High Input P0224 Throttle/Petal Position Sensor/Switch B Circuit Intermittent P0225 Throttle/Petal Position Sensor/Switch C Circuit Malfunction P0226 Throttle/Petal Position Sensor/Switch C Circuit Range/Performance Problem P0227 Throttle/Petal Position Sensor/Switch C Circuit Low Input P0228 Throttle/Petal Position Sensor/Switch C Circuit High Input P0229 Throttle/Petal Position Sensor/Switch C Circuit Intermittent P0230 Fuel Pump Primary Circuit Malfunction P0231 Fuel Pump Secondary Circuit Low P0232 Fuel Pump Secondary Circuit High P0233 Fuel Pump Secondary Circuit Intermittent P0234 Engine Turbocharger/Supercharger Overboost Condition P0235 Turbocharger Boost Sensor A Circuit Malfunction P0236 Turbocharger Boost Sensor A Circuit Range/Performance

Page 97: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 94 | Anexo

P0237 Turbocharger Boost Sensor A Circuit Low P0238 Turbocharger Boost Sensor A Circuit High P0239 Turbocharger Boost Sensor B Circuit Malfunction P0240 Turbocharger Boost Sensor B Circuit Range/Performance P0241 Turbocharger Boost Sensor B Circuit Low P0242 Turbocharger Boost Sensor B Circuit High P0243 Turbocharger Wastegate Solenoid A Malfunction P0244 Turbocharger Wastegate Solenoid A Range/Performance P0245 Turbocharger Wastegate Solenoid A Low P0246 Turbocharger Wastegate Solenoid A High P0247 Turbocharger Wastegate Solenoid B Malfunction P0248 Turbocharger Wastegate Solenoid B Range/Performance P0249 Turbocharger Wastegate Solenoid B Low P0250 Turbocharger Wastegate Solenoid B High P0251 Injection Pump Fuel Metering Control "A" Malfunction (Cam/Rotor/Injector) P0252 Injection Pump Fuel Metering Control "A" Range/Performance (Cam/Rotor/Injector) P0253 Injection Pump Fuel Metering Control "A" Low (Cam/Rotor/Injector) P0254 Injection Pump Fuel Metering Control "A" High (Cam/Rotor/Injector) P0255 Injection Pump Fuel Metering Control "A" Intermittent (Cam/Rotor/Injector) P0256 Injection Pump Fuel Metering Control "B" Malfunction (Cam/Rotor/Injector) P0257 Injection Pump Fuel Metering Control "B" Range/Performance Injector) P0258 Injection Pump Fuel Metering Control "B" Low (Cam/R P0259 Injection Pump Fuel Metering Control "B" High (Cam/R P0260 Injection Pump Fuel Metering Control "B" Intermittent Injector) P0261 Cylinder 1 Injector Circuit Low P0262 Cylinder 1 Injector Circuit High P0263 Cylinder 1 Contribution/Balance Fault P0264 Cylinder 2 Injector Circuit Low P0265 Cylinder 2 Injector Circuit High P0266 Cylinder 2 Contribution/Balance Fault P0267 Cylinder 3 Injector Circuit Low P0268 Cylinder 3 Injector Circuit High P0269 Cylinder 3 Contribution/Balance Fault P0270 Cylinder 4 Injector Circuit Low P0271 Cylinder 4 Injector Circuit High P0272 Cylinder 4 Contribution/Balance Fault P0273 Cylinder 5 Injector Circuit Low P0274 Cylinder 5 Injector Circuit High

Page 98: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 95 | Anexo

P0275 Cylinder 5 Contribution/Balance Fault P0276 Cylinder 6 Injector Circuit Low P0277 Cylinder 6 Injector Circuit High P0278 Cylinder 6 Contribution/Balance Fault P0279 Cylinder 7 Injector Circuit Low P0280 Cylinder 7 Injector Circuit High P0281 Cylinder 7 Contribution/Balance Fault P0282 Cylinder 8 Injector Circuit Low P0283 Cylinder 8 Injector Circuit High P0284 Cylinder 8 Contribution/Balance Fault P0285 Cylinder 9 Injector Circuit Low P0286 Cylinder 9 Injector Circuit High P0287 Cylinder 9 Contribution/Balance Fault P0288 Cylinder 10 Injector Circuit Low P0289 Cylinder 10 Injector Circuit High P0290 Cylinder 10 Contribution/Balance Fault P0291 Cylinder 11 Injector Circuit Low P0292 Cylinder 11 Injector Circuit High P0293 Cylinder 11 Contribution/Balance Fault P0294 Cylinder 12 Injector Circuit Low P0295 Cylinder 12 Injector Circuit High P0296 Cylinder 12 Contribution/Range Fault P0297 Vehicle Overspeed Condition P0298 Engine Oil Over Temperature Condition P0299 Turbocharger/Supercharger "A" Underboost Condition

DTC Codes - P0300-P0399 - Ignition System or Misfire P0300 Random/Multiple Cylinder Misfire Detected P0301 Cylinder 1 Misfire Detected P0302 Cylinder 2 Misfire Detected P0303 Cylinder 3 Misfire Detected P0304 Cylinder 4 Misfire Detected P0305 Cylinder 5 Misfire Detected P0306 Cylinder 6 Misfire Detected P0307 Cylinder 7 Misfire Detected P0308 Cylinder 8 Misfire Detected P0309 Cylinder 9 Misfire Detected P0310 Cylinder 10 Misfire Detected

Page 99: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 96 | Anexo

P0311 Cylinder 11 Misfire Detected P0312 Cylinder 12 Misfire Detected P0313 Misfire Detected with Low Fuel P0314 Single Cylinder Misfire (Cylinder not Specified) P0315 Crankshaft Position System Variation Not Learned P0316 Misfire Detected On Startup (First 1000 Revolutions) P0317 Rough Road Hardware Not Present P0318 Rough Road Sensor A Signal Circuit P0319 Rough Road Sensor B Signal Circuit P0320 Ignition/Distributor Engine Speed Input Circuit Malfunction P0321 Ignition/Distributor Engine Speed Input Circuit Range/Performance P0322 Ignition/Distributor Engine Speed Input Circuit No Signal P0323 Ignition/Distributor Engine Speed Input Circuit Intermittent P0324 Knock Control System Error P0325 Knock Sensor 1 Circuit Malfunction (Bank I or Single Sensor) P0326 Knock Sensor 1 Circuit Range/Performance (Bank 1 or Single Sensor) P0327 Knock Sensor 1 Circuit Low Input (Bank I or Single Sensor) P0328 Knock Sensor 1 Circuit High Input (Bank I or Single Sensor) P0329 Knock Sensor 1 Circuit Intermittent (Bank 1 or Single Sensor) P0330 Knock Sensor 2 Circuit Malfunction (Bank 2) P0331 Knock Sensor 2 Circuit Range/Performance (Bank 2) P0332 Knock Sensor 2 Circuit Low Input (Bank 2) P0333 Knock Sensor 2 Circuit High Input (Bank 2) P0334 Knock Sensor 2 Circuit Intermittent (Bank 2) P0335 Crankshaft Position Sensor A Circuit Malfunction P0336 Crankshaft Position Sensor A Circuit Range/Performance P0337 Crankshaft Position Sensor A Circuit Low Input P0338 Crankshaft Position Sensor A Circuit High Input P0339 Crankshaft Position Sensor A Circuit Intermittent P0340 Camshaft Position Sensor Circuit Malfunction P0341 Camshaft Position Sensor Circuit Range/Performance (Bank 1) P0342 Camshaft Position Sensor A Circuit Low Input (Bank 1) P0343 Camshaft Position Sensor A Circuit High Input (Bank 1) P0344 Camshaft Position Sensor A Circuit Intermittent (Bank 1) P0345 Camshaft Position Sensor A Circuit Malfunction (Bank 2) P0346 Camshaft Position Sensor A Circuit Range/Performance (Bank 2) P0347 Camshaft Position Sensor A Circuit Low Input (Bank 2) P0348 Camshaft Position Sensor A Circuit High Input (Bank 2)

Page 100: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 97 | Anexo

P0349 Camshaft Position Sensor A Circuit Intermittent (Bank 2) P0350 Ignition Coil Primary/Secondary Circuit Malfunction P0351 Ignition Coil A Primary/Secondary Circuit Malfunction P0352 Ignition Coil B Primary/Secondary Circuit Malfunction P0353 Ignition Coil C Primary/Secondary Circuit Malfunction P0354 Ignition Coil D Primary/Secondary Circuit Malfunction P0355 Ignition Coil E Primary/Secondary Circuit Malfunction P0356 Ignition Coil F Primary/Secondary Circuit Malfunction P0357 Ignition Coil G Primary/Secondary Circuit Malfunction P0358 Ignition Coil H Primary/Secondary Circuit Malfunction P0359 Ignition Coil I Primary/Secondary Circuit Malfunction P0360 Ignition Coil J Primary/Secondary Circuit Malfunction P0361 Ignition Coil K Primary/Secondary Circuit Malfunction P0362 Ignition Coil L Primary/Secondary Circuit Malfunction P0363 Misfire Detected - Fueling Disabled P0364 Reserved P0365 Camshaft Position Sensor "B" Circuit (Bank 1) P0366 Camshaft Position Sensor "B" Circuit Range/Performance (Bank 1) P0367 Camshaft Position Sensor "B" Circuit Low (Bank 1) P0368 Camshaft Position Sensor "B" Circuit High (Bank 1) P0369 Camshaft Position Sensor "B" Circuit Intermittent (Bank 1) P0370 Timing Reference High Resolution Signal A Malfunction P0371 Timing Reference High Resolution Signal A Too Many Pulses P0372 Timing Reference High Resolution Signal A Too Few Pulses P0373 Timing Reference High Resolution Signal A Intermittent/Erratic Pulses P0374 Timing Reference High Resolution Signal A No Pulses P0375 Timing Reference High Resolution Signal B Malfunction P0376 Timing Reference High Resolution Signal B Too Many Pulses P0377 Timing Reference High Resolution Signal B Too Few Pulses P0378 Timing Reference High Resolution Signal B Intermittent/Erratic Pulses P0379 Timing Reference High Resolution Signal B No Pulses P0380 Glow Plug/Heater Circuit "A" P0381 Glow Plug/Heater Indicator Circuit Malfunction P0382 Glow Plug/Heater Circuit "B" P0383 Glow Plug Control Module Control Circuit Low P0384 Glow Plug Control Module Control Circuit High P0385 Crankshaft Position Sensor B Circuit Malfunction P0386 Crankshaft Position Sensor B Circuit Range/Performance

Page 101: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 98 | Anexo

P0387 Crankshaft Position Sensor B Circuit Low Input P0388 Crankshaft Position Sensor B Circuit High Input P0389 Crankshaft Position Sensor B Circuit Intermittent P0390 Camshaft Position Sensor "B" Circuit (Bank 2) P0391 Camshaft Position Sensor "B" Circuit Range/Performance (Bank 2) P0392 Camshaft Position Sensor "B" Circuit Low (Bank 2) P0393 Camshaft Position Sensor "B" Circuit High (Bank 2) P0394 Camshaft Position Sensor "B" Circuit Intermittent (Bank 2)

DTC Codes - P0400-P0499 - Auxiliary Emissions Controls P0400 Exhaust Gas Recirculation Flow Malfunction P0401 Exhaust Gas Recirculation Flow Insufficient Detected P0402 Exhaust Gas Recirculation Flow Excessive Detected P0403 Exhaust Gas Recirculation Circuit Malfunction P0404 Exhaust Gas Recirculation Circuit Range/Performance P0405 Exhaust Gas Recirculation Sensor A Circuit Low P0406 Exhaust Gas Recirculation Sensor A Circuit High P0407 Exhaust Gas Recirculation Sensor B Circuit Low P0408 Exhaust Gas Recirculation Sensor B Circuit High P0409 Exhaust Gas Recirculation Sensor "A" Circuit P0410 Secondary Air Injection System Malfunction P0411 Secondary Air Injection System Incorrect Flow Detected P0412 Secondary Air Injection System Switching Valve A Circuit Malfunction P0413 Secondary Air Injection System Switching Valve A Circuit Open P0414 Secondary Air Injection System Switching Valve A Circuit Shorted P0415 Secondary Air Injection System Switching Valve B Circuit Malfunction P0416 Secondary Air Injection System Switching Valve B Circuit Open P0417 Secondary Air Injection System Switching Valve B Circuit Shorted P0418 Secondary Air Injection System Relay "A" Circuit Malfunction P0419 Secondary Air Injection System Relay "B" Circuit Malfunction P0420 Catalyst System Efficiency Below Threshold (Bank 1) P0421 Warm Up Catalyst Efficiency Below Threshold (Bank 1) P0422 Main Catalyst Efficiency Below Threshold (Bank 1) P0423 Heated Catalyst Efficiency Below Threshold (Bank 1) P0424 Heated Catalyst Temperature Below Threshold (Bank 1) P0424 Heated Catalyst Temperature Below Threshold (Bank 1) P0425 Catalyst Temperature Sensor (Bank 1) P0426 Catalyst Temperature Sensor Range/Performance (Bank 1)

Page 102: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 99 | Anexo

P0427 Catalyst Temperature Sensor Low (Bank 1) P0428 Catalyst Temperature Sensor High (Bank 1) P0429 Catalyst Heater Control Circuit P0430 Catalyst System Efficiency Below Threshold (Bank 2) P0431 Warm Up Catalyst Efficiency Below Threshold (Bank 2) P0432 Main Catalyst Efficiency Below Threshold (Bank 2) P0433 Heated Catalyst Efficiency Below Threshold (Bank 2) P0434 Heated Catalyst Temperature Below Threshold (Bank 2) P0435 Catalyst Temperature Sensor (Bank 2) P0436 Catalyst Temperature Sensor Range/Performance (Bank 2) P0437 Catalyst Temperature Sensor Low (Bank 2) P0438 Catalyst Temperature Sensor High (Bank 2) P0439 Catalyst Heater Control Circuit P0440 Evaporative Emission Control System Malfunction P0441 Evaporative Emission Control System Incorrect Purge Flow P0442 Evaporative Emission Control System Leak Detected (small leak) P0443 Evaporative Emission Control System Purge Control Valve Circuit P0444 Evaporative Emission Control System Purge Control Valve Circuit Open P0445 Evaporative Emission Control System Purge Control Valve Circuit Shorted P0446 Evaporative Emission Control System Vent Control Circuit Malfunction P0447 Evaporative Emission Control System Vent Control Circuit Open P0448 Evaporative Emission Control System Vent Control Circuit Shorted P0449 Evaporative Emission Control System Vent Valve/Solenoid Circuit Malfunction P0450 Evaporative Emission Control System Pressure Sensor Malfunction P0451 Evaporative Emission Control System Pressure Sensor Range/Performance P0452 Evaporative Emission Control System Pressure Sensor Low Input P0453 Evaporative Emission Control System Pressure Sensor High Input P0454 Evaporative Emission Control System Pressure Sensor Intermittent P0455 Evaporative Emission Control System Leak Detected (gross leak) P0456 Evaporative Emissions System Small Leak Detected P0457 Evaporative Emission Control System Leak Detected P0458 Evaporative Emission System Purge Control Valve Circuit Low P0459 Evaporative Emission System Purge Control Valve Circuit High P0460 Fuel Level Sensor Circuit Malfunction P0461 Fuel Level Sensor Circuit Range/Performance P0462 Fuel Level Sensor Circuit Low Input P0463 Fuel Level Sensor Circuit High Input P0464 Fuel Level Sensor Circuit Intermittent

Page 103: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 100 | Anexo

P0465 Purge Flow Sensor Circuit Malfunction P0466 Purge Flow Sensor Circuit Range/Performance P0467 Purge Flow Sensor Circuit Low Input P0468 Purge Flow Sensor Circuit High Input P0469 Purge Flow Sensor Circuit Intermittent P0470 Exhaust Pressure Sensor Malfunction P0471 Exhaust Pressure Sensor Range/Performance P0472 Exhaust Pressure Sensor Low P0473 Exhaust Pressure Sensor High P0474 Exhaust Pressure Sensor Intermittent P0475 Exhaust Pressure Control Valve Malfunction P0476 Exhaust Pressure Control Valve Range/Performance P0477 Exhaust Pressure Control Valve Low P0478 Exhaust Pressure Control Valve High P0479 Exhaust Pressure Control Valve Intermittent P0480 Cooling Fan I Control Circuit Malfunction P0481 Cooling Fan 2 Control Circuit Malfunction P0482 Cooling Fan 3 Control Circuit Malfunction P0483 Cooling Fan Rationality Check Malfunction P0484 Cooling Fan Circuit Over Current P0485 Cooling Fan Power/Ground Circuit Malfunction P0486 Exhaust Gas Recirculation Sensor "B" Circuit P0487 Exhaust Gas Recirculation Throttle Control Circuit "A" Open P0488 Exhaust Gas Recirculation Throttle Control Circuit "A" Range/Performance P0489 Exhaust Gas Recirculation "A" Control Circuit Low P0490 Exhaust Gas Recirculation "A" Control Circuit High P0491 Secondary Air Injection System Insufficient Flow Bank 1 P0492 Secondary Air Injection System Insufficient Flow Bank 2 P0493 Fan Overspeed P0494 Fan Speed Low P0495 Fan Speed High P0496 EVAP Flow During A Non-Purge Condition P0497 Evaporative Emission System Low Purge Flow P0498 Evaporative Emission System Vent Valve Control Circuit Low P0499 Evaporative Emission System Vent Valve Control Circuit High

DTC Codes - P0500-P0599 - Vehicle Speed Controls and Idle Control System P0500 Vehicle Speed Sensor Malfunction

Page 104: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 101 | Anexo

P0501 Vehicle Speed Sensor Range/Performance P0502 Vehicle Speed Sensor Low Input P0503 Vehicle Speed Sensor Intermittent/Erratic/High P0504 Brake Switch "A"/"B" Correlation P0505 Idle Control System Malfunction P0506 Idle Control System RPM Lower Than Expected P0507 Idle Control System RPM Higher Than Expected P0508 Idle Air Control System Circuit Low P0509 Idle Air Control System Circuit High P0510 Closed Throttle Position Switch Malfunction P0511 Idle Air Control Circuit P0512 Starter Request Circuit P0513 Incorrect Immobilizer Key P0514 Battery Temperature Sensor Circuit Range/Performance P0515 Battery Temperature Sensor Circuit P0516 Battery Temperature Sensor Circuit Low P0517 Battery Temperature Sensor Circuit High P0518 Idle Air Control Circuit Intermittent P0519 Idle Air Control System Performance P0520 Engine Oil Pressure Sensor/Switch Circuit Malfunction P0521 Engine Oil Pressure Sensor/Switch Circuit Range/Performance P0522 Engine Oil Pressure Sensor/Switch Circuit Low Voltage P0523 Engine Oil Pressure Sensor/Switch Circuit High Voltage P0524 Engine Oil Pressure Too Low P0525 Cruise Control Servo Control Circuit Range/Performance P0526 Fan Speed Sensor Circuit P0527 Fan Speed Sensor Circuit Range/Performance P0528 Fan Speed Sensor Circuit No Signal P0529 Fan Speed Sensor Circuit Intermittent P0530 A/C Refrigerant Pressure Sensor Circuit Malfunction P0531 A/C Refrigerant Pressure Sensor Circuit Range/Performance P0532 A/C Refrigerant Pressure Sensor Circuit Low Input P0533 A/C Refrigerant Pressure Sensor Circuit High Input P0534 Air Conditioner Refrigerant Charge Loss P0535 A/C Evaporator Temperature Sensor Circuit P0536 A/C Evaporator Temperature Sensor Circuit Range/Performance P0537 A/C Evaporator Temperature Sensor Circuit Low P0538 A/C Evaporator Temperature Sensor Circuit High

Page 105: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 102 | Anexo

P0539 A/C Evaporator Temperature Sensor Circuit Intermittent P0540 Intake Air Heater "A" Circuit P0541 Intake Air Heater "A" Circuit Low P0542 Intake Air Heater "A" Circuit High P0543 Intake Air Heater "A" Circuit Open P0544 Exhaust Gas Temperature Sensor Circuit Bank 1 Sensor 1 P0545 Exhaust Gas Temperature Sensor Circuit Low Bank 1 Sensor 1 P0546 Exhaust Gas Temperature Sensor Circuit High Bank 1 Sensor 1 P0547 Exhaust Gas Temperature Sensor Circuit Bank 2 Sensor 1 P0548 Exhaust Gas Temperature Sensor Circuit Low Bank 2 Sensor 1 P0549 Exhaust Gas Temperature Sensor Circuit High Bank 2 Sensor 1 P0550 Power Steering Pressure Sensor Circuit Malfunction P0551 Power Steering Pressure Sensor Circuit Range/Performance P0552 Power Steering Pressure Sensor Circuit Low Input P0553 Power Steering Pressure Sensor Circuit High Input P0554 Power Steering Pressure Sensor Circuit Intermittent P0555 Brake Booster Pressure Sensor Circuit P0556 Brake Booster Pressure Sensor Circuit Range/Performance P0557 Brake Booster Pressure Sensor Circuit Low P0558 Brake Booster Pressure Sensor Circuit High P0559 Brake Booster Pressure Sensor Circuit Intermittent P0560 System Voltage Malfunction P0561 System Voltage Unstable P0562 System Voltage Low P0563 System Voltage High P0564 Cruise Control Multi-Function Input "A" Circuit P0565 Cruise Control On Signal Malfunction P0566 Cruise Control Off Signal Malfunction P0567 Cruise Control Resume Signal Malfunction P0568 Cruise Control Set Signal Malfunction P0569 Cruise Control Coast Signal Malfunction P0570 Cruise Control Accel Signal Malfunction P0571 Cruise Control/Brake Switch A Circuit Malfunction P0572 Cruise Control/Brake Switch A Circuit Low P0573 Cruise Control/Brake Switch A Circuit High P0574 Cruise Control System - Vehicle Speed Too High P0575 Cruise Control Input Circuit P0576 Cruise Control Input Circuit Low

Page 106: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 103 | Anexo

P0577 Cruise Control Input Circuit High P0578 Cruise Control Multi-Function Input "A" Circuit Stuck P0579 Cruise Control Multi-Function Input "A" Circuit Range/Performance P0580 Cruise Control Multi-Function Input "A" Circuit Low P0581 Cruise Control Multi-Function Input "A" Circuit High P0582 Cruise Control Vacuum Control Circuit/Open P0583 Cruise Control Vacuum Control Circuit Low P0584 Cruise Control Vacuum Control Circuit High P0585 Cruise Control Multi-Function Input "A"/"B" Correlation P0586 Cruise Control Vent Control Circuit/Open P0587 Cruise Control Vent Control Circuit Low P0588 Cruise Control Vent Control Circuit High P0589 Cruise Control Multi-Function Input "B" Circuit P0590 Cruise Control Multi-Function Input "B" Circuit Stuck P0591 Cruise Control Multi-Function Input "B" Circuit Range/Performance P0592 Cruise Control Multi-Function Input "B" Circuit Low P0593 Cruise Control Multi-Function Input "B" Circuit High P0594 Cruise Control Servo Control Circuit/Open P0595 Cruise Control Servo Control Circuit Low P0596 Cruise Control Servo Control Circuit High P0597 Thermostat Heater Control Circuit/Open P0598 Thermostat Heater Control Circuit Low P0599 Thermostat Heater Control Circuit High

DTC Codes - P0600-P0699 - Computer Output Circuit P0600 Serial Communication Link Malfunction P0601 Internal Control Module Memory Check Sum Error P0602 Control Module Programming Error P0603 Internal Control Module Keep Alive Memory (KAM) Error P0604 Internal Control Module Random Access Memory (RAM) Error P0605 Internal Control Module Read Only Memory (ROM) Error P0606 PCM Processor Fault P0607 Control Module Performance P0608 Control Module VSS Output "A" Malfunction P0609 Control Module VSS Output "B" Malfunction P0610 Control Module Vehicle Options Error P0611 Fuel Injector Control Module Performance P0612 Fuel Injector Control Module Relay Control

Page 107: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 104 | Anexo

P0613 TCM Processor P0614 ECM / TCM Incompatible P0615 Starter Relay Circuit P0616 Starter Relay Circuit Low P0617 Starter Relay Circuit High P0618 Alternative Fuel Control Module KAM Error P0619 Alternative Fuel Control Module RAM/ROM Error P0620 Generator Control Circuit Malfunction P0621 Generator Lamp "L" Control Circuit Malfunction P0622 Generator Field "F" Control Circuit Malfunction P0623 Generator Lamp Control Circuit P0624 Fuel Cap Lamp Control Circuit P0625 Generator Field/F Terminal Circuit Low P0626 Generator Field/F Terminal Circuit High P0627 Fuel Pump “A” Control Circuit /Open P0628 Fuel Pump “A” Control Circuit Low P0629 Fuel Pump “A” Control Circuit High P0630 VIN Not Programmed or Incompatible – ECM/PCM P0631 VIN Not Programmed or Incompatible – TCM P0632 Odometer Not Programmed – ECM/PCM P0633 Immobilizer Key Not Programmed – ECM/PCM P0634 PCM/ECM/TCM Internal Temperature Too High P0635 Power Steering Control Circuit P0636 Power Steering Control Circuit Low P0637 Power Steering Control Circuit High P0638 Throttle Actuator Control Range/Performance (Bank 1) P0639 Throttle Actuator Control Range/Performance (Bank 2) P0640 Intake Air Heater Control Circuit P0641 Sensor Reference Voltage “A” Circuit/Open P0642 Sensor Reference Voltage “A” Circuit Low P0643 Sensor Reference Voltage “A” Circuit High P0644 Driver Display Serial Communication Circuit P0645 A/C Clutch Relay Control Circuit P0646 A/C Clutch Relay Control Circuit Low P0647 A/C Clutch Relay Control Circuit High P0648 Immobilizer Lamp Control Circuit P0649 Speed Control Lamp Control Circuit P0650 Malfunction Indicator Lamp (MIL) Control Circuit Malfunction

Page 108: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 105 | Anexo

P0651 Sensor Reference Voltage “B” Circuit/Open P0652 Sensor Reference Voltage “B” Circuit Low P0653 Sensor Reference Voltage “B” Circuit High P0654 Engine RPM Output Circuit Malfunction P0655 Engine Hot Lamp Output Control Circuit Malfunction P0656 Fuel Level Output Circuit Malfunction P0657 Actuator Supply Voltage "A" Circuit/Open P0658 Actuator Supply Voltage "A" Circuit Low P0659 Actuator Supply Voltage "A" Circuit High P0660 Intake Manifold Tuning Valve Control Circuit/Open Bank 1 P0661 Intake Manifold Tuning Valve Control Circuit Low Bank 1 P0662 Intake Manifold Tuning Valve Control Circuit High Bank 1 P0663 Intake Manifold Tuning Valve Control Circuit/Open Bank 2 P0664 Intake Manifold Tuning Valve Control Circuit Low Bank 2 P0665 Intake Manifold Tuning Valve Control Circuit High Bank 2 P0666 PCM/ECM/TCM Internal Temperature Sensor Circuit P0667 PCM/ECM/TCM Internal Temperature Sensor Range/Performance P0668 PCM/ECM/TCM Internal Temperature Sensor Circuit Low P0669 PCM/ECM/TCM Internal Temperature Sensor Circuit High P0670 Glow Plug Module Control Circuit P0671 Cylinder 1 Glow Plug Circuit P0672 Cylinder 2 Glow Plug Circuit P0673 Cylinder 3 Glow Plug Circuit P0674 Cylinder 4 Glow Plug Circuit P0675 Cylinder 5 Glow Plug Circuit P0676 Cylinder 6 Glow Plug Circuit P0677 Cylinder 7 Glow Plug Circuit P0678 Cylinder 8 Glow Plug Circuit P0679 Cylinder 9 Glow Plug Circuit P0680 Cylinder 10 Glow Plug Circuit P0681 Cylinder 11 Glow Plug Circuit P0682 Cylinder 12 Glow Plug Circuit P0683 Glow Plug Control Module to PCM Communication Circuit P0684 Glow Plug Control Module to PCM Communication Circuit Range/Performance P0685 ECM/PCM Power Relay Control Circuit /Open P0686 ECM/PCM Power Relay Control Circuit Low P0687 ECM/PCM Power Relay Control Circuit High P0688 ECM/PCM Power Relay Sense Circuit /Open

Page 109: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 106 | Anexo

P0689 ECM/PCM Power Relay Sense Circuit Low P0690 ECM/PCM Power Relay Sense Circuit High P0691 Fan 1 Control Circuit Low P0692 Fan 1 Control Circuit High P0693 Fan 2 Control Circuit Low P0694 Fan 2 Control Circuit High P0695 Fan 3 Control Circuit Low P0696 Fan 3 Control Circuit High P0697 Sensor Reference Voltage “C” Circuit/Open P0698 Sensor Reference Voltage “C” Circuit Low P0699 Sensor Reference Voltage “C” Circuit High

DTC Codes - P0700-P0899 - Transmission P0700 Transmission Control System Malfunction P0701 Transmission Control System Range/Performance P0702 Transmission Control System Electrical P0703 Torque Converter/Brake Switch B Circuit Malfunction P0704 Clutch Switch Input Circuit Malfunction P0705 Transmission Range Sensor Circuit malfunction (PRNDL Input) P0706 Transmission Range Sensor Circuit Range/Performance P0707 Transmission Range Sensor Circuit Low Input P0708 Transmission Range Sensor Circuit High Input P0709 Transmission Range Sensor Circuit Intermittent P0710 Transmission Fluid Temperature Sensor Circuit Malfunction P0711 Transmission Fluid Temperature Sensor Circuit Range/Performance P0712 Transmission Fluid Temperature Sensor Circuit Low Input P0713 Transmission Fluid Temperature Sensor Circuit High Input P0714 Transmission Fluid Temperature Sensor Circuit Intermittent P0715 Input/Turbine Speed Sensor Circuit Malfunction P0716 Input/Turbine Speed Sensor Circuit Range/Performance P0717 Input/Turbine Speed Sensor Circuit No Signal P0718 Input/Turbine Speed Sensor Circuit Intermittent P0719 Torque Converter/Brake Switch B Circuit Low P0720 Output Speed Sensor Circuit Malfunction P0721 Output Speed Sensor Range/Performance P0722 Output Speed Sensor No Signal P0723 Output Speed Sensor Intermittent P0724 Torque Converter/Brake Switch B Circuit High P0725 Engine Speed input Circuit Malfunction

Page 110: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 107 | Anexo

P0726 Engine Speed Input Circuit Range/Performance P0727 Engine Speed Input Circuit No Signal P0728 Engine Speed Input Circuit Intermittent P0729 Gear 6 Incorrect Ratio P0730 Incorrect Gear Ratio P0731 Gear I Incorrect ratio P0732 Gear 2 Incorrect ratio P0733 Gear 3 Incorrect ratio P0734 Gear 4 Incorrect ratio P0735 Gear 5 Incorrect ratio P0736 Reverse incorrect gear ratio P0737 TCM Engine Speed Output Circuit P0738 TCM Engine Speed Output Circuit Low P0739 TCM Engine Speed Output Circuit High P0740 Torque Converter Clutch Circuit Malfunction P0741 Torque Converter Clutch Circuit Performance or Stuck Off P0742 Torque Converter Clutch Circuit Stock On P0743 Torque Converter Clutch Circuit Electrical P0744 Torque Converter Clutch Circuit Intermittent P0745 Pressure Control Solenoid Malfunction P0746 Pressure Control Solenoid Performance or Stuck Off P0747 Pressure Control Solenoid Stuck On P0748 Pressure Control Solenoid Electrical P0749 Pressure Control Solenoid Intermittent P0750 Shift Solenoid A Malfunction P0751 Shift Solenoid A Performance or Stuck Off P0752 Shift Solenoid A Stuck On P0753 Shift Solenoid A Electrical P0754 Shift Solenoid A Intermittent P0755 Shift Solenoid B Malfunction P0756 Shift Solenoid B Performance or Stock Off P0757 Shift Solenoid B Stuck On P0758 Shift Solenoid B Electrical P0759 Shift Solenoid B Intermittent P0760 Shift Solenoid C Malfunction P0761 Shift Solenoid C Performance or Stuck Off P0762 Shift Solenoid C Stuck On P0763 Shift Solenoid C Electrical

Page 111: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 108 | Anexo

P0764 Shift Solenoid C Intermittent P0765 Shift Solenoid D Malfunction P0766 Shift Solenoid D Performance or Stuck Off P0767 Shift Solenoid D Stuck On P0768 Shift Solenoid D Electrical P0769 Shift Solenoid D Intermittent P0770 Shift Solenoid E Malfunction P0771 Shift Solenoid E Performance or Stuck Off P0772 Shift Solenoid E Stuck On P0773 Shift Solenoid E Electrical P0774 Shift Solenoid E Intermittent P0775 Pressure Control Solenoid "B" P0776 Pressure Control Solenoid "B" Performance or Stuck off P0777 Pressure Control Solenoid "B" Stuck On P0778 Pressure Control Solenoid "B" Electrical P0779 Pressure Control Solenoid "B" Intermittent P0780 Shift Malfunction P0781 1-2 Shift Malfunction P0782 2-3 Shift Malfunction P0783 3-4 Shift Malfunction P0784 4-5 Shift Malfunction P0785 Shift/Timing Solenoid Malfunction P0786 Shift/Timing Solenoid Range/Performance P0787 Shift/Timing Solenoid Low P0788 Shift/Timing Solenoid High P0789 Shift/Timing Solenoid Intermittent P0790 Normal/Performance Switch Circuit Malfunction P0791 Intermediate Shaft Speed Sensor “A” Circuit P0792 Intermediate Shaft Speed Sensor “A” Circuit Range/Performance P0793 Intermediate Shaft Speed Sensor “A” Circuit No Signal P0794 Intermediate Shaft Speed Sensor “A” Circuit Intermittent P0795 Pressure Control Solenoid "C" P0796 Pressure Control Solenoid "C" Performance or Stuck off P0797 Pressure Control Solenoid "C" Stuck On P0798 Pressure Control Solenoid "C" Electrical P0799 Pressure Control Solenoid "C" Intermittent P0800 Transfer Case Control System (MIL Request) P0801 Reverse Inhibit Control Circuit Malfunction

Page 112: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 109 | Anexo

P0802 Transmission Control System MIL Request Circuit/Open P0803 1-4 Upshift (Skip Shift) Solenoid Control Circuit Malfunction P0804 1-4 Upshift (Skip Shift) Lamp Control Circuit Malfunction P0805 Clutch Position Sensor Circuit P0806 Clutch Position Sensor Circuit Range/Performance P0807 Clutch Position Sensor Circuit Low P0808 Clutch Position Sensor Circuit High P0809 Clutch Position Sensor Circuit Intermittent P0810 Clutch Position Control Error P0811 Excessive Clutch Slippage P0812 Reverse Input Circuit P0813 Reverse Output Circuit P0814 Transmission Range Display Circuit P0815 Upshift Switch Circuit P0816 Downshift Switch Circuit P0817 Starter Disable Circuit P0818 Driveline Disconnect Switch Input Circuit P0819 Up and Down Shift Switch to Transmission Range Correlation P0820 Gear Lever X-Y Position Sensor Circuit P0821 Gear Lever X Position Circuit P0822 Gear Lever Y Position Circuit P0823 Gear Lever X Position Circuit Intermittent P0824 Gear Lever Y Position Circuit Intermittent P0825 Gear Lever Push-Pull Switch (Shift Anticipate P0826 Up and Down Shift Switch Circuit P0827 Up and Down Shift Switch Circuit Low P0828 Up and Down Shift Switch Circuit High P0829 5-6 Shift P0830 Clutch Pedal Switch "A" Circuit P0831 Clutch Pedal Switch "A" Circuit Low P0832 Clutch Pedal Switch "A" Circuit High P0833 Clutch Pedal Switch "B" Circuit P0834 Clutch Pedal Switch "B" Circuit Low P0835 Clutch Pedal Switch "B" Circuit High P0836 Four Wheel Drive (4WD) Switch Circuit P0837 Four Wheel Drive (4WD) Switch Circuit Range/Performance P0838 Four Wheel Drive (4WD) Switch Circuit Low P0839 Four Wheel Drive (4WD) Switch Circuit High P0840 Transmission Fluid Pressure Sensor/Switch "A" Circuit

Page 113: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 110 | Anexo

P0840 Transmission Fluid Pressure Sensor/Switch "A" Circuit P0841 Transmission Fluid Pressure Sensor/Switch "A" Circuit Range/Performance P0842 Transmission Fluid Pressure Sensor/Switch "A" Circuit Low P0843 Transmission Fluid Pressure Sensor/Switch "A" Circuit High P0844 Transmission Fluid Pressure Sensor/Switch "A" Circuit Intermittent P0845 Transmission Fluid Pressure Sensor/Switch "B" Circuit P0846 Transmission Fluid Pressure Sensor/Switch "B" Circuit Range/Performance P0847 Transmission Fluid Pressure Sensor/Switch "B" Circuit Low P0848 Transmission Fluid Pressure Sensor/Switch "B" Circuit High P0849 Transmission Fluid Pressure Sensor/Switch "B" Circuit Intermittent P0850 Park/Neutral Switch Input Circuit P0851 Park/Neutral Switch Input Circuit Low P0852 Park/Neutral Switch Input Circuit High P0853 Drive Switch Input Circuit P0854 Drive Switch Input Circuit Low P0855 Drive Switch Input Circuit High P0856 Traction Control Input Signal P0857 Traction Control Input Signal Range/Performance P0858 Traction Control Input Signal Low P0859 Traction Control Input Signal High P0860 Gear Shift Module Communication Circuit P0861 Gear Shift Module Communication Circuit Low P0862 Gear Shift Module Communication Circuit High P0863 TCM Communication Circuit P0864 TCM Communication Circuit Range/Performance P0865 TCM Communication Circuit Low P0866 TCM Communication Circuit High P0867 Transmission Fluid Pressure P0868 Transmission Fluid Pressure Low P0869 Transmission Fluid Pressure High P0869 Transmission Fluid Pressure High P0870 Transmission Fluid Pressure Sensor/Switch “C” Circuit P0871 Transmission Fluid Pressure Sensor/Switch “C” Circuit Range/Performance P0872 Transmission Fluid Pressure Sensor/Switch “C” Circuit Low P0873 Transmission Fluid Pressure Sensor/Switch “C” Circuit High P0874 Transmission Fluid Pressure Sensor/Switch “C” Circuit Intermittent P0875 Transmission Fluid Pressure Sensor/Switch “D” Circuit P0876 Transmission Fluid Pressure Sensor/Switch “D” Circuit Range/Performance P0877 Transmission Fluid Pressure Sensor/Switch “D” Circuit Low

Page 114: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 111 | Anexo

P0878 Transmission Fluid Pressure Sensor/Switch “D” Circuit High P0879 Transmission Fluid Pressure Sensor/Switch “D” Circuit Intermittent P0880 TCM Power Input Signal P0881 TCM Power Input Signal Range/Performance P0882 TCM Power Input Signal Low P0883 TCM Power Input Signal High P0884 TCM Power Input Signal Intermittent P0885 TCM Power Relay Control Circuit/Open P0886 TCM Power Relay Control Circuit Low P0887 TCM Power Relay Control Circuit High P0888 TCM Power Relay Sense Circuit P0889 TCM Power Relay Sense Circuit Range/Performance P0890 TCM Power Relay Sense Circuit Low P0891 TCM Power Relay Sense Circuit High P0892 TCM Power Relay Sense Circuit Intermittent P0893 Multiple Gears Engaged P0894 Transmission Component Slipping P0895 Shift Time Too Short P0896 Shift Time Too Long P0897 Transmission Fluid Deteriorated P0898 Transmission Control System MIL Request Circuit Low P0899 Transmission Control System MIL Request Circuit High

P2xxx Generic Powertrain Diagnostic Codes DTC P2000 NOx Trap Efficiency Below Threshold Bank1 P2001 NOx Trap Efficiency Below Threshold Bank2 P2002 Diesel Particulate Filter Efficiency Below Threshold Bank 1 P2003 Diesel Particulate Filter Efficiency Below Threshold Bank 2 P2004 Intake Manifold Runner Ctrl Stuck Open Bank1 P2005 Intake Manifold Runner Ctrl Stuck Open Bank2 P2006 Intake Manifold Runner Ctrl Stuck Closed Bank1 P2007 Intake Manifold Runner Ctrl Stuck Closed Bank2 P2008 Intake Manifold Runner Control Circuit Open Bank 1 P2009 Intake Manifold Runner Ctrl Circ Low Bank1 P2010 Intake Manifold Runner Ctrl Circ High Bank1 P2011 Intake Manifold Runner Control Circuit Open Bank 2 P2012 Intake Manifold Runner Ctrl Circ Low Bank2 P2013 Intake Manifold Runner Ctrl Circ High Bank2

Page 115: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 112 | Anexo

P2014 Intake Manifold Runner Pos Sensor/Switch Circ Bank1 P2015 Intake Manifold Runner Pos Sensor/Switch Circ Range/Perf Bank1 P2016 Intake Manifold Runner Pos Sensor/Switch Circ Low Bank1 P2017 Intake Manifold Runner Pos Sensor/Switch Circ High Bank1 P2018 Intake Manifold Runner Pos Sensor/Switch Circ Interm Bank1 P2019 Intake Manifold Runner Pos Sensor/Switch Circ Bank2 P2020 Intake Manifold Runner Pos Sensor/Switch Circ Range/Perf Bank2 P2021 Intake Manifold Runner Pos Sensor/Switch Circ Low Bank2 P2022 Intake Manifold Runner Pos Sensor/Switch Circ High Bank2 P2023 Intake Manifold Runner Pos Sensor/Switch Circ Interm Bank2 P2024 EVAP Fuel Vapor Temp Sensor Circ P2025 EVAP Fuel Vapor Temp Sensor Perf P2026 EVAP Fuel Vapor Temp Sensor Circ Low Voltage P2027 EVAP Fuel Vapor Temp Sensor Circ High Voltage P2028 EVAP Fuel Vapor Temp Sensor Circ Interm P2029 Fuel Fired Heater Disabled P2030 Fuel Fired Heater Perf P2031 Exhaust Gas Temp Sensor Circ Bank1 Sensor 2 P2032 Exhaust Gas Temp Sensor Circ Low Bank1 Sensor 2 P2033 Exhaust Gas Temp Sensor Circ High Bank1 Sensor 2 P2034 Exhaust Gas Temp Sensor Circ Bank2 Sensor 2 P2035 Exhaust Gas Temp Sensor Circ Low Bank2 Sensor 2 P2036 Exhaust Gas Temp Sensor Circ High Bank2 Sensor 2 P2037 Reductant Inj Air Press Sensor Circ P2038 Reductant Inj Air Press Sensor Circ Range/Perf P2039 Reductant Inj Air Press Sensor Circ Low Input P2040 Reductant Inj Air Press Sensor Circ High Input P2041 Reductant Inj Air Press Sensor Circ Interm P2042 Reductant Temp Sensor Circ P2043 Reductant Temp Sensor Circ Range/Perf P2044 Reductant Temp Sensor Circ Low Input P2045 Reductant Temp Sensor Circ High Input P2046 Reductant Temp Sensor Circ Interm P2047 Reductant Injector Circ/Open Bank1 Unit 1 P2048 Reductant Injector Circ Low Bank1 Unit 1 P2049 Reductant Injector Circ High Bank1 Unit 1 P2050 Reductant Injector Circ/Open Bank2 Unit 1 P2051 Reductant Injector Circ Low Bank2 Unit 1

Page 116: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 113 | Anexo

P2052 Reductant Injector Circ High Bank2 Unit 1 P2053 Reductant Injector Circ/Open Bank1 Unit 2 P2054 Reductant Injector Circ Low Bank1 Unit 2 P2055 Reductant Injector Circ High Bank1 Unit 2 P2056 Reductant Injector Circ/Open Bank2 Unit 2 P2057 Reductant Injector Circ Low Bank2 Unit 2 P2058 Reductant Injector Circ High Bank2 Unit 2 P2059 Reductant Inj Air Pump Ctrl Circ/Open P2060 Reductant Inj Air Pump Ctrl Circ Low P2061 Reductant Inj Air Pump Ctrl Circ High P2062 Reductant Supply Ctrl Circ/Open P2063 Reductant Supply Ctrl Circ Low P2064 Reductant Supply Ctrl Circ High P2065 Fuel Level SensorB Circ P2066 Fuel Level SensorB Perf P2067 Fuel Level SensorB Circ Low P2068 Fuel Level SensorB Circ High P2069 Fuel Level SensorB Circ Interm P2070 Intake Manifold Tuning (IMT) Valve Stuck Open P2071 IMT Valve Stuck Closed P2072 Throttle Actuator Control System - Ice Blockage P2073 Manifold Absolute Pressure/Mass Air Flow - Throttle Position Correlation at Idle P2074 Manifold Absolute Pressure/Mass Air Flow - Throttle Position Correlation at Higher Load P2075 IMT Valve Pos Sensor/Switch Circ P2076 IMT Valve Pos Sensor/Switch Circ Range/Perf P2077 IMT Valve Pos Sensor/Switch Circ Low P2078 IMT Valve Pos Sensor/Switch Circ High P2079 IMT Valve Pos Sensor/Switch Circ Interm P2080 Exhaust Gas Temp Sensor Circ Range/Perf Bank1 Sensor 1 P2081 Exhaust Gas Temp Sensor Circ Interm Bank1 Sensor 1 P2082 Exhaust Gas Temp Sensor Circ Range/Perf Bank2 Sensor 1 P2083 Exhaust Gas Temp Sensor Circ Interm Bank2 Sensor 1 P2084 Exhaust Gas Temp Sensor Circ Range/Perf Bank1 Sensor 2 P2085 Exhaust Gas Temp Sensor Circ Interm Bank1 Sensor 2 P2086 Exhaust Gas Temp Sensor Circ Range/Perf Bank2 Sensor 2 P2087 Exhaust Gas Temp Sensor Circ Interm Bank2 Sensor 2 P2088 A Camshaft Pos Actuator Ctrl Circ Low Bank1 P2089 A Camshaft Pos Actuator Ctrl Circ High Bank1

Page 117: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 114 | Anexo

P2090 B Camshaft Pos Actuator Ctrl Circ Low Bank1 P2091 B Camshaft Pos Actuator Ctrl Circ High Bank1 P2092 A Camshaft Pos Actuator Ctrl Circ Low Bank2 P2093 A Camshaft Pos Actuator Ctrl Circ High Bank2 P2094 B Camshaft Pos Actuator Ctrl Circ Low Bank2 P2095 B Camshaft Pos Actuator Ctrl Circ High Bank2 P2096 Post Catalyst Fuel Trim System Too Lean Ban k1 P2097 Post Catalyst Fuel Trim System Too Rich Bank 1 P2098 Post Catalyst Fuel Trim System Too Lean Bank 2 P2099 Post Catalyst Fuel Trim System Too Rich Bank 2 P2100 Throttle Actuator Ctrl Motor Circ/Open P2101 Throttle Actuator Ctrl Motor Circ Range/Perf P2102 Throttle Actuator Ctrl Motor Circ Low P2103 Throttle Actuator Ctrl Motor Circ High P2104 Throttle Actuator Ctrl Sys-Forced Idle P2105 Throttle Actuator Ctrl Sys-Forced Engine Shutdown P2106 Throttle Actuator Ctrl Sys-Forced Limited Power P2107 Throttle Actuator Ctrl Mod Processor P2108 Throttle Actuator Ctrl Mod Perf P2109 Throttle/Pedal Pos SensorA Minimum Stop Perf P2110 Throttle Actuator Ctrl Sys-Forced Limited RPM P2111 Throttle Actuator Ctrl Sys-Stuck Open P2112 Throttle Actuator Ctrl Sys-Stuck Closed P2113 Throttle/Pedal Pos SensorB Minimum Stop Perf P2114 Throttle/Pedal Pos Sensor C Minimum Stop Perf P2115 Throttle/Pedal Pos Sensor D Minimum Stop Perf P2116 Throttle/Pedal Pos Sensor E Minimum Stop Perf P2117 Throttle/Pedal Pos Sensor F Minimum Stop Perf P2118 Throttle Actuator Ctrl Motor Current Range/Perf P2119 Throttle Actuator Ctrl Throttle Body Range/Perf P2120 Throttle/Pedal Pos Sensor/Switch D Circ P2121 Throttle/Pedal Pos Sensor/Switch D Circ Range/Perf P2122 Throttle/Pedal Pos Sensor/Switch D Circ Low Input P2123 Throttle/Pedal Pos Sensor/Switch D Circ High Input P2124 Throttle/Pedal Pos Sensor/Switch D Circ Interm P2125 Throttle/Pedal Pos Sensor/Switch E Circ P2126 Throttle/Pedal Pos Sensor/Switch E Circ Range/Perf P2127 Throttle/Pedal Pos Sensor/Switch E Circ Low Input

Page 118: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 115 | Anexo

P2128 Throttle/Pedal Pos Sensor/Switch E Circ High Input P2129 Throttle/Pedal Pos Sensor/Switch E Circ Interm P2130 Throttle/Pedal Pos Sensor/Switch F Circ P2131 Throttle/Pedal Pos Sensor/Switch F Circ Range Perf P2132 Throttle/Pedal Pos Sensor/Switch F Circ Low Input P2133 Throttle/Pedal Pos Sensor/Switch F Circ High Input P2134 Throttle/Pedal Pos Sensor/Switch F Circ Interm P2135 Throttle/Pedal Pos Sensor/Switch A / B Voltage Correlation P2136 Throttle/Pedal Pos Sensor/Switch A / C Voltage Correlation P2137 Throttle/Pedal Pos Sensor/Switch B / C Voltage Correlation P2138 Throttle/Pedal Pos Sensor/Switch D / E Voltage Correlation P2139 Throttle/Pedal Pos Sensor/Switch D / F Voltage Correlation P2140 Throttle/Pedal Pos Sensor/Switch E / F Voltage Correlation P2141 Exhaust Gas Recirculation Throttle Ctrl Circ Low P2142 Exhaust Gas Recirculation Throttle Ctrl Circ High P2143 Exhaust Gas Recirculation Vent Ctrl Circ/Open P2144 Exhaust Gas Recirculation Vent Ctrl Circ Low P2145 Exhaust Gas Recirculation Vent Ctrl Circ High P2146 Fuel Injector Group A Supply Voltage Circ/Open P2147 Fuel Injector Group A Supply Voltage Circ Low P2148 Fuel Injector Group A Supply Voltage Circ High P2149 Fuel Injector Group B Supply Voltage Circ/Open P2150 Fuel Injector Group B Supply Voltage Circ Low P2151 Fuel Injector Group B Supply Voltage Circ High P2152 Fuel Injector Group C Supply Voltage Circ/Open P2153 Fuel Injector Group C Supply Voltage Circ Low P2154 Fuel Injector Group C Supply Voltage Circ High P2155 Fuel Injector Group D Supply Voltage Circ/Open P2156 Fuel Injector Group D Supply Voltage Circ Low P2157 Fuel Injector Group D Supply Voltage Circ High P2158 Vehicle Speed SensorB P2159 Vehicle Speed SensorB Range/Perf P2160 Vehicle Speed SensorB Circ Low P2161 Vehicle Speed SensorB Interm/Erratic P2162 Vehicle Speed SensorA / B Correlation P2163 Throttle/Pedal Pos SensorA Maximum Stop Perf P2164 Throttle/Pedal Pos SensorB Maximum Stop Perf P2165 Throttle/Pedal Pos Sensor C Maximum Stop Perf

Page 119: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 116 | Anexo

P2166 Throttle/Pedal Pos Sensor D Maximum Stop Perf P2167 Throttle/Pedal Pos Sensor E Maximum Stop Perf P2168 Throttle/Pedal Pos Sensor F Maximum Stop Perf P2169 Exhaust Press Reg Vent Solenoid Ctrl Circ/Open P2170 Exhaust Press Reg Vent Solenoid Ctrl Circ Low P2171 Exhaust Press Reg Vent Solenoid Ctrl Circ High P2172 Throttle Actuator Ctrl Sys-Sudden High Airflow Detected P2173 Throttle Actuator Ctrl Sys-High Airflow Detected P2174 Throttle Actuator Ctrl Sys-Sudden Low Airflow Detected P2175 Throttle Actuator Ctrl Sys-Low Airflow Detected P2176 Throttle Actuator Ctrl Sys-Idle Pos Not Learned P2177 Sys Too Lean Off Idle Bank1 P2178 Sys Too Rich Off Idle Bank1 P2179 Sys Too Lean Off Idle Bank2 P2180 Sys Too Rich Off Idle Bank2 P2181 Cooling System Performance P2182 Engine Coolant Temp Sensor 2 Circ P2183 Engine Coolant Temp Sensor 2 Circ Range/Perf P2184 Engine Coolant Temp Sensor 2 Circ Low P2185 Engine Coolant Temp Sensor 2 Circ High P2186 Engine Coolant Temp Sensor 2 Circ Interm/Erratic P2187 Sys Too Lean at Idle Bank1 P2188 Sys Too Rich at Idle Bank1 P2189 Sys Too Lean at Idle Bank2 P2190 Sys Too Rich at Idle Bank2 P2191 Sys Too Lean at Higher Load Bank1 P2192 Sys Too Rich at Higher Load Bank1 P2193 Sys Too Lean at Higher Load Bank2 P2194 Sys Too Rich at Higher Load Bank2 P2195 O2 Sensor Signal Stuck Lean Bank1 Sensor 1 P2196 O2 Sensor Signal Stuck Rich Bank1 Sensor 1 P2197 O2 Sensor Signal Stuck Lean Bank2 Sensor 1 P2198 O2 Sensor Signal Stuck Rich Bank2 Sensor 1 P2199 Intake Air Temp Sensor 1 / 2 Correlation P2200 NOx Sensor Circ Bank1 P2201 NOx Sensor Circ Range/Perf Bank1 P2202 NOx Sensor Circ Low Input Bank1 P2203 NOx Sensor Circ High Input Bank1

Page 120: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 117 | Anexo

P2204 NOx Sensor Circ Interm Input Bank1 P2205 NOx Sensor Heater Ctrl Circ/Open Bank1 P2206 NOx Sensor Heater Ctrl Circ Low Bank1 P2207 NOx Sensor Heater Ctrl Circ High Bank1 P2208 NOx Sensor Heater Sense Circ Bank1 P2209 NOx Sensor Heater Sense Circ Range/Perf Bank1 P2210 NOx Sensor Heater Sense Circ Low Input Bank1 P2211 NOx Sensor Heater Sense Circ High Input Bank1 P2212 NOx Sensor Heater Sense Circ Interm Bank1 P2213 NOx Sensor Circ Bank2 P2214 NOx Sensor Circ Range/Perf Bank2 P2215 NOx Sensor Circ Low Input Bank2 P2216 NOx Sensor Circ High Input Bank2 P2217 NOx Sensor Circ Interm Input Bank2 P2218 NOx Sensor Heater Ctrl Circ/Open Bank2 P2219 NOx Sensor Heater Ctrl Circ Low Bank2 P2220 NOx Sensor Heater Ctrl Circ High Bank2 P2221 NOx Sensor Heater Sense Circ Bank2 P2222 NOx Sensor Heater Sense Circ Range/Perf Bank2 P2223 NOx Sensor Heater Sense Circ Low Bank2 P2224 NOx Sensor Heater Sense Circ High Bank2 P2225 NOx Sensor Heater Sense Circ Interm Bank2 P2226 Barometric Press Circ P2227 Barometric Press Circ Range/Perf P2228 Barometric Press Circ Low P2229 Barometric Press Circ High P2230 Barometric Press Circ Interm P2231 O2 Sensor Signal Circ Shorted to Heater Circ Bank1 Sensor 1 P2232 O2 Sensor Signal Circ Shorted to Heater Circ Bank1 Sensor 2 P2233 O2 Sensor Signal Circ Shorted to Heater Circ Bank1 Sensor 3 P2234 O2 Sensor Signal Circ Shorted to Heater Circ Bank2 Sensor 1 P2235 O2 Sensor Signal Circ Shorted to Heater Circ Bank2 Sensor 2 P2236 O2 Sensor Signal Circ Shorted to Heater Circ Bank2 Sensor 3 P2237 O2 Sensor Positive Current Ctrl Circ/Open Bank1 Sensor 1 P2238 O2 Sensor Positive Current Ctrl Circ Low Bank1 Sensor 1 P2239 O2 Sensor Positive Current Ctrl Circ High Bank1 Sensor 1 P2240 O2 Sensor Positive Current Ctrl Circ/Open Bank2 Sensor 1 P2241 O2 Sensor Positive Current Ctrl Circ Low Bank2 Sensor 1

Page 121: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 118 | Anexo

P2242 O2 Sensor Positive Current Ctrl Circ High Bank2 Sensor 1 P2243 O2 Sensor Ref Voltage Circ/Open Bank1 Sensor 1 P2244 O2 Sensor Ref Voltage Perf Bank1 Sensor 1 P2245 O2 Sensor Ref Voltage Circ Low Bank1 Sensor 1 P2246 O2 Sensor Ref Voltage Circ High Bank1 Sensor 1 P2247 O2 Sensor Ref Voltage Circ/Open Bank2 Sensor 1 P2248 O2 Sensor Ref Voltage Perf Bank2 Sensor 1 P2249 O2 Sensor Ref Voltage Circ Low Bank2 Sensor 1 P2250 O2 Sensor Ref Voltage Circ High Bank2 Sensor 1 P2251 O2 Sensor Negative Current Ctrl Circ/Open Bank1 Sensor 1 P2252 O2 Sensor Negative Current Ctrl Circ Low Bank1 Sensor 1 P2253 O2 Sensor Negative Current Ctrl Circ High Bank1 Sensor 1 P2254 O2 Sensor Negative Current Ctrl Circ/Open Bank2 Sensor 1 P2255 O2 Sensor Negative Current Ctrl Circ Low Bank2 Sensor 1 P2256 O2 Sensor Negative Current Ctrl Circ High Bank2 Sensor 1 P2257 Sec Air Inj Sys Ctrl A Circ Low P2258 Sec Air Inj Sys Ctrl A Circ High P2259 Sec Air Inj Sys Ctrl B Circ Low P2260 Sec Air Inj Sys Ctrl B Circ High P2261 T/S Charger Bypass Valve-Mechanical P2262 Turbo Boost Press Not Detected-Mechanical P2263 Turbo/Supercharger Boost System Performance P2264 Water in Fuel Sensor Circ P2265 Water in Fuel Sensor Circ Range/Perf P2266 Water in Fuel Sensor Circ Low P2267 Water in Fuel Sensor Circ High P2268 Water in Fuel Sensor Circ Interm P2269 Water in Fuel Condition P2270 O2 Sensor Signal Stuck Lean Bank 1 Sensor 2 P2271 O2 Sensor Signal Stuck Rich Bank 1 Sensor 2 P2272 O2 Sensor Signal Stuck Lean Bank 2 Sensor 2 P2273 O2 Sensor Signal Stuck Rich Bank 2 Sensor 2 P2274 O2 Sensor Signal Stuck Lean Bank 1 Sensor 3 P2275 O2 Sensor Signal Stuck Rich Bank 1 Sensor 3 P2276 O2 Sensor Signal Stuck Lean Bank 2 Sensor 3 P2277 O2 Sensor Signal Stuck Rich Bank 2 Sensor 3 P2278 O2 Sensor Signals Swapped Bank 1 Sensor 3 / Bank 2 Sensor 3 P2279 Intake Air Sys Leak

Page 122: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 119 | Anexo

P2280 Air Flow Restriction / Air Leak Between Air Filter and MAF P2281 Air Leak Between MAF and Throttle Body P2282 Air Leak Between Throttle Body and Intake Valves P2283 Injector Ctrl Press Sensor Circ P2284 Injector Ctrl Press Sensor Circ Range/Perf P2285 Injector Ctrl Press Sensor Circ Low P2286 Injector Ctrl Press Sensor Circ High P2287 Injector Ctrl Press Sensor Circ Interm P2288 Injector Ctrl Press Too High P2289 Injector Ctrl Press Too High-Engine Off P2290 Injector Ctrl Press Too Low P2291 Injector Ctrl Press Too Low-Engine Cranking P2292 Injector Ctrl Press Erratic P2293 Fuel Press Reg 2 Perf P2294 Fuel Press Reg 2 Ctrl Circ P2295 Fuel Press Reg 2 Ctrl Circ Low P2296 Fuel Press Reg 2 Ctrl Circ High P2297 O2 Sensor Out of Range During Deceleration Bank1 Sensor 1 P2298 O2 Sensor Out of Range During Deceleration Bank2 Sensor 1 P2299 Brake Pedal Pos / Accelerator Pedal Pos Incompatible P2300 Ignition Coil A Pri Ctrl Circ Low P2301 Ignition Coil A Pri Ctrl Circ High P2302 Ignition Coil A Sec Circ P2303 Ignition Coil B Pri Ctrl Circ Low P2304 Ignition Coil B Pri Ctrl Circ High P2305 Ignition Coil B Sec Circ P2306 Ignition Coil C Pri Ctrl Circ Low P2307 Ignition Coil C Pri Ctrl Circ High P2308 Ignition Coil C Sec Circ P2309 Ignition Coil D Pri Ctrl Circ Low P2310 Ignition Coil D Pri Ctrl Circ High P2311 Ignition Coil D Sec Circ P2312 Ignition Coil E Pri Ctrl Circ Low P2313 Ignition Coil E Pri Ctrl Circ High P2314 Ignition Coil E Sec Circ P2315 Ignition Coil F Pri Ctrl Circ Low P2316 Ignition Coil F Pri Ctrl Circ High P2317 Ignition Coil F Sec Circ

Page 123: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 120 | Anexo

P2318 Ignition Coil G Pri Ctrl Circ Low P2319 Ignition Coil G Pri Ctrl Circ High P2320 Ignition Coil G Sec Circ P2321 Ignition Coil H Pri Ctrl Circ Low P2322 Ignition Coil H Pri Ctrl Circ High P2323 Ignition Coil H Sec Circ P2324 Ignition Coil I Pri Ctrl Circ Low P2325 Ignition Coil I Pri Ctrl Circ High P2326 Ignition Coil I Sec Circ P2327 Ignition Coil J Pri Ctrl Circ Low P2328 Ignition Coil J Pri Ctrl Circ High P2329 Ignition Coil J Sec Circ P2330 Ignition Coil K Pri Ctrl Circ Low P2331 Ignition Coil K Pri Ctrl Circ High P2332 Ignition Coil K Sec Circ P2333 Ignition Coil L Pri Ctrl Circ Low P2334 Ignition Coil L Pri Ctrl Circ High P2335 Ignition Coil L Sec Circ P2336 Cylinder #1 Above Knock Threshold P2337 Cylinder #2 Above Knock Threshold P2338 Cylinder #3 Above Knock Threshold P2339 Cylinder #4 Above Knock Threshold P2340 Cylinder #5 Above Knock Threshold P2341 Cylinder #6 Above Knock Threshold P2342 Cylinder #7 Above Knock Threshold P2343 Cylinder #8 Above Knock Threshold P2344 Cylinder #9 Above Knock Threshold P2345 Cylinder #10 Above Knock Threshold P2346 Cylinder #11 Above Knock Threshold P2347 Cylinder #12 Above Knock Threshold P2400 EVAP Leak Detection Pump Ctrl Circ/Open P2401 EVAP Leak Detection Pump Ctrl Circ Low P2402 EVAP Leak Detection Pump Ctrl Circ High P2403 EVAP Leak Detection Pump Sense Circ/Open P2404 EVAP Leak Detection Pump Sense Circ Range/Perf P2405 EVAP Leak Detection Pump Sense Circ Low P2406 EVAP Leak Detection Pump Sense Circ High P2407 EVAP Leak Detection Pump Sense Circ Interm/Erratic

Page 124: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 121 | Anexo

P2408 Fuel Cap Sensor/Switch Circ P2409 Fuel Cap Sensor/Switch Circ Range/Perf P2410 Fuel Cap Sensor/Switch Circ Low P2411 Fuel Cap Sensor/Switch Circ High P2412 Fuel Cap Sensor/Switch Circ Interm/Erratic P2413 Exhaust Gas Recirculation Sys Perf P2414 O2 Sensor Exhaust Sample Error Bank1 Sensor 1 P2415 O2 Sensor Exhaust Sample Error Bank2 Sensor 1 P2416 O2 Sensor Signals Swapped Bank1 Sensor 2 / Bank1 Sensor 3 P2417 O2 Sensor Signals Swapped Bank2 Sensor 2 / Bank2 Sensor 3 P2418 EVAP Switching Valve Ctrl Circ /Open P2419 EVAP Switching Valve Ctrl Circ Low P2420 EVAP Switching Valve Ctrl Circ High P2421 EVAP Vent Valve Stuck Open P2422 EVAP Vent Valve Stuck Closed P2423 HC Adsorption Catalyst Efficiency Below Threshold Bank1 P2424 HC Adsorption Catalyst Efficiency Below Threshold Bank2 P2425 Exhaust Gas Recirculation Cooling Valve Ctrl Circ/Open P2426 Exhaust Gas Recirculation Cooling Valve Ctrl Circ Low P2427 Exhaust Gas Recirculation Cooling Valve Ctrl Circ High P2428 Exhaust Gas Temp Too High Bank1 P2429 Exhaust Gas Temp Too High Bank2 P2430 Sec Air Inj Sys Air Flow/Press Sensor Circ Bank1 P2431 Sec Air Inj Sys Air Flow/Press Sensor Circ Range/Perf Bank1 P2432 Sec Air Inj Sys Air Flow/Press Sensor Circ Low Bank1 P2433 Sec Air Inj Sys Air Flow/Press Sensor Circ High Bank1 P2434 Sec Air Inj Sys Air Flow/Press Sensor Circ Interm/Erratic Bank1 P2435 Sec Air Inj Sys Air Flow/Press Sensor Circ Bank2 P2436 Sec Air Inj Sys Air Flow/Press Sensor Circ Range/Perf Bank2 P2437 Sec Air Inj Sys Air Flow/Press Sensor Circ Low Bank2 P2438 Sec Air Inj Sys Air Flow/Press Sensor Circ High Bank2 P2439 Sec Air Inj Sys Air Flow/Press Sensor Circ Interm/Eratic Bank2 P2440 Sec Air Inj Sys Switching Valve Stuck Open Bank1 P2441 Sec Air Inj Sys Switching Valve Stuck Closed Bank1 P2442 Sec Air Inj Sys Switching Valve Stuck Open Bank2 P2443 Sec Air Inj Sys Switching Valve Stuck Closed Bank2 P2444 Sec Air Inj Sys Pump Stuck On Bank1 P2445 Sec Air Inj Sys Pump Stuck Off Bank1

Page 125: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 122 | Anexo

P2446 Sec Air Inj Sys Pump Stuck On Bank2 P2447 Sec Air Inj Sys Pump Stuck Off Bank2 P2453 Particulate Matter Trap Differential Pressure Sensor Signal Performance P2455 DPF Differential Pressure Sensor Short to Voltage P2500 Generator Lamp/L-Terminal Circ Low P2501 Generator Lamp/L-Terminal Circ High P2502 Charging Sys Voltage P2503 Charging Sys Voltage Low P2504 Charging Sys Voltage High P2505 ECM/PCM Power Input Signal P2506 ECM/PCM Power Input Signal Range/Perf P2507 ECM/PCM Power Input Signal Low P2508 ECM/PCM Power Input Signal High P2509 ECM/PCM Power Input Signal Intermittent P2510 ECM/PCM Power Relay Sense Circ Range/Perf P2511 ECM/PCM Power Relay Sense Circ Interm P2512 Event Data Recorder Request Circ/ Open P2513 Event Data Recorder Request Circ Low P2514 Event Data Recorder Request Circ High P2515 A/C Refrigerant Press SensorB Circ P2516 A/C Refrigerant Press SensorB Circ Range/Perf P2517 A/C Refrigerant Press SensorB Circ Low P2518 A/C Refrigerant Press SensorB Circ High P2519 A/C Request A Circ P2520 A/C Request A Circ Low P2521 A/C Request A Circ High P2522 A/C Request B Circ P2523 A/C Request B Circ Low P2524 A/C Request B Circ High P2525 Vacuum Reservoir Press Sensor Circ P2526 Vacuum Reservoir Press Sensor Circ Range/Perf P2527 Vacuum Reservoir Press Sensor Circ Low P2528 Vacuum Reservoir Press Sensor Circ High P2529 Vacuum Reservoir Press Sensor Circ Interm P2530 Ignition Switch Run Pos Circ P2531 Ignition Switch Run Pos Circ Low P2532 Ignition Switch Run Pos Circ High P2533 Ignition Switch Run/Start Pos Circ

Page 126: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 123 | Anexo

P2534 Ignition Switch Run/Start Pos Circ Low P2535 Ignition Switch Run/Start Pos Circ High P2536 Ignition Switch Accessory Pos Circ P2537 Ignition Switch Accessory Pos Circ Low P2538 Ignition Switch Accessory Pos Circ High P2539 Low Press Fuel Sys Sensor Circ P2540 Low Press Fuel Sys Sensor Circ Range/Perf P2541 Low Press Fuel Sys Sensor Circ Low P2542 Low Press Fuel Sys Sensor Circ High P2543 Low Press Fuel Sys Sensor Circ Interm P2544 Torque Mgmt Request Input Signal A P2545 Torque Mgmt Request Input Signal A Range/Perf P2546 Torque Mgmt Request Input Signal A Low P2547 Torque Mgmt Request Input Signal A High P2548 Torque Mgmt Request Input Signal B P2549 Torque Mgmt Request Input Signal B Range/Perf P2550 Torque Mgmt Request Input Signal B Low P2551 Torque Mgmt Request Input Signal B High P2552 Throttle/Fuel Inhibit Circ P2553 Throttle/Fuel Inhibit Circ Range/Perf P2554 Throttle/Fuel Inhibit Circ Low P2555 Throttle/Fuel Inhibit Circ High P2556 Engine Coolant Level Sensor/Switch Circ P2557 Engine Coolant Level Sensor/Switch Circ Range/Perf P2558 Engine Coolant Level Sensor/Switch Circ Low P2559 Engine Coolant Level Sensor/Switch Circ High P2560 Engine Coolant Level Low P2561 A/C Ctrl Mod Requested MIL Illumination P2562 Turbocharger Boost Ctrl Pos Sensor Circ P2563 Turbocharger Boost Ctrl Pos Sensor Circ Range/Perf P2564 Turbocharger Boost Ctrl Pos Sensor Circ Low P2565 Turbocharger Boost Ctrl Pos Sensor Circ High P2566 Turbocharger Boost Ctrl Pos Sensor Circ Interm P2567 Direct Ozone Reduction Catalyst Temp Sensor Circ P2568 Direct Ozone Reduction Catalyst Temp Sensor Circ Range/Perf P2569 Direct Ozone Reduction Catalyst Temp Sensor Circ Low P2570 Direct Ozone Reduction Catalyst Temp Sensor Circ High P2571 Direct Ozone Reduction Catalyst Temp Sensor Circ Interm/Erratic4

Page 127: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 124 | Anexo

P2572 Direct Ozone Reduction Catalyst Deterioration Sensor Circ4 P2573 Direct Ozone Reduction Catalyst Deterioration Sensor Circ Range/Perf4 P2574 Direct Ozone Reduction Catalyst Deterioration Sensor Circ Low4 P2575 Direct Ozone Reduction Catalyst Deterioration Sensor Circ High4 P2576 Direct Ozone Reduction Catalyst Deterioration Sensor Circ Interm/Erratic P2577 Direct Ozone Reduction Catalyst Efficiency Below Threshold P2600 Coolant Pump Ctrl Circ/Open P2601 Coolant Pump Ctrl Circ Range/Perf P2602 Coolant Pump Ctrl Circ Low P2603 Coolant Pump Ctrl Circ High P2604 Intake Air Heater A Circ Range/Perf P2605 Intake Air Heater A Circ/Open P2606 Intake Air Heater B Circ Range/Perf P2607 Intake Air Heater B Circ Low P2608 Intake Air Heater B Circ High P2609 Intake Air Heater Sys Perf P2610 ECM/PCM Internal Engine Off Timer Perf P2611 A/C Refrigerant Distribution Valve Ctrl Circ/Open P2612 A/C Refrigerant Distribution Valve Ctrl Circ Low P2613 A/C Refrigerant Distribution Valve Ctrl Circ High P2614 Camshaft Pos Signal Output Circ/Open P2615 Camshaft Pos Signal Output Circ Low P2616 Camshaft Pos Signal Output Circ High P2617 Crank Pos Signal Output Circ/Open P2618 Crank Pos Signal Output Circ Low P2619 Crank Pos Signal Output Circ High P2620 Throttle Pos Output Circ/Open P2621 Throttle Pos Output Circ Low P2622 Throttle Pos Output Circ High P2623 Injector Ctrl Press Reg Circ/Open P2624 Injector Ctrl Press Reg Circ Low P2625 Injector Ctrl Press Reg Circ High P2626 O2 Sensor Pumping Current Trim Circ/Open Bank1 Sensor 1 P2627 O2 Sensor Pumping Current Trim Circ Low Bank1 Sensor 1 P2628 O2 Sensor Pumping Current Trim Circ High Bank1 Sensor 1 P2629 O2 Sensor Pumping Current Trim Circ/Open Bank2 Sensor 1 P2630 O2 Sensor Pumping Current Trim Circ Low Bank2 Sensor 1 P2631 O2 Sensor Pumping Current Trim Circ High Bank2 Sensor 1

Page 128: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 125 | Anexo

P2632 Fuel Pump B Ctrl Circ /Open P2633 Fuel Pump B Ctrl Circ Low P2634 Fuel Pump B Ctrl Circ High P2635 Fuel Pump A Low Flow / Perf P2636 Fuel Pump B Low Flow / Perf P2637 Torque Mgmt Feedback Signal A P2638 Torque Mgmt Feedback Signal A Range/Perf P2639 Torque Mgmt Feedback Signal A Low P2640 Torque Mgmt Feedback Signal A High P2641 Torque Mgmt Feedback Signal B P2642 Torque Mgmt Feedback Signal B Range/Perf P2643 Torque Mgmt Feedback Signal B Low P2644 Torque Mgmt Feedback Signal B High P2645 A Rocker Arm Actuator Ctrl Circ/Open Bank1 P2646 A Rocker Arm Actuator Sys Perf or Stuck Off Bank1 P2647 A Rocker Arm Actuator Sys Stuck On Bank1 P2648 A Rocker Arm Actuator Ctrl Circ Low Bank1 P2649 A Rocker Arm Actuator Ctrl Circ High Bank1 P2650 B Rocker Arm Actuator Ctrl Circ/Open Bank1 P2651 B Rocker Arm Actuator Sys Perf or Stuck Off Bank1 P2652 B Rocker Arm Actuator Sys Stuck On Bank1 P2653 B Rocker Arm Actuator Ctrl Circ Low Bank1 P2654 B Rocker Arm Actuator Ctrl Circ High Bank1 P2655 A Rocker Arm Actuator Ctrl Circ/Open Bank2 P2656 A Rocker Arm Actuator Sys Perf or Stuck Off Bank2 P2657 A Rocker Arm Actuator Sys Stuck On Bank2 P2658 A Rocker Arm Actuator Ctrl Circ Low Bank2 P2659 A Rocker Arm Actuator Ctrl Circ High Bank2 P2660 B Rocker Arm Actuator Ctrl Circ/Open Bank2 P2661 B Rocker Arm Actuator Sys Perf or Stuck Off Bank2 P2662 B Rocker Arm Actuator Sys Stuck On Bank2 P2663 B Rocker Arm Actuator Ctrl Circ Low Bank2 P2664 B Rocker Arm Actuator Ctrl Circ High Bank2 P2665 Fuel Shutoff Valve B Ctrl Circ/Open P2666 Fuel Shutoff Valve B Ctrl Circ Low P2667 Fuel Shutoff Valve B Ctrl Circ High P2668 Fuel Mode Indicator Lamp Ctrl Circ P2669 Actuator Supply Voltage B Circ /Open

Page 129: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 126 | Anexo

P2670 Actuator Supply Voltage B Circ Low P2671 Actuator Supply Voltage B Circ High P2700 Trans Friction Element A Apply Time Range/Perf P2701 Trans Friction Element B Apply Time Range/Perf P2702 Trans Friction Element C Apply Time Range/Perf P2703 Trans Friction Element D Apply Time Range/Perf P2704 Trans Friction Element E Apply Time Range/Perf P2705 Trans Friction Element F Apply Time Range/Perf P2706 Shift Solenoid F P2707 Shift Solenoid F Perf or Stuck Off P2708 Shift Solenoid F Stuck On P2709 Shift Solenoid F Electrical P2710 Shift Solenoid F Interm P2711 Unexpected Mechanical Gear Disengagement P2712 Hydraulic Power Unit Leakage P2713 Press Ctrl Solenoid D P2714 Press Ctrl Solenoid D Perf or Stuck Off P2715 Press Ctrl Solenoid D Stuck On P2716 Press Ctrl Solenoid D Electrical P2717 Press Ctrl Solenoid D Interm P2718 Press Ctrl Solenoid D Ctrl Circ / Open P2719 Press Ctrl Solenoid D Ctrl Circ Range/Perf P2720 Press Ctrl Solenoid D Ctrl Circ Low P2721 Press Ctrl Solenoid D Ctrl Circ High P2722 Press Ctrl Solenoid E P2723 Press Ctrl Solenoid E Perf or Stuck Off P2724 Press Ctrl Solenoid E Stuck On P2725 Press Ctrl Solenoid E Electrical P2726 Press Ctrl Solenoid E Interm P2727 Press Ctrl Solenoid E Ctrl Circ / Open P2728 Press Ctrl Solenoid E Ctrl Circ Range/Perf P2729 Press Ctrl Solenoid E Ctrl Circ Low P2730 Press Ctrl Solenoid E Ctrl Circ High P2731 Press Ctrl Solenoid F P2732 Press Ctrl Solenoid F Perf or Stuck Off P2733 Press Ctrl Solenoid F Stuck On P2734 Press Ctrl Solenoid F Electrical P2735 Press Ctrl Solenoid F Interm

Page 130: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 127 | Anexo

P2736 Press Ctrl Solenoid F Ctrl Circ/Open P2737 Press Ctrl Solenoid F Ctrl Circ Range/Perf P2738 Press Ctrl Solenoid F Ctrl Circ Low P2739 Press Ctrl Solenoid F Ctrl Circ High P2740 Trans Fluid Temp SensorB Circ P2741 Trans Fluid Temp SensorB Circ Range Perf P2742 Trans Fluid Temp SensorB Circ Low P2743 Trans Fluid Temp SensorB Circ High P2744 Trans Fluid Temp SensorB Circ Interm P2745 Intermediate Shaft Speed SensorB Circ P2746 Intermediate Shaft Speed SensorB Circ Range/Perf P2747 Intermediate Shaft Speed SensorB Circ No Signal P2748 Intermediate Shaft Speed SensorB Circ Interm P2749 Intermediate Shaft Speed Sensor C Circ P2750 Intermediate Shaft Speed Sensor C Circ Range/Perf P2751 Intermediate Shaft Speed Sensor C Circ No Signal P2752 Intermediate Shaft Speed Sensor C Circ Interm P2753 Trans Fluid Cooler Ctrl Circ/Open P2754 Trans Fluid Cooler Ctrl Circ Low P2755 Trans Fluid Cooler Ctrl Circ High P2756 Torq Conv Clutch Press Ctrl Solenoid P2757 Torq Conv Clutch Press Ctrl Solenoid Ctrl Circ Perf or Stuck Off P2758 Torq Conv Clutch Press Ctrl Solenoid Ctrl Circ Stuck On P2759 Torq Conv Clutch Press Ctrl Solenoid Ctrl Circ Electrical P2760 Torq Conv Clutch Press Ctrl Solenoid Ctrl Circ Interm P2761 Torq Conv Clutch Press Ctrl Solenoid Ctrl Circ/Open P2762 Torq Conv Clutch Press Ctrl Solenoid Ctrl Circ Range/Perf P2763 Torq Conv Clutch Press Ctrl Solenoid Ctrl Circ High P2764 Torq Conv Clutch Press Ctrl Solenoid Ctrl Circ Low P2765 Input/Turbine Speed SensorB Circ P2766 Input/Turbine Speed SensorB Circ Range/Perf P2767 Input/Turbine Speed SensorB Circ No Signal P2768 Input/Turbine Speed SensorB Circ Interm P2769 Torq Conv Clutch Circ Low P2770 Torq Conv Clutch Circ High P2771 4WD Low Switch Circ P2772 4WD Low Switch Circ Range/Perf P2773 4WD Low Switch Circ Low

Page 131: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 128 | Anexo

P2774 4WD Low Switch Circ High P2775 Upshift Switch Circ Range/Perf P2776 Upshift Switch Circ Low P2777 Upshift Switch Circ High P2778 Upshift Switch Circ Interm/Erratic P2779 Downshift Switch Circ Range/Perf P2780 Downshift Switch Circ Low P2781 Downshift Switch Circ High P2782 Downshift Switch Circ Interm/Erratic P2783 Torq Conv Temp Too High P2784 Input/Turbine Speed SensorA/B Correlation P2785 Clutch Actuator Temp Too High P2786 Gear Shift Actuator Temp Too High P2787 Clutch Temp Too High P2788 Auto Shift Manual Adaptive Learning at Limit P2789 Clutch Adaptive Learning at Limit P2790 Gate Select Direction Circ P2791 Gate Select Direction Circ Low P2792 Gate Select Direction Circ High P2793 Gear Shift Direction Circ P2794 Gear Shift Direction Circ Low P2795 Gear Shift Direction Circ High P2A00 O2 Sensor Circ Range/Perf Bank1 Sensor 1 P2A01 O2 Sensor Circ Range/Perf Bank1 Sensor 2 P2A02 O2 Sensor Circ Range/Perf Bank1 Sensor 3 P2A03 O2 Sensor Circ Range/Perf Bank2 Sensor 1 P2A04 O2 Sensor Circ Range/Perf Bank2 Sensor 2 P2A05 O2 Sensor Circ Range/Perf Bank2 Sensor 3

P3xxx Generic Powertrain Diagnostic Codes DTC P3400 Cylinder Deactivation Sys Bank1 P3401 Cyl1 Deactivation/Intake Valve Ctrl Circ/Open P3402 Cyl1 Deactivation/Intake Valve Ctrl Perf P3403 Cyl1 Deactivation/Intake Valve Ctrl Circ Low P3404 Cyl1 Deactivation/Intake Valve Ctrl Circ High P3405 Cyl1 Exhaust Valve Ctrl Circ/Open P3406 Cyl1 Exhaust Valve Ctrl Perf P3407 Cyl1 Exhaust Valve Ctrl Circ Low

Page 132: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 129 | Anexo

P3408 Cyl1 Exhaust Valve Ctrl Circ High P3409 Cyl2 Deactivation/Intake Valve Ctrl Circ/Open P3410 Cyl2 Deactivation/Intake Valve Ctrl Perf P3411 Cyl2 Deactivation/Intake Valve Ctrl Circ Low P3412 Cyl2 Deactivation/Intake Valve Ctrl Circ High P3413 Cyl2 Exhaust Valve Ctrl Circ/Open P3414 Cyl2 Exhaust Valve Ctrl Perf P3415 Cyl2 Exhaust Valve Ctrl Circ Low P3416 Cyl2 Exhaust Valve Ctrl Circ High P3417 Cyl3 Deactivation/Intake Valve Ctrl Circ/Open P3418 Cyl3 Deactivation/Intake Valve Ctrl Perf P3419 Cyl3 Deactivation/Intake Valve Ctrl Circ Low P3420 Cyl3 Deactivation/Intake Valve Ctrl Circ High P3421 Cyl3 Exhaust Valve Ctrl Circ/Open P3422 Cyl3 Exhaust Valve Ctrl Perf P3423 Cyl3 Exhaust Valve Ctrl Circ Low P3424 Cyl3 Exhaust Valve Ctrl Circ High P3425 Cyl4 Deactivation/Intake Valve Ctrl Circ/Open P3426 Cyl4 Deactivation/Intake Valve Ctrl Perf P3427 Cyl4 Deactivation/Intake Valve Ctrl Circ Low P3428 Cyl4 Deactivation/Intake Valve Ctrl Circ High P3429 Cyl4 Exhaust Valve Ctrl Circ/Open P3430 Cyl4 Exhaust Valve Ctrl Perf P3431 Cyl4 Exhaust Valve Ctrl Circ Low P3432 Cyl4 Exhaust Valve Ctrl Circ High P3433 Cyl5 Deactivation/Intake Valve Ctrl Circ/Open P3434 Cyl5 Deactivation/Intake Valve Ctrl Perf P3435 Cyl5 Deactivation/Intake Valve Ctrl Circ Low P3436 Cyl5 Deactivation/Intake Valve Ctrl Circ High P3437 Cyl5 Exhaust Valve Ctrl Circ/Open P3438 Cyl5 Exhaust Valve Ctrl Perf P3439 Cyl5 Exhaust Valve Ctrl Circ Low P3440 Cyl5 Exhaust Valve Ctrl Circ High P3441 Cyl6 Deactivation/Intake Valve Ctrl Circ/Open P3442 Cyl6 Deactivation/Intake Valve Ctrl Perf P3443 Cyl6 Deactivation/Intake Valve Ctrl Circ Low P3444 Cyl6 Deactivation/Intake Valve Ctrl Circ High P3445 Cyl6 Exhaust Valve Ctrl Circ/Open

Page 133: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 130 | Anexo

P3446 Cyl6 Exhaust Valve Ctrl Perf P3447 Cyl6 Exhaust Valve Ctrl Circ Low P3448 Cyl6 Exhaust Valve Ctrl Circ High P3449 Cyl7 Deactivation/Intake Valve Ctrl Circ/Open P3450 Cyl7 Deactivation/Intake Valve Ctrl Perf P3451 Cyl7 Deactivation/Intake Valve Ctrl Circ Low P3452 Cyl7 Deactivation/Intake Valve Ctrl Circ High P3453 Cyl7 Exhaust Valve Ctrl Circ/Open P3454 Cyl7 Exhaust Valve Ctrl Perf P3455 Cyl7 Exhaust Valve Ctrl Circ Low P3456 Cyl7 Exhaust Valve Ctrl Circ High P3457 Cyl8 Deactivation/Intake Valve Ctrl Circ/Open P3458 Cyl8 Deactivation/Intake Valve Ctrl Perf P3459 Cyl8 Deactivation/Intake Valve Ctrl Circ Low P3460 Cyl8 Deactivation/Intake Valve Ctrl Circ High P3461 Cyl8 Exhaust Valve Ctrl Circ/Open P3462 Cyl8 Exhaust Valve Ctrl Perf P3463 Cyl8 Exhaust Valve Ctrl Circ Low P3464 Cyl8 Exhaust Valve Ctrl Circ High P3465 Cyl9 Deactivation/Intake Valve Ctrl Circ/Open P3466 Cyl9 Deactivation/Intake Valve Ctrl Perf P3467 Cyl9 Deactivation/Intake Valve Ctrl Circ Low P3468 Cyl9 Deactivation/Intake Valve Ctrl Circ High P3469 Cyl9 Exhaust Valve Ctrl Circ/Open P3470 Cyl9 Exhaust Valve Ctrl Perf P3471 Cyl9 Exhaust Valve Ctrl Circ Low P3472 Cyl9 Exhaust Valve Ctrl Circ High P3473 Cyl10 Deactivation/Intake Valve Ctrl Circ/Open P3474 Cyl10 Deactivation/Intake Valve Ctrl Perf P3475 Cyl10 Deactivation/Intake Valve Ctrl Circ Low P3476 Cyl10 Deactivation/Intake Valve Ctrl Circ High P3477 Cyl10 Exhaust Valve Ctrl Circ/Open P3478 Cyl10 Exhaust Valve Ctrl Perf P3479 Cyl10 Exhaust Valve Ctrl Circ Low P3480 Cyl10 Exhaust Valve Ctrl Circ High P3481 Cyl11 Deactivation/Intake Valve Ctrl Circ/Open P3482 Cyl11 Deactivation/Intake Valve Ctrl Perf P3483 Cyl11 Deactivation/Intake Valve Ctrl Circ Low

Page 134: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 131 | Anexo

P3484 Cyl11 Deactivation/Intake Valve Ctrl Circ High P3485 Cyl11 Exhaust Valve Ctrl Circ/Open P3486 Cyl11 Exhaust Valve Ctrl Perf P3487 Cyl11 Exhaust Valve Ctrl Circ Low P3488 Cyl11 Exhaust Valve Ctrl Circ High P3489 Cyl12 Deactivation/Intake Valve Ctrl Circ/Open P3490 Cyl12 Deactivation/Intake Valve Ctrl Perf P3491 Cyl12 Deactivation/Intake Valve Ctrl Circ Low P3492 Cyl12 Deactivation/Intake Valve Ctrl Circ High P3493 Cyl12 Exhaust Valve Ctrl Circ/Open

13.4. Ejemplo de uso de la librería RXTXcomm

A continuación se muestra un ejemplo extraido de [9]:

import gnu.io.CommPort; import gnu.io.CommPortIdentifier; import gnu.io.SerialPort; import java.io.FileDescriptor; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; public class TwoWaySerialComm { public TwoWaySerialComm() { super(); } void connect ( String portName ) throws Exception { CommPortIdentifier portIdentifier = CommPortIdentifier.getPortIdentifier(portName); if ( portIdentifier.isCurrentlyOwned() ) { System.out.println("Error: Port is currently in use"); } else { CommPort commPort = portIdentifier.open(this.getClass().getName(),2000); if ( commPort instanceof SerialPort ) {

Page 135: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 132 | Anexo

SerialPort serialPort = (SerialPort) commPort; serialPort.setSerialPortParams(57600,SerialPort.DATABITS_8,SerialPort.STOPBITS_1,SerialPort.PARITY_NONE); InputStream in = serialPort.getInputStream(); OutputStream out = serialPort.getOutputStream(); (new Thread(new SerialReader(in))).start(); (new Thread(new SerialWriter(out))).start(); } else { System.out.println("Error: Only serial ports are handled by this example."); } } } /** */ public static class SerialReader implements Runnable { InputStream in; public SerialReader ( InputStream in ) { this.in = in; } public void run () { byte[] buffer = new byte[1024]; int len = -1; try { while ( ( len = this.in.read(buffer)) > -1 ) { System.out.print(new String(buffer,0,len)); } } catch ( IOException e ) { e.printStackTrace(); } } } public static class SerialWriter implements Runnable { OutputStream out;

Page 136: Aplicación distribuida para la monitorización y diagnosis de ...

Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación Universidad Politécnica de Madrid Proyecto Fin de Grado Título: Aplicación distribuida para la monitorización y diagnosis de automóviles Alumno: Gonzalo Bernias Vaquero Tutor: Francisco Javier Estaire Estaire

Página 133 | Anexo

public SerialWriter ( OutputStream out ) { this.out = out; } public void run () { try { int c = 0; while ( ( c = System.in.read()) > -1 ) { this.out.write(c); } } catch ( IOException e ) { e.printStackTrace(); } } } public static void main ( String[] args ) { try { (new TwoWaySerialComm()).connect("COM3"); } catch ( Exception e ) { // TODO Auto-generated catch block e.printStackTrace(); } } }