Protokol CAN FD (CAN with Flexible Data-Rate) je nová verze protokolu sběrnice CAN, která v porovnání se současnou verzí CAN 2.0 nabízí větší rychlosti přenosu, delší datová pole ve zprávách a dokonalejší detekci chyb. Specifikace protokolu CAN FD by ještě letos měla být přijata za standard ISO a mnozí výrobci integrovaných obvodů a automobilů jsou na ni již připraveni. Na téma sběrnice CAN FD se v Praze na konci září 2015 uskuteční mezinárodní konference.
Sběrnice CAN (Controller Area Network) je sériová komunikační sběrnice používaná k přenosu dat mezi elektronickými moduly a jednotkami především v automobilech, ale též v mnoha jiných oborech – ve strojích a technologických zařízeních v průmyslu, v robotice, ve výtahových a drážních systémech atd. Jejími hlavními přednostmi jsou nedestruktivní arbitrace zpráv podle priority a detekce/signalizace chyb v komunikaci. Uzlů s rozhraním CAN se po celém světě ročně nainstaluje asi 800 milionů.
Současné sítě CAN s protokolem CAN 2.0 ale mají dvě významná omezení – maximální délka pole dat v přenosovém rámci je osm bajtů a maximální možná délka sběrnice při její maximální přenosové rychlosti 1 Mb/s je asi 40 m. Nová verze protokolu CAN – CAN FD (CAN with Flexible Data-Rate) – tato omezení odstraňuje. Prvotní specifikaci protokolu CAN FD představila firma Robert Bosch GmbH v roce 2012 [1]. Tato byla po dopracování publikována v polovině roku 2015 jako dokument ISO DIS (Draft International Standard). Odborníci očekávají, že finální specifikace protokolu CAN FD bude přijata během několika málo měsíců za standard ISO.
Historie sběrnice CAN
V roce 1983 začala firma Robert Bosch pracovat na interním projektu nové komunikační sběrnice pro automobilový průmysl. Výsledkem tohoto projektu byla specifikace sběrnice CAN a jejího protokolu, zveřejněná o tři roky později.
Sběrnice CAN se po svém uvedení poměrně záhy rozšířila do všech oborů, kde je požadována spolehlivá digitální komunikace mezi jednotlivými částmi stroje či technologického zařízení – jako např. v automobilech všech typů, v automatizační technice, v zemědělství, ve zdravotní technice, v letectví, v námořní a vojenské technice atd.
V roce 1991 vydala firma Robert Bosch specifikaci sběrnice CAN 2.0 B, která obsahovala jednak původní rámec CAN ze specifikace CAN 2.0 A s jedenáctibitovým identifikátorem zprávy (tzv. standardní rámec, obr. 1a), jednak nový rámec s 29bitovým identifikátorem (tzv. rozšířený rámec, obr. 1 b). Specifikace CAN 2.0 B byla v roce 1995 přijata za mezinárodní normu s označením ISO 11898-1.
Klasický rámec CAN pojme maximálně osm bajtů dat a současná maximální přenosová rychlost sběrnice je 1 Mb/s. Obě tyto hodnoty jsou již několik let, zejména v automobilovém průmyslu, nedostačující, a sběrnice CAN byla proto v některých vozidlech (značky BMW, Audi, Mercedes-Benz, Porsche, Bentley) nahrazena konkurenční sběrnicí FlexRay. Ta je sice rychlejší a deterministická, ale její použití ve vozidle vychází oproti sběrnici CAN velmi draho (složitost protokolu, cena vývojových nástrojů a integrovaných obvodů). Firma Robert Bosch se tudíž rozhodla vyvinout novou verzi sběrnice CAN, která bude rychlejší a přitom nadále robustní a cenově dostupná k použití ve velkosériové produkci.
Přednosti protokolu CAN FD
Protokol CAN FD vychází z klasického protokolu sběrnice CAN, k němuž jako vylepšení přidává větší maximální počet datových bajtů v rámci, možnost zvětšit přenosovou rychlost sběrnice v datové fázi rámce a zdokonalené zabezpečení dat při přenosu.
Větší počet datových bajtů
Klasický rámec CAN může obsahovat 0 až 8 bajtů dat. To je v poměru k ostatním částem rámce jen malý počet bitů nesoucích reálnou informaci (tzv. Payload), a rychlost přenosu informace (efektivní přenosová rychlost) je tedy oproti jmenovité přenosové rychlosti sběrnice 1 Mb/s mnohem menší. Rámec CAN FD naproti tomu nabízí vedle pole dat základní délky 0 až 8 bajtů pole s délkou od nuly do 12, 16, 20, 24, 32, 48 nebo 64 bajtů, jimž přísluší hodnoty DLC (Data Length Code) od 1001 do 1111. Větší podíl pole dat na celkové délce rámce znamená větší efektivní přenosovou rychlost.
Větší přenosová rychlost v datové fázi rámce
Na obr. 2 je naznačeno rozdělení rámců CAN a CAN FD na fázi arbitrace (Arbitration Phase) a fázi datovou (Data Phase). Podle základní specifikace protokolu CAN běží sběrnice v obou fázích toutéž stálou základní přenosovou rychlostí. Oproti tomu při použití protokolu CAN FD má odesílatel možnost přepnout takt sběrnice na dobu trvání datové fáze ze základní na větší přenosovou rychlost a tím zkrátit dobu potřebnou k přenosu dat. To ovšem znamená, že každá jednotka v síti musí znát obě rychlosti. Z pohledu uživatele je to provedeno tak, že řadič sběrnice CAN FD má dva registry k nastavení příslušných
rychlostí.
Proč nebyla zvýšena přenosová rychlost v celém rámci, tj. sběrnice jako takové? Odpověď je jednoduchá: „Arbitrace a robustnost“. Při odesílání identifikátoru zprávy (Identifier – ID) se mezi aktivními odesílateli rozhoduje, který z nich získá prostor pro odeslání zbytku rámce (menší hodnota ID = vyšší priorita), a jestliže je zájemců v jeden okamžik několik, uplatňuje se zde zpoždění signálu na sběrnici mezi všemi těmito odesílateli, a to v obou směrech (tzv. round trip). Tím je principiálně omezena rychlost komunikace ve vazbě na maximální délku sběrnice s ohledem na požadovanou robustnost komunikačního kanálu. Podobně je tomu i při potvrzení správnosti příjmu (Acknowledgment – ACK) na konci rámce, kterého se účastní všichni aktivní příjemci, kteří daný rámec přijali bez chyby. Zde je tentýž důvod, proč mimo datovou fázi byla ponechána základní přenosová rychlost.
Zabezpečení proti chybám
Detekci chyb v rámci zajišťuje pole CRC (Cyclic Redundancy Check). Na rozdíl od klasického rámce CAN je v rámci CAN FD součástí pole CRC také část Stuff Count, což je tříbitová hodnota počtu vložených nevýznamových bitů modulu 8 zakódovaná Grayovým kódem a doplněná jedním bitem sudé parity. Tato část byla do specifikace přidána až po odhalení bezpečnostní chyby (více v kap. Standardizace ISO) a detekuje chybu v délce rámce až 7 bitů (zkrácení nebo proprodloužení). Samotné pole CRC je dlouhé buď 17, nebo 21 bitů v závislosti na počtu bajtů dat v rámci (21 bitů pro datová pole delší než 20 bajtů), aby byla zaručena Hammingova vzdálenost 6.
V rámci CAN FD je použit původní způsob vkládání nevýznamových bitů (bit stuffing), zavedený v klasickém rámci CAN, kdy je po pěti po sobě jdoucích bitech stejné logické úrovně vkládán nevýznamový bit opačné hodnoty. To platí s výjimkou pole CRC, kde je naopak použit nový způsob, kdy po 4 bitech následuje vždy tzv. fixní vložený bit s hodnotou opačnou oproti hodnotě předchozího bitu. Celková reziduální schopnost detekovat chyby je tak větší než u klasického rámce CAN.
Struktura rámce CAN FD
Rámec CAN FD je velmi podobný klasickému rámci CAN. Opět jsou zde dvě varianty lišící se identifikátory zpráv – rámec standardní a rámec rozšířený (obr. 3a, b), a také pole arbitrace na základě identifikátoru, řídicí a datové pole, pole kontrolního součtu (CRC) a potvrzovací pole (ACK). Specifikace CAN FD neobsahuje tzv. Remote Frame, tj. rámce, které neobsahují datovou část a kterými se žádá o data; původní bit RTR (Remote Transmission Request) je nazván r1, má vždy dominantní úroveň a je rezervován pro budoucí rozšíření standardu. V řídicím poli jsou nově zařazeny bity FDF (CAN FD Frame), BRS (Bit Rate Switch) a ESI (Error State Indicator). Bit FDF informuje, zda jde o rámec CAN nebo CAN FD, bit BRS signalizuje přepnutí na větší přenosovou rychlost v datové fázi rámce a bit ESI nese informaci o chybovém stavu odesílatele. Datová fáze začíná v půlce bitu BRS a končí v půlce bitu CRC Delimiter. Pole CRC bylo popsáno v předchozí kapitole.
Standardizace ISO
V roce 2014, kdy byla specifikace protokolu CAN FD již předána organizaci ISO s návrhem na její přijetí za mezinárodní normu, byla zjištěna bezpečnostní chyba, která za určitých okolností způsobovala, že ačkoliv byl rámec při přenosu porušen, příjemci ho mohli přijmout, aniž by byla detekována chyba (více viz [2]). Trvalo rok, než se členové pracovní skupiny CAN FD Task Force dohodli na způsobu, jak tento nedostatek odstranit, a na následné změně specifikace CAN FD, která pak musela být znovu předložena ISO v obnoveném procesu standardizace. Současně platná (tj. finální) verze protokolu CAN FD je slangově nazývána ISO CAN FD, původní verze z roku 2014 non-ISO CAN FD.
Na konci června 2015 členové organizace ISO hlasovali o návrhu přijmout specifikaci CAN FD za normu ISO. Návrh byl schválen hlasy patnácti států, některé státy se zdržely hlasování. Specifikace protokolu CAN FD tak získala statut ISO DIS (Draft International Standard) a je již jen krůček od finálního přijetí a vydání jako mezinárodní normy ISO. Dokument ISO DIS je vydán pod původním číslem specifikace CAN, tj. ISO 11898-1, a obsahuje specifikaci jak původního protokolu CAN 2.0 B, tak i nového protokolu CAN FD.
Dalším postupným cílem sledovaným při rozvoji sběrnice CAN je zvýšit její maximální přenosovou rychlost nad 1 Mb/s. S tím souvisí též potřeba nové specifikace budičů (transceiverů). Ta bude obsažena v normě ISO 11898-2, jejíž přepracované znění je právě připravováno. V současné době lze koupit budiče pro rychlosti do 2 Mb/s, do budoucna je počítáno též s rychlostmi 5 a 8 Mb/s.
Shrnutí, kompatibilita a budoucnost
Vývoj specifikace protokolu CAN FD byl od firmy Robert Bosch logickým a správným počinem. Firma ji poprvé předložila veřejnosti v roce 2012 a při pohledu zpět lze říci, že kdyby s ní byla přišla o pár let dříve, automobilovým výrobcům by ubylo hodně starostí. Jakmile specifikace CAN FD vešla ve známost, mnoho uživatelů ustoupilo od použití sběrnice jiného typu než CAN, sice rychlejší, ale pro ně nové a dražší, a rozhodlo se vyčkat na finální, standardizovanou podobu specifikace CAN FD. Přijetí specifikace CAN FD za normu ISO bylo ovšem, v důsledku zjištění zmíněné bezpečnostní chyby a průtahů při její opravě, stále oddalováno, což je pro potenciální uživatele nepříjemné. Podle současných informací bude ale specifikace CAN FD přijata za normu ISO ještě v roce 2015. Povzbuzující je, že několik výrobců integrovaných obvodů je ve více či méně pokročilém stadiu přípravy sériové výroby řadičů pro sběrnici CAN FD a že pro tuto sběrnici již také existují první zařízení i softwarové nástroje (obr. 4, obr. 5). Známa jsou i stanoviska některých automobilových firem, že mají zájem sběrnici CAN FD po jejím přijetí za normu ISO zavést do vozidel.
Sběrnice CAN FD není náhradou sběrnice CAN 2.0 B, ale její „lepší“ variantou. Současné řadiče pro sběrnici CAN 2.0 B, po příchodu sběrnice CAN FD hovorově označované jako „klasické“, budou dále vyráběny. Řadiče pro sběrnici CAN FD budou umět přijímat a odesílat i klasické rámce podle specifikace CAN 2. 0.
Nutné je ovšem upozornit, že klasické řadiče CAN „nerozumějí“ rámcům podle specifikace CAN FD, považují je za chybu v přenosu a budou je detekovat jako chybné rámce na sběrnici.
Díky rychlejšímu přenosu dat a dokonalejší detekci chyb v rámci CAN FD je očekáváno využití sběrnice CAN FD nejen v automobilovém průmyslu, ale i v ostatních odvětvích průmyslu, a to zejména v oboru automatizace.
Literatura:
[1] CAN with Flexible Data-Rate Specification, Version 1.0 [on-line]. Berlin, Robert Bosch GmbH, April 2012. [cit. 23. 8. 2015]. Dostupné
[2] MUTTER, A.: CAN FD and the CRC issue. CAN in Automation Newsletter, březen 2015.
Miroslav Macháček,
Konference o sběrnici CAN FD v Praze
Mezinárodní konference o sběrnici CAN FD se uskuteční v Praze ve čtvrtek 24. září 2015. Hlavním organizátorem konference je sdružení CAN in Automation (CiA,
http://can-cia.org), jehož českým partnerem je firma MACH SYSTEMS s. r. o., přední český dodavatel testovacích, diagnostických a simulačních nástrojů pro sběrnicové systémy. Jednacím jazykem konference je angličtina. Další informace o konferenci a možnostech přihlásit se k účasti (také
on-line) lze nalézt na
www.machsystems.cz.
Obr. 1. Klasický rámec sběrnice CAN: a) standardní, b) rozšířený (extended): ACK – Acknowledge, ACK Del – ACK Delimiter, CRC – Cyclic Redundancy Check, CRC Del – CRC Delimiter, DLC – Data Length Code, EOF – End of Frame, IDE – Identifier Extension, RTR – Remote Transmission Request, SOF – Start of Frame, SRR – Substitute Remote Request
Obr. 2. Fáze při přenosu rámců CAN s ilustrací důsledku zvýšení přenosové rychlosti v datové fázi rámce podle spedifikace CAN FD
Obr. 3. Rámec CAN FD: a) standardní, b) rozšířený (extended): BRS – Bit Rate Switch, ESI – Error State Indicator, FDF – CAN FD Frame (pozn.: pro pole dat délky 0 až 16 bajtů je délka CRC sedmnáctibitová, pro pole dat délky 20 až 64 bajtů je CRC 21bitové)
Obr. 4. Jeden z prvních převodníků s podporou protokolu CAN FD: Kvaser Memorator Professional 5xHS (pětikanálový CAN-USB
převodník/datalogger)
Obr. 5. X-Analyser – software pro podporu sběrnice CAN FD s použitím PC