Il bus USB (Universal Serial Bus, in italiano Bus seriale universale) è, come indicato dal suo nome, basato su un'architettura di tipo seriale.
Si tratta tuttavia di un'interfaccia entrata-uscita molto più rapida rispetto alle porte seriali standard. L'architettura che è stata scelta per questo tipo di porta è in serie per due ragioni principali:
L'architettura seriale permette di utilizzare una cadenza di orologio molto più elevata rispetto ad un'interfaccia parallela, dato che questa non supporta delle frequenze troppo elevate (in un'architettura ad alte capacità di banda, i bit circolanti su ogni filo arrivano con dei ritardi, provocando degli errori);
I cavi seriali costano molto meno che i cavi paralleli.
Dal 1995, lo standard USB è stato elaborato per la connessione di una grande varietà di periferiche. Lo standard USB 1.0 propone due modalità di comunicazione:
12 Mb/s in modalità alta velocità;
1.5 Mb/a a bassa velocità.
Lo standard USB 1.1 apporta qualche chiarimento ai costruttori di periferiche USB ma non modifica niente rispetto alla banda. Le periferiche certificate USB 1.1 hanno il seguente logo:
La norma USB 2.2 permette di ottenere delle capacità di banda che possono raggiungere 480 Mbit/s. Le periferiche certificate USB 2.0 hanno il seguente logo:
In assenza di loghi il modo migliore per determinare se si tratta di periferiche USB a bassa o alta velocità è quello di consultare la documentazione del prodotto dato che i connettori sono gli stessi. La compatibilità tra periferiche US 1.0, 1.1 e 2.0 è assicurata. Tuttavia l'utilizzazione di una periferica USB 2.0 su una porta USB a bassa velocità (ad esempio 1.0 o 1.1) limiterà la capacità della banda a 12 Mbit/s massimo. Inoltre, il sistema operativo visualizzerà un messaggio indicante l'abbassamento della banda.
Esistono due tipi di connettori USB:
I connettori detti di tipo A, che hanno forma rettangolare e servono generalmente per delle periferiche che richiedono poca banda passante (tastiera, mouse, webcam, ecc.);
I connettori detti di tipo B di forma quadrata e utilizzati principalmente per delle periferiche ad alta capacità di banda (dischi rigidi esterni, ecc.):
Alimentazione +5V (VBUS) 100mAh massimo
Dati (D-)
Dati (D+)
Massa (GND)
L'architettura USB ha come caratteristica di fornire l'alimentazione elettrica alle periferiche che collega, limitato a 15 W massimo per periferica. Essa utilizza per questo un cavo composto da quattro fili (la massa GND, l'alimentazione VBUS e due fili di dati detti D- e D+):
La norma USB permette di concatenare delle periferiche, utilizzando una topologia in bus o a stella. Le periferiche possono allora essere sia connesse le une presso le altre, ossia ramificate. La ramificazione si fa attraverso dei case detti hub (in italiano concentratori), con una sola entrata e più uscite. Alcuni sono attivi (fornendo energie elettrica) altri passivi (alimentati dal computer):
La comunicazione tra l'host (il computer) e le periferiche si fanno seguendo un protocollo (linguaggio di comunicazione) basato sul principio di (token ring). Questo significa che la banda è condivisa temporaneamente tra tutte le periferiche connesse. L'host (il computer) emette un segnale di inizio sequenza ogni millisecondo (ms), intervallo di tempo durante il quale darà simultaneamente la "parola" a ciascuno di essi.
Quando l'host vuole comunicare con una periferica, emette pacchetto di dati, contenente l'indirizzo della periferica codificato a 7 bit, che designa una periferica, ed è quindi l'host che decide il "dialogo" con le periferiche. Se la periferica riconosce il proprio indirizzo nel gettone, invia un pacchetto di dati (da 8 a 255 bit) in risposta, altrimenti fa passare il pacchetto alle altre periferiche connesse. I dati così scambiati sono codificati secondo la codifica NRZI.
Dato che l'indirizzo è codificato a 7 bit, a questo tipo di porta possono essere connesse simultaneamente 128 periferiche (2^7). In realtà bisogna portare questa cifra a 127 dato che l'indirizzo 0 è un indirizzo riservato. Se consideriamo una lunghezza massima di 5 metri per un cavo fra due periferiche e al massimo 5 hub (alimentati), è possibile creare una catena lunga 25 metri.
Le porte USB supportano l'Hot plug and play. Quindi le periferiche possono essere collegate senza spegnere il computer (collegamento a caldo, in inglese hot plug). Quando si connette la periferica all'host, quest'ultimo individua l'aggiunta di un nuovo elemento grazie al cambiamento della tensione tra i fili D+ e D-. In quel momento, il computer invia un segnale di inizializzazione alla periferica per 10 ms, poi gli fornisce corrente mediante i fili GND e 'VBUS (fino a 100mA).
La periferica è quindi alimentata elettricamente e recupera temporaneamente l'indirizzo di default (l'indirizzo 0). La tappa successiva consiste nel fornirgli un suo indirizzo definitivo (procedura di numerazione). Per far questo, il computer interroga le periferiche già collegate per conoscere il loro e attribuirne uno nuovo, che viene così identificato. L'host, disponendo di tutte le caratteristiche necessarie è quindi capace di caricare il driver appropriato.
Le specifiche complete dello standard USB possono essere scaricate sul sito: USB Implementers Forum.
Foto: © Pixabay.