Introdotte da parecchi anni, le specifiche USB (Universal Serial Bus) descrivono un’infrastruttura semplice ed economica che permette di collegare numerose periferiche a un personal computer. Al giorno d’oggi USB è divenuto lo standard di riferimento per la connessione di I/O: si calcola infatti che sono presenti oltre 500 milioni di periferiche dotate di porte USB. Lo standard USB ha trovato largo impiego anche in applicazioni diverse da quelle “classiche” del mondo PC, essendo utilizzato per il collegamento di I/O in un numero sempre maggiore di dispositivi portatili e palmari. Da non dimenticare, inoltre, il fatto che parecchi dispositivi, tradizionalmente impiegati come periferiche, ora richiedono il collegamento diretto con altri dispositivi.
Il limite maggiore del bus USB, ovvero la mancanza di supporto per la comunicazione punto-punto tra i dispositivi – ne ha impedito l’uso nelle apparecchiature elettroniche destinate al mercato consumer, come ad esempio telefoni cellulari e PDA. Dispositivi di questo tipo, sempre più diffusi e “intelligenti”, devono ora poter “parlare” tra di loro. La risposta a questa esigenza ha ora un nome: USB OTG (USB on-The-Go), un’estensione delle specifiche USB che elimina la necessità di utilizzare un PC che agisca come host nelle operazioni di scambio di dati tra dispositivi collegati.
Scopo di USB OTG è “arricchire” le funzionalità di alcune periferiche USB al fine di permettere loro di funzionare come host per un insieme selezionato di periferiche. Le specifiche OTG introducono il concetto di comunicazione punto-punto tra queste periferiche USB avanzate.
La complessità delle specifiche OTG deriva dai requisiti che le periferiche che svolgono un doppio ruolo devono soddisfare per poter scambiare direttamente i dati le une con le altre. Inoltre, poiché l’estensione OTG è stata espressamente ideata per l’utilizzo in dispositivi portatili, ove esistono vincoli molto severi per quel che concerne i consumi, l’host OTG deve assorbire una piccola quantità di potenza.
Due dispositivi connessi possono funzionare sia come host del bus sia come periferica, in modo da conservare l’attuale modello architetturale host USB/periferica. L’host OTG dà sempre inizio alla comunicazione con un normale processo di enumerazione del bus (reset del bus, acquisizione dei descrittori USB, configurazione della periferica). Dopo queste operazioni, il dispositivo che funge da host OTG può eseguire il trasferimento dati da/verso un dispositivo OTG che agisce come periferica. Le specifiche OTG definiscono un meccanismo per lo scambio dei ruoli dell’host e della periferica: il ruolo iniziale di ogni dispositivo viene definito dal tipo di spina che l’utente inserisce nella presa. Esistono due tipi di dispositivi OTG: dispositivi che possono assumere un doppio ruolo (dual-role devices) e dispositivi che possono agire solamente come periferiche. Un dispositivo del primo tipo può, ovviamente, funzionare come una periferica o host OTG e deve fornire una corrente di almeno 8 mA a VBUS (a questo punto è bene ricordare che VBUS è uno dei 4 conduttori presenti all’interno di un cavo USB). Un dispositivo del secondo tipo non può invece funzionare da host, anche se deve essere in grado di richiede a un dispositivo con doppia funzionalità di dialogare con lui. I dispositivi a doppia funzionalità devono operare come minimo a full-speed (12 Mbps) mentre il funzionamento ad high speed (480 Mbps) è opzionale: per contro i dispositivi OTG che funzionano solo da periferica devono supportare tutte e tre le velocità previste dallo standard USB.
I dispositivi OTG a doppia funzionalità supportano solamente un sottoinsieme di tutti i dispositivi USB (potenzialmente uno solo). I dispositivi supportati possono essere altri esemplari del medesimo dispositivo, altri tipi di dispositivi a doppia funzionalità, come pure periferiche USB alimentate esternamente (self-powered) che il dispositivo a doppia funzionalità è in grado di alimentare. Il dispositivo a doppia funzionalità deve essere fornito dei driver per i dispositivi supportati. Per esempio una telecamera OTG può avere un drive per una stampante specifica o per un certo insieme di stampanti: in questo caso l’utente potrà stampare le immagini acquisite con la telecamera solo utilizzando la stampante – o l’insieme di stampanti – specificate (e non da una qualsiasi stampante dotata di porta USB). I venditori dei dispositivi a doppia funzionalità devono quindi mettere a disposizione i driver per tutti i dispositivi supportati.
Cavi e connettori
Le specifiche USB 2.0 definiscono tre tipi di coppie di connettori (spina e presa): standard-A; standard-B e mini-B. Quest’ultimo è stato espressamente concepito per periferiche di ridotte dimensioni, come ad esempio i telefonini. Poiché il lavoro di stesura delle specifiche OTG è stato avviato prima del completamento di quelle relative al connettore mini-B, è stato aggiunto il pin ID alla spina, che è stato quindi lasciato scollegato nella presa mini-B.
Nell’estensione OTG è prevista un’ulteriore spina, mini-A e due nuove prese, definite mini-A e mini-AB. Queste le principali differenze. In primo luogo ogni spina è provvista di chiave (keyed), in modo da impedire che la spina mini-A venga innestata nella presa mini-B e che la spina mini-B venga inserita nella presa mini-A: la presa mini-AB, invece, può accettare una spina mina-A oppure mini-B. In secondo luogo il pin di identificazione (ID) della spina mini-A è cortocircuitato a massa. La forma dello stampo delle due spine è differente: la spina mini-A ha una forma più ovaleggiante, mentre la spina mini-B ha una forma più quadrata. Da ultimo, la plastica all’interno delle spine e delle prese ha una codifica a colori.
Le specifiche USB 2.0 definiscono invece due tipi di cavi: da standard A a standard B e da standard A a mini-B. Nelle specifiche OTG sono previsti due altri tipi di cavi: da mini-A a standard B e da mini-A a mini-B. Il ritardo da un’estremità all’altra di quest’ultimo cavo è stato ridotto per consentire l’impiego di adattatori all’estremità A del cavo.
Gli adattatori sono necessari per consentire il collegamento tra diverse combinazioni di dispositivi. Per esempio il collegamento tra un dispositivo USB con un cavo e una spina standard-A a un dispositivo OTG a doppia funzionalità richiede un adattatore da presa A a spina mini-A.
Nel momento in cui si collegano due dispositivi a doppia funzionalità non sussistono problemi di sorta.