USB og FireWire

Disse sidene er en del av dokumentasjonen som Ola Lie utarbeidet da han foreleste faget IP- og webteknologi ved Høgskolen i Østfold i 2005.Websidene ble revidert i 2007.

USB usb

Bak den siste spesifikasjonen av Universal Serial Bus (USB) står kjente produsenter som Compaq, Hewlett-Packard, Intel, Lucent, Microsoft, NEC og Philips. Motivet for utviklingen av USB var å koble PC-en sammen med telefonen, bedre brukervennlighet og flere porter. Og det har blitt mye enklere. Vi slipper å installere egne kort i PC-en når vi skal koble til nye periferienheter (skanner, telefon, skriver, kamera, osv.). Vi trenger heller å bekymre oss over DIP switches, jumper settings, IRQ, IO Addresses, BIOS Setup eller lignende. Vi behøver ikke slå av PC-en. Vi kan plugge i USB kabelen mens det er strøm på PC-en. Vi slipper unna med færre strømforsyningsenheter da utstyr som trenger lite strøm, kan få strømmen via USB kabelen. Det er støtte for inntil 127 enheter på én USB kontroller osv.

usb

USB bussen har en fysisk lagdelt stjerne topologi. Verten (Host controller) er både maskinvare og programvare på PC-en. Den styrer blant annet dynamisk tilkobling og frakobling av periferiutstyr, tildeler unike adresser og initierer overføringen med de tilkoblede enhetene. Hub-ene sørger for flere tilkoblingsmuligheter, strøm til tilkoblede enheter, og fungerer som toveis gjentakere (repeater). Vi kan koble til fem lag med hub-er. USB enhetene er slaver som må følge USB protokollen:

usb

Det eksisterer dusinvis forskjellige tilkoblingsalternativer for mobile enheter. Så det er blitt utviklet en egen USB standard til dette formålet. USB On-The-Go (OTG) spesifiserer mindre kabler, plugger og strømkrav enn vanlig USB. Dessuten kan enheter som tradisjonelt har vært periferiutstyr nå også være host. USB OTG vil være et komplementært produkt til Bluetooth, og eksempler på anvendelser er:

usb

USB er både en buss og en protokoll. Sammenligner vi med standard COM porter, er bussen definert av PCI spesifikasjonen (Peripheral Component Interconnect. Den mest vanlige databussen i en PC), og protokollen definert av RS-232 standarden. USB 1.1 har maksimal overføringshastighet på 12 Mbps. Den nyere USB 2.0 er førti ganger raskere (480 Mbps). USB 2.0 benytter samme kabler, kontakter og programvare grensesnitt som USB 1.1 (bakover kompatibel) og skal kunne erstatte SCSI adaptere (kort) på PC-en. Vi kan gjenkjenne de ulike USB standardene på logoen som benyttes:

usb

USB kontaktene er flate i enden som kobles oppover mot verten og firkantet i enden som kobles nedover mot periferiutstyret. Vi unngår dermed feilkoblinger (loopbacks):

usb

Pinne 1 (rød) er strøm (5V), og pinne 4 (svart) er jord. Pinne 2 (grønn) og pinne 3 (hvit) overfører differensielle data signaler (NRZI- Non Return to Zero Invert) over et tvunnet trådpar. Kablene kan være 3 - 5 meter lange, avhengig av hastighet. USB er halv dupleks og overfører data i pakker på inntil 1024 bytes (payload). Alle pakker begynner med et 8 eller 32 bits SYNC felt og et 8 bits PID felt som forteller hva slags pakketype som blir sent: Verten kan eksempelvis gi beskjed om at den ønsker å lese fra USB enheten, eller den kan sende en ACK (Acknowledgment) som bekrefter vellykket mottak av en pakke. Mer informasjon om USB kan du finne hos USB Implementers Forum og USB in a NutShell.

FireWire   FireWire   FireWire   FireWire

På midten av 1980 tallet utviklet Apple en høyhastighets seriebuss som de døpte FireWire. Målet var å frembringe en billig, brukervennlig og rask buss, som kunne erstatte det relativt dyrere SCSI parallell grensesnittet. De brukte bussen til å overføre data til og fra harddisker i Macintosh maskiner samtidig som de forenklet den interne kablingen. FireWire kunne også brukes mellom datamaskiner og periferiutstyr, og Apple fikk godkjent FireWire som standard 1394 av IEEE i 1995. FireWire slo tidlig an i digitale video kameraer og senere i annen forbrukerelektronikk. Sony bruker IEEE 1394 -1995 standarden under navnet iLink.

Det er ikke bare på grunn av den høye overføringshastigheten at FireWire er blitt populær i multimedia utstyr, men også fordi protokollen støtter isokron dataoverføring. Det vil si overføring av data som er tidsavhengige – som må komme fra til rett tid. Enhetene er garantert en viss båndbredde og det foregår verken feildetektering eller retransmisjoner.

