SlideShare ist ein Scribd-Unternehmen logo
1 von 23
Downloaden Sie, um offline zu lesen
The Universal Serial Bus
Andrea Esposito
Marco Marinello
Corso di Computer Systems Architecture
Prof. Flavio Vella
Anno accademico 2020-21
A. Esposito, M. Marinello
The Universal Serial Bus
2
Agenda
●
Primi passi di USB
●
Invenzione di USB
●
Prima di USB
●
Differenza tra seriale e parallelo
●
Specifiche di USB
●
Caratteristiche del bus
●
(A)sincronia e arbitraggio
●
Signaling
●
Transceiver
●
Codifica NRZI
●
Analisi del protocollo
●
Tipi di trasferimento
●
USB contro i suoi avversari
●
USB è migliorata col tempo
●
Porte e connettori
A. Esposito, M. Marinello
The Universal Serial Bus
3
Invenzione di USB
Nel 1994, 7 società iniziarono assieme lo sviluppo di USB:
Compaq, Hewlett-Packard, IBM, Microsoft, NEC e Nortel.
L'obiettivo era rendere più semplice il collegamento di
dispositivi esterni ai PC oltre a migliorare velocità di
trasferimento e altri problemi di usabilità (hot-plug, ...).
Ajay Bhatt e il suo team hanno lavorato allo standard
alla Intel; i primi circuiti integrati che supportano USB
sono stati prodotti nel 1995.
A. Esposito, M. Marinello
The Universal Serial Bus
4
Prima di USB
Moltitudine di standard diversi a
seconda della periferica da collegare
A. Esposito, M. Marinello
The Universal Serial Bus
5
Prima di USB: EIA RS-232
●
Interfaccia seriale
●
Bassa velocità di trasmissione
●
Scambio dati fra dispositivi digitali
●
Scambio dati fra mainframe e
terminali
●
Utilizzata per collegare i primi
mouse, stampanti, scanner e
dispositivi di rete
●
Ad oggi ancora utilizzata ad es.
per management di switch o altri
SBC/Embedded
Topory - Opera propria, CC BY-SA 3.0
A. Esposito, M. Marinello
The Universal Serial Bus
6
Prima di USB: Porta parallela
Afrank99 - Opera propria, CC BY-SA 3.0,
●
Detta anche LPT, dall'inglese Line
Printer Terminal
●
usata inizialmente per collegare
un computer a una stampante o a
un plotter
●
in seguito, nella versione
bidirezionale, impiegata anche
per altre periferiche tra le quali
scanner, unità ZIP, hard disk,
lettori di CD-ROM e webcam
●
È parallela e non seriale
A. Esposito, M. Marinello
The Universal Serial Bus
7
Differenza fra seriale e parallelo
Courtesy of Quantil.com
A. Esposito, M. Marinello
The Universal Serial Bus
8
Prima di USB: Game port
●
Ideata dalla IBM e distribuita nel
1981 come una scheda di
espansione del primo PC IBM
●
Inizialmente consentiva di gestire
quattro assi analogici e quattro
pulsanti su una porta
●
Microsoft nel 2006 ha cessato il
supporto di game port con
Windows Vista mentre nel kernel
Linux è ad oggi supportato dal
modulo snd_cmipci e joydev
A. Esposito, M. Marinello
The Universal Serial Bus
9
Prima di USB: altre porte
Quark67 - Opera propria, CC BY-SA 3.0
Apple Desktop Bus (ADB) PS/2 (mini-DIN)
A. Esposito, M. Marinello
The Universal Serial Bus
10
USB – caratteristiche del bus
Il bus USB è di tipo tiered star, in cui
ogni nodo connesso fa capo a un hub.
Un hub mette a disposizione porte per
la connessione simultanea di più nodi
(lato downstream); a sua volta l’hub fa
capo a un altro hub nel livello (tier)
superiore (lato upstream), fino ad
arrivare al Root Hub, ovvero quello
dell’host.
Nella topologia USB un dispositivo
(non un hub) che occupa un nodo è
chiamato funzione.
A. Esposito, M. Marinello
The Universal Serial Bus
11
USB – caratteristiche del bus
L’architettura USB è host-centrica. L’host gestisce le connessioni (rilevamento di
inserimento e rimozione, alimentazione, enumerazione dei device connessi) e avvia
tutte le transazioni (scambi di dati) da e verso i nodi. Questi rimangono in attesa di
un pacchetto proveniente dall’host (il pacchetto token); se questo contiene l’indirizzo
del device in questione, rispondono di conseguenza. Per questo meccanismo di
attesa e controllo quello USB è definito un polled bus.
A. Esposito, M. Marinello
The Universal Serial Bus
12
USB – (a)sincronia e arbitraggio
Per la sua natura seriale, il bus USB è un bus
sincrono: la scansione degli intervalli è fissata
dal data rate adottato da host e device e
alcuni accorgimenti vengono impiegati
affinché i segnali di clock rimangano tra loro
sincronizzati.
Dal fatto che tutte le transazioni sono avviate
dall’host deriva il sistema di arbitraggio USB:
un device utilizza il bus solo quando richiesto
dall’host e continua ad occuparlo fino al
termine della transazione.
L’host non avvia nuove transazioni finché la
precedente non si conclude.
A. Esposito, M. Marinello
The Universal Serial Bus
13
USB – signaling
VBUS e GND sono le linee di alimentazione (nominalmente +5V). Il signaling USB, ovvero
la generazione degli impulsi alla base della codifica e del trasferimento dei dati, avviene
sulle linee D+ e D-. Una corrente può essere indirizzata dal trasmittente in D+ o
(invertita) in D-. Il ricevente rileva un impulso positivo o negativo tra le due linee.
Questi due stati vengono descritti come J e K. Questa modalità di trasmissione è
denominata differential signaling.
I segmenti di connessione tra i nodi del bus USB sono costituiti da quattro linee elettriche.
A. Esposito, M. Marinello
The Universal Serial Bus
14
USB – transceiver
Un transceiver USB 2.0 include la circuiteria per trasmettere e ricevere segnali
a tre diversi data rate:
• High Speed – 480 Mb/s (la sola mostrata in figura)
• Full Speed – 12 Mb/s
• Low Speed – 1.5 Mb/s
In base al data rate supportato dal device, la trasmissione avviene su intervalli
di tempo differenti.
A. Esposito, M. Marinello
The Universal Serial Bus
15
USB – codifica NRZI
La codifica utilizzata sul bus USB è denominata Non Return to Zero Inverted, o NRZI.
Consiste nel rappresentare il valore logico basso [0] con un cambiamento di stato J-K e il
valore logico alto [1] con una persistenza di stato J-K (nessun cambiamento).
Diversi meccanismi di rilevamento e correzione degli errori vengono utilizzati in base al
tipo di trasferimento in atto sul bus. A livello bitwise viene applicato il bit stuffing, che
consiste nel trasmettere un impulso logico basso [0] dopo ogni occorrenza di una
sequenza di almeno sei impulsi alti [1].
TPERIOD
A. Esposito, M. Marinello
The Universal Serial Bus
16
USB – analisi del protocollo
Ogni transazione USB consiste nello scambio di un numero variabile di pacchetti tra i
device connessi. Ogni pacchetto USB inizia con una sequenza di sincronizzazione
(SYNC), impiegata per allineare i clock tra i due nodi.
Seguono otto bit che identificano il tipo di pacchetto (PID). Si distinguono quattro tipi di
pacchetti:
• Token, contengono direzione della transazione (IN o OUT) e indirizzo del nodo e
dell’endpoint;
• Data, contengono da 0 a 1024 byte di dati annessi alla transazione;
• Handshake, contengono le possibili risposte a seguito di una transazione riuscita
(ACK) o fallita (NAK o STALL);
• Special, contengono informazioni aggiuntive (ad es. richieste di utilizzare il bus da
parte di dispositivi Low Speed).
Ogni transazione termina con una sequenza End of Packet (EOP).
A. Esposito, M. Marinello
The Universal Serial Bus
17
USB – analisi del protocollo
Diverse sequenze di pacchetti sono associate a diversi tipi di trasferimenti sul bus USB.
Per avviare una transazione con un device, l’host emette un pacchetto che ne specifica
l’indirizzo e un suo endpoint, ovvero una porzione dedicata del device stesso,
univocamente identificabile.
Si instaura così una pipe, ovvero un’associazione tra host e device che funge da canale di
trasferimento dati. Una pipe è sempre unidirezionale e permette un solo tipo di
trasferimento tra i quattro possibili: Control, Interrupt, Bulk e Isochronous.
Le quattro tipologie differiscono per direzione della transazione, dimensione dei
pacchetti, limiti di latenza e gestione degli errori.
A. Esposito, M. Marinello
The Universal Serial Bus
18
USB – tipi di trasferimento
Control Bulk / Interrupt Isochronous
A. Esposito, M. Marinello
The Universal Serial Bus
19
USB contro i suoi avversari
RS-232
(serial port)
Parallel port Game port
Apple
Desktop Bus
IEEE 1394
(“FireWire”)
PS/2 USB Thunderbolt
Presentation
date
1962 1981 1981 1986 1986 1987 1996 2009
Reversible       
(only type-C)

