Stranica napravljena 0 9.01.2001   


Zavod za elektroničke sustave i obradbu informacija
Fakultet elektrotehnike i računarstva
Sveučilište u Zagrebu

 

FireWire Logo

IEEE 1394 FireWire i.Link

Seminarski rad 2000/2001 god.

PowerPoint prezentacija

Uvod

     IEEE 1394 protokol (FireWire što je proizvođačka oznaka Apple-a ili i.Link Što je proizvođačka oznaka Sony-a) predstavlja jedan  od nadolažečih  sabirničkih protokola koji će biti važan činitelj nadolazeće umrežene budućnosti. U nastavku je kratki opis rada.

     Prije svega moram naglasiti da postoji mala razlika između i.Link-a i IEEE 1394(FireWire)-a. Kod i.Link-a ne postoje vodovi za napajanje uređaja preko sabirnice.
     IEEE 1393-1995 protokol imao je svoj začetak u Apple-u koji još uvijek zadržava marketinšku oznaku FireWire. Cilj protokola je omogućiti je vrlo brzu i jeftinu komunikaciju koja je laka za korištenje. Protokol je također vrlo skalabilan, omogućuje asynchronous i isochronous primjenu, dozvolu za pristupom golemoj količini memorijski mapiranog adresnog prostora i možda najvažnije peer-to-peer vezu. Trenutno odobrena specifikacija protokola je IEEE 1394-1995 specifikacija. IEEE 1394-1995 podržava brzine prijenosa od 100, 200 i 400 Mbps. 1394a predstavlja popravljeno izdanje protokola u kojem su stavljena neka objašnjenja postojećeg protokola i neki dodaci. Radi se i na 1394b specifikaciji koja će omogućiti brzine prijenosa od 800, 1600 i 3200 Mbps. te povećati udaljenosti prijenosa upletenom paricom i optikom. Standard 1394b će biti i kompatibilan sa prethodnim standardima.

Topologija

     1394 protokol je peer-to-peer mreža sa point-to-point signalnim okruženjem. Uređaji na sabirnici mogu sadržavati nekoliko portova. Svaki od tih portova se ponaša kao repeater, prenoseći sve pakete primljene od drugih portova dotičnog uređaja. Na slici 1 prikazano je što bi tipični korisnik mogao priključiti na 1394 sabirnicu.

Figure 1
Slika 1. FireWire sabirnica

Pošto je 1394 peer-to-peer protokol specifični host poput PC-a kod USB-a nije potreban. Digitalna kamere na slici 1 bi mogla slati podatke digitalnom VCR-u i DVD-RAM-u bez pomoći drugih uređaja na sabirnici. Konfiguracija sabirnice se događa automatski prilikom uključenja novog uređaja na sabirnicu. Konfiguracija počinje od leaf nodes-a(uređaja koji imaju na sebe priključen samo jedan uređaj) do uređaja za grananje. Sabirnica na koju je priključeno tri ili više uređaja će tipično, ali ne uvijek, pretvoriti uređaj sa grananjem u root node. Konfiguracija će u više detalja biti objašnjena kasnije.

1394 sabirnica se pojavljuje kao veliki memorijski mapirani prostor u kojem svaki uređaj uzima određeni adresni prostor. Memorijski prostor je baziran na IEEE 1212 Control and Status Register (CRS) arhitekturi sa nekim proširenjima specifičnim za 1394 standard. Svaki uređaj podržava do 48 bitni adresni prostor (256 TeraBytes). Zbrajanjem svaka sabirnica može podržavati do 64 uređaja, a 1394 specifikacija serijske sabirnice podržava do 1024 sabirnice. To sveukupno daje 64 adresna bita.

Prijenos i transakcija

     1394 protokol podržava asychronous i isochronous prijenos podataka.

