320 likes | 462 Views
Universal Serial Bus. Alessandro Memo Settembre 2006. Indice degli argomenti. Storia Generalità Topologia Componenti Connessione Alimentazione Trasmissione. Codifica Il Protocollo Endpoint Pipe USB 2.0 USB On-The-Go. Storia.
E N D
Universal Serial Bus Alessandro Memo Settembre 2006
Indice degli argomenti • Storia • Generalità • Topologia • Componenti • Connessione • Alimentazione • Trasmissione • Codifica • Il Protocollo • Endpoint • Pipe • USB 2.0 • USB On-The-Go
Storia • Un gruppo di aziende (Compaq, Digital Equipment, IBM, Intel, Microsoft e Northern Telecom) decidono di creare un nuovo standard di interfacciamento per PC • La versione USB 1.0 viene pubblicata il 15.1.96, mentre la 1.1 il 23.9.98 • Il 27 Aprile 2000 nasce la versione 2.0, che apporta migliorie sulla velocità di trasferimento e compatibilità con le precedenti.
Generalità • USB è un bus seriale esterno, che consente il collegamento e la rimozione di periferiche ‘a caldo’ (hot swap) • Supporta la tecnologia Plug and Play • Se l’assorbimento di corrente della periferica è basso, questa può essere alimentata tramite bus • La versione 1.1 ha velocità di trasferimento dati diversificate: low [1,5 Mbit/sec] e full [12 Mbit/sec] • La versione 2.0 ammette anche la modalità high [480 Mbit/sec]
Topologia • L’USB consente di connettere un massimo teorico di 127 dispositivi, distribuibili su cinque strati (max 5 hub). • La distanza massima per una connessione è di 5 m, anche se si possono raggiungere 30 m con 5 hub tra PC e periferica • L'USB è un bus solo da un punto di vista logico. livello root Host livello 1 livello 2 livello 3 livello 4
Componenti di un bus USB • Host, (in generale è il PC) l'host controlla tutto il traffico sul bus, decidendone le priorità e le diverse modalità, rileva e configura le periferiche connesse. • Hub, permettono di moltiplicare le connessioni USB.Sono essenzialmente dei multiplatori di segnali dotati di una porta di upstream verso l’host e di porte di downstream, indirizzate verso altri hub o dispositivi.
Componenti di un bus USB • Gli hub registrano, nei loro bit di stato, le periferiche che vengono collegate o scollegate fisicamente al bus. • Device, sono le periferiche connesse al bus mediante una porta USB. I device possono funzionare anche da hub.
Connessione L’USB usa cavi, prese e connettori standardizzati. I cavi sono di due tipi: non schermati per periferiche lente, con lunghezza massima di tre metri e schermati per periferiche veloci, con lunghezza fino a cinque metri.
Connessione I connettori alla estremità dei cavi sono diversi: il connettore verso l’hub è detto tipo A, verso le periferiche tipo B.
Connettori Serie A Connettori Serie B le spine Serie A sono sempre orientate verso l’Host (upstream) le spine Serie B sono sempre orientate verso il device (downstream) Spina A plug (dal device) Spina B plug(dall’Host) Presa A receptacle(flusso downstream in uscita dall’Host o dall’Hub) Presa B receptacle(flusso upstream in ingresso al device o all’Hub)
Connessione connettore (spina) tipo A connettore (spina) tipo B
Alimentazione • Sono previste tre modalità di alimentazione dei device: Self, Bus e Hybrid. • Self: se il dispositivo ha un’alimentazione autonoma e non preleva corrente dal cavo USB (self powered) • Bus: se il dispositivo si alimenta tramite il cavo USB. In tal caso deve avvisare preventivamente l’Host che preleverà una corrente, espressa in multipli di 100 mA • low-power device: assorbe meno di 100 mA • high-power device: assorbe al massimo 500 mA
Alimentazione • Hybrid: se il dispositivo è parzialmente autoalimentato e comunque preleva una quota di corrente anche dal bus (previa negoziazione). • un dispositivo bus-powered low power può essere collegato anche ad una linea gestita da hub • un dispositivo bus-powered high power può avere inconvenienti se collegato ad una linea gestita da hub (meglio se collegato all’Host).
Alimentazione • Gli hub possono essere forniti di alimentazione propria oppure essere alimentati tramite il bus . Gli hub bus-powered non possono essere collegati in cascata e non possono avere più di quattro porte • Un dispositivo che assorbe più di 100 mA, ma non dispone di alimentazione separata, non può essere connesso ad un hub alimentato dal bus.
Trasmissione • Il cavo ha quattro fili, due per l’alimentazione (Vbus e Ground) e due per i dati • tra i due fili di alimentazione è presente una tensione nominale di 5 Volt • la seconda coppia di fili (D+ e D-) serve alla trasmissione dei dati, con segnali di ampiezza massima di 3,3 Volt
Trasmissione • Nello standard USB 1.1 la trasmissione avviene su linea differenziale (cioè il bit dipende dalla tensione su entrambi i fili), sui fili D+ e D-. • Con due fili sono possibili 4 combinazioni:
Trasmissione • Per descrivere lo stato delle linee sul bus sono stati introdotti due simboli: J e K. • In tal modo si uniformano le terminologie nelle comunicazioni low e full speed. Ad esempio la trasmissione sulla linea USB inizia sempre con una commutazione da stato J a stato K.
Codifica • La codifica del segnale è la NRZI (No Return Zero Inverted) ; essa prevede la transizione per i bit 'zero' ed il mantenimento di livello per gli 'uno'. • Per la sincronizzazione viene adottata la tecnica del bit stuffing (per gruppi di sei bit alti) • L’inizio del pacchetto è caratterizzato dalla sequenza 01010100, mentre la fine è marcata dallo stato Se0 per la durata di due bit, seguiti da un bit alto e dal passaggio in IDLE del trasmettitore.
Il Protocollo • Tutti i trasferimenti sono iniziati dall'host, con metodo polling-selecting,inviando un pacchetto che, come un gettone, autorizza i terminali a comunicare. • A questo punto, se la periferica è pronta, risponde all’invito e da ciò deriva l'instaurazione della trasmissione, tramite una procedura di handshaking. • Gli indirizzi delle periferiche sono assegnati dall'host in maniera dinamica, con un processo che viene continuamente ripetuto.
Il Protocollo • Quando un device USB si collega al bus, l’host che lo governa interroga il device utilizzando l’indirizzo di default 0. • Successivamente l’host assegna al device un indirizzo USB univoco nel bus. • L’host successivamente richiede altre informazioni quali: • classe di conformità del dispositivo • numero di endpoint posseduti • nome del costruttore • vendor ID/Product ID
Il Protocollo • La comunicazione tra Host e device si definisce transfer. • Ogni transfer si suddivide in una o più transaction, una per ogni coppia host-device • Ogni transaction è suddivisa in packet, ed è composta da • un token packet che definisce il destinatario e il tipo di transaction • uno o più data packet • un handshake packet per il controllo dell’errore.
TOKEN PACKET TOKEN PACKET DATA PACKET DATA PACKET HANDSHAKEPACKET HANDSHAKEPACKET SYNC PID DATA CRC Protocollo NSFER TRANSFER TRANSF TRANSACTION TRANSACTION TRANSACTION TRANSACTION
Il Protocollo • Il Packet contiene i seguenti campi: • 8 bit di sincronismo (32 bit x high speed) • 4+4 bit di Packet Identifier (PID) • ulteriori informazioni dipendenti dal PID • CRC del packet • Per trasmissioni low/full speed le frame hanno un periodo di 1 mS (125 µS per high speed)
Endpoint • Ogni device include al suo interno uno o più endpoint (punti terminali della comunicazione host-device). • Gli endpoint possono essere di tre tipi: • IN (trasmette i dati all’host/hub) • OUT (riceve i dati dall’host/hub) • CONTROL (accesso bidirezionale) • C’è una sola connessione fisica, ma diverse connessioni logiche tra host e device, dette PIPE.
Pipe • Ogni Pipe è associata ad un endpoint. • Ogni device, all’avvio, deve attivare la control Pipe associata all’endpoint0. • La Pipe associata all’endpoint0 è bidirezionale di tipo control. • Le Pipe associate agli altri endpoint sono monodirezionali.
USB 2.0 Esempio di configurazione USB 1.1
USB 2.0 Esempio di configurazione USB 2.0
USB 2.0 Ruolo del software sull’host: • Le applicazioni correnti del PC continuano ad operare con le periferiche USB 1.1 • Il software di sistema rileva configurazioni limitanti (periferiche USB 2.0 collegate ad hub USB 1.1) ed avvisa l’utente.
USB 2.0 Ruolo dell’hub: • Un hub USB 2.0 accetta transaction alla massima velocità ammessa e le inoltra a periferiche di entrambi gli standard, USB 2.0 ed USB 1.1. • Ciò richiede capacità elaborative e di buffering. • L’hub gestisce anche transizioni USB 2.0 inviate dall’host a device USB 1.1
USB On-The-Go • Una estensione del USB chiamata USB-On-The-Go consente ad una singola porta di fungere sia da device che da host.
USB On-The-Go Per evitare una proliferazione dei connettori proprietari. USB-On-The-Go ha definito anche due connettori chiamati, mini-A e mini-B, molto più piccoli dei connettori precedenti. connettore (spina) tipo mini-A