0x7C4, la ECU responsable de la climatización del toyobaru (II)

Avanzamos en el entendimiento de algunos PIDs del servicio 0x21 sobre esta ECU.

Vimos en la anterior entrada, que varios PIDs del servicio 0x21 eran respondidos por la ECU con dos bytes (que llamaremos A y B) y que en el caso del PID 0x29, ese valor se correspondía con una temperatura cuyo valor se obtenía, en grados centígrados, de aplicar la fórmula (A*256+B)/100.

Con esa información, he estado haciendo distintas pruebas en el coche, modificando parámetros de la climatización, pasando el coche de lugares templados y oscuros (como el garaje) a luminosos y más o menos cálidos, como la calle, y tomando algunas temperaturas.

Tras registrar cada cambio, se procede a interrogar a la ECU, y por comparación entre los datos antes y después de la pruebas, se pueden llegar a algunas conclusiones. Estas son las que yo he alcanzado.

PID 0x21

Como ya sabemos, la consulta a este PID

>> 7C4: 02 21 21 00 00 00 00 00
<< 7CC: 04 61 21 08 57 00 00 00

devuelve 2 bytes (en el ejemplo A = 0x08 y B =0x57) que aplicando la formula (A*256+B)/100 se transforma en una temperatura en ºC (en el ejemplo 21,35 ºC).

Después de todas mis mediciones creo poder asegurar que ese valor se corresponde a la temperatura del interior del habitáculo.

PID 0x26

Del mismo modo, esta consulta

>> 7C4: 02 21 26 00 00 00 00 00
<< 7CC: 04 61 26 11 F8 00 00 00

devuelve 2 bytes. En el ejemplo: A = 0x11 y B=0xF8, para dar una temperatura de 46ºC.

Esta temperatura se corresponde con la del líquido refrigerante del motor. Como vimos, la temperatura del refrigerante pude obtenerse a través del servicio 0x01, con el PID 0x0F consultando a la ECU principal (0x7E0).

Como veremos también cuando escriba en el blog la reseña sobre el mensaje CAN ID 0x360, esta temperatura también está disponible en el tercer byte del mensaje CAN bus con ID 0x360.

Pues bien, en todas las pruebas realizadas, la consulta a la ECU 0x7C4 con el servicio 0x21 y PID 0x26 ha devuelto el mismo valor que el que se corresponde con la temperatura del refrigerante.

PID 0x2A

De nuevo una consulta que devuelve dos bytes

>> 7C4: 02 21 2A 00 00 00 00 00
<< 7CC: 04 61 2A 08 98 00 00 00

que pueden interpretarse como una temperatura. En el ejemplo, A = 0x08, B = 0x98 para dar una temperatura de 22,00 ºC.

En este caso, la temperatura se corresponde con la fijada en el sistema de climatización para el acompañante (del mismo modo que el PID 0x29 devuelve la temperatura fijada para el conductor, como vimos en la entrada anterior).

PID 0x3D

Otra consulta que devuelve dos bytes es

>> 7C4: 02 21 3D 00 00 00 00 00
<< 7CC: 04 61 3D 05 AF 00 00 00

En el ejemplo, A = 0x05, B = 0xAF, que permite obtener una temperatura de 14,55 ºC.

Este valor se corresponde con la temperatura exterior y coincide (con el redondeo necesario) con la que el vehículo muestra en el cuadro de mandos cuando consultamos dicha temperatura.

PID 0x24

Hay otros PIDs que devuelven dos bytes que podrían tratarse de otras temperaturas, pero aun no he logrado entender su comportamiento. Pero también hay PIDs que devuelven dos bytes que no tienen nada que ver con temperaturas. Uno de ellos es

>> 7C4: 02 21 24 00 00 00 00 00
<< 7CC: 04 61 24 03 7A 00 00 00

que devuelve dos bytes (en el ejemplo A = 0x03 y B = 0x7A) y que podríamos considerar una temperatura (en el ejemplo sería de 8,9 ºC).

Pero no he encontrado ninguna correlación que pueda indicarme que se trata de una temperatura.

Sin embargo, lo que he observado, es que cuando realizo las pruebas en la penumbra del garaje, este PID devuelve valores muy bajos (0x0002). En las pruebas realizadas durante los atardeceres los valores son un poco más elevados (0x0050) y van disminuyendo con el paso del tiempo (0x0048, 0x0040, 0x003E, 0x003D).

Por otro lado, las muestras que he tomado durante el día, pero a la sombra de un árbol los valores son mayores (0x029E), y las pruebas realizadas a pleno sol -como la del ejemplo- los valores son todavía mayores, como en el ejemplo 0x037A, que es el valor más alto que he obtenido.

