logo

CAN (Controller Area Network) protokol

CAN je kratica za Područna mreža kontrolera protokol. To je protokol koji su razvili Robert Bosch oko 1986. CAN protokol je standard koji omogućuje mikrokontroleru i drugim uređajima da međusobno komuniciraju bez glavnog računala. Značajka koja čini CAN protokol jedinstvenim među ostalim komunikacijskim protokolima je vrsta sabirnice emitiranja. Ovdje emitiranje znači da se informacije prenose do svih čvorova. Čvor može biti senzor, mikrokontroler ili pristupnik koji računalu omogućuje komunikaciju preko mreže putem USB kabela ili ethernet priključka. CAN je protokol baziran na porukama, što znači da poruka nosi identifikator poruke, a na temelju identifikatora se odlučuje o prioritetu. Nema potrebe za identifikacijom čvora u CAN mreži, tako da ga je vrlo lako umetnuti ili izbrisati iz mreže. To je serijski poludupleksni i asinkroni tip komunikacijskog protokola. CAN je dvožilni komunikacijski protokol jer je CAN mreža povezana preko dvožične sabirnice. Žice su upredene parice s karakterističnom impedancijom od 120Ω spojene na svakom kraju. U početku je uglavnom bio dizajniran za komunikaciju unutar vozila, ali sada se koristi u mnogim drugim kontekstima. Poput UDS-a i KWP 2000, MOŽE se koristiti i za dijagnostiku na vozilu.

Zašto MOŽE?

Potreba za centraliziranim standardnim komunikacijskim protokolom pojavila se zbog porasta broja elektroničkih uređaja. Na primjer, može postojati više od 7 TCU za različite podsustave kao što su nadzorna ploča, kontrola prijenosa, upravljačka jedinica motora i još mnogo toga u modernom vozilu. Ako su svi čvorovi povezani jedan na jedan, tada bi brzina komunikacije bila vrlo visoka, ali bi složenost i cijena žica bili vrlo visoki. U gornjem primjeru, za jednu nadzornu ploču potrebno je 8 konektora, tako da je za rješavanje ovog problema uveden CAN kao centralizirano rješenje koje zahtijeva dvije žice, tj. CAN high i CAN low. Rješenje korištenja CAN protokola prilično je učinkovito zbog prioritizacije poruka, a fleksibilno jer se čvor može umetnuti ili ukloniti bez utjecaja na mrežu.

Primjene CAN protokola

U početku je CAN protokol dizajniran za rješavanje komunikacijskih problema koji se javljaju unutar vozila. Ali kasnije, zbog mogućnosti koje nudi, koristi se u raznim drugim područjima. Sljedeće su primjene CAN protokola:

sta je f5 na tipkovnici
  • Automobili (osobna vozila, kamioni, autobusi)
  • Elektronička oprema za zrakoplovstvo i navigaciju
  • Industrijska automatizacija i mehaničko upravljanje
  • Dizalo i pokretne stepenice
  • Automatizacija zgrada
  • Medicinski instrumenti i oprema
  • Pomorska, medicinska, industrijska, medicinska

CAN slojevita arhitektura

Kao što znamo da je OSI model dijeli komunikacijski sustav na 7 različitih slojeva. Ali CAN slojevita arhitektura sastoji se od dva sloja, tj.

Razumimo oba sloja.

  • Sloj podatkovne veze: Ovaj sloj je odgovoran za prijenos podataka između čvorova. Omogućuje vam uspostavljanje i prekid veze. Također je odgovoran za otkrivanje i ispravljanje grešaka koje se mogu pojaviti na fizičkom sloju. Sloj podatkovne veze podijeljen je na dva podsloja:
      MAC:MAC je kratica za Media Access Control. Definira kako uređaji u mreži dobivaju pristup mediju. Omogućuje enkapsulaciju i dekapsulaciju podataka, otkrivanje pogrešaka i signalizaciju.
  • LLC:LLC je kratica za kontrolu logičke veze. Odgovoran je za filtriranje prihvaćanja okvira, obavijest o preopterećenju i upravljanje oporavkom.
  • Fizički sloj: Fizički sloj odgovoran je za prijenos neobrađenih podataka. Definira specifikacije za parametre poput razine napona, vremena, brzine prijenosa podataka i konektora.

