logo

Protokol CAN (Controller Area Network).

CAN znamená Controller Area Network protokol. Je to protokol, který byl vyvinut společností Robert Bosch kolem roku 1986. Protokol CAN je standard navržený tak, aby umožnil mikrokontroléru a dalším zařízením vzájemně komunikovat bez jakéhokoli hostitelského počítače. Funkce, která dělá protokol CAN jedinečným mezi ostatními komunikačními protokoly, je typ vysílací sběrnice. Zde vysílání znamená, že informace jsou přenášeny do všech uzlů. Uzel může být senzor, mikrokontrolér nebo brána, která umožňuje počítači komunikovat přes síť přes USB kabel nebo ethernetový port. CAN je protokol založený na zprávách, což znamená, že zpráva nese identifikátor zprávy a na základě identifikátoru se rozhoduje o prioritě. V síti CAN není potřeba identifikace uzlu, takže je velmi snadné jej vložit nebo odstranit ze sítě. Jedná se o sériový poloduplexní a asynchronní typ komunikačního protokolu. CAN je dvoudrátový komunikační protokol, protože síť CAN je připojena přes dvoudrátovou sběrnici. Vodiče jsou kroucené dvoulinky s charakteristikou impedance 120Ω připojené na každém konci. Zpočátku byl navržen hlavně pro komunikaci v rámci vozidel, ale nyní se používá v mnoha jiných kontextech. Stejně jako UDS a KWP 2000 lze také použít pro palubní diagnostiku.

Proč MŮŽETE?

Potřeba centralizovaného standardního komunikačního protokolu vznikla kvůli nárůstu počtu elektronických zařízení. Například v moderním vozidle může být více než 7 TCU pro různé subsystémy, jako je přístrojová deska, ovládání převodovky, řídicí jednotka motoru a mnoho dalších. Pokud jsou všechny uzly propojeny jeden k jednomu, pak by rychlost komunikace byla velmi vysoká, ale složitost a náklady na kabely by byly velmi vysoké. Ve výše uvedeném příkladu vyžaduje jeden přístrojový panel 8 konektorů, takže k překonání tohoto problému bylo CAN zavedeno jako centralizované řešení, které vyžaduje dva vodiče, tj. CAN high a CAN low. Řešení pomocí protokolu CAN je poměrně efektivní díky prioritizaci zpráv a flexibilní, protože uzel lze vložit nebo odebrat bez ovlivnění sítě.

Aplikace protokolu CAN

Původně byl protokol CAN navržen tak, aby se zaměřil na komunikační problém, který se vyskytuje ve vozidlech. Později se však díky funkcím, které nabízí, používá v různých jiných oblastech. Níže jsou uvedeny aplikace protokolu CAN:

  • Automobilový průmysl (osobní vozidla, kamiony, autobusy)
  • Elektronická zařízení pro letectví a navigaci
  • Průmyslová automatizace a mechanické řízení
  • Výtah a eskalátory
  • Automatizace budov
  • Lékařské nástroje a vybavení
  • Námořní, lékařské, průmyslové, lékařské

Vrstvená architektura CAN

Jak víme, že OSI model rozděluje komunikační systém do 7 různých vrstev. Ale vrstvená architektura CAN se skládá ze dvou vrstev, tj.

Pojďme pochopit obě vrstvy.

rozdíl mezi programem a skriptem
  • Vrstva datového spojení: Tato vrstva je zodpovědná za přenos dat mezi uzly. Umožňuje navázat a ukončit spojení. Je také zodpovědný za detekci a opravu chyb, které se mohou vyskytnout na fyzické vrstvě. Vrstva datového spojení je rozdělena na dvě podvrstvy:
      MAC:MAC je zkratka pro Media Access Control. Definuje, jak zařízení v síti získají přístup k médiu. Poskytuje zapouzdření a dekapsulaci dat, detekci chyb a signalizaci.
  • LLC:LLC je zkratka pro Logical link control. Je zodpovědný za filtrování akceptace rámců, upozornění na přetížení a správu obnovy.
  • Fyzická vrstva: Fyzická vrstva je zodpovědná za přenos nezpracovaných dat. Definuje specifikace pro parametry, jako je úroveň napětí, časování, přenosová rychlost a konektor.

Specifikace CAN definují protokol CAN a fyzickou vrstvu CAN, které jsou definovány ve standardu CAN ISO 11898. ISO 11898 má tři části:

