Speicherprobleme in GUI-basierten Mikrocontroller-Designs lösen

Autor / Redakteur: Kurt Parker * / Michael Eckstein

Grafische Bedienoberflächen benötigen oft mehr Speicher, als MCUs besitzen. Externe Erweiterungen sind möglich, verkomplizieren aber das Design. Was tun?

Firmen zum Thema

Auf einen Blick: Immer mehr Endgeräte sind mit aufwendigen grafischen Bedienoberflächen ausgestattet. Grafik-MCUs können das Design für die Ansteuerung vereinfachen.
Auf einen Blick: Immer mehr Endgeräte sind mit aufwendigen grafischen Bedienoberflächen ausgestattet. Grafik-MCUs können das Design für die Ansteuerung vereinfachen.
(Bild: Microchip)

Der Zwischenspeicher für grafische Inhalte ist eine der Komponenten von Embedded-Grafikdesigns, die am schwierigsten auszulegen sind. Idealerweise sollte dieser Frame Buffer groß, schnell und kostengünstig sein. In der Realität müssen Entwickler jedoch oft Kompromisse eingehen, um Speicher in Embedded-Grafik-
designs zu integrieren.

Zusätzlicher Speicher lässt die Kosten für ein Design steigen. Das senkt den Profit. Es kann aber auch sein, dass ein Unternehmen mit der Integration der Grafik überfordert ist. Dann muss es einen Spezialisten engagieren und/oder das Design ausgelagern, damit am Ende ein marktfähiges Produkt entstehen kann. Um Probleme oder unnötigen Aufwand zu vermeiden, lohnt es sich, im Vorfeld des eigenen Projekts wichtige Grundlagen für das Integrieren von Speicher in Embedded-Grafikdesigns zu verinnerlichen.

Bildergalerie

Grafische Bedienoberflächen stellen hohe Anforderungen

Der Einsatz von „Micro Controller Units“ (MCUs) anstelle von Mikroprozessoren (MPUs) in Embedded-Grafikdesigns bietet einige Vorteile. Der wohl größte ist ihr hoher Integrationsgrad: Je nach Modell sind viele wichtige Funktionsgruppen enthalten, zum Beispiel flüchtige und nicht-flüchtige SRAM- und Flash-Speicher in verschiedenen Größen, unterschiedliche Kerne und Taktraten sowie Kommunikationsschnittstellen.

So können Entwickler oft schnell mit dem Programmieren ihrer Applikation beginnen, ohne sich beispielsweise über den Anschluss von externem Speicher Gedanken machen zu müssen. Grafische Bedienoberflächen (Graphical User Interface, GUI) stellen jedoch besonders hohe Anforderungen an die Controller. Je nach Anwendungsfall lassen sich wichtige Kriterien wie Einfachheit, Platz- und Kostenersparnis nicht mehr ohne weiteres in Einklang bringen.

Während für einfache GUI die Leistungsfähigkeit von MCUs oft ausreicht, müssen Entwickler zwangsläufig höheren Aufwand treiben und auf eine MPU zurückgreifen, wenn rechenintensive Funktionen gefordert sind. Unternehmen, die bislang noch keine oder nur wenig Erfahrung mit der Integration von Prozessoren haben, müssen in diesem Fall mit zusätzlichen Kosten und auch erforderlichen Schulungen rechnen. Je nach Anwendung stellt sich die Frage, ob und wie eine MCU die Anforderungen noch erfüllen kann. Oder ob die Entwickler den kostspieligeren und komplizierteren Weg einer MPU-Integration einschlagen sollen.

Verschiedene Möglichkeiten zur Ansteuerung der Grafikhardware

Die erste Überlegung ist, wie die grafischen Inhalte angesteuert werden sollen. Generell gibt es drei Funktionen in einem Embedded-Grafikdesign: Rendern, Ansteuern und Speichern. Rendern bezieht sich darauf, wie das Bild erstellt und bearbeitet wird. Einstiegslösungen nutzen dafür die CPU des Mikrocontrollers.

Höherwertige, auf grafische Anwendungen spezialisierte MCUs besitzen einen dedizierten Grafikprozessor (Graphics Processing Unit, GPU), der bestimmte Rendering-Funktionen übernimmt und die CPU entlastet. Dazu zählen das Zeichnen und Füllen von Linien und Rechtecken, das Bewegen von Formen und die Overlay-Bearbeitung.

Die Ansteuerung bestimmt, wie das Bild auf den Bildschirm übertragen wird. Dies kann mithilfe einer DMA-Einheit per direktem Speicherzugriff (Direct Memory Access) über einen externen parallelen Port auf der MCU erfolgen. Oder über einen spezialisierten Grafikcontroller. Letzterer fügt Funktionen wie Overlays und Rotationen hinzu und ermöglicht so ein besonders ansprechendes Ergebnis. Im Speicher werden die berechneten Informationen abgelegt, die letztendlich angezeigt werden sollen. Darauf wird sich der Rest dieses Beitrags konzentrieren.

(ID:44915639)