CAN

CAN, oft auch als CAN-Bus bezeichnet ist ein Feldbussystem. CAN steht für Controler Area Network. Der CAN-Bus ist mittlerweile standadisiert in der ISO 11898. Dort werden die Schichten 1 und 2 des OSI-Schichtenmodells definiert.

Technische Daten

Beim CAN-Bus handelt es sich um einen 2-Draht-Bus, der üblicherweise in Linientopologie ausgeführt wird. Es sind aber auch Stichleichtungen und Stern-Topologien möglich. Es kann mit geschirmten Kupferleitungen oder auch mit Lichtwellenleiter verdrahtet werden. Der CAN-Bus ist ein Multi-Master-System, alle Busteilnehmer können also gleichberechtigt senden und empfangen. Als Zugriffsverfahren wird CSMA/CR verwendet. Zur Vermeidung von Kollisionen wird die zerstörungsfreie bitweise Arbitrierung genutzt.

Die Netzausdehnung ist aufgrund der Arbitrierung abhängig von der Übertragungsrate, welche maximal bei 1 Mbit/s liegen kann. Folgende Werte sind typisch:

Datenrate max. Ausdehnung
1 Mbit/s 40 m
50 Kbit/s 1 km

Die maximale Anzahl an Busteilnehmern ist treiberabhängig und kann bei bis zu 127 liegen (CANopen). Bei DeviceNet sind maximal 64 Teilnehmer möglich.

Object-Identifier

Beim CAN-Bus handelt es sich um einen objektorientierten Bus. Dabei werden Nachrichten nicht an einen bestimmten Empfänger adressiert, sondern mit einem Object-Identifier gesendet. Jeder Knoten im Netz entscheidet dabei selbstständig, je nach Object-Identifier, ob eine Nachricht für ihn relevant ist. Eine Nachricht kann demzufolgen von keinem, einem, vielen oder allen Knoten übernommen werden. Der Object-Identifier ermöglicht auch die Priorisierung von Nachrichten: Je niedriger die Object-ID, desto höher ist die Nachricht priorisiert. Es ist zu beachten, dass der Sender für jede Object-ID eindeutig sein muss, damit die Arbitrierung funktioniert. Eine bestimmte Object-ID darf also nur von einem Knoten im Netzwerk verwendet werden.

Aufbau einer CAN-Nachricht

CAN-Nachrichten werden als Telegramme versendet. Mit jedem Telegramm kann eine begrenzte Menge an Nutzdaten verschickt werden. Das Telegramm selbst wird als Frame bezeichnet.

Frames

Es gibt vier verschiedene Arten von Frames:

  • Daten-Frame – zum Transport von Daten
  • Remote-Frame – zur Anforderung von Daten
  • Error-Frame – zum Senden von Fehlermeldungen
  • Overload-Frame – Puffernachricht, wenn Empfänger Overload im Empfangspuffer hat

Beim Daten-Frame kann ferner unterschieden werden zwischen einem Standard-Frame und einem Extended Frame. Das Extended Frame hat hat 29 Bit statt 11 Bit für den Object-Identifier zur Verfügung, wodurch wesentlich mehr Objekte adressiert werden können.

Standard-Daten-Frame

Ein Standard-Daten-Frame setzt sich aus mehreren Komponenten zusammen:

Start-of-Frame-Bit Dominantes Bit, mit dem der Beginn einer neuen Nachricht gekennzeichnet wird.

Arbitration-Field Enthält den Objekt-Identifier und das Remote-Flag zur Kennzeichnung eines Remote-Frames.

Control Field Enthält Informationen über den Umfang der nachfolgenden Daten.

Data Field Enthält die eigentlichen Nutzdaten.

CRC Field Enthält die CRC-Prüfsumme zur Fehlerüberprüfung sowie ein Delimiter-Bit als Trennzeichen.

Acknowledgement Field Enthält das Acknowledgement-Bit zum Bestätigen einer korrekt empfangenen Nachricht sowie ein Delimiter-Bit als Trennzeichen.

End-of-Frame Field Kennzeichnet das Ende einer Nachricht.

Intermission Field Zusätzliche Bits um eine Pause zwischen zwei Nachrichten zu erzeugen.

Fehlersicherheit

Der CAN-Bus hat eine sehr hohe Fehlersicherheit. Jeder Knoten, der einen Fehler detektiert, kann dieses durch Senden eines Error Flag an alle anderen Knoten im Netz melden. Diese verwerfen dann die bisher empfangenen Daten der fehlerhaften Nachricht. Tritt ein fehler mehrmals hintereinander auf, schaltet sich der betroffene Knoten ab. Auf der Nachrichtenebenen gibt es drei Sicherungsverfahren zur Fehlererkennung:

Cyclic Redundancy Check

Beim Cyclic Redundancy Check (CRC) werden aus den Datenbits zusätzliche Prüfbits berechnet, welche der zu sendenden Nachricht hinzugefügt werden. Der Empfänger kann dann überprüfen, ob bei ihm die Datenbits und die errechneten Prüfbits noch überein stimmen.

Frame-Check

Beim Framecheck wird die Nachricht auf das korrekte Format überprüft.

ACK-Fehler

Ein ACK-Fehler wird erkannt, wenn ein Sender nach dem Senden seiner Nachricht kein Acknowledgement-Signal bekommt.

Neben den Fehlerekennungsmaßnahmen auf Nachrichtenebene, gibt es noch zwei Mechanismen zur Fehlererkennung auf Bitebenen:

Monitoring

Jeder Sender beobachtet gleichzeitig auch den Bus. Stellt er Unterschiede zwischen dem von ihm gesendeten Signal und dem Buspegel fest, meldet er einen Fehler.

Bit-stuffing

Beim Bit-stuffing wird, wenn der Sender eine Folge von fünf gleichwertigen Bits (d.h. fünf mal logisch null oder eins) gesendet hat, zusätzlich ein dazu komplementäres Bit in den Nachrichtenstrom eingefügt. Dieses Stuff-Bit wird vom Emfpänger erkannt und wieder entfernt. Dadurch kann vermieden werden, dass Übertragungsfehler durch Taktunterschiede zwischen Sender und Empfänger auftreten.

Höhere Protokolle

CANopen

CANopen ist ein auf CAN basierendes Protokoll, welches überwiegend in der Automatisierungstechnik eingesetzt wird. Es wird überwiegend in Europa eingesetzt.

DeviceNet

DeviceNet ist ein ähnliches Protokoll wie CANopen, wird aber überwiegend in Amerika und Asien eingesetzt.

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert