Extension du protocole ELM327 pour la prise en charge de l'ISO 13400 (DoIP — Diagnostics over Internet Protocol). Le protocole D permet de réaliser un diagnostic UDS via Ethernet/IP en utilisant l'interface AT standard d'ELM327.
Testeur (ScanDoc) Automobile ┌──────────┐ TCP/IP ┌─────────────┐ CAN/LIN ┌─────┐ │ SA=0E80 │───────────────│ DoIP entity │───────────────│ ECU │ │(testeur) │ Ethernet │ (gateway) │ bus interne │(TA) │ └──────────┘ └─────────────┘ └─────┘
DoIP entity — nœud du réseau du véhicule prenant en charge l'ISO 13400. Il peut s'agir d'un DoIP gateway (passerelle entre Ethernet et les bus internes CAN/LIN) ou d'un DoIP edge node (ECU doté de sa propre interface Ethernet). Chaque DoIP entity possède une adresse logique, une adresse IP et un VIN.
Pour fonctionner, il faut configurer trois paramètres :
| Paramètre | Commande | Ce qu'il définit | Comment l'obtenir |
|---|---|---|---|
| IP DoIP entity | AT DI |
Où se connecter par TCP | AT DD (discovery) ou définir manuellement |
| Source Address | AT DS |
Adresse logique du testeur | Par défaut 0E80, normalement il n'est pas nécessaire de le changer |
| Target Address | AT DT |
Adresse logique de l'ECU cible | D'après la documentation du véhicule |
Si DI n'est pas défini (IP = 00000000), AT SP D exécute automatiquement le discovery (UDP broadcast), trouve le premier DoIP entity et renseigne les paramètres à partir de sa réponse :
DI ← adresse IP du DoIP entity (par exemple C0A80C04 = 192.168.12.4)DT ← adresse logique du DoIP entity (par exemple 3828 — en règle générale, le gateway)DS ← reste à 0E80 (valeur par défaut)Ensuite la connexion TCP est établie → Routing Activation → prêt pour UDS.
AT SP D trouve lui-même le DoIP entity et établit la connexion :
>ATZ ELM327 v2.3 >ATE0 OK >AT SP D # discovery → DI=C0A80C04, DT=3828, DS=0E80 OK # TCP + Routing Activation effectués >22 F1 90 # UDS Read VIN — la requête ira au gateway (DT=3828) 62 F1 90 54 4D 42 4A 43 37 4E 59 33 50 46 30 32 30 36 30 38
Par exemple, le module moteur :
>ATZ ELM327 v2.3 >ATE0 OK >AT SP D # discovery + connexion au gateway OK >22 F1 90 # requête de VIN au 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 # basculer le Target Address vers le module moteur OK >22 F1 90 # la même requête — elle ira maintenant à l'ECU 0010 via le gateway 62 F1 90 ...
Définit l'adresse IPv4 de l'ECU (DoIP entity) au format hex (4 octets, big-endian).
>AT DI C0A80C04 OK
Exemple : C0A80C04 = 192.168.12.4
Valeur par défaut : 00000000 (non défini). Si l'IP n'est pas définie lors de l'exécution d'AT SP D, un Vehicle Discovery automatique est réalisé (UDP broadcast).
Définit l'adresse logique du testeur (Source Address, SA) au format hex (2 octets).
>AT DS 0E00 OK
Plage des adresses de testeur selon l'ISO 13400 : 0x0E00–0x0FFF. Valeur par défaut : 0E80.
Définit l'adresse logique de l'ECU (Target Address, TA) au format hex (2 octets).
>AT DT 3828 OK
Plage des adresses d'ECU selon l'ISO 13400 : 0x0001–0x0DFF. Valeur par défaut : 0001.
Définit le type d'activation du routage (Routing Activation Type). Il se définit avant AT SP D — il est transmis au DoIP entity dans la Routing Activation Request lors de la connexion. Il détermine quel niveau d'accès au diagnostic est demandé.
Il n'est nécessaire de le changer que si le gateway refuse la connexion avec le type 00 (Default).
>AT DA 00 OK
| Valeur | Description |
|---|---|
00 |
Default — diagnostic standard (par défaut) |
01 |
WWH-OBD — accès uniquement aux données requises par la réglementation (emissions) |
E0 |
Central Security — accès étendu via la passerelle de sécurité centrale |
Définit le port TCP du DoIP entity au format hex. Il se définit avant AT SP D. Par défaut 3458 (13400 decimal) — port standard selon l'ISO 13400. Il n'est nécessaire de le changer que si le DoIP entity utilise un port
non standard.
>AT DC 3458 OK
Réalise un UDP broadcast Vehicle Discovery (ISO 13400 Vehicle Identification Request). Affiche la liste des DoIP entities trouvés avec leur VIN, leur adresse logique et leur IP.
Renseigne automatiquement DI (IP) et DT (Target Address) à partir du premier DoIP entity trouvé.
AT SP D avec DI=0 exécute lui-même le discovery — un AT DD séparé n'est pas obligatoire. AT DD est utile lorsqu'il faut voir quels DoIP entities sont présents sur le réseau (VIN, adresses, IP) avant de se connecter.
>AT DD VIN:WBAPH5C55BA123456 ADDR:3828 IP:C0A80C04 OK
Plusieurs DoIP entities sur le réseau :
>AT DD VIN:WBAPH5C55BA123456 ADDR:3828 IP:C0A80C04 VIN:WF0XXXGCDX1234567 ADDR:1010 IP:C0A80C05 OK
Si aucun DoIP entity n'est trouvé :
>AT DD NO DATA
| Scénario | Séquence |
|---|---|
| Automatique (gateway) | ATZ → AT SP D |
| ECU derrière le gateway (IP via discovery) | ATZ → AT DD → AT DT xxxx → AT SP D |
| ECU derrière le gateway (IP connue) | ATZ → AT DI hhhhhhhh → AT DT xxxx → AT SP D |
En cas d'erreur à n'importe quelle étape, UNABLE TO CONNECT est renvoyé.
Les données hex sont envoyées comme UDS payload. ELM327 les encapsule automatiquement dans un DoIP Diagnostic Message avec un en-tête SA+TA.
>22F190 62 F1 90 57 42 41 50 48 35 43 35 35 42 41 31 32 33 34 35 36
Uniquement le UDS payload, sans en-tête SA/TA :
62 F1 90 57 42 41 ...
SA + TA (4 octets) + UDS payload :
38 28 0E 00 62 F1 90 57 42 41 ...
Format de l'en-tête : [TA_hi] [TA_lo] [SA_hi] [SA_lo] — adresse de l'émetteur de la réponse (ECU → Tester).
DoIP est inclus dans l'ordre de recherche automatique des protocoles (AT SP 0). Lors d'une tentative DoIP :
Les commandes AT D (defaults) et AT Z (reset) réinitialisent tous les paramètres DoIP :
DI → 00000000DS → 0E80DT → 0001DA → 00DC → 3458 (13400)