USB dalla A alla C: l’evoluzione del bus più contemporaneo

Universal Serial Bus, meglio noto come USB, soprattutto agli utenti finali, è un bus di comunicazione seriale molto semplice e oramai tanto diffuso da essere presente praticamente in qualsiasi apparato elettronico che necessita di una connettività cablata ed anche di veicolare l’alimentazione necessaria al funzionamento e alla ricarica delle eventuali batterie. L’affermazione di questo link si deve sia alla velocità di comunicazione che permette, sia alla modalità plug & play (che permette ai computer e in generale agli host di identificare i dispositivi connessi alle porte) e alla possibilità di affacciare su un bus fino a 127 dispositivi slave.
Proprio la diffusione, dovuta ai punti di forza, ha spinto a mantenere, dopo anni, e ad evolvere adattandolo alle crescenti esigenze della tecnologia, il bus USB, che è passato dalla sua prima implementazione fino all’attuale USB Type-C, che possiamo considerare lo stato dell’arte e che in realtà è divenuta qualcosa di più di una USB, perché è una connessione fisica ospitante più protocolli.
Nel frattempo la connessione USB, nata a bordo dei Personal Computer, è sbarcata sui dispositivi mobili ed è approdata all’automobile, dove ormai è indispensabile strumento di connettività per applicazioni di car entertainment e non solo.
In questo articolo riepiloghiamo le caratteristiche dell’USB, percorrendone le tappe dell’evoluzione e concentrandoci poi sull’USB Type-C.

Tecnologia dell’USB

Prima di tracciare la cronistoria dell’USB è opportuno un rapido richiamo all’aspetto puramente elettronico del bus, il quale è composto da due linee, chiamate D+ e D-, che costituiscono il canale dati bidirezionale; la connessione riporta anche l’alimentazione a 5Vcc, che serve per alimentare i Device con il dispositivo Host, secondo le specifiche del protocollo. Proprio in virtù della presenza dell’alimentazione, l’USB è diventato anche uno standard di alimentazione, tanto che il relativo connettore viene adottato persino negli alimentatori e nei caricabatterie, talvolta per veicolare i soli 5 volt.
Il connettore di base ha dunque 4 poli (questo vale per l’USB A e il B) ma nell’evoluzione USB 3 ne conta 8, giacché trasporta due canali dati invece di uno (allo scopo di accrescere la velocità di comunicazione) e il doppio della corrente. Esistono poi le connessioni microUSB, che oltre ad essere miniaturizzate contano due piedini in più uno dei quali permette di comunicare all’Host se deve utilizzare una periferica come Device o meno, ovvero che attiva la porta USB in modalità Host.
Per inciso, Host e Device sono le due modalità previste dall’USB, cioè i due modi in cui un dispositivo USB può funzionare: Host è l’unità master, ossia quella che governa la comunicazione, mentre Device è il dispositivo puro e semplice, ossia una periferica, che viene gestita dall’Host, il quale avvia la comunicazione con essa. Inoltre a un Host possono essere collegati più Device, perché può indirizzarli, mentre un Device si collega a un solo Host.
La distanza tra gli apparati connessi in USB dipende dalla qualità del cavo, ma tipicamente è contenuta in 5 metri, almeno se si vuole sfruttare il massimo data-rate, specialmente nelle USB 2.x.
La Fig. 1 schematizza il concetto, proponendo un confronto tra versioni di USB e rispettive connessioni elettriche.

Fig. 1

USB: origini e sviluppi

