Die komplette Neuerstellung technisch komplexer Komponenten wie der eines Scheduler, eines USB-Stack und einer Grafikbibliothek ist eine interessante Möglichkeit und bietet zumindest für den Entwickler überzeugende Vorteile. Die gesamte Entwicklungskompetenz bleibt im Hause, sodass im Fall von Problemen schnell Lösungen zu finden sein sollten. Eine zentralisierte Entwicklung trägt außerdem dazu bei, die Lösungen besser optimieren und auf die Zielanwendung ausrichten zu können. Und ganz ehrlich, die meisten Ingenieure würden es vorziehen, diese Dinge selbst zu entwickeln. Haben Entwickler allerdings bisher keine Erfahrung mit diesen Technologien, sehen sie sich schnell mit Problemen konfrontiert, die Spezialisten bereits vor Langem erkannt und gelöst haben. Wie kann man miteinander in Konflikt stehende Datenverarbeitungsprioritäten im Scheduler erkennen und handhaben? Wie steuert man die Interaktion zwischen Touch und Grafik? Und woran liegt es, dass ein USB-Flash-Laufwerk korrekt arbeitet, während ein anderes nicht funktioniert? Sind die beiden nicht genau gleich aufgebaut? Diese und viele weitere Fragen führen zu einem exponentiellen Anstieg der Implementierungs- und Testzeiten (Tabelle 1). Obwohl die meisten Ingenieure solche Herausforderungen mögen, sind sie in der heutigen Geschäftswelt einfach nicht praktikabel.
Die nächste Option ist der Einsatz von Komponenten von verschiedenen Drittanbietern. Mikrocontroller-Anbieter stellen häufig Hardware-Treiber für ihre Controller bereit und Internet-Recherchen liefern eine breite Palette verfügbarer Stacks und Bibliotheken. Aber auch hier können verschiedene Probleme auftreten. Das erste ist die Lizenzierung. Eine Bibliothek von einem Anbieter kann für die ausschließliche Verwendung mit den Produkten eines bestimmten Herstellers lizenziert werden – womöglich will man aber eine andere MCU einsetzen. Manche Lizenzmodelle verpflichten den Anwender zur Offenlegung sämtlicher Änderungen für die gesamte Entwicklergemeinschaft. Dies würde dann sämtliche Wettbewerbsvorteile zunichtemachen, die man gegenüber anderen Lösungen hätte. Andere Lizenzmodelle wiederum fordern, dass der Code nicht für kommerzielle Anwendungen genutzt werden darf.
Aufgrund der breiten Vielfalt und des komplexen rechtlichen Rahmens der unterschiedlichen Lizenzmodelle lassen viele Großunternehmen, die Embedded-Produkte entwickeln, keinen offenen Quellcode zu. Aus diesen Gründen ist es sehr wahrscheinlich, dass der Anwender verschiedene Lösungen von unterschiedlichen Anbietern beziehen muss. Dies hat den Vorteil, dass man die besten technischen Lösungen erhält. Allerdings gibt es auch Nachteile. Die Ermittlung solcher Lösungen ist zeitaufwändig und kann die Markteinführung gefährden. Jeder Anbieter hat andere Lizenzierungs- und Zahlungsbedingungen. Manche berechnen im Voraus zu bezahlende Lizenzgebühren, bei anderen hängen die Lizenzgebühren von der Stückzahl der hergestellten Produkte ab.
Die Lizenzverwaltung für unterschiedliche Komponenten kann viel Zeit kosten. Und schließlich müssen verschiedene Komponenten integriert werden, um sie gemeinsam in der gleichen Anwendung nutzen zu können (Tabelle 2). Obwohl sich dieses Problem womöglich durch den Einkauf aller Komponenten vom gleichen Anbieter lösen lässt, ist dies oft nicht der Fall. Zum einen spezialisieren sich Software-Anbieter oft auf bestimmte Gebiete und bieten nur spezielle Stacks oder Bibliotheken wie zum Beispiel ein Echtzeit-Betriebssystem. Hinzu kommt, dass Stacks und Bibliotheken ein und desselben Anbieters leider nicht selten inkompatibel zueinander sind und eine Überarbeitung oder zusätzlichen Schnittstellencode erfordern, damit diese zusammen einwandfrei funktionieren. Diese so wichtige Integrationsphase ist meist der am wenigsten beachtete und unzureichend budgetierte Schritt der Produktentwicklung.
Zeitschätzungen liegen oft daneben
Egal ob Eigenentwicklung oder Zukauf – die endgültige, integrierte Plattform muss umfassend getestet werden, um eine solide Basis für den Aufbau der Anwendung zu bieten. Diese Phase ist entscheidend, denn Probleme lassen sich nur schwer erkennen und isolieren, sobald der Anwendungs-Code hinzukommt. Das ist mühsam und zeitraubend, weil erst spezielle Test-Treiber für einen Belastungstest der Plattform erstellt werden müssen. Gleichzeitig lässt sich diese Phase nicht ohne erhebliche Risiken für das Endprodukt einfach überspringen, da Grenzfälle oft erst nach Monaten im Feldeinsatz auftauchen und in der Regel teure und unangenehme Fehlerkorrekturen nach sich ziehen.
Eine realistische Abschätzung der erforderlichen Mannstunden kann schwindelerregend hohe Zahlen ergeben. Natürlich kann ein Software-Entwicklungsteam die gesamte Entwicklungszeit verkürzen, dies funktioniert aber nur bis zu einem gewissen Grade. Vergessene oder unzureichend berücksichtigte Aufgaben oder unerwartete Integrationsprobleme – das alles sind Ursachen für Software-bedingte Terminverzögerungen. Oft werden nur sechs Monate oder weniger für die Erstellung einer Plattform veranschlagt. Dies kann aber problemlos auch ein Jahr dauern. Und hier geht es erstmal nur um die Plattform, also die Basis, auf der die eigentliche Anwendung aufgebaut wird. Nach Abschluss dieser Phase gibt es noch nichts, wodurch sich das Produkt von anderen auf dem Markt abhebt. Der Markt von heute setzt solche Basisfunktionen voraus. Stehen diese jedoch nicht schon von Anfang an in der Produktentwicklung bereit, so hinkt man bereits ein Jahr hinterher.
Sechs Monate Vorsprung gewinnen
Was aber, wenn Entwickler bereits mit einer Software-Plattform beginnen könnten, die schon implementiert, integriert und getestet wäre? Einer Plattform, die für eine Reihe von Mikrocontrollern konzipiert wurde, sodass der Anwender nicht nur problemlos seine Software, sondern sogar auch die Hardware skalieren könnte? Anstatt eines Starts mit sechs Monaten Rückstand und zusätzlicher Verzögerung um weitere sechs Monate könnte man unmittelbar sechs Monate Vorsprung gewinnen und sogar das Risiko von Verzögerungen minimieren bzw. gänzlich vermeiden. Die gewonnene Zeit ließe sich nutzen, um dem Produkt Zusatzfunktionen als Alleinstellungsmerkmal für eine echte Differenzierung am Markt hinzuzufügen. So wäre es z.B. möglich, die zuvor zurückgestellte WiFi Connectivity zu ergänzen, vor allem wenn die Plattform bereits einen Ethernet Stack und WiFi-Treiber enthält. Und sind die Mikrocontroller skalierbar oder sogar pinkompatibel, so sind die Anforderungen von zusätzlichem Programmspeicher und RAM für speicherintensive Funktionen kein kritisches Problem mehr. Der bestehende Mikrocontroller muss einfach durch einen größeren oder leistungsfähigeren ersetzt werden. Die Plattform könnte dies automatisch berücksichtigen und im Schaltplan wäre nur die Teilenummer für den Controller zu verändern.
Die Renesas-Synergy-Plattform bietet solche Möglichkeiten. Auf der Hardware-Seite bietet sie vier Mikrocontroller-Serien auf der Basis von ARM-Cortex-M0+ und -M4-Cores. Dank umfassender Funktions- und Pinkompatibilität über beide Serien und alle Gehäuseformen sind diese Bausteine die perfekte Basis zum Aufbau einer vollständig integrierten Embedded-Plattform. Bewährte Stacks von Express Logic bilden das Rückgrat der Software-Plattform mit Treibern und Frameworks, die tiefer liegende Systemebenen abstrahieren. So können Entwickler sich auf das konzentrieren, was sie neu erstellen wollen, anstatt Grundfunktionen zu entwickeln, die nichts zur Produktdifferenzierung beitragen. Gezielte Anwendungsbeispiele können die Entwicklungsarbeiten weiter beschleunigen und eröffnen dem Anwender einen schnellen Einstieg in die Entwicklung der eigenen Anwendung (Tabelle 2). Hinzu kommen Stacks und Bibliotheken von Drittanbietern, die Renesas bereits hinsichtlich Kompatibilität zur Synergy-Plattform verifiziert hat. Diese verbessern und erweitern die Plattform insbesondere im Bereich Security und Cloud Connectivity (Bild 2).
Noch stärker vernetzt
Die Welt wird in Zukunft noch stärker vernetzt sein. Geräte sind nicht nur miteinander, sondern auch mit einem zentralen System für Fernüberwachung und -steuerung verbunden. Embedded-Anwendungen entwickeln sich in einer Art und Weise weiter, die vor zehn Jahren kaum vorstellbar gewesen wäre. Intelligente Stromzähler können das Verbrauchsverhalten verfolgen und Kostenprofile anwenden, sodass Verbraucher ihren Energieverbrauch überwachen und optimieren können. Straßenleuchten können Ausfälle melden und die Beleuchtungsintensität jeweils an die Wetterlage anpassen. Dabei lassen sie sich über eine zentrale Überwachungseinheit steuern, was viele teure Fotozellen spart. Parksysteme können die freien Parkplätze im Parkhaus ausfindig machen und Parkplatzsuchende dorthin leiten. Embedded-Entwicklern stehen aufregende Zeiten bevor. Angesichts dieser umfangreichen neuen Technologien können es sich Entwicklungsunternehmen für Embedded-Produkte jedoch nicht mehr leisten, ihren Firmware-Entwicklern die nötige Zeit und die erforderlichen Ressourcen bereitzustellen, um sich auf allen Gebieten einzuarbeiten und das entsprechende Know-how zu erwerben. Dies würde eine zu große Investition an Zeit erfordern, denn in der schnelllebigen Wirtschaft von heute ist Time to Market entscheidend. Stattdessen sollten Entwickler bestehende Werkzeuge nutzen und sich auf das konzentrieren, was sie am besten können – innovative Produkte kreieren
Der Autor
Kim Dinsmore |
---|
|