Diseo y realizacin de un sistema On Board Diagnostics (OBD-II)

  • Published on
    23-Feb-2016

  • View
    46

  • Download
    3

DESCRIPTION

Diseo y realizacin de un sistema On Board Diagnostics (OBD-II) . ALUMNO: Oscar Rayo Mansilla ESPECIALIDAD: Electrnica DIRECTOR: Jordi Sellars Gonzlez DEPARTAMENTO: Fsica y Ingeniera Nuclear. 1. INTRODUCCIN Motivacin del proyecto Antecedentes Objetivos Descripcin general - PowerPoint PPT Presentation

Transcript

Diseo y realizacin de un sistema On Board Diagnostics (OBD-II)

Diseo y realizacin de un sistema On Board Diagnostics (OBD-II) ALUMNO: Oscar Rayo MansillaESPECIALIDAD: ElectrnicaDIRECTOR: Jordi Sellars GonzlezDEPARTAMENTO: Fsica y Ingeniera Nuclear1NDICE1. INTRODUCCINMotivacin del proyectoAntecedentesObjetivosDescripcin general

2. DISEOSDiseo del modem interfaceConstruccin del programador JDM2Mejoras del modem interfaceProgramas de pruebaDiseo del software de control

3. RESULTADOSDescripcin del funcionamientoPosibles aplicaciones

4. PRESUPUESTO

5. CONCLUSIONES Y MEJORASPlan de trabajoObjetivos logradosConclusiones finalesMejoras futuras del sistema

La presentacin constar de una introduccin, de la explicacin de los diseos realizados, los resultados obtenidos junto con el presupuesto del proyecto, y por supuesto de las conclusiones y mejoras que podran aplicarse en un futuro.2MOTIVACIN DEL PROYECTO

Diagnstico tcnico de las averas de un vehculo a travs de su computadora.

Disponibilidad de una solucin de bajo coste.

Evitar la dependencia de los servicios oficiales del mantenimiento del automvil.

DISEO Y REALIZACIN DE UN SISTEMA ON BOARD DIAGNOSTIC (OBD-II)INTRODUCCINComo todos sabemos hoy en da los vehculos comercializados actualmente incorporan gran cantidad de sistemas electrnicos capaces de gestionar todos los procesos que se dan en el funcionamiento normal de un automvil, pero la mayora de usuarios desconocen como funciona y cuales son sus capacidades.

Este sistema esta compuesto principalmente de una computador que procesa todos los datos que va obteniendo de los sensores localizados en diferentes puntos del vehculo, para asegurar su correcto funcionamiento.

Este es una caracterstica que en los concesionarios no nos informan de ella, ya que en ningn momento nos explican que nuestro coche incorpora una computadora, pero ellos si la utilizan para diagnosticar inmediatamente cualquier avera, mediante herramientas que no estn, en principio, a nuestro alcance.

Por tanto la motivacin del proyecto se origina en posibilidad de disponer de una herramienta de bajo coste que interacte con este sistema, la computadora o centralita electrnica, evitando as la dependencia de los servicios oficiales.

3ANTECEDENTES

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

EE.UU. 1996 (OBD-II)Europa 2001 (EOBD)

DISEO Y REALIZACIN DE UN SISTEMA ON BOARD DIAGNOSTIC (OBD-II)INTRODUCCINEl sistema antes mencionado y del que disponen los vehculos se llama OBD II que es la abreviatura de On Board Diagnostics (Diagnstico de Abordo) II, la segunda generacin de los requerimientos de autodiagnostico de abordo y que inicialmente fue implantado en los Estados Unidos de Amrica.Actualmente se emplea OBD-II (Estados Unidos), EOBD (Europa), y JOBD (Japn) estndar que aportan un control casi completo del motor y otros dispositivos del vehculo.Las caractersticas del OBD-II estn incorporadas en el hardware y el software de la centralita electrnica de los vehculos para monitorear prcticamente todos los componentes que pueden afectar las emisiones y guarda informaciones importantes sobre posibles fallas detectadas para que un operario pueda encontrar y resolver el problema. En los Estados Unidos de Amrica, todos los vehculos de pasajeros y los camiones de gasolina y combustibles alternos a partir de 1996 deben contar con sistemas de OBD II, en Europa a partir del ao 2001 se obliga implantar el estndar EOBD.

