logo

Protokol CAN (Controller Area Network).

CAN pomeni Območno omrežje krmilnika protokol. Gre za protokol, ki so ga razvili Robert Bosch okoli leta 1986. Protokol CAN je standard, zasnovan tako, da mikrokrmilniku in drugim napravam omogoča medsebojno komunikacijo brez gostiteljskega računalnika. Značilnost, zaradi katere je protokol CAN edinstven med drugimi komunikacijskimi protokoli, je oddajna vrsta vodila. Tukaj oddajanje pomeni, da se informacije prenesejo na vsa vozlišča. Vozlišče je lahko senzor, mikrokrmilnik ali prehod, ki računalniku omogoča komunikacijo prek omrežja prek kabla USB ali ethernetnih vrat. CAN je protokol, ki temelji na sporočilih, kar pomeni, da sporočilo nosi identifikator sporočila in na podlagi identifikatorja se odloča o prioriteti. Identifikacija vozlišča v omrežju CAN ni potrebna, zato ga je zelo enostavno vstaviti ali izbrisati iz omrežja. Je serijski poldupleksni in asinhroni tip komunikacijskega protokola. CAN je dvožilni komunikacijski protokol, saj je omrežje CAN povezano prek dvožičnega vodila. Žice so sukani par, ki ima karakteristično impedanco 120Ω, povezan na vsakem koncu. Sprva je bil zasnovan predvsem za komunikacijo v vozilih, zdaj pa se uporablja v številnih drugih kontekstih. Tako kot UDS in KWP 2000 se LAHKO uporablja tudi za vgrajeno diagnostiko.

Zakaj LAHKO?

Potreba po centraliziranem standardnem komunikacijskem protokolu je nastala zaradi povečanja števila elektronskih naprav. Na primer, v sodobnem vozilu je lahko več kot 7 TCU za različne podsisteme, kot so armaturna plošča, krmiljenje menjalnika, krmilna enota motorja in še veliko več. Če so vsa vozlišča povezana ena proti ena, bi bila hitrost komunikacije zelo visoka, vendar bi bila kompleksnost in cena žic zelo visoka. V zgornjem primeru ena armaturna plošča zahteva 8 priključkov, zato je bil za rešitev te težave uveden CAN kot centralizirana rešitev, ki zahteva dve žici, tj. CAN high in CAN low. Rešitev uporabe protokola CAN je precej učinkovita zaradi prednostnega določanja sporočil in prilagodljiva, saj je vozlišče mogoče vstaviti ali odstraniti, ne da bi to vplivalo na omrežje.

Uporaba protokola CAN

Sprva je bil protokol CAN zasnovan za reševanje težav s komunikacijo, ki se pojavljajo v vozilih. Kasneje pa se zaradi lastnosti, ki jih ponuja, uporablja na različnih drugih področjih. Sledijo aplikacije protokola CAN:

  • Avtomobilizem (osebna vozila, tovornjaki, avtobusi)
  • Elektronska oprema za letalstvo in navigacijo
  • Industrijska avtomatizacija in mehanski nadzor
  • Dvigalo in tekoče stopnice
  • Avtomatizacija zgradb
  • Medicinski instrumenti in oprema
  • Morski, medicinski, industrijski, medicinski

Večplastna arhitektura CAN

Kot vemo, da je model OSI komunikacijski sistem razdeli na 7 različnih plasti. Toda večplastna arhitektura CAN je sestavljena iz dveh plasti, tj.

Razumejmo obe plasti.

  • Sloj podatkovne povezave: Ta sloj je odgovoren za prenos podatkov med vozlišči. Omogoča vam vzpostavitev in prekinitev povezave. Odgovoren je tudi za odkrivanje in odpravljanje napak, ki se lahko pojavijo na fizični ravni. Plast podatkovne povezave je razdeljena na dve podplasti:
      MAC:MAC pomeni nadzor dostopa do medijev. Določa, kako naprave v omrežju pridobijo dostop do medija. Omogoča enkapsulacijo in dekapsulacijo podatkov, odkrivanje napak in signalizacijo.
  • LLC:LLC pomeni nadzor logične povezave. Odgovoren je za filtriranje sprejemljivosti okvirov, obveščanje o preobremenitvi in ​​upravljanje obnovitve.
  • Fizična plast: fizična plast je odgovorna za prenos neobdelanih podatkov. Določa specifikacije za parametre, kot so nivo napetosti, čas, hitrost prenosa podatkov in konektor.

CAN specifikacije določajo CAN protokol in CAN fizično plast, ki sta definirana v CAN standardu ISO 11898. ISO 11898 ima tri dele:

