Entwicklung eines Embedded-Systems auf Android-Basis
Zur Verfügung gestellt von Electronic Products
2014-03-12
Die Android-Plattform mit ihrer offenen Architektur hat sich zu einem unglaublichen Erfolg entwickelt und konnte den größten Anteil auf dem Smartphone-Markt erobern. Das von Google unterstützte und im Jahr 2005 erworbene Android-Betriebssystem läuft seit seiner Einführung im Jahr 2007 mittlerweile auf mehr als einer Milliarde Telefonen und Tablets, und es wird erwartet, dass sich sein Erfolg angesichts des gerade entstehenden „Internets der Dinge“ weiter ausdehnen wird.
Einer der Hauptfaktoren für die enorme Akzeptanz von Android ist die Open Handset Alliance (OHA), ein Konsortium, das für eine optimale Definition von Hardware, Software und Telekommunikation durch offene Standards sorgt. Ebenfalls hilfreich für den Erfolg des Android-OS ist seine relativ intuitive Benutzeroberfläche, bei der die Berührungs- und Gestensteuerung eine neue Ebene der Verknüpfung zwischen Geräten und Anwendern ermöglicht. Darüber hinaus zählen eine verbesserte Spracherkennung, unterschiedlichste und flexible Kommunikationsanbindungen, leuchtende hochauflösende Displays und Kameramodule mit einer weit über den Standard hinausgehenden Auflösung zu den zahlreichen Features, die zum Erfolg von Produkten auf Android-Basis beitragen.
Was bedeutet das für die Entwickler von Ausrüstung und Benutzerschnittstellensystemen? Dieser Artikel befasst sich mit den Elementen eines Android-Designs und stellt die technischen Ansätze, Ressourcen, Tools und Referenzdesigns vor, die Ihnen bei der Entwicklung von primärer und/oder Add-on-Hardware auf Android-Basis zur Verfügung stehen. Sämtliche Bauteile, Entwicklungstools, Schulungen und andere Ressourcen, auf die dieser Artikel verweist, sind auf der DigiKey-Website verfügbar.
Open Source kontra Closed Source
Die Schlacht zwischen diesen beiden Konzepten wird nun schon von mehreren Generationen von Entwicklern ausgetragen. Closed Source bedeutet, dass nur eine kleine Gruppe von innovativen Köpfen damit beauftragt wird, etwas zu schaffen, und die Entwicklungsressourcen und Lizenzen stellen hier fast schon ein Zugeständnis an die Entwickler dar. Bei Open Source kann jeder an der Produktentwicklung mitwirken – innerhalb eines vorgegebenen Rahmens, der zumeist kostenlos oder sehr preisgünstig ist. Closed-Source-Produkte funktionieren scheinbar besser bereits bei ihrer Markteinführung. Das liegt daran, dass hier (im Normalfall) ein disziplinierteres Team am Werk war.
Es lässt sich jedoch nicht leugnen, das die geringen Kosten, die sexy Bildschirme und Benutzeroberflächen und die große Vielfalt an Apps den Android-Umsatz weit über den von iPhones und iPads von Apple – was der nächste Wettbewerber ist – katapultiert haben. Hersteller wie Samsung mit seinen Produkten aus der Galaxy-Familie und eine ganze Reihe von nicht traditionellen Hardware-Firmen wie Barnes & Noble und Amazon bieten inzwischen die unterschiedlichsten Varianten von Android in Verbindung mit zahlreichen Features und Apps an.
Das bedeutet zweierlei. Zum einen: Wir können unsere kundenspezifische Hardware als ein preisgünstiges Add-on für eine Android-OEM-Version entwickeln und das Android-System für unser Display, unsere Kommunikationsanbindung und unsere Benutzeroberfläche nutzen. Und andererseits können wir ein eingebettetes Android-System entwickeln, das unsere dedizierte Hardware oder unsere proprietären Systeme eng miteinander verknüpft und die Vorteile von Open-Source-Ressourcen besser nutzt und dabei gleichzeitig hardwareunabhängig wird, was uns die Unabhängigkeit bei der Auswahl unserer Prozessoren, Module, Platinen oder OEM-Tablets der nächsten Generation sichert, so lange sie den Android-Anforderungen entsprechen.
Was notwendig ist
Angesichts immer besserer Möglichkeiten und Features werden sich auch die Mindestanforderungen verändern. Moderne Android-Designs benötigen mindestens die Leistung einer 32-Bit-ARM7-, MIPS- oder x86-Architektur und mindestens 512 MByte an RAM. Die Prozessoren müssen in der Lage sein, mit dem Speicherverwaltungsschema zu arbeiten, das dafür sorgt, dass die Prozesse geöffnet bleiben, sie aber zur Energieeinsparung auch in den Suspend-Modus versetzen kann.
Hier gibt es noch eine Menge zu tun. Denn es ist für einen einzelnen Prozessor – selbst bei einer 1-GHz-Taktung – keine einfache Aufgabe, die zahlreichen echtzeitempfindlichen und oftmals überlappenden Funktionen zu verwalten und zu steuern, zu denen neben vielen anderen die Grafikverarbeitung, Beschleunigungsmesser und andere Sensoren, Projected-Capacitance-Touchscreens zur Gestenerkennung, Videokameras, USB, GPS, Wi-Fi, Bluetooth und Audio-E/A zählen.
Bei der Entwicklung eines Android-kompatiblen Hardware-Plattformdesigns müssen Sie sich zuerst die Chiphersteller ansehen, deren ARM-, MIPS- oder X86-Prozessoren das Linus-gestützte Betriebssystem unterstützen und ausführen können, das Android zugrunde liegt. Allerdings sollten Sie dabei im Hinterkopf behalten, dass es neben den High-End-Prozessoren der Gigahertz-Klasse auch kleinere, integrierte und dedizierte Prozessoren und Coprozessoren gibt, von denen viele die Prozesse übernehmen werden können, die sich um Aufmerksamkeit und Ressourcen rangeln.
Nehmen wir beispielsweise den dedizierten USB-Android-Enumerator und Kommunikationslink-Controller FTDI FT311D-32L1C-R. Dieser auch als USB-Android-Host-IC bezeichnete Baustein wurde speziell entwickelt, um den peripheren Hardware-Zugriff innerhalb eines Android-Systems über USB zu ermöglichen.
Der Android Open Accessory Mode (OAM, auf OS 3.1 und höher) gestattet externen Geräten mit USB-Hardware die Interaktion in einem speziellen Zubehörmodus. Die Stromversorgung stammt dabei aus dem externen Gerät, sodass das Tablet bzw. das Smartphone nicht die 500 mA bereitstellen müssen, die von USB für einen hostseitigen Controller gefordert werden. In diesem Modus wird auf dem Android-Rechner keinerlei Treiber, Software oder Overhead benötigt.
Der relativ kleine 32-polige FT311D übernimmt die gesamte USB-Enumerationssequenz und unterstützt den Android Open Accessory Mode als ein unabhängiger Coprozessor (Abbildung 1).

