The Controller Area Network - CAN Sériový komunikační protokol s podporou distribuovaného řízení v reálném čase
Základní charakteristiky sdílená broadcast sběrnice s prioritní rozhodování na základě identifikátoru zprávy zaručená doba odezvy systému multimaster režim - libovolný uzel může vyslat komunikační rámec komunikace prostřednictvím rámců s maximální délkou přenášených dat datového rámce 8bytů detekce chyb a automatické znovuodvysílání poškozených rámců autonomní odpojení poškozených jednotek libovolná přenosová rychlost až do 1Mb/ definovány normy CAN2.0A a CAN2.0B - 11 a 29bitový identifikátor
Oblasti využití sběrnice CAN Původně vyvinuto firmou Bosh pro automobilový průmysl, rozšířeno i do dalších oblastí především pro poskytnutí vysokých přenosových rychlostí s vysokou spolehlivostí při nízké ceně zařízení (podpora výrobců HW). automobilový průmysl (BMW, Mercedes-Benz, Renault, Fiat, Volvo, Saab) robotika, textilní a papírenské stroje, lékařská technika, transporní systémy sběr dat a řízení koncových členů distribuovaných systémů zabezpečovací a informační systémy
CAN protokol a referenční model OSI-ISO Protokol CAN nespecifikuje HW úrovně signálů.
Prioritní rozhodování o přístupu na sběrnici recesivní a dominatní úroveň signálů
prioritní rozhodování o přístupu ke sběrnici během vysílání identifikátoru (včetně RTR bitu)
Typy přenosových rámců Definovány dvě normy CAN2.0A a CAN2.0B, které se liší délkou identifikátoru datového a remote rámce data frame - určen pro přenos aplikačních dat
CAN 2.0A: CAN 2.0B : SOF - začátek rámce Arbitration Field - identifikuje zprávu a rozhoduje o prioritním přístupu ke sběrnici na základě dominantních úrovní signálů. Čím nižší identifikátorem tím vyšší priorita RTR = 0 - remote frame bit SRR,IDE - identifikátor extended formatu DLC - délka datového pole (platné hodnoty 0...8) ACK - potvrzovací pole - příjem každé zprávy musí být potvrzen alespoň jedním příjemcem End of Frame - 7bitů recesivní úrovně (porušení bit stuffngu) remote frame - vysílající strana žádá o zaslání datového rámce se stejným identifikátorem formát rámce jako data frame, bit RTR = 1, datové pole má nulovou délku error frame - používá se k detekci chybových stavů na sběrnici a je odstartován vysláním 6 bitů dominantní (active error frame) nebo nedominantní (passive error frame) úrovně, kdykoliv během vysílání. overload frame - vkládá se bezprostředně za datový nebo remote rámec a slouží žádosti o vložení čekacích stavů před dalším vysíláním.
Kódování signálů Kódování signálu na bitové úrovni NRZ metodou Pro datový a remote rámec je použito kódování signálu pomocí bit stuffingu. při kódování je po pěti bitech stejné úrovně vložen bit úrovně opačné při dekódování je po pěti bitech stejné úrovně vyjmut následující bit Příklad bit stuffingu: vysílaná data: vyslaná sekvence po bit stuffingu: Error frame a overload frame používají vlastní pevný formát, který naruší bit stuffing a umožní okamžité rozpoznání těchto rámců.
Synchronizace signálů synchronizace při změně úrovně během Sync_Segm resynchronizace prodlužováním nebo zkracováním Phase_Seg1 a Phase_Seg1 resynchronizace pokud další hrana není během Sync_Seg
Detekce a potvrzování chybových stavů Jednotka se může nacházet v jednom z třech chybových stavů, které se nasatvují na základě hodnot čítačů chybových stavů: error active - jednotka může vyslat na sběrnici aktivní error frame error pasive - jednotka může vyslat pouze passive error frame bus off - jednotka se nesmí ovlivňovat činnost na sběrnici Čítače chybových stavů: Transmit error count - změna hodnoty detekované chybě během vysílání Receive error count - změna hodnoty detekované chybě během příjmu Detekuje se 5 chybových stavů: chyba úrovně signálu (neplatí při prioritním rozhodování) porušení bit stuffing detekování CRC chyby porušení formátu zprávy nepotvrzení příjmu zprávy CRC kód má generující polynom X15+X10+X8+ X7+ X4+ X3+X+1 Pravděpodobnost neodhalené chyby při celkové ochraně rámců je menší než 4.7* Přepnutí mezi těmito stavy se řídí na základě hodnot čítačů chybových stavů. Hodnota čítače je zvětšena při chybě (zvětšení o 8) a snížena při správném příjmu nebo odvysílání (snížení o 1). K přechodu do stavu passive error dojde při dosažení Transmit Error Count >= 128 nebo Receive Error Count >= 128 K přechodu do stavu bus off dojde při dosažení Transmit Error Count >= 256
Podpora CAN protokolu HW komponenty V současné době je k dispozici řada komponetů podporující protokol CAN: samostatné CAN řadiče · * umožňuje pouze příjem
řadiče CAN integrované do jednočipových mikropočítačů hradlové pole s vestavěnými CAN řadiči vyrábí firmy: IAM,Inicore,
Podpora CAN protokolu SW prostředky Analyzátory sítí CAN s podporou vyšších protokolů Monitorovací zařízení zpráv CAN Vývojové systémy pro CAN aplikace Simulátory CAN sítí
Hardwareová konfigurace systému s CAN sběrnicí
Komunikační protokoly aplikační úrovně využívající CAN Protokolu CAN zaručuje pouze vyslání a příjem zprávy jednotlivými uzly zapojených do sítě. Pro systémy distribuovaného řízení v reálném je další prakticky využitelná vrstva - aplikační vrstva. Aplikační vrstva zajištuje další služby nutné pro chod celého řídícího systému. distribuce aplikačních a řídících dat přidělování priorit konfigurace uzlů řízení činnosti uzlů testování funkčnosti jednotlivých uzlů i celého systému V současné době jsou nejrozšířenějšími tyto protokoly implemetující aplikační vrstvy: CAL/CANopen - CiA (CAN in Automation)CiA DeviceNet - Allen-BradleyDeviceNet SDS - Honeywell CAN Kingdom - Kvaser
Samostatný CAN řadič 80C200 podpora protokolu CAN 2.0A (při příjmu rámců CAN2.0B generuje chyby) komunikační rychlost až do 1Mbit/s možnost filtrovávání zpráv podle nejvyšších 8bitů identifikátoru zprávy zdvojený příjmový buffer možnost generovat přerušení pro různé události režim procesorové sběrnice Intel/Motorola Filtrování zpráv - řadič přijme pouze ty zprávy, které odpovídají nastavené masce a kódu v daných registrech: Acceptance Code Registr - určuje která zpráva se má přijmout Acceptance Mask Registr - určuje které bity se mají porovnávat ködového registru se mají porovnávat