CAN specifikacije definiraju CAN protokol i CAN fizički sloj, koji su definirani u CAN standardu ISO 11898. ISO 11898 ima tri dijela:

  • ISO 11898-1: Ovaj dio sadrži specifikaciju sloja podatkovne veze i veze fizičkog signala.
  • ISO 11898-2: Ovaj dio dolazi pod CAN fizički sloj za CAN velike brzine. Brzi CAN omogućuje prijenos podataka do 1 Mbps koji se koristi u pogonskom sustavu i području punjenja vozila.
  • ISO 11898-3: Ovaj dio također dolazi pod CAN fizički sloj za CAN niske brzine. Omogućuje brzinu prijenosa podataka do 125 kbps, a CAN niske brzine koristi se tamo gdje brzina komunikacije nije kritičan faktor.

CiA DS-102: Puni oblik CiA je CAN u automatizaciji, koji definira specifikacije za CAN konektor.

Što se implementacije tiče, CAN kontroler i CAN primopredajnik implementirani su u softver uz pomoć aplikacije, operativnog sustava i funkcija upravljanja mrežom.

CAN Uokvirivanje

Hajdemo razumjeti strukturu CAN okvira.

CAN protokol
    SOF:SOF označava početak okvira, što označava da je novi okvir unesen u mrežu. Ima 1 bit.Identifikator:Standardni format podataka definiran prema specifikaciji CAN 2.0 A koristi 11-bitni identifikator poruke za arbitražu. U osnovi, ovaj identifikator poruke postavlja prioritet okvira podataka.RTR:RTR je kratica za Remote Transmission Request, koja definira vrstu okvira, bilo da se radi o podatkovnom okviru ili udaljenom okviru. Od 1 bita je.Kontrolno polje:Ima korisnički definirane funkcije.
      IĆI:IDE bit u kontrolnom polju označava proširenje identifikatora. Dominantni IDE bit definira 11-bitni standardni identifikator, dok recesivni IDE bit definira 29-bitni prošireni identifikator.DLC:DLC je kratica za Data Length Code, koja definira duljinu podataka u podatkovnom polju. Sastoji se od 4 bita.Podatkovno polje:Podatkovno polje može sadržavati do 8 bajtova.
    CRC polje:Podatkovni okvir također sadrži polje za provjeru cikličke redundancije od 15 bita, koje se koristi za otkrivanje oštećenja ako se dogodi tijekom vremena prijenosa. Pošiljatelj će izračunati CRC prije slanja podatkovnog okvira, a primatelj također izračunava CRC i zatim uspoređuje izračunati CRC s CRC-om primljenim od pošiljatelja. Ako se CRC ne podudara, tada će prijemnik generirati pogrešku.ACK polje:Ovo je primateljeva potvrda. U drugim protokolima, poseban paket za potvrdu se šalje nakon primitka svih paketa, ali u slučaju CAN protokola, ne šalje se poseban paket za potvrdu.EOF:EOF označava kraj okvira. Sadrži 7 uzastopnih recesivnih bitova poznatih kao kraj okvira.

Sada ćemo vidjeti kako se podaci prenose kroz CAN mrežu.

CAN protokol

CAN mreža se sastoji od više CAN čvorova. U gornjem slučaju, razmotrili smo tri CAN čvora i nazvali ih kao čvor A, čvor B i čvor C. CAN čvor se sastoji od tri elementa koja su navedena u nastavku:

  • Domaćin
    Domaćin je mikrokontroler ili mikroprocesor koji pokreće neku aplikaciju za obavljanje određenog posla. Domaćin odlučuje što primljena poruka znači i koju poruku treba poslati sljedeću.
  • CAN kontroler
    CAN kontroler se bavi komunikacijskim funkcijama koje opisuje CAN protokol. Također pokreće prijenos ili primanje CAN poruka.
  • CAN primopredajnik
    CAN primopredajnik odgovoran je za prijenos ili prijem podataka na CAN sabirnici. Pretvara podatkovni signal u tok podataka prikupljenih iz CAN sabirnice koje CAN kontroler može razumjeti.

U gornjem dijagramu, neoklopljeni kabel s upredenom paricom koristi se za prijenos ili primanje podataka. Također je poznata kao CAN sabirnica, a CAN sabirnica se sastoji od dvije linije, tj. CAN niske linije i CAN visoke linije, koje su također poznate kao CANH odnosno CANL. Prijenos se događa zbog diferencijalnog napona koji se primjenjuje na te vodove. CAN koristi kabel upredene parice i diferencijalni napon zbog svog okruženja. Na primjer, u automobilu, motor, sustav paljenja i mnogi drugi uređaji mogu uzrokovati gubitak i oštećenje podataka zbog buke. Uvijanje dviju linija također smanjuje magnetsko polje. Sabirnica je završena s otporom od 120Ω na svakom kraju.

CAN karakteristike

CAN protokol