4INTRODUCCINDISEO Y REALIZACIN DE UN SISTEMA ON BOARD DIAGNOSTIC (OBD-II)ANTECEDENTESHerramientas y software disponible en el mercado basados en el micro ELM327

Interface con microELM327 Interfacecon Bluetoothbasadaen elELM327Software de control ScanTool.netActualmente ya existen herramientas y software disponibles para poder llevar a cabo la inspeccin de un vehculo dotado de OBD-II.Estos programas estn diseados para trabajar junto con el microcontrolador ELM327, es decir, necesitan de este elemento intermedio entre el PC y el vehculo. Existen muchos modelos de interface disponibles en el mercado, pero todas se basan en este microcontrolador, distribuido por ELM Electronics.

5INTRODUCCINDISEO Y REALIZACIN DE UN SISTEMA ON BOARD DIAGNOSTIC (OBD-II)OBJETIVOS

Conseguir una comunicacin estable con cualquier centralita electrnica (ECU) de cualquier vehculo equipado con OBD-II.

Conseguir desarrollar una aplicacin portable a cualquier sistema operativo y plataforma utilizando lenguaje JAVA y la estructura de programacin por capas.

Realizar mejoras en el hardware ya existente en el mercado a partir del cual se construir nuestra interface.

Demostrar que con la informacin disponible en la red, es posible acceder a los sistemas de control que implementan los fabricantes de automviles en sus vehculos.

INTRODUCCINDISEO Y REALIZACIN DE UN SISTEMA ON BOARD DIAGNOSTIC (OBD-II)DESCRIPCIN GENERAL DEL HARDWARE

Modem interface, interprete entre la ECU y el puerto USB.Protocolos OBD-II:SAEJ1850PWMISO 9141/14230SAEJ1850VPWISO15765 (CAN)CABLEADO:Cable USB tipo A-B Cable conector J1962 especfico OBD-II.

OBD-II 16 PIN(Macho)DB9 PIN(Hembra)(J2850 BUS+)27(Masa chasis)41+2(Masa seal) 51+2(CAN H) 63(ISO 9141-2 K Line) 74(J2850 BUS- ) 106(CAN L) 145(Linea L ISO 9141-2) 158(Voltaje batera) 169Existen dos partes importantes a diferenciar en el desarrollo de este proyecto:La parte que engloba el hardware necesario formada por un modem interface que hace de intrprete entre la centralita electrnica del automvil (ECU), y el puerto serie o USB de un ordenador personal.

Esta interface contiene como elemento principal un microcontrolador (PIC18F2550) que es el encargado de gestionar la comunicacin entre los dos perifricos en cuestin (PC y ECU).

Implementa 4 posibles protocolos de comunicacin utilizados por el OBD-II: SAEJ1850PWM, ISO 9141/14230, SAEJ1850VPW e ISO15765 (CAN).

Dispone del cableado necesario para realizar la conexin al puerto USB del PC y al conector J1962 especfico para OBD-II. Al inicio del proyecto se construy un cable OBD-II de forma provisional para hacer pruebas, debido a que es difcil encontrarlos en los comercios.

7INTRODUCCINDISEO Y REALIZACIN DE UN SISTEMA ON BOARD DIAGNOSTIC (OBD-II)DESCRIPCIN GENERAL DEL SOFTWARE

Gestin del modem interface atreves del puerto serie o USB.

Configuracin del puertoLecturas de cdigos de errorSeleccin de protocolos de comunicacinLecturas a tiempo real de los sensores del motorExploracin del trfico de datosEsta es la parte que engloba el software, y hace referencia a la aplicacin realizada mediante JAVA, que funcionar en el PC y que gestionar el modem interface a partir de los datos que se vallan recibiendo y enviando a treves del puerto serie o USB. Permite configurar los parmetros del puerto serie segn convenga.

Realiza lecturas de cdigos de error que pueda tener almacenados la centralita electrnica del automvil.

Permite seleccionar los protocolos de comunicacin que sean necesarios segn el vehculo.

Realiza lecturas a tiempo real de los datos que aportan los diferentes sensores del motor del vehculo, rpm, velocidad, carga del motor, etc.

Dispone de una consola de texto que monitorea el puerto serie refrescando su contenido segn el estado del trfico de datos entre el PC y el modem interface.

