FireWire

Istorija ir raida

FireWire yra Apple Computer sugalvotas pavadinimas IEEE 1394 didelės spartos nuosekliajai sąsajai IEEE 1394. Šią sąsają sukūrė Apple, vėliau tobulino IEEE P1394 darbo grupė, kurioje dirbę nariai iš Apple atliko didelę dalį darbo, nors, esminiai pakeitimai taip pat buvo pasiūlyti inžinierių iš Texas Instruments, Sony, Digital Equipment Corporation, IBM ir SGS Thomson (dabar STMicroelectronics).
Apple sumanė FireWire kaip nuoseklų pakaitalą lygiagrečiai SCSI sąsajai, bei skaitmeninių vaizdo ir garso įrenginių prijungimui. Savo darbą Apple baigė 1995-aisiais. Nuo 2006-ųjų, IEEE 1394 sudaro trys dokumentai: originalusis IEEE standartas 1394-1995, IEEE standarto pataisa 1394a-2000 ir IEEE standarto pataisa 1394b-2002 (taip pat egzistuoja pataisa 1394c, kuri suteikia 800 Mbit/s greičio palaikymą  100 m ilgio 5-tos kategorijos neekranuotu vytos poros kabeliu).
Sony realizacija žinoma pavadinimu i.Link ir naudoja tik keturis signalo kontaktus, nenaudojant dviejų kontaktų, tiekiančių maitinimą įrenginiui, vietoje to Sony i.Link produktuose naudojamas atskiras maitinimo kabelis.
Sąsaja dažniausiai naudojama duomenų saugojimo įrenginių ir skaitmeninių vaizdo kamerų prijungimui, tačiau taip pat yra populiari pramoninėse sistemose mašininiam regėjimui bei profesionalioms garso sistemoms. Ši sąsaja naudojama vietoje labiau įprastos USB dėl didesnio jos efektyvaus greičio, didesnių energijos tiekimo galimybių ir dėl to, kad ji nereikalauja valdymo centro kompiuteryje. Turbūt dar svarbiau yra tai, kad FireWire turi visas SCSI galimybes, ir palyginus su USB 2.0 turi didesnius ilgalaikio duomenų perdavimo greičius, kas yra ypač svarbu vaizdo ir garso redagavimui.
Mažas mokestis, kurio reikalavo Apple Computer ir kiti patento turėtojai iš FireWire naudotojų (0.25 USD už vieną galutinio vartotojo sistemą) ir brangesnė techninė įranga, reikalinga sąsajos realizavimui (1–2 USD) neleido FireWire išstumti USB pigiuosiuose masinės gamybos išoriniuose kompiuterių įrenginiuose, kur produkto kaina yra esminis apribojimas.

Techninės specifikacijos

FireWire gali sujungti iki 63 išorinių kompiuterio įrenginių į kryptinio aciklinio grafo topologiją (kitaip nei lygiagrečiosios SCSI elektrinės sąsajos topologija). Tai leidžia „lygus su lygiu“ (angl. peer-to-peer) įrenginių tarpusavio bendravimą, tokį kaip bendravimas tarp skenerio ir spausdintuvo be kompiuterio operatyvinės atminties ar centrinio procesoriaus panaudojimo. FireWire taip pat palaiko keletą serverių sąsajai. Ji sukurta taip, kad palaikytų „įjunk ir grok“ (angl. plug-and-play) ir prijungimą veikiant (angl. hot swapping). Jos šešių laidų kabelis yra lankstesnis nei dauguma lygiagrečiųjų SCSI kabelių ir gali tiekti iki 45 vatų energijos 30 voltų įtampos vienam prievadui, leisdama vidutinio suvartojimo įrenginiams veikti be papildomo energijos tiekimo. Kaip anksčiau minėta, Sony gaminami i.Link paprastai srovės tiekimo tuo pačiu kabeliu nepalaiko ir naudoja 4-ių kontaktų jungtį, srovę tiekiant atskiru maitinimo kabeliu kiekvienam įrenginiui.
FireWire įrenginiai realizuoja ISO/IEC 13213 „konfigūravimo ROM“ modelį įrenginių konfigūravimui ir identifikavimui, siekiant įgalinti „įjunk ir grok“. Visi FireWire įrenginiai yra identifikuojami pagal IEEE EUI-64 unikalų identifikatorių (išplėtimas 48-bitų Ethernet MAC adresų formatui), taip pat nustatytus kodus nurodančius įrenginio tipą ir palaikomus protokolus.

