Rozszerzenie protokołu ELM327 o obsługę ISO 13400 (DoIP — Diagnostics over Internet Protocol). Protokół D umożliwia wykonywanie diagnostyki UDS przez Ethernet/IP z użyciem standardowego interfejsu AT ELM327.
Tester (ScanDoc) Samochód ┌──────────┐ TCP/IP ┌─────────────┐ CAN/LIN ┌─────┐ │ SA=0E80 │───────────────│ DoIP entity │───────────────│ ECU │ │ (tester) │ Ethernet │ (gateway) │ magistr.wew. │(TA) │ └──────────┘ └─────────────┘ └─────┘
DoIP entity — węzeł sieci samochodowej z obsługą ISO 13400. Może to być DoIP gateway (brama między Ethernetem a wewnętrznymi magistralami CAN/LIN) lub DoIP edge node (ECU z własnym interfejsem Ethernet). Każdy DoIP entity ma adres logiczny, adres IP oraz VIN.
Do pracy należy skonfigurować trzy parametry:
| Parametr | Komenda | Co ustawia | Jak ustalić |
|---|---|---|---|
| IP DoIP entity | AT DI |
Dokąd łączyć się przez TCP | AT DD (discovery) lub ustawić ręcznie |
| Source Address | AT DS |
Adres logiczny testera | Domyślnie 0E80, zwykle nie trzeba zmieniać |
| Target Address | AT DT |
Adres logiczny docelowego ECU | Z dokumentacji samochodu |
Jeśli DI nie jest ustawiony (IP = 00000000), AT SP D automatycznie wykonuje discovery (UDP broadcast), znajduje pierwszy DoIP entity i wypełnia parametry na podstawie jego odpowiedzi:
DI ← adres IP DoIP entity (np. C0A80C04 = 192.168.12.4)DT ← adres logiczny DoIP entity (np. 3828 — z reguły gateway)DS ← pozostaje 0E80 (wartość domyślna)Następnie wykonywane jest połączenie TCP → Routing Activation → gotowość do UDS.
AT SP D sam znajduje DoIP entity i nawiązuje połączenie:
>ATZ ELM327 v2.3 >ATE0 OK >AT SP D # discovery → DI=C0A80C04, DT=3828, DS=0E80 OK # TCP + Routing Activation wykonane >22 F1 90 # UDS Read VIN — zapytanie trafi do gateway (DT=3828) 62 F1 90 54 4D 42 4A 43 37 4E 59 33 50 46 30 32 30 36 30 38
Na przykład moduł silnika:
>ATZ ELM327 v2.3 >ATE0 OK >AT SP D # discovery + połączenie z gateway OK >22 F1 90 # zapytanie o VIN do 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 # przełączenie Target Address na moduł silnika OK >22 F1 90 # to samo zapytanie — teraz trafi do ECU 0010 przez gateway 62 F1 90 ...
Ustawia adres IPv4 ECU (DoIP entity) w formacie hex (4 bajty, big-endian).
>AT DI C0A80C04 OK
Przykład: C0A80C04 = 192.168.12.4
Wartość domyślna: 00000000 (nie ustawiono). Jeśli IP nie jest ustawiony przy AT SP D, wykonywane jest automatyczne Vehicle Discovery (UDP broadcast).
Ustawia adres logiczny testera (Source Address, SA) w formacie hex (2 bajty).
>AT DS 0E00 OK
Zakres adresów testerów wg ISO 13400: 0x0E00–0x0FFF. Wartość domyślna: 0E80.
Ustawia adres logiczny ECU (Target Address, TA) w formacie hex (2 bajty).
>AT DT 3828 OK
Zakres adresów ECU wg ISO 13400: 0x0001–0x0DFF. Wartość domyślna: 0001.
Ustawia typ aktywacji routingu (Routing Activation Type). Ustawiany przed AT SP D — przekazywany do DoIP entity w Routing Activation Request przy połączeniu. Określa, jaki poziom dostępu do diagnostyki jest żądany.
Zmiana jest potrzebna tylko wtedy, gdy gateway odrzuca połączenie z typem 00 (Default).
>AT DA 00 OK
| Wartość | Opis |
|---|---|
00 |
Default — standardowa diagnostyka (domyślnie) |
01 |
WWH-OBD — dostęp tylko do danych wymaganych przepisami (emissions) |
E0 |
Central Security — rozszerzony dostęp przez centralną bramę bezpieczeństwa |
Ustawia port TCP DoIP entity w formacie hex. Ustawiany przed AT SP D. Domyślnie 3458 (13400 dziesiętnie) — standardowy port wg ISO 13400. Zmiana jest potrzebna tylko wtedy, gdy DoIP entity używa niestandardowego
portu.
>AT DC 3458 OK
Wykonuje UDP broadcast Vehicle Discovery (ISO 13400 Vehicle Identification Request). Wyświetla listę znalezionych DoIP entities wraz z ich VIN, adresem logicznym i IP.
Automatycznie wypełnia DI (IP) oraz DT (Target Address) z pierwszego znalezionego DoIP entity.
AT SP D przy DI=0 sam wykonuje discovery — osobne AT DD nie jest wymagane. AT DD jest przydatne, gdy trzeba zobaczyć, jakie DoIP entities są w sieci (VIN, adresy, IP) przed połączeniem.
>AT DD VIN:WBAPH5C55BA123456 ADDR:3828 IP:C0A80C04 OK
Kilka DoIP entities w sieci:
>AT DD VIN:WBAPH5C55BA123456 ADDR:3828 IP:C0A80C04 VIN:WF0XXXGCDX1234567 ADDR:1010 IP:C0A80C05 OK
Jeśli nie znaleziono DoIP entities:
>AT DD NO DATA
| Scenariusz | Sekwencja |
|---|---|
| Automatyczny (gateway) | ATZ → AT SP D |
| ECU za gateway (IP przez discovery) | ATZ → AT DD → AT DT xxxx → AT SP D |
| ECU za gateway (IP znany) | ATZ → AT DI hhhhhhhh → AT DT xxxx → AT SP D |
W razie błędu na dowolnym kroku zwracane jest UNABLE TO CONNECT.
Dane hex wysyłane są jako UDS payload. ELM327 automatycznie opakowuje je w DoIP Diagnostic Message z nagłówkiem SA+TA.
>22F190 62 F1 90 57 42 41 50 48 35 43 35 35 42 41 31 32 33 34 35 36
Tylko UDS payload, bez nagłówka SA/TA:
62 F1 90 57 42 41 ...
SA + TA (4 bajty) + UDS payload:
38 28 0E 00 62 F1 90 57 42 41 ...
Format nagłówka: [TA_hi] [TA_lo] [SA_hi] [SA_lo] — adres nadawcy odpowiedzi (ECU → Tester).
DoIP jest włączony do kolejności automatycznego wyszukiwania protokołów (AT SP 0). Podczas próby DoIP:
Komendy AT D (defaults) oraz AT Z (reset) resetują wszystkie parametry DoIP:
DI → 00000000DS → 0E80DT → 0001DA → 00DC → 3458 (13400)