CAN protokol – Fizički sloj

CAN fizički sloj – osnova pouzdane komunikacije

Kada govorimo o CAN protokolu tu se logičke nule i jedinice pretvaraju u električne signale koji se prenose kroz kablove. Upravo fizički sloj definiše kako su čvorovi povezani, kakvi su nivoi signala, kako se sprečavaju refleksije i zašto CAN može pouzdano da radi i u veoma "prljavom" elektromagnetnom okruženju automobila.

CAN fizički sloj definiše kablove, terminaciju, naponske nivoe, topologiju i ograničenja dužine/brzine kako bi komunikacija između više čvorova bila stabilna i otporna na smetnje.

CAN i OSI referentni model

Kada posmatramo OSI referentni model, važno je naglasiti da CAN protokol izvorno ne pokriva svih sedam slojeva. On je specifično dizajniran da rešava zadatke na najnižim nivoima kako bi se osigurala maksimalna brzina i pouzdanost u realnom vremenu.

CAN se primarno prostire kroz prva dva sloja OSI modela:

OSI sloj CAN komponenta Glavna funkcija
7. Aplikativni CANopen, J1939, DeviceNet... Interfejs ka korisniku, senzoru ili mašini
2. Sloj veze podataka CAN kontroler Arbitraža, format frejma, ACK, provera grešaka, filtriranje
1. Fizički Kablovi, konektori, primopredajnik Prenos naponskih impulsa i diferencijalnog signala

U standardnom CAN protokolu, slojevi od 3 do 6 uglavnom ne postoje kao zasebni, već ih u praksi preuzimaju protokoli višeg nivoa kao što su CANopen, J1939 i DeviceNet.

Šta obuhvata CAN fizički sloj?

Fizički sloj formira hardverski interfejs koji uspostavlja vezu između više čvorova na mreži. Za komunikaciju na CAN liniji potrebna su najmanje dva čvora, dok ih u realnim sistemima može biti mnogo više.

Komunikaciona linija se sastoji od upredenog para žica, koje se nazivaju:

  • CAN H (High)
  • CAN L (Low)
CAN sistem sa tri čvora
Upredena parica

Na oba kraja komunikacione linije nalaze se završni otpornici, a cela fizička struktura mreže mora biti postavljena tako da se refleksije signala svedu na minimum.

CAN sistem sa tri čvora
CAN mreža sistem sa tri čvora

Završetak CAN linije (terminacija)

Linija se terminira da bi se smanjile refleksije signala. Obično je na svakom kraju magistrale priključen po jedan otpornik od 120 Ω. Iako snaga otpornika nije presudna u normalnom radu, pri izboru treba uzeti u obzir moguće kratke spojeve i teške uslove rada.

  • Najčešća vrednost: 120 Ω
  • Tipična snaga: 1/4 W
  • Tipična tolerancija: 5%
  • Praktična preporuka: veća snaga, npr. 1 W, radi bolje robusnosti
Važno pravilo: Dva otpornika od 120 Ω, postavljena na oba kraja glavne magistrale, daju ekvivalentnu otpornost mreže od oko 60 Ω kada se meri između CAN H i CAN L na isključenoj mreži.

Standardni završetak

Najčešće korišćena metoda terminacije je standardni završetak: na svakom kraju glavne magistrale nalazi se po jedan otpornik od 120 Ω.

Standardni završetak CAN linije
Standardni završetak CAN linije

Podeljeni završetak (Split Termination)

Sve popularniji je i podeljeni završetak, gde se umesto jednog otpornika od 120 Ω koriste dva otpornika od 60 Ω i kondenzator prema masi na svakom kraju linije.

Prednost ove metode je to što se eliminiše šum visoke frekvencije sa komunikacionih linija i poboljšava elektromagnetna kompatibilnost sistema.

Obično se koristi kondenzator od 10 nF, koji daje odgovarajuću 3 dB tačku oko 1,1 Mb/s. Važno je da otpornici budu dobro upareni kako se ne bi smanjila otpornost na smetnje.