Isochronous prijenos. Isochronous prijenos je uvijek broadcast u one-to-one ili one-to-many vladanju. Kod ovog prijenosa ne postoji provjera pogrešaka ni ponavljanje prijenosa. Za isochronous prijenos može se iskoristiti 80% dostupne širine frekvencijskog pojasa sabirnice. Dodjeljivanje bandwidth-a je praćeno od uređaja koji ima funkciju upravljanja isochronous resursima. To može ali ne mora biti root node. Maksimalna količina bandwidth-a koju isochronous uređaj može dobiti ograničena je samo brojem isochronous uređaja koji su već dobili bandwidth od isochronous resource manager-a.

Asychronous prijenos. Asychronous prijenos je usmjeren prema specifičnom uređaju sa jasnom adresom. Ne garantira mu se specifični iznos bandwith-a na sabirnici ali mu se garantira pravedno dobivanje pristupa sabirnici kada je asychronous prijenos dozvoljen. Maksimalna veličina bloka podataka asychronous paketa ustanovljuje se prijenosnim odnosom  uređaja, po specifikaciji tablice 1.

Brzina kabla

Maksimalna veličina podataka

100Mbps 512 bytes
200Mbps 1024 bytes
400Mbps 2048 bytes

Tablica 1

Asychronous prijenos je prijenos sa potvrdom. To omogućuje provjeru greška i ponovljeni prijenos ako je došlo do pogreške.

U koliko prenosimo vremenski kritične podatke tolerantne na pogreške u prijenosu (slika i zvuk) koristi se isochronous prijenos. Za podatke koji nisu tolerantni na pogrešku koristimo asychronous način prijenosa (disk drive).

Physical layer

1394 specifikacija definira četiri sloja (layers) protokola., poznatih kao physical layer, link layer, transaction layer serial bus management layer. Slojevi su prikazani slikom 2.

Figure 3
Slika 2. IEEE 1394 protocol layers

Physical layer 1394 protokola uključuje električnu signalizaciju, mehaničko spajanje i kabele, mehanizme arbitraže i serijsko kodiranje i dekodiranje podataka koji se primaju i šalju. Kabelski medij je definiran kao tro-parni oklopljeni kabel. Primjer takovog kabela prikazan je na slici 3.


Slika 3. IEEE 1394 šesto-žilni kabel 

 Dva para vodiča se koriste za prijenos dok treći par omogućava napajanje na sabirnici. Konektori su mali 6-pinski uređaji, 1394a definira i 4-pinski konektor za uređaje sa vlastitim napajanjem. Maksimalna duljina običnog kabela je 4.5m. Specijalni kabeli omogućuju veće udaljenosti.

Dva para upletenih parica korištenih za signalizaciju nazivaju se TPA i TPB, oni su bidirekcionalni i omogučuju tri stanja. TPA se koristi za slanje strobe signala i primanje podataka, dok se TPB koristi za primanje strobe signala i slanje podataka. Mehanizam signalizacije koristi data strobe kodiranje, prilično mudru tehniku koja omogućuje izvlačenje signala takta uz znatno bolju toleranciju jitter-a nego kod standardnog clock/data mehanizma. Sa data strobe  kodiranjem ili data ili strobe mijenja stanje (ali ne istovremeno). Data strobe kodiranje prikazano je na slici 4.

    Figure 4
Slika 4. Data strobe encoding

 

Konfiguracija

     Physical layer igra glavnu ulogu u konfiguraciji sabirnice. Konfiguracija se sastoji od uzimanja relativno ravne fizičke topologije i njezine transformacije u logical tree strukturu sa root node-om kao fukusnim dijelom. Sabirnica se resetira i rekonfigurira bilo kada se spoji ili odspoji uređaj. Reset se može uzrokovati i softverski. Konfiguracija se sastoji od resetiranja sabirnice, indentifikacije topologije, vlastite identifikacije.