Quando nacque, l’USB aveva la connessione standard a quattro linee rimasta fino alla revisione 2 e forniva una velocità di comunicazione relativamente bassa, che non superava i 40 Mbps: ci riferiamo alla versione 1.0, che peraltro non fu mai utilizzata realmente, perché rimase in laboratorio fino allo sviluppo della USB 1.1, prima implementazione su apparati reali, capace di un data-rate di 60 Mbps, corrispondenti a circa 8 MB/s, che possono spingersi fino a 12 Mbps. L’interfaccia Host erogava fino a 500 milliampere disponibili per alimentare Device come periferiche HID, memorie di massa ecc.
La più rilevante evoluzione fu l’USB 2.0, che portò il data-rate a 480 Mbps (60 MB/s) mantenendo la stessa connessione e la corrente di uscita, che però nelle release successive crebbe fino ad 1 ampere, arrivando anche ai 2.
Altra caratteristica dell’USB 2.x è che nelle connessioni con connettore microUSB e relativo cablaggio supporta la modalità OTG, ossia USB On The Go: questo significa che portando a massa un pin del connettore microUSB, che ha 5 poli invece dei classici quattro, il dispositivo mobile che dispone della porta (tipicamente un tablet o uno smartphone) può comportarsi come Host invece che da Device, quindi gestire dei dispositivi di memoria di massa come le Pen Drive USB. Infatti mentre nei Personal Computer e nei TV dotati di supporto alle memorie di massa la porta USB è un Host, nei dispositivi mobile come tablet e smartphone (o anche cellulari e strumenti dotati di microUSB) la USB è di tipo Device e viene utilizzata per la ricarica della batteria e l’accesso alla memoria interna da parte di un Host quale un Personal Computer.
Mediante un opportuno cavo che connette il pin 4 (Mode Detect) del connettore a massa è quindi possibile convertire il profilo della porta USB del dispositivo da Device a Host.
Venne poi l’USB 3, capace, anche grazie al raddoppio dei canali dati, di raggiungere velocità di comunicazione decuplicate, ossia 4,8 Gbps (corrispondenti a 600 MB/s) utilizzando due coppie intrecciate ad alta velocità; con questa tecnica e il data-rate teorico, la specifica ritiene ragionevole ottenere almeno 3,2 Gbit/s al netto dell’overhead di protocollo (corrispondenti a 400 MB/s). Siamo quindi arrivati all’USB Type-C, che rappresenta lo stato dell’arte.
La Fig. 2 riepiloga le principali caratteristiche e le connessioni delle varie versioni di USB: nella tabella, l’ultima colonna propone, per il confronto tra i data-rate delle varie versioni, il tempo richiesto dal trasferimento di un filmato HD da 25 GB.

Fig. 2

USB Type-C: lo stato dell’arte

Entriamo adesso nel dettaglio dell’USB di tipo C, che riveste molto interesse sia per la velocità di comunicazione che rende possibile, sia per la capacità di alimentare i device ad esso collegati, con potenze anche consistenti.
Sul piano della velocità, questo standard è capace di offrire un transfer-rate 10 Gbit/s (1.250 MB/s) nominali.
La USB tipo C supporta 5 profili di potenza in base alla connessione fisica:
• Profilo 1: 5 V a 2,0 A (10 W);
• Profilo 2: 5 V a 2,0 A (10 W), 12 V a 1,5 A (18 W);
• Profilo 3: 5 V a 2,0 A (10 W), 12 V a 3 A (36 W);
• Profilo 4: 5 V a 2,0 A (10 W), 12 V, 20 V a 3 A
(36 W, 60 W);
• Profilo 5: 5 V a 2,0 A (10 W), 12 V, 20 V a 5 A
(60 W, 100 W).

Altra caratteristica rilevante e innovativa dell’USB Type-C è che non solo consente di scambiare dati a velocità molto elevata e di farlo con una linea full-duplex dedicata e diferente da quella degli standard USB precedenti, ma offre anche compatibilità e link di trasporto fisico configurabili per protocolli dati di vario genere; il tutto in un’unica connessione elettrica.
Con lo standard USB C è stato introdotto il nuovo connettore Tipo C che, oltre ad essere reversibile (come quelli della Apple, per intendersi….) è il primo a supportare i profili a 12 V e 20 V, ma nonostante ciò rimane polarizzato, tramite due serie di pin (A e B); quindi sul lato dell’alimentazione il connettore tipo C introduce due nuovi pin VBUS a 12 V e 20 V. I connettori di tipo A, B e mini B non saranno aggiornati con i pin VBUS 12 e 20 V, ma il connettore tipo A supporterà i 10 Gbit/s.
Nei nuovi dispositivi i connettori di tipo A e C saranno di colore Blu/Acqua se utilizzabili sia per l’alimentazione che per la trasmissione dati, mentre il connettore C sarà di colore nero se utilizzabile soltanto per alimentazione.
Il nuovo connettore tipo C (Fig. 3 a sinistra) prevede due gruppi di 12 pin (12 sopra, 12 sotto) per permettere la reversibilità ma rimanere polarizzato. Oltre a questo prevede i pin dell’USB 2.0 e il supporto all’OTG (On The Go USB) ed MHL; la connettività MHL consente l’interfacciamento alle porte HDMI mediante i due fili MHL+ e MHL- che si attestano ai contatti 2 (D-) e 3 (D+), utilizzando il pin 4 come CBUS collegato all’omonimo della presa HDMI (Fig. 3 a destra).