Podeljeni završetak CAN linije
Podeljeni završetak linije

Pristrasni podeljeni završetak

Kod pristrasnog podeljenog završetka koriste se razdelnik napona i kondenzator na svakom kraju linije. Kao i split terminacija, i ovaj metod povećava elektromagnetnu kompatibilnost komunikacione linije.

Pristrasni podeljeni završetak CAN linije
Pristrasni podeljeni završetak linije

Gde terminatori moraju da budu postavljeni?

Završni otpornici moraju da budu postavljeni na krajevima najduže glavne magistrale. Ne postavljaju se na krajeve kratkih grana niti bilo gde usput.

Pogrešne vrednosti otpornika ili pogrešan položaj terminacije mogu da izazovu ozbiljne greške na liniji. Ako se terminator nalazi na pogrešnom mestu, električni talas se odbija od krajeva žice i vraća nazad, sudarajući se sa novim signalom.

Brza provera terminacije voltmetrom

Ispravan završetak linije može se proveriti pomoću digitalnog voltmetra podešenog za merenje otpora. Merenje se vrši između CAN H i CAN L na isključenoj mreži, bez napajanja.

Izmeren otpor između
CAN H i CAN L
Tumačenje Napomena
60 Ω Mreža je pravilno terminisana Dva terminatora od 120 Ω su prisutna
120 Ω Nedostaje jedan terminator Čest kvar nakon intervencije na instalaciji
40 Ω Postoji višak terminatora Na mreži su verovatno tri otpornika
Beskonačno / OL Prekid u liniji Mreža je fizički prekinuta ili rastavljena

Uzemljenje i oklop kabla

Iako se kod većine primena CAN sistema koriste neoklopljeni kablovi, za mnoge teške radne uslove potrebno je koristiti oklopljene, širmovane, kablove. Oklop kabla tada mora da bude uzemljen na jednom mestu, i to što bliže kablu. Na taj način se sprečavaju parazitske struje i petlje uzemljenja koje mogu da nastanu ako je oklop povezan na masu na više mesta.

Diferencijalni prenos signala

CAN koristi diferencijalni napon, što znači da se signal ne tumači kao apsolutni napon jedne žice prema masi, već kao razlika napona između dve žice:

Vdiff = CAN H − CAN L

CAN linija definiše dva logička stanja:

  • Recesivno stanje – logička "1"
  • Dominantno stanje – logička "0"

Recesivno stanje (logička "1")

U recesivnom stanju obe linije su približno na istom potencijalu:

  • CAN H ≈ 2,5 V
  • CAN L ≈ 2,5 V

Pošto su naponi skoro isti, diferencijalni napon je približno:

Vdiff ≈ 0 V

Ovo je pasivno stanje linije. Kada nijedan čvor ne šalje poruku, mreža podrazumevano ostaje u recesivnom stanju. U praksi, recesivni diferencijalni izlazni napon predajnika je manji od 0,05 V.

Dominantno stanje (logička "0")

U dominantnom stanju primopredajnik aktivno podiže napon na CAN H i spušta napon na CAN L:

  • CAN H ≈ 3,5 V
  • CAN L ≈ 1,5 V

Tada diferencijalni napon iznosi približno:

Vdiff ≈ 2 V

U praksi, dominantni diferencijalni izlazni napon obično se nalazi između 1,5 V i 3,0 V. Dominantno stanje "pobeđuje" recesivno, što je ključni mehanizam za arbitražu bez gubitka podataka.

Nivoi signala CAN linije
Nivoi signala CAN linije
Zašto je ovo važno? Ako jedan čvor šalje recesivno stanje, a drugi dominantno, na magistrali će se očitati dominantno stanje. Upravo to omogućava CAN-u da rešava sukob više čvorova bez kolizije u klasičnom smislu.

Šta meriš na CAN H i CAN L linijama?

Kada na liniji nema prenosa poruka, i CAN H i CAN L treba da budu približno na polovini napajanja od 5 volti, odnosno oko 2,5 V.

