CANBus

Vorwort

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