8DISEOSDISEO Y REALIZACIN DE UN SISTEMA ON BOARD DIAGNOSTIC (OBD-II)DISEO DEL MODEM INTERFACE

Utilizacin de un diseo disponible en la red para realizar mejorasInterface basada en el microcontrolador PIC18F2550 Compatibilidad con el micro ELM327La interface realizada se basa en el microcontrolador PIC18F2550 el cual contiene un firmware compatible con el micro antes mencionado, el ELM327. Este esquema elctrico se obtuvo de la red para posteriormente realizar las mejoras que se crey oportunas.

El par de Mosfets (Q2 P-channel y Q1 N-channel) controlan el bus J1850PWM junto un comparador interno del PIC18F2550 y las resistencias R4 y R5 que crean la seal diferencial de la entrada del PWM. J1850 VPW est controlado por MC33390 .El integrado MC33290 maneja el protocolo ISO9141/14230 junto con Q3.Los integrados MCP2515 y MCP2551 controlan el protocolo CAN BUS

9DISEOSDISEO Y REALIZACIN DE UN SISTEMA ON BOARD DIAGNOSTIC (OBD-II)Para realizar la placa de circuito impreso se utiliz el siguiente layout:

Pistas de la cara inferior del circuitoPistas de la cara superior del circuitoDistribucin de componentes de la cara inferior del circuitoDistribucin de componentes de la cara superior del circuitoDISEOSDISEO Y REALIZACIN DE UN SISTEMA ON BOARD DIAGNOSTIC (OBD-II)CONSTRUCCIN DEL PROGRAMADOR JDM2

Cumple con el estndar ICSP de MicrochipMontaje en placa de baquelita para prototiposConstruccin rpida y con pocos componentes Es necesario disponer de un programador para realizar el grabado del firmware en el microcontrolador (PIC18F2550). Este programador debe cumplir con el estndar ICSP que es el que ofrece la empresa Microchip para poder introducir los firmwares en los microcontroladores que ellos fabrican.

El circuito se mont en una placa de baquelita especfica para realizar prototipos siguiendo el esquema elctrico que se observa en la imagen.

Podemos ver como el cableado procedente del programador est etiquetado con el nombre de los pines a los cuales debe ser conectado. Por otro lado vemos como el cable procedente del puerto RS-232 del PC, est conectado en su respectivo conector DB9.

Este es el pineado que utiliza el programador y por tanto el estndar ICSP, en la gama del PIC18F2XXX.

11DISEOSDISEO Y REALIZACIN DE UN SISTEMA ON BOARD DIAGNOSTIC (OBD-II)Funcionamiento correcto en varios vehculos y diferentes protocolos

Pin 2 conector OBD-II(BUS+)Pin 10 conector OBD-II(Bus-) MEJORAS DEL MODEM INTERFACEProblemas de comunicacin en el protocolo SAEJ1850PWM a travs de una ECU de diseo obsoletoDuracin del periodo de un bit 24s Un bit=1 Activo durante 8s Un bit=0 Activo durante 16s BUS+ activo 5v. BUS- activo 0v. Una vez montado y probado se obtuvieron problemas de comunicacin en el protocolo SAEJ1850PWM , por lo que se procedi a obtener una captura de la trama binaria mediante un osciloscopio digital obtenida a partir del BUS de dicho protocolo:

Primera grafica: Resultado de la trama enviada a travs del pin 2 (BUS+) del conector OBD-II

Segunda grafica: Resultado de la trama enviada a travs del pin 10 (BUS-) del conector OBD-II

Este protocolo dispone de dos lneas de comunicacin, el BUS+ y BUS-, y se caracteriza por utilizar la modulacin del ancho de pulso (PWM) como mecanismo de codificacin de bits. El periodo de cada bit tiene una duracin de 24 s y su estado se expresa de la siguiente forma:Un bit=1, se representa con un estado activo de 8us dentro de un periodo.Un bit=0, se representa con un estado activo de 16us dentro de un periodo.El BUS+ est activo cuando toma el valor de 5v. El BUS- est activo cuando toma el valor de 0v.

12DISEOSDISEO Y REALIZACIN DE UN SISTEMA ON BOARD DIAGNOSTIC (OBD-II)Modificacin del circuito por obtener tensiones incorrectas en el BUS+

