Las ECUs y su conexión al bus CAN

Localizamos las ECUs del toyobaru

Si uno accede al manual de reparación del toyobaru, en la parte de red de comunicaciones se muestra el esquema general del bus CAN.

Vista general del bus CAN del GT86/BRZ

Donde se observan distintos elementos conectados al mismo y en particular, distintas ECUs.

Si seguimos avanzando en la lectura, el manual llega a determinar que ECUs y sensores se comunican a través del bus CAN. En particular, un sensor y hasta 9 ECUs. 

ECUs y sensores conectados al bus CAN del GT86/BRZ

Como la TCM únicamente se conecta al bus para el cambio automático (esto explica los 6 nuevos mensajes CAN que encontré al analizar el tráfico en el bus del coche de Santi), en mi coche con transmisión manual debería haber 8 ECUs.

La norma OBD2 obliga a que la ECU principal responda bajo el CAN ID 0x7E0 y sugiere (pero no obliga) que la ECU de la transmisión (TCM) responda bajo el 0x7E1, y que las sucesivas ECUs usen los siguientes identificadores (0x7E2, …).

Y efectivamente en el toyobaru, si tu solicitas los servicios OBD2 a la ECU con el CAN ID 0x7E0, recibes las respuestas conforme a la norma, como ya hemos visto en este blog.

Así que me apresuré a solicitar servicios a los siguientes CAN IDs con la esperanza de localizar las distintas ECUs del vehículo.

Obviamente, el CAN ID 0x7E1 no contestó, pues debería estar reservado para la TCM y en mi coche no aplica. Pero tampoco respondieron los CAN IDs sucesivos.

Me planteé entonces la posibilidad de rastrear todos los CAN IDs desde el 0x700 hasta el 0x7E0, para lo cual preparé una serie de comandos para lanzar desde mi portátil, conectado al coche, solicitando el servicio 0x01 (“Request Diagnostic Data” del estándar OBD2) y el servicio 0x21 (“Read Data By Local Id” que la norma ISO 14.229 UDS -Unified diagnostic services- deja abierta a los fabricantes), con la esperanza de que ‘alguien’ respondiera algo.

Estos son los resultados:

0x701

'Algo' atendió la solicitud de servicio 0x01 al CAN ID 0x701

>> 701: 02 01 00 00 00 00 00 00
<< 700: AC 02 50 50 00 00 00 00

Pero la respuesta no la acabo de entender. Primero no responde el CAN ID 0x709 (que es el que en principio debería responder una petición al CAN ID 0x701) y a los datos recibidos aun no les he encontrado sentido.

La solicitud del servicio 0x21 para ese CAN ID

>> 701: 02 21 00 00 00 00 00 00
timeout

finalizó sin respuesta pero, aun así, el CAN ID 0x701 es primer candidato a ser la dirección de una de las ECUs.

0x720

La solicitud del servicio 0x01 al CAN ID 0x720 me deparó una nueva sorpresa, y es que recibí la respuesta desde el CAN ID 0x7E8.

>> 720: 02 01 00 00 00 00 00 00
<< 7E8: 06 41 00 BE 3F A8 13 00

Y recibí la misma respuesta que si se la hubiera solicitado al 0x7E0 (o al 0x7DF -petición broadcast-) que corresponde por norma a la ECU principal, lo que me hace sospechar que detrás de este CAN ID se encuentra la ECU principal.

La solicitud del servicio 0x21 no obtuvo respuesta

>> 720: 02 21 00 00 00 00 00 00
timeout

lo cual me sorprendió, pues esperaba que la ECU principal soportara este servicio. Pero se ve que no …

0x730

La solicitud del servicio 0x01 al CAN ID 0x730 también obtuvo respuesta

>> 730: 02 01 00 00 00 00 00 00
<< 738: 03 7F 01 11 00 00 00 00

Y esta vez del CAN ID esperado, el 0x738. La sorpresa vino después al descodificar la respuesta:

  • 0x03 -> 3 bytes
  • 0x7F -> Respuesta negativa
  • 0x01 -> para el servicio 0x01
  • 0x11 -> Servicio no soportado

Ahí sí que había claramente una ECU, que además decía cumpliendo perfectamente la norma que no soportaba ese servicio.

Probé con el servicio 0x21 y si obtuve una respuesta positiva

>> 730: 02 21 00 00 00 00 00 00
<< 738: 06 61 00 3D 50 00 03 00

Había encontrado una tercera ECU.

0x780

Algo parecido pasó al interrogar al CAN ID 0x780

>> 780: 02 01 00 00 00 00 00 00
<< 788: 03 7F 01 10 00 00 00 00

Con la salvedad de que en vez de devolver el valor 0x11 (Servicio no soportado) devolvía el valor 0x10: Rechazo general.

No parecía una ECU muy propensa a colaborar, pero estaba claro que ahí había otra ECU. 

De nuevo, la solicitud ante el servicio 0x21 fue acogida con mayor agrado.

>> 780: 02 21 00 00 00 00 00 00
<< 788: 06 61 00 AC 80 00 01 00

Ya teníamos identificada la cuarta ECU.

0x7A1

