Ein Controller Area Network ( CAN ) ist ein Fahrzeugbusstandard , der die effiziente Kommunikation, insbesondere zwischen elektronischen Steuergeräten (ECUs), ermöglicht. Ursprünglich zur Reduzierung der Komplexität und Kosten der elektrischen Verkabelung in Automobilen durch Multiplexing entwickelt , wird das CAN-Busprotokoll mittlerweile in verschiedenen anderen Bereichen, wie beispielsweise im 3D-Druck, eingesetzt [ 1 ] . Dieses broadcastbasierte , nachrichtenorientierte Protokoll gewährleistet Datenintegrität und Priorisierung durch ein Verfahren namens Arbitrierung . Dadurch kann das Gerät mit der höchsten Priorität die Übertragung fortsetzen, wenn mehrere Geräte gleichzeitig Daten senden, während andere Geräte die Übertragung abbrechen. Die Zuverlässigkeit wird durch Differenzsignalisierung erhöht , welche elektrische Störungen minimiert. Fällt eine Seite des Differenzsignals aus, kann das System auf Ein-Draht-Kommunikation umschalten. Dies dient der Sicherstellung der Datenkommunikation für kritische Systeme. Gängige Versionen des CAN-Protokolls sind CAN 2.0, CAN FD und CAN XL, die sich in ihren Datenraten und maximalen Nutzdatenmengen unterscheiden.
Geschichte
Die Entwicklung des CAN -Busses begann 1983 bei der Robert Bosch GmbH . [ 2 ] Das Protokoll wurde 1986 auf der Konferenz der Society of Automotive Engineers (SAE) in Detroit , Michigan , offiziell vorgestellt . Die ersten CAN-Controller-Chips wurden 1987 von Intel und kurz darauf von Philips eingeführt . [ 2 ] Der 1991 erschienene Mercedes-Benz W140 war das erste Serienfahrzeug mit einem CAN-basierten Multiplex-Verkabelungssystem. [ 3 ] [ 4 ]
Bosch veröffentlichte mehrere Versionen der CAN-Spezifikation. Die aktuellste ist CAN 2.0, veröffentlicht 1991. Diese Spezifikation besteht aus zwei Teilen. Teil A beschreibt das Standardformat mit einem 11-Bit-Identifikator, Teil B das erweiterte Format mit einem 29-Bit-Identifikator. Ein CAN-Gerät mit 11-Bit-Identifikatoren wird üblicherweise als CAN 2.0A bezeichnet, ein CAN-Gerät mit 29-Bit-Identifikatoren als CAN 2.0B. Diese Standards sind zusammen mit weiteren Spezifikationen und Whitepapers kostenlos bei Bosch erhältlich . [ 5 ]
1993 veröffentlichte die Internationale Organisation für Normung (ISO) den CAN-Standard ISO 11898, der später in zwei Teile gegliedert wurde: ISO 11898-1 für die Sicherungsschicht ( Data Link Layer ) und ISO 11898-2 für die physikalische Schicht (Canon Physical Layer) von High-Speed-CAN. ISO 11898-3 wurde später veröffentlicht und deckt die physikalische Schicht von Low-Speed-CAN mit Fehlertoleranz ab. Die physikalischen Schichtstandards ISO 11898-2 und ISO 11898-3 sind nicht Bestandteil der Bosch CAN 2.0-Spezifikation.
2012 veröffentlichte Bosch CAN FD 1.0 (CAN mit flexibler Datenrate). Diese Spezifikation verwendet ein anderes Rahmenformat, das variable Datenlängen ermöglicht und optional nach erfolgter Bitratenanpassung eine höhere Bitrate erlaubt. CAN FD ist mit bestehenden CAN 2.0-Netzwerken kompatibel, sodass neue CAN FD-Geräte im selben Netzwerk wie bestehende CAN-Geräte mit denselben CAN 2.0-Kommunikationsparametern betrieben werden können. Auch 2018 engagierte sich Bosch aktiv in der Weiterentwicklung der CAN-Standards.
Der CAN-Bus ist eines von fünf Protokollen, die im OBD-II-Standard ( On-Board-Diagnose ) für Fahrzeugdiagnose verwendet werden. Der OBD-II-Standard ist seit dem Modelljahr 1996 für alle in den USA verkauften Pkw und leichten Nutzfahrzeuge verpflichtend. Der OBD-II- Standard ist seit 2001 für alle in der Europäischen Union verkauften Benzinfahrzeuge und seit 2004 für alle Dieselfahrzeuge verpflichtend. [ 6 ]
Anwendungen
Automobil
Moderne Automobile verfügen über bis zu 70 elektronische Steuergeräte (ECUs) für verschiedene Subsysteme. [ 7 ] Das größte Steuergerät ist üblicherweise das Motorsteuergerät . Weitere Steuergeräte werden für autonomes Fahren, Fahrerassistenzsysteme (ADAS), Getriebe , Airbags , Antiblockiersystem (ABS) , Geschwindigkeitsregelanlage , elektrische Servolenkung , Audiosysteme, elektrische Fensterheber , Türen, Spiegelverstellung, Batterie und Ladesysteme für Hybrid-/Elektrofahrzeuge usw. eingesetzt. Einige dieser Systeme bilden unabhängige Subsysteme, die Kommunikation zwischen ihnen ist jedoch unerlässlich. Ein Subsystem muss möglicherweise Aktoren steuern oder Rückmeldungen von Sensoren empfangen. Der CAN-Standard wurde entwickelt, um diesen Bedarf zu decken. Ein wesentlicher Vorteil besteht darin, dass die Vernetzung verschiedener Fahrzeugsysteme die Implementierung einer Vielzahl von Sicherheits-, Spar- und Komfortfunktionen allein durch Software ermöglicht – Funktionen, die bei einer festen Verdrahtung mit herkömmlicher Fahrzeugelektrik zusätzliche Kosten und Komplexität verursachen würden. Beispiele hierfür sind:
- Automatische Start/Stopp-Funktion : Verschiedene Sensordaten aus dem Fahrzeugumfeld (Geschwindigkeitssensoren, Lenkwinkel, Klimaanlage ein/aus, Motortemperatur) werden über den CAN-Bus erfasst, um festzustellen, ob der Motor im Stand abgeschaltet werden kann, um Kraftstoffverbrauch und Emissionen zu reduzieren.
- Elektrische Parkbremse : Die Berganfahrhilfe nutzt über den CAN-Bus die Daten des Neigungssensors (auch für die Alarmanlage) und der Geschwindigkeitssensoren (auch für ABS, Motorsteuerung und Traktionskontrolle), um festzustellen, ob das Fahrzeug an einer Steigung steht. Ebenso werden über den CAN-Bus Daten der Sicherheitsgurtsensoren (Teil der Airbag-Steuerung) übermittelt, um zu prüfen, ob die Sicherheitsgurte angelegt sind. Dadurch löst sich die Parkbremse beim Anfahren automatisch.
- Einparkhilfe : Beim Einlegen des Rückwärtsgangs kann das Getriebesteuergerät über den CAN-Bus ein Signal senden, um sowohl das Einparkhilfesystem als auch das Türsteuergerät zu aktivieren. Dadurch neigt sich der Außenspiegel auf der Beifahrerseite nach unten, um die Bordsteinkante anzuzeigen. Der CAN-Bus empfängt außerdem Signale vom Regensensor, um beim Rückwärtsfahren den Heckscheibenwischer zu aktivieren.
- Automatische Spurhalte- und Kollisionsvermeidungssysteme : Die Eingangssignale der Parksensoren werden auch vom CAN-Bus genutzt, um externe Nähedaten an Fahrerassistenzsysteme wie die Spurverlassenswarnung weiterzuleiten. Seit Kurzem werden diese Signale auch über den CAN-Bus übertragen, um die Bremsfunktion in aktiven Kollisionsvermeidungssystemen zu aktivieren.
- Automatische Bremsenreinigung: Der Regensensor (hauptsächlich für die automatischen Scheibenwischer zuständig ) sendet über den CAN-Bus ein Signal an das ABS-Steuergerät, um während der Fahrt ein unmerkliches Bremsen zu aktivieren und so Feuchtigkeit von den Bremsscheiben zu entfernen. Einige leistungsstarke Audi- und BMW- Modelle verfügen über diese Funktion.
- Sensoren können an der optimalen Stelle platziert und ihre Daten von mehreren Steuergeräten genutzt werden. Beispielsweise können Außentemperatursensoren (die üblicherweise vorne angebracht sind) in den Außenspiegeln verbaut werden, wodurch eine Erwärmung durch den Motor vermieden wird. Die Daten werden dann vom Motor, der Klimaanlage und dem Fahrerdisplay verwendet.
In den letzten Jahren wurde der LIN-Bus- Standard (Local Interconnect Network) eingeführt, um CAN für nicht kritische Subsysteme wie Klimaanlagen und Infotainmentsysteme zu ergänzen, bei denen Datenübertragungsgeschwindigkeit und Zuverlässigkeit weniger wichtig sind.
3D-Druck
Der CAN-Bus wird aufgrund seiner hohen Störfestigkeit, insbesondere gegenüber dem durch Schrittmotoren erzeugten Masserauschen , häufig zur Verbindung von 3D-Drucker- Mainboards mit Erweiterungsplatinen verwendet. Schrittmotoren sind in 3D-Druckern und anderen CNC- Anwendungen weit verbreitet. Die CAN-FD- Variante kommt in vielen Systemen, wie beispielsweise der Duet3D -Controller-Familie, zum Einsatz, da sie die höhere Bandbreite bietet, die für die hohen Befehlsraten im 3D-Druck erforderlich ist . [ 8 ]
Andere
- Das CAN-Bus-Protokoll wird seit 2009 im elektronischen Schaltsystem Shimano DI2 für Rennräder verwendet und kommt auch bei den Direktantriebsmotoren von Ansmann und BionX zum Einsatz.
- Der CAN-Bus wird auch als Feldbus in allgemeinen Automatisierungsumgebungen eingesetzt, vor allem aufgrund der geringen Kosten einiger CAN-Controller und -Prozessoren.
- Hersteller wie NISMO wollen CAN-Bus-Daten nutzen, um mithilfe der GPS-Datenlogger-Funktion des Videospiels Gran Turismo 6 reale Rennrunden nachzubilden. Dadurch könnten die Spieler gegen reale Rundenzeiten antreten. [ 9 ]
- Das Modular Prosthetic Limb (MPL) des Applied Physics Laboratory der Johns Hopkins University nutzt einen lokalen CAN-Bus, um die Kommunikation zwischen Servos und Mikrocontrollern im Prothesenarm zu ermöglichen.
- Die Teams im FIRST Robotics Wettbewerb nutzen häufig den CAN-Bus zur Kommunikation zwischen dem roboRIO und anderen Robotersteuerungsmodulen.
- Die Teleprompter- Serie CueScript nutzt das CAN-Bus-Protokoll über ein Koaxialkabel, um die CSSC (Desktop Scroll Control) mit der Haupteinheit zu verbinden.
- Das CAN-Bus-Protokoll ist aufgrund seiner Fehlertoleranz in elektrisch störungsanfälligen Umgebungen, wie z. B. in Sensor-Rückkopplungssystemen von Modelleisenbahnen, bei großen Herstellern kommerzieller digitaler Steuerungssysteme und verschiedenen Open-Source-Projekten zur digitalen Modelleisenbahnsteuerung weit verbreitet.
- Shearwater Research hat das Protokoll als DiveCAN [ 10 ] implementiert , um ihre Tauchcomputer in Tauchrebreather verschiedener Hersteller zu integrieren.
Versionen
CAN 2.0 (Klassisches CAN)
Aufgrund seiner langen Tradition ist CAN 2.0 das am weitesten verbreitete Protokoll mit einer maximalen Nutzdatengröße von acht Byte und einer typischen Baudrate von 500 kbit/s. Klassisches CAN, einschließlich CAN 2.0A (Standard CAN) und CAN 2.0B (Extended CAN), unterscheidet sich hauptsächlich in der Länge des Identifikatorfelds: CAN 2.0A verwendet einen 11-Bit-Identifikator, während CAN 2.0B einen 29-Bit-Identifikator nutzt. Der längere Identifikator in CAN 2.0B ermöglicht eine größere Anzahl eindeutiger Nachrichten-IDs, was in komplexen Systemen mit vielen Knoten und Datentypen von Vorteil ist. Diese Erhöhung der Anzahl eindeutiger Nachrichten-IDs führt jedoch auch zu einer größeren Rahmenlänge, wodurch die maximale Datenrate sinkt. Darüber hinaus ermöglicht der erweiterte Identifikator aufgrund der größeren Anzahl verfügbarer Identifikatorwerte eine feinere Steuerung der Nachrichtenpriorisierung. Dies kann jedoch Kompatibilitätsprobleme verursachen; CAN 2.0A-Geräte können in der Regel mit CAN 2.0B-Geräten kommunizieren, umgekehrt jedoch nicht, da es bei der Verarbeitung längerer Identifikatoren zu Fehlern kommen kann. High-Speed-CAN 2.0 unterstützt Bitraten von 40 kbit/s bis 1 Mbit/s und bildet die Grundlage für Protokolle höherer Schichten. Im Gegensatz dazu unterstützt Low-Speed-CAN 2.0 Bitraten von 40 kbit/s bis 125 kbit/s und bietet Fehlertoleranz, indem die Kommunikation trotz eines Fehlers in einer der beiden Leitungen aufrechterhalten wird, wobei jeder Knoten seine eigene Terminierung beibehält. [ 5 ] [ 11 ] [ 12 ] [ 13 ]
CAN FD (Flexible Data-Rate), standardisiert nach ISO 11898-1, wurde von Bosch entwickelt und 2012 veröffentlicht, um dem erhöhten Bedarf an Datenübertragung in modernen Hochleistungsfahrzeugen gerecht zu werden. Es ermöglicht variable Datenraten während der Übertragung eines einzelnen Frames. So kann die Arbitrierungsphase mit einer niedrigeren Datenrate für eine robuste Kommunikation erfolgen, während die Nutzdaten mit einer höheren Datenrate übertragen werden, um den Durchsatz zu verbessern. Dies ist besonders in Umgebungen mit starken elektrischen Störungen von Vorteil, da es die Störfestigkeit erhöht. CAN FD führt außerdem eine flexible Datenfeldgröße ein und erhöht die maximale Größe von 8 auf 64 Byte. Diese Flexibilität ermöglicht eine effizientere Datenübertragung, da die Anzahl der für große Datenmengen benötigten Frames reduziert wird. Dies ist vorteilhaft für Anwendungen wie hochauflösende Sensordaten oder Software-Updates.
CAN FD gewährleistet die Abwärtskompatibilität mit CAN 2.0-Geräten durch die Verwendung desselben Frame-Formats wie CAN 2.0B. Zusätzlich wird ein neues Steuerfeld eingeführt, das angibt, ob es sich um einen CAN FD-Frame oder einen Standard-CAN 2.0-Frame handelt. Dadurch können CAN FD-Geräte zusammen mit CAN 2.0-Geräten auf demselben Bus betrieben werden. Höhere Datenraten und größere Datenmengen stehen jedoch nur bei der Kommunikation mit anderen CAN FD-Geräten zur Verfügung. [ 13 ] [ 12 ] [ 14 ]
CAN XL
CAN XL, spezifiziert durch CiA 610-1 und standardisiert als Teil von ISO 11898-1, unterstützt Nutzdaten von bis zu 2048 Byte und Datenraten von bis zu 20 Mbit/s. Es schließt die Lücke zwischen CAN FD und Ethernet (100BASE-T1) und erhält gleichzeitig die Vorteile der Kollisionsauflösung von CAN. CAN-XL-Controller können auch klassische CAN- und CAN-FD-Kommunikation verarbeiten und gewährleisten so die Kompatibilität in gemischten Netzwerken. Seine großen Datenfelder ermöglichen die Nutzung höherer Protokollschichten wie IP (Internet Protocol) und das Tunneln von Ethernet-Frames . [ 5 ] [ 15 ] [ 16 ]
Architektur
Schichten
Das CAN-Protokoll lässt sich, wie viele Netzwerkprotokolle, in die folgenden Abstraktionsschichten unterteilen :
- Anwendungsschicht
- Anwendungsspezifische Logik
- Objektebene
- Nachrichtenfilterung (Postfächer)
- Nachrichten- und Statusverarbeitung
- Transferschicht
Der Großteil des CAN-Standards betrifft die Übertragungsschicht. Diese empfängt Nachrichten von der physikalischen Schicht und leitet sie an die Objektschicht weiter. Die Übertragungsschicht ist verantwortlich für Bit-Timing und -Synchronisierung, Nachrichtenrahmen, Arbitrierung, Bestätigung, Fehlererkennung und -signalisierung sowie Fehlerbegrenzung. Sie führt folgende Aufgaben aus:
- Störungseinschluss
- Fehlererkennung
- Nachrichtenvalidierung
- Anerkennung
- Schiedsverfahren
- Botschaftsgestaltung
- Übertragungsrate und Zeit
- Informationsweiterleitung
- Physikalische Schicht

