logo

Protokol CAN (Controller Area Network).

Skratka CAN znamená Controller Area Network protokol. Je to protokol, ktorý bol vyvinutý spoločnosťou Robert Bosch okolo roku 1986. Protokol CAN je štandard navrhnutý tak, aby umožnil mikrokontroléru a iným zariadeniam vzájomnú komunikáciu bez akéhokoľvek hostiteľského počítača. Funkciou, ktorá robí protokol CAN jedinečným medzi ostatnými komunikačnými protokolmi, je typ vysielania zbernice. Tu vysielanie znamená, že informácie sa prenášajú do všetkých uzlov. Uzol môže byť senzor, mikrokontrolér alebo brána, ktorá umožňuje počítaču komunikovať cez sieť cez USB kábel alebo ethernetový port. CAN je protokol založený na správe, čo znamená, že správa nesie identifikátor správy a na základe identifikátora sa rozhoduje o priorite. V sieti CAN nie je potrebná identifikácia uzla, takže je veľmi jednoduché ho vložiť alebo odstrániť zo siete. Ide o sériový poloduplexný a asynchrónny typ komunikačného protokolu. CAN je dvojvodičový komunikačný protokol, keďže sieť CAN je pripojená cez dvojvodičovú zbernicu. Vodiče sú krútená dvojlinka s charakteristikou impedancie 120 Ω zapojená na každom konci. Pôvodne bol určený hlavne na komunikáciu v rámci vozidiel, ale teraz sa používa v mnohých iných kontextoch. Rovnako ako UDS a KWP 2000 sa dá použiť aj na palubnú diagnostiku.

škorica vs mate

Prečo MÔŽETE?

Potreba centralizovaného štandardného komunikačného protokolu vznikla z dôvodu nárastu počtu elektronických zariadení. Napríklad v modernom vozidle môže byť viac ako 7 TCU pre rôzne podsystémy, ako je prístrojová doska, ovládanie prevodovky, riadiaca jednotka motora a mnohé ďalšie. Ak sú všetky uzly spojené jeden k jednému, rýchlosť komunikácie by bola veľmi vysoká, ale zložitosť a náklady na káble by boli veľmi vysoké. Vo vyššie uvedenom príklade si jeden prístrojový panel vyžaduje 8 konektorov, takže na prekonanie tohto problému bolo zavedené CAN ako centralizované riešenie, ktoré vyžaduje dva vodiče, t. j. CAN high a CAN low. Riešenie pomocou protokolu CAN je pomerne efektívne vďaka prioritizácii správ a flexibilné, pretože uzol možno vložiť alebo odstrániť bez ovplyvnenia siete.

Aplikácie protokolu CAN

Pôvodne bol protokol CAN navrhnutý tak, aby sa zameral na komunikačný problém, ktorý sa vyskytuje vo vozidlách. Ale neskôr, vďaka funkciám, ktoré ponúka, sa používa v rôznych iných oblastiach. Nasledujú aplikácie protokolu CAN:

  • Automobilový priemysel (osobné vozidlá, nákladné autá, autobusy)
  • Elektronické zariadenia pre letectvo a navigáciu
  • Priemyselná automatizácia a mechanické riadenie
  • Výťah a eskalátory
  • Automatizácia budov
  • Lekárske nástroje a vybavenie
  • Námorné, lekárske, priemyselné, lekárske

CAN vrstvená architektúra

Ako vieme, že OSI model rozdeľuje komunikačný systém do 7 rôznych vrstiev. Ale vrstvená architektúra CAN pozostáva z dvoch vrstiev, t.j.

Pochopme obe vrstvy.

  • Vrstva dátového spojenia: Táto vrstva je zodpovedná za prenos dát z uzla do uzla. Umožňuje vám vytvoriť a ukončiť spojenie. Je tiež zodpovedný za detekciu a opravu chýb, ktoré sa môžu vyskytnúť na fyzickej vrstve. Vrstva dátového spojenia je rozdelená na dve podvrstvy:
      MAC:MAC je skratka pre Media Access Control. Definuje, ako zariadenia v sieti získajú prístup k médiu. Poskytuje enkapsuláciu a dekapsuláciu dát, detekciu chýb a signalizáciu.
  • LLC:LLC je skratka pre Logical Link Control. Je zodpovedný za filtrovanie akceptovania rámca, upozornenie na preťaženie a správu obnovy.
  • Fyzická vrstva: Fyzická vrstva je zodpovedná za prenos nespracovaných údajov. Definuje špecifikácie pre parametre, ako je úroveň napätia, časovanie, prenosové rýchlosti a konektor.

