deutschenglish
Symbolbild Arbeitspapier für Entwicklung und Seminare

CAN FD - Eine Einführung

CAN FD (CAN Flexible Data Rate) ist eine Erweiterung des "klassischen" CAN-Bus (Classical CAN) und durch den Standard ISO 11898-1:2015 definiert. CAN FD erlaubt einerseits das Versenden einer größeren Datenmenge (Payload): die Grenze von 8 Byte bei Classical CAN wurde auf 64 Byte bei CAN FD angehoben. Weiterhin ist eine höhere Übertragungsrate innerhalb der Datenphase möglich, auch über das bisherige Limit von 1 MBit/s hinaus.

Logo CAN FD

CAN FD Datenrahmen

Bei Classical CAN wurde lediglich zwischen zwei Datenrahmen unterschieden: Standard Frames (CAN 2.0A) mit 11-Bit Identifier und Extended Frames (CAN 2.0B) mit 29-Bit Identifier. Diese Formate bleiben in dieser Form erhalten, bekommen im Zuge von CAN FD jedoch einen neuen Namen.

Tabelle 1: CAN FD Frame Formate

Abkürzung

Bedeutung

Beschreibung

CBFF Classical Base Frame Format 11-Bit Identifier, maximal 8 Byte Nutzdaten, (bisher Standard Frame)
CEFF Classical Extended Frame Format     29-Bit Identifier, maximal 8 Byte Nutzdaten, (bisher Extended Frame)
FBFF FD Base Frame Format 11-Bit Identifier, maximal 64 Byte Nutzdaten
FEFF FD Extended Frame Format 29-Bit Identifier, maximal 64 Byte Nutzdaten

Ein CAN FD Controller ist abwärtskompatibel, d.h. er kann die bisherigen Formate des Classical CAN verarbeiten. Umgekehrt geht dies jedoch nicht: für einen Classical CAN Controller sind die Frame Formate FBFF und FEFF unbekannt und führen unweigerlich zur Aussendung von Error Frames. Daher müssen für den Einsatz von FD Frame Formaten alle Teilnehmer im Netzwerk einen CAN FD Controller haben.

 

Die wesentlichen Unterschiede im Rahmenaufbau zum Classical CAN Data Frame sind in Bild 1 kenntlich gemacht.

 

Bild 1: CAN FD Base Frame Format

CAN FD Base Frame Format

Das CAN FD Format unterstützt keine Remote Frames, das bisherige RTR Bit nach dem Identifier wird durch das Bit "Remote Request Substitution" (RRS) ersetzt.

 

Das Bit FDF (FD Format) im erweiterten Control Field ist der Kennzeichner für das flexible Datenformat. War bei einem Classical CAN Frame der gültige Wertebereich für das DLC Feld (Data Length Code) im Bereich 0 bis 8, so sind bei einem CAN FD Frame die Werte 0 bis 15 gültig. Der Wert des DLC Feldes bestimmt die Anzahl der Bytes im Data Field und wird in folgender Weise interpretiert:

Tabelle 2: Kodierung der Datenlängen

DLC Wert

Data Field size (Bytes)

0 .. 8
0 .. 8
9
12
10
16
11
20

DLC Wert

Data Field size (Bytes)

12
24
13
32
14
48
15
64

Auch ohne die schnellere Datenübertragung in der Datenphase bringt alleine schon die größere Datenmenge erhebliche Vorteile. Bei einer nominalen Bitrate von 1 MBit/s liegt die Netto-Übertragungsrate (d.h. die Transferrate für das Data Field) für einen Classical CAN Controller bei 576 kBit/s. Bei einem CAN FD Frame mit einer Datenlänge von 64 Byte liegt die Netto-Übertragungsrate bei 903 kBit/s.

Verbesserte Fehlererkennung

Über das Bit ESI (Error State Indicator) im Control Field wird nun durch den Sender einer Nachricht signalisiert ob er sich im Error Active oder Error Passive Zustand befindet, was die Fehlersuche in Netzwerken erheblich verbessert.

Um durch die potenziell höhere Anzahl an Stuff-Bits in einer Nachricht nicht Gefahr zu laufen einen schlechteren Wert für die Restfehlerwahrscheinlichkeit als bei Classical CAN zu erhalten wurde ein Stuff-Bit Counter (3 Bit + Parity) eingeführt. Das neue Stuff-Count Feld wird zu Beginn des CRC Feldes gesendet.

Steigerung der Datenrate

Über das Bit BRS (Bit Rate Switch) kann bei einem CAN FD Frame die Übertragungsgeschwindigkeit in der Datenphase (diese beginnt beim BRS Bits und endet beim letzten Bit der CRC) erhöht werden. Der maximale Wert für die Geschwindigkeit in der Datenphase wird nur durch die verwendeten CAN Controller bzw. CAN Transceiver limitiert und liegt derzeit - je nach Hersteller - zwischen 5 MBit/s und 8 MBit/s.

 

Verfügbare CAN FD Controller

Die Entwicklung von CAN FD Systemen steht und fällt mit verfügbaren CAN Controllern. Die folgende Liste gibt eine Übersicht über den aktuellen Stand der CAN FD Microcontroller, erhebt aber keinen Anspruch auf Vollständigkeit.

 

Hersteller

Controller

Beschreibung

CAN Core

Microchip
 
MCP2517FD
 
Externer CAN FD Controller, 1 x CAN, SPI Interface
 
Microchip
 
Microchip
 
MCP2518FD
 
Externer CAN FD Controller, 1 x CAN, SPI Interface
 
Microchip
 
NXP
 
LPC546XX Familie Cortex-M4 (220 MHz), 2 x CAN FD
 
Bosch M_CAN
NXP
 
S32K Familie
 
Cortex-M0 / Cortex-M4F (bis 112 MHz), 1 .. 3 x CAN FD
 
FlexCAN
 
STM
 
STM32L5
Familie
Cortex-M33 (110 MHz), 1 x CAN FD
 
CANFDL
 
STM
 
STM32H7 Familie Cortex-M7 (400 MHz), 1 x CAN FD
 
Bosch M_CAN
TI
 
TCAN4550
 
Externer CAN FD Controller mit integriertem Transceiver, 1 x CAN, SPI Interface Bosch M_CAN

Nach oben

MicroControl auf Facebook MicroControl auf Twitter MicroControl Blog