Sicherer Datenaustausch mit CAN - Teil 2

CAN

CAN (Controller Area Network) ist ein nachrichtenorientiertes Protokoll, das der Kommunikation zwischen elektronischen Steuergeräten dient. Es wurde in den 1980er Jahren entwickelt und findet in diversen Bereichen der Steuerungs- und Automatisierungstechnik Anwendung. Neben CAN gibt es zahlreiche weitere Bussysteme wie LIN, FlexRay oder MOST.

Anwendungsgebiete

Industrielle Netzwerke verwenden CAN als Bus für die Kommunikation zwischen Sensoren, Bedienungsschnittstellen, Aktoren etc. und einem höher gestellten Rechner. In der Automobilindustrie werden CAN-Bussysteme ebenfalls eingesetzt. Ein solches CAN-Bussystem kann zum Beispiel dazu verwendet werden, Steuergeräte in Kraftfahrzeugen miteinander zu vernetzen und dadurch Bündelungen von Leitungen, so genannte Kabelbäume, zu reduzieren. Da die Kabelbäume in manchen Fahrzeugen eine Länge von bis zu 2 km erreichen können, führt der Einsatz eines CAN-Bussystems zu enormer Gewichtsersparnis. Eine Vorraussetzung ist es, dass die Knoten eines Netzwerks miteinander kompatibel sind, auch wenn sie durch unterschiedliche Hersteller gefertigt wurden. Diese Kommunikation wird durch ein allgemeines CAN-Protokoll ermöglicht.

Hardware

Die Grundkomponenten eines CAN-Knotens sind Mikrocontroller, CAN-Controller und Bustreiber. Dieser ist über eine Zweidrahtleitung (CAN high und CAN low) mit Busabschlüssen verbunden.
Es gibt diverse ergänzende Hardware-Tools für CAN-Bussysteme wie beispielsweise Datenrecorder, die Daten unterschiedlicher Bussysteme speichern und sie für spätere Datenverarbeitung und Auswertung bereitstellen. Je nach Anwendungsgebiet (Fahrzeugprüfungen etc.) können Datenrecorder entsprechend konfiguriert und angepasst werden. Allgemeine Funktionen von Datenrecordern umfassen häufig:

  • Datenspeicherung und Komprimierung an verschiedenen zugewiesenen Orten
  • Export in verschiedenen Dateiformaten
  • Datenübertragung- und Aktualisierung der Einstellung per Wireless LAN
  • Datenanalyse
  • Diverse Erweiterungen

Ein weiteres Hardware-Tool erlaubt die Überprüfung der Reaktion eines Systems auf Störungen und Ausfälle. Normalerweise sind CAN-Netzwerke robust und wenig störungsanfällig. Um das CAN-Netzwerk einer Sicherheitsprüfung zu unterziehen kann ein Störinstrument eingeschaltet werden, welches Reihenwiderstände oder Übergangswiderstände im Netzwerk erzwingt. Fehler, die mit einem solchen Störinstrument simuliert werden können sind beispielsweise: Kurzschlüsse, Leistungsausfälle oder Systemausfälle. Die Steuerung des Störinstrumentes basiert auf einer speziellen Software.

Software

Um den Umgang mit CAN-Systemen zu erleichtern, findet häufig standardisierte Software Anwendung. Die Entwicklung von CAN-Software orientiert sich an der Entwicklung bereits bestehender Protokolle und wird in ähnlicher Weise umgesetzt. Viele Softwarekomponenten können in Form eines Quellcodes erworben und passend konfiguriert werden. Entsprechend konfigurierte Software ermöglicht den Datenaustausch zwischen Steuergeräten. 

CAN-Nachrichtenübermittlung

Da anstelle eines Zielpunktes die Nachricht selbst einen ID (Identifier) besitzt, können sämtliche CAN-Nachrichten an allen Knoten empfangen werden. Um aus der Vielzahl an Nachrichten die passenden an jedem Knoten zu empfangen, werden sie aufgrund des ca.11 Bit großen ID je nach Relevanz gefiltert. Vorzüge dieser intelligenten Nachrichtenverteilung sind:

  • Kosteneinsparung, da Komponenten mehrfach genutzt werden
  • sehr flexible Konfiguration 
  • erleichterte Synchronisation von Prozessen
  • problemlose Integration zusätzlicher Busknoten

Fehlererkennung und Datensicherheit

Das CAN-Protokoll verfügt über diverse Mechanismen zur Fehlererkennung. Auf der Seite des Empfängers können mithilfe eines CRC (Cyclic Redundancy Check) bis zu fünf Fehler in einer Nachricht gefunden werden. CRC basiert auf folgendem Prinzip: vor jeder Speicherung oder Übermittlung von Daten wird zusätzlich eine Redundanz in Form eines CRC-Wertes hinzugefügt. Dieser Wert wird nach einem bestimmten Verfahren ermittelt. Die Überprüfung erfolgt, indem das gleiche Berechnungsverfahren, durch das der Wert ermittelt wurde, wieder auf den gesamten Datenblock und den angehängten CRC-Wert angewandt wird.

Häufig bedeutet der Endwert 0, dass die Daten unverändert sind. In manchen Anwendungen ist das System jedoch modifiziert. Beispielsweise wird der CRC-Wert dann invertiert oder mit einem definierten Wert initialisiert. Das CRC-Verfahren ist darauf ausgelegt zufällige Fehler, die zum Beispiel durch das Rauschen einer Leitung hervorgerufen werden, zu erkennen.
Neben der Fehlerprüfung der CAN-Nachricht durch CRC, finden ein Form Check (Überprüfung des Formats) und ein Stuff Check statt. Beim Stuff Check werden die Bits zwischen dem Beginn der Nachricht und dem CRC-Delimiter auf ihre Polarität geprüft. Bei 6 aufeinander folgenden Bits mit gleicher Polarität liegt ein Fehler vor.

Ein weiterer Fehler, der erkannt werden kann, ist der ACK-Fehler (Acknowledgement-Fehler). Die letzten zwei Bits einer Nachricht, die von einem Sender generiert werden, sind rezessiv. Empfängt ein Busknoten diese Nachricht ohne Fehler zu erkennen, so wird das erste der letzten beiden Bits mit einem dominanten Bit überschrieben. Wird die Nachricht von keinem Empfänger bestätigt, so liegt ein ACK-Fehler vor und in aller Regel erfolgt die erneute Übermittlung der Daten durch den Sender.
Erkennt der Busknoten (Empfänger) einen Fehler, so wird ein Error-Frame gesendet. Alle Teilnehmer, die diesen Fehler erkennen verwerfen den fehlerhaften Frame.

Erweiterung des CAN-Protokolls: CAN-FD

Das erweiterte Protokoll CAN FD (FD= flexible Datenrate) bietet die Möglichkeit, eine größere Menge an Nutzdaten (64 Bytes statt 8 Bytes) zu senden. Zudem ist die Rate der gesendeten Daten deutlich höher. Damit kann der Bedarf einer höheren Netzwerkbandbreite gedeckt werden und die bisherigen Erfahrungen mit CAN sind weiterhin einsetzbar.