Componentes que gestionan el protocolo SAEJ1850PWMQ1(Canal-N)Q2(Canal-P)Resultado de la modificacin del circuitoQ1(NPN)Q2(PNP)Debido a que el BUS+nunca lograba llegar a los +5V, solo hasta los 44 aproximadamente, se procedi a modificar la electrnica que gestiona el protocolo J1850PWM.

Los encargados de ajustar las tensiones que adoptan el BUS+ y el BUS- son los Mosfets Q1 y Q2 (Q2 P-channel y Q1 N-channel) junto con las resistencias R7 y R6

Partiendo de otro diseo disponible en la red que implementa el mismo protocolo, se cambiaron los Mosfets por transistores PNP y NPN(PNP->2N3906 y NPN->2N3904) y las resistencias R6 y R7 de 22k por resistencias de 2K7 . Adems se incorporaron resistencias de proteccin a las bases de los transistores de 1K

13DISEOSDISEO Y REALIZACIN DE UN SISTEMA ON BOARD DIAGNOSTIC (OBD-II)Las especificaciones del protocolo indican que las tensiones del BUS estn dentro de los mrgenesPosibilidad de errores en las tramas enviadas

61 F1 6A 41 0C 0B 88 5C 61 6A F1 01 00 0A Trama que el modem enva por defectoTrama con la que debera responder la ECUUnnable to connectRespuesta real del modem, al no responder la ECULa cabecera del trama (Header Field) especifica direcciones de memoriaSolucin mediante la modificacin de la cabeceraSegn las especificaciones del protocolo SAEJ1850PWM los niveles de tensin antes mencionados estaban, aun as, dentro de los mrgenes permitidos, por lo que se pens que posiblemente el problema tambin poda venir causado por errores en las tramas enviadas,

La cabecera de la trama (Header Field), especifica las direcciones de memoria que identifican a los mdulos electrnicos de la ECU, por tanto se pens que posiblemente esta cabecera deba ser modificada por otra que indicase las direcciones correctas. El protocolo SAEJ1850PWM menciona a la cabecera 6A 61 F1, como generalmente las mas utilizada, pero tambin menciona otras posibilidades, como por ejemplo la cabecera E4 10 F1.

14DISEOSDISEO Y REALIZACIN DE UN SISTEMA ON BOARD DIAGNOSTIC (OBD-II)Modificacin de la cabecera (Header Field) accediendo directamente al firmware del microcontrolador:103C70000350E66EE66A00010028BC6F000E0120CA:103C8000BD6FBCC0E6FFBDC0E6FF040E0024BE6FE2:103C9000000E0120BF6FBEC0E6FFBFC0E6FFDDEC37:103CA0001EF046E90028E96E000E0120EA6E610E59:103CB000EF6E020E0024E96E000E0120EA6E6A0E26:103CC000EF6E030E0024E96E000E0120EA6EF10E85:103CD000EF6E0001030EBC6F00EBE9FF01EBEAFFA2:103CE000BC51EF2642E9E7CFD9FF1200D9CFE6FF5A:103C70000350E66EE66A00010028BC6F000E0120CA:103C8000BD6FBCC0E6FFBDC0E6FF040E0024BE6FE2:103C9000000E0120BF6FBEC0E6FFBFC0E6FFDDEC37:103CA0001EF046E90028E96E000E0120EA6EE40EBA:103CB000EF6E020E0024E96E000E0120EA6E100E77:103CC000EF6E030E0024E96E000E0120EA6EF10E85:103CD000EF6E0001030EBC6F00EBE9FF01EBEAFFA2:103CE000BC51EF2642E9E7CFD9FF1200D9CFE6FF5ALocalizacin de la cabeceraModificacin de la cabecera y del checksum E4 10 F1 01 00 0A Respuesta de la ECU despus de la modificacin:C4 F1 10 7F 01 01 00 00 11 41 7F 01: modo de trabajo no compatiblePara poder modificar las cabeceras se tubo que acceder al firmware que contiene el microcontrolador ya que no es posible modificarlas con ninguna orden especfica. Utilizando el software (Hex Workshop Hex Editor), se intent averiguar donde se encontraban los bytes que definan las cabeceras en cuestin, y despus de una bsqueda muy extensa se encontraron y modificaron con los nuevos valores. A continuacin se pueden observar los fragmentos de cdigo donde se encontraban.

