Hur fungerar USB?

USB Type A till USB Micro

USB står för Universal Serial Bus. Denna standard används idag till de flesta tillbehör och enklare kommunikationsenheter. Men varför används just USB, och hur fungerar överföringen?

Historia

Ni som hade en dator före år 2000 minns säkert den gamla typen av skrivarkontakter (kallades ofta ”LPT1”) och seriellkontakter (kallades ”COM1” osv):

Parallell och seriell kommunikationsport

Det som huvudsakligen skiljde dessa två åt var att parallell-porten skickade 8 bit samtidigt, medan den seriella skickade 1 bit i taget, i serie (en bit är antingen 1 eller 0).

Men, utbrister då du, varför heter det då Universal SERIAL Bus, och inte Universal PARALLEL Bus? Den parallella skickar ju 8 bitar i taget så den måste vara 8 gånger snabbare!

I teorin är det sant. Vid långsamma överföringar går det snabbare med parallellporten. Problemet är att ju snabbare överföringen blir, desto svårare blir det att garantera att alla 8 bitar kommer fram samtidigt eftersom systemet blir allt känsligare för att ledarna kan vara olika långa. Så om 7 av 8 bitar kommer fram i tid, kanske den 8e ändå måste skickas om vilket resulterar i att överföringen tar dubbelt så lång tid. Med seriell kommunikation, däremot, är det bara en fördel om bitarna kommer fram snabbare. Där spelar det ju ingen roll, eftersom nästa kommer snart därefter!

Dessutom är en seriellport avsevärt mycket mindre och därav också billigare att tillverka.

Utöver dessa två portar fanns också PS/2-kontakter och säkert en mängd andra som var olika men som i grunden gjorde samma sak. Därför beslutade sig en grupp på sju företag 1994 att det var dags för förändring, och tog fram USB-standarden. Inledningsvis var överföringen ganska långsam, men har gradvis höjts efter behov och den senaste standarden (USB 3.1) möjliggör överföringshastigheter på upp till 10 GBit/s.

Funktion

En typisk USB-kontakt har fyra ledare: +5v, GND, Data+ och Data-:

USB-kontakt
De första varianterna av USB-kontakter.

Anledningen till att det finns två Data-ledare är för att signalen speglas i den ena. Sedan utnyttjas att sladdarna är tvinnade parvis, ”twisted pair”, för att på ett smart sätt eliminera signalstörningar utifrån. Genom att ha två upplagor av samma bit som är varandras spegelbild, gör detta att också störningen spegelvänds. När signalen sedan når sitt mål kan man vända tillbaka den spegelvända signalen, och resultatet blir att man får inversen till störningen och kan eliminera den mycket enkelt genom att lägga ihop signalerna! Mer information om hur detta fungerar finns här.

Hur vet då en enhet när den kan skicka data? Jo, en enhet är master och en är slave. Mastern efterfrågar data från slaven, eller så tillåter den asynkron överföring (detta är dock inte att rekommendera, eftersom mottagning av datan ej garanteras).

Datan skickas sedan i en seriell sekvens tillsammans med extra data för att bland annat se till att den överförts korrekt, men jag vill inte tråka ut er med detaljer.

Det var lite kort om USB, hoppas att någon lärt sig något! 🙂

Källa USB-kontakt.png

http://commons.wikimedia.org/wiki/File:USB.svg

[collapse]

Kommentera