Nasadli ste do auta, stlačili štartovacie tlačidlo a motor okamžite ožil, ale ako sa vaše auto rozhodlo, či má naštartovať alebo nie?
Aby sa auto naštartovalo, s ovládačom komunikovalo niekoľko antén a elektronických riadiacich jednotiek. Protocl Controller Area Network (CAN) zabezpečuje, že komunikácia medzi vašim príveskom na kľúče, anténami a ECU prebieha správne vo vašom aute.
Čo je teda protokol CAN a ako pomáha zariadeniam v systémoch vášho vozidla spolupracovať? Nuž, poďme to zistiť.
Čo je protokol CAN a prečo je potrebný?
Kedysi autá nemali veľa elektroniky. V skutočnosti, ak ste chceli naštartovať svoje vozidlo na začiatku 20. storočia, museli ste vystúpiť z vozidla a spustiť motor ručne.
Naopak, dnešné autá majú niekoľko elektronických senzorov a elektronické zariadenia sledujú všetko od teploty v kabíne až po otáčky kľukového hriadeľa.
To znamená, že údaje prijaté z týchto senzorov nemajú žiadnu hodnotu, kým nie sú spracované. Toto spracovanie údajov vykonávajú výpočtové zariadenia známe ako elektronické riadiace jednotky (ECU).
Na rozdiel od počítača s jedným CPU má auto niekoľko ECU, z ktorých každá je zodpovedná za vykonávanie konkrétnej úlohy. Aj keď tieto ECU dokážu efektívne vykonávať jednu úlohu, musia spolupracovať, aby zabezpečili funkcie ako napr ABS a ESC pracovať správne.
Z tohto dôvodu musia byť všetky ECU na aute pripojené. Na vytvorenie týchto spojení by sa dala použiť topológia bod-bod, kde je každá ECU pripojená priamo ku každej inej ECU. Táto architektúra by však robila systém zložitým. V skutočnosti má moderné vozidlo viac ako 70 ECU a ich prepojenie spôsobom jedna k jednej by exponenciálne zvýšilo hmotnosť kabeláže.
Na vyriešenie tohto problému vytvoril Bosch spolu s Mercedes-Benz a Intel v roku 1986 protokol Controller Area Network. Tento protokol umožnil ECU navzájom komunikovať pomocou zdieľanej dátovej zbernice známej ako zbernica CAN.
Ako CAN funguje?
Protokol CAN je komunikačná metodika založená na správach, ktorá sa pri prenose dát spolieha na sadu krútených dvojlinkov. Tieto vodiče sú známe ako CAN high a CAN low.
Aby sa umožnil prenos dát na týchto vodičoch, menia sa ich úrovne napätia. Tieto zmeny napäťových úrovní sa potom prevedú na logické úrovne umožňujúce ECU na aute navzájom komunikovať.
Pre prenos logickej jednotky na zbernici CAN je napätie oboch liniek nastavené na 2,5 V. Tento stav je známy aj ako recesívny stav, čo znamená, že zbernica CAN je k dispozícii na použitie akoukoľvek ECU.
Naopak, logická 0 sa prenáša na zbernici CAN, keď je horná linka CAN pri napätí 3,5 voltu a dolná linka CAN je pri napätí 1,5 voltu. Tento stav zbernice je tiež známy ako dominantný stav, ktorý hovorí každej ECU v systéme, že iná ECU vysiela, takže by mali počkať, kým sa prenos neskončí, a až potom začať vysielať svoju správu.
Na umožnenie týchto zmien napätia sú ECU automobilu pripojené k zbernici CAN cez CAN transceiver a CAN ovládač. Transceiver je zodpovedný za konverziu úrovní napätia na zbernici CAN na úrovne, ktorým ECU rozumie. Na druhej strane kontrolér slúži na správu prijatých údajov a zabezpečenie splnenia požiadaviek protokolu.
Všetky tieto ECU pripojené na CAN zbernicu môžu prenášať dáta na skrútenom kábli, má to však háčik, na CAN zbernici je možné prenášať len správu s najvyššou prioritou. Aby sme pochopili, ako ECU prenáša údaje na zbernici CAN, musíme pochopiť štruktúru správ protokolu CAN.
Pochopenie štruktúry správ protokolu CAN
Kedykoľvek chcú dve ECU komunikovať, správy s nižšie uvedenou štruktúrou sa prenesú na zbernicu CAN.
Tieto správy sa prenášajú zmenou úrovní napätia na zbernici CAN a dizajn krútených párov káblov CAN zabraňuje poškodeniu dát počas prenosu.
- SOF: Skratka pre Start Of Frame, bit SOF je jediný dominantný bitový dátový rámec. Tento bit prenáša uzol, keď chce poslať dáta na zbernici CAN.
- Identifikátor: Identifikátor na protokole CAN môže mať veľkosť buď 11 bitov alebo 29 bitov. Veľkosť identifikátora závisí od verzie používaného protokolu CAN. Ak sa použije rozšírená verzia CAN, potom je veľkosť identifikátora 29 bitov, v ostatných prípadoch je veľkosť identifikátora 11 bitov. Hlavným cieľom identifikátora je identifikovať prioritu správy.
- RTR: Požiadavku na vzdialený prenos alebo RTR používa uzol, keď je potrebné vyžiadať údaje z iného uzla. Za týmto účelom uzol, ktorý chce dáta, pošle správu s recesívnym bitom v rámci RTR do zamýšľaného uzla.
- DLC: Kód dĺžky dát definuje veľkosť dát prenášaných v dátovom poli.
- Dátové pole: Toto pole obsahuje užitočné zaťaženie údajov. Veľkosť tohto užitočného zaťaženia je 8 bajtov, ale novšie protokoly ako CAN FD zväčšujú veľkosť tohto užitočného zaťaženia na 64 bajtov.
- CRC: Skratka pre Cyclic Redundancy Check, pole CRC je rámec kontroly chýb. To isté má veľkosť 15 bitov a počíta ho prijímač aj vysielač. Vysielací uzol vytvára CRC pre dáta pri prenose. Pri príjme dát prijímač vypočíta CRC pre prijaté dáta. Ak sa oba CRC zhodujú, potvrdí sa integrita údajov. Ak nie, údaje obsahujú chyby.
- Pole potvrdenia: Akonáhle sú dáta prijaté a sú bez chýb, prijímací uzol dodáva dominantný bit do potvrdzovacieho rámca a posiela ho späť do vysielača. To oznámi vysielaču, že dáta boli prijaté a sú bez chýb.
- Koniec rámu: Po dokončení prenosu údajov sa prenesie sedem po sebe idúcich recesívnych bitov. To zaisťuje, že všetky uzly vedia, že uzol dokončil prenos dát a môžu prenášať dáta na zbernici.
Okrem vyššie uvedených bitov má protokol CAN niekoľko bitov vyhradených pre budúce použitie.
Zjednodušenie CAN prostredníctvom príkladu
Teraz, keď máme základné vedomosti o tom, ako vyzerá správa na zbernici CAN, môžeme pochopiť, ako sa dáta prenášajú medzi rôznymi ECU.
Pre zjednodušenie povedzme, že naše auto má 3 ECU: Node 1, Node 2 a Node 3. Z 3 ECU chcú uzol 1 a uzol 2 komunikovať s uzlom 3.
Pozrime sa, ako protokol CAN pomáha zabezpečiť komunikáciu v takomto scenári.
- Detekcia stavu autobusu: Všetky ECU vo vozidle sú pripojené na zbernicu CAN. V prípade nášho príkladu uzol 1 a uzol 2 chcú poslať dáta do inej ECU; pred tým musia obe ECU skontrolovať stav zbernice CAN. Ak je zbernica v dominantnom stave, potom ECU nemôže prenášať dáta, keď sa zbernica používa. Na druhej strane, ak je zbernica v recesívnom stave, ECU môžu prenášať dáta.
- Odoslanie začiatku snímky: Ak je rozdielové napätie na zbernici CAN nulové, uzol 1 aj uzol 2 zmenia stav zbernice na dominantný. Na tento účel sa napätie CAN high zvýši na 3,5 voltu a napätie CAN low sa zníži na 1,5 voltu.
- Rozhodnutie, ktorý uzol má prístup k zbernici: Po odoslaní SOF oba uzly súťažia o prístup k zbernici CAN. Zbernica CAN používa protokol Carrier Sense Multiple Access/Collision Detection (CSMA/CD) na rozhodnutie, ktorý uzol získa prístup. Tento protokol porovnáva identifikátory prenášané oboma uzlami a poskytuje prístup k tomu, ktorý má vyššiu prioritu.
- Odosielanie údajov: Akonáhle má uzol prístup k zbernici, dátové pole sa spolu s CRC odošle do prijímača.
- Kontrola a ukončenie komunikácie: Po prijatí dát uzol 3 skontroluje CRC prijatých dát. Ak sa nevyskytnú žiadne chyby, uzol 3 pošle správu CAN do vysielacieho uzla s dominantným bitom na potvrdzovacom rámci spolu s EOF na ukončenie komunikácie.
Rôzne typy CAN
Aj keď štruktúra správy používaná protokolom CAN zostáva rovnaká, rýchlosť prenosu dát a veľkosť dátových bitov sa mení, aby sa prenášali väčšie šírky pásma dát.
Kvôli týmto rozdielom má protokol CAN rôzne verzie a ich prehľad je uvedený nižšie:
- Vysokorýchlostný CAN: Údaje na vodičoch CAN sa prenášajú sériovo a tento prenos sa môže uskutočniť rôznymi rýchlosťami. Pre vysokorýchlostné CAN je táto rýchlosť 1 Mbps. Vďaka tejto vysokej rýchlosti prenosu dát sa vysokorýchlostný môže použiť pre ECU, ktoré riadia hnaciu sústavu a bezpečnostné systémy.
- Nízkorýchlostný CAN: V prípade nízkorýchlostného CAN sa rýchlosť prenosu dát zníži na 125 kbps. Keďže nízka rýchlosť môže ponúknuť nižšie prenosové rýchlosti, používa sa na pripojenie ECU, ktoré riadia pohodlie cestujúcich, ako je klimatizácia alebo informačný systém.
- Môže FD: Skratka pre flexibilnú dátovú rýchlosť CAN, CAN FD je najnovšia verzia protokolu CAN. Zväčšuje veľkosť dátového rámca na 64 bajtov a umožňuje ECU prenášať dáta rýchlosťou od 1 Mbps do 8 Mbps. Táto rýchlosť prenosu dát môže byť riadená ECU v reálnom čase na základe systémových požiadaviek, čo umožňuje prenos dát pri vyšších rýchlostiach.
Aká je budúcnosť automobilovej komunikácie?
Protokol CAN umožňuje vzájomnú komunikáciu viacerých ECU. Táto komunikácia umožňuje bezpečnostné prvky, ako je elektronické riadenie stability a pokročilé asistenčné systémy vodiča, ako je detekcia mŕtveho uhla a adaptívny tempomat.
To znamená, že s príchodom pokročilých funkcií, ako je autonómne riadenie, množstvo dát prenášaných zbernicou CAN exponenciálne narastá. Na umožnenie týchto funkcií vstupujú na trh novšie verzie protokolu CAN, ako napríklad CAN FD.