CANopen
CAN-basiertes Kommunikationssystem

CANopen - Höherschichtiges CAN-Protokoll

CANopen ist ein "Layer 7"-CAN-Protokoll , das Kommunikations- und Gerätefunktionen für CAN-basierte Systeme definiert. CANopen ist eine standardisierte, hochflexible und hochkonfigurierbare eingebettete Netzwerkarchitektur, die in Branchen wie Eisenbahn, Medizin, Industrie, Landwirtschaft, Nutzfahrzeuge, Marine, Off-Highway, Fabrikautomatisierung, Luft- und Raumfahrt eingesetzt wird.  CANopen wird auch für geschlossene, unternehmensspezifische Embedded-Netzwerke immer beliebter.

Die CANopen-Profilfamilie spezifiziert standardisierte Kommunikationsmechanismen und Gerätefunktionalitäten. Der CANopen-Standard wird von der "CAN in Automation (CiA) International Users and Manufacturers Group" gepflegt und kann ohne Lizenz implementiert werden.

Vorteile

  •  Offene Architektur
  • Echtzeitübertragung von Prozessdaten ohne Protokoll-Overhead
  • Modular und skalierbar
  • Interoperabilität und Austauschbarkeit
  • Profilkonzept ähnlich Interbus-S und Profibus
  • Unterstützt von vielen internationalen Herstellern

Grundlagen

CANopen Standard

Entwickelt wurden die Grundlagen des Standards in einem geförderten EU-Projekt. Im Jahre 1995 wurden die bis dahin erstellten Spezifikationen an den CiA e.V. (CAN in Automation) übergeben. Seitdem wird der Standard im Rahmen der CAN-Nutzerorganisation gepflegt und weiterentwickelt. Er ist seit 2002 als Europäische Norm (EN 50325-4 2002 Part 4: CANopen) verfügbar.

CANopen Gerätestruktur

Der CANopen-Standard beschreibt den Austausch von Daten in einem CAN-basierenden Netzwerk. Dabei werden sowohl die grundlegenden Kommunikationsmechanismen (Kommunikationsprofil) als auch die Funktionalität der kommunizierenden Geräte (Geräteprofil) definiert. Das heißt, unter CANopen wird auch die Interpretation von Prozessdaten, die über den Bus übertragen werden festgelegt.

CANopen Gerätemodell

Objektverzeichnis

Jedes CANopen-Gerät stellt interne Daten (Prozessdaten, Parameter), die in einem Objektverzeichnis organisiert sind, über eine definierte Schnittstelle auf dem Bus zur Verfügung. Auf Einträge im Objektverzeichnis wird über einen 16 Bit großen Index und zusätzlich über einen 8 Bit großen Subindex zugegriffen. Um die Struktur für den Anwender übersichtlicher zu gestalten, wird der Indexbereich in logische Segmente unterteilt. Der Name eines Gerätes kann zum Beispiel vom Index 0x1008 (Sub-Index 0) gelesen werden.

Index (hex)
Object
0000
not used
0001-025F
Data Types
0260-0FFF
Reserved for further use
1000-1FFF
Communication Profile Area
2000-5FFF
Manufacturer Specific Profile Area
6000-9FFF
Standardized Device Profile Area
A000-AFFF
Network variable area
B000-BFFF
System variable area
C000-CFFF
Reserved for further use
Mehr anzeigen

Kommunikationsprinzipien

Unter CANopen gibt es zwei grundlegende Arten der Kommunikation über den Bus.

SDO

Service-Daten-Objekte (SDO) erlauben den wahlfreien Zugriff auf beliebige Einträge im Objektverzeichnis. Da diese Einträge durchaus die maximal zulässige Größe einer CAN-Nachricht von 8 Bytes überschreiten können, wird über das SDO eine Segmentierung der Daten durchgeführt. Der SDO-Server bietet einem SDO-Client Zugriff auf sein Objektverzeichnis. Der Client kann Daten vom / zum Server hochladen (lesen) oder herunterladen (schreiben).

PDO

Werden Informationen zyklisch an ein oder mehrere Geräte gesendet, ist die Verwendung von Prozessdatenobjekten (PDO) sinnvoll. Grundsätzlich ist ein PDO eine CAN-Nachricht, die vollständig konfigurierbar ist. Jedes CANopen-Gerät kann mehrere Sende- und Empfangs-PDOs haben. PDOs werden mit den entsprechenden Einträgen im Objektverzeichnis konfiguriert. Diese speziellen Einträge ermöglichen das Ändern der CAN-ID sowie das Mapping von Bytes der Nachricht auf Objekte des Objektverzeichnisses.

Mehr anzeigen

Netzwerkstruktur

In einem CANopen-Netzwerk können bis zu 127 logische Geräte angesprochen werden. Eines dieser Geräte muss dabei über CANopen-Master-Funktionalität verfügen. Das heißt, dieser Master ist in der Lage andere Geräte - die Slaves genannt werden - zu überwachen und deren Zustand zu verändern. Jedes Gerät wird dabei eindeutig über seine Knotenadresse identifiziert (1..127).

Mehr anzeigen

Spezifikation

CANopen Dokumente

Die CANopen-Spezifikationen können von der Homepage des CiA. e.V. bezogen werden. Die wichtigsten Spezifikationsdokumente sind dabei:

  • DS 301 - Dieses Dokument ist auch als Kommunikationsprofil bekannt und beschreibt die grundlegenden Dienste und Protokolle, die unter CANopen verwendet werden
  • DS 302 - Framework für programmierbare Geräte (CANopen Manager, SDO Manager)

