Beispiel 2: CAN-Gateway-Funktion
Das Gateway-Modul, das auf der Nachrichtenobjektebene arbeitet, ermöglicht die Erarbeitung einer automatischen Informationsübertragung zwischen zwei unabhängige CAN-Bussen ohne Mitwirken einer CPU. Im Gateway-Modus wird die Information zwischen zwei Nachrichtenobjekten übertragen – hier zwischen zwei CAN-Knoten, für die die Nachrichtenobjekte vorgesehen sind. Auf diese Weise sollte zwischen allen CAN-Knotenpaaren ein Gateway realisiert werden. Folglich ist die Anzahl der Gateways gleich der Anzahl an Nachrichtenobjekten, auf denen die Gateway-Struktur aufbaut. In Bild 3 ist die Gateway-Übertragung auf Nachrichtenobjektebene von der entsprechenden Quelle zum dazugehörigen Ziel dargestellt. Um eine derartige Gateway-Funktion innerhalb des CAN-Treibers zu realisieren, ist eine zusätzliche Definition der jeweiligen Objekttypen notwendig. In der aktuellen AUTOSAR-CAN-Spezifikation gibt es folgende Container für die CAN-Konfiguration:
Der Container 1 beherbergt die allgemeinen Konfigurationsparameter der CAN-Treiber, Container 2 konfiguriert den CAN-Knoten. Der Container 3 beschreibt die Maske für die hardware-basierte Filterung des CAN-Identifizierers und Container 4 konfiguriert die CAN-Nachrichtenobjekte. In der aktuellen AUTOSAR-CAN-Spezifikation definiert der Parameter CanObjectType des Containers 4 den Typ des Nachrichtenobjektes. Allerdings sind dort lediglich die zwei Typen Tx und Rx definiert, wodurch die Nachrichtenobjekte entweder empfangene oder übertragene Objekte darstellen. Außerdem ist keine Information vorhanden, die die Gateway- Nachricht indiziert. Damit die Gateway-Funtion unterstützt werden kann, sind zusätzliche Werte für den Konfigurationsparameter Can-ObjectType zu definieren:
Im Falle, dass der Parameter Can-ObjectType eines Objektes als 2 oder 3 konfiguriert ist, wird das Objekt für die Gateway-Kommunikation genutzt. Wie in Bild 4 dargestellt, muss dafür das Nachrichtenobjekt innerhalb der API-Funktion Can_Init( ) als Gateway- Objekt initialisiert sein.
Björn Graunitz, Elektronik automotive
![]() |
Dr.-Ing. Guangyu Wang hat an der Universität Kiel mit Schwerpunkt Digitale Signalverarbeitung promoviert. Danach war er wissenschaftlicher Mitarbeiter an der Universität Erlangen-Nürnberg. Seit September 2000 ist er bei Infineon tätig und für die Applikation des Mikrocontrollers mit Schwerpunk Bussysteme in der Fahrzeugtechnik verantwortlich. Aktuell arbeitet er als Senior Application Engineer im Bereich Automobilelektronik. Seine Spezialgebiete sind DSP, LIN-Bus und AUTOSAR. guangyu.wang@infineon.com |