CAN

Allgemeines

CAN (Controller Area Network) wurde 1983 von der Firma Robert Bosch GmbH entwickelt und 1986 zusammen mit Intel vorgestellt. Der CAN-Bus wurde ursprünglich für den Einsatz in Kraftfahrzeugen entwickelt. In Verbindung mit den Normen SAE J2284 und SAE J1939 wird er zur Übermittlung von Diagnosedaten und Steuergeräteinformationen genutzt. Es handelt sich dabei um ein serielles Bussystem mit Multi-Master-Funktionalität und Echtzeitfähigkeit. Somit können alle Knoten senden und den Bus gleichzeitig abhören (Broadcast). In der Norm sind die beiden unteren Schichten des ISO/OSI-Schichtenmodells spezifiziert, insbesondere durch ISO 11898-1 (Data Link Layer) und ISO 11898-2 (Physical Layer). In der Fahrzeugdiagnose werden CAN-High und CAN-Low üblicherweise über den OBD-Stecker herausgeführt.

Der CAN-Bus ist aktuell noch das am weitesten verbreitete Bussystem in der Fahrzeugtechnik. Er wird jedoch nicht mehr nur in diesem Bereich eingesetzt, sondern auch in industriellen Anlagen und anderen störsignalanfälligen Umgebungen.

Seit 2008 ist der CAN-Bus bei Neufahrzeugen die einzig zugelassene Diagnose-Schnittstelle für abgasrelevante Diagnosen.

CAN, CAN Architektur, visuelle Darstellung
CAN Architektur

Physikalische Beschreibung

Üblicherweise arbeitet der CAN-Bus über eine verdrillte zwei-Draht-Leitung, die CAN-High und CAN-Low genannt wird und eine symmetrische Signalübertragung ermöglicht. Oft werden optional eine Ground-Leitung (CAN-GND) und eine 5V-Versorgungsleitung mitgeführt. Da ein Bit gleichzeitig auf zwei Leitungen mit einer gegenseitigen Potentialänderung abgebildet wird, wird die charakteristische Störsicherheit des CAN-Busses erreicht. Es handelt sich um ein differentielles Signal. Eingestreute Störungen wirken auf beiden Leitungen gleichzeitig in dieselbe Richtung. Da beide Leitungen einen invertierten Pegel haben, bleibt die Differenz auch bei Störungen gleich. Um Signal-Reflexionen auf dem Bus zu vermeiden, werden beide Bus-Enden mit einem 120 Ohm Widerstand abgeschlossen.

Zwei unterschiedliche Pegel auf dem Bus werden als dominanten Zustand bezeichnet, was einer logischen 0 entspricht. Somit spricht man bei gleichen Pegeln von einem rezessiven Zustand, was einer logischen 1 entspricht.

CAN, Pegel, visuelle Darstellung
Pegel

Übertragungsraten

Ein CAN-Telegramm kann zwischen 1 und 8 Bytes Nutzdaten transportieren. Durch den vollständigen Frame-Aufbau einer CAN-Nachricht (s.u.) ergeben sich damit Framelängen von 58 bis zu 114 Bit je Frame. Damit lassen sich die Übertragungsraten wie folgt berechnen:

CAN, Maximale Übertragungsraten
Maximale Übertragungsraten

Aufgrund des beschriebenen physikalischen Aufbaus eines CAN-Busses lassen sich unter Berücksichtigung der geforderten Querschnitte und Signaldämpfungen die maximalen Leitungslängen berechnen, bis zu denen eine sichere Datenübertragung gewährleistet ist.

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

Die zentralen Eigenschaften des CAN-Busses werden durch die Verwaltung der Teilnehmerprioritäten bezüglich des Sendens von Nachrichten sowie durch eine Strategie zur Fehlererkennung bestimmt. Beides wird in der Regel durch die auch als CAN-Controller bzw. CAN-Zellen bezeichneten Hardware-Chips bereitgestellt.

Kollisions-Handling/Arbitrierung

Wie bei Ethernet auch dürfen alle Teilnehmer des Busses zu beliebigen Zeitpunkten gleichzeitig senden, was zu Kollisionen führen kann. Um den Buszugriff zu priorisieren, wird eine bitweise Arbitrierung durchgeführt. Den Buszugriff erhält die Nachricht mit dem niedrigsten Identifier (und damit der größten Anzahl an Nullen). Alle anderen Teilnehmer versuchen erneut zu senden, wenn der Bus frei ist. Um Kollisionen sicher ausschließen zu können, ist eine eindeutige Vergabe der Identifier für alle Busteilnehmer erforderlich.

Fehlererkennung

Für den CAN-Bus sind bestimmte Mechanismen spezifiziert, die eine Blockade des Busses durch defekte Teilnehmer verhindern. Jeder Bus-Teilnehmer besitzt dazu einen Sende- und einen Empfangsfehlerzähler. Direkt nach dem Start befindet sich jeder Knoten im Zustand „Error Active”. Wenn eine gewisse Grenze für die Fehlerzähler überschritten wird, wechselt der Knoten in den Zustand „Error Passive”. Bei einem kompletten Ausfall des CAN-Controllers oder einer extremen Fehlerhäufung geht der Knoten in den Zustand „Bus off”. Dadurch wird der Knoten vom Bus getrennt, um die weiteren Teilnehmer nicht zu stören. Aus diesem Zustand kann der Knoten nur durch einen Reset des zugehörigen Hosts wieder herausgeführt werden.

Frameaufbau

CAN Frameaufbau, visuelle Darstellung
Frameaufbau
BezeichnungBeschreibung
SOFStart of Frame – Start eines Frames
IdentifierBase-IdentifierIdentifier
RTRRemote-Frame-Typ, zum Anfordern von Daten
SRR (extended)Substitute Remote Request
Extended IdentifierIdentifier
IDEIdentifier Extension
r, r0, r1reserviert
DLCData Length Code, enthält die Längeninformation
DataNutzdaten
CRCCRC Prüfsumme
ACKBestätigung bei korrektem Empfang der Nachricht
EOF + IFSMarker für Ende des Daten-Telegramms + Inter-Frame-Space (Abstand zwischen Frames)
Nach oben scrollen