El CAN ID 0x7A1 se convirtió en la quinta ECU, con un comportamiento muy similar al de las últimas ECUs, declarando el servicio 0x01 como no soportado

>> 7A1: 02 01 00 00 00 00 00 00
<< 7A9: 03 7F 01 11 00 00 00 00

Y respondiendo más positivamente ante el requerimiento del servicio 0x21

>> 7A1: 02 21 00 00 00 00 00 00
<< 7A9: 06 61 00 27 F4 0F F1 00

0x7B0

Exactamente el mismo comportamiento para el CAN ID 0x7B0, que se convierte en la sexta ECU identificada. No soporta el servicio 0x01.

>> 7B0: 02 01 00 00 00 00 00 00
<< 7B8: 03 7F 01 11 00 00 00 00

Y responde afirmativamente ante el requerimiento del servicio 0x21.

>> 7B0: 02 21 00 00 00 00 00 00
<< 7B8: 06 61 00 3D 50 00 03 00

0x7C0

Y el CAN ID 0x7C0 se convierte en la séptima ECU identificada con otro comportamiento idéntico, tanto para el servicio 0x01

>> 7C0: 02 01 00 00 00 00 00 00
<< 7C8: 03 7F 01 11 00 00 00 00

Como para el 0x21.

>> 7C0: 02 21 00 00 00 00 00 00
<< 7C8: 06 61 00 00 00 60 01 00

0x7C4

Finalmente, el CAN ID 0x7C4 ha sido el octavo y último CAN ID que ha respondido a los requerimientos realizados, aunque vuelve a mostrar un comportamiento extraño, similar al recibido de 0x701, recibiendo la respuesta del CAN ID 0x700 para el servicio 0x01

>> 7C4: 02 01 00 00 00 00 00 00
<< 700: AC 02 50 50 00 00 00 00

Con unos datos que aun no he sido capaz de descifrar. Sin embargo, el servicio 0x21 lo recibe positivamente

>> 7C4: 02 21 00 00 00 00 00 00
<< 7CC: 06 61 00 20 00 00 01 00

y respondiendo desde el CAN ID 0x7CC, que es el esperado en este caso.

Una vez identificadas las direcciones (los CAN IDs) de las 8 ECUs conectadas al bus CAN, hay que tratar de averiguar cual es cual y que se puede obtener de cada una de ellas. 

No parece una tarea fácil, pues, salvo la ECU principal, que debe hacerlo por norma, parece que se niegan a hablar en los servicios normalizados de OBD2 (como el servicio 0x01) y muestran predilección por el servicio 0x21 del que cada fabricante puede hacer ‘de su capa, un sayo’ y del que es muy difícil encontrar documentación al respecto. 

Pero se intentará ...

Mensaje CAN BUS 0x63B

¿ El reloj interno del toyobaru ?

Siempre me ha intrigado el mensaje 0x63B. Desde el primer día que empecé a cacharrear con el bus CAN, uno trata de buscar datos que se incrementen o se decrementen de forma continua.

Seguir leyendo

Mensaje CAN BUS 0x442

Continuamos analizando los mensajes CAN de la familia 0x44*

Después de haber visto la información que transportan los mensajes CAN 0x440 y 0x44D, nos queda por examinar el contenido del mensaje 0x442 para finalizar con esta familia de mensajes tan relevantes en los cambio de modo del GT86/BRZ.

Seguir leyendo

Mensaje CAN BUS 0x440

Continuamos analizando los mensajes CAN de la familia 0x44*

Como hemos visto en entradas anteriores, el mensaje 0x440 tiene un papel relevante en los cambios de modo del toyobaru. Vamos a ver en esta entrada del blog la información que transporta este mensaje.

Seguir leyendo

¿ Habrá un tercer toyobaru ?

Ciertos rumores apuntan a su existencia ...

Sabemos que Toyota y Subaru están desarrollando una plataforma común para vehículos eléctricos que podría dar lugar a un segundo toyobaru, aspecto éste que no está confirmado por los fabricantes, pues no sabemos aun si la colaboración se quedará tan solo en la plataforma, o incluirá también el chasis y el resto del vehículo.

Seguir leyendo

Mensaje CAN BUS 0x44D

El maestro de ceremonias del modo 'ACCESSORY'

Como hemos visto en entradas pasadas, el mensaje 0x44D tiene un papel fundamental en el paso al modo 'ACCESSORY' pues es el primer mensaje en aparecer en el bus CAN y el que parece orquestar el despertar del resto de mensajes.

Seguir leyendo

Los modos del toyobaru y el bus CAN

Como cambia la actividad del bus CAN en función del modo del vehículo.

Hasta ahora hemos visto en Mensajes CAN y sus frecuencias (y su segunda parte para el modelo automático), los distintos mensajes que circulan por el bus CAN del GT86 y el BRZ y la frecuencia con la que lo hacen. Esta información es correcta cuando el coche está con el contacto activado, lo que el manual llama modo 'IGNITION ON'.

Seguir leyendo

Presentación del Subaru BRZ 2022

Llega la segunda generación ...

Se desveló el misterio. Llegó el día señalado en el calendario y se acabaron los rumores y conjeturas de los últimos meses en los mentideros de internet. Ya está todo claro.

Seguir leyendo

Page top