Fig. 3

I due nuovi pin aggiunti per il VBUS a 12V e 20V, devono essere alimentati tramite un alimentatore esterno perché gli altri connettori USB non prevedono questi PIN.
Quindi, attualmente non è possibile realizzare alimentatori da incasso come con l’USB 2.0, sempre se non si realizza un’appendice per i nuovi pin, in stile PoweredUSB.
Il connettore Type C supporta modalità alternative come DP, HDMI, Thunderbolt ecc.

Fig. 4

La Fig. 4 permette di valutare l’evoluzione della connessione USB relativamente al numero di contatti: come vedete si è passati dai 4 delle USB 1 e 2 agli 8+1 della USB 3.x, fino ad arrivare alla Type-C, che conta più contatti disposti su due file affacciate l’una sull’altra; per l’esattezza sono 12 per fila.

Fig. 5

La Fig. 5 mostra i tipi di connettore più recenti, ossia da quelli dell’USB 2.0 in avanti.
Il connettore maschio Type-C è reversibile, cioè può essere inserito nella presa corrispondente in qualsiasi verso, senza che ciò pregiudichi né l’integrità, né il corretto funzionamento degli apparati.
L’interfaccia USB 3 nelle sue versioni è tuttora molto affermata e si sta diffondendo, come standard di comunicazione, non solo sui computer e dispositivi mobile, ma anche nell’automotive, dove si candida a diventare la connettività d’elezione per l’infotainment (USB 3.1) e il collegamento di unità di memoria di massa e di telefoni, tablet ecc.
Per questo sono in sviluppo evoluzioni della USB 3, vale a dire la USB3.2, capace di un data-rate di 20 Gbps e la USB4.0, che salirà a 40 Gbps (2×20 Gbps); tutte finalizzate al rapido trasferimento di file di grandi dimensioni come quelli video in alta risoluzione.
Le applicazioni presenti e future spaziano inoltre fino a VR Console, Mobile HotSpot, Facial Recognition, Infotainment, VOIP, Electric Whiteboard, STB, Smart TV, iPC, Gateway, ATM Machines, Routers, IOT, POS, Karaoke, Gaming, Kiosks, Charging Stations, Surveillance, Robotics, Imaging.
Tra l’altro la USB Type-C può ospitare, sulla stessa connessione fisica anche lo scambio di dati secondo protocolli differenti da quello nativo, ed è proprio per questo che è molto appetibile e rappresenta una potenzialità per le applicazioni future.
Come mostra la Fig. 6, oltre ai classici D+ (Dp) e D- (Dn) sdoppiati e disposti in modo che qualunque sia il verso d’inserzione del connettore combacino con la presa sul dispositivo, troviamo due linee ad altissima velocità (SuperSpeed Lane 1 e 2), due contatti per l’utilizzo di altri protocolli (SBU 1 e 2), due linee di alimentazione a 5 volt, che servono una per l’alimentazione di piccoli device o “cavi attivi” contenenti, cioè, dell’elettronica, e l’altra per erogare corrente a dispositivi che richiedono potenze più elevate di quanto le USB standard non consentano. Vi sono poi due contatti, chiamati CC1 e CC2, che rappresentano il canale di configurazione del sistema, con il quale è possibile settare alcune modalità di trasporto dei dati.

Fig. 6

Le linee dati ad alta velocità, che sono poi quelle che consentono di raggiungere il data-rate atteso, fanno capo ai due doppini, in particolare per la Lane 1:
• RX1-/RX1+ = doppino differenziale
• TX1-/RX1+ = doppino differenziale

mentre per la Lane 2 i doppini sono:
• RX2-/RX2+ = doppino differenziale
• TX2-/RX2+ = doppino differenziale

