CAN - Feldbussystem
Fahrzeugtechnik
Zahlreiche Fahrzeuge
enthalten bereits eine Vielzahl elektronischer Steuerungen. Der
Zuwachs an Elektronik im Kfz ist einerseits durch die Kundenwünsche
nach mehr Fahrsicherheit und mehr Fahrkomfort bedingt, andererseits
sind die Anforderungen von seiten des Gesetzgebers nach Verbesserung
des Abgasverhaltens und Verringerung des Kraftstoffverbrauchs zu
erfüllen. Steuergeräte, die diesen Anforderungen gerecht
werden, kommen seit längerem schon im Bereich der
Motorsteuerung, der Getriebe- und der Drosselklappen-Steuerung sowie
als Antiblockiersystem (ABS) oder Antriebsschlupfregelung (ASR) zum
Einsatz.
Die Komplexität der dabei realisierten Funktionen
macht den Datenaustausch zwischen den Steuergeräten
unumgänglich. Dabei erfolgt die Datenübertragung
konventionell über Signalleitungen. Dies ist jedoch aufgrund
zunehmender Komplexität der Steuergeräte-Funktionen nur mit
erheblichem Aufwand beherrschbar.
Zieht man zukünftige
Entwicklungsrichtungen mit in Betracht, die die Optimierung des
Gesamtfahrzeuges zum Ziel haben, so muß man die Grenzen der
konventionellen Steuergeräte-Kopplung überwinden.
Dies
erreicht man nur durch die Vernetzung der Systemkomponenten mittels
eines seriellen Datenbussystems. Dafür wurde von Bosch das
"Controller Area Network" (CAN) entwickelt, das inzwischen
international genormt ist (ISO 11898) und von mehreren
Halbleiterherstellern in "Silizium gegossen" wurde.
Bei
CAN werden gleichberechtigte Stationen (Steuergeräte, Sensoren
und Aktoren) über einen seriellen Bus miteinander verbunden. Die
Busleitung selbst ist eine symmetrische oder unsymmetrische
Zweidrahtleitung, die je nach Anforderung geschirmt oder ungeschirmt
ausgelegt wird.
Die elektrischen Parameter der physikalischen
Übertragung sind ebenfalls in ISO11898 festgelegt. Entsprechende
Bustreiberchips sind von mehreren Herstellern erhältlich.
Das
CAN-Protokoll, das im ISO/OSI-Referenzmodell der
Datensicherungsschicht (data link layer) entspricht, genügt den
Kfz spezifischen Echtzeit-Anforderungen. Im Unterschied zum Kabelbaum
erkennt und korrigiert das Netzprotokoll Übertragungsfehler, die
durch elektromagnetische Einstrahlung verursacht werden.
Weitere
Vorteile einer solchen Vernetzung liegen in der leichten
Konfigurierbarkeit des Gesamtsystems und der Möglichkeit einer
zentralen Diagnose. CAN wird im Kraftfahrzeug mit dem Ziel
eingesetzt, daß jede Station mit jeder anderen kommunizieren
kann, ohne den Steuergeräterechner dadurch besonders zu
belasten.
CAN-Netze in der industrielle Anwendung
Anforderungen der
industrielle Anwendung an das Feldbussysteme: geringe Kosten,
Funktionsfähigkeit unter schwierigen elektrischen
Umgebungsbedingungen, hohe Echtzeitfähigkeit und einfache
Handhabung. Nicht nur die Hersteller von mobilen und stationären
landwirtschaftlichen Maschinen sowie schiffstechnischen Anlagen,
sondern auch von medizintechnischen Geräten, von Textilmaschinen
und Sondermaschinen sowie Aufzugsteuerungen entschieden sich bereits
für CAN.
Das serielle Bussystem eignet sich insbesondere für
die Vernetzung von "intelligenten" Ein-/Ausgabe-Einheiten
sowie Sensoren und Aktoren innerhalb einer Anlage oder Maschine.
In
den USA setzen mehrere Konzerne CAN in Produktionsanlagen und
Werkzeugmaschinen als anlagen- bzw. maschinen-internes Bussystem zur
Vernetzung von Sensoren und Aktoren ein.
Einige Anwender, z.B.
aus der Medizintechnik, entschieden sich für CAN, weil sie
besonders hohe Sicherheitsanforderungen zu erfüllen haben.
Ähnliche Probleme haben Hersteller von sicherheitsempfindlichen
oder hochverfügbaren Maschinen und Anlagen zu lösen (z.B.
Roboter und Transportsysteme). Neben der hohen Übertragungssicherheit
sind die niedrigen Anschlußkosten pro Teilnehmer ein
ausschlaggebendes Argument für CAN. In preiskritischen
Anwendungen ist die Verfügbarkeit von CAN-Chips verschiedener
Hersteller eine wesentliche Voraussetzung. Nicht zuletzt ist auch die
Kompaktheit der Controller-Chips ein wichtiges Argument, z.B. im
Bereich von Niederspannungs-Schaltgeräten.
Funktionsweise des CAN-Netzwerkes
Prinzip des Datenaustausches
Bei der
CAN-Datenübertragung werden keine Stationen adressiert, sondern
der Inhalt einer Nachricht (z.B. Drehzahl oder Motortemperatur) wird
durch einen netzweit eindeutigen Identifier gekennzeichnet. Neben der
Inhaltskennzeichnung legt der Identifier auch die Priorität der
Nachricht fest. Dies ist für die Buszuteilung entscheidend, wenn
mehrere Stationen um das Buszugriffsrecht konkurrieren.
Möchte
die CPU einer beliebigen Station eine Nachricht einer oder mehreren
Stationen senden, so übergibt sie die zu übertragenden
Daten und deren Identifier mit der Übertragungsaufforderung an
den zugeordneten CAN-Baustein ("Bereitstellen").
Damit
ist die Aufgabe der CPU zur Initierung des Datenaustausches
abgeschlossen. Die Bildung und Übertragung der Nachricht
übernimmt der CAN-Baustein. Sobald der CAN-Baustein die
Buszuteilung bekommt ("Botschaft senden"), werden alle
anderen Stationen des CAN-Netzes zu Empfängern dieser Nachricht
("Botschaft empfangen"). Mit der dann folgenden
Akzeptanzprüfung stellen alle Stationen nach korrektem Empfang
der Nachricht anhand des Identifiers fest, ob die empfangenen Daten
für sie relevant sind oder nicht ("Selektieren"). Sind
die Daten für die Station von Bedeutung, so werden sie
verarbeitet ("Übernahme"), ansonsten ignoriert. Durch
die beschriebene inhaltsbezogene Adressierung wird eine hohe System-
und Konfigurationsflexibilität erreicht. Es lassen sich sehr
einfache Stationen zum bestehenden CAN-Netz hinzufügen, ohne daß
bei den vorhandenen Stationen Software- oder Hardwareänderungen
vorgenommen werden müssen, wenn die neuen Stationen
ausschließlich Empfänger sind.
Fehler! Textmarke nicht
definiert.
Da von seiten des Datenübertragungsprotokolls
keine physikalischen Zieladressen für die einzelnen Komponenten
vorgeschrieben sind, wird das Konzept der modularen Elektronik ebenso
unterstützt wie die Möglichkeit des Mehrfachempfangs
(board/multicast) und der Synchronisation von verteilten Prozessen:
Meßgrößen, die von mehreren Steuergeräten als
Information benötigt werden, können über das CAN-Netz
so verteilt werden, daß nicht jedes Steuergerät einen
eigenen Sensor benötigt.
Zerstörungsfreie bitweise Arbitrierung
Um Daten in Echtzeit
verarbeiten zu können, müssen sie schnell übertragen
werden. Dies setzt jedoch nicht nur eine physikalische
Datenübertragungsstrecke mit bis zu 1 Mbit/s voraus, sondern
verlangt auch eine rasche Buszuteilung, sofern mehrere Stationen
gleichzeitig Nachrichten übertragen wollen. Bei der
Echtzeit-Verarbeitung können die Dringlichkeiten von
Informationen, die über den Bus ausgetauscht werden, sehr
unterschiedlich sein: eine sich schnell ändernde Größe
(z.B. Motorlast) muß häufiger und deshalb mit geringeren
Verzögerungen übertragen werden als andere Größen
(z. B. Motortemperatur), die sich nur verhältnismäßig
langsam ändern. Die Priorität, mit der eine Botschaft vor
einer anderen, weniger dringlichen Botschaft übertragen wird,
ist durch den Identifier der jeweiligen Botschaft festgelegt. Die
Prioritäten werden beim Systementwurf durch entsprechende
Binärwerte vergeben und sind nicht dynamisch veränderbar.
Fehler! Textmarke nicht definiert.
Der Identifier mit der
niedrigsten Binärzahl hat die höchste Priorität. Der
Buszugriffskonflikt wird mittels bitweiser Arbitrierung über die
jeweiligen Identifier gelöst, indem jede Station Bit für
Bit den Buspegel beobachtet. Entsprechend dem
"Wired-and-Mechanismus", bei dem der dominante Zustand
(logisch 0) den rezessiven Zustand (logisch 1) überschreibt,
verlieren all diejenigen Stationen den Wettstreit um die
Buszuteilung, die rezessiv senden, aber auf dem Bus dominant
beobachten. Alle "Verlierer" werden automatisch zu
Empfängern der Nachricht mit der höchsten Priorität
und versuchen erst dann wieder zu senden, wenn der Bus frei wird.
Effizienz der Busvergabe
Die Effizienz des
Buszuteilungsverfahrens bestimmt im wesentlichen die möglichen
Einsatzgebiete eines seriellen Bussystems. Um möglichst einfach
beurteilen zu können, welche Bussysteme für welche
Einsatzgebiete geeignet erscheinen, wird in der Literatur ein Schema
zur Klassifikation von Buszuteilungsverfahren angegeben. Generell
unterscheidet man dabei zwischen folgenden Klassen:
Zuteilung mit
festem Zeitraster
Die Zuteilung erfolgt sequentiell an jeden
Teilnehmer für eine maximale Zeitspanne, unabhängig davon,
ob dieser Teilnehmer in diesem Augenblick den Bus benötigt oder
nicht. (Beispiele: Token-slot oder Token-passing)
Bedarfsabhängige Buszuteilung
Die Zuteilung erfolgt
gemäß vorliegender Übertragungswünsche an einen
Teilnehmer, d.h. nur Teilnehmer mit Sendewunsch werden bei der
Zuteilung berücksichtigt. (Beispiele: CSMA, CSMA / CD,
Flying-master, Round-robin oder bitweise Arbitrierung)
Bei CAN
wird die Buszuteilung ausschließlich unter den zur Übertragung
anstehenden Botschaften ausgehandelt. Daraus folgt, daß das bei
CAN spezifizierte Verfahren in den Bereich der bedarfsabhängigen
Buszuteilung fällt. Eine andere Klassifikation für die
Beurteilung der Effizienz von Busvergabe-Verfahren ist die Art des
Buszugriffs:
Nicht zerstörungsfreier Buszugriff
Ein gleichzeitiger
Buszugriff von mehreren Stationen führt zum Abbruch der
Sendeversuche und damit zu keiner erfolgreichen Buszuteilung. Um
überhaupt irgend einer Station den Bus zuzuteilen, können
mehrere Buszugriffe notwendig werden, wobei die Anzahl der Versuche
bis zum Erfolg nur eine statistische Größe ist.
(Beispiele: CSMA/CD, Ethernet)
Um alle Übertragungsanforderungen
eines CAN-Netzes unter Einhaltung der Latenzzeit-Bedingungen bei
möglichst geringer Datenübertragungsrate abarbeiten zu
können, muß das CAN-Protokoll ein Buszuteilungsverfahren
realisieren, das garantiert, daß auch gleichzeitige Buszugriffe
mehrerer Stationen immer zu einer eindeutigen Busvergabe führen.
Durch das Verfahren der bitweisen Arbitrierung über die
Identifier der zur Übertragung anstehenden Botschaften wird jede
Kollision von mehreren sendewilligen Stationen eindeutig aufgelöst,
und zwar spätestens nach 13 (Standard-Format) bzw. 33 Bitzeiten
(Erweitertes Format) jedes zeitlich beliebigen Buszugriffs. Im
Gegensatz zur nachrichtenweisen Arbitrierung des CSMA/CD-Verfahrens
wird mit dieser zerstörungsfreien Kollisionsauflösung
gewährleistet, daß in keinem Fall Buskapazität
benötigt wird, ohne dabei auch Nutzinformationen zu übertragen.
Auch in Situationen der Busüberlastung erweist sich die
Anbindung der Buszugriffspriorität an den Inhalt der Botschaft
als vorteilhafte Systemeigenschaft gegenüber existierenden
CSMA/CD- oder Token-Verfahren: Alle aufgelaufenen
Übertragungsanforderungen werden trotz der zu geringen
Bustransportkapazität in der Reihenfolge der Wichtigkeit für
das Gesamtsystem (entsprechend der Botschaftspriorität)
abgearbeitet. Dabei wird die vorhandene Übertragungskapazität
für die zu übertragenden Nutzdaten in effizienter Weise
genutzt, da zeitliche Lücken bei der Busvergabe sehr klein
gehalten werden können. Ein Kollaps des gesamten
Übertragungssystems aufgrund von Überlastsituationen, der
beim CSMA/CD-Verfahren auftreten kann, ist bei CAN ausgeschlossen.
CAN erlaubt somit die Realisierung eines schnellen bedarfsabhängigen
Buszugriffs, der aber aufgrund der bitweisen Arbitrierung über
die Botschaftspriorität zerstörungsfrei vonstatten geht.
Beim zerstörungsfreien Buszugriff kann weiter unterschieden
werden zwischen
· zentraler Buszugriffskontrolle
·
dezentraler Buszugriffskontrolle
je nachdem, ob die
Kontrollmechanismen einmal (zentral) oder mehrfach im System
(dezentral) vorhanden sind. Ein Kommunikationssystem mit einer
ausgezeichneten Station (u.a. auch für die zentrale
Buszugriffskontrolle) muß eine Strategie bereitstellen, die im
Falle eines Ausfalls der Leitstation zum Tragen kommt.
Dieses
Konzept hat den Nachteil, daß zum einen die Strategie der
Ausfallbeherrschung aufwendig zu realisieren ist, und zum anderen die
Übernahme der zentralen Station durch eine redundante Station
sehr zeitaufwendig sein kann. Aus den genannten Gründen, und um
das Problem der Zuverlässigkeit der Leitstation (und somit auch
des gesamten Kommunikationssystems) zu umgehen, realisiert das
CAN-Protokoll eine dezentrale Buszugriffskontrolle. Alle für die
Kommunikation wesentlichen Mechanismen, auch die
Buszugriffskontrolle, werden mehrfach im Netz implementiert. Denn nur
dadurch können die hohen Anforderungen an die Verfügbarkeit
des Kommunikationssystems erfüllt werden.
Zusammenfassend
ist festzustellen, daß CAN ein bedarfsabhängiges
Buszuteilungsverfahren realisiert, das über einen
zerstörungsfreien Buszugriff mit dezentraler
Buszugriffskontrolle eine hohe Nutzdatenrate bei möglichst
niedriger Busdatenrate, bezogen auf die Busbelegungszeit aller
Stationen erlaubt. Die Effizienz des Buszuteilungsverfahrens wird
dadurch erhöht, daß ausschließlich die Stationen den
Bus belegen, bei denen Übertragungsanforderungen anstehen. Diese
Anforderungen werden entsprechend der Wichtigkeit von Botschaften für
das Gesamtsystem abgearbeitet. Dies erweist sich insbesondere in
Überlastsituationen als günstig. Da der Buszugang
botschaftsbezogen prioriert ist, können auch niedrige
individuelle Latenzzeiten in Echtzeitsystemen garantiert werden.
Formate der Botschaftsrahmen
Das CAN-Protokoll unterstützt
zwei Formate von Botschaftsrahmen, die sich im wesentlichen nur in
der Länge der Identifier (ID) unterschieden. Die Länge des
ID beträgt im Standard-Format 11 Bits und im Erweiterten Format
29 Bits. Der Botschaftsrahmen zur Übertragung von Nachrichten
auf dem Bus besteht aus sieben Kennfeldern.
Eine Botschaft im
Standard-Format beginnt mit dem Startbit "Start of Frame",
dem sich das "Arbitration Field" anschließt; dieses
Feld enthält den Identifier und das "RTR"-Bit (Remote
Transmission Request), das kennzeichnet, ob es sich um einen
Datenrahmen oder einen Anforderungsrahmen ohne Datenbytes (Remote
Frame) handelt. Das "Control Field" enthält zur
Unterscheidung von Standard und Erweitertem Format das IDE-Bit
(Identifier Extension Bit), ein reserviertes Bit für zukünftige
Erweiterungen und in den letzten 4 Bits die Anzahl der im Datenfeld
enthaltenen Datenbytes. Dem "Data Field", das eine Länge
von 0 bis 8 Byte aufweisen kann, folgt das "CRC Field" das
als Rahmensicherung zur Erkennung von Bitfehlern dient. Das "ACK
Field" umfaßt sowohl den ACK-Slot (1 rezessives Bit). Das
Bit im ACK-Slot wird rezessiv gesendet und von denjenigen Empfängern
dominant überschrieben, die die Daten bis zu diesem Zeitpunkt
korrekt empfangen haben (positives Acknowledgement). Dabei wird die
Bestätigung korrekter Botschaften unabhängig von dem
Ergebnis der Akzeptanzprüfung in den Empfängern
wahrgenommen. Mit dem "End of Frame" wird das Ende der
Botschaft gekennzeichnet. "Intermission" ist die minimale
Anzahl von Bitzeiten, die aufeinanderfolgende Botschaften trennen.
Erfolgt danach kein weiterer Buszugriff durch eine beliebige Station,
so bleibt der Bus in Ruhe ("Bus Idle")
Erkennen und
Signalisieren von Fehlern
Das CAN-Protokoll verwendet im
Gegensatz zu anderen Bussystemen keine Quittungen, sondern
signalisiert eventuelle aufgetretene Fehler. Um Fehler zu erkennen,
sind im CAN-Protokoll drei Mechanismen auf Botschaftsebene
implementiert:
· Cyclic
Redundancy Check (CRC)
Der CRC sichert die Information des
Rahmens , indem sendeseitig redundante Prüfbits hinzugefügt
werden. Empfangsseitig werden diese Prüfbits aus den empfangenen
Bits neu berechnet und mit den empfangenen Prüfbits verglichen.
Bei Nichtübereinstimmung liegt ein CRC-Fehler vor.
· Frame-check
Dieser Mechanismus verifiziert die Struktur des übertragenen
Rahmens, indem die Bitfelder mit dem vorgegebenen festen Format sowie
die Rahmenlänge überprüft werden. Die durch
Frame-Check erkannten Fehler werden als Formatfehler bezeichnet.
· ACK-Fehler
Wie bereits erwähnt, werden empfangene Rahmen von allen
Empfängern durch positives Acknowledgement quittiert. Wird am
Sender kein Acknowledgement erkannt (ACK-Fehler), so deutet dies auf
einen möglicherweise nur von den Empfängern erkannten
Übertragungsfehler, auf eine Verfälschung des ACK-Feldes
oder auf nicht vorhandene Empfänger hin. Außerdem sind im
CAN-Protokoll zwei Mechanismen zur Fehlererkennung auf der Bitebene
implementiert:
· Monitoring
Die Fähigkeit des Senders, Fehler zu erkennen, basiert auf
dem Überwachen der Bussignale: jeder Knoten, der sendet,
beobachtet gleichzeitig den Busspegel und erkennt dabei Differenzen
zwischen gesendetem und empfangenen Bit. Dadurch können alle
globalen Fehler und lokal am Sender auftretenden Bitfehler sicher
erkannt werden.
· Bit-stuffing
Auf der Bitebene wird die Codierung der Einzelbits überprüft.
Als Bitrepräsentation verwendet das CAN-Protokoll die
NRZ-Codierung (Non-Return-to Zero) die eine maximale Effizienz bei
der Bitcodierung gewährleistet. Dabei werden die
Synchronisationsflanken nach der Methode des Bit-stuffings erzeugt,
indem vom Sender nach fünf aufeinanderfolgenden gleichwertigen
Bits ein Stuff-Bit mit komplementärem Wert in den Bitstrom
eingefügt wird, welches die Empfänger automatisch wieder
entfernen. Der Codecheck beschränkt sich auf die Überprüfung
der Stuffing-Regel. Werden ein oder mehrere Fehler mit Hilfe der oben
beschriebenen Mechanismen von mindestens einer beliebigen Station
entdeckt, so wird die laufende Übertragung durch Senden eines
"Error flag" abgebrochen. Dadurch wird die Annahme der
übertragenen Nachricht durch andere Stationen verhindert und
somit die netzweite Datenkonsistenz sichergestellt. Nach Abbruch der
Übertragung eine fehlerhaften Botschaft beginnt der Sender
automatisch, seine Nachricht erneut zu senden (Automatic Repeat
Request).
Dabei können wiederum mehrere Stationen um die
Buszuteilung konkurrieren. Das erneute Senden einer Botschaft kann in
der Regel spätestens 23 Bitzeiten nach der Fehlerkennung
begonnen werden, in Sonderfällen beträgt die
Systemerholzeit 31 Bitzeiten. So effektiv und effizient die
beschriebene Methode der Fehlerbehandlung mittels Error-flag sein
mag, sie könnte im Falle einer defekten Station zum Abbruch
aller (auch korrekter) Botschaften und damit zur Blockierung des
Bussystems führen, sofern keine Maßnahmen zur
Selbstüberwachung getroffen worden sind. Das CAN-Protokoll
verfügt deshalb über einen Mechanismus, der gelegentlich
auftretende von anhaltenden Störungen unterscheidet und
Stationsausfälle lokalisiert (Fault confinement). Dies geschieht
durch statistische Bewertung von stationseigenen Fehlersituationen
mit Ziel, eigene Defekte zu erkennen und eventuell in einen
Betriebszustand überzugehen, bei dem das übrige CAN-Netz
nicht beeinträchtigt wird. Dies kann bis zur Selbstabschaltung
der Station führen, damit vermeintlich inkorrekte Botschaften
nicht mehr von einer solchen Station abgebrochen werden können.
Datensicherheit des CAN-Protokolls. Mit der Einführung
sicherheitsrelevanter Systeme im Kfz ergeben sich hohe Anforderungen
an die Sicherheit der Datenübertragung. Als Ziel wird dabei
häufig formuliert, über die gesamte Betriebsdauer eines Kfz
aufgrund des Datenaustausches keine gefährlichen Zustände
für den Fahrer entstehen zu lassen.
Dieses Ziel ist
erreicht, wenn die Datensicherheit hinreichend hoch, bzw. die
Restfehlerwahrscheinlichkeit hinreichend niedrig ist. Im Zusammenhang
mit Bussystemen wird unter Datensicherheit die Eigenschaft
verstanden, durch Übertragungsstörungen verfälschte
Daten identifizieren zu können. Die Restfehlerwahrscheinlichkeit
ist ein statistisches Maß für die Verletzung der
Datensicherheit: sie gibt an, mit welcher Wahrscheinlichkeit Daten
verfälscht werden und diese Verfälschungen unerkannt
bleiben.
Die
Restfehlerwahrscheinlichkeit sollte so niedrig sein, daß
während der gesamten Betriebsdauer eines Systems im Mittel keine
verfälschten unerkannt bleiben. Die Berechnung der
Restfehlerwahrscheinlichkeit setzt voraus, daß die auftretenden
Fehler klassifiziert werden und die gestörte physikalische
Übertragungsstrecke durch ein Modell beschrieben wird. Bestimmt
man die Restfehlerwahrscheinlichkeit von CAN in Abhängigkeit von
der Bitfehlerwahrscheinlichkeit für Botschaftslängen von 80
bis 90 Bits, für Systemkonfigurationen mit z. B. fünf oder
zehn Knoten und bei einer Fehlerrate von 1/1000 (jede tausendste
Botschaft ist gestört), so nimmt sie bei einer
Bitfehlerwahrscheinlichkeit von ungefähr 0,02 ihren Maximalwert
an, der in der Größenordnung von 10-13 liegt. Geht man von
diesem Maximalwert aus, so läßt sich daraus für ein
gegebenes CAN-Netz die maximale Anzahl von nicht erkennbaren Fehlern
berechnen. Wird beispielsweise ein CAN-Netz mit einer Datenrate von 1
Mbit/s betrieben und beträgt die mittlere Busauslastung 50
Prozent, die Gesamtdauer des Betriebes 4000 Stunden und sind die
Botschaften im Mittel 80 Bit lang, so berechnet sich die Gesamtzahl
übertragener Botschaften zu 9*E10. Die statistische Anzahl
unerkannter Übertragungsfehler während der gesamten
Betriebsdauer liegt in der Größenordnung kleiner 10-2.
Oder anders ausgedrückt, bei einer Betriebszeit von acht Stunden
pro Tag an 365 Tagen im Jahr und einer Fehlerrate von 0,7s tritt im
statistischen Mittel in 1000 Jahren ein unentdeckter Fehler auf.
CAN-Botschaften im Erweiterten Format
Das SAE-Komitee "Truck
and Bus" standardisierte nicht nur Datenübertragungsprotokolle
für verschiedene Datenraten, sondern normierte auch Signale und
Botschaften. Es zeigte sich, daß derartige Normierungen sich
einfacher durchführen lassen. Wenn ein längeres
Identifier-Feld zur Verfügung steht. Um solche Bestrebungen zu
unterstützen, wurde das CAN-Protokoll durch Einführung
eines 29-Bit-Identifiers erweitert.
Dieser Identifier setzt sich
aus dem existierenden 11-Bit-Identifier (Base-ID) und einer
18-Bit-Erweiterung (ID-Extension) zusammen. Dementsprechend erlaubt
das CAN-Protokoll die Verwendung zweier Botschaftsformate: Standard
CAN (Version 2.0A) und Extended CAN (Version 2.0B). Da beide Formate
auf einem Bus koexistieren müssen, ist festgelegt, welche
Botschaft bei Buszugriffskollisionen mit unterschiedlichem Format und
gleichem Basis-Identifier die höhere Priorität auf dem Bus
hat. Danach hat grundsätzlich die Botschaft im Standard eine
höhere Priorität als die Botschaft im Erweiterten Format.
Außerdem ist gewährleistet, daß CAN-Controller, die
das Erweiterte Format unterstützen, auch Botschaften im
Standard-Format senden und empfangen können. Wenn in einem Netz
CAN-Controller verwendet werden, die nur das Standard-Format
beherrschen (Version 2.0A), dürfen im gesamten Netz nur
Botschaften im Standard-Format übertragen werden. Botschaften im
Erweiterten Format würden mißverstanden werden.
Es
gibt aber auch CAN-Controller, die nur das Standard-Format
unterstützen, aber Botschaften im Erweiterten Format erkennen
können und dann ignorieren (Version 2.0B passiv). Die
Unterscheidung zwischen dem Standard-Format und dem Erweiterten
Format erfolgt mit Hilfe des IDE-Bit (Identifier Extension Bit), das
im Falle einer Nachricht im Standard-Format dominant gesendet wird,
im Erweiterten Format ist es rezessiv. Das RTR-Bit wird dominant oder
rezessiv gesendet, je nachdem, ob Daten gesendet werden oder von
einer Station eine bestimmte Botschaft angefordert wird. An Stelle
des RTR-Bit im Standard-Format wird beim Rahmen mit erweitertem ID
das SRR-Bit (Substitute Remote Request) übertragen. Das SRR-Bit
wird ausschließlich rezessiv gesendet, um sicherzustellen, daß
im Falle der Arbitrierung der Standard-Rahmen immer die Buszuteilung
gegenüber einem erweiterten Rahmen erhält, wenn beide
Botschaften den gleichen Basis-Identifier haben. Im Unterschied zum
Standard-Rahmen folgt beim erweiterten Format nach dem IDE-Bit die
18-Bit-ID-Erweiterung sowie das RTR-Bit und ein reserviertes Bit
(r1). Alle folgenden Felder sind identisch mit dem Standard-Format.
Die Konformität der beiden Formate wird dadurch gewährleistet,
daß die CAN-Controller, die das Erweiterte Format unterstützen,
ebenso im Standard-Format kommunizieren.
Implementierungen des CAN-Protokolls
Alle
Implementierungen des CAN-Protokolls sind bezüglich der
Kommunikation identisch. Unterschiede gibt es dagegen hinsichtlich
des Umfangs, in dem diese Implementation den nachgeschalteten
Mikrocontroller von Aufgaben der Nachrichtenübertragung
entlastet.
CAN-Controller mit Zwischenpuffer. Bei CAN-Controllern
mit Zwischenpuffer (früher als BasicCAN-Chips bezeichnet) ist
die zur protokollkonformen Erzeugung und Überprüfung des
Bitstroms notwendige Logik hardwaremäßig realisiert. Die
Verwaltung zu sendender und empfangender Datensätze,
insbesondere die Akzeptanzprüfung, wird nur in begrenztem Umfang
vom CAN-Controller übernommen.
CAN-Controller mit
Zwischenpuffer haben typischerweise zwei Empfangs- und einen
Sendepuffer. Die 8-Bit-Code-und Maskenregister erlauben nur eine
eingeschränkte Akzeptanzprüfung (8 MSB des Identifiers).
Durch geeignete Wahl dieser Registerwerte können entsprechende
Gruppen von Identifiern oder im Grenzfall alle Ids selektiert werden.
Sind mehr als die 8 ID-MSBs zur Unterscheidung der Botschaften
erforderlich, so muß der dem CAN-Controller nachschaltende
Mikrocontroller die Akzeptanzfilterung per Software implementieren.
CAN-Controller mit Zwischenpuffer belasten eventuell den
Mikrocontroller mit der Akzeptanzfilterung, benötigen aber
weniger Chipfläche und sind somit zu geringeren Kosten
herstellbar. Sie können im Prinzip alle Objekt in einem CAN-Netz
akzeptieren.
CAN-Controller mit Objektspeicher. CAN-Objekte
bestehen im wesentlichen aus drei Bestandteilen: Identifier,
Datenlängen-Code und den eigentlichen Nutzdaten. CAN-Controller
mit Objektspeicher (früher als FullCAN bezeichnet) arbeiten wie
CAN-Controller mit Zwischenpuffern, verwalten darüber hinaus
noch bestimmte Objekte. Sie bestimmen beispielsweise, welches Objekt
bei mehreren gleichzeitig vorliegenden Sendeanforderungen als erstes
zu übertragen ist. Außerdem übernehmen sie die
Akzeptanzprüfung der eingehenden Objekte. Die Schnittstelle zum
Mikrocontroller entspricht einem RAM: Zu übertragende Daten
werden in einen dafür bestimmten RAM-Bereich geschrieben,
empfangene Daten entsprechend ausgelesen. Der Mikrocontroller muß
nur noch wenige Bit (z.B. Sendeanforderung) verwalten.
CAN-Controller mit Objektspeicher sind auf größtmögliche
Entlastung des lokalen Mikrocontrollers ausgelegt. Allerdings
benötigen diese CAN-Controller mehr Chipfläche und sind
deshalb teuer. Außerdem können sie nur eine begrenzte
Anzahl an unterschiedlichen Objekten verwalten. Inzwischen gibt es
CAN-Controller die beide Implementierungsansätze vereinen. Sie
haben einen Objektspeicher, wobei mindestens einer als Zwischenpuffer
ausgelegt ist. Deshalb ist die Unterscheidung zwischen BasicCAN und
FullCAN nicht mehr sinnvoll.
CAN-Controller für E/A-Aufgaben
Neben CAN-Controllern, die alle Funktionen des CAN-Protokolls unterstützen, gibt es noch CAN-Chips, die keinen nachgeschalteten Mikrocontroller benötigen. Diese SLIO (Serial Link I/O) genannten CAN-Chip sind CAN-Slaves und müssen von einem CAN-Master verwaltet werden.
Physikalische Ankopplung
Aufgrund der Datenraten (bis zu 1 Mbit/s)
sind entsprechende Flankensteilheiten erforderlich, die sich nur mit
Leistungsbauelementen realisieren lassen. Prinzipiell sind
verschiedene physikalische Ankopplungen möglich. Die Anwender-
und Herstellervereinigung "CAN in Automation (CiA)"
empfiehlt jedoch für allgemeine CAN-Anwendungen den Einsatz von
Treiberschaltungen entsprechend ISO 11898. Integrierte Treiberchips
nach ISO 11898 sind von mehreren Firmen verfügbar (z. B. Bosch,
Philips, Siliconix und Texas Instruments).