Mensaje CAN BUS 0x141 y par motor

Desde que empecé a analizar la información que circula por el bus CAN del toyobaru, siempre he sospechado que el mensaje con el CAN ID 0x141 contenía la información del par motor, pero no podía confirmarlo y mucho menos, calibrarlo para convertirlo en una información útil. Ahora, con la información obtenida a partir de las ECUs del toyobaru, ya puedo confirmar que el valor del par motor está presente en ese mensaje, y lo que es mejor, he podido calibrarlo.

Si tomamos los bytes D0 y D1 del mensaje 0x141 y conformamos un valor con ellos, poniendo como más significativo D1, y lo representamos gráficamente, y hacemos lo mismo con los bytes D2 y D3, poniendo D3 como más significativo, obtenemos dos gráficas que siempre resultan muy parecidas y que en un análisis comparativo enseguida vemos que parecen tener una relación evidente con el pedal del acelerador (byte D5 del mensaje 0x140).

Cuando el acelerador está pisado, los dos valores siempre están por encima de 10.000 y cuando el acelerador no está pisado, el valor de D3D2 siempre está por debajo de 10.000 y D1D0, que suele seguir a D3D2, ocasionalmente presenta valores por encima de 10.000 pero normalmente está por debajo.

Esto me hizo sospechar que tenían su referencia en 10.000 y pasé a representar los valores D3D2 - 10.000 y D1D0 - 10.000 (con escala en eje izquierdo) y compararlos con el pedal del acelerador (en %, y con escala en eje derecho).

El comportamiento que se muestra, especialmente el seguido por D3D2, me hacía recordar a la gráfica que sigue el par motor. Hay entrega de par con el acelerador pisado, pero cuando levantas el pie, el motor actua cómo freno, absorbiendo par. Pero sólo era una sospecha, pues no tenía forma de comprobarlo.

Pero una vez encontrada la forma, gracias a monitorizar como lo hace TechStream, de poder interrogar a la ECU 0x7B0 para que nos informe del par motor, como vimos en una entrada anterior del blog, sólo tenía que desarrollar el software para hacer lo mismo que TechStream.

Eso me tuvo entretenido unos días, pero una vez completado el programa, y realizadas las pruebas, básicas bajé con el portátil al coche para dar una vuelta y obtener los primeros datos. Y funcionó. Mi programa se hizo pasar por TechStream e interrogó a la ECU por el par motor mientras recababa los datos.

Al analizar los datos y representar el valor D3D2 - 10.000 del mensaje 0x141 y los valores que ofrecía la ECU obtuve esto:

Tenía buena pinta, pero obviamente presentaban escalas distintas, así que asigné una nueva escala para el par motor del la ECU en el eje derecho

La pinta mejoraba por momentos. Había que ajustar los valores del eje derecho par tratar de alinear los gráficos:

y encajaron como un guante.

Además la calibración es sencilla. La escala de la izquierda es 10 veces la de la derecha, por lo que si el par que nos entreaga la ECU está en Nm (según nos dice TechStream) significa que el valor (D3D2 - 10.000) / 10 del mensaje 0x141 es el par motor en Nm.

Además, en el mensaje 0x141, en los bytes D5D4 & 0x3FFF, podemos encontrar las revoluciones del motor (del mismo modo que en el mensaje 0x140, en los bytes D3D2 & 0x3FFF), lo que nos permite obtener el valor de la potencia entrega por el motor sólo con la información contenida en el mensaje 0x141.

Aunque aun me quedan por hacer algunas pruebas y comprobaciones, termina con ésto una larga búsqueda, que me permitirá analizar, con una nueva perpectiva, muchos de los ficheros de mensajes del bus CAN que tengo guardados de distintas pruebas.

Pero aun no he completado la información ofrece el bus CAN sobre el motor. Queda por concretar que representa la información contenida en los bytes D1D0 y D6 y D7 del mensaje 0x141 y en los mensajes 0x142 y 0x144.

Y es que cerrada una puerta, se abre otra ...

Añadir un comentario

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

Page top