Queste due linee consentono la comunicazione full-duplex, aumentando la velocità di scambio dei dati raggiungibile.
La Fig. 7 schematizza alcune modalità di connessione ottenibili sfruttando i molteplici canali dati di cui l’USB Type-C dispone.

Fig. 7

La connessione USB D+/D- tradizionale serve a garantire la retrocompatibilità, ovvero la possibilità di comunicare anche con dispositivi come quelli USB 2.x.
Il supporto ad altri protocolli si ottiene con quella che nello standard USB Type-C viene chiamato
“Alternate Modes” e permette di gestire la comunicazione secondo protocolli di terze parti (Thunderbolt, DisplayPort, HDMI ecc.).
Negli “Alternate Modes” la comunicazione è negoziata utilizzando l’USB PD one-wire serial protocol ed è abilitata mediante l’handshake di protocollo tramite messaggi strutturati definiti dal fornitore (VDM). Le modalità alternative sono associate ai fornitori (ad esempio Tramite VID) o ai gruppi/entità Standard (per esempio Tramite SID).
Chiamiamo la pluralità di VID e SID che possono esistere all’interno di un dispositivo PD: “SVID”.

Alimentazione da USB/USB PD/PD

Come accennato l’USB C permette di erogare potenze consistenti, tuttavia fino a un certo limite la cosa avviene a livello hardware, mentre se si desidera eseguire il source/sink di oltre 15W o avere un ruolo di alimentazione e dati differente, occorre negoziarlo tra DFP e UFP.
Ciò si ottiene con un protocollo seriale “Power Delivery” 1-wire (non su USB). USB PD è ciò che “sblocca” il cavo USB Type-CTM e può consentire di ottenere fino a 100W di potenza per l’alimentazione.
Per fare un confronto basato sulla potenza erogabile tra le varie versioni di USB, proviamo a immaginare di dover ricaricare un accumulatore da 3.500 mAh con la corrente erogabile; nel caso della USB2.0, a 500mA si impiegano 7 ore, che diventano 2,3 potendo erogare 1,5 A se si dispone di una USB2.0 BC1.2.
Impiegando una USB Type-C nelle due precedenti modalità di erogazione di potenza valgono le stesse tempistiche, ma se si negozia la modalità USB2.0 PD @ 12V, dove quindi l’host eroga al device 12 volt invece che 5, la solita batteria da 3.500mAh si può caricare con 3 ampere in soli 36 minuti.
Negoziando la modalità a 20 volt, in modalità USB2.0 PD @ 20V, la batteria si può caricare in appena 13 minuti, erogando 5.000 mAh.
Chiaramente il device dev’essere un USB C e deve poter essere in grado di accettare tali tensioni e convertirle internamente mediante un DC/DC; ciò viene stabilito, appunto, durante la negoziazione. I tempi indicati nei due casi di ricarica con tensione erogata di 12 e 20 volt sono calcolati ipotizzando di non avere perdite nella conversione e si basano sulla potenza trasmessa, che a 12V con 3.000 mA sono 36 watt e a 20V con 5.000 mA, ben 100 W.

HUB USB 3.1

Vediamo adesso come è composto tipicamente un hub USB ed in particolare quello conforme USB 3-1, premettendo che al pari di tutti gli hub USB dall’1.1 in avanti serve a espandere una singola porta Universal Serial Bus in più connessioni così da collegare più device a un host e da alimentarle in parallelo. Notare che l’hub non moltiplica le porte (e nemmeno gli host) ma le connessioni, cioè consente il collegamento di più periferiche ad un unico host; non permette, invece, il collegamento tra host.
La tipica struttura a blocchi dell’hub USB 3.1 è mostrata nella Fig. 8.

Fig. 8

