Ještě letos by se měla stát standardem ISO a mnozí výrobci integrovaných obvodů a automobilů jsou na ni připraveni. Koncem září 2015 se pak v Praze koná mezinárodní konference CAN FD (na HW.cz jsme pozývali tady).
Úvod
CAN (Controller Area Network) je sériová sběrnice používaná pro komunikaci mezi elektronickými moduly a jednotkami. Využívá se převážně v automobilech pro komunikaci mezi řídicími jednotkami, ale též v jiných odvětvích – v procesní komunikaci, robotice, výtahových a drážních systémech a dalších. Jejími hlavními výhodami jsou nedestruktivní, prioritní arbitrace zpráv a detekce / signalizace chyb komunikace. Kontrolérů CAN se ročně nainstaluje okolo 800 miliónů.
Síť CAN má ale dvě omezení – maximální délka datového rámce je 8 bajtů a při rychlosti 1 Mb/s je maximální délka sběrnice kolem 40 metrů. Tyto problémy řeší nová verze protokolu CAN – CAN FD (CAN with Flexible Data-Rate). Tu prezentovala firma Robert Bosch GmbH v roce 2012 a v polovině roku 2015 se stala ISO DIS (Draft International Standard). Během několika měsíců by měla být připravena finální ISO specifikace CAN FD protokolu.
Vlastnosti a změny v CAN FD
CAN FD protokol je založen na klasickém CANu a obsahuje tyto změny a vylepšení:
- Počet datových bajtů
Klasický CAN rámec může obsahovat 0 - 8 datových bajtů. To je vzhledem k ostatním částem rámce malý počet bitů, ve kterém se nese reálná informace a efektivní bit rate je tedy oproti baud rate o hodně menší. CAN FD rámec poskytuje kromě základní délek 0 - 8 bajtů datové části ještě délky 12, 16, 20, 24, 32, 48, 64 a využívá pro ně DLC kódy 1001b - 1111b. Zvětšením poměru velikosti datové části k ostatním částem rámce se zvyšuje efektivní bit rate.
- Zvýšení rychlosti přenosu v datové fázi rámce
Obr. 1 znázorňuje rozdělení CAN a CAN FD rámců na dvě části – arbitrační a datová fáze (Arbitration Phase a Data Phase). Arbitrační fáze je část rámce se základní rychlostí přenosu, v datové fázi má pak odesílatel možnost přepnout na vyšší rychlost (baud rate) a tím zkrátit čas přenosu. To znamená, že každá jednotka v síti pak musí znát obě rychlosti. Z hlediska uživatele to bude tak, že CAN FD kontrolér má pro nastavení těchto rychlostí dva registry.
Proč se nezrychlila rychlost přenosu celého rámce? Jednoduchá odpověď: „Arbitrace a robustnost“. Při odesílání Identifikátoru zprávy se mezi aktivními odesílateli rozhoduje, který z nich získá prostor pro odeslání zbytku rámce (nižší Id = vyšší priorita) a pokud jich je tedy v jeden okamžik více, bere se zde zpoždění signálu na sběrnici mezi všemi těmito odesílateli a to oběma směry (tzv. round trip). To je zásadní omezení na rychlost komunikace vzhledem k maximální délce sběrnice a vypovídá to o robustnosti komunikace. Podobně je tomu i při potvrzení správnosti příjmu (Acknowledgement) na konci rámce, kterého se účastní všichni aktivní příjemci, kteří daný rámec přijali bez chyby. Zde je stejný důvod, proč byla zachována nižší rychlost.
- Zabezpečení chyb přenosu
CRC část zabezpečuje detekci chyb v rámci. Na rozdíl od klasického CANu je v CAN FD rámci ještě „Stuff Count“, což je tříbitová hodnota počtu Stuff bitů modulo 8 zakódovaná Grayovým kódem, doplněná jedním bitem sudé parity. Ta byla do specifikace přidána až po odhalení bezpečnostní chyby (více v kap. ISO standardizace) a detekuje chyby zkrácení nebo prodloužení až o 7 bitech. Samotné CRC je buď 17 nebo 21 bitů dlouhé v závislosti na počtu datových bajtů rámce (21 bitové pro data delší než 20 bajtů), aby byla zaručena Hammingova vzdálenost 6.
V CAN FD rámci je použit původní Bit stuffing z klasického CANu, kdy se po pěti po sobě jdoucích bitech stejné logické úrovně vkládá Stuff bit opačné hodnoty. To platí až do CRC části, kde je pak použita nová metoda Bit stuffingu, kdy po 4 bitech následuje vždy tzv. fixní stuff bit, jehož hodnota je opačná oproti předchozímu bitu. Celková reziduální schopnost detekce chyb je vyšší než u klasického CAN.
Struktura rámce CAN FD
Rámec CAN FD je velice podobný klasickému rámci CAN. Opět zde jsou dvě varianty identifikátorů zpráv – standardní a rozšířený (Obr. 2 a), b)). Je zde také arbitrace přes Identifikátor (Arbitration), řídicí (Control) a datová část (Data), kontrolní součet (CRC) a potvrzení (ACK).
Obr. 2: Rámec CAN FD – a) standardní (nahoře), b) rozšířený (Extended); pozn.: Bit Stuffing se neuvažuje
Tzv. „Remote“ rámce, které neobsahují datovou část a kterými se žádá o data, v CAN FD nejsou a tento původní RTR bit je nazván r1, má vždy dominantní úroveň a je rezervovaný pro budoucí rozšíření standardu. V řídicí části jsou nově bity FDF (CAN FD frame), BRS (Bit Rate Switch) a ESI (Error State Indicator). FDF značí, zda se jedná o CAN FD nebo CAN frame, BRS signalizuje přepnutí na vyšší baud rate pro datovou fázi rámce a 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. CRC část byla popsána v předchozí kapitole.
ISO standardizace
V roce 2014, kdy bylo CAN FD již podáno k ISO standardizaci, byla objevena bezpečnostní chyba, která za určitých okolností způsobovala, že i když byl rámec při přenosu porušen, příjemci ho mohli přijmout bez chyby (více viz [1]). Trvalo rok, než se členové CAN FD Task Force dohodli na řešení tohoto problému a následné změně specifikace CAN FD, která pak musela být znovu předložena k ISO standardizaci. Dnešní (tj. finální) verze protokolu CAN FD se slangově nazývá „ISO CAN FD“ a ta původní z roku 2014 „non-ISO CAN FD“.
Na konci června 2015 se konalo hlasování členů sdružení ISO o specifikaci CAN FD a toto hlasování proběhlo úspěšně. CAN FD protokol se stal ISO DIS (Draft International Standard) a je tedy jen krůček od finálního vydání jako ISO standard. Pro schválení hlasovalo 15 zemí a nějaké se hlasování neúčastnily. ISO DIS je vydaný pod původním číslem specifikace CAN a to ISO 11898-1, v něm nalezneme jak původní CAN 2.0B, tak i nový CAN FD.
S navýšením baud rate nad 1 MBaud/s souvisí též nová specifikace budičů (transreceiverů). Ta bude obsažena v ISO 11898-2 a její nová specifikace je v současné době v přípravě. V současné době lze koupit budiče pro rychlosti do 2 Mb/s, do budoucna se též počítá s rychlostmi 5 a 8 Mb/s.
Shrnutí, kompatibilita a budoucnost
CAN FD byl logický a správný krok firmy Robert Bosch, která první koncept specifikace CAN FD uveřejnila v roce 2012, mohl ale přijít o pár let dříve a automobilovým výrobcům by to mnoho věcí zjednodušilo. Jakmile se CAN FD stalo žhavým tématem, mnoho firem si rozmyslelo nasazení jiné, rychlejší sběrnice a raději stále vyčkávají na CAN FD.
Kvůli zmíněné bezpečnostní chybě a dohadování její opravy se ISO standardizace protahovala, ale dle současných informací bude ještě v roce 2015. Několik výrobců integrovaných obvodů je připraveno na výrobu CAN FD kontrolérů a též jsou i odezvy od některých automobilových firem, že by CAN FD chtěli do vozidla implementovat po schválení finálního ISO standardu.
CAN FD není náhrada CAN 2.0B, ale její „lepší“ varianta. Současné 2.0B kontroléry, které se po příchodu CAN FD hovorově nazývají klasické („Classic“) CAN kontroléry, se stále budou vyrábět. CAN FD kontroléry budou umět přijímat a odesílat i klasické CAN rámce. Je nutné ale podotknout, že klasické CAN kontroléry nerozumějí CAN FD rámcům, považují je za chybu a budou tedy generovat chybové rámce na sběrnici.
Díky rychlejšímu přenosu a lepšímu zabezpečení detekce chyb v rámci CAN FD se očekává využití CAN FD kromě automobilového sektoru i v jiných průmyslových odvětvích a to zejména v automatizaci.
Mezinárodní konference o CAN FD v Praze
Ve čtvrtek 24. 9. 2015 se v Praze koná mezinárodní konference o CAN FD, nové verzi CAN sběrnice. Hlavním organizátorem je německé sdružení CAN in Automation (CiA) a 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. Tato jednodenní konference je v anglickém jazyce.
Více informací o konferenci a možnostech registrace (též on-line) naleznete na stránkách MACH SYSTEMS a CiA:
Zájemcům doporučujeme zaregistrovat se v dostatečném předstihu!
Reference
[1] Dr. Arthur Mutter (Robert Bosch GmbH): ‘CAN FD and the CRC issue‘‘, CAN in Automation Newsletter, březen 2015
O autorovi
-
Miroslav Macháček je jednatelem firmy MACH SYSTEMS s.r.o., která se zabývá prodejem a vývojem SW a HW vybavení a testovacích / diagnostických nástrojů pro sběrnicové systémy (CAN, LIN, FlexRay a jiné). Poskytuje služby v oblasti vývoje / integrace IT řešení, embedded systémů a mobilních aplikací. Firma též dodává automatizační řešení a systémy rozpoznání registračních značek vozidel.
Komentáře
Chyba ve vykladu funkce CAN-FD v tomto clanku
Dobry den,
rad bych Vas upozornil, ze Vas clanek neni aktualni a uvadi nepravdy o principu CAN FD.
Napriklad problematika CRC: polynomy pro vypocet CRC sekvence jsou 3! nikoli 2 jak uvadite.
(15,17,21) viz ISO dokument str. 33
Tudiz ani delka CRC sekvence nema dve, ale tri moznosti.
S pozdravem
KFI