Der CAN-Bus ( ISO 11898-1 :2003) spezifizierte ursprünglich das Sicherungsschichtprotokoll mit lediglich abstrakten Anforderungen an die physikalische Schicht, z. B. die Verwendung eines Mediums mit Mehrfachzugriff auf Bitebene durch dominante und rezessive Zustände. Die elektrischen Aspekte der physikalischen Schicht (Spannung, Stromstärke, Anzahl der Leiter) wurden in ISO 11898-2 :2003 spezifiziert, die heute weithin anerkannt ist. Die mechanischen Aspekte der physikalischen Schicht (Steckertyp und -anzahl, Farben, Beschriftungen, Pinbelegung) sind jedoch noch nicht formal spezifiziert. Daher verfügt ein Kfz-Steuergerät typischerweise über einen speziellen – oft kundenspezifischen – Stecker mit verschiedenen Kabeln, von denen zwei die CAN-Bus-Leitungen sind. Dennoch haben sich mehrere De-facto-Standards für die mechanische Implementierung herausgebildet, wobei der gängigste der 9-polige D-Sub-Stecker mit folgender Pinbelegung ist:
- Pin 2: CAN-Low (CAN−)
- Pin 3: GND (Masse)
- Pin 7: CAN-High (CAN+)
- Pin 9: CAN V+ (Stromversorgung)

