Nasedli jste do auta, stiskli startovací tlačítko a motor během chvilky ožil, ale jak se vaše auto rozhodlo, zda má nastartovat nebo ne?

Aby se auto nastartovalo, několik antén a elektronických řídicích jednotek komunikovalo s klíčenkou. Protokl Controller Area Network (CAN) zajišťuje, že komunikace mezi vaším přívěskem na klíče, anténami a ECU probíhá správně uvnitř vašeho vozu.

Co je tedy protokol CAN a jak pomáhá zařízením v systémech vašeho vozidla spolupracovat? No, pojďme to zjistit.

Co je protokol CAN a proč je potřebný?

V minulosti auta neměla mnoho elektroniky. Ve skutečnosti, pokud jste chtěli nastartovat své vozidlo na počátku 20. století, museli jste vystoupit z vozidla a protočit motor ručně.

Dnešní auta mají naopak několik elektronických senzorů a elektronická zařízení sledují vše od teploty v kabině až po otáčky klikového hřídele.

To znamená, že data přijatá z těchto senzorů nemají žádnou hodnotu, dokud nejsou zpracována. Toto zpracování dat provádějí výpočetní zařízení známá jako elektronické řídicí jednotky (ECU).

instagram viewer
Obrazový kredit: SenseiAlan/Flickr

Na rozdíl od počítače s jedním CPU má auto několik ECU, z nichž každá je zodpovědná za provádění konkrétního úkolu. Přestože tyto ECU mohou efektivně vykonávat jeden úkol, musí spolupracovat, aby zajistily funkce jako břišní svaly a ESC řádně pracovat.

Kvůli tomu musí být všechny ECU na autě připojeny. K vytvoření těchto spojení by bylo možné použít topologii point-to-point, kde je každá ECU připojena přímo ke každé jiné ECU. Tato architektura by však systém učinila složitým. Ve skutečnosti má moderní vozidlo přes 70 ECU a jejich propojením jedna ku jedné by exponenciálně zvýšilo hmotnost kabeláže.

K vyřešení tohoto problému vytvořil Bosch spolu s Mercedes-Benz a Intel v roce 1986 protokol Controller Area Network. Tento protokol umožnil ECU vzájemně komunikovat pomocí sdílené datové sběrnice známé jako sběrnice CAN.

Jak CAN funguje?

Protokol CAN je komunikační metodologie založená na zprávách, která se pro přenos dat opírá o sadu kroucených párů kabelů. Tyto vodiče jsou známé jako CAN high a CAN low.

Pro umožnění přenosu dat na těchto vodičích se mění jejich napěťové úrovně. Tyto změny napěťových úrovní jsou pak převedeny na logické úrovně umožňující ECU na automobilu vzájemně komunikovat.

Kredit obrázku: Spinningspark/Wikimedia

Pro přenos logické jedničky na sběrnici CAN je napětí obou linek nastaveno na 2,5 V. Tento stav je také známý jako recesivní stav, což znamená, že sběrnice CAN je dostupná pro použití jakoukoli ECU.

Naopak, logická 0 je přenášena na sběrnici CAN, když je horní vedení CAN na napětí 3,5 voltu a vedení nízkého signálu CAN je na 1,5 voltu. Tento stav sběrnice je také známý jako dominantní stav, který říká každé ECU v systému, že jiná ECU vysílá, takže by měli počkat, dokud přenos neskončí, než začnou vysílat svou zprávu.

Pro umožnění těchto změn napětí jsou ECU automobilu připojeny ke sběrnici CAN prostřednictvím CAN transceiveru a CAN řadiče. Transceiver je zodpovědný za převod úrovní napětí na sběrnici CAN na úrovně, kterým ECU rozumí. Kontrolér na druhé straně slouží ke správě přijatých dat a zajištění plnění požadavků protokolu.

Všechny tyto ECU připojené ke sběrnici CAN mohou přenášet data na krouceném kabelu, ale má to háček, na sběrnici CAN lze přenášet pouze zprávu s nejvyšší prioritou. Abychom pochopili, jak ECU přenáší data na sběrnici CAN, musíme porozumět struktuře zpráv protokolu CAN.

Pochopení struktury zpráv protokolu CAN

Kdykoli chtějí dvě ECU komunikovat, jsou na sběrnici CAN přenášeny zprávy s níže uvedenou strukturou.

