DoIP – dijagnostika preko Ethernet/IP mreže

1. Uvod – zašto je nastao DoIP?

Savremeni automobili imaju sve više elektronskih upravljačkih jedinica (ECU), a njihov softver postaje sve složeniji. Dijagnostički uređaj danas ne služi samo za čitanje i brisanje grešaka: njime se čitaju merni parametri, sprovode testovi, podešavaju funkcije i programiraju upravljačke jedinice. Zbog toga je porasla i količina podataka koju treba razmeniti sa vozilom.

Dijagnostika se dugo oslanjala na komunikacione tehnologije kao što su K-Line i CAN. One i dalje imaju značajnu ulogu, ali posebno pri prenosu većih softverskih datoteka brzina komunikacije može postati ograničenje. Na primer, kada treba ažurirati softver upravljačke jedinice, neophodno je preneti mnogo više podataka nego prilikom čitanja jednog dijagnostičkog koda.

Jedan od odgovora automobilske industrije na ove zahteve jeste primena mrežnih tehnologija poznatih iz računarskog sveta: Ethernet povezivanja i komunikacije preko Internet protokola (IP). Na njima se zasniva DoIP (Diagnostics over Internet Protocol), odnosno dijagnostika preko IP mreže, standardizovana serijom standarda ISO 13400.

DoIP omogućava razmenu dijagnostičkih poruka između dijagnostičkog uređaja i vozila preko IP mreže. Njegova uloga nije samo u mogućnosti bržeg prenosa podataka: obuhvata i pronalaženje vozila na mreži, uspostavljanje dijagnostičke komunikacije i usmeravanje poruka prema odgovarajućim elektronskim modulima.

Važno je odmah razjasniti jednu čestu zabludu: DoIP ne znači da svaki ECU u automobilu mora imati Ethernet priključak. Dijagnostički uređaj može komunicirati sa centralnim gateway modulom preko Ethernet/IP veze, dok gateway poruke dalje prosleđuje modulima povezanim drugim mrežama, na primer CAN-om.

Da bismo razumeli kako sve ovo funkcioniše, najpre ćemo upoznati osnovne pojmove računarskih mreža: Ethernet, IP adresu, TCP, UDP i mrežni port. Zatim ćemo pratiti put jednog dijagnostičkog zahteva od laptopa do ECU-a i nazad.

Ethernet, IP, TCP i UDP – osnove mrežne komunikacije

Pre nego što počnemo da analiziramo DoIP poruke, potrebno je da razumemo nekoliko pojmova iz računarskih mreža. Nazivi Ethernet, IP, TCP i UDP često se koriste zajedno, ali ne označavaju istu tehnologiju niti obavljaju isti zadatak.

Za početak možemo zamisliti sasvim običnu situaciju: laptop povezujemo LAN kablom sa kućnim ruterom. Zatim zamislimo drugi slučaj – laptop povezujemo odgovarajućim Ethernet dijagnostičkim kablom sa automobilom. Iako je namena veze drugačija, u oba primera možemo prepoznati iste osnovne principe mrežne komunikacije.

Ethernet – kako uređaji razmenjuju podatke preko mreže?

Ethernet je porodica mrežnih tehnologija standardizovanih kroz IEEE 802.3. Ona, između ostalog, definiše načine prenosa signala preko fizičkog medijuma i pravila za formiranje Ethernet frejmova.

Kod poznatog standarda 100BASE-TX koristi se bakarni kabl sa dve aktivne upredene parice: jedna služi za slanje, a druga za prijem podataka. Nazivna brzina prenosa je 100 Mbit/s. Svaka parica prenosi diferencijalni električni signal, što pomaže otpornosti na elektromagnetne smetnje.

LAPTOP                 MREŽNI UREĐAJ
Ethernet PHY           Ethernet PHY
    │                       │
    ├──── TX parica ───────►│
    │                       │
    │◄──── RX parica ───────┤
    │                       │
      100BASE-TX veza

Upredanje provodnika nije samo mehanički detalj. Zahvaljujući njemu, spoljna elektromagnetna smetnja deluje približno jednako na oba provodnika, dok prijemnik prati razliku njihovih potencijala. Ovo je čitaocima koji poznaju CAN-H i CAN-L već poznat princip, iako se konkretna signalizacija i način kodovanja kod Ethernet-a razlikuju od CAN-a.

Važno: Ethernet nije isto što i RJ45 konektor. RJ45 je uobičajen naziv za modularni priključak koji se koristi u mnogim bakarnim Ethernet instalacijama, dok se Ethernet može realizovati različitim vrstama kablova, konektora i fizičkih interfejsa.

MAC adresa i Ethernet frejm

Pored fizičkog prenosa, Ethernet koristi i MAC adrese za identifikaciju mrežnih interfejsa na lokalnoj mreži. Tipična MAC adresa ima 48 bita i često se zapisuje u obliku 02:1A:2B:3C:4D:5E. Ovaj zapis je samo primer.

Kada jedan Ethernet uređaj šalje podatke drugom, formira se Ethernet frejm koji sadrži, između ostalog, odredišnu MAC adresu, izvornu MAC adresu, oznaku vrste sadržaja i korisne podatke. Ethernet frejm ima i polje za kontrolu ispravnosti prenosa (FCS).

ETHERNET FREJM (pojednostavljeno)
┌─────────────┬────────────┬─────────┬──────────────┬─────┐
│ MAC primaoca│ MAC pošilj.│ Tip     │ Podaci       │ FCS │
└─────────────┴────────────┴─────────┴──────────────┴─────┘
                                   │
                                   └─ ovde može biti IP paket

MAC adresa i IP adresa nisu isto. MAC adresa se koristi pri isporuci frejmova na određenoj Ethernet vezi odnosno lokalnoj mreži, dok IP adresiranje omogućava komunikaciju na mrežnom sloju, uključujući povezivanje različitih mreža.

IP – kako uređaj dobija mrežnu adresu?

IP (Internet Protocol) obezbeđuje adresiranje i prenos paketa između mrežnih uređaja. U IPv4 mreži adresa se zapisuje kao četiri decimalna broja, na primer 192.168.10.20. To ne znači da svako vozilo ima baš ovakvu adresu: konkretan opseg i način dodele zavise od sistema.

Prilikom povezivanja računara sa mrežom, IP adresa može biti dodeljena automatski ili podešena na drugi odgovarajući način. Da bi komunikacija uspela, nije dovoljno samo fizički spojiti kabl; uređaji moraju imati ispravnu mrežnu konfiguraciju i dostupnu putanju do odredišta.

