Gut nachvollziehen lässt sich die Notwendigkeit einer Revolution in diesem Bereich anhand der aktuell eingesetzten Prozesse und Werkzeuge. Auf Grundlage einer vor Kurzem durchgeführten Studie zum Embedded-Bereich durch UBM kann man feststellen, dass es deutlich festgelegte Rollen und Prozesse bei der Entwicklung von Embedded-Systemen gibt. Zunächst einmal besteht ein Entwicklerteam für Embedded-Systeme durchschnittlich aus 13,5 Mitgliedern, von denen sich 62 % auf die Software- und die übrigen auf die Hardwareentwicklung konzentrieren. Dieses Muster bei Aufbau und Funktion eines Entwicklerteams für das Embedded-Design ist in den vergangenen fünf Jahren unverändert geblieben.

Sieht man sich Embedded-Projekte näher an, so arbeiten 43 % der Teammitglieder vorwiegend an der Entwicklung von etwas völlig Neuem, während die verbleibenden 57 % sich mit Upgrades für bestehende Embedded-Systeme beschäftigen. Der Hauptgrund für ein Upgrade ist die Erweiterung beziehungsweise Integrierung neuer oder anderer Softwarefunktionen und eines neuen oder anderen Prozessors. Im Durchschnitt dauert es zwölf Monate, bis ein Projekt abgeschlossen ist – ganze 57 % aller Projekte wurden 2011 verspätet fertiggestellt oder abgebrochen. Außerdem berichteten Entwicklerteams, dass sie 87 % des bestehenden Programmcodes wiederverwendeten. Darunter fällt Programmcode, der im Unternehmen entwickelt, aus Open-Source-Arbeit gewonnen und/oder gekauft wurde. Diese Trends bei Embedded-Projekten waren in den vergangenen fünf Jahren ebenfalls von Jahr zu Jahr fortlaufend zu beobachten.

Über das traditionelle Embedded-Entwicklerteam und -Projekt hinaus ist es sinnvoll, sich mit dem typischen Entwicklungsprozess zu beschäftigen. Sobald die Systemarchitektur auf Grundlage der Spezifikationen für das Embedded-System bestimmt wurde, beginnen Hard- und Softwareteams getrennt voneinander mit ihrer Arbeit. Die Hardwareingenieure entwickeln die Hardwarearchitektur, -synthese und das physikalische Design des Systems. Die Softwareingenieure arbeiten an der Entwicklung der Anwendungssoftware, von Compilern und, in einigen Fällen, des Betriebssystems. Wenn die beiden Teams ihre Arbeit beendet haben, werden Softwaretreiber für Hardwareschnittstellen entwickelt, um die Integration zu gewährleisten. Diese ist ein iterativer Prozess, der häufig zu Aktualisierungen des Softwaretreibers und/oder zur Hardwareschnittstellensynthese führt.

Auf einen Blick

Embedded-Systeme setzen sich aus Hard- und Softwarekomponenten zusammen, die entwickelt wurden, um eine bestimmte Funktion zu erfüllen, und weisen hinsichtlich Echtzeitfähigkeit und Zuverlässigkeit häufig Einschränkungen auf, die weit über die täglichen Rechenanforderungen hinausgehen. Traditionelle Embedded-Systeme erfüllen die Anforderungen an die Hardwareebene, da sie aus Mikrocontrollern, DSPs und/oder FPGAs bestehen. Bei der Software sind üblicherweise unterschiedliche Programmiersprachen oder Werkzeuge erforderlich, um jedes Hardwareelement zu programmieren oder zu konfigurieren. Demzufolge benötigen Embedded-Entwicklerteams Mitarbeiter mit vielfältigen Kenntnissen in Hard- und Softwaredesign, die Hard- und Software in typische Embedded-Systeme integrieren können.

Angesichts der aktuellen Lage bei der Entwicklung von Embedded-Systemen besteht ein klarer Bedarf an Veränderung, um den fortwährenden Innovationsprozess aufrechtzuerhalten und dabei weiterhin Produkte schnell auf den Markt zu bringen. Dieser Bedarf wird durch die Tatsache unterstrichen, dass die Mehrzahl der Teilnehmer an der zuvor angeführten Umfrage berichteten, dass ihre Position auch das Mitarbeiten an Firmware oder die Hard- und Softwareintegration umfasst. Die wachsenden Fortschritte bei Hardwaretechnologien und Softwarewerkzeugen führen dazu, dass auch die Anforderungen bei der Integration ansteigen. Diese Herausforderung wird, wenn sie unbeachtet bleibt, teurere Endprodukte zur Folge haben und kann Experimentierfreude, Wachstum und die Markteinführung innovativerer Entwicklungen verhindern.