java string append
  • ISO 11898-1: Ta del vsebuje specifikacijo plasti podatkovne povezave in fizične signalne povezave.
  • ISO 11898-2: Ta del spada pod fizični sloj CAN za CAN visoke hitrosti. Visokohitrostni CAN omogoča hitrost prenosa podatkov do 1 Mbps, ki se uporablja v pogonskem sistemu in območju polnjenja vozila.
  • ISO 11898-3: Ta del spada tudi pod fizično plast CAN za CAN z nizko hitrostjo. Omogoča hitrost prenosa podatkov do 125 kbps, nizkohitrostni CAN pa se uporablja tam, kjer hitrost komunikacije ni kritičen dejavnik.

CiA DS-102: polna oblika CiA je CAN v avtomatizaciji, ki določa specifikacije za konektor CAN.

Kar zadeva implementacijo, sta CAN krmilnik in CAN sprejemnik implementirana v programski opremi s pomočjo funkcij aplikacije, operacijskega sistema in upravljanja omrežja.

CAN okvirjanje

Razumejmo strukturo okvirja CAN.

CAN protokol
    SOF:SOF pomeni začetek okvira, kar pomeni, da je nov okvir vnesen v omrežje. Je 1 bit.Identifikator:Standardni format podatkov, opredeljen v specifikaciji CAN 2.0 A, za arbitražo uporablja 11-bitni identifikator sporočila. V bistvu ta identifikator sporočila nastavi prednost podatkovnega okvira.RTR:RTR je kratica za Remote Transmission Request, ki določa vrsto okvirja, ne glede na to, ali gre za podatkovni okvir ali oddaljeni okvir. Je 1-bitna.Kontrolno polje:Ima uporabniško določene funkcije.
      POJDI:Bit IDE v kontrolnem polju pomeni razširitev identifikatorja. Dominantni bit IDE definira 11-bitni standardni identifikator, medtem ko recesivni bit IDE definira 29-bitni razširjeni identifikator.DLC:DLC je kratica za Data Length Code, ki določa dolžino podatkov v podatkovnem polju. Je 4 bitov.Podatkovno polje:Podatkovno polje lahko vsebuje do 8 bajtov.
    Polje CRC:Podatkovni okvir vsebuje tudi 15-bitno polje za preverjanje ciklične redundance, ki se uporablja za odkrivanje okvare, če do nje pride med časom prenosa. Pošiljatelj bo izračunal CRC, preden pošlje podatkovni okvir, prejemnik pa prav tako izračuna CRC in nato primerja izračunani CRC s CRC, prejetim od pošiljatelja. Če se CRC ne ujema, bo sprejemnik ustvaril napako.Polje ACK:To je prejemnikova potrditev. Pri drugih protokolih se po prejemu vseh paketov pošlje ločen paket za potrditev, v primeru protokola CAN pa se za potrditev ne pošlje ločen paket.EOF:EOF pomeni konec okvira. Vsebuje 7 zaporednih recesivnih bitov, znanih kot konec okvira.

Zdaj bomo videli, kako se podatki prenašajo po omrežju CAN.

CAN protokol

Omrežje CAN je sestavljeno iz več vozlišč CAN. V zgornjem primeru smo upoštevali tri vozlišča CAN in jih poimenovali kot vozlišče A, vozlišče B in vozlišče C. Vozlišče CAN je sestavljeno iz treh elementov, ki so podani spodaj:

  • Gostitelj
    Gostitelj je mikrokrmilnik ali mikroprocesor, ki izvaja neko aplikacijo za opravljanje določenega dela. Gostitelj se odloči, kaj prejeto sporočilo pomeni in katero sporočilo naj pošlje naslednje.
  • CAN krmilnik
    CAN krmilnik se ukvarja s komunikacijskimi funkcijami, ki jih opisuje CAN protokol. Prav tako sproži prenos ali sprejem sporočil CAN.
  • Oddajnik CAN
    Oddajno-sprejemna enota CAN je odgovorna za prenos ali sprejem podatkov na vodilu CAN. Podatkovni signal pretvori v tok podatkov, zbranih iz vodila CAN, ki jih krmilnik CAN razume.

V zgornjem diagramu se za prenos ali sprejemanje podatkov uporablja neoklopljen dvožilni kabel. Znan je tudi kot vodilo CAN, vodilo CAN pa je sestavljeno iz dveh linij, tj. nizke linije CAN in visoke linije CAN, ki sta znani tudi kot CANH oziroma CANL. Do prenosa pride zaradi diferenčne napetosti, ki se uporablja za te linije. CAN uporablja prepleteni par in diferencialno napetost zaradi svojega okolja. Na primer, v avtomobilu lahko motor, sistem za vžig in številne druge naprave povzročijo izgubo in poškodbo podatkov zaradi šuma. Zvijanje obeh linij tudi zmanjša magnetno polje. Vodilo je zaključeno z uporom 120Ω na vsakem koncu.

Značilnosti CAN

CAN protokol

