Eckdaten
Die ARM-Architektur eignet sich sehr gut, um anspruchsvolle Designaufgaben in den verschiedensten Anwendungsgebieten mit und ohne Display umzusetzen. Für den Kunden stellen sich im Vorfeld mehrere Fragen: Auf welche Eigenschaften und Anforderungen ist bei der Modulauswahl zu achten? Welche Vor- und Nachteile bieten die einzelnen Standards und welche Marktrends sind bei Hard- und Software zu erkennen?
Bei ARM-basierenden CPUs verschiedener Hersteller sind viele Schnittstellen wie Grafik, Ethernet, CAN, ADCs, I²C, SPI und digitale IOs bereits in der CPU integriert. Aufgrund dieser Vielseitigkeit der Schnittstellen lassen sich die meisten Systemanforderungen ohne großen Zusatzaufwand umsetzen. Jede CPU unterscheidet sich jedoch noch in Leistungsfähigkeit und Anzahl der bereitgestellten Schnittstellen. Hinzu kommen unterschiedliche Speichertechnologien von RAM und Flash, die an eine CPU angeschlossen und verwendet werden können. Ganz zu schweigen von den physikalischen Unterschieden der Schnittstellen, wie diese in den CPUs verschiedener Core-Architekturen unterschiedlichster Prozessorhersteller integriert wurden. Dem nicht genug, kommt bei den ARM-basierenden CPUs noch ein komplexes Pin-Multiplexing hinzu, das den Anwender vor weitere Herausforderungen beim Design eines Embedded-Systems auf Basis eines ARM-basierenden Rechenkerns stellt.
Bei dieser Menge an Eigenschaften, die bei einem Design berücksichtigt werden müssen, stellen sich immer mehr Unternehmen die Frage, ob es sich lohnt, ein Design für eine Steuerung inklusive des Rechnerkerns komplett selber zu entwickeln oder auf Embedded-Komponenten und -Module zu setzen. Die Entwicklungszeit verlängert sich immer mehr. Gründe dafür sind eine komplexer werdende Technik bei den CPU-Designs, getrieben durch die höhere Leistungsfähigkeit des Cores, schneller werdende Speicherinterfaces und sehr schnelle Kommunikationsschnittstellen wie PCIe Gen 2, SATA, USB3.0 und bis zu 10 Gigabit Ethernet. Weitere Faktoren, die bei einer Bewertung berücksichtigt werden sollten, ob eine Eigenentwicklung oder der Einsatz eines Moduls auf lange Sicht effektiver wäre, sind Risiko, Produktpflege und die gegebenenfalls höheren Gesamtkosten, die sich aufgrund der hohen Komplexität des Designs ergeben. Auf dem Embedded-Markt ist klar zu beobachten, dass sich immer mehr Unternehmen auf ihre Kernkompetenz konzentrieren, die im Bereich Anwendungs- und Mainboard-Entwicklung liegt. Sie entscheiden sich deshalb beim Rechnerkern für ein Embedded-Modul.
Grundlegende Kriterien
Bei der Auswahl eines geeigneten Moduls sind einige grundlegende Kriterien zu beachten. Als erstes geht es um die ideale Architektur für die angedachte Anwendung. Rechenleistung, Grafikperformance, Schnittstellen, Software, Langzeitverfügbarkeit und Preisvorstellungen sind wichtige Kriterien, um zu entscheiden, welche Architektur die optimale Lösung bietet.
Natürlich müssen hier noch weitere Anforderungen berücksichtigt werden. Insbesondere sind es sicherheitskritische Aspekte, die in einigen Anwendungen zu betrachten sind. Diese lassen sich meist über ein geeignetes Betriebssystem abdecken oder durch immer mehr Hardwarebeschleuniger, die von CPU-Herstellern integriert werden. Vorkehrungen, die getroffen werden müssen, um eine Fehlbedienung oder eine Fehlfunktion des Systems sicherzustellen, können bei ARM-Prozessoren über einen in der CPU integrierten CO-Prozessor abgedeckt werden. Dieser läuft mit einer eigenen Firmware oder einem Echtzeitbetriebssystem unabhängig vom Hauptprozessor und genügt somit den allermeisten Anforderungen.
Durch die Schnittstellenvielfalt und die freie Auswahl eines Betriebssystems sind ARM-basierende Prozessoren sehr universell einsetzbar. Ergänzend zur Hardware ist das zu verwendende Betriebssystem unter Berücksichtigung der zu erfüllenden Kriterien ein sehr wichtiger Faktor, der bei der Evaluierung einer CPU und eines Embedded-Moduls betrachtet werden muss.
ARM-Prozessoren unterstützen einige Betriebssysteme. Dazu gehören lizenzfreie Operating-Systeme (OS) wie zum Beispiel Linux, MQX von NXP oder Netbios von Texas Instruments. Linux hat sich bei ARM-basierenden Anwendungen im Bereich der Embedded-Systeme mit zirka 80 Prozent als Spitzenreiter durchgesetzt. Bei den kommerziellen Betriebssystemen wie Windows Embedded, QNX, VxWorks oder Integrity geht der Trend leicht Richtung QNX. Android, das ursprünglich als das ultimative Betriebssystem auch für industrielle Anwendungen prophezeit wurde, wird so gut wie nicht mehr nachgefragt. Embedded Windows ist bei den meisten neuen CPUs so gut wie nicht mehr zu finden.
Grafikfähigkeit der ARM-Prozessoren
Getrieben durch die gute und immer besser werdende Applikationsunterstützung der CPU-Hersteller für verschiedenste Applikationen in unterschiedlichen Marktsegmenten ist zu beobachten, dass immer mehr Geräte auf Basis dieser Architektur entwickelt werden. Ein maßgebendes Leistungsmerkmal ist auch die Grafikfähigkeit der ARM-Prozessoren, die es ermöglichen, ein Display direkt an eine der Grafikschnittstellen anzuschließen.
Bei der Umsetzung von Grafik-basierenden Systemen gibt es unterschiedliche Anforderungen. Es wird zwischen verschiedenen Bedienkonzepten unterschieden. Systeme, bei denen die grafische Oberfläche sehr einfach gehalten wird, lassen sich mit einer energiesparenden CPU mit einem Grafikkontroller ohne Hardwarebeschleunigung realisieren. Komplexere und aufwendige Darstellungen erfordern mehr Rechenleistung, was viele CPU-Hersteller über eine Grafik-Prozessor-Unit (GPU) abdecken. Embedded-Prozessoren der neueren ARM-Generation können mittlerweile Displays mit bis zu 4K Auflösung treiben. Verfügbare Encoding- und Decoding-Einheiten unterstützen bei der Aufnahme und dem Abspielen grafischer Daten.
Visualisierung und Darstellung
Ein GUI (Graphical User Interface), auch Benutzeroberfläche genannt, sorgt für die notwendige Visualisierung und Darstellung der Applikation. Es gibt proprietäre Oberflächen und Betriebssystem-eigene. Eine weit verbreitete und zugleich vom OS unabhängige Oberfläche bietet QT oder Storyboard von Crank. Diese GUIs können, gleichgültig ob Linux oder QNX, in Abhängigkeit der Anforderungen zum Einsatz kommen. Es zeichnet sich ab, dass immer mehr Kunden Storyboard einsetzen, da diese GUI ein energiesparendes und innovatives Bedienkonzept verspricht.
Passend zum GUI und der gewünschten Bedienbarkeit muss auch die notwendige Touch-Technologie unterstützt werden. Die etablierte Technologie ist mittlerweile der PCT (Projected Capacitive Touch). Je nach Hersteller und dessen Treiberunterstützung für das jeweilig eingesetzte Betriebssystem lassen sich in Abhängigkeit des GUIs auch Multitouch-Anwendungen realisieren. Hier ist es besonders wichtig, bei der Auswahl darauf zu achten, dass sich diese für die gewünschte Systemfunktionalität auch eignet. Touchsysteme müssen passend zur Applikation charakterisiert werden. Anzahl Finger, Umgebungsbedingungen und Betriebsmodi sind wichtige zu definierende Eigenschaften. Ein wesentlicher Faktor ist hier die bereits vorhandene Softwareunterstützung der CPU oder eines CPU-Moduls. CPU-Module bieten oft den Vorteil, dass die BSP-Unterstützung gegenüber dem vom CPU-Hersteller zur Verfügung gestellten BSPs besser ist. Somit reduziert sich die notwendige Investition bei der Betriebssystementwicklung. Die Softwareunterstützung kann je nach Modulanbieter unterschiedlich ausfallen.
Langfristige Verfügbarkeit
Produktqualität, Robustheit und eine langfristige Verfügbarkeit sind maßgebliche Faktoren, die auf lange Sicht hin betrachtet werden sollten. Ein momentan funktionierendes Design kann auch erst nach einiger Zeit, im ungünstigsten Fall erst nach der gesetzlichen Gewährleistung, ausfallen. Um einem finanziellen Schaden oder Imageverlust vorzubeugen, ist zu empfehlen, ein Produkt einzusetzen, das ausreichend qualifiziert wurde. Auf diese Faktoren hat auch das eingesetzte Stecksystem einen großen Einfluss. Bei der Übertragung der Signale muss sichergestellt werden, dass über den Lebenszeitraum eines Moduls die Kontaktsicherheit gegeben ist. Vibration, Schock und eine hohe Luftfeuchtigkeit beeinflussen die Robustheit. Bei extremen Bedingungen empfiehlt es sich, eine Baugruppe zu lackieren. Werden BGAs verwendet, ist bei einer Lackierung ein Underfill unumgänglich.
Es ist zu beobachten, dass immer mehr Embedded-Module ohne Steckverbinder auf den Markt kommen. Verlötet werden diese dann direkt mit dem Motherboard. Dies bringt nicht nur einen Vorteil bei Zuverlässigkeit der Kontaktierung, sondern auch einen Preisvorteil gegenüber Modulen mit Stecksystem. Wird ein Modul direkt mit dem Mainboard verlötet, muss in die Betrachtung mit einbezogen werden, wie sich die Ausdehnung der Leiterplatte des Mainboards zu der des Moduls verhält. Unter ungünstigen Bedingungen können Lötverbindungen brechen, zu Kontaktproblemen und somit zum Ausfall eines Systems führen. Auch bei den Standards ist zu bewerten, ob die Kontaktierung für den Einsatz im anstehenden Projekt geeignet ist.
Angepasst und nachgebessert
Im Bereich x86 haben sich Standards aufgrund der nur wenig veränderten Peripheriestruktur schon lange auf dem Markt durchgesetzt. Standards wie COM-Express, Qseven und auch immer mehr Smarc scheinen den x86-Markt sogar zu dominieren. Auch im Bereich ARM werden immer mehr Module in Form von Standards angeboten. Wer sich etwas näher damit beschäftigt, wird erkennen, dass diese Standards schon mehrfach angepasst beziehungsweise nachgebessert wurden. Dies war notwendig, um den Markt- und Kundenanforderungen besser entsprechen zu können. Einige Änderungen wurden auch bezüglich der von den CPUs zur Verfügung stehenden Schnittstellen durchgeführt, damit diese innerhalb eines Standards ebenfalls berücksichtigt werden können.
Meist fragen Kunden, die ein Embedded-Modul einsetzen möchten, nach einem Standard. Grund dafür kann eine Second Source sein oder die Möglichkeit, ein Performance-Upgrade eines Gerätes oder einer Maschine durchführen zu können. Bei der Auswahl eines ARM-Moduls sollte berücksichtigt werden, dass es auf einem Standard entwickelt worden ist, der auch mit anderen Modulen unterschiedlicher Hersteller kompatibel und somit austauschbar ist. Smarc 1.1 zum Beispiel ist nicht austauschbar und kompatibel mit einem Smarc-2.0-Modul. ARM-basierende Prozessoren haben gegenüber den x86-CPUs ein Pin-Multiplexing, das die Realisierung eines wirklichen Standards und dessen Kompatibilität noch erschwert, da nicht jeder Modul-Entwickler dieselbe Pin-Konfiguration wählt. ARM-basierende Prozessoren haben gegenüber den x86-Architekturen eine größere und flexiblere Schnittstellenvielfalt. Da Standards eine vordefinierte Schnittstellenbelegung haben, ist zu prüfen, ob alle benötigten Anforderungen abgedeckt werden.
TQ-Systems folgt dem Markttrend und entwickelt auf Basis des i.MX8 von NXP sowohl Standardmodule auf Basis von Smarc 2.0 als auch ein Modul, bei dem wie gewohnt 100 Prozent der Signalpins dem Anwender zur Verfügung stehen. Über diese Standards hinaus bietet TQ sowohl proprietäre Module als auch die LGA-Technik zur direkten Verlötung auf Mainboards an. Die Entwicklungsprozesse sind so ausgerichtet, dass diese höchste Zuverlässigkeit und eine lange Lebensdauer ermöglichen.
Weitere Trends, die derzeit den Markt bestimmen, sind IoT und Industrie 4.0. Daraus resultiert die Anforderung, dass auf Daten überall und jederzeit zugegriffen werden kann. Das Ganze soll zudem noch sicher vor Angriffen oder Missbrauch geschützt sein. Das erfordert jedoch zunehmende Rechenleistung und eine unerwünscht höhere Verlustleistung. Mittlerweile gibt es Datenbanken, die diesen Anforderungen nachkommen, auch für kleine Rechenkerne, die im Bereich ARM zu finden sind: Bei wenig Rechenleistung werden alle benötigten Informationen für Anwender und berechtigte Nutzer bereitgehalten.
Im Internet der Dinge erzeugen Sensorgeräte ein unermessliches Datenvolumen, das über unzählige dezentrale Netzwerke verteilt wird. Während ein Großteil dieser Daten an zentralisierte Cloud-Services gesendet wird, werden Router, Gateways (edge devices) ermächtigt, Daten für lokale Analysen und Abfragen zu speichern und zu verwalten. Das Verlassen auf Back-End- oder Cloud-Services würde die Menge an Informationen, die erfasst werden kann, einschränken und ernsthafte Sicherheitsrisiken darstellen.
Rohdaten komprimieren
Bei nicht so leistungsstarken Embedded-Systemen komprimiert eine SQL-Datenbank die Rohdaten in aussagefähige Informationen. Durch die Identifizierung von wiederkehrenden Informationen und das Vergleichen von bestimmten Mustern über verschiedene Datenquellen hinweg kann ein Embedded-System intelligente Entscheidungen treffen und hilfreiche Vorschläge für das Bereithalten der Informationen geben. Datenbank-Indizes sorgen dafür, dass Daten mit gleichbleibender Leistung und ohne Overhead verarbeitet werden können, unabhängig davon, welches Datenvolumen auf jedem einzelnen Gerät aufgezeichnet wird. Datenbank-Transaktionen schützen die Daten zur gleichen Zeit und verhindern eine Korruption nach unerwartetem Systemausfall. Eine SQL-Datenbank ermöglicht es durch ein Multitasking-Verfahren, mehrere Zugriffe gleichzeitig durchzuführen. Eine einzelne Datenbankdatei wird dabei sicher und effizient geteilt.
Erprobte Bibliothekslösung
Anwender sollten möglichst kein kundenspezifisches Datenmanagement-Framework implementieren, da dies meist sehr kostspielig werden kann und zudem oft nicht das gewünschte Ergebnis bringt. Hier ist ein Marktrend zu erkennen, dass die Anforderungen bevorzugt über eine gut gestützte und bereits vom Hersteller erprobte Bibliothekslösung realisiert werden. Diese bietet eine einfache Entwicklung und Wartbarkeit in Verbindung mit einem Embedded-ARM-Modul. Wenn Entwickler bei einer Systemrealisierung auf ein TQ-Modul mit bereits angepasster ITTIA-SQL-Datenbank-Lösung setzen, können sie sich vor allem auf ihre Applikationsentwicklung konzentrieren und sich auf einen Lösungsbaustein verlassen, um die beste Datenmanagement-Konfiguration für die geplanten Anwendung zu erhalten.
Der immer schnelllebigere Markt hat schon viele Trends kommen und gehen gesehen. Standards wurden als die allumfassende Lösung am Markt angepriesen. ARM-Module wurden zu einem Hype und die Anwendungsgebiete dehnten sich in allen Markt-Segmenten aus. Umso wichtiger ist es, einen zuverlässigen Partner auszuwählen, der zum einen eine langjährige Design- und Markterfahrung hat und seine Kunden bei den unterschiedlichsten Anforderungen und Problemlösungen unterstützen kann. Auch ist es empfehlenswert, zu erkennen, ob ein Embedded-Systemanbieter gemeinsam mit seinen Kunden immer wiederkehrende Wirtschaftskrisen und Allokationszeiten übersteht.
(ah)