Language 
SitemapSitemap
  Home     Über IXXAT     Produkte     Dienstleistungen     Schulung     Know-How     Aktuelles     Kontakt     Jobs     Support  
Technologieeinführungen

Controller Area Network (CAN) - Einführung

Praktisch alle Hersteller von Mikrocontrollern bieten heute Lösungen mit integrierten CAN-Schnittstellen an. Verbunden mit immer weiteren Einsatzbereichen und Anforderungen werden darüber hinaus Leistungsmerkmale und Architekturen von integrierten CAN-Controllern ständig optimiert und funktionell erweitert. 18 Jahre nach Verfügbarkeit des ersten CAN-Protokoll-Controller-Chips hält der zunehmende Einsatz von CAN weiter an. Neben dem Einsatz in Personenwagen und Nutzfahrzeugen sowie mobilen Systemen aller Art (z.B. Fahrzeugen des öffentlichen Nahverkehrs, Aufzügen, Schiffen, Bahnen, Sonderfahrzeugen, Flugzeugen etc.) wird CAN in ständig zunehmendem Maße in der industriellen Automatisierungstechnik sowie in einer Vielzahl von Embedded Systemen der unterschiedlichsten Anwendungsbereiche - von Kaffeeautomaten bis zum Nierenstein-Lithotripter - eingesetzt [1]. Auf Basis der standardisierten höheren Protokolle und Profile (CANopen, DeviceNet und SAE J1939) stehen für die Systemimplementierung komplette Lösungen für die Realisierung verteilter Anwendungen zur Verfügung. Standardisierte Kommunikationsmechanismen, Identifierzuordnung, Netzwerkmanagementfunktionen sowie zahlreiche Geräte- und Anwendungsprofile ermöglichen darüber hinaus Interoperabilität und Austauschbarkeit von Geräten unterschiedlicher Hersteller.

Neben der Realisierbarkeit von sehr kostengünstigen Systemlösungen zeichnen sich Netzwerke auf Basis von CAN gegenüber anderen Systemlösungen durch eine Reihe von besonderen Eigenschaften aus. Im Folgenden werden die wichtigsten Leistungsmerkmale des CAN-Protokolls kurz vorgestellt:

Nachrichtenaustausch im Controller Area Network
nach dem Producer-Consumer Prinzip


Im Unterschied zur "teilnehmerorientierten" Übertragung, bei der ein Nachrichtenaustausch jeweils zwischen zwei bestimmten Teilnehmern erfolgt, basiert die Übertragung von Nachrichten bei CAN auf dem sog. "Producer-Consumer Prinzip". Eine von einem Teilnehmer gesendete Nachricht (Producer) kann hierbei von allen anderen Teilnehmern (Consumer) übernommen werden. Hierzu werden Nachrichten nicht über eine Zieladresse, sondern über einen eindeutigen "Nachrichtenidentifier" gekennzeichnet. Das Versenden von Nachrichten an alle Teilnehmer eines Netzwerkes bezeichnet man auch als "Broadcasting". Im CAN-Protokoll werden Nachrichten üblicherweise mit einem 11-Bit langen Identifier gekennzeichnet (Standardformat). Dies bedeutet, dass 2048 unterschiedliche Nachrichten pro System unterscheidbar sind. Diese Anzahl ist in den meisten Anwendungen bei weitem ausreichend. Für Sonderanwendungen (z. B. Nutzfahrzeuge, SAE J1939) ist jedoch auch die Verwendung von 29-Bit langen Identifiern (Erweitertes Format) und damit die Definition von bis zu 512 Millionen verschiedenen Nachrichten möglich. Ein Teilnehmer muss die für ihn relevanten Nachrichten aus dem auf dem Bus verfügbaren Nachrichtenstrom herausfiltern. Hierzu stellen die CAN-Protokoll-Controller-Chips hardwaremäßig realisierte Mechanismen in Form der sog. Akzeptanzfilterung zur Verfügung.

Die Multimasterfähige, ereignisorientierte Nachrichtenübertragung von CAN