S pomočjo diferenčne napetosti bomo ugotovili, kako se 0 in 1 prenašata po CAN vodilu. Zgornja slika je graf napetosti, ki prikazuje nivo napetosti CAN low in CAN high. V terminologiji CAN se reče, da je logika 1 recesivna, medtem ko je logika 0 dominantna. Ko sta CAN high line in CAN low line priključena z 2,5 volti, bi bila dejanska diferencialna napetost nič voltov. Nič voltov na vodilu CAN oddajnik-sprejemnik CAN bere kot recesivno ali logično 1. Nič voltov na vodilu CAN je idealno stanje vodila. Ko se visokonapetostni vod CAN dvigne na 3,5 volta in nizkonapetostni vodnik CAN zniža na 1,5 volta, bi bila dejanska diferencialna napetost vodila 2 volta. Oddajnik-sprejemnik CAN ga obravnava kot dominantni bit ali logično 0. Če je stanje vodila doseženo na dominantno ali logično 0, bi postalo nemogoče premakniti se v recesivno stanje s katerim koli drugim vozliščem.

Ključne točke, pridobljene iz značilnosti CAN

  • Logika 1 je recesivno stanje. Za prenos 1 na vodilo CAN je treba tako CAN high kot CAN low uporabiti z 2,5 V.
  • Logična 0 je prevladujoče stanje. Za prenos 0 na vodilu CAN je treba CAN high uporabiti pri 3,5 V in CAN low pri 1,5 V.
  • Idealno stanje vodila je recesivno.
  • Če vozlišče doseže dominantno stanje, se ne more vrniti v recesivno stanje z nobenim drugim vozliščem.

Logika vodila CAN

CAN protokol
CAN protokol

Iz zgornjega scenarija izvemo, da dominantno stanje prepiše recesivno stanje. Ko vozlišče pošlje dominantni in recesivni bit hkrati, ostane vodilo dominantno. Recesivni nivo se pojavi šele, ko vsa vozlišča pošljejo recesivni bit. Takšna logika je znana kot logika IN, fizično pa je izvedena kot vezje z odprtim kolektorjem.

očisti predpomnilnik npm

Načelo komunikacije CAN

Kot vemo, je sporočilo poslano na podlagi prioritete, določene v polju arbitraže. Za standardni okvir je identifikator sporočila 11-bitni, medtem ko je za razširjeni okvir 29-bitni identifikator sporočila. Načrtovalcu sistema omogoča oblikovanje identifikatorja sporočila pri samem načrtovanju. Manjši kot je identifikator sporočila, višja bi bila prioriteta sporočila.

S pomočjo diagrama poteka razumemo, kako deluje arbitraža.

Protokol CAN (Controller Area Network).

Pošiljatelj želi poslati sporočilo in čaka, da se vodilo CAN ustavi. Če je vodilo CAN v mirovanju, pošiljatelj pošlje SOF ali dominantni bit za dostop do vodila. Nato pošlje bit identifikatorja sporočila v najpomembnejšem bitu. Če vozlišče zazna dominantni bit na vodilu, medtem ko je oddalo recesivni bit, to pomeni, da je vozlišče izgubilo arbitražo in prenehalo prenašati nadaljnje bite. Pošiljatelj bo počakal in znova poslal sporočilo, ko bo avtobus prost.

Primer arbitraže CAN

CAN protokol

Če upoštevamo tri vozlišča, tj. vozlišče 1, vozlišče 2 in vozlišče 3, so identifikatorji sporočil teh vozlišč 0x7F3, 0x6B3 in 0x6D9.

CAN protokol

Prenos vseh treh vozlišč z najpomembnejšim bitom je prikazan v zgornjem diagramu.

enajstthbit: Ker so vsi trije biti vozlišč recesivni, bo tudi bit vodila ostal recesiven.

10thbit: Vsa vozlišča imajo 10. bit kot recesiven, tako da bo tudi vodilo ostalo recesivno.

9thbit: Vozlišče 1 ima recesivni bit, medtem ko imajo druga vozlišča dominanten bit, tako da bo tudi vodilo ostalo dominantno. V tem primeru je vozlišče 1 izgubilo arbitražo, zato preneha pošiljati bite.

seznam v Javi

8thbit: Tako vozlišče 2 kot vozlišče 3 pošiljata recesivni bit, tako da bo stanje vodila ostalo recesivno.

7thbit: vozlišče 2 pošilja dominantni bit, medtem ko je vozlišče 3 poslalo recesivni bit, tako da bo stanje vodila ostalo prevladujoče. V tem primeru je vozlišče 3 izgubilo arbitražo, zato preneha pošiljati sporočilo, medtem ko je vozlišče 2 zmagalo v arbitraži, kar pomeni, da bo še naprej zadrževalo vodilo, dokler sporočilo ne bo prejeto.