CAN H napon

CAN H napon treba da iznosi oko 2,5 V kada nema prenosa poruka, odnosno kada je mreža u recesivnom stanju. To se može proveriti digitalnim voltmetrom ako je poznato da kontroler u tom trenutku ne emituje saobraćaj.

CAN L napon

CAN L napon u istom stanju takođe treba da iznosi približno 2,5 V.

CAN talasni oblik na osciloskopu

CAN signal se može posmatrati na osciloskopu povezivanjem sondi na CAN H i CAN L. Tokom dominantnog bita:

  • CAN H raste sa oko 2,5 V na oko 3,5 V
  • CAN L pada sa oko 2,5 V na oko 1,5 V

Zbog diferencijalnog prenosa, ove dve promene zajedno nose informaciju mnogo pouzdanije nego klasičan jednokanalni signal.

Zašto se koristi upredena parica?

Razlog zašto su CAN H i CAN L žice međusobno upredene nije samo mehanička praktičnost, već i otpornost na smetnje. Kada spoljašnji izvor elektromagnetnog šuma deluje na kabl, on uglavnom podjednako utiče na obe žice.

Pošto prijemnik ne posmatra apsolutni napon, već samo razliku između njih, taj zajednički šum se velikim delom poništava. Ova pojava poznata je kao Common-Mode Rejection.

Suština: CAN nije robustan samo zato što ima "dve žice", već zato što prijemnik gleda razliku između njih.

Impedansa i refleksije signala

Fizički sloj CAN-a ponaša se kao transmisiona linija. Standardni CAN kabl ima karakterističnu impedansu od 120 Ω, zbog čega se i završni otpornici biraju upravo te vrednosti.

Ako otpornik nije na pravom mestu ili nije odgovarajuće vrednosti, električni talas se odbija od kraja voda i vraća nazad. Taj odbijeni signal može da se sudari sa novim podacima, što dovodi do grešaka u komunikaciji i korupcije frejmova.

Brzina prenosa i maksimalna dužina mreže

Standard ISO 11898 propisuje da uređaji na CAN liniji mora biti u stanju da uspostave komunikaciju na kablu od oko 40 m na brzini od 1 Mb/s. U praksi se mogu postići i veće dužine, ali uz proporcionalno smanjenje brzine prenosa.

Brzina prenosa (kb/s) Trajanje jednog bita (μs) Maksimalna dužina mrežnog voda (m)
10 100 6700
20 50 3300
50 20 1300
125 8 530
250 4 270
500 2 130
1000 1 49

Drugim rečima, brzina komunikacije je direktno povezana sa dužinom kabla zbog vremena potrebnog da signal propagira kroz bakar. Ako je mreža duža, brzina mora biti manja kako bi svi čvorovi imali dovoljno vremena da "oslušnu" stanje magistrale.

Praktičan primer: Ako je potrebna mreža od nekoliko stotina metara, ne može se očekivati da će raditi na 1 Mb/s. Potrebno je spustiti brzinu kako bi arbitraža i sinhronizacija ostale pouzdane.

Topologija magistrale i dužina grana

CAN mreža zahteva linearnu bus topologiju. Za razliku od mreža koje koriste zvezdastu strukturu, CAN najbolje radi kada postoji jedna glavna magistrala, a čvorovi su povezani kratkim bočnim granama.

Dužina spoja kabla (stub line / ocep)

U aplikacijama velike brzine prenosa podataka, dužina ocepa postaje veoma važna. Pošto te grane nisu terminisane, na njima može doći do refleksije signala i posledičnih grešaka na magistrali.

Na maksimalnoj brzini od 1 Mb/s, dužina ocepa ne bi trebalo da bude veća od 0,3 m, dok maksimalna dužina magistrale iznosi oko 40 m.

Kod dugačkih kablova, mrežni vodovi treba da budu što bliže pravoj liniji da bi se moguće refleksije svele na minimum. Ako je potrebno proširiti mrežu, to se radi pomoću bridž uređaja ili repetitora.