Nel contesto si collocano concetti come DFP (Downstream Facing Port) ossia la porta dell’Host il cui ruolo (cioè la funzione che dovrà assolvere secondo il protocollo) è Source, come può essere nel caso di PC laptop e desktop, console automotive; in pratica il connettore USB eroga corrente all’apparato che vi viene connesso.
Sul piano dell’alimentazione, a questo si contrappone l’UFP (Upstream Facing Port) che è una porta Device (come ad esempio quella di tastiere e mouse, Pen Drive ecc.) il cui ruolo preferenziale è Sink, nel senso che sotto l’aspetto del trasferimento di potenza sono predisposti per assorbire corrente dai pin di alimentazione del connettore USB.
Ebbene, un tipico hub USB contiene sia una UFP che una DFP e chiaramente la prima funziona in modo Sink, mentre la seconda opera in modalità Source.
Esistono tre tipi di hub: Stand Alone, Dock w/Embedded Hub e Monitor w/ Embedded Hub.
Esiste anche una particolare porta chiamata DRP, capace di operare, sul piano dell’alimentazione, in modalità sia Source/DFP che Sink/UFP.
Quando non è connessa, la DRP alterna le modalità Source (DFP) e Sink (UFP) nel tentativo di stabilire una a connessione; questo viene ottenuto da:
• connessione di una Rp (pull-up) a CC1/CC2 quando funziona da Source;
• connessione di una Rd (pull-down) a CC1/CC2 quando è in modo Sink.

Il progettista può controllare il “duty-cycle” della commutazione per ottenere la risoluzione del ruolo preferito, ossia può decidere di impostare la durata, all’interno del ciclo di alternanza delle due modalità, per essere certo che venga agganciata più facilmente la modalità desiderata.
La possibilità di controllare le caratteristiche dell’hub mediante un apposito controller consente di implementare i cosiddetti Smart Hub.

Controller funzioni
e feature dell’hub USB

Esegue funzioni di sistema (send and receive data) verso le periferiche esterne senza bisogno di una MCU esterna. L’USB Feature Controller abilita le seguenti funzioni:
• Direct I/O bridging
• SMBus, GPIO, UART, SPI
• Full function UART in USB5734
• FlexConnect – Host/Device function swapping.

Opzioni di configurazione flessibili attraverso:
• SPI FLASH/EEPROM;
• OTP FLASH;
• Strapping Options.

La Fig. 9 schematizza il funzionamento dell’insieme controller funzioni.

Fig. 9

Microchip fornisce due famiglie di controller, ossia la USB port upstream UFP – USB58xx (che include la USB5807) e la USB-C UFP – USB59xx. Le famiglie supportano anche queste funzionalità:
• Integrated 2:1 MUX for USB-C;
• SmartHub: FlexConnect e I/O Bridging;
• PortSplitting e Billboard class.

Tab. 1

Nella Tabella 1 sono riepilogate le principali caratteristiche delle due famiglie. Invece nella Fig. 10 è proposto lo schema a blocchi delle due famiglie di controller, che operano supportando le funzionalità richieste.

Fig. 10

Microchip 7-Port USB Hub

Una soluzione sia per USB2.0 che USB3.1 è quella proposta da Microchip e consente di realizzare hub USB a 5+1 porte standard USB3.1 Gen 1. Il relativo schema a blocchi viene proposto nella
Fig. 11 e le caratteristiche principali sono:
• Firmware to Manage Power Delivery incl Billboard
• Native USB Type C Connector Support (CC pin);
• All Port FlexConnect;
• Port ID/Screening (Mini-Host), interfaccia I²S;
• Hub Feature Controller managing FlexConnect, I/O Bridging, Battery Charging, SPI Flash e OTP;

Fig. 11

Il tutto in un singolo package QFN da 100 pin (25 per lato) a passo 0,4 mm pin-to-pin compatibile con la serie USB73xx ma con 10 Gbps di data-rate.
Il controllore UPD 350 è un 32 bit e supporta le centralized uC enable system feature features (PB). Le funzionalità delle porte Type C variano da un prodotto all’altro e la caratteristica FlexConnect per HostFlexing consente un rapido set-up e adattamento.

Conclusioni

In questo articolo abbiamo fatto una carrellata sulla porta USB e come essa si sia evoluta negli anni, divenendo, con la versione C, più di una USB e non soltanto in termini di velocità, ma anche di flessibilità e compatibilità con altri protocolli e connessioni eterogenee, nell’ottica di far diventare la USB qualcosa di simile alla Thunderbolt, vale a dire una porta universale destinata a far transitare dati non solo da e verso memorie di massa o da dispositivi di acquisizione a computer, ma anche da questo a monitor HDMI e altre periferiche.

 

 

 

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Menu