DIJAGNOSTIČKI LAPTOP       VOZILO / DoIP INTERFEJS
IP: 192.168.10.20          IP: 192.168.10.30
         │                          │
         └──── Ethernet veza ───────┘

   Ilustrativne IP adrese, ne stvarna
   konfiguracija određenog proizvođača.

U Ethernet mreži se za pronalaženje MAC adrese koja odgovara poznatoj IPv4 adresi tipično koristi ARP (Address Resolution Protocol). Tako IP sloj i Ethernet sloj sarađuju: IP određuje mrežno odredište, a Ethernet realizuje isporuku frejma preko odgovarajuće lokalne veze.

Treba zapamtiti: MAC adresa i IP adresa imaju različite uloge. IP paket se može prenositi unutar Ethernet frejma, ali IP nije sam po sebi električni signal na provodnicima.

TCP i UDP – dve mogućnosti prenosa podataka

Kada uređaji mogu da razmenjuju IP pakete, aplikacijama je potreban način da organizuju komunikaciju. Tu se pojavljuju TCP (Transmission Control Protocol) i UDP (User Datagram Protocol). Oba koriste IP, ali se veoma razlikuju po načinu rada.

TCP najpre uspostavlja vezu između dva komunikaciona kraja. Zatim obezbeđuje pouzdan, uređen tok bajtova: prati potvrde prijema, redosled podataka i po potrebi ponavlja prenos izgubljenih segmenata. To ne znači da TCP može garantovati da nikada neće doći do prekida veze, već da ima mehanizme za prepoznavanje i obradu problema tokom prenosa.

TCP – uspostavljanje veze (pojednostavljeno)

LAPTOP                              VOZILO
  │                                   │
  ├──────────── SYN ─────────────────►│
  │◄──────── SYN + ACK ───────────────┤
  ├──────────── ACK ─────────────────►│
  │                                   │
  │       TCP veza uspostavljena      │
  ├───────── tok podataka ───────────►│
  │◄──────── tok podataka ────────────┤

UDP ne uspostavlja takvu vezu pre slanja. Aplikacija šalje datagram na određenu IP adresu i port. Sam UDP ne garantuje prijem, redosled niti ponovno slanje izgubljenih datagrama. Zbog toga je pogodan za zadatke kod kojih aplikacija ne želi da pre svakog slanja uspostavlja TCP vezu, ali eventualne dodatne provere mora da reši na svom nivou.

OsobinaTCPUDP
Uspostavljanje vezeDaNe, datagramski prenos
Garantovanje redosleda na transportnom slojuDa, za isporučeni tok bajtovaNe
Potvrde i ponovno slanjeUgrađeni mehanizmiNisu ugrađeni u UDP
Primer u DoIP-uRouting Activation i dijagnostičke porukeOtkrivanje i identifikacija vozila

Šta je mrežni port?

IP adresa označava mrežno odredište, ali na istom uređaju može raditi više mrežnih servisa. Port omogućava da TCP ili UDP komunikacija bude usmerena odgovarajućoj aplikaciji odnosno servisu. Broj porta nije fizički kontakt konektora i ne treba ga mešati sa pinovima OBD priključka.

Uobičajeni DoIP servis koristi port 13400. Važno je naglasiti da TCP port 13400 i UDP port 13400 predstavljaju odvojene transportne krajnje tačke, iako koriste isti broj.

IP adresa vozila: 192.168.10.30

UDP 13400 → otkrivanje / identifikacija
TCP 13400 → dijagnostička komunikacija

(Brojevi IP adresa su ilustrativni.)

Kako se svi slojevi povezuju?

Posmatrajmo primer dijagnostičke poruke koju tester šalje ECU-u preko DoIP-a. Na najvišem od ovde prikazanih nivoa aplikacija priprema dijagnostički zahtev, na primer UDS zahtev. DoIP zatim dodaje informacije potrebne za transport i usmeravanje te poruke u okviru dijagnostičke mreže.

DIJAGNOSTIČKI PROGRAM
        │
        ▼
UDS zahtev (npr. 22 F1 90)
        │
        ▼
DoIP poruka
        │
        ▼
TCP – tok bajtova
        │
        ▼
IP – mrežni paket
        │
        ▼
Ethernet – frejm
        │
        ▼
FIZIČKI ETHERNET SIGNAL
        │
        ▼
DoIP interfejs / gateway vozila

Ovaj prikaz je namerno pojednostavljen. TCP predstavlja tok bajtova, pa granice pojedinačnih DoIP poruka ne moraju da se poklapaju sa granicama pojedinačnih TCP segmenata ili Ethernet frejmova. DoIP zaglavlje omogućava prijemnoj strani da prepozna dužinu DoIP poruke.

Da li je Ethernet u automobilu isti kao kućni Ethernet?

Osnovni koncept Ethernet komunikacije jeste zajednički, ali fizička realizacija ne mora biti ista. Kod klasičnog 100BASE-TX koriste se dve aktivne upredene parice. U automobilima se, međutim, često koristi 100BASE-T1, koji omogućava dvosmernu komunikaciju brzinom od 100 Mbit/s preko samo jedne upredene parice.

To ne znači da se 100BASE-TX mrežna kartica laptopa može direktno spojiti na 100BASE-T1 provodnike. Za takvo povezivanje potreban je odgovarajući hardver koji povezuje različite fizičke Ethernet interfejse. U pojedinim vozilima dijagnostička Ethernet veza dostupna na OBD konektoru koristi 100BASE-TX, dok unutrašnje veze između elektronskih modula mogu koristiti Automotive Ethernet standarde poput 100BASE-T1.

Praktična napomena: Ne treba zaključivati da je svaki OBD priključak sa dodatnim kontaktima Ethernet priključak. Raspored pinova, fizički interfejs i postupak aktiviranja veze zavise od vozila. Neprovereno povezivanje provodnika može oštetiti mrežni interfejs ili elektroniku vozila.

Zašto nam sve ovo treba za DoIP?

Sada možemo jasnije sagledati ulogu svakog sloja. Ethernet obezbeđuje lokalnu mrežnu komunikaciju, IP adresiranje i prenos paketa, TCP i UDP različite načine transporta, a DoIP pravila specifična za dijagnostičku komunikaciju sa vozilom.

Najkraće: DoIP nije zamena za Ethernet, TCP ili IP. On koristi postojeću mrežnu infrastrukturu i protokole da dijagnostički uređaj pronađe vozilo, uspostavi odgovarajuću komunikaciju i razmenjuje dijagnostičke poruke sa elektronskim modulima.

