Bastidores recibidos de vehículos con múltiples chips de ECU


10

Por lo general, no soy una "persona del automóvil", así que espero poder explicar esto lo suficientemente bien como para obtener ayuda aquí:

Cuando envío mensajes a un dispositivo OBD-II, recibo una respuesta en la mayoría de los autos que he probado. Sin embargo, con los autos que aparentemente tienen más de un chip ECU, recibo una respuesta de cada uno de ellos. Por ejemplo, si envío un 01 0C comando PID a un vehículo con 3 chips de ECU, recibo 3 respuestas que generalmente son muy similares pero aún diferentes.

Se 01 00supone que un comando devuelve 4 bytes que indican los PID admitidos del vehículo, pero esto también devuelve 4 bytes para cada ECU, uno de los cuales es de 4 bytes completamente desarrollados con varios indicadores activados y desactivados, mientras que los otros parecen tener solo un puñado de banderas activadas (estas banderas hasta ahora parecen ser siempre banderas que están incluidas en la respuesta 'principal', pero no estoy seguro si este es siempre el caso).

Ejemplo:

SENT: 01 00

RECEIVED:

00 BF BF AC D3 - This response has the most binary flags turned on
00 98 18 80 11 - 8 flags on here
00 98 18 80 13 - 9 flags on here

Las últimas dos líneas consisten en banderas que también están marcadas dentro de la primera línea, pero la línea 3 tiene una bandera adicional que la línea 2 no tiene.

Me parece que tal vez hay una sola ECU que califica como el chip 'primario' que debería estar escuchando cuando envío comandos, y (creo) entiendo que puedo usar una máscara / filtro CAN ID para solo pon atención a las que necesito.

La pregunta es: ¿existe realmente una 'ECU primaria' a la que deba prestar atención, o son todas estas respuestas igualmente importantes? Si hay uno primario al que necesito apuntar, ¿hay un comando que pueda enviar para determinar cuál es el 'más significativo'?

Vehículos probados en:

2011 Chevy Cruze               [2 ECUs]
2015 BMW M5                    [3 ECUs]
2015 Range Rover Autobiography [3 ECUs]

1
Puede ser útil decirnos en qué marca y modelo probó esto. Lo que sé es que los autos con 3 ECU tienden a configurarse con dos ECU regulares (una para cada banco de motores) y una ECU "maestra" que administra las señales hacia / desde (y posiblemente entre?) Las dos ECU regulares. La ECU "maestra" en realidad no hace mucho más que eso, por lo que si se establece un código de diagnóstico de problemas, la fuente será la ECU normal, no el "maestro". Sin embargo, es posible que deba sondear el maestro a través de la interfaz OBD-II para obtener los DTC. Desearía poder ayudarte más que esto, pero eso es todo lo que tengo por ahora.
Zaid

1
Soy ingeniero de software, pero no he usado OBD o CAN, pero ¿ ayuda esta página ? Parece que debería haber una forma de filtrar mensajes.
JPhi1618

@Zaid Gracias por la información adicional. Actualicé mi pregunta con los autos en los que lo probé, pero esto es algo que tendré que decidir en cualquier número de vehículos; puede que no termine importando, dependiendo de la respuesta exacta que debería esperar al enviar PID no compatibles, pero solo quería cubrir todas mis bases
Rein S

@ JPhi1618 Este es realmente el mismo contexto en el que necesitaba esto. ¡Este podría ser el camino que debo seguir! Muchas gracias por el enlace, me sumergiré un poco más en él.
Rein S

1
Si encuentra algo de interés que cree que puede desarrollar en una "respuesta", vuelva y responda su propia pregunta. Eso está totalmente permitido.
JPhi1618

Respuestas:


5

Si su vehículo es 2008 o más nuevo, está utilizando el protocolo can, puede usar el comando AT CR para seleccionar de qué ECU desea escuchar.
Así es como:
enviar

AT H1

esto activará los encabezados para ver las direcciones de las ECU.
enviar

0100

Este es un comando OBD para mostrar cuáles de los pids del 1 al 20 son compatibles.
su respuesta debería ser como:

7E8064100BE3EA813
7E906410098188013
>

esto muestra que tiene 2 ECU 7E8 (motor) 7E9 (transmisión),
he visto 5 ECU devueltas: 7E8,7E9,7EA, 7EB, 7EC.
Para escuchar de una sola ECU, emite AT CRA xxx donde xxx es la dirección de la ECU.
envía lo siguiente

AT CRA 7E8

entonces

0100

volverá:

7E8064100BE3EA813

enviar

AT H0

para apagar los encabezados y luego enviar:

0100

y volverás solo

4100BE3EA813

Si su vehículo es una lata de 29 bits, la resonancia 0100 se verá así:

18DAF11806410088180013
18DAF110064100BE5FA813
>

Esto muestra 2 ECU 18DAF118 (transmisión) y 18DAF110 (motor).
enviar

AT CRA 18DAF110

escuchar solo del motor.


Hola !! Estoy trabajando en un prototipo para el sistema de diagnóstico del vehículo. Revisé su respuesta, pero tengo pocas consultas ... 1) ¿Hay algún comando AT para verificar cuántas ECU están disponibles? 2) cuando el encabezado está desactivado, entonces solo se muestra una cadena "4100BE3EA813", no ambas "410098188013"
Dev

4

CAN no funciona como piensas.

CAN no está basado en módulos, está basado en mensajes. Ningún módulo habla directamente con ningún otro módulo. En CAN, un módulo genera un mensaje con una dirección, esa dirección identifica los datos que estarán contenidos en el mensaje. También la dirección da la importancia del mensaje. Cuanto menor sea la dirección, mayor será la prioridad.

Por ejemplo, el ABS transmitirá la velocidad del vehículo. Cualquier otro módulo que necesite los datos lo leerá.

No hay ningún módulo que sea más importante que cualquier otro, lo importante es la prioridad del mensaje.


Solo para seguir con esto: si no hay un módulo que sea más importante que el otro, ¿hay alguna razón para filtrar las respuestas de múltiples ECU? Por ejemplo, si solicito RPM para el BMW M5, obtengo 3 respuestas (generalmente son similares, pero nunca exactamente iguales). ¿Debo 'confiar' en la primera respuesta como una lectura precisa? ¿Alguna razón para no ir solo con la primera respuesta para cada solicitud?
Rein S

Si todas las respuestas tienen la misma dirección, confíe en la primera. Si no tienen la misma dirección, confíe en la que tenga la mayor prioridad. La prioridad más alta tiene la dirección más baja.
vini_i
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.