zkus chytit javu
  • ISO 11898-1: Tato část obsahuje specifikaci vrstvy datového spojení a fyzického signálního spojení.
  • ISO 11898-2: Tato část spadá pod fyzickou vrstvu CAN pro vysokorychlostní CAN. Vysokorychlostní CAN umožňuje přenosovou rychlost až 1 Mbps použitou v hnacím ústrojí a nabíjecí oblasti vozidla.
  • ISO 11898-3: Tato část také spadá pod fyzickou vrstvu CAN pro nízkorychlostní CAN. Umožňuje datovou rychlost až 125 kbps a nízkorychlostní CAN se používá tam, kde rychlost komunikace není kritickým faktorem.

CiA DS-102: Plná forma CiA je CAN v automatizaci, která definuje specifikace pro konektor CAN.

Co se týče implementace, CAN kontrolér a CAN transceiver jsou implementovány v softwaru pomocí aplikací, operačního systému a funkcí správy sítě.

Rámování CAN

Pojďme pochopit strukturu rámce CAN.

protokol CAN
    SOF:SOF znamená začátek rámce, což znamená, že nový rámec je vložen do sítě. Je to 1 bit.Identifikátor:Standardní datový formát definovaný ve specifikaci CAN 2.0 A používá pro rozhodčí řízení 11bitový identifikátor zprávy. Tento identifikátor zprávy v zásadě nastavuje prioritu datového rámce.RTR:RTR je zkratka pro Remote Transmission Request, která definuje typ rámce, zda se jedná o datový rámec nebo vzdálený rámec. Je to 1-bit.Ovládací pole:Má uživatelsky definované funkce.
      IDE:Bit IDE v řídicím poli znamená rozšíření identifikátoru. Dominantní bit IDE definuje 11bitový standardní identifikátor, zatímco recesivní bit IDE definuje 29bitový rozšířený identifikátor.DLC:DLC je zkratka pro Data Length Code, která definuje délku dat v datovém poli. Má 4 bity.datové pole:Datové pole může obsahovat až 8 bajtů.
    Pole CRC:Datový rámec také obsahuje 15bitové kontrolní pole cyklické redundance, které se používá k detekci poškození, pokud k němu dojde během doby přenosu. Odesílatel vypočítá CRC před odesláním datového rámce a přijímač také vypočítá CRC a poté porovná vypočítaný CRC s CRC přijatým od odesílatele. Pokud se CRC neshoduje, přijímač vygeneruje chybu.ACK pole:Toto je potvrzení příjemce. V jiných protokolech je po přijetí všech paketů odeslán samostatný paket pro potvrzení, ale v případě protokolu CAN se žádný samostatný paket neposílá pro potvrzení.EOF:EOF znamená konec rámu. Obsahuje 7 po sobě jdoucích recesivních bitů známých End of frame.

Nyní uvidíme, jak jsou data přenášena prostřednictvím sítě CAN.

protokol CAN

Síť CAN se skládá z několika uzlů CAN. Ve výše uvedeném případě jsme zvážili tři uzly CAN a pojmenovali je jako uzel A, uzel B a uzel C. Uzel CAN se skládá ze tří prvků, které jsou uvedeny níže:

  • Hostitel
    Hostitel je mikrokontrolér nebo mikroprocesor, na kterém běží nějaká aplikace, která vykonává určitou práci. Hostitel rozhodne, co znamená přijatá zpráva a jakou zprávu má odeslat jako další.
  • Ovladač CAN
    Řadič CAN se zabývá komunikačními funkcemi popsanými protokolem CAN. Spouští také přenos nebo příjem zpráv CAN.
  • CAN transceiver
    CAN transceiver je zodpovědný za přenos nebo příjem dat na CAN sběrnici. Převádí datový signál na tok dat shromážděných ze sběrnice CAN, kterému řadič CAN rozumí.

Ve výše uvedeném schématu se k přenosu nebo příjmu dat používá nestíněný kroucený párový kabel. Je také známá jako sběrnice CAN a sběrnice CAN se skládá ze dvou linek, tj. CAN low line a CAN high line, které jsou také známé jako CANH a CANL. K přenosu dochází v důsledku rozdílového napětí aplikovaného na tato vedení. CAN používá kroucený dvoulinkový kabel a rozdílové napětí kvůli svému prostředí. Například v autě, motoru, zapalovacím systému a mnoha dalších zařízeních může dojít ke ztrátě dat a poškození dat kvůli hluku. Zkroucení dvou čar také snižuje magnetické pole. Sběrnice je na každém konci zakončena odporem 120Ω.

Charakteristika CAN

protokol CAN

