Vestavné mikropočítačové systémy 10. Týden – Datové komunikace IV (CAN)
CAN – Controller Area Network Poloduplexní multi-masterová asynchronní sériová sběrnice Koncem 80. Let vyvinuta firmou Robert Bosch GmbH Norma ISO 11898 – elektrické vlastnosti fyzického přenosu CAN 2.0 Propojování mikropočítačů, inteligentních čidel, akčních členů Používá se v automobilech, kolejových vozidlech a průmyslu obecně Odolná proti rušení, optimalizovaná na spolehlivost přenosu – priority zpráv, arbitráž sběrnice bez přídavné režie (CDMA/CD+AMP) Maximální přenosová rychlost až 1Mbit/sec Zařízení 1 Zařízení 2 Zařízení 3 Zařízení 4 Zařízení 5 CAN_H CAN_L 120
CAN – fyzická vrstva Sběrnice rozlišuje dva stavy: Dominantní (d) – představuje log. 0 Recesivní (r) – představuje log. 1 Jsou-li na sběrnici dvě nebo více zařízení, která vysílají, platí: vysílá-li alespoň jedno zařízení d zatímco ostatní r, sběrnice je v d sběrnice je v r tehdy, když všechna zařízení vysílají r > 0,9V 2,5V CAN_L CAN_H < 0,5V U t recesivní stav dominantní stav
CAN – fyzická vrstva Délka vedení Odpor vodičů Max. rychlost < 40m < 70m/m 1Mbit/s < 300m < 60m/m 500kbitů/s < 600m < 40m/m 100kbitů/s < 1000m < 26m/m 50kbitů/s
CAN – fyzická vrstva Synchronizace hodin se provádí z přijímaného signálu Na rozdíl od UART není každý bajt uvozen start a stop bitem Vysílač musí po pěti po sobě jdoucích datových bitech vložit bit s opačnou log. úrovní, který je na přijímací straně odebrán, ale slouží pouze k synchronizaci Signál po vložení bitů Signál před vložením bitů Vložení bitů opačné úrovně
CAN – linková vrstva Přenos dat na CAN sběrnici probíhá v tzv. rámcích: SOF – začátek rámce – 1 bit v úrovni d; Arbitrážní pole se skládá z 11-ti bitového identifikátoru zprávy (typ přenášených dat) a příznaku „Remote Request“ (RTR). Datový paket má RTR = 0, požadavek na data má RTR = 1; Příznak IDE rozlišuje mezi standardním (IDE = 0) a rozšířeným (IDE = 1) formátem rámce; Bit r0 je rezervován pro budoucí použití, musí být vysílán jako 0; DLC obsahuje délku datového pole (08); CRC – kontrolní součet zprávy, polynom: x15+x14+x10+x8+x7+x4+x3+1 ERC – vždy log. 1 ACK – příznak potvrzení přijetí zprávy, ACD je oddělovač a musí být log. 1 EOF – konec rámce – 7 bitů v úrovni r. IFS – mezera mezi rámci 3 bitové intervaly Data (08 bajtů) SOF (1 bit) ID zprávy (11 bitů) RTR (1 bit) IDE (1 bit) r0 (1 bit) DLC (4 bity) CRC (15 bitů) ERC (1 bit) ACK (1 bit) ACD (1 bit) EOF (7 bit) IFS Arbitrážní pole Řídící pole Zabezpečení Potvrzení
CAN – rozšířený rámec Specifikace CAN podporuje dva formáty rámců: Standardní – identifikátor zprávy má délku 11 bitů Rozšířený – identifikátor zprávy má délku 28 bitů Standardní rámec SOF 11 bitů identifikátor RTR IDE r0 DLC 4 bity Data Rozšířený rámec SOF 11 bitů identifikátor SRR IDE RTR DLC 4 bity Data 18 bitů identifikátor r1 r0
CAN – arbitráž sběrnice Fyzická vrstva umožňuje současné vysílání několika stanic; Používá se mechanismus CSMA/CD+AMP (Carrier Sense Multiple Access with Collision Detection and Arbitration on Message Priority); Při vysílání musí každá stanice sledovat skutečný stav na sběrnici. Pokud stanice vyšle r, ale na sběrnici se objeví d, jde o kolizi více stanic. Stanice musí ukončit vysílání a přejít do přijímacího režimu. SOF RTR Identifikátor zprávy 1. stanice 2. stanice 3. stanice sběrnice pouze přijímá r d
CAN – žádost o data Potřebuje-li stanice nějaká data, může odeslat rámec s žádostí o ně; V identifikačním poli je typ požadovaných dat a příznak RTR (Remote Transfer Request) je nastaven na log. 1 (r); Datové pole má nulovou délku; Takový rámec by měl být akceptován stanicí, která je schopna poskytovat požadovaný typ dat.
CAN – detekce chyb Každá stanice na sběrnici CAN detekuje následující typy chyb: chyba vkládání synchronizačních bitů; bitová chyba – na sběrnici je přítomna jiná úroveň, než kterou stanice vysílá. Tato chyba není identifikována v arbitrážním poli, v potvrzovacím a zakončovacím poli rámce; chyba CRC – vypočtený kontrolní součet z přijatých dat nesouhlasí s přijatým kontrolním součtem; chyba potvrzení (ACK) – žádná stanice nepotvrdila přijetí zprávy; chyba formátu – nesprávná logická úroveň v zakončovacích bitech potvrzovacího a zabezpečovacího pole nebo zakončovacím poli rámce. Každá stanice udržuje dva čítače REC a TEC, které čítají počet chyb při příjmu resp. při vysílání. Podle počtu registrovaných chyb se stanice chová: < 127 – stanice je v aktivním stavu, při detekci chyb vysílá aktivní chybový rámec; > 96 – řadič sběrnice dává informaci nadřazenému procesu; 127 – stanice je v pasivním stavu, při detekci chyb vysílá pasivní chybový rámec; > 255 – stanice je odpojena od sběrnice, k opětovnému připojení dojde až po resetu.