Nürnberg, 5. August 2024. Still und leise ist die dritte Generation des seriellen Kommunikationssystem CAN (controller area network) international genormt worden. Der Name ist CAN XL (extended data-field length). Dabei hat die zweite Generation CAN FD (flexible data rate) immer noch nicht die erste Generation CAN CC (classic) abgelöst.
Eine kurze Rückblende: 1986 kündigte Bosch auf einem SAE-Kongress in Detroit das CAN-Protokoll an. Zwei Jahre später lieferten Intel und Philips Semiconductors (heute: NXP) Stand-alone-CAN-Controller. Nach weiteren drei Jahren verließen die ersten mit einem CAN-Netzwerk ausgerüsteten S-Klasse-Fahrzeuge von Mercedes die Werkshallen. Heutzutage befinden sich in fast allen Personenkraftwagen mehrere CAN-Netzwerke, die zwischen 30 und 200 elektronische Steuergeräte (electronic control units) verbinden. Jährlich werden mehr als drei Milliarden CAN-Schnittstellen verbaut, wenn man durchschnittlich 40 ECUs in 80 Millionen PKWs annimmt. Nutzfahrzeuge und andere CAN-Anwendungen nicht mitgezählt. Dies ist also eine sehr konservative Annahme.
CAN-Netzwerke wurden von Beginn auch in anderen Industrien eingesetzt: Pioniere waren die Aufzugsbranche, die Medizintechnik und der Textilmaschinenbau. Im Jahre 1992 gründeten sechs Firmen und zwei Privatpersonen auf meine Initiative den eingetragenen Verein CAN in Automation (CiA), der sich die Weiterentwicklung und Vermarktung des CAN-Protokolls auf die Fahnen geschrieben hat. Derzeit hat der Verein weltweit über 750 Mitglieder. In den folgenden Jahren übernahm er hauptsächlich die Pflege und Weiterentwicklung der in einem europäischen Forschungsprojekt erstellten CANopen-Spezifikationen. CANopen umfasst die auf dem CAN-CC-Protokoll basierende höhere Protokolle (application layer) und sogenannte Geräte- und Anwendungsprofile, mit denen es möglich ist, interoperable Produkte zu entwickeln. Es gibt CANopen-Geräteprofile für Ein-/Ausgabe-Module (CiA 401), elektrische und hydraulische Antriebe (CiA 402 bzw. CiA 408), Drehgeber (CiA 406), Neigungssensoren (CiA 410) und Container-Traversen (CiA 444), um nur einige wenige zu nennen. Einige Branchen haben Anwendungsprofile entwickelt, die sämtliche Gewerke-Schnittstellen spezifizieren. Dazu zählen unter anderem Aufzugssteuerungen (CiA 417), Abfallsammelfahrzeuge (CiA 422) und Unterwasser-Öl-und-Gas-Systeme (CiA 443). Insgesamt umfassen die CANopen-Spezifikationen mehr als 20 000 DIN-A4-Seiten.
Die 2. Generation: CAN FD
Im Jahre 2012 startete Bosch auf Wunsch einiger PKW-Hersteller (insbesondere General Motors) die Entwicklung des CAN-FD-Protokolls. Drei Jahre später wurde das CAN-FD-Protokoll mit Verbesserungen in die Norm ISO 11898-1:2015 aufgenommen. Es bietet ein erweitertes Datenfeld von bis zu 64 Byte. Im Vergleich: ein CAN-CC-Datenrahmen-Telegramm (data frame) unterstützt Datenlängen bis zu 8 Byte. Die aus dem CAN-CC-Protokoll bekannten Remote-Frames, mit denen ein Teilnehmer von einem anderen Datenframes anfordern kann, gibt es im CAN-FD-Protokoll nicht.
Außerdem kann im CAN-FD-Datenframe nach der Buszuteilung (bus arbitration) auf eine höhere Bitrate umgeschaltet werden, da nur noch ein Netzteilnehmer senden darf und eine In-Bitzeit-Abtastung nicht mehr notwendig ist. Realistische Bitraten von 2 Mbit/s sind auch in Mehrpunkt-Netzwerken (multi-drop networks) mit sogenannten CAN-FD-Transceivern über einen Temperaturbereich von -40 °C bis +125 °C erreichbar. Bei Punkt-zu-Punkt-Verbindungen kann man sogar Bitraten bis zu 5 Mbit/s erzielen. CAN-FD-Transceiver wurden erstmals in der Norm ISO 11898-2:2016 standardisiert.
CiA-Mitglieder erstellten inzwischen die CAN-SIC-Transceiver-Spezifikation (signal improvement capability). Die nach dieser Spezifikation implementierten integrierten Schaltkreise können das im Wesentlichen durch die Netzwerktopologie verursachte „Klingeln“ auf den Leitungen unterdrücken. Mit ihnen sind deshalb realistische Bitraten von bis zu 8 Mbit/s möglich, selbst wenn hybride Netzwerktopologien mit mehreren Teilnehmern verwendet werden.
Die höheren Protokolle CANopen (genormt in EN 50325-4) und J1939-21 (wird vor allem in Nutzfahrzeugen eingesetzt) wurden entsprechend im CiA und in der SAE weiterentwickelt, um die Vorteile des CAN-FD-Protokolls zu nutzen. Die Ergebnisse: CANopen-FD (CiA 1301) und J1939-17/22. Noch haben diese auf CAN-FD-basierenden höheren Protokolle keine hohe Marktdurchdringung erreicht. Erste Gerätehersteller und Anwender haben jedoch CANopen-FD-Netzwerke realisiert und einige Nutzfahrzeuge (einschließlich Baumaschinen) verwenden J1939-17/22-Netzwerke. Der CiA hat bereits einige Profil-Spezifikationen an die CANopen-FD-Protokolle angepasst. Anders sieht es bei den PKWs aus. Fast alle marktrelevanten Fahrzeughersteller migrierten in den letzten Jahren schrittweise von CAN-CC- zu CAN-FD-Netzwerken. Selbstverständlich nur dort, wo längere Frames und höhere Bitraten notwendig waren, also vor allem im Motormanagement (drive-train).
Die 3. Generation: CAN XL
Kaum war die zweite Generation des CAN-Protokolls in trockenen Tüchern, begannen CiA-Mitglieder auf Wunsch von Volkswagen, die dritte Generation zu spezifizieren. Ziele waren, die maximale Datenfeldlänge auf 2048 Byte zu erhöhen und die Bitrate auf minimal 10 Mbit/s zu steigern. Die ersten Treffen fanden Ende 2018 statt und Anfang 2024 wurden die entsprechenden ISO-Normen veröffentlicht. ISO 11898-1:2024 standardisierte nun alle drei CAN-Protokoll-Generationen und sämtliche CAN-Rahmentelegramme:
- CBFF (classic base frame format): CAN-CC-Daten-Telegramm mit 11-bit-IDs (identifier)
- CEFF (classic extended frame format): CAN-CC-Daten-Telegramm mit 29-bit-IDs
- RF (remote frame): CAN-CC-Anforderungstelegramme mit 11- bzw. 29-bit-IDs
- FBFF (FD base frame format): CAN-FD-Daten-Telegramm mit 11-bit-IDs
- FEFF (FD extended frame format): CAN-FD-Daten-Telegramm mit 29-bit-IDs
- XLFF (XL frame format): CAN-XL-Daten-Telegramm mit 11-bit-Prioritäts-ID und 32-bit-Akzeptanzfeld
- EF (error frame): Fehlertelegramm
- OF (overload frame): Überlasttelegramm
Im CAN-XL-Protokoll wurden Busarbitrierung und Dateninhaltskennzeichnung separiert. Das 11-bit-Prioritätsfeld (priority field) wird für die Buszuteilung (Sendeerlaubnis) genutzt und das 32-bit-Akzeptanzfeld (acceptance field) identifiziert den Inhalt des Datenfeldes. Bisher nutzte man für beide Zwecke die 11-bit- oder 29-bit-IDs.
Zusätzlich wurde das das 8-bit-SDT-Feld (service data type field) eingeführt; es teilt dem Empfänger mit, welches höhere Protokoll verwendet wird. Somit kann man auf dem gleichen CAN-XL-Netzwerk verschiedene Anwendungen betreiben. Die SDT-Werte werden vom CiA zugeteilt. Definiert sind auch Werte für das Transportieren von Ethernet-Frames und TCP/IP-Segmenten. CAN-XL fungiert dann als robustes und zuverlässiges Transportmittel von Ethernet-basierenden Nachrichten.
Ein weiteres Novum ist das 8-bit-VCID-Feld (virtual controller area network channel identifier). Mit diesem vom Systementwickler eindeutig zugeordneten Wert kann der Empfänger erkennen, welchem virtuellen Netzwerk das Datenframe zugeordnet ist. So kann man sogar mehrere Anwendungen mit dem gleichen höheren Protokoll unterscheiden. Dadurch eignet sich das CAN-XL-Protokoll auch für Rückgrat-Netzwerke (backbone network).
Das CAN-XL-Ökosystem (ecosystem) wird noch weiter ausgebaut. Im CiA wird beispielsweise für die Datensicherungssicht (data link layer) die optionale Unterschicht (sublayer) CANsec diskutiert. Sie soll hardware-implementierbar sein und das CAN-XL-Protokoll gegen Cyberangriffe schützen. Zusätzlich wird im CiA eine optionale Frame-Fragmentierung spezifiziert. Sie soll lange CAN-XL-Frames automatisch in kleine Häppchen zerlegen, die beim Empfänger automatisch wieder zusammengefügt werden. So kann man die Echtzeitfähigkeit verbessern.
Mit CAN-SIC-XL-Transceivern sind im FAST-Mode Bitraten bis zu 20 Mbit/s möglich. Im Gegensatz zu allen anderen Transceiver-Arten wird keine NRZ-Kodierung (non-return-to-zero), sondern eine PWM-Kodierung (pulse-width modulation) verwendet. Die Umschaltung von der NRZ-kodierten Arbitrierungsphase zur PWM-kodierten Datenphase erfolgt in zwei Schritten. Am Ende des CAN-XL-Frames wird wieder zurück geschaltet. In mehreren CiA-Plugfests wurde dies mit verschiedenen Netzwerktopologien erfolgreich getestet. Bei Verwendung des FAST-Modes muss allerdings die automatische Wiederholung von fehlerhaften Datenframes abgeschaltet werden und in der Arbitrierungsphase sind maximal 667 kbit/s erreichbar anstatt der sonst üblichen 1 Mbit/s. Man kann selbstverständlich die Transceiver im SIC-Mode betreiben, dann besteht zwar weiterhin die Einschränkung auf 667 kbit/s, aber man kann dann sogar CAN-FD- und CAN-XL-Knoten im Netzwerk parallel nutzen. Die automatische Wiederholung von fehlerhaften Datenframes ist dabei aber aktiv.
Die folgenden Transceiver-Arten sind in ISO 11898-2:2024 standardisiert:
- HS (high-speed): Sie unterstützen Bitraten bis 1 Mbit/s.
- FD: Sie eignen sich für Bitraten über 1 Mbit/s; abhängig von ihrer Symmetrie-Fähigkeit und vom Netzwerkdesign sind 2 Mbit/s und mehr erreichbar.
- SIC: Sie haben eine dynamische Impedanz und können „Klingeln“ auf den Netzwerkleitungen unterdrücken; mit ihnen sind Bitraten bis zu 8 Mbit/s möglich.
- SIC XL: Im FAST-Mode mit PWM-kodierten Bits erreicht man abhängig von der Netzwerkauslegung bis zu 20 Mbit/s.
SIC-XL-Transceiver sind noch im Prototypenstatus. Alle anderen erwähnten Transceiver-Arten sind in der Serienproduktion und werden in sehr großen Stückzahlen eingesetzt.
Neue Begrifflichkeiten
Mit der Einführung der dritten CAN-Generation ist nun endgültig notwendig, die Begriffe klar zu definieren und auch in Datenblättern und Produktbeschreibungen zu verwenden. Spricht man von „CAN“, meint man alle drei Protokollgeneration. Für die einzelnen Generationen sollte zukünftig klar zwischen CAN CC (1. Generation), CAN FD (2. Generation) und CAN XL (3. Generation) unterschieden werden. Für die Transceiver gilt entsprechendes; sie sind allerdings nicht an eine bestimmte CAN-Protokoll-Generation gebunden. Nur CAN-XL-Transceiver im FAST-Mode benötigen einen CAN-XL-Controller, der entsprechend konfiguriert ist. Die Skalierbarkeit der physikalischen Übertragung ist für alle drei CAN-Protokollgenerationen in gewissem Rahmen gegeben und ein wesentliches Merkmal. So lassen sich CAN-Netzwerke optimal an Anforderungen bezüglich Topologie und Datendurchsatz anpassen.
In den Normen ISO 11898-1:2024 und ISO 11898-2:2024 wurden weitere Begriffe vereinheitlicht und neu definiert, um Missverständnisse und Fehlinterpretationen zu minimieren. Deshalb der Appell an alle Hersteller und Fachzeitschriften, diese aktuellen Begrifflichkeiten zu nutzen. Entsprechend dem international genormten OSI-Modell (open systems interconnection), ist eine Nachricht (message) ein Term der Anwendungsschicht, ein Segment (segment) gehört zur Transportschicht und ein Paket (packet) zur Netzwerkschicht. Die Datensicherungsschicht überträgt Rahmentelegramme (frame). Auch hier gilt: eine einheitliche Nutzung der Begriffe erleichtert das Lernen und Verstehen.