CAN – Controller Area Network

Vypracoval: Radoslav Bortel

 

Obsah

CAN – Controller Area Network. 1

Úvod. 1

Opis protokolu CAN.. 1

Fyzická vrstva (Physical Layer) 1

Prenosová vrstva (Transport Layer) 1

CANopen. 2

Interface zariadení CANopen. 3

Komunikácia v CANopen. 4

Hardwarová podpora CAN.. 5

 

 

Úvod

Controller Area Network – CAN – je efektívny sériový komunikačný protokol, ktorého aplikácie sa pohybujú od vysokorýchlostných sietí až po lacné prepájanie veľkého počtu zariadení. Napríklad v automobilovej elektronike sú kontrolné jednotky motorov, snímače alebo protišmykové systémy navzájom často prepojené pomocou CAN s prenosovými rýchlosťami až 1Mb/s. Takisto je pomocou CAN cenovo efektívne ovládať početné elektronické zariadenia automobilu ako sú napr. svetlá alebo sťahovacie okná, ktoré by inak vyžadovali extenzívnu kabeláž.

 

V nasledujúcom texte budú opísané niektoré základné vlastnosti protokolu CAN a taktiež bude pojednané o vyššom protokole CANopen a hardwarovej podpore pre pripojenie na sieť CAN. 

 

Opis protokolu CAN

Nasledujú najdôležitejšie vlastnosti protokolu CAN.

 

Fyzická vrstva (Physical Layer)

Fyzická vrstva, t.j. spôsob prenosu jednotlivých bitov medzi zariadeniami siete CAN, nieje v samotnom protokole CAN definovaná. Protokol definuje iba dva stavy – dominantný a recesívny – ktoré musí byť schopná fyzická vrstva reprezentovať a preniesť.  Normy pre fyzickú vrstvu sietí založených na CAN však existujú (ISO 11898-2, ISO 11898-3) a pre prenos dát využívajú dvojicu metalických káblov zakončených terminačným rezistorom.

 

Prenosová vrstva (Transport Layer)

Prenosová vrstva CAN definuje prenosové rámce (t.j. dátové bloky prenášané po sieti), rozhodovanie o prístupe na zbernicu, kontrolu a signalizáciu chýb prenosu a odpojenie nefunkčných bodov siete. Prepracovaná definícia prenosovej vrstvy CAN umožňuje celú radu funkcií, ktoré sú užitočné v mnohých industriálnych systémoch.

 

 

Správy CAN

Protokol CAN definuje štyri rôzne typy správ, ktoré sa v terminológií CAN nazývajú rámce (frame):

 

 

Data Frame Remote Frame sú podľa CAN špecifikácie 1.2 adresované pomocou 11b identifikátoru. Novšia špecifikácia CAN 2.0 zavádza tzv. rozšírený formát správ, ktorý obsahuje 29b identifikátor.

 

 

CANopen

CANopen je vyšší komunikačný protokol založený na sieti CAN (obr. 1). CANopen pridáva k protokolu CAN ďalšie pravidlá komunikácie (tzv. aplikačnú vrstvu, komunikačné profily a profily zariadení), ktoré dovoľujú implementovať komplexnú dátovú sieť s celou radou nových funkcií od rôzne rýchlych a rôzne zabezpečených prenosov dát, cez štandardizáciu pripojených zariadení, až po tzv. plug and work funkcie, ktoré dodávajú sieti vysokú flexibilitu.

 

obr. 1 Vrstvy protokolu CAN a CANopen. Oblasť definovaná protokolom CANopen je zvýraznená zelenou farbou.

 

Interface zariadení CANopen

Zariadenia pripojené do siete s protokolom CANopen musia jednotne poskytovať štandardizovaný interface nazývaný Object Dictionary (OD) alebo objektový slovník. OD je tabuľka mnohých štandardizovaných položiek (príklad je na obr. 2), ktorých čítaním, či zápisom sa dajú ovládať jednotlivé zariadenia v sieti. Napríklad je možné zapísať alebo prečítať namerané dáta, nastaviť pripojené sieťové zariadenie alebo zistiť informácie o stave alebo type sieťového zariadenia.

 

obr. 2 Príklad štruktúry OD

 

Komunikácia v CANopen