Vemos que los bytes estn situados en diferentes lneas de cdigo hexadecimal, lo cual dificult aun mas la bsqueda.

Ahora podemos ver los datos de las cabeceras modificados, lo que llev tambin a recalcular el checksum de cada lnea. La suma de verificacin o checksum es una forma de control de redundancia, una medida muy simple para proteger la integridad de datos, verificando que no hayan sido corruptos.

Una vez realizado el nuevo gravado del firmware en el microcontrolador se procedi a intentar la comunicacin con la ECU, este fue el resultado.

7F 01 indica respuesta negativa, es decir, segn el estndar OBD-II una respuesta negativa significa que la centralita electrnica no dispone de informacin sobre el modo de trabajo requerido, que es el Modo 01.

Todos los estndares antes mencionados implementan varios modos de trabajo, es decir, segn la parte de informacin a la que queramos acceder necesitamos utilizar un modo diferente, dentro de cada uno de ellos podemos usar un abanico de parmetros muy amplio.

Modo 01: Se utiliza para determinar qu informacin del modulo electrnico (ECU) est a disposicin de la herramienta de exploracin.

15PROGRAMAS DE PRUEBARealizacin de pequeos programas de prueba Utilizacin del cdigo fuente de ScanTool.netMediante la herramienta Dev-C++ se dise un pequeo programa con la siguiente estructura:

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

Programa de prueba utilizando la plataforma JAVA

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

DISEOSDISEO Y REALIZACIN DE UN SISTEMA ON BOARD DIAGNOSTIC (OBD-II)El desarrollo del software se empez a elaborar realizando pequeos programas de prueba a partir del software libre ScanTool.net, que en una de sus versiones ofrece el cdigo fuente. Utilizando la herramienta Dev-C++ y este cdigo, el cual se basa en C++, se localizaron los mtodos y funciones que se sospechaban eran los responsables de mantener la comunicacin mediante el puerto serie. El programa se implement con los siguientes mtodos.

A partir de aqu se sigui la misma estructura para realizar otro programa de prueba pero utilizando la plataforma JAVA, que era el objetivo del proyecto. Se utiliz la librera nativa RXTXcomm para realizar la comunicaciones con el puerto serie:

16

DISEOSDISEO Y REALIZACIN DE UN SISTEMA ON BOARD DIAGNOSTIC (OBD-II)Programa de prueba diseado en C++Comando a enviar: 01 00 Cdigo ASCII: 48,49,48,48Mas retorno de carro01 00\r Cdigo ASCII: 48,49,48,48,13Si el protocolo a utilizar es SAEJ1850PWM:

SOF: Start Of FrameHeader Field: 61 6A F1Data Field: 01 00 CRC: 0AEOF: End Of Frame

Respuesta ECU 61 F1 6A 41 00 0B 88 5C

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

Trama recibida en el puerto serie (Cdigo ASCII)48,49,48,67,13,10,54,65,70,49,54,49,52,49,48,48,48,66,56,56,53,67,13,10,62,-1

DISEOSDISEO Y REALIZACIN DE UN SISTEMA ON BOARD DIAGNOSTIC (OBD-II)Ejemplo del tratamiento de las tramas digitales recibidas y enviadas:Tanto en JAVA como en C++, el tratamiento de las tramas digitales recibidas y enviadas en el puerto serie se traducen en valores decimales segn el cdigo ASCII, a partir de su equivalente en binario y posteriormente en hexadecimal.

Un ejemplo de su tratamiento sera el siguiente:Comando a enviar: 01 0C equivalencia cdigo ASCII: 48,49,48,67 Este comando sirve para pedirle a la centralita electrnica del vehculo (ECU), a cuantas revoluciones por minuto (rpm), est girando el motor.

Se le aade a la trama el retorno de carro para indicar fin de trama: 01 0C\r cdigo ASCII: 48,49,48,67,13 y el mtodo write() de la clase SerialPort la enva al puerto serie.

Posteriormente cuando la interface la ha recibido esta la enva a la ECU segn el siguiente formato de trama si el protocolo a utilizar es SAEJ1850 PWM:

