Extensión del protocolo ELM327 para la compatibilidad con ISO 13400 (DoIP — Diagnostics over Internet Protocol). El protocolo D permite realizar diagnóstico UDS a través de Ethernet/IP utilizando la interfaz AT estándar de ELM327.
Tester (ScanDoc) Automóvil ┌──────────┐ TCP/IP ┌─────────────┐ CAN/LIN ┌─────┐ │ SA=0E80 │───────────────│ DoIP entity │───────────────│ ECU │ │ (tester) │ Ethernet │ (gateway) │ bus interno │(TA) │ └──────────┘ └─────────────┘ └─────┘
DoIP entity — nodo de la red del vehículo con compatibilidad con ISO 13400. Puede ser un DoIP gateway (pasarela entre Ethernet y los buses internos CAN/LIN) o un DoIP edge node (ECU con su propia interfaz Ethernet). Cada DoIP entity tiene una dirección lógica, una dirección IP y un VIN.
Para trabajar es necesario configurar tres parámetros:
| Parámetro | Comando | Qué define | Cómo averiguarlo |
|---|---|---|---|
| IP DoIP entity | AT DI |
A dónde conectarse por TCP | AT DD (discovery) o definir manualmente |
| Source Address | AT DS |
Dirección lógica del tester | Por defecto 0E80, normalmente no es necesario cambiarlo |
| Target Address | AT DT |
Dirección lógica del ECU de destino | De la documentación del vehículo |
Si DI no está definido (IP = 00000000), AT SP D ejecuta automáticamente discovery (UDP broadcast), encuentra el primer DoIP entity y rellena los parámetros a partir de su respuesta:
DI ← dirección IP del DoIP entity (por ejemplo C0A80C04 = 192.168.12.4)DT ← dirección lógica del DoIP entity (por ejemplo 3828 — por regla general, el gateway)DS ← permanece en 0E80 (valor por defecto)Después se realiza la conexión TCP → Routing Activation → listo para UDS.
AT SP D encuentra por sí mismo el DoIP entity y establece la conexión:
>ATZ ELM327 v2.3 >ATE0 OK >AT SP D # discovery → DI=C0A80C04, DT=3828, DS=0E80 OK # TCP + Routing Activation realizados >22 F1 90 # UDS Read VIN — la petición irá al gateway (DT=3828) 62 F1 90 54 4D 42 4A 43 37 4E 59 33 50 46 30 32 30 36 30 38
Por ejemplo, el módulo del motor:
>ATZ ELM327 v2.3 >ATE0 OK >AT SP D # discovery + conexión con el gateway OK >22 F1 90 # petición de VIN al gateway (DT=3828) 62 F1 90 54 4D 42 4A 43 37 4E 59 33 50 46 30 32 30 36 30 38 >AT DT 0010 # cambiar el Target Address al módulo del motor OK >22 F1 90 # la misma petición — ahora irá al ECU 0010 a través del gateway 62 F1 90 ...
Establece la dirección IPv4 del ECU (DoIP entity) en formato hex (4 bytes, big-endian).
>AT DI C0A80C04 OK
Ejemplo: C0A80C04 = 192.168.12.4
Valor por defecto: 00000000 (no definido). Si la IP no está definida al ejecutar AT SP D, se realiza un Vehicle Discovery automático (UDP broadcast).
Establece la dirección lógica del tester (Source Address, SA) en formato hex (2 bytes).
>AT DS 0E00 OK
Rango de direcciones de tester según ISO 13400: 0x0E00–0x0FFF. Valor por defecto: 0E80.
Establece la dirección lógica del ECU (Target Address, TA) en formato hex (2 bytes).
>AT DT 3828 OK
Rango de direcciones de ECU según ISO 13400: 0x0001–0x0DFF. Valor por defecto: 0001.
Establece el tipo de activación de enrutamiento (Routing Activation Type). Se define antes de AT SP D — se transmite al DoIP entity en la Routing Activation Request al conectar. Determina qué nivel de acceso al diagnóstico se solicita.
Solo es necesario cambiarlo si el gateway rechaza la conexión con el tipo 00 (Default).
>AT DA 00 OK
| Valor | Descripción |
|---|---|
00 |
Default — diagnóstico estándar (por defecto) |
01 |
WWH-OBD — acceso solo a los datos requeridos por la normativa (emissions) |
E0 |
Central Security — acceso ampliado a través de la pasarela central de seguridad |
Establece el puerto TCP del DoIP entity en formato hex. Se define antes de AT SP D. Por defecto 3458 (13400 decimal) — puerto estándar según ISO 13400. Solo es necesario cambiarlo si el DoIP entity usa un puerto
no estándar.
>AT DC 3458 OK
Realiza un UDP broadcast Vehicle Discovery (ISO 13400 Vehicle Identification Request). Muestra la lista de DoIP entities encontrados con su VIN, dirección lógica e IP.
Rellena automáticamente DI (IP) y DT (Target Address) del primer DoIP entity encontrado.
AT SP D con DI=0 ejecuta por sí mismo discovery — un AT DD aparte no es obligatorio. AT DD resulta útil cuando se necesita ver qué DoIP entities hay en la red (VIN, direcciones, IP) antes de conectar.
>AT DD VIN:WBAPH5C55BA123456 ADDR:3828 IP:C0A80C04 OK
Varios DoIP entities en la red:
>AT DD VIN:WBAPH5C55BA123456 ADDR:3828 IP:C0A80C04 VIN:WF0XXXGCDX1234567 ADDR:1010 IP:C0A80C05 OK
Si no se encuentran DoIP entities:
>AT DD NO DATA
| Escenario | Secuencia |
|---|---|
| Automático (gateway) | ATZ → AT SP D |
| ECU detrás del gateway (IP mediante discovery) | ATZ → AT DD → AT DT xxxx → AT SP D |
| ECU detrás del gateway (IP conocida) | ATZ → AT DI hhhhhhhh → AT DT xxxx → AT SP D |
Si se produce un error en cualquier paso, se devuelve UNABLE TO CONNECT.
Los datos hex se envían como UDS payload. ELM327 los encapsula automáticamente en un DoIP Diagnostic Message con cabecera SA+TA.
>22F190 62 F1 90 57 42 41 50 48 35 43 35 35 42 41 31 32 33 34 35 36
Solo UDS payload, sin cabecera SA/TA:
62 F1 90 57 42 41 ...
SA + TA (4 bytes) + UDS payload:
38 28 0E 00 62 F1 90 57 42 41 ...
Formato de la cabecera: [TA_hi] [TA_lo] [SA_hi] [SA_lo] — dirección del emisor de la respuesta (ECU → Tester).
DoIP está incluido en el orden de búsqueda automática de protocolos (AT SP 0). Al intentar DoIP:
Los comandos AT D (defaults) y AT Z (reset) restablecen todos los parámetros DoIP:
DI → 00000000DS → 0E80DT → 0001DA → 00DC → 3458 (13400)