Pomocí rozdílového napětí určíme, jak se 0 a 1 přenášejí po sběrnici CAN. Výše uvedený obrázek je graf napětí, který ukazuje úroveň napětí CAN low a CAN high. V terminologii CAN se říká, že logická 1 je recesivní, zatímco logická 0 je dominantní. Když jsou CAN high line a CAN low line aplikovány s 2,5 volty, pak by skutečné rozdílové napětí bylo nulové. Nulové napětí na sběrnici CAN je čteno CAN transceiverem jako recesivní nebo logická 1. Nulové napětí na sběrnici CAN je ideální stav sběrnice. Když se horní vedení CAN stáhne na 3,5 voltu a nízké vedení CAN se stáhne na 1,5 voltu, pak skutečné rozdílové napětí sběrnice bude 2 volty. Transceiver CAN s ním zachází jako s dominantním bitem nebo logickou 0. Pokud je stav sběrnice dosažen na dominantní nebo logické 0, pak by bylo nemožné přejít do recesivního stavu jakýmkoli jiným uzlem.

abeceda s čísly

Klíčové body získané z charakteristik CAN

  • Logika 1 je recesivní stav. Pro přenos 1 na sběrnici CAN by měly být CAN vysoké i nízké CAN aplikovány s 2,5V.
  • Logická 0 je dominantní stav. Pro přenos 0 na sběrnici CAN, CAN high by mělo být aplikováno na 3,5 V a CAN low by mělo být aplikováno na 1,5 V.
  • Ideální stav autobusu je recesivní.
  • Pokud uzel dosáhne dominantního stavu, nemůže se žádným jiným uzlem vrátit zpět do recesivního stavu.

Logika sběrnice CAN

protokol CAN
protokol CAN

Z výše uvedeného scénáře víme, že dominantní stát přepíše recesivní stav. Když uzel posílá dominantní a recesivní bit současně, pak sběrnice zůstává dominantní. Recesivní úroveň nastane pouze tehdy, když všechny uzly pošlou recesivní bit. Taková logika je známá jako logika AND a fyzicky je implementována jako obvod s otevřeným kolektorem.

Princip komunikace CAN

Jak víme, zpráva je odesílána na základě priority nastavené v arbitrážním poli. Pro standardní rámec je identifikátor zprávy 11bitový, zatímco pro rozšířený rámec je identifikátor zprávy 29bitový. Umožňuje návrháři systému navrhnout identifikátor zprávy již při samotném návrhu. Čím menší je identifikátor zprávy, tím vyšší bude priorita zprávy.

Pojďme pochopit, jak arbitráž funguje prostřednictvím vývojového diagramu.

Protokol CAN (Controller Area Network).

Odesílatel chce odeslat zprávu a čeká na nečinnost sběrnice CAN. Pokud je sběrnice CAN nečinná, odešle odesílatel SOF nebo dominantní bit pro přístup ke sběrnici. Poté odešle bit identifikátoru zprávy v nejvýznamnějším bitu. Pokud uzel detekuje dominantní bit na sběrnici, zatímco vysílal recesivní bit, znamená to, že uzel ztratil arbitráž a přestane vysílat další bity. Odesílatel počká a znovu odešle zprávu, jakmile bude autobus volný.

Příklad rozhodčího řízení CAN

protokol CAN

Pokud vezmeme v úvahu tři uzly, tj. uzel 1, uzel 2 a uzel 3, jsou identifikátory zpráv těchto uzlů 0x7F3, 0x6B3 a 0x6D9, v tomto pořadí.

příkaz switch java
protokol CAN

Přenos všech tří uzlů s nejvýznamnějším bitem je znázorněn na výše uvedeném diagramu.

jedenáctčtbit: Protože všechny tři bity uzlů jsou recesivní, bit sběrnice také zůstane recesivní.

10čtbit: Všechny uzly mají 10. bit jako recesivní, takže sběrnice také zůstane recesivní.

9čtbit: Uzel 1 má recesivní bit, zatímco ostatní uzly mají dominantní bit, takže sběrnice také zůstane dominantní. V tomto případě uzel 1 ztratil arbitráž, takže přestane posílat bity.

8čtbit: Uzel 2 i uzel 3 vysílají recesivní bit, takže stav sběrnice zůstane recesivní.

7čtbit: Uzel 2 posílá dominantní bit, zatímco uzel 3 odeslal recesivní bit, takže stav sběrnice zůstane dominantní. V tomto případě uzel 3 ztratil arbitráž, takže přestane posílat zprávu, zatímco uzel 2 vyhrál arbitráž, což znamená, že bude pokračovat v držení sběrnice, dokud není zpráva přijata.

co je úl