Unser Knowhow in verschiedenen Bereichen

CAN – ISO 11898, Raw CAN und CANopen

CAN (Controller Area Network) ist ein leistungs­starkes, serielles Bussystem zum schnellen Datenaustausch zwischen elektronischen Steuergeräten. Es verfügt über eine Multi-Master-Funktio­nalität, wodurch alle CAN Knoten Daten senden und verschiedene CAN Knoten den Bus simultan abfragen können. Es wurde im Jahr 1983 von der Robert Bosch GmbH zunächst für die Kraftfahr­zeug­technologie entwickelt. Neben dem Einsatz in Personen- und Nutzkraft­wagen werden CAN Netzwerke aber immer mehr auch in Schiffen, Bahnen und Flugzeugen sowie zunehmend in der Auto­mati­sierungstechnik und im Maschinenbau eingesetzt. Heute sind nahezu alle Mikro­controller mit einer CAN Schnittstelle versehen.

In der CAN Spezifikation ist der Data Link Layer definiert, eine Daten­sicherungs- und physikalische Schicht, die den Telegramm­aufbau beschreibt. Daneben werden über CAL (CAN Application Layer) die übertragenen Daten beschrieben. CAL ist somit eine allgemeine Beschreibungs­sprache für CAN Netzwerke und stellt eine Vielzahl von Kommuni­kations­diensten zur Verfügung. Das serielle Bussystem mit der Echtzeit­fähigkeit ist international unter der ISO 11898 Norm standardisiert und beinhaltet die untersten beiden Schichten des ISO/OSI-Schichtenmodells. Das CAN Protokoll wurde 1993 standardisiert und ist unter der Norm ISO 11898-1 beschrieben.

Anwendung

CAN Netzwerke werden als Kommunikationssystem für Mikrocontroller im Embedded-Bereich und als offenes Kommuni­kations­system für intelligente Geräte wie IO-Module verwendet. Das serielle Bussystem wird sowohl in der Fahrzeug­elektronik als auch in der Automatisierung von Maschinen eingesetzt. CAN zeichnet sich dabei durch geringe Kosten, mögliche Funktion in verschiedenen Elektronik­umgebungen, eine hochgenaue Echtzeit­fähigkeit sowie eine einfache Nutzung aus.

OSI-7-Schichten-Modell

Das OSI-7-Schichten-Modell wird vom CAN Protokoll beschrieben und beinhaltet die Daten­kommunikations- und physischen Schichten. Die ISO-Norm definiert einen Standard, der die CAN Spezifikation und Teile der physischen Schichten einschließt: Das physische Signal mit Bit-Codierung und -Decodierung (Non-Return-to-Zero, NRZ) und das Bit Timing sowie Bit­synchronisation.

CAN OSI-Schicht-7 Modell

1. Physical Layer: Die Bit­übertragungs­schicht beschreibt die Hardware und deren Übertragung inklusive aller dazu notwendigen Parameter wie elektrische, optische oder mechanische Spezifi­kationen. In dieser Schicht werden einzelne Bits zwischen Computern übertragen und Daten kodiert.

2. Data Link Layer: Die Sicherungs­schicht beschreibt die Daten­kommunikation auf Basis der CAN Spezifikation 2.0 B. Sie zerlegt dabei die Daten in Pakete oder Datenrahmen, die über ein Interface übertragen werden sollen. Die Art der Datenrahmen hängt von der Netzwerktopologie ab. Durch höher gelegene Netzwerk­schichten soll eine fehler­freie Übertragung über die Netzwerk­leitung garantiert werden. Dabei wiederholt sie die Sendung so lang, bis sie eine Empfangs­bestätigung für die gesendeten Daten erhält.

3. Network Layer: Die Netzwerk­schicht beschreibt die Funktio­nalität der Übertragung von Nachrichten zwischen zwei Netzwerk­segmenten. Zu dieser Schicht gibt es eine entsprechende Schicht in TCP/IP-Protokollen. Sie empfängt Nachrichten aus dem Data Link Layer und sendet diese an die richtige Adresse im Netzwerk weiter.

4. Transport Layer: Die Transport­schicht beschreibt die verschiedenen Dienste im Netzwerk. Sie muss dabei auf die fehlerfreie und korrekte Übermittlung von Daten achten.

5. Session Layer: Die Sitzungs­schicht regelt die Einrichtung und Verwaltung einer Verbindung von zwei Computern. Dadurch können Daten gesendet und Über­tragungs­fehler sowie Unterbrechungen ausgewertet werden.

6. Presentation Layer: In der Darstellungs­schicht werden Dateiformate bestimmt und definiert, sodass dadurch die Kommunikation zwischen zwei verschiedenen Plattformen gewährleistet wird.

7. Application Layer: Die Anwendungs­schicht beschreibt die eigentlichen Daten im Netzwerk und stellt dazu die direkte Verbindung zum Anwender her. Sie definiert Programme wie Browser, FTP-Client oder ähnliches

RAW CAN

RAW CAN bezeichnet das reine CAN Protokoll, das ohne ein zusätzliches Kommunikationsprotokoll auf dem CAN Bus arbeitet. Das CAN Protokoll ist international nach dem ISO 11898-1 Standard definiert und garantiert zusätzlich in ISO 16845 die Austauschbarkeit von CAN Chips.

Funktion

CAN basiert auf einem Kommuni­kations­mechanismus, der eine Nachricht an alle Benutzer versendet.

