Développement d’un système embarqué architecturé sur Android
Avec la contribution de Electronic Products
2014-03-12
La plateforme d'architecture ouverte Android a réussi à capter la plus grande part du marché des smartphones. Soutenu et acquis par Google en 2005, le système d'exploitation Android est utilisé dans des millions de téléphones et de tablettes depuis son apparition en 2007, et il est destiné à étendre sa portée avec l'émergence des solutions embarquées avec « Internet des objets ».
L'un des facteurs clés accélérant l'acceptation d'Android est l'alliance Open Handset Alliance, qui définit le matériel, les logiciels et les télécommunications par le biais de normes ouvertes. L'interface utilisateur relativement intuitive du système d'exploitation Android contribue également à son succès, en tirant parti des fonctions gestuelles et tactiles pour offrir une interaction de haut niveau avec les utilisateurs. De plus, la reconnaissance vocale, les multiples liaisons de communications flexibles, l'affichage haute-définition et les modules de caméras offrant une résolution excédant la norme constituent quelques-unes des fonctionnalités renforçant les atouts des produits Android.
Quel impact cela a-t-il sur les concepteurs d'équipements et de systèmes d'interface utilisateur ? Cet article s'intéresse aux éléments d'une conception Android et aborde les approches techniques, les ressources, les outils et les conceptions de référence disponibles pour vous aider à développer du matériel Android primaire ou d'extension. Tous les composants, outils de développement, formations et autres ressources référencés ici sont disponibles sur le site Web de DigiKey.
Source libre contre source protégée
La bataille entre source protégée et source libre fait rage depuis plusieurs générations. Une source protégée signifie que seul un petit groupe d'innovateurs peut créer, étant donné que les licences et ressources de développement impliquent un plus grand engagement de la part des concepteurs. Une source libre, ou open-source, permet à tous de développer des produits sous une structure maîtresse, généralement gratuitement ou à très faible coût. Les produits à source protégée semblent souvent mieux fonctionner dès le départ car (en principe) il existe une équipe plus structurée en arrière-plan.
Toutefois, il ne faut pas nier que le faible coût, les interfaces utilisateur et les affichages attractifs, et la diversité des applications ont dynamisé les ventes Android bien au-delà de celles de ses plus grands concurrents, l'iPhone et l'iPad d'Apple. Des fabricants tels que Samsung avec ses produits Galaxy et une profusion de sociétés non traditionnelles, notamment Barnes and Noble et Amazon, proposent des versions différentes d'Android intégrées avec de nombreuses fonctionnalités et applications.
Cela a deux implications. D'une part, nous pouvons concevoir notre matériel personnalisé en tant qu'extension à faible coût sur Android OEM, et utiliser le système Android pour l'affichage, la liaison de communications et l'interface utilisateur. Alternativement, nous pouvons concevoir un système Android embarqué reliant étroitement notre matériel dédié ou nos systèmes propriétaires et tirant un meilleur parti des ressources open-source, indépendamment du matériel, ce qui offre plus d'indépendance lors du choix de nos tablettes OEM, cartes, modules et processeurs nouvelle génération, du moment qu'ils sont conformes aux exigences Android.
Conditions requises
À mesure que les capacités et les fonctionnalités évoluent, les conditions minimales requises changent. Les conceptions Android modernes requièrent la puissance d'une architecture x86, MIPS ou ARM7 32 bits, avec au moins 512 Mo de mémoire RAM. Les processeurs doivent être capables d'exécuter un schéma de gestion mémoire gardant les processus ouverts, mais pouvant être suspendus pour économiser l'énergie.
Il s'agit d'une lourde tâche. Ce n'est pas chose facile de compter sur un seul processeur, même fonctionnant à 1 GHz, pour gérer et diriger les nombreuses fonctions sensibles en temps réel et souvent simultanées, comme le traitement graphique, les accéléromètres et d'autres capteurs, les écrans tactiles capacitifs projetés pouvant reconnaître les gestes, les caméras vidéo, USB, GPS, Wi-Fi, Bluetooth, et E/S audio, pour ne citer que quelques exemples.
Lors du développement d'une plateforme matérielle compatible Android, il faut d'abord s'intéresser aux fabricants de puces offrant des processeurs ARM, MIPS ou X86 pouvant prendre en charge et exécuter le système d'exploitation Linux sur lequel repose le comportement Android. Il faut toutefois garder en tête que des processeurs et coprocesseurs dédiés intégrés plus petits existent également et qu'ils peuvent décharger de nombreux processus exigeant de l'attention et des ressources.
Prenons l'exemple du contrôleur de liaisons de communications et énumérateur Android USB dédié FT311D-32L1C-R de FTDI. Appelé circuit intégré hôte Android USB, il est spécifiquement conçu pour permettre l'accès matériel périphérique dans un système Android via USB.
Le mode Android OAM (Open Accessory Mode, sur OS 3.1 et supérieur) permet à des dispositifs externes avec matériel USB d'interagir dans un mode accessoire spécial. La puissance du dispositif externe est utilisée de manière à ce que la tablette ou le smartphone n'ait pas à fournir les 500 mA requis pour USB en tant que contrôleur côté hôte. Dans ce mode, aucun pilote, logiciel ou temps système n'est requis sur la machine Android.
Le FT311D compact à 32 broches gère la séquence d'énumération USB complète et prend en charge le mode Android OAM en tant que coprocesseur indépendant (Figure 1).

