Embedded Systeme / ARM-Spezifikationen
Macht eine Standardisierung überhaupt Sinn
Mit den Prozessoren Cortex-A8 und Cortex-A9 hat die Firma ARM einen Hype ausgelöst: Aufgrund ihrer spezifischen Leistung und geringen Chipfläche werden diese Prozessor-Cores für viele Anwendungen interessant, in denen bisher x86-Prozessoren zu Hause sind. Das ruft die Anbieter von CPU-Boards auf den Plan, die mit Spezifikationen wie COM-ULP und Q7 die Kompatibilität von Modulen realisieren wollen. Aber macht das bei ARM überhaupt Sinn?
Bislang sind bei Low-end-ARM-Prozessoren wie ARM9 und ARM11 die Funktionen der unterschiedlichen Chipanbieter wie Freescale, Samsung und NXP sehr applikationsspezifisch und unterscheiden sich deutlich hinsichtlich der Signale und Pin-Belegungen. Deshalb war an eine Standardisierung bislang überhaupt nicht zu denken. Dies ändert sich gerade mit den Cortex-Architekturen A8 und A9: Die High-end-ARM-Prozessoren sind im Hinblick auf ihre Funktionen einem PC-Chip immer ähnlicher und die Unterschiede zwischen den einzelnen Anbietern immer geringer. Damit ist die Basis für eine Standardisierung gegeben, wie sie derzeit die Q7-Initiative und die Firma Kontron mit ULP-COM (Ultra-Low-Power Computer-on-Modules) vo-rantreiben. Die Motivation der Anbieter ist dabei grundsätzlich verschieden: ULP-COM definiert einen neuen Formfaktor während der Q7-Ansatz auf eine Austausch-Kompatibilität mit bestehenden Q7-Lösungen mit x86-Prozessoren setzt.
x86-Kompatibilität um jeden Preis – Q7 für ARM?
Im Vergleich der beiden Standardisierungs-Initiativen mit einer proprietären Lösung zeigen sich einige Unterschiede bei Modulgröße, Steckverbinder und den Signalen, welche die Lösungen zur Verfügung stellen.
Um die Austauschbarkeit mit anderen Q7-Boards zu ermöglichen, definiert die ARM-Spezifikation für Q7 im Wesentlichen die PC-Schnittstellen. Es sind demnach nicht die speziellen Cortex-A8- und Cortex-A9-Funktionen, zum Beispiel Kamera-Interface, HDMI, direkte LCD-Ansteuerung und eMMC, die hier adressiert werden. Vielmehr steht die deutlich geringere Leistungsaufnahme eines Q7-Moduls mit ARM Cortex-A8/-A9 im Vordergrund – bei ähnlicher Performance und Funktionalität wie bei einem entsprechenden x86-COM. Von den insgesamt 230 Pins des Q7-Steckverbinders stehen 177 Pins für Signale zur Verfügung, die restlichen 53 Pins werden für die Versorgung benötigt. Abhängig vom Prozessortyp (A8 oder A9) lassen sich aufgrund der zu geringen Pinzahl des Q7-Steckers jedoch nicht alle in der Spezifikation definierten Funktionen realisieren. Zu den im Standard definierten maximal verfügbaren Funktionen zählen: 4 × PCI-Express-Lanes, 1 × Gigabit-Ethernet, 8 × USB, 1 × CAN-Bus, 1 × I²C, 1 × SPI, 1 × LPC-Bus, 2 × SATA, 1 × SDIO (8 Bit), 2 × Express-Card, HDA/AC’97, Dual-Channel LVDS (24 bit), Display-Port sowie diverse Power- und Modul-Management-Pins. Ein Q7-Modul, das zum Beispiel mit einem Prozessor Freescale Cortex-A8 i.MX53 bestückt ist, kann nur rund 100 Signale auf das Baseboard herausführen; die restlichen gut 170 Signale des Prozessors stehen in der Anwendung nicht zur Verfügung. Umgekehrt unterstützt der Prozessor nicht die in der Q7-Spezifikation definierten 4 PCI-Express-Lanes, LPC-Bus, Express-Card, Display-Port, SM-Bus. Außerdem stellt der Prozessor lediglich zwei USB- und ein SATA-Interface sowie nur Fast-Ethernet bereit. Die Konsequenz: Viele Steckerpins der Q7-Spezifikation und CPU-Funktionen bleiben unbenutzt. Entscheidend ist also immer die Frage, welcher ARM-Prozessor auf einem Q7-Modul Sinn macht.
ULP-Spezifikation hält Abstand zu COM-Express und x86
Einen grundsätzlich anderen Ansatz verfolgt ULP-COM: Das System setzt stärker auf die spezifischen Funktionen der ARM-Prozessoren und strebt keine direkte Austauschbarkeit mit x86-Pendants wie COM-Express an. Abhängig von der Anwendung kommt also hier ein ULP-COM- (ARM) oder ein COM-Express-Modul (x86) zum Einsatz.
Ohne Kompromisse geht es nicht: Keiner der drei Formfaktoren stellt genügend Signalpins zur Verfügung, um alle Schnittstellen eines i.MX53-Prozessors (Cortex A8) auf das Baseboard routen zu können.
© TQ-GroupCOM-Express kommt immer dann zum Tragen, wenn die Applikation viele USB-Schnittstellen und einige PCI-Express-Lanes benötigt. Sind unterschiedlichste Display-Typen, serielle Schnittstellen und zum Beispiel eine Kamera-Schnittstelle notwendig, erweist sich eine ARM-Lösung als besserer Ansatz. Das ULP-COM System versucht einen möglichst großen gemeinsamen Nenner der ARM-Prozessoren unterschiedlichster Hersteller als Standard festzulegen. Aber auch hier gilt: Abhängig vom Prozessor-Typ werden nicht alle Funktionen realisiert. Die 314 Pins des ULP-Steckers teilen sich auf 257 Signalpins und 57 Versorgungspins auf. Zu den maximalen Funktionen zählen: 3 × PCI-Express-Lanes, 1 × Gigabit-Ethernet, 3 × USB-Ports, 4 × Seriell, 2 × CAN-Bus, 5 × I²C, 2 × SPI, 1 × SATA, 1 × 4 Bit SDIO, 1 × 8 Bit eMMC, I²S/HDA, Single-Channel LVDS (18/24 Bit), LCD (24 Bit Parallel), HDMI, 1 × SPDIF, 2 × Kamera-Schnittstelle, GPIO sowie diverse Power- und Modul-Management-Pins. Somit stehen auch bei dieser Spezifikation nicht alle Prozessorsignale am Stecker zur Verfügung und einige im Standard definierten Signale unterstützt der Prozessor nicht. Bei der Bestückung eines ULP-Boards mit einem Freescale-i.MX53-Prozessor (Cortex-A8) stehen von den etwa 270 Signalpins des Prozessors nur rund 170 Signale am ULP-COM-Stecker zur Verfügung. Nicht unterstützt werden drei PCI Express-Lanes, HDMI-Grafik, nur zwei anstatt der drei möglichen USB-Ports, drei von vier seriellen Schnittstellen und drei von fünf der maximal realisierbaren I²C-Schnittstellen.
Ein proprietäres System, wie das Cortex-A8-Modul TQMa53 der Firma TQ, kann den Prozessor nahezu optimal abbilden, das heißt mit fast allen Funktionen. Im Idealfall hat das Modul eine minimale Größe und stellt alle Signale des Prozessors am Stecker zur Verfügung. Dies lässt sich aufgrund von Preisvorgaben der Kunden aber nicht immer realisieren. Das robuste Stecksystem mit 240 Pins des genannten Moduls, stellt rund 180 Signale von 270 zur Verfügung. Nicht unterstützt werden zum Beispiel das eMMC-Interface, das zweite Parallel-LCD und einige GPIOs.
Ein optimales, proprietäres Modul für den Cortex-A8-Prozessor von Freescale, das alle Signale zur Verfügung stellt, be-nötigt rund 320 Pins, was aufgrund der Steckerabmessungen zu einer Boardgröße von mindestens 56 mm × 50 mm führt.
Bisher galt bei x86-Embedded-Modulen der Grundsatz, den Austausch der CPU-Module zu ermöglichen. Die zwei wesentlichen Argumente die dahinter stehen sind:
■ Eine langfristige Liefersicherheit, da mehrere Anbieter den gleichen Modultyp fertigen und bei Ausfall des Lieferanten einspringen können.
■ Die mögliche Skalierbarkeit des Systems bei steigenden Performance-Anforderungen.
Austausch-Kompatibilität: oft nachgefragt, kaum genutzt
In der Realität sind Anwender jedoch in erster Linie an einer langfristigen Liefersicherheit interessiert. Die ist bei einem etablierten Unternehmen aber auch ohne Zweitanbieter gegeben. Selbst das zweite Argument punktet in der Praxis selten: Eine Skalierbarkeit ist bei den standardisierten COM-Express-Boards in aller Regel möglich, verlangt jedoch meistens darüber hinaus eine Anpassung des Applikationsboards. Realistisch betrachtet wird die Skalierbarkeit nicht wirklich genutzt.
ARM-Formfaktoren im Vergleich: Das Q7-Konzept (links) setzt auf Einbaukompatibilität zu vorhandenen Q7-Applikationen, ULP-COM (Mitte) auf geringe Abmessungen. Das TQ-Modul ist auf minimalen Platzbedarf bei einer umfassenden Unterstützung des jeweiligen ARM-Prozessors ausgelegt, das TQMa53-Modul zum Beispiel auf den Freescale-Prozessor Cortex-A8 i.MX53.
© TQ-GroupEine ARM9-basierende Applikation sieht sicher völlig anders aus als eine ARM-Cortex-A9-Anwendung. Die Behauptung von Anbietern, wenn ein entsprechendes ARM9-Modul nicht mehr lieferbar ist, könne der Kunde aufgrund des so genannten Hersteller-Standards beispielsweise auf ein Cortex-A8-Modul wechseln, hört sich gut an, ist aber ebenso in der Regel nicht ohne Anpassungen umzusetzen. Meist fährt man besser, das Applikationsboard den neuen Anforderungen anzupassen und zu optimieren. Und dann kann praktisch wieder jede Prozessor-Plattform eingesetzt werden.
Viel wichtiger ist dagegen die Frage: Steht die Applikation im Vordergrund oder der eingesetzte Prozessor? Da die Kosten im Wesentlichen bei der Programmierung entstehen, ist es wichtiger, stets den gleichen Prozessor einzusetzen, um die ein-mal getätigten Investitionen in Software weiterhin zu nutzen.
Steht der Prozessor mehr im Vordergrund, sollte das Modul auch auf den jeweiligen Prozessortyp optimiert sein. Dann kann der Kunde alle Interfaces und Funktionen nutzen und hat die maximale Flexibilität.
Welches System letztlich für einen Anwender in Frage kommt, ist immer eine ganz individuelle Entscheidung: Spielt die Größe eine wesentliche Rolle und sind die Funktionen des spezifischen Prozessors wichtig, haben proprietäre Systeme Vo-rteile. Stehen die mechanischen Anforderungen wie Schock und Vibration im Vordergrund, muss auch das Steckersystem bei der Auswahl berücksichtigt werden. Wird bislang ein Q7-oder COM-Express-Modul benutzt und soll das neue System lediglich weniger Strom verbrauchen, können die entsprechenden ARM-Boards die richtige Wahl sein. Generell muss man sich darüber im Klaren sein: Ein direkter Austausch zwischen existierenden x86- und ARM-Lösungen ist ohne entsprechende Anpassungen nicht möglich. Und bei einem Wechsel wird in aller Regel das Applikationsboard überarbeitet. Ergo ist es nicht so entscheidend, eine mechanische Austauschbarkeit zu haben.
Autor: Wolfgang Heinz-Fischer ist Marketingleiter bei der TQ-Group in Seefeld.












