Co je to IrDA

IrDA je standard vytvoreny IrDA konzorciem(Infrared Data Association), ktery definuje jak bezdratove prenaset digitalni data pomoci infracerveneho zareni. IrDA ve svych specifikacich definuje standardy jak fyzickych koncovych zarizeni tak protokolu jimiz komunikuji IrDA zarizeni.

IrDA standard vznikl z potreby mobilne propojit ruzne zarizeni mezi sebou (hlavni vyuziti IrDA je pro spojeni notebooku ci ruznych personalnich komunikatoru, ale IrDA rozhranim jsou vybavovany napriklad i videokamery).

Fyzicka vrstva


IrDA zarizeni komunikuji pomoci infracervenych LED diod s vlnovymi delkami vyzarovaneho svetla 875 nm +- tolerance vyroby (asi 30nm). Na tuto vlnovou delku jsou citlive i mnohe CCD kamery. Prijimacem jsou PIN fotodiody, ktere pracuji v generacnim rezimu (pri dopadu svetla na prijimac "vyrazi" svetlo elektrony, ktere se odvadi do filtru (elektrickeho) ktery propusti jen ty frekvence ktere jsou povoleny pro dany typ IrDA modulace). Existuje prima umera mezi energii dopadnuteho zareni a nabojem ktery opticka cast prijimace vygeneruje.

Dosah a pouzivane rychlosti IrDA


IrDA zarizeni dle normy IrDA 1.0 a 1.1 pracuji do vzdalenosti 1.0 m pri bitove chybovosti BER (bit error ratio, pomer chybne prenesenych bitu ku spravne prenesenym) 10-9 a maximalni urovni okolniho osvetleni 10klux (denni svit slunce). Tyto hodnoty jsou definovany pro nesouosost vysilace a prijimace 15 stupnu, pro jednotlive opticke prvky se meri vykon do 30 stupnu. Jsou smerove vysilace (IR LEDky) pro vetsi vzdalenosti, ktere nedodrzuji predepsany uhel 30 stupnu od osy pro ktery ma vysilac utlum 3 dB.

Rychlosti jsou pro IrDA v. 1.0 od 2400 do 115200 kbps, pouziva se pulsni modulace 3/16 delky puvodni doby trvani bitu. Format dat je stejny jako na seriovem portu, tedy asynchronne vysilane slovo uvozene startbitem.


Vysilaci strana muze pouzivat bud 3/16 delky trvani bitu nebo pouzivat fixni delku optickeho impulsu 1.63 us, coz by odpovidalo rychlosti 115kbps - pri fixni delce a rychlosti 38400 bps by vysly na 1 vysilany bit 3 svetelne impulsy (bliknuti).

IrDA v. 1.1 definuje navic rychlosti 0.576 a 1.152 Mbps s pulsnim kodovanim 1/4 delky doby trvani puvodniho bitu (strida 1/4). Pri techto rychlostech je jiz zakladni jednotka (paket) vysilan synchronne uvozen startovni sekvenci. Signal NRZ v obrazku je puvodni datovy tok bez modulace.


Paket se sklada ze dvou startovnich slov nasledovanych cilovou adresou (IrDA zarizenim se prirazuji cisla v ramci IrDA protokolu, aby se zarizeni jednoznacne poznaly) a dat ukoncenych CRC-16 a stop slovem. Cely paket (ramec) vcetne CRC-16 generuje IrDA komp. chipset. Startovaci a stop slovo se nikde jinde v toku dat nemuze objevit - start a stop slovo trva 1.5nasobek doby trvani bitu (6*delsi bliknuti nez obvykle).


Pro rychlost 4 Mbps se pouziva zakzvana 4PPM modulace se stridou 1/4, v niz se 2 bity informace zakoduji do pulsu v jednom ze ctyr moznych casovych pozic (chipu), nositelem informace je zde tedy pozice pulsu v case namisto existence pulsu jako u predchozich modulaci. Napriklad bity 00 se vyslou jako sekvence 1000 (blik-nic-nic-nic), bity 01 jako 0100 , bity 11 jako 0001.


Duvodem pouziti 4PPM modulace je to, ze je potreba 2* mene bliknuti LED diody nez v predchazejicich modulacich - lze tedy prenaset data 2* rychleji. Krome toho se prijimaci lepe udrzuje uroven ostatniho osvetleni - pri 4PPM modulaci dopada na prijimac konstantni pocet opt. pulsu za danou dobu.
Vysilac pri bitove rychlosti 4Mbps blika v rytmu 2MHz. Pakety pri teto modulaci maji ovsem narozdil od rychlosti 0.576 a 1.152 Mbps pouzit kontrolni kod CRC-32. Vetsina chipsetu ktere umi tuto modulaci generuje CRC-32 samo o sobe a pri prijmu je kontroluje - nektere chipsety (ty co jsem studoval) spatne prijate ramce zahazuji.


