Unified Diagnostic Services (UDS) es un protocolo de comunicación de diagnóstico que se utiliza en unidades de control electrónico (ECU) dentro de la electrónica automotriz, que se especifica en la norma ISO 14229-1. [1] Se deriva de ISO 14230-3 ( KWP2000 ) y de la ahora obsoleta ISO 15765-3 (Comunicación de diagnóstico sobre la red de área del controlador (DoCAN) [2] ). 'Unificado' en este contexto significa que es un estándar internacional y no específico de la empresa. A estas alturas, este protocolo de comunicación se utiliza en todas las ECU nuevas fabricadas por proveedores de nivel 1 del fabricante de equipos originales (OEM) y se incorpora a otros estándares, como AUTOSAR.. Las ECU de los vehículos modernos controlan casi todas las funciones, incluida la inyección electrónica de combustible (EFI), el control del motor , la transmisión, el sistema de frenos antibloqueo, las cerraduras de las puertas, el frenado, el funcionamiento de las ventanas y más.
Las herramientas de diagnóstico pueden contactar todas las ECU instaladas en un vehículo que tiene habilitados los servicios UDS. A diferencia del protocolo de bus CAN , que solo utiliza la primera y segunda capas del modelo OSI , UDS utiliza la quinta y séptima capas del modelo OSI. El ID de servicio (SID) y los parámetros asociados con los servicios están contenidos en los 8 bytes de datos de una trama de mensaje.
Los vehículos modernos tienen una interfaz de diagnóstico para diagnósticos externos, que hace posible conectar una computadora (cliente) o herramienta de diagnóstico, que se conoce como probador, al sistema de comunicación del vehículo. Así, las solicitudes UDS pueden enviarse a los controladores que deben dar una respuesta (puede ser positiva o negativa). Esto hace que sea posible interrogar a la memoria de averías de las unidades de control individuales, para actualizarlos con un nuevo firmware, tener una interacción a bajo nivel con su hardware (por ejemplo, para convertir una salida específica encendido o apagado), o para hacer uso de funciones especiales (denominadas rutinas) para intentar comprender el entorno y las condiciones de funcionamiento de una ECU para poder diagnosticar un comportamiento defectuoso o no deseado.
Servicios
SID (identificador de servicio)
Grupo de funciones | Solicitar SID | Respuesta SID | Servicio | Descripción |
---|---|---|---|---|
Gestión de comunicaciones y diagnóstico | 0x10 | 0x50 | Control de sesión de diagnóstico | UDS utiliza diferentes sesiones operativas, que se pueden modificar mediante el "Control de Sesión de Diagnóstico". Dependiendo de la sesión que esté activa, hay diferentes servicios disponibles. Al inicio, la unidad de control está por defecto en la "Sesión por defecto". Se definen otras sesiones, pero no es necesario implementarlas según el tipo de dispositivo:
Además, hay identificadores de sesión reservados que se pueden definir para el uso específico de los fabricantes de vehículos y los proveedores de vehículos. |
0x11 | 0x51 | Reinicio de ECU | El servicio "Reinicio de la ECU" se utiliza para reiniciar la unidad de control (ECU). Dependiendo del hardware y la implementación de la unidad de control, se pueden utilizar diferentes formas de reinicio:
Una vez más, existen valores reservados que se pueden definir para el uso específico de los fabricantes de vehículos y los proveedores de vehículos. | |
0x27 | 0x67 | Acceso de seguridad | El control de seguridad está disponible para habilitar los servicios más críticos para la seguridad. Para ello, la unidad de control genera una "Semilla" y la envía al cliente. A partir de esta "Semilla", el cliente tiene que calcular una "Clave" y enviarla de vuelta a la unidad de control para desbloquear los servicios críticos para la seguridad. | |
0x28 | 0x68 | Control de comunicación | Con este servicio, tanto el envío como la recepción de mensajes pueden desactivarse en la centralita. | |
0x29 | 0x69 | Autenticación | Una actualización (2020) del estándar agregó este servicio para proporcionar un enfoque estandarizado a métodos de autenticación más modernos que los permitidos por el servicio Security Access (0x27), incluida la autenticación bidireccional con intercambio de certificados basado en PKI . | |
0x3E | 0x7E | Probador presente | Si no se intercambia comunicación con el cliente durante un tiempo prolongado, la unidad de control sale automáticamente de la sesión actual y regresa a la "Sesión predeterminada", y puede pasar al modo de suspensión. Por lo tanto, existe un servicio extra cuyo propósito es señalar al dispositivo que el cliente aún está presente. | |
0x83 | 0xC3 | Acceder a los parámetros de tiempo | En la comunicación entre los controladores y el cliente, se deben respetar ciertos tiempos. Si estos se superan, sin que se envíe un mensaje, se debe asumir que la conexión fue interrumpida. Estos tiempos se pueden recuperar y modificar. | |
0x84 | 0xC4 | Transmisión de datos segura | ||
0x85 | 0xC5 | Controlar la configuración de DTC | Habilite o deshabilite la detección de alguno o todos los errores. Esto es importante cuando se realizan trabajos de diagnóstico en el automóvil, lo que puede causar un comportamiento anómalo de dispositivos individuales. | |
0x86 | 0xC6 | Respuesta al evento | ||
0x87 | 0xC7 | Control de enlace | El control de enlace de servicio se utiliza para establecer la velocidad en baudios del acceso de diagnóstico. Por lo general, se implementa solo en la puerta de enlace central. | |
Transmisión de datos | 0x22 | 0x62 | Leer datos por identificador | Con este servicio, es posible recuperar uno o más valores de una unidad de control. Puede tratarse de información de todo tipo y de diferentes longitudes, como el número de pieza o la versión del software. Se pueden consultar valores dinámicos como el estado actual del sensor. Cada valor está asociado a un identificador de datos (DID) entre 0 y 65535. Las señales CAN normales están destinadas a la información que algunas ECU utilizan en su funcionalidad. Los datos DID se envían solo a pedido y son para información que ninguna ECU usa, pero una herramienta de servicio o un probador de software pueden beneficiarse. |
0x23 | 0x63 | Leer memoria por dirección | Leer datos de la memoria física en la dirección proporcionada. Esta función puede ser utilizada por una herramienta de prueba para leer el comportamiento interno del software. | |
0x24 | 0x64 | Leer datos de escala por identificador | ||
0x2A | 0x6A | Leer datos por identificador periódicamente | Con este servicio, los valores son enviados periódicamente por una unidad de control. Los valores que se enviarán deben definirse utilizando únicamente el "Identificador de datos de definición dinámica". | |
0x2C | 0x6C | Definir dinámicamente el identificador de datos | Este servicio ofrece la posibilidad de una solución para un grupo de identificadores de datos (DID) especificado por un dispositivo para configurar otro identificador de datos. Suele ser una combinación de partes de diferentes DID o simplemente una concatenación de DID completos. Los datos solicitados se pueden configurar o agrupar de la siguiente manera:
| |
0x2E | 0x6E | Escribir datos por identificador | Con el mismo identificador de datos (DID), los valores también se pueden cambiar. Además del identificador, se envía el nuevo valor. | |
0x3D | 0x7D | Escribir memoria por dirección | El servicio "Escribir memoria por dirección" permite que la herramienta de diagnóstico externa escriba información en la ECU en una o más ubicaciones de memoria contiguas. | |
Transmisión de datos almacenados | 0x14 | 0x54 | Información de diagnóstico clara | Eliminar todos los DTC almacenados |
0x19 | 0x59 | Leer información de DTC | DTC significa " Códigos de diagnóstico de problemas ". Cada DTC manejado por la falla de la unidad de control se almacena con su propio código en la memoria de errores y se puede leer en cualquier momento. Además del error, se almacenará información adicional, que también se puede leer. | |
Control de entrada / salida | 0x2F | 0x6F | Control de entrada y salida por identificador | Este servicio permite una intervención del sistema externo en señales internas / externas a través de la interfaz de diagnóstico. Al especificar los denominados bytes de opción, se pueden especificar condiciones adicionales para una solicitud, se especifican los siguientes valores: ReturnControlToECU : El dispositivo debe recuperar los controles de las señales mencionadas. ResetToDefault : el comprobador solicita restablecer las señales al valor predeterminado de todo el sistema. Congelar el estado actual : el dispositivo congelará el valor de la señal actual. Ajuste a corto plazo : el dispositivo utilizará el valor proporcionado para la señal |
Activación remota de rutina | 0x31 | 0x71 | Control de rutina | El servicio de Control se pueden realizar servicios de rutina de todo tipo. Hay tres tipos de mensajes diferentes:
Se pueden especificar los parámetros del mensaje de inicio y parada. Esto hace posible implementar todos los posibles servicios específicos del proyecto. |
Subir descargar | 0x34 | 0x74 | Solicitar Descarga | La descarga de nuevo software u otros datos en la unidad de control se introduce mediante "Solicitar descarga". Aquí, se especifica la ubicación y el tamaño de los datos. A su vez, el controlador especifica qué tan grandes pueden ser los paquetes de datos. |
0x35 | 0x75 | Solicitar carga | El servicio "Solicitar carga" es casi idéntico al servicio "Solicitar descarga". Con este servicio, el software de la unidad de control se transfiere al tester. Se debe especificar la ubicación y el tamaño. Una vez más, el probador especifica el tamaño de los bloques de datos. | |
0x36 | 0x76 | Transferir datos | Para la transmisión real de datos, se utiliza el servicio "Transferir datos". Este servicio se utiliza tanto para cargar como para descargar datos. La dirección de la transferencia es notificada por adelantado por el servicio "Solicitar descarga" o "Solicitud de carga". Este servicio debe intentar enviar paquetes con la longitud máxima, como se especifica en servicios anteriores. Si el conjunto de datos es mayor que el máximo, el servicio "Transferir datos" debe utilizarse varias veces seguidas hasta que hayan llegado todos los datos. | |
0x37 | 0x77 | Solicitar salida de transferencia | Una transmisión de datos se puede 'completar' cuando se utiliza el servicio "Transferir salida". Este servicio se utiliza para la comparación entre la unidad de control y el probador. Cuando está en funcionamiento, una unidad de control puede responder negativamente a esta solicitud para detener una solicitud de transferencia de datos. Esto se utilizará cuando no se haya transferido la cantidad de datos (configurada en "Solicitar descarga" o "Solicitud de carga"). | |
0x38 | 0x78 | Solicitar transferencia de archivos | Este servicio se utiliza para iniciar la descarga de un archivo del cliente al servidor o cargarlo del servidor al cliente. Además, este servicio ofrece información sobre el sistema de archivos. | |
0x7F | Respuesta negativa | Esta respuesta se da cuando no se pudo realizar una solicitud de servicio, por ejemplo, al tener un identificador de datos no admitido. Se incluirá un código de respuesta negativa. |
Ver también
- Diagnóstico a bordo , artículo general sobre servicios de diagnóstico en vehículos.
- PID OBD-II , sobre el estándar de EE. UU.
Referencias
enlaces externos
- Servicios de diagnóstico unificados: ISO 14229 (póster de softing.com)