U sledećem poglavlju pogledaćemo kako je DoIP sistem organizovan unutar vozila: šta su dijagnostički tester, DoIP entitet, gateway i ECU, i na koji način zahtev može stići do upravljačke jedinice čak i kada ona nije direktno povezana Ethernet mrežom.

Arhitektura DoIP sistema – dijagnostički tester, gateway i ECU

U prethodnom poglavlju upoznali smo Ethernet, IP, TCP i UDP. Sada je vreme da te pojmove smestimo u automobil. Kada dijagnostički uređaj pošalje zahtev preko Ethernet veze, ko prima taj zahtev, kako se određuje kome je namenjen i šta se dešava ako ciljni ECU uopšte nema Ethernet priključak?

DoIP omogućava najmanje dva važna načina organizovanja dijagnostike: direktnu komunikaciju sa ECU-om koji podržava DoIP i posrednu komunikaciju preko DoIP gateway-a. Za razumevanje savremenih vozila posebno je važan drugi slučaj.

Arhitektura DoIP dijagnostike: laptop preko Ethernet mreže komunicira sa DoIP gateway modulom koji prosleđuje dijagnostičke zahteve ECU jedinicama preko Ethernet ili CAN mreže
Slika 1. Pojednostavljena arhitektura DoIP dijagnostike. Dijagnostički uređaj komunicira sa DoIP gateway modulom preko Ethernet/IP mreže, dok gateway omogućava pristup ECU jedinicama povezanim preko različitih komunikacionih mreža, uključujući CAN.
Izvor: Vector Informatik – DoIP .

Tri osnovna učesnika

Za početak ćemo razlikovati tri uloge koje se pojavljuju u jednom tipičnom DoIP sistemu:

  • Dijagnostički tester – računar, fabrički dijagnostički uređaj ili drugi sistem koji inicira dijagnostičku komunikaciju. U DoIP terminologiji to je klijentska strana komunikacije.
  • DoIP gateway – čvor u vozilu koji prima dijagnostičke poruke preko IP mreže i usmerava ih prema odgovarajućim elektronskim jedinicama, uključujući module na drugim mrežama.
  • ECU – elektronska upravljačka jedinica kojoj je zahtev namenjen. ECU izvršava podržani dijagnostički servis i formira odgovor.
DIJAGNOSTIČKI TESTER
      │
      │ Ethernet / IP / TCP / DoIP
      ▼
   DoIP GATEWAY
      │
      ├──── CAN / ISO-TP ────► ECU motora
      │
      ├──── CAN / ISO-TP ────► ECU kočnica
      │
      └──── druga mreža ─────► drugi ECU
Važno: ovo je pojednostavljena arhitektura. Nisu sva vozila organizovana na isti način, niti svaki gateway ima sve prikazane mreže. Poenta je da spoljna DoIP veza ne zahteva da svaki ECU u vozilu razume DoIP.

Direktna DoIP komunikacija

U najjednostavnijem slučaju tester komunicira sa upravljačkom jedinicom koja sama podržava DoIP. Takav ECU mora imati potrebnu mrežnu funkcionalnost za Ethernet i IP komunikaciju, kao i DoIP obradu dijagnostičkih poruka.

LAPTOP / TESTER
      │
      │ Ethernet + IP + TCP + DoIP
      ▼
ECU SA DoIP PODRŠKOM
      │
      ▼
Obrada UDS zahteva

Ovde nije potreban gateway koji bi prevodio dijagnostičku poruku na CAN: DoIP komunikacija završava se na samom ECU-u. Naravno, u stvarnom vozilu između testera i ECU-a mogu postojati mrežni prekidači (switch uređaji) i drugi infrastrukturni elementi.

Posredna komunikacija – DoIP gateway

Zamislimo sada vozilo u kojem je dijagnostički priključak povezan sa centralnim gateway modulom preko Ethernet veze, dok je ECU motora povezan sa gateway-em preko CAN magistrale. Tester šalje zahtev gateway-u, ali zahtev nije namenjen gateway-u, već ECU-u motora.

Gateway mora da utvrdi kojem ECU-u poruka pripada, preko koje mreže je taj ECU dostupan i kako na toj mreži izgleda odgovarajuća dijagnostička komunikacija. Kada dobije odgovor, prosleđuje ga nazad testeru preko DoIP veze.

1. Tester šalje UDS zahtev preko DoIP-a
          │
          ▼
2. Gateway prima DoIP poruku
          │
          ▼
3. Gateway određuje ciljni ECU i mrežu
          │
          ▼
4. Zahtev se šalje preko CAN / ISO-TP-a
          │
          ▼
5. ECU obrađuje UDS zahtev i odgovara
          │
          ▼
6. Gateway vraća odgovor testeru preko DoIP-a

Ovaj postupak ne znači da gateway samo električno spaja Ethernet i CAN vodove. To su različite mrežne tehnologije. Gateway mora obraditi primljenu poruku i pripremiti odgovarajući prenos kroz ciljnu mrežu.

Poređenje sa J2534: kod PassThru sistema opisivali smo uređaj koji računarskoj aplikaciji obezbeđuje pristup komunikacionoj mreži vozila. U ovoj arhitekturi DoIP gateway je deo vozila i usmerava dijagnostičke poruke sa IP mreže prema internim mrežama. To su različite uloge, iako se u oba slučaja između računara i ciljnog ECU-a nalazi posrednik.

Kako gateway zna kojem ECU-u šalje zahtev?

Ovde se pojavljuje veoma važan pojam: logička DoIP adresa. Dijagnostička poruka sadrži informacije o pošiljaocu i primaocu, uključujući logičke adrese. Logička adresa omogućava da se identifikuje dijagnostički učesnik, odnosno ECU kojem je zahtev namenjen.

Ovu adresu ne treba mešati sa IP adresom. IP adresa služi da mrežna komunikacija stigne do odgovarajućeg IP čvora – na primer gateway-a. Logička DoIP adresa govori DoIP sistemu kom dijagnostičkom učesniku pripada poruka.

Vrsta adreseČemu služi?Primer upotrebe
IP adresaIdentifikuje mrežni interfejs/čvor na IP mrežiTester uspostavlja vezu sa gateway-em
DoIP logička adresaIdentifikuje dijagnostičkog učesnikaGateway prepoznaje da je zahtev namenjen ECU-u motora
CAN identifikatorIdentifikuje CAN poruku na magistraliGateway koristi odgovarajuće identifikatore za dijagnostički zahtev i odgovor na CAN-u