Operacinių sistemų palaikymas

Pilnas IEEE 1394a ir 1394b palaikymas yra FreeBSD, Linux ir Apple Mac OS X operacinėse sistemose. Microsoft Windows XP palaiko 1394a ir 1394b, tačiau nuo „service pack 2“ greitis pagal nutylėjimą visiems FireWire įrenginių tipams yra S100 (100 Mbit/s). Parsisiuntimas ir registro pakeitimai teikiami Microsoft atstato greitį į S400 arba S800. Microsoft Windows Vista pradžioje palaikys 1394a, o 1394b palaikymas išeis vėliau su „service pack“.

Mazgų hierarchija

FireWire įrenginiai sąsajoje jungiami į medžio topologiją. Kiekvienas įrenginys turi unikalų nuosavą identifikatorių. Vienas iš mazgų išrenkamas šakniniu ir visuomet turi aukščiausią identifikatorių. Nuosavi identifikatoriai priskiriami saviidentifikavimo proceso metu, kuris vyksta po kiekvieno sąsajos perkrovimo (angl. reset). Eilės tvarka, kuria saviidentifikatoriai suteikiami tolygi medžio apėjimui paieškos į gylį algoritmu, galinio eiliškumo būdu (angl. post-order).

FireWire 400

FireWire 400 duomenų persiuntimo tarp įrenginių greitis gali būti 100, 200 arba 400 Mbit/s (tikrieji greičiai yra 98,304, 196,608 ir 396,216 Mbit/s, tai yra atitinkamai 12,288, 24,576 ir 49,152 megabaitai per sekundę). Šie skirtingi duomenų siuntimo režimai paprastai vadinami S100, S200 ir S400. Nors teoriškai USB 2.0 gali veikti 480 Mbit/s greičiu, testai rodo, kad šis greitis retai yra pasiekiamas. Taip gali būti dėl USB „klientas – serveris“ architektūros, kitaip nei „lygus su lygiu“ FireWire architektūros ir „atvaizdavimo į atmintį“ palaikymo, kas leidžia aukšto lygio protokolams veikti nesukeliant daugybės pertraukimo ir buferio kopijavimo operacijų serverio procesoriuose.
Kabelio ilgis ribojamas iki 4,5 metrų, tačiau iki 16 kabelių gali būti sujungti nuosekliai naudojant aktyvius kartotuvus, išorinius šakotuvus, kurie dažnai yra FireWire įrangoje. S400 standartas riboja bet kurios konfigūracijos maksimalų kabelio ilgį iki 72 metrų. 6-ių kontaktų sąsaja paprastai yra staliniuose kompiuteriuose, ji gali tiekti maitinimą prijungtam įrenginiui. 4-ių kontaktų versija naudojama daugelyje nešiojamųjų kompiuterių ir mažų FireWire įrenginių ir neturi maitinimo kontaktų, nors yra pilnai suderinama su 6-ių kontaktų sąsaja. Kai kurie nešiojamieji kompiuteriai naudoja 6-ių kontaktų sąsają su maitinimu, pavyzdžiui, naujausi Apple produktai.

FireWire 800

