Escribo esta pregunta para tratar de entender cómo estos estándares automotrices interactúan en el nivel 7 del Modelo OSI .
Si mi vehículo implementa ambos, entonces, en el nivel 7 de la comunicación, cada mensaje (siendo UDS , compatible, ISO 14229) debe estar estructurado de esta manera (A_PDU = Unidad de Datos de Protocolo de la capa de aplicación):
A_PDU = {Mtype, SA, TA, TA_type, [RA], A_Data = A_PCI + [parámetro_1, ...], Longitud}
donde:
-
Mtype especifica si el diagnóstico es local o remoto
-
A_SA es el ID del remitente (2 bytes)
-
A_TA es el ID de destino (2 bytes)
-
A_TA_Type es el tipo de direccionamiento (físico o funcional)
-
[RA] es opcional y se usa para diagnósticos remotos
-
A_Data es el A_PCI (Información de control de protocolo de la capa de aplicación) con además A_SDU (Servicio de la capa de aplicación Unidad de datos, los datos reales que se pasan del servidor al cliente). Este campo está compuesto por un número de bytes que no es fijo.
-
Longitud especifica la longitud del campo A_Data.A_SDU (4 bytes). No encontré información sobre la unidad de medida, por lo que no sé si está destinada en bits o bytes.
Supongamos ahora que una herramienta de escaneo quiere pedir a ECU que envíe información de diagnóstico relacionada con las emisiones, por ejemplo, Carga del motor.
Dado que el vehículo también implementa el estándar OBD (ISO 15031), la herramienta de análisis tendrá que consultar el Servicio 0x01 , PID 0x04.
¿Este mensaje, en el nivel 7 del modelo OSI, debe enviarse de esta manera, para que sea compatible con ambas normas?
A_PDU = {Mtype = diagnostics, SA = ID de herramienta de escaneo, TA = ECU ID, TA_type = físico, [RA] = no aplicable, A_Data = 0x01 + 0x04, Longitud = 0x0002}
También agrego otra pregunta: ¿quién decide los ID que se asignarán a la herramienta de exploración y a la ECU (y a cualquier otro nodo en la red de comunicación)?
Gracias.