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.

Bitrate Kabellänge
10 kbits/s 6,7 km
20 kbits/s 3,3 km
50 kbits/s 1,0 km
125 kbits/s 500 m
250 kbits/s 250 m
500 kbits/s 125 m
1 Mbits/s 25 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:

Pin Signal Beschreibung
1 nicht verwendet
2 CAN-L negiertes CAN-Signal (Dominant Low)
3 CAN-GND Masse
4 nicht verwendet
5 CAN-SHLD Schirmung (optional)
6 GND Geräte Masse (optional)
7 CAN-H positives CAN Signal (Dominant High)
8 nicht verwendet
9 Vcc Versorgungsspannung (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.