FireWire 800 (firmos Apple sugalvotas pavadinimas 9-ių kontaktų „dvikalbio S800“ IEEE 1394b standarto versijai) pradėta naudoti firmos Apple produktuose 2003 metais. Ši naujesnė IEEE 1394 sąsajos specifikacija ir atitinkami produktai leidžia perdavimo greitį padidinti iki 786,432 Mbit/s išlaikant antgalių suderinamumą su mažesniais greičiais ir 6-ių kontaktų FireWire 400 sąsaja.
Pilna IEEE 1394b specifikacija palaiko optinius sujungimus siekiančius 100 metrų ilgį ir duomenų perdavimo greičius iki 3,2 Gbit/s. Standartinės 5-tos kategorijos neekranuotos vytos poros 100 metrų ilgio kabeliu palaikoma S100, o naujoji p1394c technologija leidžia pasiekti S800. Originalusis 1394 ir 1394a standartai naudojo kodavimą duomenys/impulsas (angl. data/strobe arba D/S) signalo laidais (dar vadinamą liktiniu režimu), o 1394b prideda duomenų kodavimo schemą pavadinimu 8B10B (taip pat vadinamą beta režimu). Naudojant šią naują technologiją, FireWire, kuris jau prieš tai buvo šiek tiek greitesnis, dabar žymiai pranoksta Greitaeigį (angl. Hi-Speed) USB.

Tinklas per FireWire

FireWire, padedant programinei įrangai, gana gerai tinka vietiniam kompiuterių tinklui. Konkrečiai RFC 2734 nusako kaip leisti IPv4 per FireWire sąsają, o RFC 3146 nusako kaip leisti IPv6.
Populiarios operacinės sistemos GNU/Linux, Windows XP ir Mac OS X palaiko tinklą per FireWire. Tinklas tarp dviejų kompiuterių gali būti sukurtas nenaudojant šakotuvų, panašiai kaip aukščiau minėtas skenerio ir spausdintuvo pavyzdys. Naudojant vieną FireWire kabelį, duomenys gali būti greitai perduoti tarp dviejų kompiuterių minimalia tinklo konfigūracija. "Dėl nepopuliarumo", Microsoft pašalino tinklo per FireWire palaikymą Windows Vista operacinėje sistemoje.

Saugumo problemos

Įrenginiai prijungti prie FireWire magistralės gali bendrauti naudodami tiesioginį priėjimą prie atminties, kai įrenginys gali naudoti techninę įrangą vidinės atminties susiejimui su FireWire „Fizinės Atminties Erdve“. Nuosekliosios magistralės protokolas (SBP – angl. serial bus protocol), naudojamas FireWire diskinių atmintinių šią galimybę išnaudoja tam, kad sumažintų pertraukimų ir buferių kopijavimo operacijų kiekį. SBP protokole, iniciatorius (valdantysis įrenginys) siunčia užklausą nuotoliniu būdu įrašydamas komandą į nurodytą tikslinio įrenginio FireWire adresų erdvę. Šios komandos buferio adresas paprastai yra iniciatoriaus FireWire „Fizinės Atminties Erdvėje“, kuriais tikslinis įrenginys turėtų perkelti įvedimo/išvedimo duomenis į ir iš iniciatoriaus.
Daugelyje realizacijų, ypač tokių kaip personalinių kompiuterių ir Makintošų naudojančių populiarųjį OHCI, FireWire „Fizinės Atminties Erdvės“ susiejimas su įrenginio atmintimi vykdomas techninės įrangos, nesikišant operacinei sistemai. Nors tai ir įgalina ypač didelio greičio ir mažo gaišties laiko duomenų persiuntimą tarp duomenų siuntėjo ir priėmėjo be nereikalingo kopijavimo (kaip, pavyzdžiui, tarp vaizdo kameros ir programinės vaizdo įrašymo įrangos arba tarp diskinio kaupiklio ir programos buferių), taip pat tai gali sukelti papildomą saugumo riziką jei nepatikimi įrenginiai prijungiami prie magistralės. Dėl šios priežasties didelio saugumo instaliacijos paprastai turi naujesnius įrenginius, kurie susieja virtualią atminties erdvę su FireWire „Fizinės Atminties Erdve“, išjungia OHCI techninį susiejimą tarp FireWire ir įrenginio atminties, fiziškai išjungia visą FireWire sąsają arba visai neturi FireWire.
Šią galimybę taip pat galima panaudoti programinių klaidų ieškojimui kompiuteryje, kurio operacinė sistema nulūžo ir kai kuriose sistemose nutolusio terminalo operacijoms. FreeBSD operacinėje sistemoje, dcons tvarkyklė leidžia tiek viena tiek kita, panaudojant gdb kaip derinimo programą. Linux operacinėje sistemoje tam egzistuoja, firescope ir fireproxy.