Uz pomoć diferencijalnog napona utvrdit ćemo kako se 0 i 1 prenose kroz CAN sabirnicu. Gornja slika je grafikon napona koji prikazuje razinu napona niskog i visokog CAN-a. U CAN terminologiji, logika 1 se kaže da je recesivna dok je logika 0 dominantna. Kada se CAN high line i CAN low line dovode s 2,5 volta, tada bi stvarni diferencijalni napon bio nula volta. Nula volta na CAN sabirnici čita se od strane CAN primopredajnika kao recesivna ili logička 1. Nula volta na CAN sabirnici je idealno stanje sabirnice. Kada se visoki napon CAN-a povuče do 3,5 volta, a niski napon CAN-a spusti na 1,5 volta, tada bi stvarni diferencijalni napon sabirnice bio 2 volta. CAN primopredajnik ga tretira kao dominantni bit ili logičku 0. Ako se stanje sabirnice dosegne do dominantne ili logičke 0, tada bi bilo koji drugi čvor postao nemoguć prijelaz u recesivno stanje.

arraylist java sortiranje

Ključne točke naučene iz karakteristika CAN-a

  • Logika 1 je recesivno stanje. Za prijenos 1 na CAN sabirnici, CAN visoki i CAN niski trebaju se primijeniti s 2,5 V.
  • Logička 0 je dominantno stanje. Za prijenos 0 na CAN sabirnici, CAN visoki treba primijeniti na 3,5 V, a CAN niski na 1,5 V.
  • Idealno stanje sabirnice je recesivno.
  • Ako čvor dosegne dominantno stanje, ne može se vratiti u recesivno stanje pomoću bilo kojeg drugog čvora.

Logika CAN sabirnice

CAN protokol
CAN protokol

Iz gornjeg scenarija saznajemo da dominantno stanje prepisuje recesivno stanje. Kada čvor šalje dominantni i recesivni bit istovremeno, sabirnica ostaje dominantna. Recesivna razina javlja se samo kada svi čvorovi pošalju recesivni bit. Takva je logika poznata kao I logika, a fizički je implementirana kao otvoreni kolektorski krug.

CAN komunikacijski princip

Kao što znamo, poruka se šalje na temelju prioriteta postavljenog u arbitražnom polju. Za standardni okvir, identifikator poruke je 11 bita, dok je za prošireni okvir, identifikator poruke 29 bita. Omogućuje dizajneru sustava da dizajnira identifikator poruke u samom dizajnu. Što je manji identifikator poruke, veći bi bio prioritet poruke.

Shvatimo kako arbitraža funkcionira kroz dijagram toka.

CAN (Controller Area Network) protokol

Pošiljatelj želi poslati poruku i čeka da CAN sabirnica postane neaktivna. Ako je CAN sabirnica u stanju mirovanja, tada pošiljatelj šalje SOF ili dominantni bit za pristup sabirnici. Zatim šalje bit identifikatora poruke u bitu najveće važnosti. Ako čvor otkrije dominantni bit na sabirnici dok je odašiljao recesivni bit, to znači da je čvor izgubio arbitražu i prestaje slati daljnje bitove. Pošiljatelj će pričekati i ponovno poslati poruku kada se autobus oslobodi.

Primjer CAN arbitraže

CAN protokol

Ako uzmemo u obzir tri čvora, tj. Čvor 1, Čvor 2 i Čvor 3, identifikatori poruka ovih čvorova su 0x7F3, 0x6B3 i 0x6D9.

CAN protokol

Prijenos sva tri čvora s bitom najveće važnosti prikazan je na gornjem dijagramu.

string.format java

jedanaestthbit: Kako su sva tri bita čvorova recesivna, tako će bit sabirnice također ostati recesivan.

10thbit: Svi čvorovi imaju 10. bit kao recesivan, tako da će sabirnica također ostati recesivna.

9thbit: Čvor 1 ima recesivni bit dok ostali čvorovi imaju dominantni bit, tako da će sabirnica također ostati dominantna. U ovom slučaju, čvor 1 je izgubio arbitražu, pa prestaje slati bitove.

8thbit: I čvor 2 i čvor 3 šalju recesivni bit, tako da će stanje sabirnice ostati recesivno.

7thbit: Čvor 2 šalje dominantni bit dok je čvor 3 poslao recesivni bit, tako da će stanje sabirnice ostati dominantno. U ovom slučaju, čvor 3 je izgubio arbitražu, pa prestaje slati poruku, dok je čvor 2 dobio arbitražu, što znači da će nastaviti držati sabirnicu dok se poruka ne primi.