Auf unserer Website setzen wir Cookies ein, um Ihnen den bestmöglichen Service zu bieten und unsere Website weiter verbessern zu können. Mit dem Button "Alle akzeptieren" stimmen Sie der Verwendung aller Cookies zu. Über "Auswahl akzeptieren" können Sie die verwendeten Cookies eingrenzen. Weitere Informationen und eine Option zum Widerruf Ihrer Auswahl finden Sie in unserer Datenschutzerklärung.
Diese Cookies sind für die grundlegende Funktionalität notwendig. Dadurch können Sie sich auf unserer Website und im Forum anmelden oder Produkte mit unserem Online-Shop bestellen.
Mit diesen Cookies erheben wir anonymisiert Nutzungsdaten für unsere Website. So können wir beispielsweise sehen, welche Inhalte für unsere Besucher interessant sind und welche Auflösungen verwendet werden. Anhand der Informationen optimieren wir unsere Website, um Ihnen eine möglichst gute Benutzererfahrung bieten zu können.
Mehr
Die Verfügbarkeit kostengünstiger und leistungsfähiger Komponenten der Mikroelektronik führte in der Kraftfahrzeugtechnik zu Beginn der 80er Jahre zur Einführung von weitgehend autonomen elektronischen Steuergeräten für unterschiedliche Funktionsbereiche, wie z. B. Zündungs-, Getriebesteuerungs- oder Antiblockiersysteme. Hierbei zeigte sich bald, dass weitere Funktionsverbesserungen – und damit eine signifikante Verbesserung des Fahrverhaltens – erst durch eine Synchronisation der, auf den verschiedenen Steuergeräten verteilten, Prozesse durch Datenaustausch zwischen den beteiligten Geräten möglich war.
Der Einsatz digitaler Kommunikationssysteme in Kraftfahrzeugen wuchs auch durch die Vernetzung von Komponenten der Karosserie- und Komfortelektronik, wie z. B. Klimaregelung, Sitz- und Spiegelverstellung, Fensterheber, Diebstahlsicherung, Zentralverriegelung, Beleuchtungssteuerung usw. In diesem Einsatzbereich soll ein digitales Kommunikationssystem in erster Linie den Verkabelungsaufwand reduzieren und die neuralgischen Verkabelungsstellen, wie etwa die Kabeldurchführung vom Innenraum zu den Vordertüren, entschärfen.
Wegen der besonders hohen Anforderungen an die Zuverlässigkeit der Datenübertragung in einer von elektromagnetischen Störungen gekennzeichneten Umgebung war es notwendig, ein geeignetes Kommunikationskonzept zu entwickeln. Dies war der Ausgangspunkt für die von der Firma Bosch begonnene Entwicklung des Controller Area-Network-Protokolls (CAN) im Jahre 1983.
CAN hat in der Zwischenzeit, neben dem Einsatz in Personen- und Nutzfahrzeugen, einen vielfältigen Einsatz im gesamten Bereich mobiler Systeme, wie z. B. in
CAN-Netzwerke werden normalerweise in Linienstruktur aufgebaut, wobei sich an jedem Leitungsende ein Abschlusswiderstand von 120 Ohm befinden sollte. Stichleitungen sind in eingeschränktem Umfang zulässig; auch ein sternförmiger Bus (z. B. bei Anwendungen im Kraftfahrzeug) ist möglich. Die Anzahl der Teilnehmer (Knoten) pro Netz ist nicht durch das Protokoll begrenzt, sondern abhängig von der Leistungsfähigkeit der eingesetzten Treiberbausteine.
CAN-Repeater können verwendet werden, um eine physikalische Kopplung von zwei oder mehr Segmenten eines CAN-Bussystems herzustellen, Baum- oder Sterntopologien zu implementieren oder lange Abzweigleitungen hinzuzufügen. Darüber hinaus können Netzwerksegmente mithilfe eines galvanisch getrennten Repeaters elektrisch entkoppelt werden.
Bild 1: Linien-Topologie eines CAN-Netzwerks
Die Kommunikation auf dem CAN-Bus erfolgt mit „Nachrichten“, die sowohl Steuerbits als auch Nutzbits enthalten. Der standardisierte Aufbau einer solchen Nachricht wird als Frame bezeichnet.
Im Unterschied zur teilnehmerorientierten Übertragung, bei der ein Nachrichtenaustausch jeweils zwischen zwei bestimmten Teilnehmern erfolgt, basiert die Übertragung von CAN-Nachrichten auf dem Producer-Consumer-Prinzip. Eine von einem Teilnehmer gesendete Nachricht (Producer) kann von allen anderen Teilnehmern (Consumer) gelesen 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.
Bild 2: 11-Bit-Identifier (Standardformat, CAN-Spezifikation 2.0A)
Der (Nachrichten-)Identifier kennzeichnet den Inhalt der CAN-Nachricht, nicht das Gerät. Zum Beispiel kann in einem Messsystem den Parametern Temperatur, Spannung und Druck jeweils ein eigener Identifier zugewiesen sein. Es können jedoch auch mehrere Parameter unter einem einzigen Identifier vereint sein, solange die Summe der Daten die maximal mögliche Länge des Datenfeldes nicht überschreitet.
Die Empfänger entscheiden anhand des Identifiers, ob eine Nachricht für sie relevant ist oder nicht und filtern diese dann aus dem auf dem Bus verfügbaren Nachrichtenstrom heraus.
Das Standardformat eines CAN-Identifiers beträgt üblicherweise 11 Bit; dies bedeutet, dass 2048 unterschiedliche Nachrichten pro System unterscheidbar sind. Diese Anzahl ist in den meisten Anwendungen 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 wesentlich mehr unterschiedlichen Nachrichten möglich.
Der Beginn einer Nachricht (siehe Bild) wird durch ein führendes, dominantes Bit signalisiert, gefolgt durch den 11 Bit langen Nachrichten-Identifier sowie ein weiteres Bit, welches zwischen einer Datennachricht und einer Datenanforderungsnachricht (Remote-Frame) unterscheidet. Ein Netzwerkknoten kann die Übertragung einer bestimmten Nachricht von einem anderen Knoten im System anfordern. Der entfernte Knoten muss jedoch so programmiert sein, dass er auf eine solche RTR-Nachricht reagiert.
Das Control-Feld spezifiziert das Übertragungsformat (Standard/Extended) einer Nachricht und die Anzahl der nachfolgenden Datenbytes.
Das Datenfeld einer CAN-Nachricht kann zwischen null und acht Datenbytes enthalten. Auf das Daten-Feld folgt das 15 Bit lange 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-Feld durch alle im Netz befindlichen, fehlerfrei empfangenden Knoten. Diese Bestätigung dient ausschließlich zur sendeseitigen Fehlereingrenzung.
Das End-of-Frame-Feld (EOF) zeigt letztlich den Abschluss einer vollständig fehlerfreien Übertragung einer CAN-Nachricht an.
Bild 3: Format einer Standard CAN-Nachricht (Data Frame)
Jeder Knoten 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 Knoten einen Nachrichtentransfer initiieren kann, ist ein direkter Nachrichtenaustausch zwischen allen Teilnehmer des Netzwerks möglich. Gegenüber einer zyklischen Nachrichtenübertragung ergibt sich eine wesentlich niedrigere Busbelastung und eine geringere Anforderung bezüglich der erforderlichen Datenübertragungsrate.
Der reibungslose Nachrichtenverkehr wird bei CAN durch die Arbitrierung gewährleistet. Dazu wird im Rahmen der Arbitrierungsphase ermittelt, welche von den gleichzeitig gesendeten 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.
Jeder Teilnehmer überwacht während der Arbitrierungsphase den Signalpegel auf dem Bus. Die Arbitrierungsphase umfasst das Senden des Nachrichten-Identifiers sowie des RTR-Bits.
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 mit jeder Busarbitrierung eine Nachricht versendet wird, gewährleistet das Verfahren einen verlustlosen Buszugriff.
Bild 4: 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 und somit die Übertragung des restlichen Frames. Zum Zeitpunkt 3 gibt Knoten 1 auf. Zum Zeitpunkt 4 (Ende des Arbitrierungsprozesses) sendet Knoten 3 seine Daten.
Das zuvor beschriebene Arbitrierungsverfahren garantiert, dass die jeweils höchst-priorisierte Nachricht gesendet wird, sobald der Bus frei ist. 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 Nachrichten mit niedriger Priorität den Bus belegen, ohne die Übertragung von Nachrichten mit höherer Priorität maßgeblich zu verzögern. Für die Nachricht mit höchster Prioriät 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 Nachrichten mit hoher Priorität den Bus nicht ständig belegen. Dies ist z. B. durch die Einführung von Sendesperrzeiten (CANopen: "Inhibit-Time") möglich.
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.
Die bei einer bestimmten Datenrate maximal mögliche Netzausdehnung ist im Wesentlichen nur durch die auf dem Busmedium erforderliche Signallaufzeit begrenzt: Bei 1 Mbit/s ist z. B. eine Netzausdehnung von 40 m, bei 80 kbit/s eine Netzausdehnung von 1.000 m möglich.
Bild 5: Verhältnis von Datenrate zur Leitungslänge
Die gestrichelte Linie zeigt die Daumenregel für Datenraten < 400 kbit/s und für Leitungslängen > 100 m. Der graue Bereich zeigt die zulässige Verwendung ohne Berücksichtigung weiterer elektrischer Laufzeiten oder anderer beschränkenden Parameter.
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: Datenrate (in Mbit/s) x Leitungslänge (in m) ≤ 60
Eine der wichtigsten Eigenschaften des CAN-Protokolls ist dessen hohe Fähigkeit zur Erkennung von Übertragungsfehlern. Damit wird es 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.
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 Fehler-Erholzeiten. 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 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 ist der dominierende Standard für Anwendungen in Embedded Netzwerken, DeviceNet wird vor allem in der industriellen Automatisierung im Umfeld von Rockwell Automation eingesetzt. Bei Nutzfahrzeugen kommt außerdem der Standard SAE J1939 zum Einsatz.