Reset. Reset je signaliziran uređajem koji dovodi signale TPA i TPB u stanje logičke jedinice. Kada uređaj detektira reset signal, on taj signal prenosi na sve svoje portove i odlazi u nezaposleno stanje koje je vremenski tako određeno da svi uređaji na sabirnici mogu dobiti reset signal. Nakon reseta  brišu se sve informacije o topologiji mreže međutim isochronous resursi nastoje zadržati stanje tokom reseta.

Identifikacija topologije (Tree identification). Proces definira topologiju sabirnice. Nakon reseta ali prije identifikacije topologije, sabirnica ima ravnu logičku topologiju koja mapira fizičku topologiju. Nakon identifikacije topologije jedan uređaj dobiva status root uređaja. Identifikaciju topologije objasniti ću na primjeru danom slikom 1.

Nakon reseta svi leaf uređaji predstavljaju na svojim data i strobe parovima Parent_Notify signalno stanje. Ovo je samo signalno stanje, a ne neki odaslani paket. Cijeli proces identifikacije topologije događa se u nekoliko milisekunda. U primjeru na slici 1 digitalna kamera će signalizirati set-top-box-u (uređaju za grananje), printer će signalizirati digitalnom VCR-u, a DVD-RAM će signalizirati PC-u. Kada uređaj sa grananjem primi Parent_Notify signal na jednom od svojih portova on ga označi kao port koji sadrži dijete (child) i stavlja Child_Notify signalno stanje na data i strobe par tog porta. Nakon detektiranja Child_Notify signala leaf  uređaj označuje svoj port kao roditeljski (parent) i miče signalni signal sa svog porta potvrđujući time da je prihvatilo child odredište. Stanje na sabirnici do ove točke prikazano je slikom 5. 

            Figure 5
Slika 5. Sabirnica nakon identifikacije leaf uređaja

Portovi označeni kao "P" označuju da je uređaj koji je bliži root portu priključen na njih dok "C" označuje da je uređaj koji je udaljeniji od root uređaja priključen na taj port. Brojevi potova se arbitražno dodjeljuju prilikom dizajniranja uređaja i igraju važnu ulogu prilikom procesa vlastitog prepoznavanja.

Nakon što su se leaf uređaji identificirali, digitalni VCR ima još dva porta koja nisu primila Parent_Notify signal, dok PC i Set-top-box imaju po jedan port koji nije primio Parent_Notify signal. Zbog toga i PC i Set-top-box počinju signalizirati Parent_Notify signal na portovima koji taj signal još nisu primili. U ovom slučaju digitalni VCR dobiva Paren_Notify na oba preostala porta i odgovara na njih sa Child_Notify stanjem. Pošto je digitalni VCR označio sve svoje portove kao djecu on postaje root. Konačna konfiguracija prikazana je slikom 6.

         Figure 6
Slika 6. Sabirnica nakon identifikacije topologije

Primijetite da mogu doći u natjecanje za root status na kraju procesa identifikacije. To se rješava slučajnim timer-om koji onda određuje root status. Uređaj može također postati root ako zakasni svoje sudjelovanje u identifikaciji. 