Tyto zprávy se přenášejí změnou úrovní napětí na sběrnici CAN a kroucená dvoulinka vodičů CAN zabraňuje poškození dat během přenosu.

  • SOF: Zkratka pro Start Of Frame, bit SOF je jeden dominantní bitový datový rámec. Tento bit vysílá uzel, když chce odeslat data na sběrnici CAN.
  • Identifikátor: Identifikátor na protokolu CAN může mít velikost buď 11 bitů nebo 29 bitů. Velikost identifikátoru je založena na verzi používaného protokolu CAN. V případě použití rozšířené verze CAN je velikost identifikátoru 29 bitů, v ostatních případech je velikost identifikátoru 11 bitů. Hlavním cílem identifikátoru je identifikovat prioritu zprávy.
  • RTR: Požadavek na vzdálený přenos nebo RTR je používán uzelem, když je potřeba vyžádat si data z jiného uzlu. Za tímto účelem uzel, který chce data, pošle zprávu s recesivním bitem v rámci RTR zamýšlenému uzlu.
  • DLC: Kód délky dat definuje velikost dat přenášených v datovém poli.
  • datové pole: Toto pole obsahuje užitečné zatížení dat. Velikost tohoto užitečného zatížení je 8 bajtů, ale novější protokoly jako CAN FD zvětšují velikost tohoto užitečného zatížení na 64 bajtů.
  • CRC: Zkratka pro Cyclic Redundancy Check, pole CRC je rámec kontroly chyb. Totéž má velikost 15 bitů a vypočítává jej přijímač i vysílač. Vysílací uzel vytvoří CRC pro data při přenosu. Při příjmu dat přijímač vypočítá CRC pro přijatá data. Pokud se oba CRC shodují, je integrita dat potvrzena. Pokud ne, data obsahují chyby.
  • Pole potvrzení: Jakmile jsou data přijata a jsou bez chyb, přijímající uzel dodává dominantní bit do potvrzovacího rámce a posílá jej zpět do vysílače. To sděluje vysílači, že data byla přijata a jsou bez chyb.
  • Konec rámečku: Jakmile je přenos dat dokončen, je přeneseno sedm po sobě jdoucích recesivních bitů. To zajišťuje, že všechny uzly vědí, že uzel dokončil přenos dat, a mohou přenášet data na sběrnici.

Kromě výše uvedených bitů má protokol CAN několik bitů vyhrazených pro budoucí použití.

Zjednodušení CAN prostřednictvím příkladu

Nyní, když máme základní představu o tom, jak vypadá zpráva na sběrnici CAN, můžeme pochopit, jak jsou data přenášena mezi různými ECU.

Pro zjednodušení řekněme, že naše auto má 3 ECU: Node 1, Node 2 a Node 3. Ze 3 ECU chtějí uzel 1 a uzel 2 komunikovat s uzlem 3.

Podívejme se, jak protokol CAN pomáhá zajistit komunikaci v takovém scénáři.

  • Detekce stavu autobusu: Všechny ECU ve voze jsou připojeny ke sběrnici CAN. V případě našeho příkladu chtějí uzel 1 a uzel 2 odeslat data do jiné ECU; před tím musí obě ECU zkontrolovat stav sběrnice CAN. Pokud je sběrnice v dominantním stavu, pak ECU nemůže vysílat data, protože sběrnice je v provozu. Na druhou stranu, pokud je sběrnice v recesivním stavu, ECU mohou přenášet data.
  • Odeslání začátku snímku: Pokud je rozdílové napětí na sběrnici CAN nulové, uzel 1 i uzel 2 změní stav sběrnice na dominantní. K tomu se napětí CAN high zvýší na 3,5 voltu a napětí CAN low se sníží na 1,5 voltu.
  • Rozhodnutí, který uzel má přístup ke sběrnici: Jakmile je SOF odeslán, oba uzly soutěží o přístup ke sběrnici CAN. Sběrnice CAN používá protokol Carrier Sense Multiple Access/Collision Detection (CSMA/CD) k rozhodnutí, který uzel získá přístup. Tento protokol porovnává identifikátory přenášené oběma uzly a umožňuje přístup k tomu, který má vyšší prioritu.
  • Odesílání dat: Jakmile má uzel přístup ke sběrnici, je datové pole spolu s CRC odesláno do přijímače.
  • Kontrola a ukončení komunikace: Při příjmu dat uzel 3 kontroluje CRC přijatých dat. Pokud nejsou žádné chyby, uzel 3 odešle zprávu CAN do vysílacího uzlu s dominantním bitem v potvrzovacím rámci spolu s EOF pro ukončení komunikace.

Různé typy CAN

Přestože struktura zpráv používaná protokolem CAN zůstává stejná, rychlost přenosu dat a velikost datových bitů se mění pro přenos větších šířek pásma dat.

Kvůli těmto rozdílům má protokol CAN různé verze a jejich přehled je uveden níže:

  • Vysokorychlostní CAN: Data na vodičích CAN jsou přenášena sériově a tento přenos lze provádět různými rychlostmi. Pro vysokorychlostní CAN je tato rychlost 1 Mbps. Díky této vysoké rychlosti přenosu dat se vysokorychlostní může používat pro ECU, které řídí hnací ústrojí a bezpečnostní systémy.
  • Nízkorychlostní CAN: V případě nízkorychlostního CAN se rychlost přenosu dat sníží na 125 kbps. Protože nízká rychlost může nabídnout nižší přenosové rychlosti, používá se k připojení ECU, které řídí pohodlí cestujících, jako je klimatizace nebo informační a zábavní systém.
  • Může FD: Zkratka pro flexibilní datovou rychlost CAN, CAN FD je nejnovější verze protokolu CAN. Zvyšuje velikost datového rámce na 64 bajtů a umožňuje ECU přenášet data rychlostí od 1 Mbps do 8 Mbps. Tato rychlost přenosu dat může být řízena ECU v reálném čase na základě systémových požadavků, což umožňuje přenos dat vyšší rychlostí.

Jaká je budoucnost automobilové komunikace?

Protokol CAN umožňuje vzájemnou komunikaci několika ECU. Tato komunikace umožňuje bezpečnostní prvky, jako je elektronické řízení stability a pokročilé asistenční systémy řidiče, jako je detekce mrtvého úhlu a adaptivní tempomat.

To znamená, že s příchodem pokročilých funkcí, jako je autonomní řízení, množství dat přenášených sběrnicí CAN exponenciálně roste. Pro umožnění těchto funkcí vstupují na trh novější verze protokolu CAN, jako je CAN FD.