Struktura CAN čvora

Čvor CAN linije sastoji se od CAN kontrolera i CAN primopredajnika. CAN kontroler je povezan sa mikrokontrolerom, dok je CAN primopredajnik povezan sa fizičkom CAN linijom.

Neki mikrokontroleri imaju ugrađen CAN kontroler, pa se CAN čvor tada može realizovati samo pomoću spoljnog CAN transceiver čipa. Ako mikrokontroler nema ugrađen CAN kontroler, tada su potrebni i poseban CAN kontroler i poseban primopredajnik.

Dostupni su i gotovi CAN moduli sa ugrađenim kontrolerom i primopredajnikom, koji sa mikrokontrolerom često komuniciraju preko SPI interfejsa.

Robusnost CAN fizičkog sloja u praksi

Pored osnovnih naponskih nivoa i terminacije, postoji nekoliko inženjerskih detalja koji CAN fizički sloj čine izuzetno robusnim u poređenju sa običnim serijskim komunikacijama.

1. Potiskivanje zajedničkog šuma

Zahvaljujući diferencijalnom prenosu i upredenoj parici, CAN veoma dobro odbija spoljne smetnje koje podjednako deluju na obe žice. To je jedan od glavnih razloga zašto može pouzdano da radi u vozilu, pored alternatora, motora, releja i paljenja.

2. Kontrola refleksija preko terminacije

Pošto je mreža transmisiona linija, pravilna terminacija i pravilno postavljanje otpornika direktno utiču na kvalitet komunikacije. Loša terminacija najčešće ne pravi "male probleme", već potpuno remeti saobraćaj pri većim brzinama.

3. Ograničenja dužine zbog propagation delay-a

Signal ne putuje trenutno. Zato dužina kabla mora biti usklađena sa bit tajmingom i brzinom prenosa. Što je mreža duža, to je više vremena potrebno da informacija stigne od jednog kraja do drugog.

4. Stroga bus topologija

CAN nije zamišljen za dugačke razgranate "zvezde". Svako ozbiljnije odstupanje od bus topologije stvara dodatne tačke refleksije i povećava verovatnoću grešaka.

5. Robusnost transceiver-a

Moderni CAN primopredajnici projektovani su da prežive veoma teške uslove rada:

  • kratak spoj CAN žice na masu ili akumulator
  • ESD pražnjenja pri servisiranju i montaži
  • teško EMI okruženje u automobilu ili industrijskoj opremi

Tipovi CAN mreža u automobilima

Iako se često govori samo o "CAN mreži", u automobilima zapravo postoji više različitih varijanti CAN komunikacije. Razlike nisu samo u brzini prenosa podataka, već i u fizičkom sloju: naponskim nivoima, načinu terminacije, otpornosti na kvarove i oblasti primene.

Različiti sistemi u vozilu imaju različite zahteve. Motor, ABS, ESP i menjač zahtevaju brzu i pouzdanu komunikaciju, dok komforni sistemi, poput vrata, sedišta, klime ili centralnog zaključavanja, mogu raditi na sporijim mrežama.

Važno: Oznake kao što su High Speed CAN i Low Speed CAN ne znače samo "brži" i "sporiji" CAN. One često označavaju i različit fizički sloj, drugačije naponske nivoe i drugačiju otpornost na kvarove instalacije.

Najčešće CAN varijante u automobilima

  • High Speed CAN – brza mreža za pogon i sigurnosne sisteme
  • Low Speed / Fault Tolerant CAN – sporija mreža za komforne sisteme
  • Single Wire CAN – jednožični CAN, češći kod nekih američkih vozila
  • CAN FD – modernija varijanta sa većom količinom podataka po frejmu

ISO 11898 standard

CAN komunikacija je definisana porodicom standarda ISO 11898. Različiti delovi ovog standarda opisuju različite nivoe i fizičke varijante CAN komunikacije.

