32
Universal Serial Bus Alessandro Memo Settembre 2006

Universal Serial Bus Alessandro Memo Settembre 2006

Embed Size (px)

Citation preview

Page 1: Universal Serial Bus Alessandro Memo Settembre 2006

Universal Serial Bus

Alessandro Memo

Settembre 2006

Page 2: Universal Serial Bus Alessandro Memo Settembre 2006

Indice degli argomenti

1. Storia

2. Generalità

3. Topologia

4. Componenti

5. Connessione

6. Alimentazione

7. Trasmissione

8. Codifica

9. Il Protocollo

10.Endpoint

11.Pipe

12.USB 2.0

13.USB On-The-Go

Page 3: Universal Serial Bus Alessandro Memo Settembre 2006

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.

Page 4: Universal Serial Bus Alessandro Memo Settembre 2006

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]

Page 5: Universal Serial Bus Alessandro Memo Settembre 2006

Topologia

• 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.

• L’USB consente di connettere un massimo teorico di 127 dispositivi, distribuibili su cinque strati (max 5 hub).

livello 1

livello 2

livello 3

livello 4

Hostlivello root

Page 6: Universal Serial Bus Alessandro Memo Settembre 2006

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.

Page 7: Universal Serial Bus Alessandro Memo Settembre 2006

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.

Page 8: Universal Serial Bus Alessandro Memo Settembre 2006

ConnessioneL’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.

Page 9: Universal Serial Bus Alessandro Memo Settembre 2006

ConnessioneI connettori alla estremità dei cavi sono diversi: il connettore verso l’hub è detto tipo A, verso le periferiche tipo B.

Page 10: Universal Serial Bus Alessandro Memo Settembre 2006

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 Aplug(dal device)

Spina Bplug (dall’Host)

Presa Areceptacle

(flusso downstream in uscita dall’Host o

dall’Hub)

Presa Breceptacle

(flusso upstream in ingresso al device o

all’Hub)

Page 12: Universal Serial Bus Alessandro Memo Settembre 2006

Connessione

Page 13: Universal Serial Bus Alessandro Memo Settembre 2006

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

Page 14: Universal Serial Bus Alessandro Memo Settembre 2006

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).

Page 15: Universal Serial Bus Alessandro Memo Settembre 2006

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.

Page 16: Universal Serial Bus Alessandro Memo Settembre 2006

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

Page 17: Universal Serial Bus Alessandro Memo Settembre 2006

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:

LOW SPEED

nome D+ D-

stato J (0) basso alto

stato K (1) alto basso

Single Ended 0 basso basso

Single Ended 1 alto alto

FULL & HIGH SPEED

nome D+ D-

stato J (1) alto basso

stato K (0) basso alto

Single Ended 0 basso basso

Single Ended 1 alto alto

Page 18: Universal Serial Bus Alessandro Memo Settembre 2006

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.

Page 19: Universal Serial Bus Alessandro Memo Settembre 2006

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.

Page 20: Universal Serial Bus Alessandro Memo Settembre 2006

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.

Page 21: Universal Serial Bus Alessandro Memo Settembre 2006

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

Page 22: Universal Serial Bus Alessandro Memo Settembre 2006

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.

Page 23: Universal Serial Bus Alessandro Memo Settembre 2006

Protocollo

SYNCSYNC PIDPID DATADATA CRCCRC

TOKEN PACKET

DATA PACKET

HANDSHAKE PACKET

TRANSACTION

NSFER TRANSF

TOKEN PACKET

DATA PACKET

HANDSHAKE PACKET

TRANSACTION TRANSACTION TRANSACTION

TRANSFERTRANSFER

Page 24: Universal Serial Bus Alessandro Memo Settembre 2006

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)

Page 25: Universal Serial Bus Alessandro Memo Settembre 2006

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.

Page 26: Universal Serial Bus Alessandro Memo Settembre 2006

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.

Page 27: Universal Serial Bus Alessandro Memo Settembre 2006

USB 2.0

Esempio di configurazione USB 1.1

Page 28: Universal Serial Bus Alessandro Memo Settembre 2006

USB 2.0

Esempio di configurazione USB 2.0

Page 29: Universal Serial Bus Alessandro Memo Settembre 2006

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.

Page 30: Universal Serial Bus Alessandro Memo Settembre 2006

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

Page 31: Universal Serial Bus Alessandro Memo Settembre 2006

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.

Page 32: Universal Serial Bus Alessandro Memo Settembre 2006

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