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).