Estoy tratando de descubrir cómo bloquear y desbloquear las puertas de un Toyota RAV4 2010 usando el bus CAN a través del puerto OBD-II. Tengo un microcontrolador conectado a través de un controlador CAN y un receptor CAN, y he escrito un firmware para capturar y reproducir mensajes.
Si abro las puertas a través del llavero o del botón de la puerta, recibo una ráfaga de mensajes en un autobús silencioso (la llave está apagada). Sin embargo, reproducirlos no hace nada. Sospeché que podría ser algún tipo de problema de autenticación, así que probé algo menos sensible: los faros. Curiosamente, cuando reproduzco los mensajes de encender los faros, el indicador de faros en el grupo de instrumentos se ilumina brevemente, pero los faros reales no hacen nada.
Supongo que tengo varias preguntas:
1) ¿Debería ser posible sobre el bus CAN expuesto en el puerto OBD-II? He visto fuentes que dicen que las puertas están controladas por un autobús diferente y más lento, pero también he visto dispositivos anunciados que bloquearán las puertas cuando alcances una velocidad particular.
2) ¿Los otros autobuses están expuestos de alguna manera?
3) ¿Hay alguna forma de averiguar el significado de los mensajes que he capturado sin pagar grandes cantidades de dinero a Toyota?
Respuestas:
Lo que quieres hacer es posible. He tenido una experiencia y un deseo similares para mi Camry 2010. Desde mi experiencia, leer mensajes desde el puerto OBD-II no me llevaba a ninguna parte. Era como si los mensajes CAN fueran solo una respuesta a mí manipulando manualmente el automóvil.
Recibiría un mensaje de respuesta al bloquear o desbloquear las puertas con la llave FOB, pero enviar ese mismo mensaje no hizo nada.
Lo que debe hacer es obtener un cable divisor OBD-II y una copia de Toyota Techstream con un "cable mini VCI". Esto le permitirá leer los mensajes que envía el software Techstream a través del puerto OBD-II.
Deberias ser capaz de:
1- Bloqueo y desbloqueo del conductor / todas las puertas
2- baúl pop
3- Encienda luces bajas y altas y luces intermitentes
4- Toca la bocina
5- enrollar ventanas hacia arriba y hacia abajo
6- Etc.
..o al menos todo funcionó para mí!
YMMV y buena suerte! :RE
(No soy responsable por daños a mí mismo o al automóvil).
fuente
Por lo general, el bus CAN OBD se conecta en puente a los otros buses CAN del vehículo, para facilitar el diagnóstico de las ECU en los otros buses. Sin embargo, el puente solo puede transmitir mensajes de diagnóstico en adelante :( Es diferente en cada plataforma.
En términos del protocolo, es un problema clásico de ingeniería inversa. Debe capturar algunos rastros de la actividad CAN cuando presiona el botón de desbloqueo y descubre cuál es el formato de los mensajes. El ejemplo de su faro puede indicar que hay varios autobuses y que solo tiene acceso a uno de ellos (que va a la unidad del tablero y no a los faros en este caso)
Con las cerraduras de las puertas, es muy posible que también exista algún tipo de desafío-respuesta que detenga su simple "ataque de repetición".
fuente
Si yo fuera el tipo que diseñó la electrónica, haría imposible hacer esto a través de CAN-Bus simplemente porque obtienes adaptadores bluetooth para OBD2 con los que alguien que está parado fuera del automóvil podría emparejarse y enviar las instrucciones de desbloqueo.
Es un peligro para la seguridad, por lo que no lo apoyaría.
fuente
Incluso si se conecta al bus correcto y transmite el mensaje CAN correcto, aún se encuentra con el problema de transmitir un mensaje CAN que ya está siendo transmitido por otra ECU.
De la forma en que funciona CAN, cada mensaje de can tiene una identificación de arbitraje también conocida como la identificación del mensaje. Bajo operación normal, ninguna ECU emitirá un mensaje con la misma ID en el mismo bus. Cuando haces esto En teoría, debería poder bloquear o desbloquear la puerta, inundando el autobús, con el mensaje deseado, pero no será algo que usaría dentro de un producto, ya que su abuso del autobús interferirá con la comunicación de las ECU en el autobús que transmite con menor prioridad.
Ahora, de nuevo, si el mensaje CAN para bloquear y desbloquear la puerta está completamente controlado por eventos, y no se transmite periódicamente, entonces lo que intenta hacer es completamente factible.
Además, los mensajes que está olfateando, que cambian cuando cierra o abre la puerta, pueden no ser de su interés. Los mensajes de estado a menudo se envían a otros buses, debería transmitir el mensaje correcto en el bus desde el que se origina.
Sugerencia: busque en línea el pin para el conector OBD en su vehículo.
Sí, puede ser posible, pero necesita conocer el pin para el OBDII en su automóvil, que probablemente no sea información pública, pero puede averiguar cuáles son de interés eliminando los pines OBDII estándar.
Como se respondió anteriormente, creo que hay una buena posibilidad, eliminar los pines OBD estándar, y los pares restantes serán los de interés. Cada canal de datos de lata tiene datos altos y datos bajos.
Necesita una herramienta CAN, para ver los datos en los pines sospechosos, la buena noticia es que solo captará los mensajes de lata cuando esté conectado a los pines correctos. De lo contrario, la herramienta arrojará errores. y es posible que necesite una herramienta que pueda detectar automáticamente las velocidades en baudios, o puede adivinar.
Va a requerir un poco de tiempo y piratería.
fuente