Abbildung 1: Durch die Auslagerung der Zuständigkeiten des Open Accessory Mode verarbeitet der Coprozessor alle Zählungen und Neuzählungen ohne irgendwelche Treiber oder zusätzlichen Aufwand vom Android-Prozessor.
Dank seiner Unterstützung von USB 2.0 12 MHz kann er den Hauptprozessor entlasten, indem er ihm alle USB-orientierten Verantwortlichkeiten abnimmt, vor allem beim Anschluss seiner Peripherie an USB. Von FTDI wird auch ein Produktschulungsmodul für Android-Schnittstellenlösungen angeboten, das auf der DigiKey-Website erhältlich ist.
Microchip, Hersteller des PIC-Prozessors, unterstützt auch die populäre Arduino-Plattform. Speziell im Hinblick auf die Android-Entwicklung bietet Microchip sein DM240415 Starterkit für die Entwicklung von Android-Zubehör an, das auf PIC24F-Prozessoren basiert. Es ermöglicht gleichzeitig einen Ansatz mit dediziertem Coprozessor zur Entlastung kritischer Verbindungen und Funktionen wie Datenübertragung zu und von einem Android-System über einen Mikrocontroller oder USB im Hinblick auf OAM.
Das ohne Lizenzgebühren erhältliche DM240415 Starterkit für die Entwicklung von Android-Zubehör bietet einen eingebetteten Debugger, Stromversorgung und Software mit Unterstützung von Grafikbibliotheken, IrDA-Stacks, USB-Stacks, Flash-Speicher-Dateisystem, kapazitive Touch-Software, TCP/IP-Stack und die persönliche Wi-Fi-Unterstützung MiWi. Zum Anschließen von kundenspezifischer Hardware an ein Android-System ist die Platine auch mit acht Status-LEDs und Benutzerschnittstellentasten ausgestattet, die beim Einsatz des Boards zur Anwendungsentwicklung und -erprobung hilfreich sind. Ein Referenzschema [1] ist ebenso enthalten wie ein Referenzdesign für Tablets. Der Android-Client-Treiber ist in einer Schicht über dem PIC USB-Host-Stack implementiert (Abbildung 2).