Gateway koristi konfiguraciju adresiranja i informacije o internim mrežama da poveže logičku adresu ciljnog ECU-a sa odgovarajućim komunikacionim putem. Ta konfiguracija zavisi od konkretne arhitekture vozila.

Ne mešati adrese: logička DoIP adresa nije isto što i IP adresa, a nije ni CAN identifikator. Na CAN mreži se pri dijagnostici mogu koristiti određeni identifikatori zahteva i odgovora, ali njihovu vezu sa DoIP logičkom adresom određuje konfiguracija sistema.

Praktičan primer: zahtev za VIN

U prethodnom članku o PassThru-u već smo koristili UDS zahtev 22 F1 90 za čitanje identifikacionog broja vozila (VIN). Uzećemo isti primer, ali sada ćemo promeniti komunikacioni put. Pretpostavimo da ECU motora podržava odgovarajući UDS zahtev i da mu tester pristupa preko DoIP gateway-a.

DIJAGNOSTIČKI PROGRAM
UDS zahtev: 22 F1 90
          │
          ▼
DoIP dijagnostička poruka
(ciljna logička adresa: ECU motora)
          │
          ▼
TCP / IP / ETHERNET
          │
          ▼
DoIP GATEWAY
          │
          ▼
ISO-TP / CAN
          │
          ▼
ECU MOTORA
          │
          ▼
UDS odgovor sa VIN podacima
          │
          └── povratak istim logičkim putem

Suštinski UDS zahtev ostaje isti: 22 F1 90. Razlika je u tome što se na delu puta od testera do gateway-a prenosi kao sadržaj DoIP dijagnostičke poruke, dok se na CAN delu prenosi korišćenjem ISO-TP-a. Ako odgovor sadrži više podataka nego što staje u jedan CAN frejm, ISO-TP se brine o potrebnom segmentiranju i ponovnom sastavljanju poruke.

Na Ethernet delu mogli bismo analizirati mrežne pakete odgovarajućim softverom, na primer Wiresharkom. Na CAN delu mogli bismo posmatrati CAN frejmove osciloskopom ili CAN analizatorom. Ne bismo videli isti električni signal niti isti oblik frejma na obe strane gateway-a, iako se prenosi sadržaj iste dijagnostičke operacije.

Da li DoIP gateway mora da bude centralni gateway vozila?

Ne mora. U nekim arhitekturama DoIP funkcionalnost je deo centralnog gateway-a, dok u drugim može biti implementirana u posebnom dijagnostičkom mrežnom čvoru ili ECU-u. Zato je preciznije govoriti o DoIP gateway funkciji nego unapred pretpostaviti da je svaki centralni gateway ujedno DoIP gateway.

Takođe, Ethernet ne mora da bude jedina interna mreža vozila. Savremeno vozilo može istovremeno koristiti više CAN magistrala, Automotive Ethernet i druge tehnologije. DoIP opisuje dijagnostički pristup preko IP komunikacije, a ne kompletnu arhitekturu svih mreža u automobilu.

Šta nam ova arhitektura govori?

Sada možemo razumeti jednu od najvažnijih osobina DoIP-a: tester može imati jednu IP vezu sa vozilom, a preko nje pristupati većem broju ECU jedinica. Ti ECU-i ne moraju koristiti istu internu komunikacionu mrežu niti svi moraju podržavati Ethernet.

Jedna spoljna Ethernet / DoIP veza
                 │
                 ▼
        Dijagnostički gateway
                 │
       ┌─────────┼─────────┐
       ▼         ▼         ▼
     ECU A     ECU B     ECU C
      CAN       CAN     Ethernet
Zapamtiti: Ethernet i IP omogućavaju mrežnu vezu do DoIP čvora; DoIP obezbeđuje dijagnostičko adresiranje i transport poruka; gateway, kada je potreban, usmerava zahtev na odgovarajuću internu mrežu; a ciljni ECU izvršava dijagnostički servis, na primer UDS zahtev.

Ostaje važno pitanje: kako tester uopšte pronalazi vozilo na IP mreži, uspostavlja dijagnostičku vezu i dobija dozvolu za usmeravanje poruka? To je tema sledećeg poglavlja, u kojem ćemo proći kroz Vehicle Discovery, TCP povezivanje i Routing Activation.

Kako se uspostavlja DoIP komunikacija?

Zamislimo da smo povezali laptop sa vozilom preko odgovarajućeg Ethernet dijagnostičkog interfejsa i pokrenuli program za dijagnostiku. Na ekranu još nema grešaka ni parametara motora. Pre nego što pošalje prvi zahtev ECU-u, program mora da pronađe vozilo na mreži i uspostavi odgovarajuću komunikacionu vezu.

Taj postupak možemo podeliti na četiri razumljiva koraka: pronalaženje vozila, otvaranje TCP veze, aktiviranje dijagnostičkog usmeravanja i slanje UDS zahteva. Pogledajmo šta se zaista dešava u svakom od njih.

LAPTOP / DIJAGNOSTIČKI PROGRAM       VOZILO / DoIP GATEWAY
               │                              │
               │── Pronađi vozilo (UDP) ─────>│
               │<── Identifikacija vozila ────│
               │                              │
               │══ Uspostavi TCP vezu ════════│
               │                              │
               │── Routing Activation ───────>│
               │<── Odgovor na aktiviranje ───│
               │                              │
               │── UDS zahtev preko DoIP-a ──>│
               │<── UDS odgovor preko DoIP-a ─│

Korak 1 – kako dijagnostički program pronalazi vozilo?

Kod CAN dijagnostike često znamo kojim CAN identifikatorom treba poslati zahtev. Kod DoIP-a najpre moramo da saznamo koji se DoIP uređaj nalazi na IP mreži. Zato dijagnostički program može poslati Vehicle Identification Request, odnosno zahtev za identifikaciju vozila.

Za ovu razmenu koristi se UDP, najčešće preko standardnog DoIP porta 13400. Zahtev se u odgovarajućoj IPv4 mreži može poslati kao broadcast poruka, tako da ga mogu primiti DoIP uređaji na toj lokalnoj mreži. Vozilo može i samo poslati najavu svog prisustva (Vehicle Announcement) kada se ispune uslovi za aktiviranje DoIP-a.

Odgovor vozila sadrži identifikacione podatke, među kojima mogu biti VIN i logička adresa DoIP uređaja. Dijagnostički program zatim zna sa kojim vozilom odnosno DoIP čvorom treba da nastavi komunikaciju.

