Das Wort Standard bringt die Augen von Einkäufern und Entwicklern zum Leuchten – aus unterschiedlichen Gründen. Der Einkäufer erwartet einerseits Preisvorteile, wenn mehrere Anbieter mit dem gleichen Produkt am Markt vertreten sind. Zusätzlich geben ihm Standards Liefersicherheit: Fällt ein Lieferant aus, kann der Einkäufer bequem zu einem anderen Anbieter wechseln. Zudem kann er davon ausgehen, dass Produkte langfristig verfügbar sind, wenn sie in standardisierter Form bei einer großen Anzahl von Anbietern erhältlich sind.
Den Entwickler, der dagegen eher die technische Seite im Blick hat, interessiert vielmehr, mit welchen technischen Finessen der einzelne Anbieter sein Produkt versehen hat. Über die Information der unterschiedlichen Anbieter sowie Tests der einzelnen Module wird der Entwickler in Summe über die unterschiedlichen Quellen schneller an sein Ziel gelangen und darf mehr Support und Information erwarten.
Austauschbarkeit als Vorteil
Standards im Embedded-Markt versprechen, dass alle Module, die ihnen folgen kompatibel und damit austauschbar sind. Außerdem ermöglicht diese Austauschbarkeit die Skalierbarkeit der Systeme oder eine Hochrüstung mit einem entsprechend leistungsstärkeren Modul. Das heißt für den Anwender, er entwickelt ein Applikationsboard, das dem Standard folgt und kann dann zwischen den unterschiedlichen Herstellern auswählen und das Modul einfach aufstecken. Benötigt er mehr Leistung, nimmt er einfach das entsprechend leistungsstärkere Modul eines Herstellers und ersetzt das vorhandene Modul.
Was gut klingt, sieht in der Realität oft anders aus: In vielen Fällen sind Anpassungen des Applikationsboards notwendig. Deshalb sollte man klar zwischen Marketingversprechen und realen technologischen Fakten unterscheiden. Im Elektronik- und Embedded-Bereich sind absolute Standards aus der Vergangenheit bekannt. Dazu zählen unter anderem PC/104 und CompactPCI. Die Basis bilden hier jeweils nur die mechanische Abmessung und der eingesetzte Bus. Die restlichen Funktionen sind nicht definiert und herstellerspezifisch.
Zu den verwendeten Bussen, die ebenfalls zu den absoluten Standards zählen, gehören der ISA- und der PCI-Bus. Hier sind alle Signale in den mechanischen Abmessungen und Positionen beschrieben, genauso die Timings und sonstige Parameter. Da PC/104 und CompactPCI ausschließlich den Standard über den Bus definieren, ist hier ein Austausch einzelner Module verschiedener Hersteller und verschiedener Leistungsklassen problemlos möglich. Schließlich funktioniert der PCI-Bus eines Pentium-Prozessors genauso wie der eines PowerPC-Prozessors. Um in einem System alle Module dieses Standards einzusetzen, ist lediglich die Verfügbarkeit der entsprechenden Treiber sicherzustellen.
Wie schwierig dieser Weg bei Embedded-Modulen ist, zeigt COM Express, ein unter der PICMG verwalteter Standard. Zwar funktioniert dieser gut zwischen verschiedenen Anbietern und verschiedenen Leistungsklassen. Auf der anderen Seite zeigt aber die Definition der heute gebräuchlichsten Schnittstellen-Ausführungen Type 2, 6, 7 und 10, wie schwierig es ist, mit einem Standard die Anforderungen verschiedener Anwendungen zu erfüllen. Die angebotenen Typen sind gar nicht oder nur sehr eingeschränkt austauschbar.
So verfügt ein Intel Atom E3800-Prozessor über 3x PCIe und ein Intel Core 5000U (5th Generation) über bis zu
8x PCIe. Beide Prozessoren sind auf einem COM Express Type 6 Module verfügbar. Die Austauschbarkeit der Module in der Anwendung funktioniert also nur, solange lediglich 3x PCIe genutzt werden. Diese Einschränkung ließe sich für viele weitere Schnittstellen und Funktionen aufzeigen. Relativ sicher ist die Austauschbarkeit eines COM Express Type 6 Modules mit dem gleichen Prozessor von unterschiedlichen Herstellern. Hier funktioniert der Standard wie erwartet.
Optimum statt Ideal
Bei ARM-Modulen sind die Abweichungen deutlich signifikanter, da die einzelnen Anbieter von ARM-Prozessoren unterschiedliche Märkte adressieren und damit sehr unterschiedliche Schnittstellen bieten. Egal welcher Standard für ARM-Prozessoren definiert ist, ob Qseven, SMARC 1.1 oder SMARC 2.0 – eine optimale Abbildung der Schnittstellen unterschiedlicher Prozessorleistungsklassen und unterschiedlicher Anbieter ist nicht gegeben. So stellt ein Standard immer nur ein Optimum für einen Prozessor dar. Das zeigt auch die Definition von SMARC 1.1 und SMARC 2.0: Erstere ist eine passendere Lösung für einen NXP i.MX6-Prozessor, wobei die zweite Definition eher für den Einsatz eines Intel Atom E3900-Prozessors oder eines zukünftigen NXP i.MX8-Prozessors passt. In jedem Fall ist der Einsatz eines Moduls eines anderen Herstellers mit mehr Integrationsaufwand verbunden, so unter anderem die Anpassung des BSPs. Außerdem sind die Applikationsboards meist auf eine Anwendung und Leistung optimiert. In der Realität zeigt sich, dass beim Bedarf von mehr Leistung auch das Applikationsboard auf diese Mehrleistung optimiert wird.
Standards bleiben ein Traum
Ein 1:1-Vergleich der Funktionen, die am Stecker des Moduls zur Verfügung stehen, lohnt sich also, um zu entscheiden, ob ein einfacher Austausch ohne Änderung des Applikationsboards möglich ist. So ersparen sich Entwickler Überraschungen beim Einsatz eines Moduls eines anderen Herstellers oder bei der Hochrüstung mit einem leistungsstärkeren Modul. In jedem Fall wird der Wunsch nach einem absoluten Standard bei Embedded-Modulen ein Traum bleiben. Dies zeigt allein schon die Fülle an Standards in diesem Bereich.
Trotzdem haben Standards ihre Berechtigung. Wird nicht der komplette Funktionsumfang des Moduls oder Prozessors genutzt, gibt es eine Reihe von kompatiblen Modulen verschiedener Hersteller, die tatsächlich austauschbar sind. Auch die Wiederverwendung von Teilen des alten Applikationsboards im neuen Design hilft, Kosten zu sparen. Je weniger Kompromisse bei den angebotenen und den im Standard geforderten Funktionen gemacht werden müssen, desto überzeugender ist ein Standard. Weichen jedoch die vom Prozessor angebotenen Funktionen stark von denen ab, die im Standard definiert sind, ist davon auszugehen, dass das Preis-Leistungsverhältnis eines Standardmoduls nicht optimal ist.
TQ als führender Lösungsanbieter für innovative Technologien trägt den Anforderungen des Markts Rechnung und bietet sowohl proprietäre als auch Standard-Module an. Dabei sind die ARM-basierten Module auf den Prozessor optimiert, bei x86 liegt der Schwerpunkt auf dem COM-Express-Standard. Da die SMARC 2.0-Spezifikation den meisten Schnittstellen eines Atom E3900 Rechnung trägt und auch der kommende NXP i.MX8 einigermaßen gut abgebildet ist, wird TQ in Zukunft auch SMARC 2.0 unterstützen. Damit hat der Kunde der Möglichkeit, ein auf den Prozessor optimiertes Modul oder ein Standardmodul aus einer Hand zu erhalten.