Figure 1 : En déchargeant les responsabilités du mode OAM (Open Accessory Mode), le coprocesseur gère toutes les énumérations et ré-énumérations sans recourir à des pilotes ou à des temps systèmes du processeur Android.
Prenant en charge USB 2.0 12 MHz, il peut soulager le processeur principal en le déchargeant de toutes ses responsabilités USB, particulièrement à la connexion de ses périphériques à USB. FTDI offre un module de formation sur les solutions à interface Android sur le site Web de DigiKey.
Microchip, le créateur du processeur PIC, prend également en charge la plateforme Arduino populaire. Microchip propose son kit de développement d'accessoires DM240415 basé sur les processeurs PIC24F et conçu pour le développement Android. Ce kit offre également une approche de coprocesseur dédié pour décharger les fonctions et liaisons stratégiques, telles que le transfert de données, depuis et vers un dispositif Android via un microcontrôleur ou USB avec OAM.
Le kit de développement d'accessoires DM240415 libre de droits, sans licence offre un débogueur, une alimentation et des logiciels intégrés prenant en charge les bibliothèques graphiques, les piles IrDA, les piles USB, le système de fichiers Flash, le logiciel tactile capacitif, la pile TCP/IP, et le support Wi-Fi personnel MiWi. Pour l'interfaçage de matériel personnalisé avec un système Android, la carte doit être dotée de huit DEL d'état, d'un potentiomètre et de boutons d'interface utilisateur pour aider en tant que carte de test et développement d'application. Un schéma de référence[1] est fourni, de même qu'une conception de référence de tablette. Le pilote Android client est implémenté en tant que couche au-dessus de la pile hôte PIC USB (Figure 2).

Figure 2 : Le logiciel libre de droits pour mode Android OAM fourni par Microchip s'installe sur la pile USB en ajoutant le pilote Android client.
FTDI et Microchip offrent un support de développement pour leurs dispositifs, mais des tierces parties fournissent également de l'assistance. Embedded Artists propose une démo open-source et une carte de développement avec son kit Android Open Accessory Application EA-APP-001. Suivant le schéma de distribution de gestion des tâches de processeur divisé, il utilise deux coprocesseurs : le LPC1769 de NXP Semiconductors, un dispositif ARM® Cortex™-M3 32 bits 120 MHz haut de gamme combiné au LPC11C24 de NXP, un composant ARM Cortex-M0 50 MHz 32 bits plus petit pour distribuer les tâches de traitement de plus haut et plus bas niveaux en flux opérationnels parallèles.
Le côté LPC1769 peut prendre en charge 10/100 Ethernet, CAN, ZigBee (NXP Jennic), et des tâches série. Le côté LPC11C24 partage une interconnexion CAN, mais gère également le développement matériel et l'interfaçage des capteurs avec ses DEL RVB, ses boutons-poussoirs, et ses capteurs de température et de lumière. Il peut également tester le développement d'activation basse consommation par le biais de l'une de ses E/S basse consommation (PIO1_4).
Le mode d'alimentation de chargeur constitue une fonctionnalité intéressante. En plus d'une source d'alimentation alternative de 5 V, l'interface de chargeur USB tire la puissance de l'unité testée (Figure 3). Une zone de prototypage est disponible pour vous permettre l'accès à des signaux de données USB et au mode OAM via les chargeurs. Un chargeur peut ensuite automatiquement synchroniser des images et de la musique via le Wi-Fi pendant la charge. Le module de formation sur la série LPC1700 est disponible en complément du module de formation sur la densité de code LPC11xx de NXP.

Figure 3 : Les coprocesseurs doubles peuvent distribuer des tâches et des périphériques Android associés, et agir en tant que plateforme pour le développement d'extensions matérielles Android.
Fonctionnement
En plus du développement de périphériques et du support OAM, des conceptions de référence et des systèmes de niveau carte, ainsi que des kits de développement exécutant des processeurs de type gigahertz haut de gamme pour les principales applications Android sont disponibles. Prenons l'exemple de la carte A13-OLINUXINO-MICRO architecturée sur ARM Cortex-A8 1 GHz d'Olimex pour développement Android basé sur Linux. Reposant sur le système sur puce Allwinner, il s'agit de l'une des cartes de processeur de classe gigahertz OLinuXino basées sur plusieurs processeurs (A8, A13, MX233, et plus) que vous pouvez utiliser pour le contrôle haut de gamme (Figure 4).

Figure 4 : La plateforme de développement Android Linux hautement intégrée d'Olimex, basée sur Allwinner A13, utilise la technologie de système sur puce (SoC) pour offrir de hautes performances, une basse consommation et une compatibilité Android.
À ces vitesses, les processeurs monocœur ou multicœur peuvent absorber toutes les surcharges des différentes fonctions périphériques et gérer directement des tâches aux données/processus intensifs telles que Flash NAND, DDR RAM, cartes SD, graphiques 3D, USB, et plus encore.
Olimex présente également une carte Linux ARM Cortex-A8 1 GHz A10S-OLINUXINO-MICRO, qui est un micro-ordinateur monocarte Android/Linux open-source. Cette carte inclut un support USB 2.0 et des graphiques HDMI, et prend en charge une résolution VGA TFT. Elle fournit également 50 lignes d'E/S pour aider au développement de vos propres interfaces et matériels natifs.
Globalement, le bloc de processeur Android peut être comparé à un processeur embarqué nouvelle génération avec un jeu standardisé de périphériques, de fonctions, de caractéristiques et de code open-source. Ses options de conception et ses performances haut niveau permettent aux systèmes Android de constituer une nouvelle interface utilisateur largement adoptée pour les fabricants d'équipements, ce qui ouvre la voie aux systèmes Android OEM en tant que composants de valeur pour les concepteurs.
Pour plus d'informations sur les composants abordés dans cet article, cliquez sur les liens fournis pour accéder aux pages produits du site Web de DigiKey.
Références
Avertissement : les opinions, convictions et points de vue exprimés par les divers auteurs et/ou participants au forum sur ce site Web ne reflètent pas nécessairement ceux de DigiKey ni les politiques officielles de la société.