Todo ello me hace pensar que este PID nos devuelve el valor del sensor de iluminación a la que está sometido el vehículo.

PID 0x3C

Además de poder entender la respuesta de algunos PIDs que devuelven dos bytes, las pruebas realizadas me han permitido comprender la respuesta de algunos de los PDIs que devuelven un solo byte.

>> 7C4: 02 21 3C 00 00 00 00 00
<< 7CC: 03 61 3C 05 00 00 00 00

En este caso, el byte devuelto es A = 0x05, y tras las pruebas realizadas puedo decir que la respuesta al PID 0x3C contiene la intensidad del ventilador entre los valores comprendidos entre 0x00 -cuando el ventilador está apagado- y 0x1F, cuando está al máximo.

PID 0x36

La solicitud del PID 0x36 también devuelve un byte

>> 7C4: 02 21 36 00 00 00 00 00
<< 7CC: 03 61 36 00 00 00 00 00

En el ejemplo, A = 0x00.

Durante las pruebas solo he obtenido dos valores. 0x00 cuando la recirculación del aire no está activa y 0xFF cuando si lo está.

PID 0x41

Otra solicitud que sólo devuelve un byte es la correspondiente al PID 0x41

>> 7C4: 02 21 41 00 00 00 00 00
<< 7CC: 03 61 41 00 00 00 00 00

De forma análoga a la anterior solicitud, solo me he encontrado dos valores como respuesta. 0x00 cuando el aire acondicionado no está activado y 0xFF cuando si lo está.

PID 0x42

Por último, la solicitud al PID 0x42 también devuelve un byte

>> 7C4: 02 21 42 00 00 00 00 00
<< 7CC: 03 61 42 00 00 00 00 00

Y del mismo modo que las dos anteriores solo he encontrado dos valores durante mis pruebas. 0x00 cuando la opción de climatización dual está desactivada y 0xFF cuando está activa.

Con toda esta información podemos ir completando nuestra tabla

PID Longitud (bytes) Unidades Cálculo Descripción Status
0x00 4 - Evaluación de bits PIDs soportados [0x01...0x20] Confirmado
0x03 2


Desconocido
0x20 4 - Evaluación de bits PIDs soportados [0x21...0x40] Confirmado
0x21 2
A,B
ºC (A*256+B)/100 Temperatura del habitáculo Confirmado
0x24 2
A,B
Por determinar A*256+B Sensor de iluminación Confirmado
0x25 1


Desconocido
0x26 2
A,B
ºC (A*256+B)/100 Temperatura del refrigerante Confirmado
0x29 2
A,B
ºC (A*256+B)/100 Temperatura conductor demandada A/C Confimado
0x2A 2
A,B
ºC (A*256+B)/100 Temperatura acompañante demandada A/C Confirmado
0x2B 2


Desconocido
0x2C 2


Desconocido
0x2D 2


Desconocido
0x2E 2


Desconocido
0x2F 2


Desconocido
0x30 2


Desconocido
0x33 2


Desconocido
0x34 2


Desconocido
0x35 2


Desconocido
0x36 1
A
- 0x00 OFF
0xFF ON
Recirculación del aire Confirmado
0x3C 1
A
- 0x00 Mínimo
0x1F Máximo
Velocidad del ventilador Confirmado
0x3D 2
A,B
ºC (A*256+B)/100 Temperatura exterior Confirmado
0x40 4 - Evaluación de bits PIDs soportados [0x41...0x60] Confirmado
0x41 1
A
- 0x00 OFF
0xFF ON
Aire Acondicionado Confirmado
0x42 1
A
- 0x00 OFF
0xFF ON
Climatización dual Confirmado
0x43 1


Desconocido
0x44 1


Desconocido
0x45 1


Desconocido
0x46 1


Desconocido
0x47 2


Desconocido
0x48 2


Desconocido
0x4B 2


Desconocido
0x4C 2


Desconocido
0x60 4 - Evaluación de bits PIDs soportados [0x61...0x80] Confirmado
0x80 4 - Evaluación de bits PIDs soportados [0x81...0xA0] Confirmado
0x81 4


Desconocido
0x82 4


Desconocido
0x89 1


Desconocido
0xA0 4 - Evaluación de bits PIDs soportados [0xA1...0xC0] Confirmado
0xC0 4 - Evaluación de bits PIDs soportados [0xC1...0xE0] Confirmado
0xE0 4 - Evaluación de bits PIDs soportados [0xE1...0x100] Confirmado
0xE1 7


Desconocido
0xE2 5


Desconocido

Añadir un comentario

El código HTML se muestra como texto y las direcciones web se transforman automáticamente.

Page top