Software Architektur in Mikrocontroller Systemen

Aufbau der Hardware
Ein Mikrocontroller hat verschiedene Devices an Bord, die für das Softwareprojekt oder System ausgewählt wurden. Dazu kommt noch, das nicht alle Devices gleichzeitig genutzt werden können, da nur eine begrenzte Anzahl von Pins am Mikrocontroller zur Verfügung stehen. So muss man sich entscheiden, welchen Controller mit welchen Devices man für sein System auswählt.

Aufteilung von Devices und logischen Funktionen
Nach dieser Vorauswahl und damit den Zuschnitt der Hardware auf das zu erstellende System geht es dann an die Architektur der Software, die sich auch aus der Hardware ergibt. Aus dem Blockschaltbild sieht man schon welche Devicetreiber geschrieben werden müssen. Für die Abstraktion in der nächsthöheren Ebene werden dann ein oder mehrere Devicetreiber genutzt, um eine logische Funktion auszuführen. So gehören z.B. zur Kommunikation über ein Kommunikationsdevice manchmal auch Steuerleitungen, was dann einfache digitale Input / Output Leitungen sind, soweit sie nicht zur Kommunikationsschnittstelle der Hardware gehören.

Zusammenfassung gleichartiger logischer Funktionen
Sind erst einmal mehrere logische Funktionen ähnlicher Art entstanden, wie z.B. Kommunikation über verschiedene Kanäle (CAN, seriell, I2C etc.), kann eine Service Ebene daraus erstellt werden. Im Falle der Kommunikation dann der Service über verschieden Kanäle mit einer oder vielen Gegenstellen kommunizieren zu können.

Interne Serviceleistungen
Einige Leistungen werden immer wieder gebraucht. Zum Beispiel Speicherverwaltung, Checksummenberechnungen und vieles andere noch. Das lässt sich als interne Serviceleistung zusammenfassen.

Applikation
Das eigentliche System liegt dann oberhalb all dieser Layer und kann sogar portabel gehalten werden, wenn die Schnittstellen zum Mikrocontroller gleichgehalten werden, unabhängig vom verwendeten Controller selbst.

Testen der Applikation
Die logische Funktionaltät der Applikation kann mit einer Simulation sogar unabhängig von der Hardware durchgeführt werden, z.B. im Unit Test.

Literaturhinweise und Links

Software Architektur für Mikrocontroller
– http://www.autosar.org/specifications/release-42/software-architecture/general/AUTOSAR_EXP_LayeredSoftwareArchitecture.pdf

Devicetreiber
– http://www.autosar.org/specifications/release-42/software-architecture_peripherals/general

Testen
Testsuite im Unit Test erstellen

 

Veröffentlicht von

Jürgen

Ich bin Software Ingenieur und habe meine Schwerpunkte in allen Aktivitäten, die zur Software Entwicklung gehören. Am längsten bin ich als Software Entwickler von Embedded Software in C tätig.