IrDA definuje jeste tzv. low-power IrDA zarizeni s dosahem do 20 cm a max. rychlosti 115kbps (ala IrDA 1.0). Limitnim faktorem dosahu je intenzita zareni na prijimaci v mW/cm2 , pro vyssi bitove rychlosti je minimalni hodnota vyssi, pro nizke bitove rychlosti (dlouhe opticke impulsy) se mozna vzdalenost IrDA zarizeni prodluzuje (coz se sice v norme nepravi, ale souvisi to s mnozstvim dopadnuteho zareni - kratke pulsy s malou energii povazuje prijimac za sum, je treba pulsy prodlouzit ci zvysit jejich energii aby je filtr prijimace zaregistroval).

Proc se pouziva pulsni modulace?


Prijimac musi mit moznost rozlisit mezi urovni okolniho osvetleni, rusenim a prijimanym signalem. Pro tento ucel je vyhodne pouzivat co nejvetsi vysilaci vykon, protoze cim vetsi vykon tim vetsi proud v prijimaci -> vetsi odstup signal/sum. Vysilaci infradiody ovsem nemohou vysilat maximalnim vykonem 100% casu, pouziva se proto strida jen 3/16 ci 1/4 celkove doby trvani bitu s 4 az 5 nasobnym vykonem jez by byl mozny pri neprerusenem svitu diod. Kdyz vezmeme v uvahu, ze prenosova cesta neprenasi stejnosmernou slozku (prijimac se neustale prizpusobuje prumernemu osvetleni a detekuje jen zmeny) tak je pouziti pulsni modulace nutne. Integrovane IrDA transceivery (kombinovana vysilaci infra LED dioda a prijimaci PIN fotodioda) maji jiz zabudovany filtry ktere zabranuji ruseni mimo frekvencni oblast IrDA 2400-115200 bps a 0.576-4 Mbps (2Mbliky/sec).

Protokoly pouzivane IrDA zarizenimi



Vyrabene IrDA soucastky


Z vlastni zkusenosti mohu pouze popsat nekolik soucastek od firmy Hewlett Packard, ktera vyrabi jak samotne IrDA vysilace (infra LED), prijimace i transceivery (integrovany prijimac s vysilacem v jednom pouzdre). Pro rychlosti do 115kbps (IrDA 1.0) se prodava transceiver HSDL-1000, ktery pracuje v halfduplexnim rezimu. Jeho zapojeni je velice jednoduche, vedle pouzdra samotneho transceiveru je pouze par kondenzatoru pro potlaceni ruseni a filtraci signalu. tyto kondenzatory musi byt umisteny co nejblize transceiveru, nejlepe do vzdalenosti 0.7cm. Protoze HSDL-1000 je SMD soucastka, je nejlepsi ji umistit na tistak s druhou stranou pokovenou a prizemnenou (kvuli odstineni ruseni).
Rychlejsi verze transceiveru ma typove oznaceni HSDL-1100 a umi i rychlosti FIR (az 4Mbit/sec). S touto soucastkou jsem mel ovsem problemy, protoze pri spatnem zapojeni se z FIR vystupu stane oscilator. Soucastka je mnohem nachylnejsi k ruseni a zpetnevazbeni nez HSDL-1000 (pouze na FIR vystupu).

Dalsi ze soucastek HP ktere se daji sehnat jsou vysilaci LED infradiody HSDL-4230 a HSDL-4220. Jsou to LED diody ktere snesou rychlost modulace az 10Mbitu, proud 0.5 A pri stride 0.2, resp. proud 100mA pri neustalem svitu. Dve verze LED diod v teto rodine HSDL-4200 se lisi pouze vyzarovacim uhlem (HSDL-4220 ma vyzarovaci uhel 30°, zatimco HSDL-4230 pouze 17°).


HSDL-1000

HSDL-1100

Hewlett Packard dela i samotne PIN prijimace a kodery/dekodery IrDA modulace. Integrovany koder/dekoder IrDA modulace 115kbps lze koupit pod typovym oznacenim HSDL-7000. Je to integrovany obvod s 8 vyvody kteremu se krome napajeni a privodu/vyvodu serioveho portu a vstupu/vystupu modul. signalu privadi jeste 16* bitove frekvence serioveho portu (pro 115kbps je to frekvence 115200*16=1.8432 MHz). Mel jsem moznost vyzkouset i koder/dekoder HSDL-7001 ale ten nabizi navic pouze nektere funkce (jako napr. integrovany delic kmitoctu ci moznost pripojeni pasivniho XTALu primo na svoje vyvody). Navic integrovany delic kmitoctu na nem funguje pouze pro Ir vstup, nikoli pro vystup.

Schema zapojeni modulatoru 3/16 HSDL-7000

Hewlett Packard neni samozrejme jediny vyrobce IrDA komponent. Z dalsich jmenuji napriklad Texas Instruments, ktery vyrabi UARTty TIR1000 a TIR2000. TIR2000 ma jiz zabudovan radic pro 4Mbps modulaci (pouziva DMA mod). Vyrobcu UARTu je vice, napr. i National Semiconductor vyrabi svoje verze. TI ci NS budou asi dve nejsehnatelnejsi firmy u nas co se tyce UARTu.


Odkazy na vyrobce IrDA soucastek


Zde jsou odkazy na www stranky ruznych vyrobcu IrDA zarizeni.