(only v. 3)
Hotplug  
(usually)
 Sometimes  Sometimes  
Maximum
length
15m 4.5m -unknown- 5m 4.5m 25m
5m
(v. 2.0+)
0.5 (40Gbps)
2m (20Gbps)
Maximum
bitrate
115200 bit/s 200 Mbps 4.8 Mbps 0.125 Mbps 3200 Mbps 0.012 Mbps 40 Gbps 40 Gbps
A. Esposito, M. Marinello
The Universal Serial Bus
20
USB – porte e connettori
USB 1.1
USB 2.0
USB 3.0+
1994 2000 2007 2013
2001
OTG
2014
Seguendo le esigenze del mercato e l’avanguardia tecnologica, lo standard USB ha
periodicamente rinnovato le porte e i connettori da esso utilizzati, riducendo le dimensioni e
migliorando robustezza e versatilità.
A. Esposito, M. Marinello
The Universal Serial Bus
21
USB è migliorata col tempo
22
Grazie dell’attenzione
Andrea Esposito
Marco Marinello
Corso di Computer Systems Architecture
Prof. Flavio Vella
Anno accademico 2020-21
A. Esposito, M. Marinello
The Universal Serial Bus
23
Bibliografia e sitografia
●
USB 2.0 Specification
https://www.usb.org/document-library/usb-20-specification
●
Data transmission – Parallel vs Serial
https://www.quantil.com/content-delivery-insights/content-
acceleration/data-transmission/
●
USB Hardware – Wikipedia (vector images)
https://en.wikipedia.org/wiki/USB_hardware