SOF: Start Of FrameHeader Field: 6A 61 F1Data Field: 01 0C (Comando que se ha especificado antes)CRC: 0AEOF: End Of Frame

La ECU contesta con la siguiente trama y la interface la recoge para enviarla al puerto serie: 6A F1 61 41 0C 0B 88 0A Respuesta ECU

01 0C Respuesta 6A F1 61 41 0C 0B 88 0A Interface Se puede observar que la interface le aade a la trama el comando solicitado

Trama recibida del puerto serie atreves del mtodo read() de la clase SerialPort:48,49,48,67,13,10,54,65,70,49,54,49,52,49,48,67,48,66,56,56,48,65,13,10,62,-118DISEO DEL SOFTWARE DE CONTROLRealizacin de un software multiplataforma mediante lenguaje JAVA Utilizacin de la programacin estructurada multihiloDiseado en base a la estructura de programacin por capas

DISEOSDISEO Y REALIZACIN DE UN SISTEMA ON BOARD DIAGNOSTIC (OBD-II)Gestiona las tramas de datos procedentes del modemFacilita el acceso entre capasInteracta con el usuario de la aplicacinEl diseo final y definitivo de este proyecto consiste en realizar un software multiplataforma mediante lenguaje JAVA y diseado en base a la conocida estructura de programacin por capas.Con esta aplicacin conseguimos unir de forma correcta toda la capacidad de comunicacin que se haba conseguido en los programas de prueba anteriores con la necesidad de ofrecer muchas ms opciones, lo cual dota al programa de muchas posibilidades de configuracin y operatibilidad sobre la interface y por tanto sobre la centralita electrnica de cualquier vehculo.

Capa de datos: Es la encargada de gestionar todas las tramas de datos que se intercambian el puerto serie del PC y el modem interface

Capa de dominio: Ofrece la capacidad de trabajo de la capa de datos, de una forma mucho ms accesible para la capa de presentacin

Capa de presentacin: Se encarga de gestionar toda la parte visual del programa que interacta con el usuario de la aplicacin.

19PROGRAMACIN ESTRUCTURADA POR CAPASCapa de Datos:Clase ConexinClase ControladorConexinClase lecturaTXTErroresClase MuestraIDsCapa de Dominio:Clase ControladorDominioConexinCapa de Presentacin:Clases ControladorPrincipal y VistaPrincipal Clases ControladorErrores y VistaCodigosErrorClases ControladorMediciones y VistaMedicionesClases ControladorProtocolo y VistaProtocoloDISEOSDISEO Y REALIZACIN DE UN SISTEMA ON BOARD DIAGNOSTIC (OBD-II)Capa de datos:Clase Conexin: Es la encargada de encapsular todos los atributos de los que se compone una conexin que se realiza atreves del puerto serie: velocidad, dataBits, stopBits, paridad, nombrePuerto, protocolo.Clase ControladorConexin: Contiene todos los mtodos necesarios para realizar la conexin, contiene mucha de la estructura conseguida en los programas de prueba.Clase lecturaTXTErrores: Clase que permite acceder a archivos de tipo TXT, con el objetivo de que el programa disponga de una memoria permanente. Alguna de las funcionalidades de las que dispone el software necesita cotejar la informacin que recibe con la que dispone para poder reconocerla, como es el caso de la lectura de los cdigos de error.Clase MuestraIDs: Captura los identificadores de trama del protocolo CAN Bus

Capa de dominio: Clase ControladorDominioConexin: Contiene todos los mtodos necesarios para manejar todas las clases que se encuentran en la capa de datos.

Capa de presentacin:ControladorPrincipal y VistaPrincipal: Gestionan la carga de todas las dems clases de la capa de presentacin y proporcionan las operaciones bsicas del programa, como son poder iniciar o detener un conexin con la interface y seleccionar las diferentes opciones del programa.

ControladorErrores y VistaCodigosError: Estas clases se ocupan de gestionar la presentacin en pantalla de los cdigos de error proporcionados por la ECU.

ControladorMediciones y VistaMediciones: Se ocupan de gestionar la presentacin en pantalla de los datos referentes a valores que proporcionan los sensores del vehculo, tales como temperatura, velocidad, revoluciones por minuto, cantidad de aire absorbido, etc.

ControladorProtocolo y VistaProtocolo: Gestionan la presentacin en pantalla de las opciones disponibles a la hora de seleccionar un protocolo de comunicacin.