Jeder Teilnehmer (Netzknoten) eines CAN-Netzwerkes kann mit dem Senden einer Nachricht beginnen, sobald der Bus frei ist. Da es vorkommen kann, dass gleichzeitig mehr als ein Netzknoten mit dem Versenden einer Nachricht beginnt, ist ein Auswahlverfahren (Busarbitrierung) erforderlich, welches sicherstellt, dass nach dessen Beendigung tatsächlich nur ein Teilnehmer mit dem Senden seiner Nachricht fortfährt. Da jeder Teilnehmer einen Nachrichtentransfer initiieren kann, ist ein direkter Nachrichtenaustausch zwischen allen Teilnehmer des Netzwerks möglich. Damit ist es auch möglich, Nachrichten nur dann zu übertragen, wenn dies zweckmäßig ist, d.h. ein entsprechendes Ereignis aufgetreten ist. Gegenüber einer zyklischen Nachrichtenübertragung ergibt sich eine wesentlich niedere Busbelastung bzw. geringere Anforderung bezüglich der erforderlichen Datenübertragungsrate.

Verlustlose, bitweise Busarbitrierung


Im Rahmen der Arbitrierungsphase wird ermittelt, welche von den gleichzeitig arbitrierenden Nachrichten die höchste Priorität aufweist. Nur der Netzknoten, der diese Nachricht sendet, darf nach Ablauf der Arbitrierungsphase mit dem Senden seiner Nachricht fortfahren. Höchste Priorität hat die Nachricht mit dem niedrigsten Wert des Nachrichten-Identifiers. Bild 1 zeigt das Prinzip der Busarbitrierung. Jeder Teilnehmer überwacht während der Arbitrierungsphase den Signalpegel auf dem Bus. Die Arbitrierungsphase umfasst das Senden des Nachrichten-Identifiers sowie des sog. RTR-Bits ("Remote-Transmission-Request"-Bit). Erkennt ein Netzknoten einen dominanten Buspegel (dominantes Bit), obwohl er selbst einen rezessiven Pegel (rezessives Bit) aufgeschaltet hat, so bricht er den Sendevorgang sofort ab und geht in den Empfangszustand, da in diesem Falle offensichtlich gleichzeitig eine Nachricht höherer Priorität gesendet wird. Da mit jeder Busarbitrierung eine Nachricht versendet wird, gewährleistet das Verfahren einen "verlustlosen" Buszugriff.


Darstellung des Prinzips der verlustlosen, bitweisen Busarbitrierung

Bild 1: Prinzip der verlustlosen, bitweisen Busarbitrierung - Knoten 1, 2 und 3 beginnen gleichzeitig einen Arbitrierungsvorgang. Zum Zeitpunkt 2 stellt der Knoten 2 fest, dass der Bus nicht den von ihm gesendeten rezessiven Pegel hat und beendet seinen  Arbitrierungsvorgang. Zum Zeitpunkt 3 gibt Knoten 1 auf. Zum Zeitpunkt 4 (Ende des Arbitrierungsprozesses) sendet Knoten 3 seine Daten.


Prioritätsorientierte Nachrichtenübertragung


Das zuvor beschriebene Arbitrierungsverfahren garantiert zu jeder Zeit, dass die jeweils höchstpriore Nachricht gesendet wird sobald der Bus frei ist. Die Priorität der Nachricht ist hierbei über den Wert des Nachrichten-Identifiers bestimmt. Je kleiner dieser Wert ist, desto höher ist die Priorität der Nachricht. Das Prinzip der prioritätsorientierten Nachrichten ermöglicht eine sehr effiziente Nutzung der für die Datenübertragung zur Verfügung stehenden Bandbreite. Hierbei ist es nämlich möglich, dass niederpriore Nachrichten den Bus mit 100% belegen, ohne die Übertragung höherpriorer Nachrichten maßgeblich zu verzögern. Für die höchstpriore Nachricht resultiert bei einer Übertragungsrate von 1 Mbit/s eine maximale Latenzzeit von ca. 130 µs. Andererseits muss bei der Konzeption eines CAN-Systems darauf geachtet werden, dass hochpriore Nachrichten den Bus nicht ständig belegen. Dies ist z.B. möglich durch die Einführung sog. "Sendesperrzeiten" (CANopen: "Inhibit-Time").

Bitrate und Buslänge von CAN-Systemen