Abbildung 2: Die lizenzfreie Software für den Android-OAM-Modus von Microchip baut auf seinem USB-Stack durch Hinzufügen eines Android-Client-Treibers auf.
Sowohl FTDI als auch Microchip bieten Entwicklungsunterstützung für ihre Bausteine an, die Entwicklungsunterstützung kann jedoch auch über Drittanbieter bezogen werden. Embedded Artists bietet eine Open-Source-Demo- und Entwicklungskarte im Rahmen seines EA-APP-001 Android Open Accessory-Anwendungskits an. Unter Verwendung desselben Schemas zur Verteilung der Aufgabenverwaltung unter mehreren Prozessoren nutzt sie zwei Coprozessoren – den NXP Semiconductors LPC1769, einen Higher-End-32-Bit-120 MHz-ARM® Cortex™-M3-Baustein in Kombination mit dem LPC11C24 von NXP, ein kleinerer 50-MHz-32-Bit-ARM Cortex-M0-Baustein –, um die Verarbeitungsaufgaben der höheren und niedrigeren Ebene auf parallele Betriebsströme zu verteilen.
Die LPC1769-Seite kann 10/100 Ethernet, CAN, ZigBee (NXP Jennic) und serielle Aufgaben unterstützen. Die LPC11C24-Seite stellt ein CAN-Verbindungsnetz zur Verfügung, verwaltet aber auch die Hardware-Entwicklung und die Sensorverbindung mithilfe ihrer RGB-LEDs, Drucktasten und Temperatur- und Lichtsensoren. Über einen ihrer Low-Power-I/Os (PIO 1_4) kann sie auch die Low-Power-Wakeup-Entwicklung testen.
Eine schöne Funktion ist der Ladegerät-Durchleitungsmodus. Neben einer alternativen 5-V-Stromversorgung bezieht die Ladegerätschnittstelle in USB-Bauweise die Energie von dem getesteten Gerät (Abbildung 3). Ein Prototyping-Bereich, der Ihnen den Zugriff auf die USB-Datensignale ermöglicht, und der OAM-Modus über die Ladegeräte sind verfügbar. Ein Ladegerät kann dann automatisch Bilder und Musik über Wi-Fi synchronisieren, während es lädt. Das Produktschulungsmodul zur LPC1700-Serie von NXP ist zusammen mit dem Produktschulungsmodul zur LPC11xx-Code-Dichte von NXP erhältlich.

Abbildung 3: Dual-Koprozessoren können Android-assoziierte Peripheriegeräte und Aufgaben verteilen sowie als Plattform für die Android-Hardware-Add-on-Entwicklung dienen.
Zur Leistung geboren
Zusätzlich zur Peripherieentwicklung und der OAM-Unterstützung sind Systeme auf Platinenebene und Referenzdesigns sowie Entwicklungskits erhältlich, die High-End-Gigahertz-Prozessoren für die wichtigsten Android-Anwendungen nutzen. Werfen Sie einen Blick auf die ARM Cortex-A8-basierte 1 GHz Olimex A13-OLINUXINO-MICRO-Platine für die Linux-basierte Android-Entwicklung. Sie basiert auf dem Allwinner-SoC und ist eine der OLinuXino-Prozessorplatinen der Gigahertz-Klasse, die auf verschiedenen Prozessoren (A8, A13, MX233 und anderen) basiert, die Sie zur Higher-End-Steuerung einsetzen können (Abbildung 4).

Abbildung 4: Die hochintegrierte Olimex-Linux-Android-Entwicklungsplattform, basierend auf der Grundlage der Allwinner A13, verwendet die SoC-Technologie, um hohe Leistung, geringen Stromverbrauch und Android-freundliche Kompatibilität zu gewährleisten.
Bei diesen Geschwindigkeiten können Single- und Multi-Core-Prozessoren den gesamten Overhead der verschiedenen Peripheriefunktionen absorbieren und daten- und/oder prozessintensive Aufgaben wie NAND-Flash. DDR RAM, SD-Karten, 3D-Grafik, USB und mehr übernehmen.
Olimex bietet auch eine auf dem 1 GHz ARM Cortex-A8 basierende A10S-OLINUXINO-MICRO-Linux-Karte, bei der es sich um einen Open-Source-Einplatinen-Android/Linux-Minicomputer handelt. Diese Karte bietet USB 2.0-Unterstützung und HDMI-Grafik und unterstützt die VGA TFT-Auflösung. Darüber hinaus bietet sie 50 I/O-Leitungen zur Unterstützung der Entwicklung Ihrer eigenen nativen Hardware und Schnittstellen.
Insgesamt kann der Android-Prozessorblock als ein eingebetteter Prozessor der nächsten Generation mit einem standardisierten Satz an Peripherie, Funktionen, Features und Open-Source-Code gesehen werden. Dank seiner qualitativ hochwertigen Leistungs- und Design-Optionen können Android-Systeme zu einer neuen und umfassend genutzten Benutzeroberfläche für Gerätehersteller werden, und das eröffnet die Möglichkeit, dass OEM-Android-Systeme zu einer wertvollen Komponente für Embedded-Designer werden.
Weitere Informationen zu den in diesem Artikel beschriebenen Produkten finden Sie über die bereitgestellten Links zu den Produktseiten auf der DigiKey-Website.
Referenzen
Haftungsausschluss: Die Meinungen, Überzeugungen und Standpunkte der verschiedenen Autoren und/oder Forumsteilnehmer dieser Website spiegeln nicht notwendigerweise die Meinungen, Überzeugungen und Standpunkte der DigiKey oder offiziellen Politik der DigiKey wider.

