EUROS Embedded Systems GmbH

Lokale Kommunikationsprotokolle

Übersicht

Das Echtzeit-Betriebssystem unterstützt Controller Area Networks (CAN) in Embedded-Anwendungen. Der Benutzer kann zwischen zwei verfügbaren Softwareschichten wählen. Die erste greift mittels Treibern auf die CAN-Hardware zu und ist obligatorisch. Die zweite – dargestellt durch einen CAN-Protokoll-Stack – ist optional und bietet logischen Datenzugriff.

Ein CAN-Treiber wird für die Verwaltung eines spezifischen CAN-Controller-Chips auf Hardwareebene benötigt. Um die Notwendigkeit zu vermeiden, für jeden CAN-Controller-Typ auf dem Markt einen eigenen CAN-Treiber zu implementieren, wurde unter EUROS das Konzept des generischen CAN-Treibers eingeführt. Er handhabt die Sende- und Empfangssequenzen von CAN-Nachrichten auf einer höheren Ebene, ohne detaillierte Kenntnisse über den CAN-Controller selbst zu erfordern. Durch eine entsprechende Konfiguration einer gemeinsamen Quellcode-Bibliothek wird der Treiber für den spezifischen CAN-Controller automatisch generiert. Dieser Ansatz berücksichtigt, dass alle CAN-Controller praktisch identisch sind – sie müssen dieselbe Funktionalität implementieren. Wenn eine bestimmte Funktionalität von einem bestimmten CAN-Controller nicht bereitgestellt wird, wird sie durch die Treibersoftware emuliert.

Die Implementierung neuer CAN-Controller bedeutet nun lediglich das Hinzufügen von hardwareabhängigem Code und dessen Verknüpfung mit der bestehenden Quellcode-Bibliothek. Dies reduziert den Implementierungs- und Supportaufwand drastisch und ermöglicht die Wiederverwendung von getestetem Quellcode. Wenn zudem Erweiterungen an der API vorgenommen werden, profitieren automatisch alle Treiber davon.

Jeder „generische CAN-Treiber“ wird aus der Quellcode-Bibliothek für jeden CAN-Controller-Typ generiert; ein solcher Treiber stellt die Mechanismen zum Senden und Empfangen von CAN-Nachrichten sowie zum Verwalten von Fehlerzuständen bereit. Die Treiber können in einer Multitasking-Umgebung laufen, was den gleichzeitigen Zugriff auf den CAN-Bus von mehreren Tasks aus ermöglicht. Ein detailliertes Fehlermanagement ermöglicht die Kontrolle über Fehlersituationen auf dem CAN-Bus.

CAN-Treiber unter EUROS sind für praktisch alle Typen von internen sowie externen CAN-Controllern verfügbar.

Die folgende Funktionalität wird von den generischen CAN-Treibern bereitgestellt:

  • Initialisierung des CAN-Controllers

  • Konfiguration der Kommunikationsparameter wie Baudrate, Abtastzeitpunkt (Sample Point) usw.

  • Senden und Empfangen von sowohl 11-Bit- als auch 29-Bit-Nachrichten auf demselben CAN-Bus-Segment

  • Senden von Nachrichten unter Verwendung von Timeouts oder asynchronem Verhalten

  • Konfiguration von Callbacks (Hooks) für den Nachrichtenempfang

  • Konfiguration des Nachrichtenempfangs für einzelne/mehrere Nachrichten-IDs und für einzelne/mehrere Nachrichten-ID/Masken-Paare

CAN-Protokoll-Stacks werden auf einer zweiten Ebene oberhalb eines CAN-Treibers verwendet, wo der Inhalt von CAN-Nachrichten ausgewertet und einer Anwendung unter Verwendung geeigneter Objekte präsentiert wird. Dies ermöglicht dem Benutzer den Datenzugriff auf einer logischen Ebene. Es ist nicht notwendig, sich mit Nachrichteninhalten und -formaten zu befassen sowie Zeitvorgaben einzuhalten und Timeouts zu prüfen; all dies wird vom CAN-Protokoll-Stack selbst erledigt.

CAN-Protokoll-Stacks werden unter Verwendung anerkannter CAN-Standards implementiert und stellen die dort beschriebene Funktionalität bereit. Der Hardwarezugriff auf den CAN-Controller erfolgt über einen CAN-Treiber. Dadurch ist der Protokoll-Stack völlig hardwareunabhängig, da er die standardisierten Treiberfunktionen nutzt.

0+
Langjährige Erfahrung
0+
Partner
0+
Weltweit renommierte Kunden