Dieser faktische mechanische Standard für CAN lässt sich realisieren, indem der Knoten über zwei 9-polige D-Sub-Stecker (männlich und weiblich) verfügt, die innerhalb des Knotens parallel miteinander verdrahtet sind. Die Busspannung wird dem männlichen Stecker des Knotens zugeführt, während der Bus über den weiblichen Stecker versorgt wird. Dies entspricht der elektrotechnischen Konvention, dass Stromquellen an weiblichen Steckern angeschlossen werden. Durch die Anwendung dieses Standards entfällt die Notwendigkeit, kundenspezifische Splitter anzufertigen, um zwei Busleitungen an einem einzigen D-Sub-Stecker an jedem Knoten zu verbinden. Solche nicht standardisierten (kundenspezifischen) Kabelbäume (Splitter), die die Leiter außerhalb des Knotens verbinden, verringern die Buszuverlässigkeit, verhindern die Austauschbarkeit der Kabel, reduzieren die Kompatibilität der Kabelbäume und erhöhen die Kosten.
Das Fehlen einer vollständigen Spezifikation der physikalischen Schicht (mechanisch und elektrisch) befreite die CAN-Bus-Spezifikation von den Einschränkungen und der Komplexität der physikalischen Implementierung. Dies führte jedoch zu Interoperabilitätsproblemen aufgrund mechanischer Inkompatibilität. Um die Interoperabilität zu verbessern, haben viele Fahrzeughersteller Spezifikationen erstellt, die eine Reihe zulässiger CAN-Transceiver in Kombination mit Anforderungen an die parasitäre Kapazität der Leitung beschreiben. Die zulässige parasitäre Kapazität umfasst sowohl Kondensatoren als auch den ESD-Schutz (ESD [ 17 ] gemäß ISO 7637-3). Zusätzlich zur parasitären Kapazität gelten für 12-V- und 24-V-Systeme unterschiedliche Anforderungen hinsichtlich der maximalen Leitungsspannung. So können die Leitungen von Pkw beim Starthilfegeben bis zu 24 V erreichen, während Lkw-Systeme bis zu 36 V erreichen können. Es entstehen neue Lösungen, die es ermöglichen, dieselbe Komponente sowohl für CAN als auch für CAN FD zu verwenden (siehe [ 18 ] ).
Die Störfestigkeit gemäß ISO 11898-2 :2003 wird durch die Aufrechterhaltung einer niedrigen Differenzimpedanz des Busses mittels niederohmiger Widerstände (120 Ohm) an beiden Enden erreicht. Im Ruhezustand verbraucht ein niederohmiger Bus wie CAN jedoch mehr Strom (und damit mehr Leistung) als andere spannungsbasierte Signalbusse. Bei CAN-Bussystemen sorgt der symmetrische Leitungsbetrieb , bei dem der Strom in einer Signalleitung exakt durch den entgegengesetzten Strom in der anderen Signalleitung ausgeglichen wird, für eine unabhängige, stabile 0- V-Referenzspannung für die Empfänger. Es empfiehlt sich, CAN-Bus-Signale in verdrillten Adernpaaren in einem geschirmten Kabel zu übertragen, um die HF-Emissionen zu minimieren und die Störanfälligkeit in der ohnehin störungsbehafteten HF-Umgebung eines Automobils zu reduzieren.
ISO 11898-2 bietet eine gewisse Immunität gegen Gleichtaktspannungen zwischen Sender und Empfänger, indem eine 0- V-Schiene entlang des Busses verläuft, um eine hohe Spannungsassoziation zwischen den Knoten zu gewährleisten. In der oben erwähnten mechanischen Konfiguration ist außerdem eine Versorgungsschiene vorgesehen, die die einzelnen Transceiver-Knoten mit Strom versorgt. Das Design sieht eine gemeinsame Versorgung aller Transceiver vor. Die tatsächliche Spannung, die vom Bus angelegt wird, und die daran angeschlossenen Knoten sind anwendungsspezifisch und nicht formal spezifiziert. Üblicherweise sind die Transceiver jedes Knotens optisch vom Host isoliert und beziehen eine linear geregelte 5-V-Versorgungsspannung von der universellen Versorgungsschiene des Busses. Dies ermöglicht in der Regel eine ausreichende Betriebsreserve an der Versorgungsschiene, um die Interoperabilität verschiedener Knotentypen zu gewährleisten. Typische Versorgungsspannungen in solchen Netzwerken liegen zwischen 7 und 30 V. Da es jedoch keinen formalen Standard gibt, sind Systementwickler für die Kompatibilität der Versorgungsschienen verantwortlich.
ISO 11898-2 beschreibt die elektrische Realisierung einer symmetrischen, einseitig gespeisten Leitung mit mehreren Abzweigen und Abschlusswiderständen an beiden Busenden. In dieser Konfiguration wird ein dominanter Zustand durch einen oder mehrere Sender erreicht, die CAN− auf 0 V und gleichzeitig CAN+ auf die +5 -V-Busspannung schalten. Dadurch entsteht ein Strompfad über die Abschlusswiderstände. Die Abschlusswiderstände sind somit ein wesentlicher Bestandteil des Signalsystems und dienen nicht nur der Begrenzung von Wellenreflexionen bei hohen Frequenzen.
Im rezessiven Zustand befinden sich die Signalleitungen und Widerstände in einem hochohmigen Zustand gegenüber beiden Versorgungsspannungen. Die Spannungen an CAN+ und CAN− nähern sich (schwach) einem Wert in der Mitte zwischen den Versorgungsspannungen an. Ein rezessiver Zustand ist auf dem Bus nur dann vorhanden, wenn keiner der Sender auf dem Bus einen dominanten Zustand signalisiert.
Im dominanten Zustand wechseln die Signalleitungen und Widerstände in einen niederohmigen Zustand gegenüber den Versorgungsspannungen, sodass Strom durch den Widerstand fließt. Die CAN+-Spannung nähert sich +5 V und die CAN−-Spannung 0 V.
Unabhängig vom Signalzustand befinden sich die Signalleitungen aufgrund der Abschlusswiderstände am Ende des Busses immer in einem niederohmigen Zustand zueinander.
Diese Signalisierungsstrategie unterscheidet sich deutlich von anderen symmetrischen Übertragungstechnologien wie RS-422 /3, RS-485 usw., die Differenzialleitungstreiber/-empfänger verwenden und ein Signalisierungssystem nutzen, das auf der Differenzspannung der symmetrischen Leitung basiert, die einen theoretischen Nullpunkt überschreitet. Der Mehrfachzugriff in solchen Systemen setzt üblicherweise voraus, dass das Übertragungsmedium drei Zustände unterstützt (aktiv hoch, aktiv niedrig und inaktiver Tri-State) und wird im Zeitbereich verarbeitet. Der Mehrfachzugriff im CAN-Bus wird durch die elektrische Logik des Systems realisiert, die lediglich zwei Zustände unterstützt, welche konzeptionell einem verdrahteten UND-Netzwerk entsprechen.
Physische Organisation
CAN ist ein serieller Multi-Master -Busstandard zur Verbindung von elektronischen Steuergeräten (ECUs), auch Knoten genannt ( Automobilelektronik ist ein wichtiger Anwendungsbereich). Für die Kommunikation über den CAN-Bus sind mindestens zwei Knoten erforderlich. Ein Knoten kann Schnittstellen zu Geräten von einfacher digitaler Logik (z. B. PLD) über FPGAs bis hin zu eingebetteten Computern mit umfangreicher Software bieten. Ein solcher Computer kann auch als Gateway fungieren und einem Allzweckcomputer (z. B. einem Laptop) die Kommunikation über einen USB- oder Ethernet-Anschluss mit den Geräten im CAN-Bus ermöglichen.
Alle Knoten sind über einen physikalisch herkömmlichen Zweidraht-Bus miteinander verbunden . Die Drähte bilden ein verdrilltes Paar mit einer charakteristischen Impedanz von 120 Ω (nominal) .
Dieser Bus verwendet differentielle, verdrahtete UND-verknüpfte Signale. Zwei Signale, CAN High (CANH) und CAN Low (CANL), werden entweder in einen „dominanten“ Zustand mit CANH > CANL geschaltet oder durch passive Widerstände in einen „rezessiven“ Zustand mit CANH ≤ CANL gezogen. Ein Datenbit mit dem Wert 0 kodiert den dominanten Zustand, ein Datenbit mit dem Wert 1 den rezessiven Zustand. Dies unterstützt die Konvention der verdrahteten UND-Verknüpfung, die Knoten mit niedrigeren ID-Nummern Priorität auf dem Bus einräumt.

ISO 11898-2 , auch High-Speed-CAN genannt (Bitraten bis zu 1 Mbit/s bei CAN, 5 Mbit/s bei CAN-FD), verwendet einen linearen Bus, der an jedem Ende mit einem 120 Ω Widerstand abgeschlossen ist.

Die Hochgeschwindigkeits-CAN-Signalisierung treibt die CANH-Leitung auf etwa 3,5 V und die CANL-Leitung auf etwa 1,5 V, wenn ein Gerät ein dominantes Signal (0) sendet. Sendet kein Gerät ein dominantes Signal, führen die Abschlusswiderstände die beiden Leitungen passiv in den rezessiven Zustand (1) mit einer nominalen Differenzspannung von 0 V zurück. (Empfänger betrachten jede Differenzspannung unter 0,5 V als rezessiv.) Die dominante Differenzspannung beträgt nominal 2 V. Die dominante Gleichtaktspannung (CANH+CANL)/2 muss innerhalb von 1,5 bis 3,5 V um den gemeinsamen Wert liegen, während die rezessive Gleichtaktspannung innerhalb von ±12 V um den gemeinsamen Wert liegen muss.

