Anbieter zum Thema
Fortschrittliche Software- Technologie macht’s möglich
DAVE APPs sind wiederverwendbare Softwarekomponenten, die dem Benutzer von der Hardware abstrahierte Programmierschnittstellen zur Verfügung stellen (API), um eine MCU und deren Peripherie effizient für den jeweiligen Anwendungsfall zu steuern, ohne sich mit den darunterliegenden Hardwaredetails auseinandersetzen zu müssen. Was sich einfach anhört, erfordert innovative Softwarelösungen, um die Flexibilität moderner MCUs wirklich effizient und wiederverwendbar nutzen zu können. Der konkrete Anwendungsfall bildet den Kern, den diese DAVE APP bereitstellen soll.
Der Anwendungsfall umfasst einfache Applikationen wie PWM-Signalerzeugung, UART-Kommunikation, Messungen von Analogsignalen, aber auch spezifische komplexe Applikationen wie Elektromotorsteuerungen, die Steuerung digital geregelter Stromversorgungen, Lichtsteuerungen, Anzeigesteuerungen oder Internet-of-Things-Anwendungen. Das Interface zum Benutzer bildet zum einen die APIs und zum anderen die grafische Konfiguration und die Verbindungsoptionen.
Die benötigten Ressourcen sind zum einen die Hardwareressourcen der verwendeten MCU oder die anderer Applikationskomponenten. Eine DAVE APP entspricht der Philosophie der objektorientierten Programmierung und kann als Klasse bezeichnet werden, die dann so oft wie vom Benutzer benötigt instanziiert wird; die Instanzen sind dann die Objekte.
Ein besonderes Merkmal von DAVE und der DAVE Apps ist das effiziente Management der verfügbaren Hardwareressourcen der verwendeten MCU. Die von den DAVE APPs benötigen Ressourcen werden lediglich logisch bzw. virtuell definiert. Um diese virtuellen Ressourcen den real vorhandenen Hardwareressourcen einer MCU effizient zuzuordnen, beruht das Softwarekonzept auf der Methode „Constraint Logic Programming“. Im Fall von DAVE und DAVE APPs funktioniert dies wie folgt:
- Die Hardware-Instanzen der Peripheriemodule und Verbindungsoptionen der verwendeten MCU werden in einem Hardwaremodell als Resource Groups beschrieben. Resource Groups sind funktionale Blöcke (wie ein Timer Slice einer Capture Compare Unit, USIC Channel oder ein CAN-Knoten) und enthalten die zugehörigen Register und Bitfelder sowie Eingangs-, Ausgangssignale und Request Events. Zusätzlich werden noch die Verbindungsoptionen zwischen den Signalen und der zugehörigen Multiplexer beschrieben.
- Die Applikationskomponente DAVE APP beschreibt die für die Anwendung notwendigen Resource Groups in Form von URIs (Uniform Resource Identifier), in der nur der logische Typ der benötigten Resource Group definiert wird, nicht aber die reale physikalische Instanz. Entsprechend dem definierten Anwendungsfall stellt eine DAVE APP auch die möglichen Verbindungsoptionen der Resource Groups für den Benutzer verständlich zur Verfügung.
- Der Benutzer konfiguriert die verwendet DAVE APPs über das grafische User Interface, verbindet benötigte Signale und Request Events zwischen verschiedenen DAVE APPs und ordnet I/O-Signale den Pins entsprechend der Anforderungen der Leiterplatte (PCB) zu. Dies geschieht auf einer logischen bzw. virtuellen Ebene; reale physikalische Ressourcen werden dabei noch nicht zugeordnet.
- Ein Resource-Solver aufgebaut nach der Constraint-Logic-Programming-Methode identifiziert nun die geeigneten realen Resource Groups und ordnet diese den virtuellen Anforderungen der DAVE APPs zu. Berücksichtigt werden notwendige Verbindungen, Doppelzuordnungen werden vermieden.
- Der Code-Generator in DAVE erzeugt nun aus den Daten der graphische Konfiguration der real zugeordneten Resource Groups und aus den definierten Verbindungen den korrekten Initialisierungscode. Er konfiguriert den Handler der Anwendungsfunktionen, so dass der Benutzer den erzeugten Code unabhängig von den verwendeten Resource Groups (wieder)verwenden kann.
Eine DAVE APP kann als benötigte Resource Group auch andere DAVE APPs definieren und so aus verschiedenen einfachen Applikationskomponenten eine neue umfangreichere Applikation.
Artikelfiles und Artikellinks
(ID:43101625)