ControladorPSerie y VistaConfiguracin: Presentan en pantalla todas las opciones que requiere el puerto serie para ser configurado. Adems permiten realizar una bsqueda de estos.20PUESTA EN MARCHA DEL SOFTWAREArranque de la aplicacin mediante archivos ejecutablesDISEOSDISEO Y REALIZACIN DE UN SISTEMA ON BOARD DIAGNOSTIC (OBD-II)

RunLinux.shRunWindows.batVisualOBD.jarUso de la librera RXTXcommSe procedi a empaquetar la aplicacin en un archivo .jar, lo que facilita mucho su puesta en marcha y portabilidad a cualquier otra plataforma o sistema operativo. Para poder comunicarnos con los puertos de serie necesitamos la librera nativa RXTXcomm, y esta no viene incluida en las libreras de la maquina virtual que se instala por defecto, lo que obliga a tener que instalarla manualmente.

Para cualquier persona que est familiarizada con la programacin no es un problema, pero si para alguien que solo quiera hacer unas cuantas pruebas.

La solucin es crear una carpeta donde se introducira el archivo JAR, los archivos adjuntos necesarios como los JPG y TXT, y otra carpeta donde incluimos la librera nativa RXTXcomm, para que se cargada automticamente.

Adems de lo anterior se crearon dos archivos ejecutables (RunLinux.sh y RunWindows.bat), que se utilizan segn en el sistema operativo en el que estemos.

21DESCRIPCIN DEL FUNCIONAMIENTOEstado inicial del programa

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

Si arrancamos RunWindows.bat o RunLinux.sh, nos aparecer el siguiente entorno visual.22Configuracin del puerto serieRESULTADOSDISEO Y REALIZACIN DE UN SISTEMA ON BOARD DIAGNOSTIC (OBD-II)

Cliqueando en Search for available ports obtendremos un lista de los puertos que tenemos disponibles. Posteriormente en la parte superior seleccionaremos el puerto en el que est conectada la interface, y modificaremos los dems parmetros segn sea necesario. Despus solo queda cliquear en Apply para confirmar los cambios.

23Seleccin del protocolo de comunicacinRESULTADOSDISEO Y REALIZACIN DE UN SISTEMA ON BOARD DIAGNOSTIC (OBD-II)

Vemos que podemos seleccionar el protocolo de comunicacin o dejar seleccionada la opcin Automatic detection of communication protocol, para que sea autodetectado. Esta seccin tambin nos proporciona la posibilidad de modificar las cabeceras de las tramas que se van a enviar. Cada opcin (Priority, ECU Addres, Tool address) se corresponde con un byte dentro de la trama, esto aumenta las posibilidades de xito en el momento de conectarse con la ECU, ya que aunque muchos modelos de centralitas se comunican de la misma forma, necesitan que se les especifique este parmetro y por tanto modificar el que se enva por defecto.

24Inicio de la conexinRESULTADOSDISEO Y REALIZACIN DE UN SISTEMA ON BOARD DIAGNOSTIC (OBD-II)

Iniciamos la conexin cliqueando en Connect, si el proceso se ha realizado con xito obtendremos la siguiente respuesta.

Observamos que en la consola de texto nos aparecen los comandos 0100->41 00 98 1B 00 11 y 0100->86 F1 10 41 00 98 1B 00 11, lo que quiere decir que se ha realizado la conexin correctamente y que la ECU contest adecuadamente informando de los PIDs (Parameter IDs) que tiene disponibles para ser inspeccionados.

25RESULTADOSDISEO Y REALIZACIN DE UN SISTEMA ON BOARD DIAGNOSTIC (OBD-II)Conexin no consolidada

RESULTADOSDISEO Y REALIZACIN DE UN SISTEMA ON BOARD DIAGNOSTIC (OBD-II)Lectura de cdigos de error

RESULTADOSDISEO Y REALIZACIN DE UN SISTEMA ON BOARD DIAGNOSTIC (OBD-II)Lectura de sensores a tiempo real

POSIBLES APLICACIONES

Labores de manteniendo de cualquier profesional del sector

Labores de mantenimiento de uso particular

Herramienta para aficionados a la mecnica del automvil