Informationen zu Kabeln und Steckverbindern finden sich in DR 303-3.

Das Verhalten vieler Geräteklassen ist unter CANopen bereits über sogenannte Geräteprofile (DS 4xx) festgelegt. Diese Profile beschreiben:

  • Laufzeitverhalten
  • Gerätespezifische Objekte im Objektverzeichnis
  • Fehlerbehandlung
  • Standardkonfiguration von PDOs

CANopen Entwicklungsprozess

Wie die Tools Sie durchgängig im gesamten Entwicklungsprozess unterstützen erfahren Sie hier.
Mehr anzeigen
Nach der Definition der Gesamtfunktionalität eines CANopen-Systems erfolgt die Auswahl der CANopen-Geräte. Dabei ist es unerheblich, ob die Geräte zugekauft oder selbst entwickelt wurden. Für noch zu entwickelnde Geräte sollte eine EDS/XDD-Datei mit einem geeigneten Werkzeug bereits vor der Implementierung erstellt werden. Die sich hieraus ergebenden Vorteile kommen im weiteren Verlauf des Entwicklungsprozesses zum Tragen.
Mehr anzeigen
In diesem Beispiel besteht das Gesamtsystem aus 3 CANopen-Geräten, deren Funktionalität in der jeweiligen EDS/XDD-Datei beschrieben ist.
Mehr anzeigen
Die EDS/XDD-Dateien werden in ein geeignetes Konfigurationswerkzeug eingebunden. Mit diesem lassen sich dann die Geräteparameter einstellen. Beispielsweise erfolgt in diesem Arbeitsschritt die Konfiguration der PDOs (Einrichten der Mapping-Parameter, Definition der CAN Identifier), die Festlegung eines CANopen Managers oder die Parametrierung eines Heartbeat-Produzenten.
Mehr anzeigen
Das Konfigurationswerkzeug speichert die Geräteparameter in standardisierter Form in Konfigurationsdateien (DCF/XDC-Dateien). Dies sind Kopien der EDS/XDD-Dateien, in denen zusätzlich die eingestellten Geräteparameter hinterlegt sind.
Mehr anzeigen
Die Summe aller Konfigurationsdateien stellt eine Beschreibung des Gesamtsystems dar. Basierend auf diesen Daten kann der Entwickler unter Verwendung eines geeigneten Werkzeuges eine Simulationsumgebung generieren. Wir sprechen hier von einem simulierten Gesamtsystem.
Mehr anzeigen
Sinnvollerweise wird für jede DCF/XDC-Datei ein Simulationsmodell erzeugt, welches das Verhalten des physikalischen Gerätes widerspiegelt. Aus der DCF/XDC-Datei, die neben dem Objektverzeichnis die mit dem Konfigurationswerkzeug eingestellten Geräteparameter enthält, ergibt sich das Verhalten eines simulierten Knoten.
Mehr anzeigen
Basierend auf den Konfigurationsdaten können außerdem erste Tests erstellt werden. Neben gerätespezifischen Tests zur Überprüfung der CANopen Konformität lassen sich auch applikationsspezifische Tests erstellen. Die gerätespezifischen Tests lassen sich basierend auf den DCF/XDC-Dateien komplett generieren.
Mehr anzeigen

Tools für CANopen

Die Softwaretools von Vector bieten umfangreiche Möglichkeiten für Simulation, Entwicklung, Analyse, Test und Diagnose von CANopen-Systemen und -Komponenten.

Tools  
Entwicklung und Test für CANopen
  • Erstellung von Simulationsumgebungen (Restbussimulation) für CANopen-Systeme
  • Ablaufumgebung für die Simulation
  • Testgenerierung
Analyse für CANopen
  • Analyse und Logging des Datenverkehrs in CANopen-Netzwerken
  • Stimulation von Nachrichtensequenzen
  • Abspielen von aufgezeichneten Nachrichtensequenzen (Replay)
  • Konfiguration von CANopen-Geräten
Projektierung und Konfiguration von CANopen-Netzwerken
  • konsistente grafische Konfiguration von CANopen-Geräten im Netzwerk
  • Projektierung von kompletten CANopen-Netzwerken
EDS-Editor für CANopen
  • Erstellung und Prüfung von EDS-Dateien (Electronic Data Sheet)

Hardware für CANopen

Softwarewerkzeuge für Entwicklung, Simulation, Test und Pflege von verteilten Systemen benötigen leistungsfähige und flexible Hardwareschnittstellen.

Vector bietet Ihnen Interfaces für CAN, LIN, J1708, Ethernet/IP und FlexRay sowie Treibersoftware und Programmierschnittstellen zum Einsatz mit den Vector Softwarewerkzeugen und in kundenspezifischen Lösungen.

Bus System
Interface
PC-Anbindung
CAN, CAN FD, LIN and J1708:
USB (RT PC)
USB
PCIe
USB (OBD)
Ethernet und CAN / CAN FD:
USB
FlexRay und CAN / CAN FD:
USB (RT PC)
PCIe
USB
USB

* = nicht "CAN FD"-fähig

Zusätzliche Informationen

Haben Sie technische Fragen und suchen passende Antworten? Unsere Knowledge Base hält die wichtigsten FAQs für Sie bereit.

Mehr anzeigen