Arhitektura USB-a

Osnovni elementi USB-a su USB veze, USB host i USB uređaji.

USB VEZE

Iako koncipiran kao sabirnica, USB ima topologiju zvijezde. Početni čvor je root hub na prvoj razini. Na njega se dalje spajaju uređaji i hubovi nižih razina, a najveći broj razina je 7 (dakle, između root huba i krajnjeg uređaja smije biti najviše 5 hubova). USB topologija prikazana je na slici 1.

 

Arhitektura USB-a

Slika 1. Arhitektura USB-a

Iako koncipiran kao sabirnica, USB ima topologiju zvijezde. Početni čvor je root hub na prvoj razini. Na njega se dalje spajaju uređaji i hubovi nižih razina, a najveći broj razina je 7 (dakle, između root huba i krajnjeg uređaja smije biti najviše 5 hubova). USB topologija prikazana je na slici 1.

USB HOST

U sustavu može postojati samo jedan host, i on sadrži početni (root) hub. Također sadrži i host kontroler, sučelje USB-a prema računalu na kojem se nalazi. Upravlja detekcijom, spajanjem i odspajanjem uređaja, upravlja kontrolnim i podatkovnim prijenosima, vodi nadzor i statistiku USB-a, te osigurava napajanje priključenim uređajima.

USB UREĐAJI

Pod USB uređajima smatramo hubove koji omogućuju spajanje dodatnih uređaja na USB, i uređaje, odnosno funkcije, kao što su ISDN adapteri, zvučnici, printeri, itd. Pristupa im se preko adrese koja im je dodijeljena kod spajanja, a komuniciraju preko jednog ili više pipeova, uz obavezan kontrolni pipe.
Hubovi omogućuju spajanje više uređaja preko svojih portova. Hub ima jedan upstream port koji se spaja prema hostu, dok se na downstream portove spajaju drugi hubovi ili funkcije. Hub repeater služi kao posrednik između up- i downstream portova, hub kontroler komunicira s hostom radi konfiguracije i nadzora, a transaction translator omogućuje komunikaciju s hostom high-speed, a s ostalim uređajima full/low-speed prijenosom.
Funkcije su uređaji koji primaju ili šalju podatke USB-om. Funkcija može biti zaseban uređaj koji se spaja na hub, ili višefunkcijski uređaj kojeg host vidi kao hub s jednim ili više uređaja koji se ne mogu odspojiti. Prije početka rada funkcija mora biti konfigurirana od hosta.

ELEKTRIČKO POVEZIVANJE

USB prenosi signale i napajanje preko 4 žice: dva upletena voda za diferencijalni prijenos signala (D+ i D-), te GND i VBUS vodova za napajanje od 5 V na izvoru. Maksimalna duljina jednog segmenta kabla može iznositi do 5 metara. Shematski prikaz USB kabla dan je na slici 2.

USB kabel

Slika 2. USB kabel

USB podržava 3 načina prijenosa:
High-speed (480 Mbit/s)
Full-speed (12 Mbit/s)
Low-speed (1,5 Mbit/s)

Host i hubovi omogućuju da se full- i low-speed prijenosi od hosta do huba prenose kao high-speed, a od huba do uređaja prema potrebi (high-, full- ili low-speed), čime se ne ometa širina pojasa za high-speed prijenos. Svaki uređaj priključen na USB može imati vlastito napajanje, ili može uzimati energiju iz USB-a, pri čemu to napajanje osiguravaju host i hubovi.

PROTOKOL

Svaki prijenos podataka započinje host. Komunikacija se najčešće sastoji od 3 paketa: host u redovitim razmacima šalje određenom uređaju token s informacijama o prijenosu, zatim slijedi paket u smjeru određenom tokenom (od uređaja prema hostu, ili obrnuto), te na kraju slijedi handshake paket kojim odredište obaviještava izvor da su podaci primljeni.

ROBUSNOST

Osobine USB-a koje doprinose robusnosti su diferencijalni prijenos podataka, oklopljen kabel, posebni CRC-ovi za kontrolna i podatkovna polja u paketima (100% zaštita od 1- i 2-bitnih pogrešaka), detekcija spajanja/odspajanja (attacha/detacha), te kontrola toka izokronih podataka.

SPAJANJE I ODSPAJANJE

Uređaji se na USB spajaju preko hubova. Hub ima status-bitove koji bilježe spajanje (attach) i odspajanje (detach) uređaja s USB-a, a koje host redovito provjerava. Novopriključeni uređaj od hosta dobiva jedinstvenu USB adresu, a ukoliko je taj uređaj hub sa dodatno priključenim uređajima na sebi, i ti uređaji dobivaju adrese. Kod odspajanja, hub javlja hostu novo stanje, a ukoliko je odspojeni uređaj bio hub, detach se mora provesti i za uređaje koji su eventualno bili spojeni na njega. USB omogućava ''vruć'' attach i detach, odnosno uređaje se smije spajati i odspajati tijekom rada USB-a.

PRIJENOS PODATAKA

Prijenos podataka se vrši izmeđ u softvera na hostu i određenog dijela USB uređaja, i ta veza naziva se pipe (cjevovod). Pipe može biti jednosmjeran ili dvosmjeran, tokovi podataka u različitim pipeovima su nezavisni, a između određenog uređaja i hosta može postojati više pipeova. Frekvencijski pojas pipeovima se dodijeljuje po njihovom uspostavljanju. Od uređaja se očekuje da imaju buffere, i to veličine proporcionalne širini pojasa koju trebaju za prijenos podataka (veća širina pojasa = veći buffer).

Vrste prijenosa:

KONTROLNI PRIJENOS: koristi se kod spajanja ili za druge potrebe uređaja (npr. kotrola pipeova); omogućava prijenos bez gubitaka informacija.

BULK (masovni) PRIJENOS: koristi se za "bursty" promet podataka (npr. printeri, scanneri); u slučaju pogreške, hardver može ograničen broj puta tražiti ponavljanje; širina pojasa nije stalna.

INTERRUPT (prekidni) PRIJENOS: postoji zadrška u pijenosu, a uređaj određuje kada će i kojom brzinom doći do prijenosa, što je bitno ukoliko se očekuje određena interakcija.

IZOKRONI PRIJENOS: izokroni podaci su kontinuirani u postanku, prijenosu i predaji (npr. zvuk). Moraju biti predani istom brzinom i istim redoslijedom kojim su primljeni, a dozvoljene zadrške ovise o bufferima na prijemnoj i predajnoj strani (ukoliko i sam softver ne unosi kašnjenje). Ukoliko dođe do pogreške u prijenosu, retransmisija nije omogućena, pa se očekuje da je bit error rate USB-a dovoljno mali. Širina pojasa je stalna.