ISO 11898-3 , auch als Low-Speed- oder fehlertolerantes CAN (bis zu 125 kbit/s) bezeichnet, verwendet einen linearen Bus, einen Sternbus oder mehrere über einen linearen Bus verbundene Sternbusse. An jedem Knotenpunkt ist der Bus mit einem Bruchteil des Gesamtabschlusswiderstands abgeschlossen. Der Gesamtabschlusswiderstand sollte nahe, aber nicht unter 100 Ω liegen.

Die fehlertolerante CAN-Signalisierung mit niedriger Übertragungsgeschwindigkeit funktioniert ähnlich wie die CAN-Signalisierung mit hoher Übertragungsgeschwindigkeit, jedoch mit größeren Spannungsschwankungen. Der dominante Zustand wird übertragen, indem CANH auf die Versorgungsspannung des Geräts (5 V oder 3,3 V) und CANL auf 0 V angesteuert wird, wenn ein dominantes Signal (0) gesendet wird. Die Abschlusswiderstände ziehen den Bus in einen rezessiven Zustand, wobei CANH auf 0 V und CANL auf 5 V liegt. Dies ermöglicht einen einfacheren Empfänger, der lediglich das Vorzeichen der Differenz CANH – CANL berücksichtigt. Beide Leitungen müssen Spannungen von −27 V bis +40 V ohne Beschädigung aushalten können .
Elektrische Eigenschaften
Sowohl bei High-Speed- als auch bei Low-Speed-CAN ist die Übergangsgeschwindigkeit bei einem rezessiven zu dominanten Übergang höher, da die CAN-Leitungen aktiv angesteuert werden. Die Geschwindigkeit des dominanten zu rezessiven Übergangs hängt primär von der Länge des CAN-Netzwerks und der Kapazität der verwendeten Leitung ab.
Hochgeschwindigkeits-CAN wird üblicherweise in Automobil- und Industrieanwendungen eingesetzt, wo der Bus von einem Ende der Umgebung zum anderen verläuft. Fehlertolerantes CAN kommt häufig zum Einsatz, wenn Gruppen von Knoten miteinander verbunden werden müssen.
Die Spezifikationen verlangen, dass die Busspannung innerhalb eines minimalen und maximalen Gleichtaktspannungsbereichs gehalten wird, definieren aber nicht, wie die Busspannung innerhalb dieses Bereichs gehalten werden soll.
Der CAN-Bus muss terminiert werden. Die Abschlusswiderstände sind erforderlich, um Reflexionen zu unterdrücken und den Bus in seinen Ruhezustand zurückzuführen.
High-Speed-CAN verwendet an jedem Ende eines linearen Busses einen 120-Ω-Widerstand. Low-Speed-CAN verwendet Widerstände an jedem Knoten. Es können auch andere Abschlusswiderstände verwendet werden, wie beispielsweise die in ISO 11783 definierte Abschlussvorspannungsschaltung . [ 11 ]
ADie Abschlussvorspannungsschaltung versorgtneben der CAN-Signalisierung über ein vieradriges Kabel mit Strom und Masse. Dadurch wird an jedem Ende jedes Bussegments eine automatische elektrische Vorspannung und Terminierung gewährleistet . Ein ISO11783-Netzwerk ist für den Hot-Plug-in und Hot-Detachment von Bussegmenten und Steuergeräten ausgelegt.
Knoten

Jeder Knoten benötigt einen
- Zentraleinheit , Mikroprozessor oder Hostprozessor
- Der Hostprozessor entscheidet über die Bedeutung der empfangenen Nachrichten und welche Nachrichten er senden möchte.
- Sensoren, Aktoren und Steuergeräte können an den Host-Prozessor angeschlossen werden.
- CAN-Controller – oft ein integraler Bestandteil des Mikrocontrollers
- Empfangen: Der CAN-Controller speichert die empfangenen seriellen Bits vom Bus, bis eine vollständige Nachricht verfügbar ist, die dann vom Host-Prozessor abgerufen werden kann (in der Regel durch Auslösen eines Interrupts durch den CAN-Controller).
- Senden: Der Host-Prozessor sendet die Sendenachricht(en) an einen CAN-Controller, der die Bits seriell auf den Bus überträgt, sobald der Bus frei ist.
- Transceiver gemäß ISO 11898-2/3 Medium Access Unit [MAU]-Standard
- Empfangsfunktion: Sie wandelt den Datenstrom von den CAN-Bus-Pegeln in die vom CAN-Controller verwendeten Pegel um. Sie verfügt üblicherweise über Schutzschaltungen zum Schutz des CAN-Controllers.
- Übertragung: Es wandelt den Datenstrom vom CAN-Controller auf CAN-Bus-Pegel um.
Jeder Knoten kann Nachrichten senden und empfangen, jedoch nicht gleichzeitig. Eine Nachricht oder ein Frame besteht hauptsächlich aus der ID (Kennung), die die Priorität der Nachricht angibt, und bis zu acht Datenbytes. Eine CRC-Prüfsumme, ein Bestätigungssignal (ACK) und weitere Overhead-Daten sind ebenfalls Bestandteil der Nachricht. Das verbesserte CAN FD erweitert die Länge des Datenteils auf bis zu 64 Bytes pro Frame. Die Nachricht wird seriell im NRZ-Format ( Non-Return-to-Zero ) über den Bus übertragen und kann von allen Knoten empfangen werden.
Die über ein CAN-Netzwerk verbundenen Geräte sind typischerweise Sensoren , Aktoren und andere Steuergeräte. Diese Geräte werden über einen Host-Prozessor , einen CAN-Controller und einen CAN-Transceiver mit dem Bus verbunden.
Datenübertragung und Schiedsgerichtsbarkeit
Die CAN-Datenübertragung nutzt ein verlustfreies, bitweises Arbitrierungsverfahren zur Konfliktlösung. Dieses Verfahren erfordert, dass alle Knoten im CAN-Netzwerk synchronisiert sind, um jedes Bit gleichzeitig abzutasten. Daher wird CAN mitunter als synchron bezeichnet. Der Begriff „synchron“ ist jedoch ungenau, da die Daten asynchron, also ohne Taktsignal, übertragen werden.
Die CAN-Spezifikationen verwenden die Begriffe dominante und rezessive Bits. Ein dominantes Bit entspricht einer logischen 0 (aktiv vom Sender auf eine Spannung gesetzt), ein rezessives Bit einer logischen 1 (passiv durch einen Widerstand auf eine Spannung zurückgeführt). Der Ruhezustand wird durch den rezessiven Pegel (logische 1) repräsentiert. Sendet ein Knoten ein dominantes Bit und ein anderer ein rezessives Bit, kommt es zu einer Kollision, und das dominante Bit setzt sich durch. Dadurch wird die Nachricht mit höherer Priorität ohne Verzögerung übertragen, und der Knoten, der die Nachricht mit niedrigerer Priorität sendet, versucht automatisch, nach dem Ende der dominanten Nachricht sechs Bit-Taktsignale erneut zu senden. Dies macht CAN sehr gut geeignet für priorisierte Echtzeitkommunikation.
Die genauen Spannungen für eine logische 0 oder 1 hängen von der verwendeten physikalischen Schicht ab. Das Grundprinzip von CAN erfordert jedoch, dass jeder Knoten die Daten im CAN-Netzwerk empfängt, einschließlich der sendenden Knoten selbst. Wird von allen sendenden Knoten gleichzeitig eine logische 1 gesendet, empfangen alle Knoten, sowohl die sendenden als auch die empfangenden, diese logische 1. Wird hingegen von allen sendenden Knoten gleichzeitig eine logische 0 gesendet, empfangen alle Knoten diese logische 0. Sendet ein oder mehrere Knoten gleichzeitig eine logische 0 und ein oder mehrere Knoten gleichzeitig eine logische 1, empfangen alle Knoten, einschließlich der Knoten, die die logische 1 senden, die logische 0. Sendet ein Knoten eine logische 1, empfängt aber gleichzeitig eine logische 0, erkennt er die Konfliktsituation und beendet die Übertragung. Durch dieses Verfahren verliert jeder Knoten, der eine logische 1 sendet, wenn ein anderer Knoten eine logische 0 sendet, die Prioritätszuweisung und scheidet aus. Ein Knoten, der die Prioritätszuweisung verliert, reiht seine Nachricht erneut in die Warteschlange ein, und der CAN-Frame-Bitstrom wird fehlerfrei fortgesetzt, bis nur noch ein Knoten sendet. Das bedeutet, dass der Knoten, der die erste 1 sendet, die Prioritätszuweisung verliert. Da die 11-Bit-Kennung (bzw. 29-Bit-Kennung bei CAN 2.0B) von allen Knoten am Anfang des CAN-Frames gesendet wird, sendet der Knoten mit der niedrigsten Kennung am Anfang des Frames mehr Nullen. Dieser Knoten gewinnt die Prioritätszuweisung bzw. hat die höchste Priorität.
Betrachten wir beispielsweise ein CAN-Netzwerk mit 11-Bit-IDs und zwei Knoten mit den IDs 15 (binär: 00000001111) und 16 (binär: 00000010000). Senden diese beiden Knoten gleichzeitig, überträgt jeder zuerst das Startbit und anschließend die ersten sechs Nullen seiner ID, ohne dass eine Entscheidung getroffen wird.
| Startbit | ID-Bits | Der Rest des Bildausschnitts | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |||
| Knoten 15 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | |
| Knoten 16 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | Übertragung eingestellt | ||||
| CAN-Daten | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | |
Wird das vierte ID-Bit übertragen, sendet Knoten 16 eine 1 (rezessiv) und Knoten 15 eine 0 (dominant). Knoten 16 weiß, dass er eine 1 gesendet hat, empfängt aber eine 0 und erkennt die Kollision. Er verliert die Arbitrierung und stellt die Übertragung ein, wodurch Knoten 15 seine Übertragung ohne Datenverlust fortsetzen kann. Der Knoten mit der niedrigsten ID gewinnt die Arbitrierung und hat daher die höchste Priorität.
Bei Netzwerklängen unter 40 m sind Bitraten bis zu 1 Mbit/s möglich . Durch Reduzierung der Bitrate lassen sich größere Netzwerkdistanzen realisieren (z. B. 500 m bei 125 kbit/s). Der verbesserte CAN-FD- Standard erlaubt eine Erhöhung der Bitrate nach der Arbitrierung und kann die Geschwindigkeit des Datenteils um das Zehnfache oder mehr der Arbitrierungsbitrate steigern.
Bit-Timing
Alle Knoten im CAN-Netzwerk müssen mit der gleichen nominalen Bitrate arbeiten. Aufgrund von Rauschen, Phasenverschiebungen, Oszillatortoleranz und Oszillatordrift kann die tatsächliche Bitrate jedoch von der nominalen abweichen. [ 19 ] Da kein separates Taktsignal verwendet wird, ist eine Synchronisierung der Knoten erforderlich. Die Synchronisierung ist während der Arbitrierung wichtig, da die beteiligten Knoten gleichzeitig sowohl ihre eigenen als auch die Daten der anderen Knoten empfangen müssen. Sie ist außerdem wichtig, um sicherzustellen, dass Abweichungen im Oszillator-Timing zwischen den Knoten keine Fehler verursachen.
Die Synchronisierung beginnt mit einer harten Synchronisierung beim ersten Übergang von rezessiv zu dominant nach einer Bus-Leerlaufzeit (Startbit). Die Resynchronisierung erfolgt bei jedem Übergang von rezessiv zu dominant innerhalb des Frames. Der CAN-Controller erwartet, dass der Übergang zu einem Vielfachen der nominalen Bitzeit erfolgt. Tritt der Übergang nicht exakt zum erwarteten Zeitpunkt auf, passt der Controller die nominale Bitzeit entsprechend an.
Die Anpassung erfolgt dadurch, dass jedes Bit in eine Anzahl von Zeitscheiben, sogenannte Quanten, unterteilt wird und jedem der vier Segmente innerhalb des Bits – Synchronisation, Ausbreitung, Phasensegment 1 und Phasensegment 2 – eine bestimmte Anzahl von Quanten zugeordnet wird.