Samoidentificiranje (Self identification). Jednom kada se definira topologija počinje faza samo identifikacije. Ona se sastoji od dodjeljivanja fizičkih oznaka IDs svakom uređaju pri čemu susjedni uređaji izmjenjuju mogućnosti brzine prijenosa i svi uređaji postaju svjesni postojeće topologije. Faza samoidentifikacije počinje tako da root uređaj odobri signal za arbitražu svojem portu sa najmanjim brojem. U našem primjeru digitalni VCR je root uređaj i on signalizira set-top-box. Pošto je set-top-box uređaj za grananje on će propagirati signal dozvole za arbitražu svojem portu sa najmanjim brojem koji ima priključen child uređaj. U našem slučaju na njemu je digitalna kamera. Pošto je digitalna kamera leaf uređaj ona ne može propagirati signal arbitraže dalje pa dodjeljuje sebi fizičku oznaku ID 0 i odašilje vlastiti ID paket nazad. Uređaj za grananje (set-top-box) ponavlja vlastiti ID paket na svim portovima na kojima  su priključeni neki uređaji. Naposljetku vlastiti ID paket pronađe svoj put nazad do root uređaja koji nastavlja slati vlasti ID paket na sve uređaje na portovima sa većim brojevima. Tako svi uređaji primaju vlastiti ID paket koji je odaslala digitalna kamera. Nakon primanja ovog paketa svi uređaji povećavaju svoj ID broj. Digitalna kamera tada signalizira self ID done indikaciju prema set-top-box-u koja označava da su svi uređaji na ovom portu prošli kroz proces samoidentifikacije. Set-top-boxi ne prosljeđuje ovaj signal dalje jer još nije završila proces vlastite samoidentifikacije. Root uređaj će nastaviti slati signal dozvole arbitraže na svojem portu sa najmanjim brojem koji je u ovom slučaju i dalje set-top-box. Pošto set-top-box nema više priključenih uređaja dodjeljuje si ID 1 i odašilje vlastiti ID paket nazad. Ovaj se proces ponavlja dok svi portovi na root uređaju ne prime self ID done stanje. Root uređaj si tada dodjeljuje sljedeći ID koji je ujedno i najveći na sabirnici. U našem slučaju ID brojevi uređaja će biti: digitalna kamera=0; set-top-box=1; printer=2; DVD-RAM=3; PC=4; i digitalni VCR koji je root u uređaj =5.

Primijetite da tokom procesa samoidentifikacije i "roditelji" i "djeca" izmjenjuju svoje maksimalne brzine prijenosa. Ovaj proces ukazuje na slabu točku 1394 protokola. Brzina prijenosa određena je brzinom najsporijeg uređaja u lancu. Jedini način zaobilaska ovog problema da krajnji korisnik sam posloži mrežu tako da se između dva brza uređaja ne nalazi sporiji.

Također tokom procesa samoidentifikacije uređaj koji želi postati isochronous resource manager će to indicirati u svom samoidentifikacijskom paketu. Uređaj sa najvećim ID-om koji želi postati menadžer resursa će dobiti tu čast.

Normalna arbitracija

Jednom kada je proces konfiguracije završen normalne operacije na sabirnici mogu početi. Da bi u potpunosti razumjeli proces arbitracije potrebno je poznavanja strukture ciklusa 1394 protokola

1394 ciklus je dio vremena sa nominalnim periodom od 125ms. 8kHz signal takta daje upravljač takta koji je također i  root. Za početak ciklusa upravljač takta odašilje startni paket, koji svi uređaji na sabirnici koriste za sinkronizaciju svojih vremenskih baza.

Odmah nakon startnog paketa uređaji koji žele odašiljati svoje isochronous podatke mogu se  arbitrirati za sabirnicu. Arbitraža se sastoji od signaliziranja roditeljskom (parent) uređaju da se želi dobiti pristup sabirnici. Roditeljski uređaju u sljedećem  koraku prosljeđuje zahtjev svom roditelju sve dok ne obavijesti root uređaj. Evidentno je da uređaj koji je bliži root-u pobjeđuje u  arbitraciji.

Pošto se isochronous kanali mogu koristiti samo jednom u ciklusu, kada se dogodi isochronous praznina uređaj koji je prethodno dobio arbitraciju neće sudjelovati u sljedećoj arbitraciji.

Kada je posljednji isochronous kanal odaslao svoje podatke, sabirnica postaje nezaposlena očekujući sljedeći isochronous kanal da započne arbitraciju. Pošto više nema isochronous uređaja koji čekaju za slanje podataka vrijeme besposlenog stanja sabirnice se povećava na vrijeme koje je veće od isochronous praznine dok ne dosegne vrijeme definirano kao asynchronous praznina. U ovom trenutku asinkroni uređaji mogu početi arbitraciju za sabirnicu. Arbitacija se događa po istom načelu kao kod isochronous prijenosa.

