Buenas amigos...:
Les propongo un tema que quizas les parezca interesante. Les pongo en antecedentes:
Los vehículos actuales (fabricados a partir del 2000/2001) incorporan todos ellos un control electronico muy avanzado. Multitud de sensores colocados a lo largo del coche, se encargan de recoger los datos y enviarlos la la unidad central, llamada U.C.E. Datos como la presion del ABS, de la dirección asistida, las revoluciones del motor, la cantidad de combustible inyectada, el avance de la inyección, el estado de los airbagas...etc..
Esta unidad central es realmente un microprocesador (o microcontrolador).. realmente no se sabe. Digo esto porque los fabricantes guardan muy celosamente esta información. De echo ni siquiera en los propios servicios técnicos, los mecanicos lo conocen. Ya tienen "maquinas" que los chequean.
Si abrimos una UCE, encontramos multitud de chips con sus referencias borradas.
El caso es que toda esta información se puede consultar desde el exterior. Incluso cambiar.
Esto se hace gracias al protocolo OBD-2 y a un conector que puede estar situado el diferentes sitios (depende del modelo).
A este conector se enchufan las máquinas que hay en las casas oficiales, y que sirven para testeo y modificacion.
Pero estas maquinas suelen ser para un uso especifico.
Aqui es donde entramos nosotros. Resulta que fabricando una interface que transforme este protocolo a protocolo serie 232, podemos conectar nuestro coche a un ordenador..!
En el ordenador se ejecutaría un software especifico (que hay muchos en internet)
Y podríamos ver entre otras cosas:
- errores o averías guardadas en la memoria
- testeo en tiempo real de revoluciones, consumo, velocidad... e infinidad de cosas
- tambien se podría subir la potencia del motor..
etc...
Todo esto es muy sencillo y muy bonito. Yo lo he visto funcionando de primera mano y es una maravilla ir en el coche con el portatil al lado y verlo funcionar.
Para los que tienen un vehículo del llamado Grupo VAG, es decir, audi, volkswagen, seat y skoda...es bastante sencillo. Existen esquemas en internet con simplemente optoacopladores.
El problema comienza con las demas marcas.
Veamos, el primer problema es conseguir un conector de este tipo. Siempre es el mismo, es horizontal (cuando aprenda, les subiré una foto..
) Solo en BMW es distinto. El caso... que tampoco es tan necesario, realmente OBD-2 es una transmision serie.. por lo que como mucho se emplearán 3 hilos contando la masa comun.
El software no es problema, existe muchos programas libres y otros no, que se pueden descargar de internet.
El problema en mi caso es el interface, me explico.
OBD-2 permite o contempla 3 protocolos: ISO 9141, PWM y VPW.
El ISO 9141 es el mejor, es un protocolo serie 232, el mismo que utiliza el PC. Por lo que realmente no seria necesaria interface. Bueno, en realidad se optoacopla para no mezclar voltajes y proteger el PC, e incluso me parece que hay que adaptar voltajes (con MAX232 por ejemplo), pero ya está.
¿Que vehículos llevan ISO 9141? Pues realmente cada casa pone el que le da la gana. Incluso de una misma casa, pueden llevar distintos, aunque eso son casos aislados. De momento parece ser que son fieles a un protocolo elegido. El ISO 9141 lo emplean los coches del grupo VAG (que he mencionado antes)
Pero por ejemplo, Ford usa PWM... y las marcas japonesas VPW.
Y he aqui la cuestion. He visto algunos esquemas en internet, y todos ellos utilizan un PIC16F84 en la interface, como decodificador. Pero la programación de ese PIC no se encuentra, evidentemente. Asómense a la página:
http://www.scantool.net/products/index.htmY diganme a que micro se parece ese que montan..jeje...
Estoy tratando de programar un pic para que decodifique PWM, pero no se como empezar. Tengo muchas dudas, de echo no sabía ni siquiera que PWM podía ser un protocolo de comunicaciones. Yo se que se usa para control de motores, por el ancho de pulso, y que algunos pic incorporan ese módulo internamente, pero no me vale para mi uso.
No se si me explico, en este caso parece ser que hay que decodificarlo. conozco la frecuencia, que es 41,6Khz, pero nada mas. Me imagino que ese será el periodo fundamental, y que según el tiempo que esté arriba la señal (respetando el periodo), se traducirá en un 1 o un 0. E incluso si existen varios "anchos", se traducirá en secuencias, por ejemplo, si existen 7 posibilidades, se traduciría en 000 o 001, o 010 ..... hasta 111.
No se si voy bien encaminado. Espero que me puedan ayudar y tambien espero no haber sido pesado con el tema que creo que puede ser interesante.
Muchas gracias.