Die Anzahl der Quanten, in die das Bit unterteilt wird, kann je nach Controller variieren, und die Anzahl der jedem Segment zugewiesenen Quanten kann je nach Bitrate und Netzwerkbedingungen variiert werden.
Ein Phasenübergang, der vor oder nach dem erwarteten Zeitpunkt eintritt, veranlasst den Regler, die Zeitdifferenz zu berechnen und Phasensegment 1 entsprechend zu verlängern oder Phasensegment 2 um diese Zeit zu verkürzen. Dadurch wird die Synchronisation zwischen Sender und Empfänger sichergestellt. Dieser Resynchronisationsprozess wird bei jedem Übergang von rezessiv zu dominant kontinuierlich durchgeführt, um die Synchronisierung von Sender und Empfänger zu gewährleisten. Die kontinuierliche Resynchronisation reduziert rauschbedingte Fehler und ermöglicht es einem Empfangsknoten, der mit einem Knoten synchronisiert war, der die Arbitrierung verloren hat, sich mit dem Knoten zu resynchronisieren, der die Arbitrierung gewonnen hat.
ID-Zuweisung
Die Nachrichten-IDs müssen auf einem CAN-Bus eindeutig sein [ 12 ] , andernfalls würden zwei Knoten die Übertragung über das Ende des Arbitrierungsfeldes (ID) hinaus fortsetzen, was zu einem Fehler führen würde.
Anfang der 1990er-Jahre wurden Nachrichten-IDs einfach anhand des Datentyps und des sendenden Knotens vergeben. Da die ID jedoch gleichzeitig die Nachrichtenpriorität bestimmte, führte dies zu einer schlechten Echtzeit-Performance. In solchen Fällen war üblicherweise eine geringe CAN-Bus-Auslastung von etwa 30 % erforderlich, um sicherzustellen, dass alle Nachrichten ihre Fristen einhielten. Werden die IDs hingegen anhand der Nachrichtenfrist bestimmt – je niedriger die numerische ID und damit die Nachrichtenpriorität, desto höher –, lässt sich typischerweise eine Bus-Auslastung von 70 bis 80 % erreichen, ohne dass Nachrichtenfristen versäumt werden. [ 20 ]
Zwischenrahmenabstand
Daten- und Remote-Frames werden durch ein Bitfeld, den sogenannten Interframe-Space, von vorhergehenden Frames getrennt. Der Interframe-Space besteht aus mindestens drei aufeinanderfolgenden rezessiven Bits (1). Wird anschließend ein dominantes Bit erkannt, wird dieses als Startbit des nächsten Frames interpretiert. Überlast- und Fehler-Frames werden nicht durch einen Interframe-Space eingeleitet, und mehrere Überlast-Frames werden nicht durch einen Interframe-Space getrennt. Der Interframe-Space enthält die Bitfelder „Intermission“ und „Bus Idle“ sowie „Suspend Transmission for Error Passive Stations“, die die vorherige Nachricht gesendet haben. [ 21 ]
Rahmen & Nachrichtenstruktur
Rahmentypen
Ein CAN-Netzwerk kann für zwei verschiedene Nachrichten- (oder Frame- )Formate konfiguriert werden: das Standard- oder Basis-Frame-Format (beschrieben in CAN 2.0 A und CAN 2.0 B) und das erweiterte Frame-Format (nur in CAN 2.0 B beschrieben). Der einzige Unterschied zwischen den beiden Formaten besteht in der Länge des Identifikators: Der CAN-Basis-Frame unterstützt 11 Bit, der erweiterte CAN-Frame hingegen 29 Bit. Der Identifikator besteht aus dem 11-Bit-Basis-Identifikator und einer 18-Bit-Erweiterung. Die Unterscheidung zwischen dem CAN-Basis-Frame-Format und dem erweiterten CAN-Frame-Format erfolgt über das IDE-Bit. Dieses wird bei einem 11-Bit-Frame als dominant und bei einem 29-Bit-Frame als rezessiv übertragen. CAN-Controller, die Nachrichten im erweiterten Frame-Format unterstützen, können auch Nachrichten im CAN-Basis-Frame-Format senden und empfangen. Alle Frames beginnen mit einem Start-of-Frame-Bit (SOF-Bit), das den Beginn der Frame-Übertragung markiert.
CAN kennt vier Rahmentypen:
- Datenrahmen: Ein Rahmen, der Knotendaten zur Übertragung enthält
- Remote-Frame: Ein Frame, der die Übertragung einer bestimmten Kennung anfordert.
- Fehlerframe: Ein Frame, der von einem beliebigen Knoten gesendet wird, der einen Fehler erkennt.
- Überlastungsframe: Ein Frame, der eine Verzögerung zwischen Daten oder Remote-Frames einfügt.
Datenrahmen
Der Datenrahmen ist der einzige Rahmen für die eigentliche Datenübertragung. Es gibt zwei Nachrichtenformate:
- Basisrahmenformat: mit 11 Identifikationsbits
- Erweitertes Rahmenformat: mit 29 Identifikationsbits
Der CAN-Standard verlangt, dass die Implementierung das Basis-Frame-Format akzeptieren muss und das erweiterte Frame-Format akzeptieren darf, aber das erweiterte Frame-Format tolerieren muss.
Basisrahmenformat

Das Frame-Format ist wie folgt: Die Bitwerte werden für das CAN-LO-Signal beschrieben.
| Feldname | Länge (Bits) | Zweck |
|---|---|---|
| Anfang des Bildes | 1 | Kennzeichnet den Beginn der Rahmenübertragung |
| Kennung (grün) | 11 | Eine (eindeutige) Kennung, die auch die Nachrichtenpriorität darstellt. |
| Fernübertragungsanforderung (RTR) (blau) | 1 | Muss dominant (0) für Datenframes und rezessiv (1) für Remote-Request-Frames sein (siehe Remote Frame , unten). |
| Identifikatorerweiterungsbit (IDE) | 1 | Muss dominant (0) sein für Basisrahmenformat mit 11-Bit-Kennungen |
| Reserviertes Bit (r0) | 1 | Reserviertes Bit. Muss dominant (0) sein, wird aber sowohl als dominant als auch als rezessiv akzeptiert. |
| Datenlängencode (DLC) (gelb) | 4 | Anzahl der Datenbytes (0–8 Bytes) [ a ] |
| Datenfeld (rot) | 0–64 (0–8 Bytes) | Zu übertragende Daten (Länge in Bytes wird durch das DLC-Feld vorgegeben) |
| CRC | 15 | Zyklische Redundanzprüfung |
| CRC-Trennzeichen | 1 | Muss rezessiv sein (1) |
| ACK-Slot | 1 | Der Sender sendet ein rezessives Signal (1), und jeder Empfänger kann ein dominantes Signal (0) eingeben. |
| ACK-Trennzeichen | 1 | Muss rezessiv sein (1) |
| Ende des Bildes (EOF) | 7 | Muss rezessiv sein (1) |
| Interframe-Abstand (IFS) | 3 | Muss rezessiv sein (1) |
- Es ist physikalisch möglich, einen Wert zwischen 9 und 15 im 4-Bit-DLC zu übertragen, obwohl die Daten weiterhin auf acht Byte begrenzt sind. Bestimmte Controller ermöglichen die Übertragung oder den Empfang eines DLC mit mehr als acht Byte, die tatsächliche Datenlänge ist jedoch stets auf acht Byte beschränkt.