Standard-Embedded-Architektur

Bei einer Standardhardwarearchitektur ist ein Großteil des andernfalls nötigen Integrationsaufwands nicht erforderlich. Während eine Standardarchitektur auf den ersten Blick zu eingeschränkt für den Embedded-Bereich erscheinen mag, dient die Standardisierung der Hardware in Desktop-Computern als gutes Vergleichsobjekt. Anstatt die Anwendbarkeit von Prozessoren für die tägliche Datenverarbeitung zu beschränken, ermöglicht es eine Standardarchitektur Entwicklern, sich auf ihre Fähigkeiten zu konzentrieren und sich auf die Markteinführung besserer Hard- und Softwarekomponenten zu spezialisieren. Somit hatte die Standardisierung zur Folge, dass die Einführung von Datenverarbeitungsprodukten von robusteren Betriebssystemen, raffinierteren Endanwendungen und Fortschritten bei den zugrunde liegenden Hardwarekomponenten profitierte. Daraus lässt sich folgern, dass durch die Zeit, die bei Entfallen des Integrationsaufwands für benutzerdefinierte Hardwarearchitekturen und die dazugehörigen Softwarekomponenten eingespart wird, bessere Endprodukte erzielt werden können, welche dann schneller auf den Markt gebracht werden können.

Die Standardarchitektur im Embedded-Bereich muss so flexibel sein, dass sie an die unterschiedlichsten Anwendungsfälle angepasst werden kann und gleichzeitig offen für Updates ist. Aufgrund dieser Anforderungen besteht die robusteste Architektur für die Standardisierung des Embedded-Designs aus einem Mikroprozessor und einem FPGA, die miteinander als Einheit funktionieren. In Verbindung miteinander geben diese beiden Elemente dem Anwender eine erhebliche Flexibilität bei Entwicklungen an die Hand. Es gibt bereits einige Beispiele dieser Architektur, die das Embedded-Design revolutionieren wird, wie die Chips der Zynq-Produktfamilie von Xilinx, der SmartFusion-Chip von Actel und die rekonfigurierbaren I/O-Hardwareprodukte (RIO) von National Instruments.

Ein Hauptvorteil einer Standardarchitektur ist, dass sich mit ihr bessere High-Level-Werkzeuge mit mehr Funktionalität entwickeln und für die Entwicklung einsetzen lassen. Somit können komplexere Produkte früher und mit kleineren Entwicklerteams auf den Markt gebracht werden. Dieser Wandel wird dadurch ermöglicht, dass Fachexperten höher entwickelte Werkzeuge nutzen und so Zugang zum Embedded-Design erhalten, ohne die verschiedenen Hard- und Softwarekomponenten integrieren zu müssen.

Vorteile der FPGA-Technologie

Besser nachvollziehen lässt sich der Einsatz der Standardarchitektur, wenn die Vorteile eines FPGAs für das Embedded-Design bekannt sind. Von einer höheren Ebene betrachtet, sind FPGAs wiederprogrammierbare Chips, die benutzerdefinierte Hardwarefunktionalität implementieren. Die Zunahme an höher entwickelten Designwerkzeugen macht es möglich, dass auch Anwender ohne tiefgehende Kenntnisse über digitale Hardwareentwicklung die FPGA-Technologie einsetzen können. FPGAs bieten außerdem die Vorzüge deterministischer und zuverlässiger Hardware ohne die Anschaffungskosten und die Starrheit von ASICs. Sie verfügen zudem über einen Vorteil gegenüber Multicore-Prozessoren, die deutlich weniger Anweisungen parallel ausführen, als mit bestehenden FPGAs möglich ist, und die anspruchsvollere Treiber und Software-Stacks benötigen, so dass sich eine geringere Zuverlässigkeit ergibt als bei FPGAs.

Der Prozessor ermöglicht es, bestehende Codebibliotheken wiederzuverwenden, wohingegen mit dem FPGA benutzerdefinierte Algorithmen flexibel implementiert werden können.