Standard Opis Tipična primena
ISO 11898-1 Data link sloj Format frejmova, arbitraža, greške, ACK
ISO 11898-2 High Speed CAN fizički sloj Motor, ABS, ESP, menjač, gateway
ISO 11898-3 Low Speed / Fault Tolerant CAN Komforna elektronika i body sistemi
ISO 11898-5 Low Power High Speed CAN HS-CAN sa režimima smanjene potrošnje
ISO 11898-6 High Speed CAN sa selektivnim buđenjem Moduli koji se bude samo na određenu CAN poruku
ISO 11898-7 Single Wire CAN Jednožične automobilske mreže

High Speed CAN (ISO 11898-2)

High Speed CAN je najrasprostranjenija CAN mreža u automobilima. Koristi se tamo gde je potrebna brza, pouzdana i vremenski kritična komunikacija između modula.

Tipične brzine prenosa su:

  • 250 kb/s
  • 500 kb/s – veoma često u automobilima
  • 1 Mb/s – maksimalna standardna brzina klasičnog CAN-a

Gde se koristi High Speed CAN?

  • ECU motora
  • ABS / ESP modul
  • automatski menjač
  • električni servo upravljač
  • gateway modul
  • ADAS sistemi

Low Speed / Fault Tolerant CAN (ISO 11898-3)

Low Speed CAN se koristi za sisteme kod kojih brzina komunikacije nije toliko kritična. Njegova glavna prednost nije brzina, već sposobnost da mreža nastavi rad i u slučaju određenih kvarova na instalaciji. Zbog toga se često naziva Fault Tolerant CAN.

Tipične brzine su:

  • 50 kb/s
  • 83,3 kb/s
  • 125 kb/s

Za razliku od High Speed CAN-a, Low Speed / Fault Tolerant CAN je projektovan tako da može da nastavi komunikaciju čak i ako dođe do problema na jednoj od dve žice.

Mreža može raditi i u degradiranom režimu, na primer kada je:

  • jedna žica u prekidu
  • jedna žica kratko spojena na masu
  • jedna žica kratko spojena na napajanje

Naponski nivoi mogu se razlikovati od High Speed CAN-a, a signal u kvarnom režimu može postati asimetričan. Zato se ova mreža ne sme posmatrati potpuno istom logikom kao klasični HS-CAN.

Terminacija kod Fault Tolerant CAN-a takođe nije uvek izvedena kao dva klasična otpornika od 120 Ω na krajevima magistrale. Često se koriste interne otporske mreže unutar modula, zbog čega merenje otpora ne mora dati isti rezultat kao kod HS-CAN mreže.

Gde se koristi Low Speed CAN?

  • vrata
  • centralno zaključavanje
  • klima uređaj
  • sedišta
  • instrument tabla
  • body control module
Napomena za dijagnostiku: Nemoj automatski očekivati 60 Ω između CAN H i CAN L na svakoj CAN mreži u vozilu. To pravilo važi za klasični High Speed CAN, ali ne mora važiti za Low Speed / Fault Tolerant CAN.

Single Wire CAN (ISO 11898-7)

Single Wire CAN koristi samo jednu komunikacionu žicu i masu vozila kao referencu. Za razliku od klasičnog CAN-a, ovo nije diferencijalni prenos preko CAN H i CAN L para.

Tipična brzina Single Wire CAN mreže je oko 33,3 kb/s.

Pošto se koristi samo jedna žica, signal se meri u odnosu na masu. Tipični nivoi mogu biti:

  • recesivno stanje – približno 5 V
  • dominantno stanje – približno 0 V

Single Wire CAN se najčešće sreće kod pojedinih američkih vozila i koristi se za određene komforne, karoserijske ili dijagnostičke funkcije.

Razlika u odnosu na klasični CAN: Kod Single Wire CAN-a ne tražiš par CAN H / CAN L žica, niti meriš diferencijalni napon. Gledaš jednu signalnu liniju prema masi.

CAN FD (Flexible Data Rate)