Das bei CAN angewandte Prinzip der bitweisen Arbitrierung erfordert einen Vergleich der lokalen Bitpegel aller über den Bus verteilten Netzknoten innerhalb eines Bitzeit-Intervalls. Da die für die Signalausbreitung über den Bus erforderliche Signallaufzeit proportional zur Länge des Busses ist, verlängert sich die erforderliche Dauer eines Bitintervalls mit zunehmender Buslänge entsprechend.

Maximale Buslänge (Netzausdehnung) und maximale Bitrate verhalten sich damit umgekehrt proportional. Für Buslängen von über 100 m kann mit folgender Faustformel gerechnet werden:

Baudrate (in Mbit/s) x Buslänge (in m) = 60.

Nachrichtenlänge und maximale Nachrichtenrate


Mit einer CAN-Nachricht können maximal 8 Byte Daten übertragen werden. Die verfügbare Datenübertragungskapazität ist für die meisten der im Feldbereich von Automatisierungssystemen bzw. in Kraftfahrzeugen gestellten Anforderungen ausreichend. Hierbei ist zu berücksichtigen, dass größere Datenblöcke, z.B. im Rahmen der Gerätekonfiguration durch eine Reihe von aufeinanderfolgenden CAN-Nachrichten übertragen werden können. Entscheidende Vorteile kurzer Nachrichten sind die geringeren Latenzzeiten für hochpriore Nachrichten sowie die Übertragungsfähigkeit auch in Umgebungen mit hoher Störungsintensität. Für Nachrichten kurzer Länge (Übertragungsdauer) ist die Wahrscheinlichkeit, dass diese ungestört zwischen zwei auftretenden Störungen übertragen werden kann wesentlich höher, als bei der Übertragung längerer Nachrichten.

Bei einer Bitrate von 1 MBit/s können bei einer mittleren Datenlänge von 4 Bytes ca. 10.000 Nachrichten pro Sekunde, bei einer mittleren Datenlänge von 8 Byte bis zu ca. 7.200 Nachrichten pro Sekunde übertragen werden (Standardformat).

Leistungsfähige Fehlererkennung und Fehlereingrenzung


Eine der wichtigsten Eigenschaften des CAN-Protokolls ist dessen hohe Fähigkeit zur Erkennung von Übertragungsfehlern. Damit wird den sehr hohen Ansprüchen z. B. für die Vernetzung von Steuergeräten innerhalb von Kraftfahrzeugen gerecht. Die hohe Fehlererkennungsfähigkeit wird durch Kombination mehrerer Maßnahmen der Fehlererkennung erreicht. Eine der effektivsten Maßnahmen besteht in der Überwachung des Buspegels durch den Sender einer Nachricht ("Bitmonitoring"). Auf diese Weise werden bereits alle global wirksamen Fehler erkannt. Jeder Nachrichtenempfänger überprüft darüber hinaus jede empfangene Nachricht anhand des CRC-Segments sowie von festgelegten Formatelementen. Auf diese Weise werden auch nur lokal wirksame Fehler mit hoher Wahrscheinlichkeit erkannt. Neben der Erkennung von Übertragungsfehlern beinhaltet das CAN-Protokoll auch einen Mechanismus zur Erkennung und Abschaltung von defekten Netzknoten. Damit wird sichergestellt, dass defekte Netzknoten den Nachrichtenaustausch nicht ständig stören können.

Fehlersignalisierung anstelle von Nachrichtenbestätigung


Im Unterschied zu Kommunikationskonzepten mit teilnehmerorientierter Übertragung verwendet CAN als nachrichtenorientiertes Protokoll das Prinzip der Fehlersignalisierung. Hierbei überprüft jeder Netzknoten jede auf dem Bus übertragene Nachricht auf Fehlerfreiheit. Sobald ein sendender oder empfangender Netzknoten einen Fehler erkennt, signalisiert er diesen allen anderen Teilnehmern durch Senden einer Fehlernachricht (Error Frame). Diese enthält eine sonst nicht zulässige Bitkombination von sechs Bits gleicher Polarität, normalerweise als dominante Bitfolge. Alle Netzknoten erkennen das Fehlersignal und verwerfen die bereits empfangenen Teile einer Nachricht. Damit ist ein konsistenter Datenbestand für alle Teilnehmer des Netzes sichergestellt.
Sobald ein sendender Knoten ein Error Frame gesendet oder empfangen hat, versucht er durch neuerliche Busarbitrierung unverzüglich die vorher gesendete Nachricht nochmals zu senden.
Der Mechanismus der Fehlersignalisierung stellt sicher, dass der Nachrichtenaustausch mit allen funktionsfähigen Teilnehmern eines Netzes fehlerfrei und konsistent ist. Da die Fehlersignalisierung sofort nach dem Erkennen eines Fehlers erfolgt, ergeben sich im Vergleich zu quittierenden Verfahren sehr geringe Fehlererholzeiten.
Die Tatsache, dass der Bus nur dann zusätzlich belegt wird, wenn ein Fehler erkannt worden ist, hat gegenüber einem quittierenden Verfahren zudem den Vorteil einer wesentlich geringeren zusätzlichen Busbelastung.