Pošto asinkroni uređaji mogu slati više od jednog paketa unutar ciklusa da ne bi jedan te isti uređaj (najbliži root-u) stalno pobjeđivao u arbitraciji koriste se takozvani intervali pravednosti i arbitracijskom "odmornom" prazninom. Koncept je jednostava- jednom kada uređaj pobjedi u asinkronoj arbitraciji i dostavi svoj paket, izbriše svoj arbitration enable bit. Kada je bit izbrisan fizički sloj više ne sudjeluje u arbitracijskom procesu, dajući uređajima dalje od root-a poštenu šansu za dobivanjem pristupa sabirnici. Nakon što su svi uređaji "očistili" svoj bit i više nema zahtjeva za asinkronim prijenosom i kada vrijeme asinkrone praznine dosegne 20m s (asinkrona reset praznina) svi uređaji mogu resetirati svoj bit za arbitraciju i ona može nastupiti ponovo.

Link layer

Link layer je interface između fizičkog i transakcijskog sloja. Link layer je odgovoran za slanje i primanje isochronous podataka. Link layer također pregledava zaglavlje paketa i utvrđuje tip transakcije koja je u tijeku. Ova se informacija onda prosljeđuje transakcijskom sloju.

Transaction layer

Transakcijski sloj se koristi za asinhrone prijenose. 1394 protokol koristi zahtjevno-odgovorni mehanizam sa potvrdom tipično generiranom sa svakom fazom. Dozvoljeno je nekoliko tipova transakcija navedenih ispod:

- jednostavno quadlet (4-byte) čitanje

- jednostavno quadlet pisanje

- čitanje varijabilne dužine

- pisanje varijabilne dužine

- zaključana transakcija (lock transactions)

Zaključane transakcije omogućuju "atomsku" izmjenu i usporedbu.

Asinkroni paketi imaju standardni format zaglavlja, pokraj opcijskog podatkovnog bloka. Slika 7 pokazuje tipični format asinkronog paketa.


Figure 8
Slika 7. Format asinkronog paketa

Transakcije mogu biti razdvojene, sabijene ili ujedinjene. Slika 8 prikazuje razdvojenu transakciju.

Figure 9
Slika 8. Razdvojena transakcija

Razdvojena transakcija se događa kada uređaj ne može dovoljno brzo odgovoriti na zahtjev transakcije. Kada je zahtjev primljen uređaj odgovara sa paketom potvrde. Potvrdni paket se šalje iza svakog asinkronog paketa. Uređaj koji šalje potvrdni paket ne mora se natjecati za kontrolu sabirnice; dobiva ju automatski.

Ako uređaj koji odgovara na transakciju može pripremiti podatke dovoljno  brzo, čitava transakcija se može ubrzati. To otklanja potrebu uređaja da se natječe za sabirnicu nakon slanja paketa potvrde.

Za pisanje podataka, potvrda također može biti odgovor na pisanje čime se transakcija ujedinjuje. Ako odgovarač može primiti podatke dovoljno brzo njegov paket potvrde može imati oznaku završeno umjesto u toku. Slika 9 prikazuje različite tipove transakcija podržanih 1394 protokolom.

Figure 10
Slika 9. IEEE-1394 tipovi transakcija

Upravljanje sabirnicom

Upravljanje 1394 sabirnicom nekoliko stupnjeva odgovornosti koje mogu biti raspoređene između različitih uređaja. Uređaji na sabirnici moraju preuzeti uloge upravljača ciklusa, upravljača isochronous resursima i upravljača sabirnice.