CAN FD je modernija varijanta CAN protokola. Skraćenica FD znači Flexible Data Rate. Glavna ideja je da se zadrži osnovni CAN mehanizam arbitraže, ali da se omogući veća količina podataka i veća brzina prenosa u data delu frejma.

Kod klasičnog CAN-a maksimalna količina podataka u jednom frejmu je 8 bajtova. Kod CAN FD-a payload može biti do 64 bajta.

CAN FD koristi dva bit-rate segmenta:

  • Nominal Bit Rate (NBR) – koristi se tokom arbitraže
  • Data Bit Rate (DBR) – koristi se tokom prenosa podataka

U praksi, arbitražni deo najčešće ostaje na brzinama kao kod klasičnog CAN-a, na primer 500 kb/s ili 1 Mb/s, dok data deo može raditi znatno brže.

  • arbitražni deo – najčešće 500 kb/s ili 1 Mb/s
  • data deo – tipično od 2 Mb/s do 8 Mb/s, zavisno od implementacije
Napomena: Kod CAN FD-a ne postoji jedna univerzalna brzina koja važi za sva vozila i sve sisteme. Maksimalna realna brzina zavisi od CAN kontrolera, transceiver-a, dužine instalacije, kvaliteta topologije i zahteva proizvođača vozila.

CAN FD se koristi u novijim vozilima, naročito tamo gde moduli moraju da razmenjuju više podataka nego što klasični CAN praktično dozvoljava.

Gde se koristi CAN FD?

  • centralni gateway moduli
  • ADAS sistemi
  • radarski moduli
  • kamera moduli
  • moderni pogonski i sigurnosni sistemi
Nastavak teme: Kako moderni automobili postaju sve složeniji, CAN FD polako preuzima ulogu klasičnog CAN-a u sistemima koji zahtevaju veću brzinu prenosa i veći kapacitet podataka. Zbog sve češće primene u novim vozilima i rastućeg interesovanja među dijagnostičarima i autoelektričarima, CAN FD ćemo detaljno obraditi u posebnom članku na blogu.

Kratak pregled CAN varijanti u vozilu

Tip CAN mreže Standard Tipična brzina Tipična primena
High Speed CAN ISO 11898-2 250 kb/s – 1 Mb/s Motor, ABS, ESP, menjač, gateway
Low Speed / Fault Tolerant CAN ISO 11898-3 50 – 125 kb/s Komforni i body sistemi
Single Wire CAN ISO 11898-7 oko 33,3 kb/s Karoserijska elektronika, komfor, dijagnostika
CAN FD ISO 11898-1 / ISO 11898-2 fizički sloj arbitraža 500 kb/s – 1 Mb/s, data deo više Mb/s Noviji sistemi, ADAS, gateway, veća količina podataka

CAN varijante izvan automobila

CAN se ne koristi samo u automobilima. Postoji veliki broj protokola i sistema koji koriste CAN kao osnovu, ali definišu sopstveni aplikativni sloj, značenje poruka, identifikatore i pravila komunikacije.

Najpoznatiji su:

  • CANopen – industrijska automatizacija
  • DeviceNet – industrijske mreže
  • J1939 – kamioni, autobusi, poljoprivredne i radne mašine
  • NMEA 2000 – brodska elektronika

Ovi protokoli se u ovom tekstu neće detaljno obrađivati, jer ne menjaju osnovnu ideju fizičkog sloja, već definišu šta poruke znače i kako se uređaji logički ponašaju na CAN mreži.

Završna napomena

Kada se kaže "CAN", to ne mora uvek da znači istu stvar. U jednom vozilu mogu istovremeno postojati High Speed CAN za pogon, Low Speed ili Fault Tolerant CAN za komforne sisteme, CAN FD za moderne module i čak Single Wire CAN kod određenih proizvođača.

Zato je u dijagnostici veoma važno znati koju mrežu meriš. Ne očekuju se uvek isti naponski nivoi, ista brzina, ista terminacija i isti rezultat merenja otpora. Razumevanje tipa CAN mreže često je prvi korak ka pravilnoj dijagnostici komunikacionih grešaka.