Špecifikácie CAN definujú protokol CAN a fyzickú vrstvu CAN, ktoré sú definované v štandarde CAN ISO 11898. ISO 11898 má tri časti:

  • ISO 11898-1: Táto časť obsahuje špecifikáciu vrstvy dátového spojenia a fyzického signálového spojenia.
  • ISO 11898-2: Táto časť patrí pod fyzickú vrstvu CAN pre vysokorýchlostné CAN. Vysokorýchlostný CAN umožňuje prenosovú rýchlosť až 1 Mbps používanú v hnacej sústave a nabíjacej oblasti vozidla.
  • ISO 11898-3: Táto časť tiež patrí pod fyzickú vrstvu CAN pre nízkorýchlostné CAN. Umožňuje rýchlosť prenosu dát až 125 kbps a nízkorýchlostný CAN sa používa tam, kde rýchlosť komunikácie nie je kritickým faktorom.

CiA DS-102: Úplná forma CiA je CAN v automatizácii, ktorá definuje špecifikácie pre konektor CAN.

Čo sa týka implementácie, CAN kontrolér a CAN transceiver sú implementované v softvéri pomocou aplikácie, operačného systému a funkcií správy siete.

Rámovanie CAN

Poďme pochopiť štruktúru rámca CAN.

protokol CAN
    SOF:SOF znamená začiatok rámca, čo znamená, že nový rámec je zadaný do siete. Je to 1 bit.Identifikátor:Štandardný dátový formát definovaný podľa špecifikácie CAN 2.0 A používa 11-bitový identifikátor správy na arbitráž. Tento identifikátor správy v podstate určuje prioritu dátového rámca.RTR:RTR je skratka pre Remote Transmission Request, ktorá definuje typ rámca, či už ide o dátový rámec alebo vzdialený rámec. Je 1-bitový.Kontrolné pole:Má užívateľom definované funkcie.
      IDE:Bit IDE v riadiacom poli znamená rozšírenie identifikátora. Dominantný bit IDE definuje 11-bitový štandardný identifikátor, zatiaľ čo recesívny bit IDE definuje 29-bitový rozšírený identifikátor.DLC:DLC znamená kód dĺžky údajov, ktorý definuje dĺžku údajov v dátovom poli. Má 4 bity.Dátové pole:Dátové pole môže obsahovať až 8 bajtov.
    Pole CRC:Dátový rámec tiež obsahuje 15-bitové kontrolné pole cyklickej redundancie, ktoré sa používa na detekciu poškodenia, ak k nemu dôjde počas prenosového času. Odosielateľ vypočíta CRC pred odoslaním dátového rámca a prijímač tiež vypočíta CRC a potom porovná vypočítané CRC s CRC prijatým od odosielateľa. Ak sa CRC nezhoduje, prijímač vygeneruje chybu.ACK pole:Toto je potvrdenie príjemcu. V iných protokoloch sa po prijatí všetkých paketov odošle samostatný paket na potvrdenie, ale v prípade protokolu CAN sa nepošle žiadny samostatný paket na potvrdenie.EOF:EOF znamená koniec rámu. Obsahuje 7 po sebe idúcich recesívnych bitov známych End of frame.

Teraz uvidíme, ako sa dáta prenášajú cez sieť CAN.

protokol CAN

Sieť CAN pozostáva z viacerých uzlov CAN. Vo vyššie uvedenom prípade sme zvážili tri uzly CAN a pomenovali sme ich ako uzol A, uzol B a uzol C. Uzol CAN pozostáva z troch prvkov, ktoré sú uvedené nižšie:

  • Hostiteľ
    Hostiteľ je mikrokontrolér alebo mikroprocesor, na ktorom je spustená nejaká aplikácia na vykonanie špecifickej úlohy. Hostiteľ rozhodne, čo prijatá správa znamená a akú správu má poslať ďalej.
  • Ovládač CAN
    Kontrolér CAN sa zaoberá komunikačnými funkciami popísanými protokolom CAN. Tiež spúšťa prenos alebo príjem správ CAN.
  • CAN Transceiver
    CAN transceiver je zodpovedný za prenos alebo príjem dát na CAN zbernici. Konvertuje dátový signál na tok dát zozbieraných zo zbernice CAN, ktorému riadiaca jednotka CAN rozumie.

Vo vyššie uvedenom diagrame sa na prenos alebo príjem údajov používa netienený krútený párový kábel. Je tiež známa ako zbernica CAN a zbernica CAN pozostáva z dvoch liniek, t. j. CAN low line a CAN high line, ktoré sú tiež známe ako CANH a CANL. K prenosu dochádza v dôsledku rozdielového napätia aplikovaného na tieto vedenia. CAN používa krútenú dvojlinku a rozdielové napätie kvôli svojmu prostrediu. Napríklad v aute, motore, zapaľovacom systéme a mnohých ďalších zariadeniach môže dôjsť k strate údajov a poškodeniu údajov v dôsledku hluku. Krútenie dvoch čiar tiež znižuje magnetické pole. Zbernica je na každom konci zakončená odporom 120Ω.

