Ing. Petr Bartošík
Patnáct let sběrnice CAN
Před patnácti lety, v únoru 1986, představila firma Robert Bosch GmbH na kongresu Společnosti automobilových inženýrů SAE (Society of Automotive Engineers) v Detroitu novou sběrnici – CAN. V současné době se ze sběrnice CAN stala jedna z nejrozšířenějších sběrnic, která se nepoužívá zdaleka jen v automobilovém průmyslu, pro nějž byla původně určena.
Na počátku byl Bosch
Historie sběrnice CAN začala již počátkem osmdesátých let minulého století, kdy dostali vývojoví pracovníci firmy Bosch za úkol vyvinout sériovou sběrnici pro použití v automobilech. Do čela vývojové skupiny byl v roce 1983 jmenován Uwe Kiencke. Na vývoji od počátku spolupracovali také technici firmy Mercedes-Benz, budoucího uživatele sběrnice, a vývojoví pracovníci společnosti Intel, potenciálního dodavatele čipů pro sběrnici. Jméno CAN – Controller Area Network dal nové sběrnici prof. Wolfhard Lawrenz z Univerzity aplikovaných věd v Braunschweig-Wolfenbüttelu. Se skupinou od počátku spolupracoval také prof. Horst Wettstein z Univerzity v Karlsruhe.
Multimaster, řízení přístupu na síť
Od samého počátku byla sběrnice CAN navržena jako síť s liniovou topologií pracující v režimu multimaster. To znamená, že žádný z účastnických uzlů není pevně určen jako nadřízená stanice – master. Jak je komunikace na síti řízena? Stanice, která chce ostatním podat zprávu, začne vysílat. V tom okamžiku se stává nadřízenou jednotkou – masterem – a ostatní uzly musí počkat, až je přenos dokončen a linka uvolněna. Není určeno, který uzel má vyslanou zprávu přijmout. Zpráva má identifikátor, z nějž ostatní uzly poznají, co zpráva obsahuje, a podle toho ji přijmou nebo ignorují. O přijetí zprávy tedy nerozhoduje adresa odesílatele ani příjemce, ale její obsah.
Je ovšem nutné vytvořit mechanismus, který zajistí, aby byly důležité zprávy doručeny včas a aby se o vysílání nepokoušely současně dva uzly. CAN to řeší takto: stane-li se, že se dva uzly pokoušejí vysílat současně, dostane přednost ten s vyšší prioritou. Priorita je zakódována v identifikátoru. V praxi probíhá celý postup tak, že uzly, které chtějí vysílat, zjistí, zda je volná linka, a v případě, že je, začnou vysílat svůj identifikátor. Přitom kontrolují po jednotlivých bitech shodu vysílané a přijímané zprávy (obr. 1). Dokud jsou identifikátory shodné, nic se neděje. Teprve v okamžiku, kdy jeden účastnický uzel zjistí, že se v identifikátoru druhého uzlu objevil dominantní bit, zatímco on má ve svém identifikátoru ve stejném okamžiku bit recesivní, usoudí, že jeho zpráva má nižší prioritu, stáhne se a uvolní sběrnici. Druhý účastník dokončí vysílání a první pokus opakuje, jakmile se linka uvolní. Takové metodě se říká nedestruktivní řízení komunikace a její důležitou předností je to, že se vysílání nezdržuje žádným opakováním úvodní sekvence zprávy.
Podmínkou je, že žádné dva identifikátory nesmí být stejné. Postup, který to zabezpečuje, je součástí specifikace CAN. Mimo jiné také dovoluje připojovat a odpojovat jednotlivé členy i za provozu sběrnice.
Čipy
Již v roce 1986 se objevilo mnoho publikací popisujících novou sběrnici. Stále však nebyl k dispozici čip, který by komunikaci prostřednictvím sběrnice CAN zajišťoval. Intel jej pod označením 82526 uvedl na trh až v polovině roku 1987. Brzy po něm následoval další výrobce, Philips, a jeho čip 82C200. Oba čipy se však lišily v poměrně zásadní věci. Zatímco Intel favorizoval tzv. Full CAN, Philips dal přednost konceptu BasicCAN. U provedení Basic CAN je zpráva identifikována a kontrolována v procesoru připojeného zařízení, Full CAN má filtr již v komunikačním čipu a již zde se rozhoduje, zda zprávu přijmout a poslat ji procesoru. Varianta Full CAN tak méně zatěžuje vlastní procesor připojeného zařízení. Tato dvě odlišná provedení se dochovala dodnes, i když ne ve své čisté podobě. Vzhledem k široké nabídce čipů – v současné době je k dispozici více než 50 čipů od přibližně patnácti výrobců – existuje množství přechodových forem.
SOF – Start of frame, inicializační a synchronyzační pole
RTR – Remote Request, bit, který je dominantní u datových rámců, recesivní u ostatních
SRR – Substitute Remote Request, nahrazuje RTR u modifikace B, a je vždy recesivní
IDE – Identifer Extension, bit, který umožňuje rozlišit obě modifikace (je dominantní u modifikace A, recesivní u B)
DLC – Data Lenght Code, kód pro délku datového pole
vr1, r0 – rezervované bity (doplňují DLC)
Full CAN má dvě modifikace: modifikace A má identifikátor 11bitový, modifikace B (tzv. extended) 29bitový. Tyto modifikace nejsou kompatibilní. Někteří výrobci (např. Siemens) si s touto potíží poradili zavedením modifikace „pasivní B“, která má 11bitový identifikátor, ale umí pracovat i s identifikátorem 29bitovým. Struktura počátku zprávy obou variant je na obr. 2. Obě modifikace se liší přenosovou rychlostí: modifikace A je pomalejší, do 250 kb/s, modifikace B může dosáhnout rychlosti do 1 Mb/s. Rychlost závisí, kromě varianty protokolu, také na délce sběrnice.
|
CRC – Cyclic redundancy Check, 15bitový kontrolní součet
ACK – Acknowledge, dvojbitové pole potvrzení zprávy
EOF – End of Frame, ukončení zprávy
IFS – Intar Frame Space, prodleva mezi zprávami
|
Zabezpečení proti chybám
Sběrnice navržená pro použití v dopravních prostředcích musí být velmi spolehlivá a zabezpečená proti možnému výskytu chyb. CAN má celkem pět metod zabezpečení: tři jsou na úrovni zpráv a dvě na úrovni jednotlivých bitů. Na úrovni zpráv se používá detekce chyb pomocí CRC – Cyclic Redundancy Check. CAN používá patnáctibitový kontrolní součet, který zaručuje vysokou pravděpodobnost detekce chyby (Hammingova vzdálenost je 6). Další metodou detekce chyb je kontrola struktury zprávy. Ve zprávě jsou na určitých pevně daných pozicích kontrolní bity. Jednotlivé uzly kontrolují správnost těchto bitů, a nesouhlasí-li jejich hodnota s hodnotou danou strukturou zprávy, hlásí chybu. Třetí metodou zabezpečení je použití ACK – Acknowledgment. V poli ACK jsou dva bity. Vysílající uzel je oba posílá jako recesivní. Přijme-li přijímač zprávu korektně, pošle potvrzení s jedním bitem v poli ACK dominantním. Obdrží-li vysílající uzel alespoň jedno potvrzení ACK, je vše v pořádku, pokud ne, zkusí zprávu poslat znovu. Na úrovni jednotlivých bitů se používá kontrola shodnosti zpráv. Každý vysílající uzel dostane zpět pro kontrolu kopii odeslané zprávy, která se liší jen v počáteční sekvenci a ACK. Uzel kontroluje bit po bitu, zda se kopie shoduje s originálem. Poslední metodou je vkládání opačného bitu po každém vysílání pěti stejných bitů. Je-li tedy např. pět bitů recesivních, musí být šestý dominantní.
Hlášení o chybě obsahuje šest dominantních bitů. Vzhledem k tomu, že poslední uvedená metoda způsobí, že hlášení o chybě je samo detekováno jako chyba, rozšíří se – globalizuje – zpráva o tom, že při komunikaci vznikla chyba, do celé sítě. Postup zpracování zpráv o chybě je dosti složitý a důmyslný. Výsledkem algoritmu, jejž zde pro jeho složitost nebudeme podrobně popisovat (zájemci jej naleznou např. na webové stránce CiA), je to, že většina chyb v komunikaci je spolehlivě detekována, chybná zpráva je automaticky odeslána znovu a uzel, který se opakovaně pokouší o komunikaci a není úspěšný, je v komunikaci omezen prodloužením doby čekání na opakování svého vysílání (k tříbitovému IFS se připočte ještě další osmibitová odmlka), pozbude práv vysílat některá chybová hlášení, která mohou blokovat komunikaci, popř. je při výrazné kumulaci chyb nakonec zcela odpojen, aby nepřetěžoval síť opakovanými neúspěšnými pokusy. Ostatní uzly však mohou komunikovat dále. Částečně omezený uzel (ve stavu error passive) se může dostat do původního stavu, je-li v komunikaci opět úspěšnější, uzel odpojený od sběrnice (bus off) lze připojit jen po resetu softwarového nastavení a opětovném spuštění uzlu.
Standardizace
Dalším důležitým krokem ve vývoji sběrnice CAN byla její standardizace. Stalo se tak v listopadu 1993, po složitých jednáních především s francouzskými výrobci automobilů, prosazujícími svoji sběrnici VAN (Vehicle Area Network). Vznikla tak norma ISO 11898, která definuje fyzickou a datovou vrstvu sběrnice pro rychlosti přenosu do 1 Mb/s. Zásadní změna této normy přišla v roce 1995, kdy byla specifikace rozšířena o již zmíněný 29bitový identifikátor varianty Extended CAN.
Kromě ISO 11898 existují ještě např. normy ISO 11992, specifikující aplikační vrstvu pro nákladní automobily a kamióny, a ISO 11783, specifikující totéž pro lesní a zemědělské stroje. Ačkoliv obě normy vycházejí z amerického protokolu J1939, nejsou navzájem kompatibilní. Kromě nich jsou vytvořeny ještě mnohé další standardy a normy pro aplikační vrstvy, testy shody apod., platící obvykle jen v omezené oblasti aplikací (železniční technika, vojenství apod.).
Naneštěstí není norma ISO 11898 ani kompletní, ani bez chyb. Může se tedy stát, že zařízení splňující tuto normu nebudou kompatibilní ani v datové a fyzické vrstvě. Firma Bosch proto specifikovala referenční model a metodiku zkoušek kompatibility. Postup testování kompatibility je stanoven normou ISO 16845.
CiA
Ačkoliv byla sběrnice CAN navržena pro automobily, již od začátku byla používána i v jiných aplikacích. Ve Finsku ji upotřebila firma Kone pro řízení výtahů, švédská konstrukční kancelář Kvaser navrhla použít CAN pro textilní stroje Lindauer Dornier a Sulzer. Tato aplikace byla tak úspěšná, že nakonec vznikla i skupina uživatelů CAN v textilních strojích CAN Textile User’s Group. V Nizozemí použila firma Philips Medical Systems CAN pro přenos dat v rentgenových přístrojích.
Norma ISO 11898 specifikuje jen dvě nejnižší vrstvy modelu ISO/OSI. To je pro automobilový průmysl, který se snaží spíše o nekompatibilitu a vzájemnou nezaměnitelnost komponent jednotlivých výrobců, zcela vyhovující. Méně to však vyhovuje pro průmyslové použití sběrnice a při výrobě malosériových a kusových zařízení, jako jsou zmíněné medicínské přístroje, zemědělské mechanismy atd. V roce 1992 proto Holger Zeltwanger, v té době šéfredaktor časopisu VMEbus, založil skupinu, které dal do vínku být neutrálním sdružením starajícím se o další technický i marketingový rozvoj sběrnice CAN. Tato skupina se jmenuje CAN in Automation (CiA). Již po několika týdnech vydala CiA první dokument, který se týkal fyzické vrstvy sběrnice. Doporučila v něm jediné – striktně dodržovat ISO 11898. Z trhu tak postupně zmizeli výrobci dodávající komponenty pro CAN pracující na úrovni RS-485.
Druhým, obtížnějším úkolem bylo standardizovat aplikační vrstvu CAN. I to se nakonec podařilo, vyšla tzv. Zelená kniha se specifikací CAL – CAN Application Layer.
CiA také stanovila, že se každoročně budou konat setkání odborníků – International CAN Conference (ICC), na nichž si budou odborníci vyměňovat své zkušenosti s aplikacemi sběrnic CAN.
Úspěšná devadesátá léta
Devadesátá léta znamenala pro CAN velký nárůst popularity a počtu aplikací. Rostl počet dodavatelů čipů. Z nejvýznamnějších jmenujme alespoň Infenion Technologies (dříve Siemens Semiconductors) a Motorolu. V průběhu devadesátých let k nich přibyli i výrobci z Dálného východu, např. NEC.
CAN opanoval především evropský automobilový trh. Průkopník sběrnice CAN, Mercedes-Benz, používá tuto sběrnici pro vozy vyšší třídy již od počátku devadesátých let. Následovaly jej firmy Volvo, Saab, Volkswagen, BMW, Renault a Fiat. CAN je aplikován i ve vozech Škoda Fabia a Superb. Například ve fabii má CAN tři samostatné segmenty, propojené komunikačními bránami: první je sběrnice motoru a podvozku, druhý je informační a třetí je tzv. komfortní.
Začátkem devadesátých let začal také významný projekt, jenž před sběrnicí CAN otevřel nové perspektivy: Allen-Bradley a Honeywell začaly vytvářet řídicí sběrnici založenou na platformě CAN. Obě firmy přes počáteční spolupráci nakonec vytvořily dva samostatné systémy: DeviceNet (Allen-Bradley) a Smart Distributed System (Honeywell). V roce 1994 byla založena asociace prodejců otevřených řešení založených na DeviceNet – ODVA (Open DeviceNet Vendor Association). I díky tomu se stala sběrnice DeviceNet podstatně úspěšnější než obdobné řešení firmy Honeywell a směle konkuruje sběrnicím Profibus DP nebo Interbus. V USA je v oblasti řídicích sběrnic dokonce na prvním místě na trhu. CAN používají i další řídicí a komunikační systémy, např. Freelance 2000 od ABB jej využívá jako sběrnici na úrovni snímačů a akčních členů.
CANopen
Mnohé evropské firmy, které se pokoušely používat CAL, aplikační vrstvu specifikovanou CiA, narazily na problém, že CAL sice popisuje aplikační vrstvu, ale že si každý uživatel musí definovat vlastní komunikační profil. Konsorcium firem, vedených firmou Bosch, proto zahájilo v roce 1993 práci na novém projektu CANopen, jehož cílem bylo vyvinout mezinárodně akceptovatelný komunikační profil založený na CAL. V rámci programu Esprit se na projektu podíleli i akademičtí pracovníci, např. prof. Gerhard Gruhler z Univerzity aplikovaných věd v Reutlingeru (SRN) a Dr. Mohammed Farsi z Univerzity v Newcastlu (Velká Británie). Výsledky, zveřejněné v roce 1995, definují nejen aplikační vrstvu (v souladu s CAL), ale i struktury aplikací pro PLC a podobná zařízení, aplikační profily a komunikační rozhraní.
V současné době tedy existují dvě standardizované definice aplikační vrstvy (EN 50325): DeviceNet a CANopen. DeviceNet je optimalizována pro průmyslovou automatizaci, CANopen ocení spíše výrobci vestavných systémů a řídicích systémů strojů.
A co dál?
Ačkoliv je sběrnici CAN již patnáct let, její vývoj se nezastavil. O tom, jaké změny se chystají, mnohé napoví program osmé mezinárodní konference ICC, která se bude konat v únoru 2002 v Las Vegas. V 45 ohlášených seminářích a workshopech se bude hovořit mj. o TTCAN, Time-triggered CAN. Těm, kteří chtějí používat CAN v časově kritických aplikacích, totiž vadí, že přístup na sběrnici je řízen událostmi, nikoliv časově. Obecně je CAN časově nedeterministický systém, zaručena je jen doba doručení zpráv nejvyšší priority. To právě řeší TTCAN, který jako metodu řízení přístupu na síť používá plně deterministické statické cyklické plánování.
Další semináře budou např. na téma Distrubuované řízení, fyzická vrstva a průmyslové aplikace, Komponenty pro zařízení CAN využívající Java a XML a Vývoj samoučícího se směrovače pro CANopen. Samostatnou sekci bude mít bezdrátový CAN se semináři Možnosti rádiových průmyslových komunikačních systémů na bázi CAN a Propojení bezdrátových sítí (např. Bluetooth) s LAN vedenými kabelovým rozvodem.
Bude se hovořit i o protokolech ve vyšších vrstvách ISO/OSI, umožňujících použít CAN např. ve vojenství nebo v automatizaci laboratoří. To, že se kongres bude konat právě v USA je důkazem skutečnosti, že CAN není jen evropskou záležitostí, ale jeho popularita roste i v zámoří.
Kde získat další informace?
Problematika sběrnice CAN je velmi široká. V krátkém příspěvku nelze vysvětlit vše. Nezmínil jsem se např. o tom, jak vypadají kabelové rozvody pro CAN, jaké jsou úrovně signálů, nepsal jsem o přenosu světlovodným vláknem ani o bezdrátovém přenosu (obě metody lze využít, ale dosud nejsou standardizovány), ani o přenosu napájecím přívodem (je již navržen, ale vzhledem k ceně komponent se zatím nepoužívá). Zájemce o bližší detaily lze odkázat na stránky sdružení CiA (www.can-cia.com) nebo na knihu Konrada Etschbergera Controller Area Network – Basics, Protocols, Chips and Application.
Letos vyšel anglický překlad německého originálu a obě jazykové mutace lze objednat na webové adrese CiA, popř. faxem na čísle 0049 91 31/690 86 79 (obě mutace mají 437 stran, německá verze stojí 50,11 EUR, anglická 86 EUR).
CAN Czech Prague
Mimořádnou příležitostí pro ty, kteří se o sběrnici CAN chtějí dozvědět více, je seminář CAN Czech Prague, který se bude konat 4. prosince 2001 od 10 do 16 hodin v hotelu Galerie na Tyršově náměstí v Unhošti. Na programu semináře jsou tato témata:
- přehled oborů aplikace sběrnice CAN,
- úvod do protokolu CAN,
- implementace CAN,
- možnosti fyzické vrstvy,
- standardizace CAN,
- protokoly vyšších vrstev,
- skupina profilů CANopen.
Posledním bodem programu jsou otázky a odpovědi.
Seminář povede pan Holger Zeltwanger, z jehož statí a publikací jsem s jeho laskavým svolením čerpal mnohé z informací uvedených v tomto článku. Seminář bude veden v anglickém jazyce, účast na něm je bezplatná a přihlásit se lze na webové stránce CiA, popř. u nás v redakci na adrese uvedené v tiráži (obratem zájemcům pošleme formulář spolu s faxovým a e-mailovým spojením na pořadatele).
Literatura:
[1] ZELTWANGER, H.: Happy Bithday: 15 Years of Controller Area Network. Studie pro CiA, rukopis, 2001.
[2] KRIESEL, W. – HEIMBOLD, T. – TELSCHOW, D. a kol.: Bustechnologien für die Automation. Heidelberg, nakladatelství Hüthig 1998.
[3] –: CAN Technical Introduction. http://www.can-cia.org
|