Controllare i sistemi embedded con Android

SISTEMI OPERATIVI –

Le piattaforme di computing basate sul sistema operativo Android stanno diventando sempre più diffuse e rappresentano un’interessante soluzione per le applicazioni di controllo.

Android è un sistema operativo basato su Linux ormai estremamente diffuso, soprattutto su piattaforme di computing portatili come gli smartphone e i tablet Pc. Il processor core di riferimento è Arm, e quindi il sistema operativo è ottimizzato per questo tipo di achitettura di computing. Android viene continuamente aggiornato con nuove funzionalità attraverso una successione di release; la prima versione è stata rilasciata nel 2008 e attualmente siamo alla versione 4.x. Peculiarità principale di Android è di essere un sistema operativo open source ed essere basato su kernel Linux. Entrambe queste caratteristiche rendono questo sistema operativo particolarmente attrattivo per gli sviluppatori e comunque e molto adatto come sistema operativo di sistemi embedded. La connettività ai dispositivi Android è uno degli aspetti più importanti che interessano gli sviluppatori che vogliono utilizzare questa piattaforma per le applicazioni di controllo. A differenza delle piattaforme Pc convenzionali, dotate di connettori e driver, i dispositivi mobili, in particolare i tablet, non dispongono di tali risorse utili alla connettività, soprattutto per ragioni di embedding molto spinto. Molte piattaforme Android attualmente vengono fornite con porte Usb di tipo Otg (On The Go). Queste consentono alla stessa porta di essere Usb host o Usb device. La porta host consente a un particolare dispositivo che si connette di richiedere l'istallazione di un driver specifico. Ciò implica però problemi di violazione del sistema istallato dal produttore, cosa non desiderabile per un dispositivo in garanzia. Dalla versione 3.1 denominata Honeycomb, è stata resa disponibile una nuova modalità chiamata Android Open Accessory Mode . Questa modalità semplifica notevolmente la modalità di connessione di accessori alla piattaforma Android, senza violare l'istallazione originaria e senza pesare sull'alimentazione del dispositivo Android stesso.

L'Open Accessory Mode
La modalità di connessione di hardware accessorio, chiamata Open Accessory Mode, consente di collegare a una piattaforma Android una periferica. La piattaforma Android si comporta come Usb device, mentre la periferica si comporta come Usb host. Questa è una modalità che capovolge completamente la logica della connessione tra piattaforma di computing e accessorio (periferica) che ha sempre concesso il ruolo di master al computer e slave alla periferica. In modalità inversa, cioè quella prevista dallo standard Open Accessory, si ottengono tre fondamentali vantaggi:
- non è necessario sviluppare driver per l'hardware da connettere;
- non è necessario alterare i permessi per il caricamento dei driver (conseguenza del punto precedente);
- l'alimentazione per l'utilizzo della porta viene fornito dal dispositivo stesso, quindi questo non sottrae carica alla piattaforma Android.
Se, sia la piattaforma Android che il dispositivo da connettere supportano la modalità Open Accessory, allora la connessione tra i due sistemi avviene seguendo i passi previsti da questa modalità. È dunque prevista una modalità di interrogazione da parte del dispositivo da connettere. Questo, prima di eseguire qualsiasi azione logica o fisica, invia con il comando Get_Protocol. Se la piattaforma a questa richiesta risponde no, termina la connessione. In caso positivo, disponendo del protocollo Open Accessory, stabilisce la connessione e il dispositivo invia il suo descrittore (unico) che lo identifica e inizia la comunicazione a piena velocità (12 Mbit/s) su Usb. Quando l'applicazione deve connettersi all'hardware, in modalità Android Open Access Mode non sono necessari driver ma solo un set di stringhe descrittori interpretabili da Android. Alla connessione dell'hardware alla piattaforma Android, l'applicazione si auto attiva utilizzando proprio queste stringhe che consistono delle seguenti informazioni: produttore, modello e versione della periferica, altre informazioni opzionali, numero di serie.
Le applicazioni possono essere di tipo data consuming oppure data producing. Android ha abbastanza capacità e funzionalità per gestire periferiche che producono dati in formato grezzo da elaborare sulla piattaforma, per esempio quelli catturati dai sensori. In maniera simmetrica sulla piattaforma Andrioid l'applicazione può produrre dati che servono invece a controllare l'hardware esterno, per esempio un braccio di robot. I dispositivi con Android non sono dunque semplici telefoni ma piattaforme di computing a cui può essere aggiunto hardware esterno utilizzando la modalità Open Accessory Mode senza lo sviluppo di driver e senza essere penalizzati dal consumo di potenza elettrica (l'hardware esterno si alimenta autonomamente). A questa possibilità e potenzialità applicativa delle piattaforme Android operante in modalità Open Accessory Mode, guardano con interesse diversi produttori. Tra questi c'è Future Technology Devices International, particolarmente attivo in questo senso con la sua tecnologia microelettronica orientata al supporto Usb.

Supporto di Android Open Accessories Initiative
FTDI è impegnata a supportare Android Open Accessory Initiative attraverso la realizzazione di sistemi integrati compatibili con tablet e smartphone, utilizzando il diffusissimo sistema operativo Android e la Open Accessory Mode. FTDI, essendo focalizzata sulla realizzazione di dispositivi integrati per supportare le applicazioni Usb, in particolare il controller Vinculum II (Dual USB host/device controller) e la scheda di prototipazione a basso costo Vinco, ritiene questa modalità aperta di accesso un'importante opportunità per gli sviluppatori di sistemi embedded, che permette di creare applicazioni innovative basate sulla piattaforma Android, sfruttando tutti i vantaggi che questo sistema open source offre. FTDI ha dimostrato come il controller VNC2 può abilitare la modalità Open Accessory Mode sui dispositivi Android e trasferire dati da e verso il dispositivo Android, via Usb (integrata in VNC2). Per esempio, i driver VNC2 per Open Accessory Mode vengono caricati su VNC2 e le applicazioni vi accedono girando sulla piattaforma Android. Lo smartphone o il tablet target che esegue Android (versione 3.1 o superiore) viene connesso all'hardware basato su VNC2, questo riconosce il sistema Android, lo interroga per sapere se supporta Open Accessory Mode, abilita tale modalità e quindi stabilisce la connessione con il dispositivo. Stabilita la connessione Usb, l'applicazione che viene eseguita sulla piattaforma Android è in grado di accedere e controllare la funzionalità dell'hardware ad essa connesso.

Pubblica i tuoi commenti