S využitím rámcov (správ) CAN, CANopen protokol definuje niekoľko typov správ, ktoré umožňujú prístup do OD jednotlivých zariadení.

 

  1. Administrative Messages (Administratívne správy) zabezpečujú inicializáciu, konfiguráciu a správu siete. Používajú sa napríklad pri rozpoznaní a nakonfigurovaní zariadenia, ktoré bolo páve pripojené do siete.
  2. Service Data Object - SDO (Servisný dátový objekt) je primárne určený pre zápis a čítanie vstupov OD. Prenos dát pomocou SDO je silne zabezpečený potvrdzovaním prijatia správ.
  3. Process Data Object – PDO je určený pre prenos dát v reálnom čase.
  4. Special Function Objects (Objekty so špeciálnou funkciou) je skupina komunikačných objektov určených napríklad pre časovú synchronizáciu siete, oznamovanie chýb zariadení alebo kontrolu stavu jednotlivých sieťových bodov.

 

Hardwarová podpora CAN

Štruktúra zariadení, ktoré podporujú komunikáciu pomocou siete CAN príp. CANopen, sa v zásade skladá z troch častí (obr. 3). Za prvé tieto zariadenia obsahujú prijímač a vysielač dát, ktorý komunikuje priamo z fyzickým médiom, ktorým sa prenášajú dáta. Druhá časť je sada niekoľkých registrov, do ktorých sa ukladajú prijaté dáta alebo dáta, ktoré sú pripravené na odoslanie. Tretia časť je interface, ktorý slúži na komunikáciu s nadradeným CPU.

 

 

obr. 3. Bloková štruktúra zariadenia, ktoré sprostredkúva komunikáciu sieťou CAN

 

Filtrovanie správ CAN

Súčastné zariadenia sprostredkujúce komunikáciu po sieti CAN sú často schopné filtrovať komunikáciu sieťou CAN a podľa nastavených pravidiel zhromažďovať správy, o ktoré sa zaujíma nadradený systém. V jednoduchšom prípade (napr. SJ1000) dokáže komunikačný obvod prijímať iba správy s požadovaným identifikátorom a po prijatí tieto správy ukladať do FIFO registru, kde čakajú na spracovanie nadradeným systémom. Sofistikovanejšie systémy (Intel 82527, CAN interface mikrokontroléru T89C51CC01) dokážu podľa zadaných pravidiel triediť prijaté správy do sady registrov, čím zjednodušujú komunikáciu pomocou vyšších protokolov ako je CANopen (triedenie prebieha napríklad tak, že PDO objekty sú automaticky smerované do jedného registru a SDO objekty do iného, čo zjednodušuje ich spracovanie).

 

Komunikácia s nadradeným systémom

Zariadenia sprostredkujúce komunikáciu po sieti CAN sú v súčasnosti s nadradeným systémom schopné komunikovať pomocou celej rady paralelných štandardov (podľa toho akú paralelnú komunikáciu podporuje procesor od daného výrobcu). Pri paralelnej komunikácii obvod sprostredkujúci prístup na CAN väčšinou vystupuje ako pamäťovo mapované zariadenie a ovláda sa zápisom/čítaním jeho jednotlivých registrov. Okrem paralelnej komunikácie (ktorú, podporujú napr. Intel82527, SJ1000 alebo SAK52C900) sa takisto s niektorými obvodmi dá komunikovať sériovo (napr. Intel82527, SAK82C900). Komunikačné obvody sú pri výskyte udalostí v sieti CAN štandardne schopné generovať prerušenie procesoru, ktoré sa riadi sadou nastaviteľných pravidiel.

 

Umiestnenie obvodov pre komunikáciu po sieti CAN

Obvody pre komunikáciu po CAN môžu byť fyzicky umiestnené v zásade dvomi spôsobmi. Buďto sú integrované v samostatnom obvode a s nadradeným systémom komunikujú po externej systémovej zbernici a pomocou prerušení (napr. Intel82527, SJ1000, SAK82C900). Druhá možnosť je, že komunikačný interface je priamo integrovaný na čipe mikrokontroléru (napr. mikrokontrolér typu 8051 spol. Atmel  T89C51CC01) a s jadrom mikrokontroléru komunikujú cez interné zbernice a prerušenia. V prípade spoločnej integrácie komunikačného obvodu siete CAN s mikrokontrolérom je väčšinou nutné použiť externý vysielač/prijímač CAN správ (napr. PCA82C250/251, viz obr. 4), čo v praxi často zjednodušuje bezpečné oddelenie mikrokontroléru od samotnej zbernice.

 

 

obr. 4. Pripojenie siete CAN k mikrokontroléru prostredníctvom externého vysielača/prijímača.