CAN-Bus Eigenschaften und Übertragungsraten

Ein Controller Area Network (CAN-Bus) ist ein robuster Fahrzeugbusstandard, der es Mikrocontrollern und Geräten ermöglicht, in Anwendungen ohne Host-Computer miteinander zu kommunizieren. Bei dem CAN-Bus handelt es sich um ein nachrichtenbasiertes Protokoll, das ursprünglich für die Multiplex-Verdrahtung in Automobilen entwickelt wurde, um Kupfer zu sparen, aber auch in vielen anderen Bereichen eingesetzt wird.

Bitrate und Buslängen

Für den CAN-Bus bestehen folgende gängige Bitraten.

BitrateKabellänge
10 kbits/s6,7 km
20 kbits/s3,3 km
50 kbits/s1,0 km
125 kbits/s500 m
250 kbits/s250 m
500 kbits/s125 m
1 Mbits/s25 m

Die maximale Buslänge steht somit in Abhängigkeit vor der Busgeschwindigkeit.

CAN-Bus Stecker und Leitungen

Zur Verlegung des CAN-Busses werden Leitungen mit drei Adern benötigt:

  • CAN-GND
  • CAN-High
  • CAN-Low

Die Datenleitungen CAN-High und CAN-Low werden miteinander verdrillt.

Der im Standard vorgeschlagene CAN-Steckverbinder ist der 9-polige Sup-D Stecker / Buchse mit folgender Belegung:

PinSignalBeschreibung
1nicht verwendet
2CAN-Lnegiertes CAN-Signal (Dominant Low)
3CAN-GNDMasse
4nicht verwendet
5CAN-SHLDSchirmung (optional)
6GNDGeräte Masse (optional)
7CAN-Hpositives CAN Signal (Dominant High)
8nicht verwendet
9VccVersorgungsspannung (optional)

 

Das CAN-Frame

Ein CAN-Bustelegramm kann zwischen 1 und 8 Byte Nutzdaten enthalten und ist wie folgt aufgebaut:

CAN-Übertragungsraten

Bei einer Bus-Datenrate von 1 Mbit/s und einer theoretischen Auslastung von 100 % ergibt sich bei einer maximalen Datenlänge von 8 Byte eine theoretische Nutzdatenrate von ca. 561 kbit/s

Ein Frame mit einem Byte Nutzdaten bestitzt eine Länge von 58 Bit

Ein Frame mit acht Byte Nutzdaten besitzt eine Länge von 114 Bit

Die maximal möglichen Framerate beträgt somit:

\frac{1000000\ \frac{bit}{s}}{58\ \frac {bit}{Frame}}=17,241\ \frac{Frames}{s} bei 1 Byte Nutzdaten

\frac{1000000\ \frac{bit}{s}}{114\ \frac {bit}{Frame}}=8,772\ \frac{Frames}{s} bei 8 Byte Nutzdaten

Die maximale Nutzdatenrate lässt sich nun wie folgt berechnen:

8\ bit * 17,241 = 137,928\ kbit/s bei 1 Byte Nutzdaten

64\ bit * 8,772 = 561,408\ kbit/s bei 8 Byte Nutzdaten

Beispiel:

Die Übertragung einer 10 MByte großen Datei würde bei 8 Byte großen Teilstücken und einer Busgeschwindigkeit von 1 Mbit/s sowie einer  Busauslastung von 100 % mit dieser Übertragung 2 Minuten und 22 Sekunden dauern.