Standard-Module für die X86-Architektur haben sich in der Embedded-Welt bewährt - nicht zuletzt deshalb, weil sie Geräteherstellern die Entwicklungsarbeit erleichtern und die Time-to-market wesentlich verkürzen. Der Hersteller kann sich zudem auf seine Kernkompetenzen konzentrieren und setzt ansonsten auf Module, die aufgrund ihrer Standardisierung auswechselbar sind. Seit einiger Zeit drängen immer mehr ARM-Prozessoren in die Embedded-Welt, nicht zuletzt die aktuellsten Modelle für Smartphones und Tablets, die durch eine hohe Leistung bei gleichzeitig geringem Energiebedarf das Interesse viele Entwickler geweckt haben. Und auch im industriellen Umfeld ergeben sich dadurch völlig neue Möglichkeiten, die bisher mit den weniger komplexen ARM-Designs oder den leistungsfähigeren X86er-Designs nicht zu realisieren waren.
Designfreiheit durch Building Blocks
Allerdings benötigen diese Prozessoren ein individuelles und hoch integriertes Design, das viele Gerätehersteller nicht realisieren können oder wollen. Ein sinnvoller Lösungsansatz besteht aus fertigen Building-Blocks, die eine hohe Designfreiheit und Kompaktheit eines Full-Custom-Designs ermöglichen und gleichzeitig Entwicklungsaufwendungen und Risiken wirkungsvoll minimieren. Genau diesen Lösungsansatz verfolgen Computer-on-Modules (COMs). Sie integrieren die Kernkomponenten eines Computersystems wie Prozessor, relevante Controller, Festspeicher und Arbeitsspeicher auf einer hochintegrierten und damit kompakten Zukauf-Komponente. Für die Integration der Module in die jeweilige Anwendung wird ein speziell entwickeltes Carrierboard benötigt. Es führt die Signalleitungen vom Modul an die Systemschnittstellen aus und integriert gleichzeitig zusätzlich nötige Komponenten wie beispielsweise Sensoren oder Controller. Carrierboards bieten Entwicklern bei Größe und Form eine besonders große Designfreiheit: Einzig der minimalste Footprint wird über die Modul-Größe definiert. Und da die Komplexität vor allem in den COMs liegt, ist die Kombination aus Modul und Carrierboard erheblich leichter und schneller zu realisieren als ein vollständig neu entwickeltes Board. Der Integrationsaufwand für den Prozessor liegt beim Module-Hersteller, dadurch sind COMs eine ideale Lösung für die effiziente Entwicklung individueller Designs. Wer als Entwickler einer ARM-basierten Lösung bisher ein Standard-Modul benötigte, suchte vergeblich. Die wichtigsten COM-Standards wie ETX und COM Express wurden für X86er-Architekturen entwickelt und sind für ARM- oder SoC-Prozessormodule nicht geeignet, weil sich die Architekturen bei den Anforderungen an die Stromversorgung der Komponenten und der zum Teil sehr unterschiedlichen Schnittstellen deutlich voneinander abweichen. Daher blieb bisher neben der Eigenentwicklung nur der Griff zu herstellerspezifischen Modulen - mit allen Risiken, die eine derartige Wahl mit sich bringt.
Standard für ARM
Seit Ende 2012 gibt es aber eine sinnvolle Alternative. Ein von Kontron eingereichter Modulentwurf, der auf dem ULP-COM-Standard basiert, wurde von der Standardization Group for Embedded Technologies e.V. (SGET) offiziell ratifiziert. Mit der Smart-Mobility-Architektur (SMARC) steht Entwicklern nun erstmals ein COM-Standard für ARM- und SoC-Designs zur Verfügung.Die SMARC-Spezifikation beschreibt extrem flache ARM/SoC-basierte Computer-on-Modules mit geringer Leistungsaufnahme. Definiert sind die zwei Modulgrößen „Short“ mit 82 mm x 50 mm für extrem kompakte Low-Power-Designs sowie als Investition in die Zukunft eine größere mit 82 mm x 80mm für kommende leistungsfähigere SoCs mit möglicherweise erhöhtem Platz- und Kühlungsbedarf. Als Connector hat man den MXM-3.0-Steckverbinder gewählt. Mit seiner Bauhöhe von lediglich 4,3 mm lassen sich damit besonders flache Designs wie Tablets oder Wearable Computer mit einer Gesamt-Bauhöhe entwickeln, die unter einem Zentimeter liegt. Auf der elektrischen Seite führen SMARC-Module 314 Pins aus. Effektiv bietet der Standard 281 I/O-Signalleitungen. Dadurch lassen sich zahlreiche dedizierte Interfaces interoperabel spezifizieren. So kann SMARC ein extrem breites Angebot an dedizierten ARM- und SoC-Prozessoren unterstützen, was auch der Heterogenität der ARM-Prozessoren entgegenkommt.
Direkt entwickeln
Direkt zur Ratifizierung des SMARC-Standards stehen erste Produktlinien zur Verfügung. OEMs können auf ein breites Angebot an COMs und Evalutionboards zurückgreifen. Auswählen kann man derzeit SMARC-Modul-Familien mit ARM-Cortex-A8- oder -A9-Designs. Das Angebot reicht dabei von Modulen mit dem grafikstarken Nvidia-Tegra-3-Prozessor über Freescales besonders breit skalierbare i.MX6-Familie mit Single-, Dual- und Quadcore-Prozessoren bis hin zum Ultra-Low-Power-Sitara AM3874 von Texas Instruments. Zwar steht eine Auswahl an Evalutionboards zur Verfügung, für eine konkrete Applikation wird aber in der Regel ein individuelles Carrierboard benötigt. Ein solches Board-Design können OEMs selber entwickeln. Alternativ bieten die meisten Zulieferer aber auch die Entwicklung der applikationsspezifischen Carrierboards an. Bei größeren Stückzahlen kann es auch sinnvoll sein das Modul mit dem Carrier zu einem Full-Custom-Design zu verschmelzen.
Software gewinnt an Bedeutung
Die Hardware stellt aber nur einen Teil einer Anwendung dar. Ebenso wichtig ist das Softwareangebot. Aufgrund der dedizierten Auslegung der ARM-Prozessoren und der damit einhergehenden engeren Verknüpfung von Hard- und Software benötigen Entwickler auch einen dedizierten Software-Support - zumal die neuen Prozessoren für einen Teil der Applikationen auch eine vollkommen neue Prozessorarchitektur darstellen. Für die softwareseitige Applikationsentwicklung kommt es dabei vor allem darauf an, welche Betriebssysteme und Hardwarekonfigurationen unterstützt werden. Dabei lässt sich für den Einsatz in mobilen und kleinen Anwendungen ein Anforderungsprofil definieren: Gefragt sind in erster Linie schlanke, auf den Bedarf kompilierbare Betriebssysteme mit einem kleinen Speicher-Footprint. Interessant sind vor allem Linux, das auf Linux basierende Android sowie Windows Embedded Compact 7. Für Echtzeit-Anwendungen eignen sich VxWorks inklusive Hypervisor, QNX und Greenhills. Dabei unterscheidet sich das Vorgehen beim Betriebssystem zwischen X86er-Plattformen und ARM-SoCs deutlich. Während sich Treiber bei einer X86er-Architektur auch nach Installation des Betriebssystems noch einbinden lassen, muss man bei der ARM-Technologie bereits im Bootloader durch Einbindung und Anpassung der Treiber die Voraussetzung schaffen, die dedizierte Prozessorplattform sowie die erforderliche Peripherie zu unterstützen. Daher ergibt sich für Board Support Packages ein deutlich höherer Stellenwert und Implementierungsaufwand als bei x86er-Designs. Binden OEMs über das Carrierboard zusätzliche Komponenten mit ein, die nicht zur Standard-Ausstattung für diese Prozessoren zählen, müssen deren Treiber auch mit in den Bootloader integriert werden. Damit sind also ein umfassender Treiber-Support und Treiber-Entwicklung ein absolutes Muss für ARM-basierte Module. Damit gewinnen Softwareservices auf Seiten der Hardwarehersteller deutlich an Bedeutung. Kunden sollten daher darauf achten, dass die Softwareabteilung des Embedded-Hardware-Herstellers schlagkräftig genug ist, diese Services auch anbieten zu können. Ein herstellerunabhängiger Standard für ARM-SoCs ist eine logische Reaktion auf die stetig steigende Nachfrage nach diesen Prozessoren für Embedded-Anwendungen. Die schnelle Umsetzung durch die SGET zeigt zudem, wie schlagkräftig das neue Gremium auch schon nach kurzer Zeit ist. Mit SMARC lassen sich dabei nicht nur mobile Anwendungen schneller entwickeln, auch viele stationäre Applikationen werden von den hocheffizienten Modulen profitieren.