Weitere ähnliche Inhalte

Ähnlich wie The Universal Serial BUS

Ähnlich wie The Universal Serial BUS (14)

Hardware e software
Hardware e softwareHardware e software
Hardware e software
 
Modulo 1 ECDL
Modulo 1 ECDLModulo 1 ECDL
Modulo 1 ECDL
 
01 intro pc
01 intro pc01 intro pc
01 intro pc
 
Imput e output
Imput e outputImput e output
Imput e output
 
Input output
Input outputInput output
Input output
 
Topologie
TopologieTopologie
Topologie
 
Il Personal Computer
Il Personal ComputerIl Personal Computer
Il Personal Computer
 
Il Personal Computer
Il Personal ComputerIl Personal Computer
Il Personal Computer
 
Reti Locali
Reti LocaliReti Locali
Reti Locali
 
Architettura dei calcolatori
Architettura dei calcolatoriArchitettura dei calcolatori
Architettura dei calcolatori
 
Windows... per nostalgici
Windows... per nostalgiciWindows... per nostalgici
Windows... per nostalgici
 
DataLink LAN
DataLink LANDataLink LAN
DataLink LAN
 
TCP IP
TCP IPTCP IP
TCP IP
 
Imput e output
Imput e outputImput e output
Imput e output
 

The Universal Serial BUS

  • 1. The Universal Serial Bus Andrea Esposito Marco Marinello Corso di Computer Systems Architecture Prof. Flavio Vella Anno accademico 2020-21
  • 2. A. Esposito, M. Marinello The Universal Serial Bus 2 Agenda ● Primi passi di USB ● Invenzione di USB ● Prima di USB ● Differenza tra seriale e parallelo ● Specifiche di USB ● Caratteristiche del bus ● (A)sincronia e arbitraggio ● Signaling ● Transceiver ● Codifica NRZI ● Analisi del protocollo ● Tipi di trasferimento ● USB contro i suoi avversari ● USB è migliorata col tempo ● Porte e connettori
  • 3. A. Esposito, M. Marinello The Universal Serial Bus 3 Invenzione di USB Nel 1994, 7 società iniziarono assieme lo sviluppo di USB: Compaq, Hewlett-Packard, IBM, Microsoft, NEC e Nortel. L'obiettivo era rendere più semplice il collegamento di dispositivi esterni ai PC oltre a migliorare velocità di trasferimento e altri problemi di usabilità (hot-plug, ...). Ajay Bhatt e il suo team hanno lavorato allo standard alla Intel; i primi circuiti integrati che supportano USB sono stati prodotti nel 1995.
  • 4. A. Esposito, M. Marinello The Universal Serial Bus 4 Prima di USB Moltitudine di standard diversi a seconda della periferica da collegare
  • 5. A. Esposito, M. Marinello The Universal Serial Bus 5 Prima di USB: EIA RS-232 ● Interfaccia seriale ● Bassa velocità di trasmissione ● Scambio dati fra dispositivi digitali ● Scambio dati fra mainframe e terminali ● Utilizzata per collegare i primi mouse, stampanti, scanner e dispositivi di rete ● Ad oggi ancora utilizzata ad es. per management di switch o altri SBC/Embedded Topory - Opera propria, CC BY-SA 3.0
  • 6. A. Esposito, M. Marinello The Universal Serial Bus 6 Prima di USB: Porta parallela Afrank99 - Opera propria, CC BY-SA 3.0, ● Detta anche LPT, dall'inglese Line Printer Terminal ● usata inizialmente per collegare un computer a una stampante o a un plotter ● in seguito, nella versione bidirezionale, impiegata anche per altre periferiche tra le quali scanner, unità ZIP, hard disk, lettori di CD-ROM e webcam ● È parallela e non seriale
  • 7. A. Esposito, M. Marinello The Universal Serial Bus 7 Differenza fra seriale e parallelo Courtesy of Quantil.com
  • 8. A. Esposito, M. Marinello The Universal Serial Bus 8 Prima di USB: Game port ● Ideata dalla IBM e distribuita nel 1981 come una scheda di espansione del primo PC IBM ● Inizialmente consentiva di gestire quattro assi analogici e quattro pulsanti su una porta ● Microsoft nel 2006 ha cessato il supporto di game port con Windows Vista mentre nel kernel Linux è ad oggi supportato dal modulo snd_cmipci e joydev
  • 9. A. Esposito, M. Marinello The Universal Serial Bus 9 Prima di USB: altre porte Quark67 - Opera propria, CC BY-SA 3.0 Apple Desktop Bus (ADB) PS/2 (mini-DIN)
  • 10. A. Esposito, M. Marinello The Universal Serial Bus 10 USB – caratteristiche del bus Il bus USB è di tipo tiered star, in cui ogni nodo connesso fa capo a un hub. Un hub mette a disposizione porte per la connessione simultanea di più nodi (lato downstream); a sua volta l’hub fa capo a un altro hub nel livello (tier) superiore (lato upstream), fino ad arrivare al Root Hub, ovvero quello dell’host. Nella topologia USB un dispositivo (non un hub) che occupa un nodo è chiamato funzione.
  • 11. A. Esposito, M. Marinello The Universal Serial Bus 11 USB – caratteristiche del bus L’architettura USB è host-centrica. L’host gestisce le connessioni (rilevamento di inserimento e rimozione, alimentazione, enumerazione dei device connessi) e avvia tutte le transazioni (scambi di dati) da e verso i nodi. Questi rimangono in attesa di un pacchetto proveniente dall’host (il pacchetto token); se questo contiene l’indirizzo del device in questione, rispondono di conseguenza. Per questo meccanismo di attesa e controllo quello USB è definito un polled bus.
  • 12. A. Esposito, M. Marinello The Universal Serial Bus 12 USB – (a)sincronia e arbitraggio Per la sua natura seriale, il bus USB è un bus sincrono: la scansione degli intervalli è fissata dal data rate adottato da host e device e alcuni accorgimenti vengono impiegati affinché i segnali di clock rimangano tra loro sincronizzati. Dal fatto che tutte le transazioni sono avviate dall’host deriva il sistema di arbitraggio USB: un device utilizza il bus solo quando richiesto dall’host e continua ad occuparlo fino al termine della transazione. L’host non avvia nuove transazioni finché la precedente non si conclude.
  • 13. A. Esposito, M. Marinello The Universal Serial Bus 13 USB – signaling VBUS e GND sono le linee di alimentazione (nominalmente +5V). Il signaling USB, ovvero la generazione degli impulsi alla base della codifica e del trasferimento dei dati, avviene sulle linee D+ e D-. Una corrente può essere indirizzata dal trasmittente in D+ o (invertita) in D-. Il ricevente rileva un impulso positivo o negativo tra le due linee. Questi due stati vengono descritti come J e K. Questa modalità di trasmissione è denominata differential signaling. I segmenti di connessione tra i nodi del bus USB sono costituiti da quattro linee elettriche.
  • 14. A. Esposito, M. Marinello The Universal Serial Bus 14 USB – transceiver Un transceiver USB 2.0 include la circuiteria per trasmettere e ricevere segnali a tre diversi data rate: • High Speed – 480 Mb/s (la sola mostrata in figura) • Full Speed – 12 Mb/s • Low Speed – 1.5 Mb/s In base al data rate supportato dal device, la trasmissione avviene su intervalli di tempo differenti.
  • 15. A. Esposito, M. Marinello The Universal Serial Bus 15 USB – codifica NRZI La codifica utilizzata sul bus USB è denominata Non Return to Zero Inverted, o NRZI. Consiste nel rappresentare il valore logico basso [0] con un cambiamento di stato J-K e il valore logico alto [1] con una persistenza di stato J-K (nessun cambiamento). Diversi meccanismi di rilevamento e correzione degli errori vengono utilizzati in base al tipo di trasferimento in atto sul bus. A livello bitwise viene applicato il bit stuffing, che consiste nel trasmettere un impulso logico basso [0] dopo ogni occorrenza di una sequenza di almeno sei impulsi alti [1]. TPERIOD
  • 16. A. Esposito, M. Marinello The Universal Serial Bus 16 USB – analisi del protocollo Ogni transazione USB consiste nello scambio di un numero variabile di pacchetti tra i device connessi. Ogni pacchetto USB inizia con una sequenza di sincronizzazione (SYNC), impiegata per allineare i clock tra i due nodi. Seguono otto bit che identificano il tipo di pacchetto (PID). Si distinguono quattro tipi di pacchetti: • Token, contengono direzione della transazione (IN o OUT) e indirizzo del nodo e dell’endpoint; • Data, contengono da 0 a 1024 byte di dati annessi alla transazione; • Handshake, contengono le possibili risposte a seguito di una transazione riuscita (ACK) o fallita (NAK o STALL); • Special, contengono informazioni aggiuntive (ad es. richieste di utilizzare il bus da parte di dispositivi Low Speed). Ogni transazione termina con una sequenza End of Packet (EOP).
  • 17. A. Esposito, M. Marinello The Universal Serial Bus 17 USB – analisi del protocollo Diverse sequenze di pacchetti sono associate a diversi tipi di trasferimenti sul bus USB. Per avviare una transazione con un device, l’host emette un pacchetto che ne specifica l’indirizzo e un suo endpoint, ovvero una porzione dedicata del device stesso, univocamente identificabile. Si instaura così una pipe, ovvero un’associazione tra host e device che funge da canale di trasferimento dati. Una pipe è sempre unidirezionale e permette un solo tipo di trasferimento tra i quattro possibili: Control, Interrupt, Bulk e Isochronous. Le quattro tipologie differiscono per direzione della transazione, dimensione dei pacchetti, limiti di latenza e gestione degli errori.
  • 18. A. Esposito, M. Marinello The Universal Serial Bus 18 USB – tipi di trasferimento Control Bulk / Interrupt Isochronous
  • 19. A. Esposito, M. Marinello The Universal Serial Bus 19 USB contro i suoi avversari RS-232 (serial port) Parallel port Game port Apple Desktop Bus IEEE 1394 (“FireWire”) PS/2 USB Thunderbolt Presentation date 1962 1981 1981 1986 1986 1987 1996 2009 Reversible        (only type-C)  (only v. 3) Hotplug   (usually)  Sometimes  Sometimes   Maximum length 15m 4.5m -unknown- 5m 4.5m 25m 5m (v. 2.0+) 0.5 (40Gbps) 2m (20Gbps) Maximum bitrate 115200 bit/s 200 Mbps 4.8 Mbps 0.125 Mbps 3200 Mbps 0.012 Mbps 40 Gbps 40 Gbps
  • 20. A. Esposito, M. Marinello The Universal Serial Bus 20 USB – porte e connettori USB 1.1 USB 2.0 USB 3.0+ 1994 2000 2007 2013 2001 OTG 2014 Seguendo le esigenze del mercato e l’avanguardia tecnologica, lo standard USB ha periodicamente rinnovato le porte e i connettori da esso utilizzati, riducendo le dimensioni e migliorando robustezza e versatilità.
  • 21. A. Esposito, M. Marinello The Universal Serial Bus 21 USB è migliorata col tempo
  • 22. 22 Grazie dell’attenzione Andrea Esposito Marco Marinello Corso di Computer Systems Architecture Prof. Flavio Vella Anno accademico 2020-21
  • 23. A. Esposito, M. Marinello The Universal Serial Bus 23 Bibliografia e sitografia ● USB 2.0 Specification https://www.usb.org/document-library/usb-20-specification ● Data transmission – Parallel vs Serial https://www.quantil.com/content-delivery-insights/content- acceleration/data-transmission/ ● USB Hardware – Wikipedia (vector images) https://en.wikipedia.org/wiki/USB_hardware