Primer: Kao kada računar na lokalnoj mreži prvo pronađe uređaj sa kojim želi da radi. Sam Ethernet kabl ne govori dijagnostičkom programu koje je vozilo priključeno – potrebno je da se uređaji identifikuju.

Korak 2 – otvaranje TCP veze

Kada program sazna IP adresu odgovarajućeg DoIP uređaja, otvara TCP vezu prema njemu. Za uobičajenu nezaštićenu DoIP dijagnostičku komunikaciju koristi se TCP port 13400.

Međutim, otvorena TCP veza još ne znači da je dozvoljeno slati dijagnostičke zahteve ka ECU-ima. Sledi još jedan korak specifičan za DoIP.

Korak 3 – Routing Activation: dozvola za dijagnostičko usmeravanje

Dijagnostički program šalje poruku Routing Activation Request. Njome traži da DoIP uređaj aktivira usmeravanje dijagnostičkih poruka za tu komunikacionu vezu.

DoIP uređaj vraća Routing Activation Response. Odgovor pokazuje da li je zahtev prihvaćen ili odbijen. Razlozi odbijanja mogu zavisiti od stanja sistema, identiteta testera i pravila pristupa konkretnog vozila.

Važno: Routing Activation nije isto što i otključavanje svih servisnih funkcija ECU-a. Čak i kada gateway prihvati dijagnostičku komunikaciju, pojedini UDS servisi mogu zahtevati posebnu dijagnostičku sesiju, bezbednosno odobrenje ili druge uslove.

Korak 4 – prvi dijagnostički zahtev

Sada program može da pošalje dijagnostičku poruku. Uzmimo primer koji smo već koristili u članku o PassThru-u: UDS zahtev za čitanje VIN-a preko identifikatora podataka F190.

UDS zahtev: 22 F1 90

22     – ReadDataByIdentifier
F1 90  – identifikator podatka za VIN

Ti bajtovi predstavljaju UDS zahtev. Kada se šalju preko DoIP-a, nisu sami na mreži: nalaze se unutar DoIP dijagnostičke poruke, koja sadrži i podatke potrebne za adresiranje. Na početku svake DoIP poruke nalazi se i standardno zaglavlje. Njegovu strukturu videćemo u sledećem poglavlju.

Ako je odredišni ECU na CAN mreži, gateway može proslediti odgovarajući dijagnostički zahtev preko CAN-a i ISO-TP-a. Kada ECU odgovori, gateway vraća odgovor testeru preko DoIP komunikacije.

Dijagnostički program
        │
        │ UDS: 22 F1 90
        ▼
DoIP preko TCP/IP i Ethernet-a
        │
        ▼
DoIP gateway
        │
        │ ISO-TP / CAN (ako je ECU na CAN mreži)
        ▼
ECU motora
        │
        └── Odgovor se vraća obrnutim putem

Koje poruke bismo videli u snimku komunikacije?

Ako bismo vezu snimali programom kao što je Wireshark, u tipičnom postupku mogli bismo da prepoznamo sledeće DoIP poruke. Oznake u drugoj koloni su tipovi DoIP poruka, zapisani heksadecimalno – nisu CAN identifikatori niti TCP portovi.

PorukaDoIP tipUloga
Vehicle Identification Request0x0001Tester traži vozilo na mreži (UDP)
Vehicle Announcement / Identification Response0x0004Vozilo šalje podatke za identifikaciju (UDP)
Routing Activation Request0x0005Tester traži aktiviranje dijagnostičkog usmeravanja (TCP)
Routing Activation Response0x0006Vozilo javlja rezultat zahteva (TCP)
Diagnostic Message0x8001Prenosi dijagnostički zahtev ili odgovor (TCP)
Prikaz DoIP komunikacije u Wiresharku sa identifikacijom vozila, aktivacijom rutiranja i dijagnostičkim porukama
Slika 2. Primer analize DoIP komunikacije u programu Wireshark. Prikaz omogućava praćenje pronalaženja vozila (Vehicle Discovery), aktiviranja dijagnostičkog usmeravanja (Routing Activation) i razmene dijagnostičkih poruka.
Izvor: Edukativni prikaz DoIP komunikacije.

Postoje i dodatne poruke, kao što su potvrda prijema dijagnostičke poruke (Diagnostic Message ACK) i provera da li je tester i dalje prisutan (Alive Check). Njih ne moramo detaljno analizirati da bismo razumeli osnovni tok komunikacije.

Ne mešati dve vrste potvrde: DoIP potvrda prijema poruke ne znači da je ECU uspešno izvršio zahtev. Ona se odnosi na obradu dijagnostičke poruke na DoIP nivou. Stvarni rezultat tražene dijagnostičke operacije nalazi se u UDS odgovoru ECU-a.

Struktura DoIP poruke – šta se zaista šalje preko mreže?

U prethodnom poglavlju videli smo kako dijagnostički uređaj pronalazi vozilo, otvara TCP vezu i obavlja Routing Activation. Sada pretpostavimo da je veza već uspostavljena i da želimo da pročitamo VIN broj iz jednog ECU-a. Umesto da govorimo uopšteno o „slanju dijagnostičkog zahteva“, pogledaćemo konkretne bajtove koji se šalju.

Počinjemo od poznatog UDS zahteva

Iz CAN i PassThru članaka već poznajemo UDS zahtev za čitanje VIN-a:

22 F1 90

22 označava UDS servis ReadDataByIdentifier, a F1 90 identifikator podatka (DID) za VIN. Ova tri bajta ne sadrže IP adresu niti informaciju o TCP portu. To je sam dijagnostički zahtev. Da bi stigao do željenog ECU-a preko DoIP veze, potrebno je dodati podatke koje razume DoIP.

Kako izgleda kompletna DoIP dijagnostička poruka?

Uzećemo ilustrativan primer: logička adresa testera je 0x0E00, a ciljna logička adresa ECU-a 0x0010. To su primeri adresa, ne univerzalne vrednosti za svaki automobil.

02 FD 80 01 00 00 00 07 0E 00 00 10 22 F1 90

|---- DoIP zaglavlje ----| |---- DoIP sadržaj ----|
         8 bajtova                7 bajtova

Ovde imamo ukupno 15 bajtova DoIP poruke. Prvih osam bajtova čini generičko DoIP zaglavlje, a preostalih sedam čini sadržaj dijagnostičke poruke. Napomena: ovo još nije kompletan Ethernet frejm – njegovim prenosom bave se TCP/IP i Ethernet slojevi.

