Mikrocontroller-Software aus einem Guss Mit wenig Aufwand viel bewegen

Mikrocontroller-Software für alle Embedded-Geräte.
Mit wenig Aufwand viel bewegen.

Sämtliche Software für Embedded-Geräte selbst zu entwickeln wird immer unrentabler. Einfacher geht es mit Renesas‘ Synergy-Plattform, die die Grundfunktionen für Geräte mit Cortex-M0- und -M4-Controller abdeckt.

Das gefährlichste Wort bei der Firmware-Entwicklung von Embedded-Systemen ist „einfach“. Die Anforderungen für neue Embedded-Systeme von heute strotzen nur so vor lauter „einfach“: Es einfach schneller machen. Das LCD einfach durch ein Farbgrafik-Display ersetzen. Einfach berührungssensitive Buttons anstelle von Schaltern einbauen. Das System einfach um USB-Connectivity erweitern. Manchmal ist „einfach“ motivierend. Es ermutigt, die Nutzerperspektive einzunehmen und Grenzen zu überschreiten anstatt Dinge für unmöglich zu erklären. Häufig zeigt dies aber auch, dass jemand die Aufgabe nicht wirklich versteht und nicht weiß, was sie alles umfasst. Zum Leidwesen der Entwickler, die all dies realisieren müssen, ist dieser Jemand allzu oft das Produktmarketing, das sich bereits auf das Konzept festgelegt hat. Manchmal erscheinen Aufgaben schwierig, obwohl sie eigentlich relativ einfach zu implementieren sind. Aber dies wäre der eher seltene Fall. Meist geht es um das genaue Gegenteil. Einfache Konzepte wie kapazitive Touchscreens sind sehr anwendungsspezifisch und lassen sich nur schwer in Zahlen fassen. Konzepte wie „Internet Connectivity“ gehen einem zwar leicht von der Zunge, ihre Implementierung sieht in Wirklichkeit jedoch ganz anders aus. Zudem ist die grundlegende Integration mehrerer komplexer Technologien eine Herausforderung an sich: Es muss sichergestellt werden, dass jede Aufgabe über die Bandbreite und die nötigen Ressourcen verfügt, ohne die anderen Systemanforderungen zu beeinträchtigen. Mit Hilfe moderner, leistungsfähiger Mikro­controller lassen sich Embedded-Systeme entwickeln, deren Funktionalität die ihrer Vorgänger bei Weitem übertrifft. Anders als in früheren Zeiten stehen allerdings die Entwicklungskosten der Firmware nicht mehr in direkter Beziehung zu den Kosten des Mikrocontrollers. Technologien entwickeln sich ständig weiter, nicht nur in Bezug auf ihren Leistungsumfang, sondern auch auf ihre Komplexität. Wie können Firmen heute ausufernde Software-Entwicklungskosten unter Kontrolle halten und trotzdem rechtzeitig innovative und differenzierte Produkte auf den Markt bringen?

Vieles gleichzeitig

Als Beispiel soll das Update einer Steuerkonsole dienen: Die grundlegenden Steuerungsanforderungen haben sich nicht wesentlich verändert, nur legen die Kunden heute mehr Wert auf die Benutzerschnittstelle und Konnektivität. Die alte Steuerkonsole bestand aus einem LC-Display und Drucktasten, während die neue über ein Touch-Farb-Display verfügen sollte. Cloud Connectivity und Firmware Upgrades über WiFi wurden zwar angedacht, aber für den Moment zurückgestellt, obwohl die Hardware vom Design her bereits auf solche Möglichkeiten vorbereitet wird. Konfiguration und Upgrades erfolgen stattdessen über ein USB-Flash-Laufwerk, wodurch Sicherheitsaspekte über den physischen Zugriff auf das Gerät abgedeckt sind. Da Grafik, Touch-Funktionen, USB und primäre Steueralgorithmen alle gleichzeitig ausgeführt werden müssen, wird es sehr schnell kompliziert. Es ist eine Art von Scheduler erforderlich, damit sich alle Prozesse mit der richtigen relativen Priorität, jedoch ohne gegenseitige Beeinträchtigung ausführen lassen.

Die endgültige Architektur wird also in etwa wie in Bild 1 aussehen. Interessanterweise ist die einzige Software-Komponente, die wirklich produktspezifisch ist, der Block, der mit „Anwendung“ bezeichnet ist.

Die anderen Bestandteile bilden einfach die erforderlichen Grundlagen, die vorhanden sein müssen, bevor mit dem Aufbau des Produkts begonnen werden kann. Man könnte also das Produkt vollständig verändern, ohne dabei die erforderlichen Grundlagen modifizieren zu müssen. Bis hierhin verfügt das Produkt noch über keinerlei Alleinstellungsmerkmale, um sich am Markt zu differenzieren. Trotzdem sind diese Grundlagen nötig. Sie lassen sich auf drei verschiedene Arten umsetzen:

  • Implementierung aller Komponenten aus eigener Hand, Einsatz von Komponenten von verschiedenen Drittanbietern,
  • Nutzung einer kommerziell erhältlichen
  • Plattform für den Entwicklungseinstieg.