IEEE 1394-1995 spesifiserer hastigheter på 100, 200 og 400 Mbps. Inntil 63 enheter kan kobles sammen uten behov for en hub. Alle enhetene kan kommunisere med hverandre uten bruk av en vertsmaskin. En kjede kan bestå av inntil 16 enheter med maksimal kabellengde 4,5 meter mellom hver enhet. Inntil 1023 nettverk (av inntil 63 noder) kan sammenkobles ved bruk av broer. FireWire er selvkonfigurerende og enhetene kan til- og frakobles mens bussen er operativ (hot swapping). Den nyere 1394b standarden støtter 800, 1 600 og 3 200 Mbps samt lengre kabellengder.

FireWireDet finnes både 4- og 6-pins FireWire kabler. En 4 pins kabel overfører bare data. Men en 6 pins kabel overfører også strøm (8-40V, inntil 1,5A). Det benyttes differensielle datasignaler: når den ene lederen er positiv, er den andre lederen negativ. Støy utenfra påvirker begge lederne noenlunde likt og differansen mellom dem forblir omtrent det samme.

FireWireDet andre trådparet sender ”strobe” signaler som endrer tilstand når data signalet ikke gjør det. Mottakeren kan dermed rekonstruere klokkesignalet ved bruk av enkle XOR porter. Denne teknikken kalles NRZ-DS (Non Return to Zero – Data Strobe).

FireWire bussen har trestruktur. Punktene i den virtuelle trestrukturen kalles noder, og fysiske enheter består vanligvis av én node. En node kan ha én eller flere porter som kobler enheten til nettverket. Dersom enheten har bare én port, er den på slutten av en kjede og kalles leaf node. Noder med flere porter fungerer også som gjentakere (repeater).

FireWireEtter en reset (En tilstand hvor TPA og TPB er begge logisk 1), begynner prosessen med å identifisere trestrukturen. Leaf nodes sender Parent_Notify signaler som kvitteres med Child_Notify signal fra den nærmeste gren noden. Slik fortsetter det ved at nodene som har færrest uidentifiserte porter igjen, sender Parent_Notify signaler på de gjenstående portene, osv. I vårt eksempel vil VCR’en til slutt ha markert alle portene som child, og dermed bli rot noden. Rot noden sørger for klokkesyklusen (8kHz) og bestemmer hvem som skal få bruke bussen. Når trestrukturen er klar, begynner prosessen med å tildele unike IDer. Rot noden sender en ”tildelings bevilgning” til sin lavest nummererte port. Slik fortsetter det nedover treet til signalet når en ende node som tar ID=0. Denne informasjonen sendes tilbake til alle enheter som inkrementerer ID tellerne sine. Så begynner prosessen på nytt fra rot noden. En gren node som ikke har flere barn uten ID, tar neste ID selv.

FireWireFireWire protokollen består av 3 lag:

  • Det fysiske laget (Physical Layer) utfører initieringen som er beskrevet ovenfor, ser til at bare én node sender data om gangen, og omformerer signalnivåene til å passe datalinje laget.
  • Datalinjelaget (Link Layer) forsyner transaksjonslaget med kvitterte datagrammer, håndterer all overføring av pakker og kontrollerer klokkesyklusen for isokrone kanaler.
  • Transaksjonslaget (Transaction Layer) implementerer IEEE 1212 Standard for a Control and Status Registers (CSR) Architecture for Microcomputer Buses som forenkler sammenkobling med standard parallelle busser.

Mange hevder at FireWire er en overlegen seriell buss i forhold til USB og har observert at selv FireWire (400 Mbps) er raskere enn USB 2.0 (480 Mbps). Men for kjøpere av datautstyr er det kanskje vel så viktig hvilke grensesnitt PCen og periferienhetene støtter. Og her ser det ut til at USB ligger bedre an enn FireWire. I artikkelen FireWire vs. USB; Apple and Intel Play Hardball peker David Jones på 3 grunner til at USB har fått overtaket på FireWire i PC industrien:

  • Apple introduserte en lisensavgift som PC industrien fant uakseptabel.
  • FireWire brikkene ble dyrere å produsere og for strømkrevende og for bærbare PCer
  • FireWire trenger ingen vertsmaskin (med CPU avhengig USB kontroller)

Selv om lisensavgiften ble redusert og den nye FireWire standarden krever mindre strøm, var skaden allerede gjort. Det tredje punktet har med maktkamp mellom PC og forbrukerelektronikk industrien å gjøre.

En konklusjon kan være at vi får ulike svar avhengig av hvem vi spør. Det er like mye et spørsmål om politikk og markedsandeler som om teknologi. Og selv om FireWire er en bedre seriell buss enn USB, så er USB billigere og har større utbredelse enn FireWire. De to protokollene både konkurrerer og utfyller hverandre. PCer bør ha USB 2.0 støtte for å koble til periferiutstyr, men skal vi redigere video, bør vi også ha FireWire. Se også Get the Right Connection for All of Your Hardware av Kirk Steers i februar 2005 utgaven av PC World magazine. Mer informasjon om IEEE 1394 finnes blant annet i Roger Jennings dokument ”Fire on the Wire”.