CAN FD – nová verze CAN protokolu

01.12.2015

CAN-Logo_220x122px_141112

CAN FD (CAN with Flexible Data-Rate) je nová verze CAN protokolu, která poskytuje vyšší rychlosti přenosu, delší datové části rámců a lepší detekci chyb než současná verze CAN 2.0B. Ještě letos by se měla stát ISO standardem a mnozí výrobci integrovaných obvodů a automobilů jsou na ni připraveni. Na konci září 2015 se v Praze koná mezinárodní CAN FD konference.

Ú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í – 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. Ročně se nainstaluje kolem 800 miliónů CAN kontrolérů.
CAN síť má ale 2 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 CAN protokolu – CAN FD (CAN with Flexible Data-Rate). Tu prezentovala firma Robert Bosch GmbH v roce 2012 a v půlce 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.

Historie CAN sběrnice

V roce 1983 začala firma Robert Bosch pracovat na interním projektu nové komunikační sběrnice pro automobilový průmysl a výsledek tohoto projektu byl o 3 roky později uveřejněn jako specifikace CAN protokolu.
CAN sběrnice se od svého počátku rozšířila do všech průmyslových odvětví, kde je nějaká komunikace mezi jednotlivými částmi stroje či technologie – automobily a nákladní vozidla, automatizace, zemědělství, zdravotní technika, letectví, námořní a armádní technika a další.
V roce 1991 vydala Robert Bosch GmbH specifikaci sběrnice CAN 2.0B, která obsahovala jak původní CAN rámec ze specifikace CAN 2.0A s 11-bitovým identifikátorem (Obrázek 1a), tak i nový 29-bitový identifikátor zprávy (Obrázek 1b). Specifikace 2.0B se v roce 1995 stala normou ISO 11898-1.
a) Standard CAN Frame cesky
b)Extended CAN Frame cesky
Obrázek 1: Klasický CAN rámec – a) Standardní, b) Rozšířený (Extended)
CAN rámec obsahuje maximálně 8 datových bajtů a dnešní maximální rychlost přenosu je 1 Mb/s. Oba tyto parametry jsou již několik let, zejména v automobilovém průmyslu, nedostačující a CAN sběrnice byla v několika vozidlech (BMW, Audi, Mercedes-Benz, Porsche, Bentley) nahrazena konkurenční sběrnicí FlexRay. Ta je sice rychlejší a deterministická, ale stále její nasazení do vozidla vychází oproti CANu velice draho (složitost protokolu, cena vývojových nástrojů a integrovaných obvodů). Proto se firma Robert Bosch GmbH rozhodla připravit novou revizi CAN protokolu, která bude rychlejší, přitom stále robustní a cenově dostupná i pro použití ve velkých sériích.

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í:
1) 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.
2) Zvýšení rychlosti přenosu v datové fázi rámce
Obrázek 2 znázorňuje rozdělení CAN a CAN FD rámců na 2 čá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 je tak, že CAN FD kontrolér má 2 registry pro nastavení těchto rychlostí.

CAN vs CAN FD Data Phase cesky

Obrázek 2: Navýšení rychlosti přenosu pro Datovou fázi rámce

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 (Acknowledgment) 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.
3) 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 CAN FD rámce

CAN FD rámec je velice podobný klasickému CAN rámci. Opět zde jsou 2 varianty identifikátorů zpráv – Standardní a Rozšířený (Obrázek 3 a), b)). Je zde také arbitrace přes Identifikátor (Arbitration), řídicí (Control) a datová část (Data), kontrolní součet (CRC) a potvrzení (ACK).
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.
a)Standard CAN FD Frame cesky
b)Extended CAN FD Frame cesky
Obrázek 3: CAN FD rámec – a) Standardní, b) Rozšířený (Extended)
pozn.: Bit Stuffing se neuvažuje

ISO standardizace

can
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ě CAN FD specifikace, která pak musela být znovu předložena k ISO standardizaci. Dnešní (tj. finální) verze CAN FD protokolu se slangově nazývá „ISO CAN FD“ a ta původní z roku 2014 „non-ISO CAN FD“.
Na konci června 2015 proběhlo hlasování členů sdružení ISO o CAN FD specifikaci 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 CAN specifikace 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 CAN FD specifikace 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.XA3-cesky
Kvůli zmíněné bezpečnostní chybě a dohadování její opravy se ISO standardizace protahovala, ale dle současných informací tomu 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 i 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 CAN FD rámci se očekává využití CAN FD kromě automobilového sektoru i v jiných průmyslových odvětví a to zejména v automatizaci.

Miroslav Macháček, MACH SYSTEMS s.r.o.
září 2015

Dále:

 

 

Článek vyšel na HW.cz a časopisech Automobil Industry, Automa a Sdělovací technika.
CAN FD logo je majetkem Robert Bosch GmbH.