Der Prozessor ermöglicht es, bestehende Codebibliotheken wiederzuverwenden, wohingegen mit dem FPGA benutzerdefinierte Algorithmen flexibel implementiert werden können.National Instruments

Diese Vorzüge machen FPGAs zu einem idealen Hardwarebestandteil für Rapid Prototyping und für eine höhere Leistung beim Embedded-Design. Die FPGA-Technologie bietet Entwicklern eine Möglichkeit, ihre Produkte schneller und kostengünstiger auf den Markt zu bringen. Außerdem können Entwickler dank der Fähigkeit neue Logik zu laden und die Verbindungen im FPGA neu zu definieren, ihre Entwicklungen auf ihre Zukunftssicherheit testen und von robusteren Updates profitieren, ohne wesentliche Änderungen an der Hardware vornehmen zu müssen.

Beispiele aus der Industrie

In vielen Industrien nimmt die Kombination aus Prozessoren und FPGAs bei der Entwicklung von Embedded-Systemen zu. Ein Beispiel ist Epower Technology, ein Unternehmen aus Dänemark, das Embedded-Steuersysteme für Muskeltests und Trainingsgeräte entwirft. Das Trainingssystem Sygnum nutzt einen patentierten fünfphasigen Motor, um eine gleichmäßige Regelung zu bieten, wenn bei bestimmten Bewegungen während der Übung ein Widerstand auftritt. Epower Technology setzt FPGAs ein, um die Hochgeschwindigkeitssteuerschleifen abzuarbeiten, die die Geschwindigkeits- und Positionssollwerte aufrechterhalten. Weitere Steuerschleifen werden mit niedriger Frequenz von einem Prozessor mit Echtzeitbetriebssystem ausgeführt.

Ein weiteres Beispiel für ein Standardarchitektur findet sich in der Energiebranche. Extreme Power ist eine US-amerikanische Firma, die ein verteiltes Energiespeichersystem entwickelte, das mit Embedded-Steuerungen arbeitet und auf mehreren Prozessoren und FPGAs basiert. Die FPGAs werden eingesetzt um sehr präzise Messungen mit hoher Geschwindigkeit an dreiphasigen Stromnetzen zu erfassen und führen erweiterte Algorithmen aus, um die beste Reaktion auf Instabilität beim Stromnetz zu bestimmen. In der Zwischenzeit stellen die Prozessoren die Ethernet-Kommunikation zu anderen verteilten Knoten her und erleichtern den dezentralen Datenzugriff, die dezentrale Systemverwaltung und die Ferndiagnose.

Höher entwickelte Werkzeuge

Neben Standardhardwarearchitekturen spielen höher entwickelte Designwerkzeuge auch eine Rolle, wenn es darum geht, die zunehmenden Herausforderungen im Embedded-Design zu bewältigen. Mit den höher entwickelten Werkzeugen können Fachexperten enger in die Entwicklung von Embedded-Systemen in kleineren und effizienter arbeitenden Entwicklerteams einbezogen werden. Die allgemeine Datenverarbeitung liefert den Beweis dafür, dass in der Anwendungsentwicklung mit höher entwickelten Werkzeugen und Sprachen effizientere Ergebnisse erzielt werden können. Es überrascht nicht, dass der Embedded-Markt gegenwärtig den größten Zuwachs an höher entwickelten Designwerkzeugen verzeichnet, darunter das High-Level-Synthesewerkzeug Auto ESL von Xilinx, die Software Catapult C Synthesis von Mentor Graphics und die Systemdesignsoftware NI LabVIEW.

Der Wechsel zu kleineren Entwicklerteams, bestehend aus Fachexperten und Systemarchitekten, wird durch diese Werkzeuge ermöglicht und führt zu einem deutlich effizienteren Entwicklungsprozess. Traditionelle Embedded-Entwicklerteams sind, wie zuvor erwähnt, wesentlich größer und bestehen aus viel mehr Spezialisten wie beispielsweise FPGA-, ASIC- oder Softwareentwicklern. Derartig große Teams kämpfen darum, alle Entwicklungsanforderungen parallel auszuführen. Hinzu kommt, dass jedes Spezialistenteam das Problem und die Anforderungen der Fachexperten kennen muss, bevor sie die Anforderungen angehen können, da dieses Problem mit der Spezialisierung zusammenhängt. Somit kämpfen traditionelle Entwicklerteams damit, dass sich die Anforderungen häufig ändern, da es schwierig ist, die Marktanforderungen in Form von Systemfunktionen abzubilden, und die Kommunikation zwischen Fachexperten und Entwicklungsspezialisten viele Herausforderungen birgt.