Erweitertes Rahmenformat
Das Rahmenformat ist wie folgt in der nachstehenden Tabelle:
| Feldname | Länge (Bits) | Zweck |
|---|---|---|
| Anfang des Bildes | 1 | Kennzeichnet den Beginn der Rahmenübertragung |
| Kennung A (grün) | 11 | Erster Teil der (eindeutigen) Kennung, die auch die Nachrichtenpriorität darstellt |
| Ersatz-Fernanforderung (SRR) | 1 | Muss rezessiv sein (1) |
| Identifikatorerweiterungsbit (IDE) | 1 | Muss rezessiv (1) sein für erweitertes Rahmenformat mit 29-Bit-Kennungen |
| Kennung B (grün) | 18 | Zweiter Teil der (eindeutigen) Kennung, der auch die Nachrichtenpriorität darstellt. |
| Fernübertragungsanforderung (RTR) (blau) | 1 | Muss dominant (0) für Datenframes und rezessiv (1) für Remote-Request-Frames sein (siehe Remote Frame , unten). |
| Reservierte Bits (r1, r0) | 2 | Reservierte Bits, die als dominant (0) gesetzt werden müssen, aber sowohl als dominant als auch als rezessiv akzeptiert werden. |
| Datenlängencode (DLC) (gelb) | 4 | Anzahl der Datenbytes (0–8 Bytes) [ a ] |
| Datenfeld (rot) | 0–64 (0–8 Bytes) | Zu übertragende Daten (Länge durch DLC-Feld vorgegeben) |
| CRC | 15 | Zyklische Redundanzprüfung |
| CRC-Trennzeichen | 1 | Muss rezessiv sein (1) |
| ACK-Slot | 1 | Der Sender sendet ein rezessives Signal (1), und jeder Empfänger kann ein dominantes Signal (0) eingeben. |
| ACK-Trennzeichen | 1 | Muss rezessiv sein (1) |
| Ende des Bildes (EOF) | 7 | Muss rezessiv sein (1) |
| Interframe-Abstand (IFS) | 3 | Muss rezessiv sein (1) |
- Es ist physikalisch möglich, einen Wert zwischen 9 und 15 im 4-Bit-DLC zu übertragen, obwohl die Daten weiterhin auf acht Byte begrenzt sind. Bestimmte Controller ermöglichen die Übertragung oder den Empfang eines DLC mit mehr als acht Byte, die tatsächliche Datenlänge ist jedoch stets auf acht Byte beschränkt.
Die beiden Identifikationsfelder (A & B) werden zu einer 29-Bit-Kennung kombiniert.
Fernbedienungsrahmen
- Die Datenübertragung erfolgt in der Regel autonom, indem der Datenquellenknoten (z. B. ein Sensor) einen Datenrahmen sendet. Es ist jedoch auch möglich, dass ein Zielknoten die Daten von der Quelle anfordert, indem er einen Datenrahmen sendet.
- Es gibt zwei Unterschiede zwischen einem Datenframe und einem Remote-Frame. Erstens wird das RTR-Bit im Datenframe als dominantes Bit übertragen, und zweitens enthält der Remote-Frame kein Datenfeld. Das DLC-Feld gibt die Datenlänge der angeforderten Nachricht an (nicht der gesendeten) .
- RTR = 0 ; DOMINANT im Datenrahmen
- RTR = 1 ; REZESSIV im entfernten Rahmen
Falls ein Datenframe und ein Remote-Frame mit derselben Kennung gleichzeitig übertragen werden, gewinnt der Datenframe die Arbitrierung aufgrund des dominanten RTR-Bits, das auf die Kennung folgt.
Fehlerrahmen
Der Fehlerrahmen besteht aus zwei verschiedenen Feldern:
- Das erste Feld ergibt sich aus der Überlagerung von Fehlerflags (6–12 dominante/rezessive Bits), die von verschiedenen Stationen beigesteuert werden.
- Das darauffolgende zweite Feld ist das ERROR DELIMITER (8 rezessive Bits).
Es gibt zwei Arten von Fehlerflags:
- Aktives Fehlerflag
- sechs dominante Bits – Übertragen von einem Knoten, der einen Fehler im Netzwerk erkennt und sich im Fehlerzustand befindet ( Fehler aktiv) .
- Passives Fehlerflag
- sechs rezessive Bits – Übertragen von einem Knoten, der einen aktiven Fehlerrahmen im Netzwerk erkennt und sich im Fehlerzustand befindet ( Fehler passiv) .
Im CAN-Bus gibt es zwei Fehlerzähler:
- Sendefehlerzähler (TEC)
- Empfangsfehlerzähler (REC)
- Wenn der TEC- oder REC-Wert größer als 127 und kleiner als 255 ist, wird ein passiver Fehlerrahmen über den Bus übertragen.
- Wenn TEC und REC kleiner als 128 sind, wird ein Active Error Frame über den Bus übertragen.
- Wenn der TEC-Wert größer als 255 ist, wechselt der Knoten in den Bus-Off-Zustand, in dem keine Frames mehr übertragen werden.
Überlastrahmen
Der Überlastungsrahmen enthält die beiden Bitfelder „Überlastungsflag“ und „Überlastungsbegrenzer“. Es gibt zwei Arten von Überlastungsbedingungen, die zur Übertragung eines Überlastungsflags führen können:
- Die internen Bedingungen eines Empfängers, die eine Verzögerung des nächsten Datenframes oder Remote-Frames erfordern.
- Erkennung eines dominanten Bits während der Pause.
Der Beginn eines Überlastungsrahmens aufgrund von Fall 1 ist nur zum ersten Bitzeitpunkt einer erwarteten Pause zulässig, während Überlastungsrahmen aufgrund von Fall 2 ein Bit nach Erkennung des dominanten Bits beginnen. Das Überlastungsflag besteht aus sechs dominanten Bits. Seine Form entspricht der des aktiven Fehlerflags. Die Form des Überlastungsflags verändert die feste Form des Pausenfelds. Dadurch erkennen alle anderen Stationen ebenfalls eine Überlastung und beginnen ihrerseits mit der Übertragung eines Überlastungsflags. Das Überlastungsbegrenzungszeichen besteht aus acht rezessiven Bits. Es hat dieselbe Form wie das Fehlerbegrenzungszeichen.
ACK-Slot
Der Bestätigungs-Slot dient der Empfangsbestätigung eines gültigen CAN-Frames. Jeder Knoten, der den Frame fehlerfrei empfängt, sendet im ACK-Slot ein dominantes Signal und überschreibt damit das rezessive Signal des Senders. Empfängt ein Sender ein rezessives Signal im ACK-Slot, weiß er, dass kein Empfänger einen gültigen Frame empfangen hat. Ein empfangender Knoten kann zwar ein rezessives Signal senden, um anzuzeigen, dass er keinen gültigen Frame empfangen hat, doch ein anderer Knoten, der einen gültigen Frame empfangen hat, kann dies mit einem dominanten Signal überschreiben. Der sendende Knoten kann nicht wissen, ob die Nachricht von allen Knoten im CAN-Netzwerk empfangen wurde.
Häufig sendet das Gerät nicht bestätigte Datenpakete immer wieder erneut. Dies kann schließlich dazu führen, dass es in den Fehlerzustand wechselt .
Bit Stuffing