RESULTADOSDISEO Y REALIZACIN DE UN SISTEMA ON BOARD DIAGNOSTIC (OBD-II)Labores de manteniendo de cualquier profesional del sector que se encuentre con uno vehculo averiado con OBD-II y que despus de su reparacin verifique con esta herramienta si el problema se ha subsanado correctamente asegurndose de que la ECU no devuelve ningn cdigo de error o de que el sensor en cuestin ofrece unas lecturas correctas segn especificaciones del fabricante.

Cualquier poseedor de un vehculo con OBD-II observa que en el cuadro de instrumentos se le ha encendido una luz llamada Check Engine y se pregunta el porqu de este fallo.En lugar de recurrir al servicio de mantenimiento inmediatamente podemos proceder a realizar una lectura de Cdigos de Error obteniendo el posible cdigo que nos describir brevemente a que se debe el problema.

Aquellas personas que por puro inters quieren conectarse a su automvil para observar los datos que la centralita electrnica les puede ofrecer, con fines de simple curiosidad.

Como vemos esta herramienta, aunque no est dotada de todo el potencial posible que ofrece el OBD-II, si aporta una funcionalidad muy til entre los posibles usuarios interesados por la mecnica.

29PRESUPUESTO DEL PROYECTOLa siguiente tabla especifica el presupuesto detallado en euros:

PRESUPUESTODISEO Y REALIZACIN DE UN SISTEMA ON BOARD DIAGNOSTIC (OBD-II)ReferenciaCantidadPrecio unitarioPrecio totalMaterial montaje interfaceMaterial montaje programadorCable OBD-II a DB9 hembraCable USB tipo A-BHora trabajo 111120205521020552200Total232Observamos que nuestro sistema cuesta 232, frente a los 4000 que pueden llegar a costar las herramientas que utilizan en cualquier servicio oficial.

PLAN DE TRABAJOConseguir todos los componentes y materiales. Montar la interface y el programador.Comprobar el correcto funcionamiento de la interface.Instalacin de los sistemas operativos WindowsXP y Linux Ubuntu 8.04 con la respectiva maquina virtual de JAVA.Instalar software compatible con la interface para comprobar su correcto funcionamiento.Conectar la interface a diferentes vehculos para asegurar su funcionalidad.Programar aplicaciones de prueba en C++ y Java. Programar aplicacin con entorno visual.Verificar el correcto funcionamiento de la aplicacin visual.Verificar el correcto funcionamiento de la aplicacin sobre la centralita electrnica.Verificar el correcto funcionamiento de la aplicacin en diferentes sistemas operativos, Windows y Linux.CONCLUSIONES Y MEJORASDISEO Y REALIZACIN DE UN SISTEMA ON BOARD DIAGNOSTIC (OBD-II)Conseguir todos los componentes y materiales electrnicos necesarios para construir el modem interface y el programador de PICs. Montar la interface y el programador segn el PCB y esquemas elctricos especificados en el proyecto.Comprobar el correcto funcionamiento de la interface y familiarizarse con los comandos AT que permiten configurar el microcontrolador PIC18F2550. Instalar en un ordenador porttil los sistemas operativos WindowsXP y Linux Ubuntu 8.04 con la respectiva maquina virtual de JAVA.Instalar software compatible con la interface para comprobar su correcto funcionamiento.Conectar la interface a diferentes vehculos para asegurar su funcionalidad.Programar aplicaciones de prueba en C++ y Java. Programar aplicacin utilizando JAVA con un entorno visual lo suficientemente potente que permita gobernar la interface y la centralita electrnica de forma estable.Verificar el correcto funcionamiento de la aplicacin sobre la interface mediante pruebas.Verificar el correcto funcionamiento de la aplicacin sobre la centralita electrnica de los vehculos mediante pruebas.Verificar el correcto funcionamiento de la aplicacin en diferentes sistemas operativos, Windows y Linux.

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

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

CONCLUSIONES Y MEJORASDISEO Y REALIZACIN DE UN SISTEMA ON BOARD DIAGNOSTIC (OBD-II)Las conclusiones finales a las que se 33CONCLUSIONES Y MEJORASDISEO Y REALIZACIN DE UN SISTEMA ON BOARD DIAGNOSTIC (OBD-II)MEJORAS FUTURAS DEL SISTEMA

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

Turno de preguntas