Das Format einer Controller-Area-Network Nachricht


Bild 2 zeigt das Format einer Standard CAN-Nachricht. Der Beginn einer Nachricht wird durch ein führendes, dominantes Bit signalisiert, gefolgt durch den 11-Bit langen Nachrichten-Identifier sowie ein weiteres Bit, welches zwischen einem Datentelegramm und Datenanforderungstelegramm (Remote Frame) unterscheidet.
Mit einem Remote-Frame kann ein Netzknoten das Senden einer bestimmten Nachricht durch einen anderen im System befindlichen Knoten veranlassen. Das Control-Feld spezifiziert das Übertragungsformat (Standard/Extended) einer Nachricht und die Anzahl der nachfolgenden Datenbytes.
Das Daten-Feld einer CAN-Nachricht kann zwischen null und acht Datenbytes enthalten. Auf das Daten-Feld folgt das 15-Bit CRC-Segment. Dieses Feld dient dem Empfänger zur Überprüfung der empfangenen Nachricht. Im Acknowledge-Feld erwartet der Sender einer Nachricht von mindestens einem empfangenden Netzteilnehmer die Bestätigung des fehlerfreien Empfangs der gesendeten Nachricht. Diese Bestätigung erfolgt durch Senden eines dominanten Bits im Acknowledge-Slot durch alle im Netz befindlichen, fehlerfrei empfangenden Knoten. Diese Bestätigung dient ausschließlich zur sendeseitigen Fehlereingrenzung.
Das End-of-Frame-Feld zeigt letztlich den Abschluss einer vollständig fehlerfreien Übertragung einer CAN-Nachricht an.


Aufbau einer Standard-CAN-Nachricht

Bild 2: Format einer Standard CAN-Nachricht (Data Frame). Das Format einer Anforderungsnachricht (Remote Frame) unterscheidet sich lediglich durch den Wert des RTR-Bits sowie einem leeren Datenfeld.


Verfügbarkeit standardisierter höhere Protokolle und Profile für CAN


Das oben beschriebene, in ISO 11898 standardisierte CAN-Protokoll entspricht im Sinne des OSI-Modells der Datenkommunikation einem Schicht-1/2-Protokoll. Für die Realisierung von Netzwerken sind jedoch weitergehende Funktionen erforderlich. Für Anwendungen in Embedded Systemen sowie der industriellen Automatisierung stehen hierfür zwei Standards zur Verfügung: CANopen und DeviceNet. CANopen [2] ist der dominierende Standard für Anwendungen in Embedded Netzwerken, DeviceNet [2] wird vor allem in der industriellen Automatisierung im Umfeld von Rockwell-Automation eingesetzt. Im Umfeld der Nutzfahrzeuge kommt außerdem der Standard SAE J1939 [3][2] zur Einsatz. 

Literatur


[1]
Zeltwanger, H.: State-of-the-Art CAN Applications and Future Requirements. Proc. 7th International CAN Conference, 2000

[2]
Etschberger, K.: Controller Area Network (CAN)
Grundlagen, Protokolle, Bausteine, Anwendungen.
Dritte Auflage. Hanser Verlag, 2002

[3]
SAE International: Recommended Practice for a Serial Control & Communications Vehicle Network, SAE J1939, Aug. 2003

 

 

 
Druckansicht
Druckansicht

News
RSS Feed
RSS Feed
RSS Feed
RSS Feed
Copyright © 2004-2009 - IXXAT Automation GmbH. All rights reserved. [Impressum] [Login] [Datenschutzerklärung]