Prvih osam bajtova – generičko DoIP zaglavlje

BajtoviPoljeŠta znači u našem primeru?
02Protocol VersionVerzija DoIP protokola 0x02, odabrana za primer.
FDInverse Protocol VersionBitovska inverzija prethodnog bajta: ~0x02 = 0xFD.
80 01Payload Type0x8001 znači da poruka nosi dijagnostičke podatke.
00 00 00 07Payload LengthSadržaj iza zaglavlja dug je 7 bajtova.

Zašto dužina iznosi sedam? Zato što sadržaj obuhvata 2 bajta adrese pošiljaoca + 2 bajta adrese primaoca + 3 bajta UDS zahteva. Sama dužina DoIP zaglavlja ne uračunava se u polje Payload Length.

Obrati pažnju: 0x8001 nije CAN identifikator i nije UDS servis. To je DoIP oznaka vrste poruke. UDS servis 0x22 nalazi se tek na kraju našeg primera.

Preostalih sedam bajtova – adrese i dijagnostički zahtev

0E 00 | 00 10 | 22 F1 90
  │       │        │
  │       │        └─ UDS zahtev za VIN
  │       └────────── Ciljni ECU: 0x0010
  └────────────────── Tester: 0x0E00

Prva dva bajta određuju Source Address – logičku adresu uređaja koji šalje zahtev. Sledeća dva određuju Target Address – kome je zahtev namenjen. Zatim dolaze stvarni dijagnostički podaci.

Logička adresa 0x0010 nije IP adresa vozila i nije CAN ID. Ona DoIP sistemu govori kojem dijagnostičkom učesniku je poruka namenjena. Ako je taj ECU na CAN mreži, gateway može da prosledi zahtev uz odgovarajuće mapiranje adresa i upotrebu CAN/ISO-TP komunikacije.

Za praktično tumačenje: kada u snimljenom saobraćaju vidiš niz 80 01 u polju vrste DoIP poruke, znaš da treba da potražiš logičke adrese i dijagnostičke bajtove koji slede iza osmobajtnog zaglavlja.

Šta ECU šalje nazad?

Ako je zahtev prihvaćen i ECU raspolaže traženim podatkom, pozitivan UDS odgovor počinje sa 62 F1 90, iza čega sledi VIN kao niz znakova. U povratnoj DoIP poruci logičke adrese menjaju mesta: sada je ECU pošiljalac, a tester primalac.

ZAHTEV:  tester 0x0E00 → ECU 0x0010
         UDS: 22 F1 90

ODGOVOR: ECU 0x0010 → tester 0x0E00
         UDS: 62 F1 90 + VIN (17 znakova)

Za standardni pozitivan odgovor sa VIN-om to daje 20 bajtova UDS podataka (3 bajta identifikacije servisa i DID-a + 17 bajtova VIN-a), odnosno 24 bajta DoIP sadržaja kada dodamo dve logičke adrese od po dva bajta. To je primer uspešnog odgovora, a ne tvrdnja da će svaki ECU u svakoj situaciji odgovoriti pozitivno.

DoIP potvrda nije isto što i UDS odgovor

Na DoIP vezi možemo videti posebnu poruku Diagnostic Message ACK sa oznakom 0x8002, ili negativnu potvrdu 0x8003. Njih šalje DoIP komunikacioni čvor u vezi sa obradom dijagnostičke poruke. One nisu zamena za stvarni UDS odgovor ECU-a.

Tester                         DoIP čvor / ECU
  |                                 |
  |--- 0x8001: UDS 22 F1 90 ------->|
  |<-- 0x8002: DoIP potvrda --------|
  |                                 |
  |<-- 0x8001: UDS 62 F1 90 ... ----|
  |                                 |

Jednostavno rečeno: DoIP potvrda govori o prihvatanju dijagnostičke poruke na DoIP nivou, dok UDS odgovor govori o rezultatu dijagnostičkog zahteva. Čak i kada DoIP poruka bude prihvaćena, ECU može vratiti negativan UDS odgovor.

Gde su TCP i Ethernet u ovom nizu?

Naša poruka od 15 bajtova jeste DoIP poruka, ali na mreži ne putuje potpuno sama. TCP prenosi njene bajtove, IP obezbeđuje mrežno adresiranje, a Ethernet prenosi odgovarajuće frejmove preko fizičke veze.

Ethernet frejm
  └── IP paket
       └── TCP segment / tok bajtova
            └── DoIP poruka
                 ├── Zaglavlje: 02 FD 80 01 00 00 00 07
                 ├── Adrese:   0E 00 00 10
                 └── UDS:      22 F1 90

Prikaz je konceptualan. Jedna DoIP poruka ne mora uvek odgovarati jednom TCP segmentu: TCP prenosi tok bajtova, pa se delovi poruke mogu rasporediti kroz više segmenata ili se više DoIP poruka može preneti zajedno. Zato prijemnik koristi DoIP zaglavlje i polje dužine kako bi izdvojio jednu kompletnu poruku.

Važno pri merenju: ako osciloskop priključimo na Ethernet vodove, nećemo neposredno videti ispis 22 F1 90 kao kod dekodiranog protokola. Videćemo električni signal. Da bismo pročitali bajtove i pojedinačne protokole, potreban je odgovarajući uređaj za snimanje mrežnog saobraćaja ili dekodiranje, na primer Wireshark uz odgovarajući Ethernet pristup.

Šta smo ovim primerom naučili?

Krenuli smo od samo tri UDS bajta: 22 F1 90. Dodavanjem četiri bajta logičkih adresa i osam bajtova DoIP zaglavlja dobili smo 15-bajtnu DoIP poruku spremnu za prenos kroz već uspostavljenu TCP vezu. Na nižim mrežnim slojevima dodaju se njihova sopstvena zaglavlja i kontrolni podaci.

Suština: DoIP ne menja značenje UDS zahteva. On poruci dodaje informacije potrebne da dijagnostički sistem preko IP mreže prepozna vrstu poruke, njenu dužinu, pošiljaoca i cilj. U narednom delu ćemo uporediti prenos istog UDS zahteva preko DoIP-a i preko CAN/ISO-TP-a.

DoIP i DoCAN – ista dijagnostika, različit prenos

DoIP i DoCAN možemo najlakše uporediti na istom zadatku: dijagnostički uređaj želi da pročita VIN iz ECU-a. U oba slučaja koristićemo UDS zahtev 22 F1 90. Menja se put kojim taj zahtev stiže do ECU-a, a ne njegovo značenje.

Primer 1: zahtev preko CAN-a (DoCAN)