Um genügend Übergänge für die Synchronisierung zu gewährleisten, wird nach fünf aufeinanderfolgenden Bits gleicher Polarität ein Bit entgegengesetzter Polarität eingefügt. Dieses Verfahren wird als Bit-Stuffing bezeichnet und ist aufgrund der bei CAN verwendeten NRZ-Codierung ( Non-Return-to-Zero ) notwendig. Die gestopften Datenrahmen werden vom Empfänger desuffed.
Alle Felder im Frame werden mit Bit-Stuffing versehen, mit Ausnahme des CRC-Trennzeichens, des ACK-Felds und des Frame-Endes, die eine feste Größe haben und nicht gestopft werden. In den Feldern, in denen Bit-Stuffing verwendet wird, gelten sechs aufeinanderfolgende Bits gleicher Polarität (111111 oder 000000) als Fehler. Ein Knoten kann ein aktives Fehlerflag senden, wenn ein Fehler erkannt wurde. Dieses aktive Fehlerflag besteht aus sechs aufeinanderfolgenden dominanten Bits und verstößt gegen die Regel des Bit-Stuffings.
Bit-Stuffing bedeutet, dass Dataframes größer sein können, als man durch einfaches Aufzählen der in den obigen Tabellen dargestellten Bits erwarten würde. Die maximale Größenzunahme eines CAN-Frames (Basisformat) nach Bit-Stuffing beträgt in folgendem Fall:
- 11111000011110000...
welche wie folgt gefüllt ist (Füllung fettgedruckt):
- 11111 0 0000 1 1111 0 0000 1 ...
Das Füllbit selbst kann das erste der fünf aufeinanderfolgenden identischen Bits sein, sodass im schlimmsten Fall ein Füllbit auf vier ursprüngliche Bits kommt.
Die Größe eines Basisrahmens ist begrenzt durch
wobei n die Anzahl der Datenbytes ist, maximal jedoch 8.
Da es sich um die Größe des Frames vor dem Stuffing handelt, wird im schlimmsten Fall nach dem ersten Bit jeweils ein Bit nach vier ursprünglichen Bits hinzugefügt (daher die −1 im Zähler). Aufgrund der Anordnung der Bits im Header können nur 34 von 44 Bits dem Bit-Stuffing unterliegen.
| Rahmentyp | vor dem Füllen | nach dem Füllen | Füllmaterial | Gesamtrahmenlänge |
|---|---|---|---|---|
| Grundrahmen | ||||
| erweiterter Rahmen |
Ein unerwünschter Nebeneffekt des Bit-Stuffing-Verfahrens besteht darin, dass eine geringe Anzahl von Bitfehlern in einer empfangenen Nachricht den Desuffing-Prozess beeinträchtigen und so eine größere Anzahl von Fehlern in der desuffing Nachricht verursachen kann. Dies reduziert den Schutz, den die CRC-Prüfsumme ansonsten gegen die ursprünglichen Fehler bieten würde. Dieser Mangel des Protokolls wurde in CAN-FD-Frames durch die Verwendung einer Kombination aus festen Füllbits und einem Zähler, der die Anzahl der eingefügten Füllbits erfasst, behoben.
Standardisierung und Protokolle
CAN-Standards der unteren Schicht
Die Normenreihe ISO 11898 spezifiziert die physikalische Schicht und die Sicherungsschicht (Schicht 1 und 2 des ISO/OSI -Modells) der seriellen Kommunikationskategorie Controller Area Network (CAN), die verteilte Echtzeitsteuerung und Multiplexing für den Einsatz in Straßenfahrzeugen unterstützt. [ 22 ]
Es gibt mehrere CAN- Standards für die physikalische Schicht und andere Standards:
ISO 11898-1:2015 spezifiziert die Sicherungsschicht (Data Link Layer, DLL) und die physikalische Signalisierung des Controller Area Network (CAN). [ 15 ] Dieses Dokument beschreibt die allgemeine Architektur von CAN anhand hierarchischer Schichten gemäß dem ISO-Referenzmodell für offene Systemverbindungen (OSI), das in ISO/IEC 7498-1 festgelegt ist, und legt die Merkmale für den Austausch digitaler Informationen zwischen Modulen fest, die die CAN-Sicherungsschicht implementieren. Dabei werden die Teilschichten Logical Link Control (LLC) und Medium Access Control (MAC) detailliert spezifiziert .
ISO 11898-2:2016 spezifiziert die Hochgeschwindigkeits- Medium-Access-Unit (MAU) (Übertragungsraten bis zu 1 Mbit/s) sowie einige MDI-Merkmale (Medium-Dependent Interface, gemäß ISO 8802-3), die die physikalische Schicht des Controller Area Network (CAN) bilden. ISO 11898-2 verwendet ein symmetrisches Zweidraht- Signalisierungsverfahren . Es ist die am häufigsten verwendete physikalische Schicht in Fahrzeugantriebsanwendungen und industriellen Steuerungsnetzwerken.
ISO 11898-3:2006 spezifiziert eine langsame, fehlertolerante, medienabhängige Schnittstelle zum Aufbau eines Austauschs digitaler Informationen zwischen elektronischen Steuergeräten von Straßenfahrzeugen, die mit CAN ausgestattet sind, bei Übertragungsraten von über 40 kbit/s bis zu 125 kbit/s.
ISO 11898-4:2004 spezifiziert die zeitgesteuerte Kommunikation im CAN-Bus (TTCAN). Sie dient der Einrichtung eines zeitgesteuerten Austauschs digitaler Informationen zwischen den Steuergeräten (ECUs) von mit CAN ausgestatteten Straßenfahrzeugen und legt die Rahmensynchronisationseinheit fest, die gemäß ISO 11898-1 die Funktionsweise der logischen Verbindungs- und Medienzugriffskontrollen koordiniert, um den Zeitplan für die zeitgesteuerte Kommunikation bereitzustellen.
ISO 11898-5:2007 spezifiziert die CAN-Physikschicht für Übertragungsraten bis zu 1 Mbit/s für den Einsatz in Straßenfahrzeugen. Sie beschreibt die Funktionen der Mediumzugriffseinheit sowie einige medienabhängige Schnittstellenmerkmale gemäß ISO 8802-2. Diese Norm stellt eine Erweiterung von ISO 11898-2 dar und behandelt neue Funktionalitäten für Systeme, die einen geringen Stromverbrauch erfordern, wenn keine aktive Buskommunikation stattfindet.
ISO 11898-6:2013 spezifiziert die CAN-Bitübertragungsschicht für Übertragungsraten bis zu 1 Mbit/s in Straßenfahrzeugen. Sie beschreibt die Funktionen der Mediumzugriffseinheit sowie einige medienabhängige Schnittstellenmerkmale gemäß ISO 8802-2. Dies stellt eine Erweiterung von ISO 11898-2 und ISO 11898-5 dar und spezifiziert einen selektiven Weckmechanismus mittels konfigurierbarer CAN-Frames.
ISO 16845-1:2016 stellt die Methodik und die abstrakte Testsuite bereit, die für die Überprüfung der Konformität jeder CAN-Implementierung des in ISO 11898-1 spezifizierten CAN erforderlich sind.
ISO 16845-2:2018 legt Testfälle und Testanforderungen fest, um einen Testplan zu erstellen, der überprüft, ob der CAN-Transceiver mit implementierten selektiven Weckfunktionen die spezifizierten Funktionalitäten erfüllt. Die in ISO 16845-2:2018 definierte Testart wird als Konformitätsprüfung bezeichnet.
CAN-basierte Protokolle höherer Schichten
Da der CAN-Standard gängige Kommunikationsmerkmale wie Flusssteuerung , Geräteadressierung und den Transport von Datenblöcken, die größer als eine Nachricht sind, sowie vor allem Anwendungsdaten nicht umfasst, wurden zahlreiche Implementierungen von Protokollen höherer Schichten entwickelt. Einige davon sind für einen bestimmten Geschäftsbereich standardisiert, obwohl sie alle von jedem Hersteller erweitert werden können. Für Pkw verwendet jeder Hersteller seinen eigenen Standard.
CAN in Automation (CiA) ist die internationale Anwender- und Herstellerorganisation, die CAN-basierte Protokolle höherer Schichten entwickelt und unterstützt sowie deren internationale Standardisierung vorantreibt. [ 14 ] Zu diesen Spezifikationen gehören unter anderem:
Liste standardisierter Ansätze
- ARINC 812 oder ARINC 825 (Luftfahrtindustrie)
- CANopen - CiA 301/302-2 und EN 50325-4 ( Industrieautomation )
- IEC 61375 -3-3 (Verwendung von CANopen in Schienenfahrzeugen)
- DeviceNet ( Industrieautomation )
- EnergyBus - CiA 454 und IEC 61851 -3 (Batterie-Ladegerät-Kommunikation)
- ISOBUS - ISO 11783 (Landwirtschaft)
- ISO-TP - ISO 15765-2 (Transportprotokoll für die Fahrzeugdiagnostik)
- MilCAN (Militärfahrzeuge)
- NMEA 2000 - IEC 61162-3 (Schifffahrtsindustrie)
- SAE J1939 (Fahrzeugnetzwerk für Busse und Lkw)
- SAE J2284 (Fahrzeugnetzwerke für Pkw)
- Einheitliche Diagnosedienstleistungen (UDS) - ISO 14229 (Kfz-Diagnostik)
- LeisureCAN – offener Standard für die Freizeitboot-/Fahrzeugindustrie
Liste anderer Ansätze
- CANaerospace - Aktie (für die Luftfahrtindustrie)
- CAN Kingdom - Kvaser (eingebettetes Steuerungssystem)
- CCP/ XCP (Kalibrierung von Kfz-Steuergeräten)
- GMLAN – General Motors (für General Motors )
- RV-C - RVIA (wird für Freizeitfahrzeuge verwendet)
- SafetyBUS p - Pilz (für die industrielle Automatisierung )
- UAVCAN (Luft- und Raumfahrt und Robotik)
- CSP (CubeSat Space Protocol)
- VSCP (Very Simple Control Protocol) ist ein kostenloses Automatisierungsprotokoll, das sich für alle Arten von Automatisierungsaufgaben eignet.
CANopen Lift
Die CANopen Special Interest Group (SIG) „Lift Control“, gegründet 2001, entwickelt das CANopen-Anwendungsprofil CiA 417 für Aufzugssteuerungssysteme . Sie erweitert die Funktionen, verbessert die technischen Inhalte und stellt die Einhaltung der geltenden Rechtsnormen für Aufzugssteuerungssysteme sicher. Die erste Version von CiA 417 wurde im Sommer 2003 veröffentlicht (verfügbar für CiA-Mitglieder), Version 2.0 im Februar 2010, Version 2.1.0 im Juli 2012, Version 2.2.0 im Dezember 2015 und Version 2.3.1 im Februar 2020.
Jörg Hellmich (ELFIN GmbH) ist Vorsitzender dieser SIG und betreut ein Wiki der CANopen-Lift-Community mit Inhalten über CANopen-Lifte.
DBC (CAN-Datenbankdateien)
CAN-DBC-Dateien sind standardisierte ASCII-Dateien, die zur Definition von Nachrichten verwendet werden, die über einen CAN-Bus gesendet werden. Sie definieren das Format und den Zweck jedes Nachrichtentyps, einschließlich der Nachrichten-IDs, Signalnamen, Skalierung, Offsets und Datentypen, und bieten eine interoperable Unterstützung für die Entwicklung von CAN-Bus-Anwendungen.
Sicherheit
CAN ist ein Low-Level-Protokoll und bietet keine inhärenten Sicherheitsfunktionen. Standardmäßige CAN-Implementierungen enthalten auch keine Verschlüsselung, wodurch diese Netzwerke anfällig für Man-in-the-Middle-Angriffe sind. In den meisten Implementierungen wird von Anwendungen erwartet, dass sie eigene Sicherheitsmechanismen einsetzen, z. B. zur Authentifizierung eingehender Befehle oder der Anwesenheit bestimmter Geräte im Netzwerk. Werden keine ausreichenden Sicherheitsmaßnahmen implementiert, kann dies zu verschiedenen Angriffen führen, wenn es einem Angreifer gelingt, Nachrichten in den Bus einzuschleusen. [ 23 ] Zwar existieren Passwörter für einige sicherheitskritische Funktionen, wie z. B. die Modifizierung von Firmware, die Programmierung von Schlüsseln oder die Steuerung von ABS-Aktuatoren, diese Systeme sind jedoch nicht universell implementiert und verfügen nur über eine begrenzte Anzahl von Seed/Key-Paaren.
Entwicklungswerkzeuge
Bei der Entwicklung oder Fehlersuche im CAN-Bus ist die Untersuchung der Hardware-Signale von großer Bedeutung. Logik- und Busanalysatoren erfassen, analysieren, dekodieren und speichern Signale, sodass die Hochgeschwindigkeits-Signalformen jederzeit betrachtet werden können. Darüber hinaus gibt es spezielle Werkzeuge und CAN-Bus-Monitore.
ADer CAN-Bus-Monitor ist ein Analysetool, oft eine Kombination aus Hardware und Software , das bei der Entwicklung von Hardware eingesetzt wird, die den CAN-Bus nutzt.
Der CAN-Bus-Monitor überwacht üblicherweise den Datenverkehr auf dem CAN-Bus und stellt ihn in einer Benutzeroberfläche dar. Häufig bietet er auch die Möglichkeit, CAN-Bus-Aktivitäten zu simulieren, indem er CAN-Frames an den Bus sendet. Der CAN-Bus-Monitor kann daher verwendet werden, um den erwarteten CAN-Datenverkehr eines bestimmten Geräts zu überprüfen oder um CAN-Datenverkehr zu simulieren und so die Reaktion eines an den CAN-Bus angeschlossenen Geräts zu testen.
Lizenzierung
Bosch hält Patente an der Technologie, wobei die Patente für das ursprüngliche Protokoll inzwischen abgelaufen sind. Hersteller von CAN-kompatiblen Mikroprozessoren zahlen Lizenzgebühren an Bosch für die Nutzung der CAN-Marke und aller neueren Patente im Zusammenhang mit CAN FD. Diese Gebühren werden üblicherweise im Chippreis an den Kunden weitergegeben. Hersteller von Produkten mit kundenspezifischen ASICs oder FPGAs , die CAN-kompatible Module enthalten, müssen eine Gebühr für die CAN-Protokolllizenz entrichten, wenn sie die CAN-Marke oder CAN-FD-Funktionen nutzen möchten. [ 24 ]
Siehe auch
- CANopen – Computernetzwerkprotokoll
- Automotive EtherLoop – Hybridtechnologie für die Telekommunikation
- FlexRay – Computernetzwerkprotokoll
- Liste der Netzwerkbusse – Liste der elektronischen Kommunikationsbussysteme mit einer einzigen Kollisionsdomäne
- Modbus – Serielles Kommunikationsprotokoll
- MOST-Bus – Hochgeschwindigkeits-Multimedia-Netzwerktechnologie, die in der Automobilindustrie eingesetzt wird
Referenzen
- ^ Esoterical. „Esotericals CANBus-Leitfaden“ . Esoterical . Archiviert vom Original am 21. Dezember 2025. Abgerufen am 21. Dezember 2025 .
- ^ a b „CAN History“ . CAN in Automation. Archiviert vom Original am 15.07.2018 . Abgerufen am 25.02.2016 .
- ^ „Mercedes-Benz S-Klasse W 140“ . mercedes-benz.com . 23. Februar 2016. Archiviert vom Original am 10. Juni 2019. Abgerufen am 27. Oktober 2017 .
- ^ „CAN in der Automatisierung – Mercedes W140: Erstes Auto mit CAN“ . can-newsletter.org . Abgerufen am 27. Oktober 2017 .
- ^ a b c „Bosch Semiconductor CAN Literature“ . Archiviert vom Original am 23.05.2017 . Abgerufen am 31.05.2017 .
- ^ Bau eines Adapters für die On-Board-Diagnose von Fahrzeugen (Archiviert am 14.05.2018 im Internet Archive , obddiag.net, abgerufen am 09.09.2009)
- ^ Vergleich ereignis- und zeitgesteuerter Konzepte im Hinblick auf verteilte Steuerungssysteme. A. Albert, Robert Bosch GmbH. Embedded World, 2004, Nürnberg.
- ^ „Grundlagen der CAN-Verbindung“ . Duet3D-Dokumentation . Duet3D. Archiviert vom Original am 21. Dezember 2025. Abgerufen am 21. Dezember 2025 .
- ^ „NISMO erweitert die Funktionalität des GT6 GPS-Datenloggers und die Anzahl der aufgezeichneten Tracks“ . www.gtplanet.net . 25. Oktober 2014.
- ^ „Was ist DiveCAN und warum sollte mich das interessieren?“ . 22. März 2016.
- ^ a b „ISO11783 a Standardisierte Traktor-Anbaugeräte-Schnittstelle“ (PDF) . Archiviert vom Original (PDF) am 08.03.2021 . Abgerufen am 29.01.2017 .
- ^ a b c ISO 11898-1:2015 – Straßenfahrzeuge — Controller Area Network (CAN) — Teil 1: Sicherungsschicht und physikalische Signalisierung .
- ^ a b Nasser, Ahmad MK (2023). Automotive cybersecurity engineering handbook: the automotive engineer's roadmap to cyber-resilient vehicles (1. Aufl.). Birmingham Mumbai: Packt. ISBN 978-1-80107-653-1Die
- ^ a b CiA: Internationale Normung .
- ^ a b "ISO 11898-1:2003 - Straßenfahrzeuge -- Controller Area Network (CAN) -- Teil 1: Sicherungsschicht und physikalische Signalisierung" . ISO.
- ^ „CAN_XL, CAN XL, CAN, Bosch_CAN, IP-Module“ . Bosch Halbleiter für die Automobilindustrie . Abgerufen am 15.05.2024 .
- ^ "ISO7637-3 Diodenschutz für CAN-Bus" .
- ^ "CAN-Bus-ESD-Schutz" .
- ^ „Understanding Microchip's CAN Module Bit Timing“ (PDF) .
- ^ Daigmorte, Hugo; Boyer, Marc (2017), „Evaluation of admissible CAN bus load with weak synchronization mechanism“ , Proc. of the 24th Int. Conf. on Real-Time Networks and Systems (RTNS 2017) , Grenoble, Frankreich: ACM
- ^ "CAN-BUS-Nachrichtenrahmen – Überlastrahmen, Zwischenrahmenraum" . 18. November 2009.
- ^ „Controller Area Network (CAN)“ . Vector Group. Archiviert vom Original am 25. April 2016. Abgerufen am 25. September 2013 .
- ^ „Wir fuhren ein Auto, während es gehackt wurde“ . www.vice.com . 29. Mai 2014. Archiviert vom Original am 8. November 2019.
- ^ „Lizenzbedingungen CAN-Protokoll und CAN-FD-Protokoll“ (PDF) . Archiviert vom Original (PDF) am 16.03.2016 . Abgerufen am 15.03.2016 .
Externe Links
- Spezifikationen
- ISO 11898-1 Standard (2015) – beinhaltet CAN- und CAN-FD-Spezifikationen
- Bosch CAN-Spezifikation Version 2.0 (1991, 1997) – auch bekannt als Classical CAN und CAN-Classic
- Bosch CAN-FD Spezifikation Version 1.0 (2012) – Erhöhung der Datenraten auf bis zu 8 Mbit/s
- Bosch CAN-FD-Light (zukünftig) – kostenoptimierte Teilmenge von CAN-FD
- Bosch CAN-XL (zukünftig) – Erhöhung der Datenraten auf bis zu 20 Mbit/s
- Andere
- Analyse der Planbarkeit von Controller Area Networks (CAN): Widerlegt, neu betrachtet und überarbeitet
- Pinbelegung für gängige CAN-Bus-Steckverbinder
- Eine Webseite über CAN im Automobilbereich
- Analyse der Planbarkeit von Controller Area Networks (CAN) mit FIFO-Warteschlangen
- Implementierungsleitfaden für Controller Area Networks (CAN) – Archiviert am 10.12.2012 im Internetarchiv (Wayback Machine)
- Kostenloser Bit-Timing-Rechner für Windows, unterstützt viele Mikrocontroller, z. B. Atmel, STM32, Microchip, Renesas, ... (ZIP-Datei)
- Kostenloses E-Learning-Modul „Einführung in CAN“
- ARINC-825 Tutorial (Video) von Excalibur Systems Inc.
- Webseite von CiA
- CAN Newsletter Online
- Verständnis und Nutzung des Controller Area Network der UC Berkeley
- CAN-Protokoll-Tutorial
- ESD-Schutz für CAN-Bus und CAN FD