Charakteristika CAN

protokol CAN

Pomocou rozdielového napätia určíme, ako sa prenášajú 0 a 1 cez zbernicu CAN. Vyššie uvedený obrázok je graf napätia, ktorý zobrazuje úroveň napätia CAN low a CAN high. V terminológii CAN sa o logickej 1 hovorí, že je recesívna, zatiaľ čo logická 0 je dominantná. Keď sa použije horné vedenie CAN a nízke vedenie CAN s 2,5 voltami, potom by skutočné rozdielové napätie bolo nulové. Nulové napätie na zbernici CAN je čítané CAN transceiverom ako recesívna alebo logická 1. Nulový stav na zbernici CAN je ideálny stav zbernice. Keď sa vysoké vedenie CAN stiahne na 3,5 voltu a nízke vedenie CAN sa stiahne na 1,5 voltu, potom by skutočné rozdielové napätie zbernice bolo 2 volty. CAN transceiver ho považuje za dominantný bit alebo logickú 0. Ak sa stav zbernice dosiahne na dominantnú alebo logickú 0, potom by bolo nemožné prejsť do recesívneho stavu akýmkoľvek iným uzlom.

Kľúčové body získané z charakteristík CAN

  • Logická 1 je recesívny stav. Na prenos 1 na zbernici CAN by sa mali použiť vysoké aj nízke hodnoty CAN s 2,5 V.
  • Logická 0 je dominantný stav. Na prenos 0 na zbernici CAN by sa malo použiť vysoké napätie CAN pri 3,5 V a nízke napätie CAN 1,5 V.
  • Ideálny stav autobusu je recesívny.
  • Ak uzol dosiahne dominantný stav, nemôže sa vrátiť späť do recesívneho stavu žiadnym iným uzlom.

Logika zbernice CAN

protokol CAN
protokol CAN

Z vyššie uvedeného scenára sa dozvieme, že dominantný štát prepíše recesívny štát. Keď uzol posiela dominantný a recesívny bit súčasne, zbernica zostáva dominantná. Recesívna úroveň sa vyskytuje iba vtedy, keď všetky uzly posielajú recesívny bit. Takáto logika je známa ako logika AND a fyzicky je implementovaná ako obvod s otvoreným kolektorom.

Princíp komunikácie CAN

Ako vieme, správa sa odosiela na základe priority nastavenej v rozhodcovskom poli. Pre štandardný rámec je identifikátor správy 11 bitový, zatiaľ čo pre rozšírený rámec je identifikátor správy 29 bitový. Umožňuje návrhárovi systému navrhnúť identifikátor správy už pri samotnom návrhu. Čím menší je identifikátor správy, tým vyššia bude priorita správy.

Poďme pochopiť, ako arbitráž funguje prostredníctvom vývojového diagramu.

Protokol CAN (Controller Area Network).

Odosielateľ chce odoslať správu a čaká na nečinnosť zbernice CAN. Ak je zbernica CAN nečinná, odosielateľ odošle SOF alebo dominantný bit pre prístup na zbernicu. Potom odošle bit identifikátora správy v najvýznamnejšom bite. Ak uzol deteguje dominantný bit na zbernici počas prenosu recesívneho bitu, znamená to, že uzol stratil arbitráž a prestane vysielať ďalšie bity. Odosielateľ počká a znova odošle správu, keď bude autobus voľný.

Príklad arbitráže CAN

protokol CAN

Ak vezmeme do úvahy tri uzly, t. j. Uzol 1, Uzol 2 a Uzol 3, identifikátory správ týchto uzlov sú 0x7F3, 0x6B3 a 0x6D9.

protokol CAN

Prenos všetkých troch uzlov s najvýznamnejším bitom je znázornený na obrázku vyššie.

jedenásťthbit: Keďže všetky tri bity uzlov sú recesívne, bit zbernice tiež zostane recesívny.

10thbit: Všetky uzly majú 10. bit ako recesívny, takže zbernica tiež zostane recesívna.

9thbit: Uzol 1 má recesívny bit, zatiaľ čo ostatné uzly majú dominantný bit, takže zbernica tiež zostane dominantná. V tomto prípade uzol 1 stratil arbitráž, takže prestane posielať bity.

8thbit: Uzol 2 aj uzol 3 posielajú recesívny bit, takže stav zbernice zostane recesívny.

7thbit: Uzol 2 posiela dominantný bit, zatiaľ čo uzol 3 poslal recesívny bit, takže stav zbernice zostane dominantný. V tomto prípade uzol 3 stratil arbitráž, takže prestane posielať správu, zatiaľ čo uzol 2 vyhral arbitráž, čo znamená, že bude pokračovať v zadržiavaní zbernice, kým sa správa neprijme.