CANopen Slave Stack Source Code

Übersicht CANopen Slave Stack Der CANopen Slave Stack Basic ist eine Software-Bibliothek, die alle Kommunikations-Dienste entsprechend des CANopen Kommunikation-Profils CiA 301 V4.2 als Source Code bereitstellt.Er wurde in ANSI-C erstellt und ist MISRA-C konform. Mithilfe der CANopen Software können einfach und schnell konforme Geräte entwickelt werden, oder Geräte um CANopen erweitert werden. Highlights ANSI-C kompatibler CANopen…

CANopen Slave Stack Source Code

Übersicht CANopen Slave Stack

Der CANopen Slave Stack Basic ist eine Software-Bibliothek, die alle Kommunikations-Dienste entsprechend des CANopen Kommunikation-Profils CiA 301 V4.2 als Source Code bereitstellt.Er wurde in ANSI-C erstellt und ist MISRA-C konform. Mithilfe der CANopen Software können einfach und schnell konforme Geräte entwickelt werden, oder Geräte um CANopen erweitert werden.
Highlights

  • ANSI-C kompatibler CANopen Source Code Stack
  • MISRA-C-konform
  • unterstützt alle CANopen Dienste des CiA 301
  • Layer Setting Service (LSS) CiA305 inklusive
  • Zeitsprachendes Entwicklungstool inklusive
  • Erweiterungspakete für weitere Standards erhältlich
  • verfügbar für viele CAN-Controller und CPU Typen
  • komfortables User-Interface
  • in weiten Teilen konfigurier- und skalierbar

Neben den Standard-Diensten DS-301 sind Erweiterungsmodule  für verschiedene Kommunikations-Profile wie z.B. Redundante Kommunikation (CiA 302), Safety Relevant Kommunikation (CiA 304), aber auch Geräte-Profil Implementierungen verfügbar.

Eine flexible Benutzerschnittstelle erlaubt die mühelose Auswertung von empfangenen Daten als auch die Nutzung von CANopen Diensten im Netzwerk.
Für die flexible Anbindung an verschiedene CAN-Controller und CPU-Typen ist der CANopen Stack mit einem definierten Treiberinterface ausgestattet. Damit ist neben der  einfachen Möglichkeit der Anpassung an vorhandene CPU Typen wie u.a. ARM- und Cortex-Varianten, auch der unkomplizierte Austausch der Hardwareplattform möglich. Die Verwendung verschiedener Echtzeitbetriebssysteme (RTOS), Echtzeiterweiterungen für Windows sowie mit Linux(SocketCAN, can4linux) und QNX ist möglich.

Neben der bewährten Funktions-API ist zusätzlich eine Mailbox-API zur einfacheren Verwendungen in Echtzeitbetriebssystemen verfügbar. Anstelle von Funktionsaufrufen werden dabei Nachrichten über
Mailboxen zwischen den Applikationsmodulen und dem CANopen Stack ausgetauscht, so dass eine nicht-blockierende Kommunikation stattfindet. Eine Applikation kann dabei aus mehreren Tasks bestehen, welchen den CANopen Stack parallel nutzen können.

Für möglichst geringen Ressourcenverbrauch ist der Slave Stack Basic in weiten Teilen konfigurier- und skalierbar. Die Einstellungen für diese Features werden mit dem grafischen Konfigurationstool CANopen DeviceDesigner vorgenommen. Das Tool ermöglicht die Erstellung des Objektverzeichnisses und der EDS-Datei über eine integrierte Datenbank. Änderungen können somit  schnell und problemlos eingepflegt werden. Mit dem einzigartigen DeviceDesigner sparen Sie wertvolle Entwicklungszeit.

Um den Einstieg in die Nutzung der CANopen Library zu vereinfachen, gehören mehrere Beispiele sowie ein Benutzerhandbuch zum Lieferumfang. Für die Nutzung der Funktionen steht ebenfalls ein Referenzhandbuch mit der Beschreibung der Funktionsparameter bereit.

Detaillierte Feature-Übersicht     Unterstützte Controller

Profilsupport
Für eine Vielzahl von Geräte- oder Applikationsprofile bieten wir Erweiterungen an, welche die spezifischen Funktionalitäten der Profile zusammenfassen und die Daten und Ereignisse der Applikation in aufbereiteter Form bereitstellen. Aktuell sind Erweiterungen für die folgenden Profile verfügbar:

Darüber hinaus können mit dem Stack beliebige Applikationen, auch für andere als die zuvor aufgeführten Profile erstellt werden.

Systemvoraussetzung

  • ANSI-C Compiler

Lieferumfang/Lizenzierung

  • CANopen Protokoll Sourcecode (ANSI-C kompatibel)
  • sofort lauffähige Beispielapplikationen
  • Benutzer- und Referenzhandbuch
  • standortbezogene Firmenlizenz ohne Laufzeitkosten incl. 6 Monate kostenloser Support
  • eine Ein-Benutzer-Lizenz CANopen DeviceDesigner inklusive
  • optionaler Wartungsvertrag
  • optionaler Integrationssupport
Für weitere Fragen, Preis- und Bestellinformationen stehen wir Ihnen gern unter 03461-794160 oder service@emotas.de zur Verfügung.

Source Code-Beispiel einer Applikation (Auszug)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
/* initizalize CAN driver */
if (codrvCanInit(125) != RET_OK)  {
	exit(1);
}

/* initialize Timer */
if (codrvTimerSetup(CO_TIMER_INTERVAL) != RET_OK)  {
	exit(2);
}

/* initialize CANopen Stack */
if (coCanOpenStackInit(NULL) != RET_OK)  {
	exit(1);
}

/* register event functions */
if (coEventRegister_NMT(nmtInd) != RET_OK)  {
	exit(3);
}
if (coEventRegister_ERRCTRL(hbState) != RET_OK)  {
	exit(4);
}
if (coEventRegister_PDO(pdoInd) != RET_OK)  {
	exit(5);
}
if (coEventRegister_LSS(lssInd) != RET_OK) {
	exit(6);
}
if (codrvCanEnable() != RET_OK)  {
	exit(7);
}
	
/* write emcy  */
if (coEmcyWriteReq(0x1234, &emcyData[0]) != RET_OK)  {
	exit(15);
}

/* main loop */
while (1)  {
    /* CANopen main function*/
    coCommTask();

    /* do application */
    appl();
}