Grundideen zur Lösung dieser Problematik
Grundsätzlich gibt es zwei Methoden für die Integration hardware-spezifischer Funktionen von Mikrocontrollern in die AUTOSAR-Software: zum einen die Nutzung komplexer Treiber und zum anderen eine Änderung der MCAL-Schichtspezifikation, wobei sich durch die Änderungen keine Auswirkungen auf die Schnittschnelle zu oberen Schichten ergeben dürfen. Innerhalb der aktuellen AUTOSAR-Spezifikation sind solche Treiber für komplexe Sensoren und Aktoren vorgesehen, die mit dem Mikrocontoller verbunden sind und eine spezifische Peripherie wie PCP nutzen. Daher bieten sich diese komplexen Treiber nicht für die Integration hardware-spezifischer Funktionen in AUTOSAR an. Mehr Erfolg verspricht eine Änderung der MCAL-Schichtspezifikation, da die meisten Mikrocontroller-Treiber innerhalb der MCAL-Schicht definiert sind.
Daher muss die Aufgabe der MCAL-Schicht sein, die oberen Schichten von der Mikrocontroller-Schicht hardware-unabhängig zu machen. In der Schichtenarchitektur der AUTOSAR-Software stellen die API-Funktionen (Service-Funktionen) und die öffentlichen Parameter, die jeweils in der AUTOSAR-Spezifikation standardisiert sind und daher nicht ersetzt werden dürfen, die Schnittstellen zwischen den unterschiedlichen Schichten dar. Deshalb ist die Erweiterung der MCAL-Schicht-Konfigurationsparameter die einzige Möglichkeit, um die hardware-spezifischen Funktionen in die MCAL-Treiber zu implementieren. Jedoch sollten die neu hinzugefügten Konfigurationsparameter ausschließlich innerhalb der MCAL-Schicht und nicht sichtbar in den oberen Schichten angewendet werden. Auf diese Weise haben die neuen Konfigurationsparameter keinerlei Auswirkungen auf die Schnittstelle der MCAL-Schicht zu oberen Schichten. Nachfolgend sind zwei Bespiele aufgeführt, die darstellen, wie sich die Konfigurationsparameter in die MCAL-Schicht hinzufügen lassen, um die hardware-spezifischen Funktionen des Mikrocontrollers zu unterstützten.
Beispiel 1: ADC-Wandlung mit der Sequential-Request-Resource-Methode
Innerhalb der AUTOSAR-ADC-Spezifikation (Version 2.1.1) sind die definierten Konfigurationsparameter in folgenden Containern enthalten:
Der Container 1 enthält die allgemeinen Schalter-Konfigurationsparameter des ADC-Treiber-Software-Moduls. Anhand dieser Schalterparameter lassen sich die einzelnen Funktionen des ADC-Moduls durch Setzen des Schalters auf ON aktivieren oder mit OFF deaktivieren. Der Container 2 umfasst die Treiber-Konfigurationsparameter, die von der Gruppierung der einzelnen Kanäle abhängig sind. Dieser Container befindet sich folglich in direkter Abhängigkeit vom Mikrocontroller. Die AUTOSAR-Spezifikationen erlaubt es aber dem Entwickler, die Konfigurationsparameter dieses Containers bezüglich der vorliegenden Hardware-Struktur selbst zu definieren. Die Container 3 und 4 enthalten die Gruppierungs- und die Konfigurationsparameter für die Kanäle in separater Form, die durch die AUTOSAR-Spezifikation standardisiert sind.
Die Parameter in der Container-Gruppen-Konfiguration definieren, wie die einzelnen Kanäle innerhalb dieser Gruppierung konvertiert werden. Jedoch ist keiner dieser Parameter in der aktuellen ADC-Spezifikation für die Ressourcen-Kontrolle definiert. Normalerweise legt die Ressourcen-Kontrolle die Wandlungsreihfolge der Kanäle innerhalb der Gruppierung fest oder – anders gesagt – sie definiert, in welcher Reihenfolge die einzelnen Analogkanäle umgewandelt werden. Mit den in der aktuellen AUTOSAR-Spezifikation standardisierten Parametern lässt sich also nur das Auto-Scan-Modul verwenden, in dem die Wandlungsreihenfolge mit der höchsten aktivierten Kanalnummer beginnt und mit der niedrigsten Kanalnummer endet. Der XC2000 unterstützt sowohl das Auto-Scan-Modul als auch die Sequential-Request-Wandlungsmethodik, die eine Wandlung für eine Reihenfolge von bis zu vier Eingangskanälen erstellt. Die Kanalnummern lassen sich dabei frei programmieren, wodurch eine Mehrfachwandlung desselben Kanals innerhalb einer Wandlungsreihenfolge möglich ist. Daher lässt sich dieser Mechanismus dazu nutzen, eine applikationsspezifische ADC-Wandlungsreihenfolge zu unterstützen, wie etwa eine zeitkritische Wandlung oder eine Mehrfachwandlung für den gleichen Kanal.
Um die Sequential-Request-Wandlung zu unterstützen, müssen die neuen Konfigurationsparameter, die die im XC2000 definierten Kontrollregister repräsentieren, dem Gruppen-Konfigurations-Container zugewiesen werden. Folgende Parameter lassen sich beispielsweise dem Gruppen-Konfigurations-Container hinzufügen, um die ADC-Ressource zu steuern:
Nach der Erweiterung des Gruppen-Konfigurations-Containers um die oben genannten Konfigurationsparameter lässt sich die Wandlungsreihenfolge der ADC-Ressourcen unterschiedlicher Module einstellen. Jedoch sollten die neu hinzugefügten Konfigurationsparameter innerhalb des AUTOSAR-Konfigurators erkenntlich sein, damit der Entwickler diese Parameter mit Hilfe eines AUTOSAR-Konfigurationswerkzeugs konfigurieren kann. Das lässt sich mittels Übergabe einer XDM-Datei, die die neu hinzugefügten Parameter mit XDM-Format dokumentiert, an den jeweiligen Werkzeugkettenanbieter realisieren. Der Anbieter solcher Werkzeugketten wiederum integriert die neuen XDM-Dateien in seine bestehenden Werkzeuge. In Bild 2 sind die Beziehungen zwischen der MCAL-Schicht, dem Konfigurationswerkzeug und den oberen Schichten dargestellt. Diese Darstellung lässt erkennen, dass die hinzugefügten Konfigurationsparameter keinen Einfluss für die MCAL-Schnittstelle zu den oberen Schichten haben, da diese Parameter nur in der MCAL-Schicht zum Einsatz kommen.