| PrecedentePorta seriale/parallela | Il bus USB (Universal Serial Bus) | SeguenteFireWire |
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 :
Così, 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 :
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à (es. 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 :
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 dell'anello a gettone (token ring). Questo significa che la banda passante è 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 un gettone (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 byte) 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. (cfr successivamente).
Se consideriamo una lughezza 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 perifericha 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 :