Upravljač ciklusa. Upravljač ciklusa započinje 125ms cikluse. Root Uređaj mora bit upravljač ciklusa; ako uređaj koji je postao root nije u mogućnosti biti upravljač ciklusa, sabirnica se resetira i uređaj sa tom mogućnosti je prisiljen postati root. Upravljač ciklusa odašilje startni paket svakih 125ms.Startni ciklus može biti zakašnjen dok se šalje ili potvrđuje asinkroni paket. Upravljač ciklusa rješava ovo kašnjenje uključivanjem određenog iznosa vremena za kojeg je ciklus bio zakasnio u ciklusni startni paket.

 Upravljač isochronous resursima. Upravljač isochronous resursima mora biti u stanju obavljati isochronous transakcije. Također mora implementirati nekoliko dodatnih registara. Ti registri uključuju ID registar upravljača sabirnice, sabirnićki bandwidth alokacijski registar i registar alokacije kanala. Alokaciju isochronous kanala  izvodi uređaj koji želi slati isochronous pakete. Ti uređaji moraju alocirati kanal iz registra za alociranje kanala čitajući bitove u 64-bitnom registru. Svaki kanal ima dodijeljen mu bit. Kanal je dostupan ako mu je njegov bit postavljen u logičku jedinicu. Uređaj koji zahtjeva kanal postavlja prvi dostupni bit kanala u nulu i uzima broj tog bita kao ID kanala.

Zahtijevajući uređaj mora dodatno ispitati registar koji pokazuje dostupni bandwidth da bi utvrdio koliko je bandwidth-a preostalo. Ukupna količina dostupnog bandwidth-a je 6144 alokacijskih jedinica. Jedna alokacijska jedinica predstavlja vrijeme potrebno za prijenos jednog quadlet (4-byte) pri 1600Mbps. Ukupno 4915 alokacijskih jedinica je dostupno za isochronous prijenos ako se koristi bilo koji asinkroni prijenos. Uređaji koji žele obavljati isochronous prijenos moraju oduzimati potrebnu količinu banwidth-a od registra dostupnog bandwidth-a.

Upravljač sabirnice. Upravljač sabirnice ima nekoliko funkcija koje uključuju publiciranje topologije i mapa brzina, upravljanje napajanjem  i optimizacija prometa sabirnicom. 

Upravljač sabirnice je također odgovoran za ustanovljavanje da li je uređaj koji je postao root sposoban generirati takt, u slučaju da nije upravljač sabirnice traži uređaj koji je to sposoban i prisilnim resetom sabirnice postavlja taj uređaj root uređajem. Upravljač sabirnice ne mora uvijek pronaći sposoban uređaj; u tom slučaju se barem neke funkcije upravljanja sabirnicom izvode uz pomoć upravljača isochronous resursa.

Zaključak

IEEE 1394 protokol predstavlja brz i lak način za međusobno približavanje računala, potrošačke opreme (TV,  DVD, digitalne kamere ...) i komunikacijske opreme. Omogućuje vrlo velike brzine prijenosa, podršku isochronous načinu prijenosa (jeftini interface za multimedijalne aplikacije), uključenje i isključenje uređaja za vrijeme rada, dinamičku rekonfiguraciju te peer-to-peer podršku. Za razliku od USB-a koji zahtjeva PC za rad, IEEE 1394 može raditi i bez njega. Sve ove prednosti čine dodavanje uređaja na 1394 sabirnicu jednostavnim poput uključenja bilo kojeg kućanskog aparata. Jedan od nedostataka FireWire-a je relativno kratki kabeli (4.5m) međutim poboljšanja protokola (1394b) omogućiti će duljine kabela do 100 metara. Predložena poboljšanja i dodatne mogućnosti protokola uključuju povećanje brzine prijenosa, kućne mreže, optički prijenos i bežični IR prijenos.

Literatura

1. IEEE MultiMedia IEEE 1394 Standard
    http://www.ieee.org

2. The 1394 Trade Association home page.
    http://www.1394ta.org 

3. FireWire World
    http://www.FireWireWorld.com

4. FireWire uređaji
    http://www.FireWireStuff.com

 

Izradio  Alen Radošević