Der folgende Text ist ein Ausschnitt aus meiner Studienarbeit von 1999, die sich mit der Entwicklung eines CAN-Interfaces beschäftigt hat. Der  folgende Abschnitt ist nur ein Appetizer. Der vollständige Text zu den Grundlagen des CAN-Bus kann hier als PDF-File heruntergeladen werden.

Grundlagen des CAN-Bus

Beim CAN-Protokoll handelt es sich um ein Bus-Protokoll, das seit Anfang der 80'er Jahre auf betreiben der Automobilindustrie entwickelt wurde. Ziel der Entwicklung war es durch die Einführung eines Bussystems im Kraftfahrzeug die Verkabelung der einzelnen Systeme, Sensoren und Aktoren zu vereinfachen und Kosten zu sparen. Für den Einsatz im KFZ-Bereich wurden deshalb die folgenden Anforderungen an das Kommunikationsprotokoll formuliert und später im CAN-Protokoll realisiert:

Der CAN-Bus muss für so genannte Klasse-C Applikationen geeignet sein. D.h., der Bus muss in der Lage sein zeitkritische Informationen mit Zykluszeiten von 1 bis 10ms und Botschafts-Latenzzeiten von unter 1ms zu übertragen. Die Länge der einzelnen Botschaften umfasst dabei nur wenige Byte. Die zu erwartende Datenrate bei dieser Anwendung liegt im Bereich von 250kBit/sec bis 1MBit/sec. Beispiele für typische Klasse-C Applikationen sind der Bereich des Motormanagements und der Stabilitätskontrolle.

Darüber hinaus sollte der CAN-Bus aber auch für so genannte Klasse-A Applikationen geeignet sein. In dieser Klasse sind Applikationen zusammengefasst, die nur geringe Datenraten benötigen und eine große Zykluszeit zwischen den Datentransfers besitzen. Die Datenrate liegt bei dieser Applikation unterhalb von 10kBit/sec. Im KFZ-Bereich ist ein Beispiel für diese Applikationsklasse die gesamte Chassis-Elektronik & Elektrik im Auto, also Zentralverriegelung, Bremsleuchten, Blinker usw.

Eine Anforderung, die sich aus Sicherheitsgründen ergibt, ist die Multimaster-Fähigkeit des CAN-Busses. Bei einem Multimaster-System ist jeder einzelne Knoten in der Lage eine Kommunikation einzuleiten. Dadurch wird vermieden, das z.B. durch einen Defekt in einem Knoten die Funktion des Gesamtsystems gefährdet ist. Für den Fall, das mehrere Knoten gleichzeitig versuchen auf dem Bus Daten zu übertragen, müssen entspre­chende Vorkehrungen getroffen werden, um diese Zugriffskonflikte zu erkennen und aufzulösen. Der CAN-Bus bedient sich der Zugriffstechnik CSMA/CD+CR (Carrier Sense, Multiple Access/ Collision Detection + Collision Resolution). Einzelheiten zur Kollisionserkennung und Busarbitierung können dem PDF-File entnommen werden.

Ein weiterer Vorteil ist, dass durch die Multimaster-Fähigkeit eine ereignisgesteuerte Kommunikation ermöglicht wird. D.h., jeder Teilnehmer ist in der Lage die Übertragung von Informationen, die durch ein Ereignis erzeugt wurden, selbstständig  auszulösen. Dabei werden die Informationen mit einer so genannten Broadcast-Kommunikation übertragen. Broadcast-Kommunikation heißt, dass die gesendete Information von allen Teilnehmern empfangen wird. Die Auswertung der empfangenen Daten in den Teilnehmern erfolgt anhand des gesendeten inhaltsbezogenen Identifiers der Nachricht.  Aus diesem Grund wird jedem Ereignis ein eindeutiger Identifier zugeordnet.

Weiterhin ist beim CAN-Protokoll auch die Möglichkeit vorgesehen durch Anforderung das Versenden von Informationen auszulösen. Diese Abfrage von Informationen wird Remote Request genannt. Bei einem Remote Request wird ein spezieller Remote Frame gesendet, der keine Daten sondern nur den Identifier der gewünschten Nachricht enthält. Dieser Remote Frame wird dann von einem Teilnehmer mit einem normalen Datenframe beantwortet. Die Nachricht wird wiederum von allen Teilnehmer empfangen und die Datenkonsistenz im ganzen System ist sichergestellt.

Bei der Entwicklung des CAN-Protokolls wurde auch darauf geachtet, dass Möglichkeiten zur Erkennung von Übertragungsfehlern vorhanden sind. Dazu wurde eine Fehlererkennung in mehreren Ebenen vorgesehen. Auf Botschaftsebene ist eine Fehlererkennung mittels einer im Telegramm übertragenen 15-Bit CRC-Prüfsumme (CRC:=Cyclic Redundancy Check) implementiert. Darüber hinaus ist auch eine Fehlererkennung auf der physikalischen Übertragungsebene vorgesehen. Weitere Einzelheiten zur Fehlererkennung können den nachfolgenden Kapiteln entnommen werden.

Durch die oben beschriebenen Eigenschaften des Protokolls setzt sich der CAN-Bus in der Autoindustrie seit 1990 immer mehr durch. Inzwischen wird von fast allen Herstellern dieses Protokoll in ihren Fahrzeugen verwendet. Darüber hinaus setzt sich der CAN-Bus auch im Bereich der Industriesteuerungen und der Automatisierungstechnik durch. Die weitere Verbreitung des CAN-Busses auch außerhalb der Automobilindustrie führte dazu, dass der Wunsch nach dem CAN-Protokoll als  »offenes« Kommunikationsprotokoll immer größer wurde. 1992 wurde dann von der CiA (CAN in Automation) damit begonnen die OSI Layer 1,2 & 7 zu definieren.

Layer Aufgabe
7 Application Funktionen zum Zugriff auf die Daten bereitstellen
6 Presentation Konvertierung & Formatanpassung von Daten
5 Session Dienste zum Auf- & Abbau von Sitzungen
4 Transport Verbindung zwischen Prozessen herstellen
3 Network Vermittlung der Daten zwischen verschiedenen Quellen & Zielen
2 Data Link Sichere Übertragung der Telegramme sicherstellen
1 Physical Definiert die Übertragung der einzelnen Bits auf dem Übertragungsmedium

 

Im OSI Layer 1 wurden detaillierte Spezifikationen für die physikalische Ebene der Kommunikation festgelegt. In diesem Layer sind z.B. Empfehlungen für Kabel, Stecker und Leistungstreiber zusammengefasst Der OSI Layer 2, der Data Link Layer, steuert und schützt die Kommunikation auf der Ebene eines Frames. Die OSI Layer 3 bis 6 sind für CAN nicht notwendig. Die Spezifikation auf der Ebene des Application-Layers (Layer 7) ist nicht festgelegt. Für diesen Layer sind aber verschiedene Protokolle definiert worden (z.B. SDS, DeviceNET, OpenCAN, usw.), aber es gibt keine bindende Spezifikation.

 

Weiter in der PDF-Version des Textes.....

 

Weiterführende Literatur zum Thema CAN:

CAN: Controller Area Network: Grundlagen, Design, Anwendungen, Testtechnik
Wolfhard Lawrenz & Nils Obermöller
ISBN: 978-3800733323