Universal Serial Bus

**Universal Serial Bus** (**USB**) er ein bitseriell bus for kommunikasjon mellom datamaskiner og eksternt utstyr. USB er ein assymmetrisk buss, der kommunikasjonen vert styrt av ei «master», som ofte er ei datamaskin, som kontrollerer opp til 127 eksterne einingar, kalla «slavar». Slaveeiningane er enklare enn ein «root hub», for at dei skal vera billigare å produsera. Slaveeiningane han ha eigne enegiforsyningar, eller verta forsynte over USB-kabelen. USB-utstyr kan koplast til/frå utan å slå av datamaskina og når det vert kopla til ei datamaskin vert det autokonfigurert. Største kabellengd er 5 m. 

## Arkitektur
Master har ein innebygd «root hub», som kontrollerer slave-einingane (òg kalla «endepunkt») som er kopla til bussen. Mange datamaskinar er utstyrte med fleire USB-kontrollerar (som kvar har ein «root hub»). Kvar av desse kan kontrollera opp til 127 slaveeiningar. 

Kommunikasjonen mellom master og slave er ein-til-ein og kapasiteten til bussen vert delt mellom dei tilknytte slaveeiningane. Når fleire slaveeiningar er tilknytte ein «root hub» vert det nytta «hubbar» som forgreinar (kalla «hub») bussen til fleire einingar (hubbar eller endeiningar). 

## Versjonar
Spesifikasjonen for USB 1.0 var ferdig i januar 1996. I september 1998 kom ein revidert versjon, USB 1.1. USB 1.1. og var den fyrste versjonen som vart teken i bruk i stor stil. I april 2000 kom USB 2.0, som hadde større datarate og i november 2008 var sesifikasjonen for USB 3.0 ferdig. 

### USB 1.0 og USB 1.1
USB 1.0 kan nyttast med ein av to datarater: låghastigheit (en: *low speed*) og fullhastigheit eller (en: *full speed*). Låghasighet tilsvarar ein bitraten på 1,5 Mbps og fullhastigheit tilsvarar 12 Mbps. Låghasighet er etla for USB-einingar som ikkje treng så stor datarate, som til dømes mus og tastatur. Når bitraten er så låg som 1,5 Mbps kan det nyttast ein billig kabel utan skjerm, medan fullhstigheit krev skjerma kabel. Desse bitratane er asymptotiske øvre grenser og praktiske bitrater er ofte lågare. 

USB 1.0 og 1.1 har fire forskjellige transfermodi:

#### Control transfer mode
«Control transfer mode» er meint for tovegs overføring av kommandoar og statusinformasjon. Denne modusen vert mellom anna nytta for å overføra informasjon frå slaveeiningar til master om typeinformasjon og eigenskapar rett etter at ein USB-slave er kopla til. For låghastigheitsrate er pakkestorleiken alltid 8 Byte, medan han for fullhastigheisrate er 64 Byte. 
«Control transfer mode» har CRC feilkorreksjon, for å sikra at det oppstår feil under overføringa.

#### Interrupt transfer mode

I USB 1.0 er «interrupt transfer mode» unidireksjonal og vert berre nytta for å overføra meldingar frå ein USB-slave til master. I USB 1.1 er denne modusen bidireksjonal. «Interrupt transfer mode» er mynta på snøgg overføring av små datamengder, til dømes når ein brukar klikkar på ein knapp på ei USB-mus eller tastatur. Eit USB-interrupt fungerer ikkje heilt som eit interrupt i ein mikroprosessor; USB har ikkje ei eiga interrutplinje, så ved interrupt i ein USB-slave må informasjonen leggast i ein buffer og venta til master sender ein førespurnad. Informasjon om kor ofte master treng å ta kontakt med ein slave er lagra i slaven og vert overført til USB-drivaren i master under inisialisering av USB-slaven, rett etter at han vert kopla til. 

#### Isochronous transfer mode
«Isochronous transfer mode» garanterer ein minimum bitrate, men har ikkje feilkorreksjon. Denne modusen vert nytta når det er kritisk at det ikkje vert brot i overføringa, som til dømes ved overføring av digital audio til eit eksternt lydkort, eller frå ei digital videokamera. 

#### Bulk transfer mode
 
«Bulk transfer mode» er ein asynkron overføringmodus. Denne modusen har unidireksjonale røyrer og CRC-feilkorreksjon, men er ikkje garantert minimum bitrate. «Bulk transfer mode» vert nytta for å overføra store datamengder, som til dømes frå ei datamaskin til ein skrivar, eller frå ein skannar til ei datamaskin, til/frå eksterne lagringsmedium, etc. Denne modusen vert berre nytta med fullhastigheits bitrate. Pakkestorleiken er 8, 16, 32 eller 64 Byte.

### USB 2.0

### USB 3.0

## Fysisk samband
Det vert nytta balansert overføring over tvinna parkabel.

## Sjå òg
* Blåtann

## Kjelder

## Bakgrunnsstoff

* USB Implementers Forum
* Linux USB
* USB-kontakt pinout
* Wireless USB