Paso 1: Comunicación con la ECU (unidad de Control de motor)
Desde 1996, cada coche tiene un sistema de diagnóstico o a bordo de diagnóstico (OBD) que significa que cada coche desde entonces tiene una ECU y por lo tanto tiene un protocolo de comunicación funcionando en él, se trata de comunicar todos los sensores que tiene el coche. Así que nuestro objetivo para esta parte debe ser capaz de comunicarse o pizca de sistema del ECU del coche a obtenido la información de deseo. Cuando hice la investigación que descubrí que hay varios sistemas embebidos que cumplan con este requisito primero necesitas saber que protoclo es realmente en su coche mientras estaba trabajando en un Mazda 3 2005 el protocolo era ISO 15765-4 (CAN 11bits / 500kbps), puede comprobar si el protocolo de checar el presente pins en el conector OBD de su vehículo.
Después de esto decidí utilizar un cable ELM327 que apoyo totalmente este protocolo
Este cable proporciona comunicación del usb a la ECU este es realmente un ápice del microcontrolador PIC mucho de transceptores de protocolo para cada protocolo soportado, debe descargar la hoja de datos en este enlace , se puede obtener información detallada sobre el ELM327, lo bueno es que como el ELM327 es un microcontrolador proporciona comunicación directa TTL o Uart esto significa que usted puede comunicar fácilmente su sistema embebido a la ELM327 a través de una comunicación Uart , el único problema era que el cable que compré y probablemente el mismo cable que se encuentra, proporciona comunicación USB así que tuve que hacer un "hack" para omitir el intérprete usb y haz sólo comunicación de TTL.
El "hack" es soldar el cable directamente a los pines Rx y Tx del controlador PIC así dolder los cables de datos del usb del cable directamente a los pines Rx y Tx (vale la pena mencionar que una vez hecho esto no puedes usarlo en la PC vía el usb).
Así que una vez hecho esto tenemos nuestro hardware de comunicación listo, así podemos conectar ahora los cables de datos del usb directamente a nuestros pines de Tx y Rx de atmega 2560.
Usé un arduino MEGA, pero toda la programación su C hecho en estudio de atmel, así que no es dependiente de arduino subo el programa en el arduino usando ICSP. Así que no voy para cavar en detalles sobre el código, iniciado una comunicación uart por wrtiting algunos registros y usé un baud 38400 tarifa que es el presente en este ELM327.
Si lees la hoja de datos del ELM327 encontrará que podemos enviar algunos PIDS (IDs de parámetros) que a obtenido un anuncio de parámetro de deseo por ejemplo si queremos saber la velocidad real de la tarjeta debemos enviar comunicación de Uart a través el siguiente PID '010 D' una vez que nos envía esta secuencia para el ELM327 responderá nos ápice la velocidad real del coche.
Aquí puedes encontrar todo el PIDs disponible tenga en cuenta que vamos a utilizar el modo 01.