Ventura Aerospace konnte eine kosteneffiziente Systemlösung für den Brandschutz bei Fed Ex entwickeln. Dabei nutzten sie sowohl High-Level-Design-Tools als auch COTS-Hardware mit der Standardarchitektur eines Prozessors und FPGAs von National Instruments.

Ventura Aerospace konnte eine kosteneffiziente Systemlösung für den Brandschutz bei Fed Ex entwickeln. Dabei nutzten sie sowohl High-Level-Design-Tools als auch COTS-Hardware mit der Standardarchitektur eines Prozessors und FPGAs von National Instruments.National Instruments

Eine Vielzahl von Beispielen aus der Industrie verdeutlicht die Leistungsfähigkeit von höher entwickelten Designwerkzeugen und kleineren Entwicklerteams. Zu diesen Beispielen zählt Ventura Aerospace Inc., ein kleines Unternehmen, das der Luftfrachtbranche Frachtgutsicherung und Brandschutztechnologie zur Verfügung stellt. Ventura Aerospace entwickelte mit einem kleinen Team aus Fachexperten und Systementwicklern sowie der grafischen Entwicklungsumgebung NI LabVIEW und NI-RIO-Hardware ein innovatives Brandschutzsystem für Fed Ex. Mithilfe der NI-LabVIEW-RIO-Architektur konnte das Unternehmen eine kosteneffizientere Lösung schneller und mit höherer Qualität erstellen als wesentlich größere Mitbewerber. Der Erfolg des Entwicklerteams von Ventura Aerospace liefert den unwiderlegbaren Beweis dafür, dass kleine Teams effizienter sein können und mit den richtigen Werkzeugen Marktanteile gegenüber etablierten, auf traditionelle Entwicklungsmethoden bauenden Mitbewerbern gewinnen können. Dieses Beispiel verdeutlicht zudem die Leistungsfähigkeit von High-Level-Systemdesignsoftware, die in Verbindung mit einer Standardhardwarearchitektur eingesetzt wird.

Ein weiterer Nachweis des Erfolgs kleiner Teams lässt sich auch anhand der zunehmenden Anzahl an Käufen kleinerer Unternehmen und Anlagen durch große, traditionellere Mitbewerber erbringen. Dies wird durch den Verkauf der Sparte mit Geräten zur Retina- und Glaukombehandlung von Opti Medica an Topcon belegt. Opti Medica, ein kleines Startup-Unternehmen mit Sitz in Kalifornien, hat unter Nutzung von FPGA-basierter Hardware und Systemdesignwerkzeugen erfolgreich ein innovatives medizinisches Gerät zur Behandlung von Augenkrankheiten entwickelt. Die Topcon Corporation mit Sitz in Tokio (gegründet 1932) gehört zu den weltweit führenden Herstellern ophthalmischer, optometrischer, GPS- und Positioniersteuerungssysteme. Der Verkauf der Gerätesparte zur Retina- und Glaukombehandlung an Topcon ist ein Beweis für den Erfolg, der in einer etablierten Branche von einem kleinen Team mithilfe von FPGA-basierter Hardware und Systemdesignwerkzeugen erreicht werden kann.

Zukunft der Embedded-System-Entwicklung

Der nächste Schritt bei der Entwicklung von Werkzeugen für das Embedded-Design ist die Integration von Standardhardwarearchitekturen in High-Level-Systemdesignwerkzeuge, so dass die Entwicklung von Middleware nicht mehr erforderlich ist. Ein Beispiel für eine integrierte Hard- und Softwareplattform im Embedded-Bereich ist die LabVIEW-RIO-Architektur von National Instruments. Integrierte Plattformen vereinen die Stärken einer Standardhardwarearchitektur mit den Vorteilen der High-Level-Systemdesignwerkzeuge. Die Zukunft der Entwicklung von Embedded-Systemen liegt in diesen integrierten Plattformen, mit denen kosteneffizientere und schnellere Innovationen ermöglicht werden.