IBM
Hewlett Packard
HP ir chip directory
HP ir center
Texas Instruments
National Semiconductor PC87109
Vishay-Telefunken (TEMIC)
TEMIC

Podpora IrDA v Linuxu


Nemusim se zde zminovat o podpore IrDA protokolu u produktu firmy Micro$oft, misto toho upozornuji na projekt The Linux/IR Project, kteryzto si klade za cil zakomponovat protokoly IrDA do jadra Linuxu. Zdrojove kody jsou testovany na vyvojovych jadrech Linuxu (2.1.xxx)
Projekt IrDA pro Linux

Postrehy z praxe


Pri laborovani s IrDA prenosem dat jsme meli na mysli prenos na mnohem delsi vzdalenosti nez je 1 metr specifikovany IrDA standardem. Pri pouziti infra LED diod s polovicnim vyzarovacim uhlem (17 stupnu misto 30) jsme se bez pridavne optiky dostali asi na 4 metry pri bitove rychlosti 115 kbps. Za jistou hranici ma prijimac tendenci zacit vypoustet jednotlive pulsy, resp. zmensovat jejich amplitudu a dobu trvani (ac by mel byt vystup prijimace "digitalni" tak je videt ze je to pouze analogovy obvod). Pro pouziti na vetsi vzdalenosti (pozadavek byl prenaset data na 200metru) je tedy treba pridavne optiky. Pro dalsi prodlouzeni vzdalenosti je mozne zmensit rychlost prenosu dat - prodlouzit delku trvani pulsu. Zjistili jsme, ze pri snizeni rychlosti 4x lze vzdalenost prodlouzit 2x - tedy plati co jsem napsal o detekci pulsu pomoci urciteho mnozstvi energie nutneho k pruchodu filtrem prijimace.

Protoze cilem bylo spojit dva Linuxove stroje a spustit na seriove lince protokol ppp, vytvorili jsme pridavnou logiku (1 hradlo ;) ktera mela za ucel pri neaktivnim signalu DTR vysilat neustale impulsy a tim druhe strane signalizovat zaveseni linky. Vedlejsi efekt tohoto obvodu je ten ze kdyz se vytahne z pocitace seriovy kabel do IrDA pojitka, zacne pojitko vysilat nepretrzite jako kdyby pocitac pomoci signalu DTR zavesil. Lze toho vyuzit pri ladeni - hledani signalu. Navic lze na jedne strane spojit vysilani s prijmem a pouzivat IrDA linku jako nekolikasetmetrovy loopback - idealni pro zjisteni zda je spojeni kvalitni v obou smerech bez nutnosti litat na druhou stranu.

S pouzitou optikou a po dlouhe dobe laborovani jsme zjistili, ze pro vzdalenosti mensi nez priblizne 80 metru (pri rychlosti 115 kBd) neni mozne pojitko pouzivat v fullduplexnim modu, protoze se vysilany paprsek vraci odrazem od optiky na druhe strane a dela echo. To same plati pro pripady, kdy je v ceste signalu nejaky predmet odrazejici paprsek zpet - typicky okno.

Co se tyce nasmerovani pojitek na sebe, je nutne velmi tuhe ukotveni s moznosti jemne natacet pojitka tak, aby byla v ose. Pro rozumnou bitovou chybovost je treba nasmerovat je na sebe s presnosti zhruba metru (pri jejich vzdalenosti 200m - jde tedy o zhruba polovicku uhloveho stupne). Kriticke pritom neni nasmerovani pro prijimaci cast, ale pro vysilaci. Nejlepsi dosazene chybovost je asi 0.0006 % vadnych paketu (MTU=296 bytu, pingovani s delkou paketu 64 bytu), resp. priblizne kazdy 170000 paket je vadny. V druhem smeru je statistika paketu asi 4x horsi - vliv nepresnosti nastaveni. Normalni dest tomu evidentne nevadi (prsi uz druhy den), pouze poradny slejvak nebo prime slunicko svitici do optiky.

ppp0      Link encap:Point-to-Point Protocol  
          inet addr:10.1.2.4  P-t-P:10.1.1.4  Mask:255.255.255.0
          UP POINTOPOINT RUNNING  MTU:296  Metric:1
          RX packets:49724542 errors:233 dropped:233 overruns:0 frame:0
          TX packets:49625500 errors:0 dropped:0 overruns:0 carrier:0 coll:0
Toto je statistika ppp linky 115kbps full duplex pri desti (200m)
ppp0      Link encap:Point-to-Point Protocol  
          inet addr:10.1.2.4  P-t-P:10.1.1.4  Mask:255.255.255.0
          UP POINTOPOINT RUNNING  MTU:296  Metric:1
          RX packets:25255596 errors:18 dropped:18 overruns:0 frame:0
          TX packets:25276229 errors:0 dropped:0 overruns:0 carrier:0 coll:0
a toto pri dobrem pocasi a jinem nastaveni(opet 200m)



V textu jsou pouzity obrazky z www stranek firem Hewlett Packard, Texas Instruments a bitmapove verze pdf dokumentu IrDA konzorcia.