Za klasični CAN sa 11-bitnim identifikatorom možemo uzeti ilustrativni dijagnostički zahtev na ID-u 0x7E0:

CAN ID: 7E0
DATA:   03 22 F1 90 00 00 00 00
        │  └──────┬──────┘
        │         UDS zahtev
        └─ ISO-TP: 3 bajta korisnih podataka

Bajt 03 označava ISO-TP Single Frame sa tri bajta dijagnostičkih podataka. U ovom primeru ceo zahtev staje u jedan klasični CAN frejm. ID 0x7E0 je uobičajen primer iz OBD dijagnostike, ali konkretni ID-jevi zavise od vozila i načina adresiranja.

Primer 2: isti zahtev preko DoIP-a

Kod DoIP-a UDS bajtovi ostaju isti. Dodaju se DoIP zaglavlje i logičke adrese, a poruka se prenosi preko TCP/IP i Ethernet veze:

02 FD 80 01 00 00 00 07  0E 00 00 10  22 F1 90
└──────── DoIP zaglavlje ─┘  └── adrese ──┘  └─ UDS ─┘

Ovde su 0x0E00 (tester) i 0x0010 (ciljni ECU) primeri logičkih adresa, ne univerzalne vrednosti za sva vozila. DoIP poruka ima 15 bajtova, ne računajući TCP/IP i Ethernet zaglavlja.

Šta je zapravo drugačije?

OsobinaDoCANDoIP
Osnovna mrežaCANEthernet / IP
Prenos dijagnostičkih podatakaISO-TP (ISO 15765-2)DoIP preko TCP-a
AdresiranjeCAN identifikatori uz pravila dijagnostičkog adresiranjaIP adresa uređaja i DoIP logička adresa ciljnog ECU-a
Veće porukeISO-TP ih deli na više CAN frejmovaTCP prenosi tok bajtova; DoIP zaglavlje označava dužinu poruke
Tipična prednostŠiroka zastupljenost i jednostavna integracija u CAN sistemeVeći raspoloživi protok, posebno koristan pri programiranju
Važno: DoIP sam po sebi ne znači da svaki ECU u automobilu ima Ethernet priključak. Tester može poslati zahtev preko DoIP-a do gateway-a, a gateway ga zatim preneti do ciljnog ECU-a preko CAN/ISO-TP-a.

Zašto je razlika bitna u radionici?

Pri običnom čitanju grešaka razlika možda neće biti naročito primetna. Međutim, kada treba preneti veliki softverski paket tokom programiranja ECU-a, propusni opseg komunikacije postaje važan. Ethernet može ponuditi znatno veću brzinu od klasičnog CAN-a, ali ukupno vreme programiranja zavisi i od gateway-a, ciljnog ECU-a, memorije i proizvođačke procedure.

Zaključak: UDS kaže ECU-u šta treba da uradi. DoCAN i DoIP predstavljaju dva različita načina da taj zahtev i odgovor stignu do odredišta. Zato prelazak na DoIP ne zahteva automatski novi skup UDS dijagnostičkih servisa.

Fizičko povezivanje – od LAN kabla do dijagnostičkog konektora

Kod CAN dijagnostike navikli smo da komunikaciju tražimo na CAN-H i CAN-L vodovima. Kod DoIP-a dijagnostički uređaj i vozilo mogu biti povezani preko Ethernet veze. Najlakše je to zamisliti kao povezivanje laptopa sa kućnim ruterom LAN kablom: mrežni interfejs laptopa razgovara sa mrežnim interfejsom na drugom kraju kabla. Samo što je u našem slučaju drugi uređaj – automobil.

Da li je RJ45 obavezan?

Ne. RJ45 je konektor, a Ethernet je komunikaciona tehnologija. Na računaru često vidimo RJ45 priključak, dok se na vozilu ista vrsta Ethernet komunikacije može izvesti na odgovarajuće kontakte dijagnostičkog konektora. U drugim izvedbama koriste se namenski automobilski konektori i komunikacioni interfejsi.

LAPTOP                VOZILO
RJ45 ─── Ethernet ─── OBD / dijagnostički priključak
                         │
                         ▼
                   Gateway / ECU
Važno: to što vozilo ima 16-pinski OBD priključak ne znači da na njemu postoji Ethernet. Raspored dodatnih kontakata i podržani način povezivanja zavise od vozila.

BMW ENET – praktičan primer

Kod određenih BMW vozila, naročito generacije F, Ethernet za dijagnostiku izveden je preko kontakata OBD priključka. Zato postoji ENET kabl sa RJ45 priključkom za laptop na jednom kraju i OBD priključkom na drugom. Kod kompatibilnih sistema takav kabl omogućava direktnu Ethernet vezu između mrežne kartice računara i dijagnostičkog Ethernet interfejsa vozila.

BMW ENET dijagnostički kabl sa OBD2 i RJ45 konektorom za Ethernet povezivanje laptopa sa vozilom
Slika 3. BMW ENET dijagnostički kabl sa OBD2 i RJ45 konektorima. Kod kompatibilnih BMW vozila omogućava neposredno Ethernet povezivanje računara sa dijagnostičkim mrežnim interfejsom vozila.
OBD kontaktUloga u navedenoj BMW izvedbi
3 i 11Prva Ethernet diferencijalna parica
12 i 13Druga Ethernet diferencijalna parica
8Aktiviranje Ethernet interfejsa
16Napajanje +12 V, korišćeno i za aktiviranje interfejsa preko odgovarajućeg sklopa u kablu

Tipičan pasivni BMW ENET kabl koristi dve upredene parice za podatke i odgovarajući otpornik (često oko 510 Ω) između kontakata 8 i 16 za aktiviranje interfejsa. Ne prevodi CAN poruke u Ethernet: na kompatibilnom vozilu računar već razgovara sa Ethernet interfejsom vozila.

Oprez: navedeni pinovi nisu univerzalni DoIP raspored za sva vozila. Nije bezbedno nasumično povezivati kontakte OBD konektora, naročito kontakt 16 sa napajanjem vozila. Za praktično povezivanje koristi se odgovarajući kabl i dokumentacija konkretnog modela.

Dve parice ili jedna parica?

Ovde treba razlikovati dve fizičke izvedbe Ethernet-a:

Osobina100BASE-TX100BASE-T1
Broj paricaDve upredene parice (četiri provodnika)Jedna upredena parica (dva provodnika)
Nominalna brzina100 Mbit/s100 Mbit/s
Tipična primenaRačunarske LAN veze i određeni dijagnostički Ethernet interfejsiEthernet veze unutar automobila