Die Versendung des Protokolls erfolgt dabei nachrichtengesteuert.

CANopen

CANopen ist ein CAN-basiertes Protokoll für höhere Schichten, das als eingebettetes Netzwerk mit flexibler Konfigurations­stabilität von Bosch entwickelt wurde und im Jahr 1995 an die CAN in Automation (CiA) Vereinigung übergeben wurde. Ursprünglich wurde CANopen speziell für bewegungs­orien­tierte Maschinen­steue­rungs­netzwerke entworfen, jedoch wird es heute auch in vielen Bereichen der Medizin, der Nutz­fahrzeuge, der Schifffahrts­elektronik oder der Gebäude­auto­mati­sierung eingesetzt.

Funktion

CANopen ist ein Vernetzungs­konzept, das auf dem seriellen Bussystem CAN und der Anwendungs­schicht CAL basiert. Durch CANopen wird im Gegensatz zu CAL festgelegt, welche Daten mit welchen Diensten übertragen werden sollen und was die Daten auf den jeweiligen Geräteklassen bedeuten. Dazu wird nur eine Teilmenge der von CAL angebotenen Kommuni­kations­dienste genutzt. Dadurch verringert sich die benötigte Rechner­leistung und Speicher­kapazität. Die CANopen Spezifikationen beinhalten die Applikations­schicht, das CANopen Kommuni­kations­profil (CiA DS 301), das auf dem CAL Protokoll basiert, und ein Framework für programmierbare Maschinen (CiA 302).

Die Applikations­schicht und die CAN-basierten Profile werden in die Software implementiert. Durch standardi­sierte Profile wie z. B. Maschinen-, Interface- und Appli­kations­profil können CANopen Netzwerk­systeme leicht integriert werden. CANopen vereinfacht dabei das Arbeiten mit CAN-spezifischen Details wie Bit­timing und imple­mentie­rungs­spezifischen Funktionen. Dadurch bietet es standard­isierte Kommunikations­objekte für Echtzeit­daten (Process Data Objects – PDOs), Konfi­gurations­daten (Service Data Objects – SDOs), spezielle Funktionen wie Zeitstempel oder auch Netzwerk­manage­ment­daten wie Boot-Up-Nachrichten, NMT-Nachrichten oder Fehlersteuerungen.

CANopen-Protokoll

Die CANopen Anwendungs­schicht und das CANopen Kommuni­kations­profil unter­stützen den direkten Zugriff auf Geräte­parameter und das Senden von zeit­kritischen Prozessdaten. Das CANopen Netzwerk­management hilft bei der Projekt­gestaltung, bei der System­integration und bei der Diagnose. In jeder dezentral gesteuerten Applikation können somit verschiedene Kommuni­kations­service und -protokolle abgefragt werden. Dabei definiert CANopen die gesamten Services und Protokolle sowie die dazu nötigen Kommuni­kations­objekte. Der gesamte Funktionsumfang einer Maschine wird durch Kommuni­kations­objekte im Objekt­verzeichnis beschrieben, das als Bindeglied zwischen der Kommuni­kations­schnitt­stelle und dem Appli­kations­programm ist.

CANopen Anwendung

CANopen wird neben dem Einsatz in kleinen und mittelgroßen Embedded-Netzwerken auch in Steuerungssystemen in der Automatisierung verwendet.

Funktion

CAN bietet zwei Datenkommunikations­services: Das Senden einer Nachricht (Data-Frame-Übertragung) und das Abfragen einer Nachricht (Remote Transmission Request – RTR).

Die Datenübertragung erfolgt dadurch, dass ein Bit je nach Zustand entweder dominant oder rezessiv auf den Busleitungen wirkt. Dabei wird zwischen CAN-High-Speed mit einer maximalen Übertragungsrate von 1 Mbit/s und CAN-Low-Speed mit 125 Kbit/s unterschieden. Ein CAN Netzwerk wird in einer Linienstruktur aufgebaut, bei der die Enden mit einem Abschlusswiderstand von 120 Ohm versehen sind. Bei der Busvernetzung im Auto wird auch der „Ein-Draht-CAN-Bus“ verwendet. Beim CAN Bus kann jeder Teilnehmer Daten senden, wenn der Bus frei ist. Zum schnellen Senden von Nachrichten mit hoher Priorität und zur Vermeidung von Kollisionen wird das CSMA/CA-Verfahren verwendet.

Jeder CAN Busteilnehmer sendet seine Nachricht an alle anderen. Durch Hinzufügen einer Identifikation wissen die anderen Busteilnehmer, um was für eine Nachricht es sich handelt, und können dann die Daten verarbeiten. Das Herausfiltern der Nachricht wird durch die Bus-Hardware im Teilnehmer übernommen.

Maximal können je nach verwendetem Bustreiber-Baustein bis zu 128 CAN Busteilnehmer pro Leitung integriert werden. Ein Object-Identifier kennzeichnet den Inhalt einer Nachricht. Dadurch können die Empfänger entscheiden, ob eine Nachricht für sie relevant ist oder nicht. Zudem wird mit dem Object-Identifier die CAN Nachricht positioniert. Dabei werden 11-Bit-Identifier und 29-Bit-Identifier von der Spezifikation definiert. Somit kann ein Busteilnehmer sowohl Empfänger als Sender von Nachrichten mit beliebig vielen Identifiern sein.