Kod 100BASE-TX jedna parica služi za predaju, a druga za prijem. Kod 100BASE-T1 predaja i prijem odvijaju se preko iste parice, uz drugačiju elektroniku i obradu signala. To nisu električno zamenljive veze, iako obe prenose Ethernet komunikaciju.

Poređenje Ethernet standarda 100BASE-TX sa dve upredene parice i 100BASE-T1 sa jednom upredenom paricom
Slika 4. Poređenje fizičkih veza Ethernet standarda 100BASE-TX i 100BASE-T1. Oba omogućavaju prenos podataka brzinom od 100 Mbit/s, ali 100BASE-TX koristi dve upredene parice, dok 100BASE-T1 koristi samo jednu paricu za dvosmernu komunikaciju.
Izvor: Teledyne LeCroy – Fundamentals of Automotive Ethernet .
Praktično poređenje: Ethernet priključak na laptopu ne može se samo prelemiti na jednu 100BASE-T1 paricu i očekivati da veza proradi. Između različitih fizičkih izvedbi potrebna je odgovarajuća mrežna elektronika, na primer gateway ili media converter.

Da li je svaki LAN adapter ujedno DoIP adapter?

Ne. Kod vozila sa odgovarajućim 100BASE-TX dijagnostičkim interfejsom, pravilno izveden kabl i mrežna kartica laptopa mogu obezbediti fizičku vezu. Ali uspešna dijagnostika zahteva i odgovarajući softver, IP komunikaciju i podršku vozila za DoIP. Kod drugih vozila potreban je namenski DoIP interfejs koji obezbeđuje kompatibilnost sa njihovim fizičkim priključkom i komunikacijom.

Slično tome, RJ45 utičnica na dijagnostičkom uređaju ne dokazuje sama po sebi DoIP podršku. Ona može služiti za vezu sa VCI uređajem ili za neku drugu komunikacionu namenu. Odlučujuća je specifikacija proizvođača.

Šta se dešava kada priključimo kabl?

1. Kabl i odgovarajući interfejs uspostave Ethernet link.
2. Laptop i vozilo ostvare IP komunikaciju.
3. Dijagnostički softver pronađe DoIP entitet.
4. Otvori TCP vezu i zatraži Routing Activation.
5. Pošalje dijagnostički zahtev željenom ECU-u.

Prvi korak je samo fizička mrežna veza. Ostali koraci pripadaju komunikacionim protokolima koje smo upoznali u prethodnim poglavljima. Zato je moguće da mrežna kartica pokazuje aktivan link, a da dijagnostička aplikacija ipak ne uspeva da se poveže sa vozilom.

Zaključak: BMW ENET je dobar primer koliko Ethernet dijagnostika može ličiti na običnu računarsku mrežu. Ipak, kod DoIP-a treba razdvojiti fizičku vezu, IP komunikaciju i dijagnostički protokol. OBD konektor je samo mesto priključivanja – ne garancija da vozilo podržava određeni tip Ethernet veze.

DoIP u praksi – mogućnosti i ograničenja

Za servis DoIP pre svega znači bržu razmenu dijagnostičkih podataka, naročito kada je potrebno preneti velike količine podataka tokom programiranja elektronskih upravljačkih jedinica. Umesto da se celokupna komunikacija oslanja na relativno spor CAN dijagnostički kanal, tester može komunicirati sa odgovarajućim DoIP interfejsom vozila preko Ethernet/IP mreže.

To, međutim, ne znači da će svaka operacija biti mnogo brža. Kod običnog čitanja grešaka razlika može biti mala. Ako gateway dijagnostički zahtev dalje prosleđuje ECU-u preko CAN-a, taj deo puta i dalje je ograničen mogućnostima CAN mreže i samog ECU-a.

Primer iz radionice: za očitavanje jednog DTC-a nije presudno da li nekoliko bajtova putuje preko CAN-a ili Ethernet-a. Kod programiranja modula sa velikom softverskom datotekom, propusni opseg komunikacione veze postaje mnogo važniji.

Šta proveriti kada DoIP dijagnostika ne radi?

Kvar ne mora biti u samom dijagnostičkom programu. Korisno je razdvojiti nekoliko jednostavnih provera:

  1. Oprema: da li konkretan tester, VCI ili kabl zaista podržava DoIP na tom vozilu?
  2. Fizička veza: da li je odgovarajući Ethernet interfejs aktiviran i da li postoji mrežni link?
  3. IP komunikacija: da li tester može da pronađe DoIP entitet vozila?
  4. Dijagnostička veza: da li je TCP veza uspostavljena i Routing Activation uspešno obavljen?
  5. ECU: da li zahtev stiže do ciljnog modula i da li on odgovara na traženi dijagnostički servis?

Ako je Ethernet link aktivan, ali nema odgovora na Vehicle Discovery, problem se traži na drugom mestu nego kada je Routing Activation uspešan, ali određeni ECU ne odgovara. Upravo zato poznavanje redosleda DoIP komunikacije pomaže i u otkrivanju kvara.

Važno: DoIP ne ukida fabričke procedure, bezbednosne mehanizme ni ograničenja pristupa ECU-u. Stabilno napajanje, odgovarajući softver i poštovanje postupka proizvođača i dalje su neophodni, naročito tokom programiranja.

Zaključak

DoIP (ISO 13400) nije novi dijagnostički jezik ECU-a, već standardizovan način da dijagnostičke poruke putuju preko IP mreže. Dijagnostički servisi, kao što su UDS zahtevi, zadržavaju svoju ulogu; menja se komunikacioni put kojim zahtev dolazi do upravljačke jedinice.

DIJAGNOSTIČKI PROGRAM
          │
       UDS zahtev
          │
         DoIP
          │
       TCP / IP
          │
       Ethernet
          │
   DoIP gateway / ECU
          │
       Ciljni ECU

U određenim vozilima taj put može biti jednostavan Ethernet kabl između laptopa i gateway-a. U drugim slučajevima potreban je namenski dijagnostički interfejs, a gateway zatim prosleđuje zahtev na CAN ili neku drugu unutrašnju mrežu vozila. Zbog toga je važno razlikovati fizičku vezu, mrežni prenos i dijagnostički servis.

Najkraće: Ethernet prenosi frejmove, IP omogućava mrežno adresiranje, TCP obezbeđuje pouzdanu vezu, DoIP organizuje dijagnostički prenos, a UDS definiše šta želimo da ECU uradi.

Reference