Implementácia IrDA-stacku na 8-bitové mikroradiče


IrDA

IrDA definuje medzinárodne uznávaný protokol pre prenos dát pomocou infračerveného žiarenia rýchlosťou až 4 Mbit za sekundu na vzdialenosť do 1 metra. V súčasnosti majú tento protokol implementované mnohé prenosné (mobilné) zariadenia ako sú notebooky, elektronické diáre, PDA (Personal Digital Asistant), mobilné teléfóny (Nokia, Siemens). Tak isto nájdeme možnosť IrDA komunikácie pre bežné PC systémy, kde je možné komunikovať bezdrôtovo s klávesnicou, myšou, tlačiaňou, modemom a ďalšími preriférnymi zariadeniami.

Hlavnou výhodou je pomerne nízka cena, spoľahlivosť a tiež možnosť implementácie na 8-bitové mikroradiče (s niektorými obmedzeniami oproti úplnej verzii). Porovnanie s riešením Bluetooth: IrDA and Bluetooth: A Complementary Comparison (pdf, 44kB)

Pre zoznámenie sa s problematikou infrakomunikácie doporučujeme nasledovné články:
Normy pro IR datový přenos
Teorie IR datového přenosu a jeho dosah
Co je to IrDA
IrDA Specifikations


Vrstvy IrDA

 IrDA stack pozostáva z nasledovných vrstiev:

IrDA Protocol Stack

Fyzická vrstva prevedie vyslaný byte na sériový tvar podľa V24 a moduluje každý vyslaný bit pomocou 3/16 modulácie. Toto sa môže diať čisto programovým spôsobom, keď mikrokontrolér riadi priamo vysielač (rýchlosti 9600, 19200 bps). Pre vyššie rýchlosti je nutné použiť hardwarové riešenie, sériovým vysielacím kanálom s následnou moduláciou pomocou HP7001 (rýchlosti 9600, 19200, 38400, 57600, 115200 bps). Fyzická vrstva je tiež zodpovedná za príjem Ir impulzov a ich prevod zo sériového tvaru do podoby jedného byte. Pri programovom spôsobe vyžaduje použiť pre príjem znaku prerušovací vstup mikroradiča.
Linková vrstva vytvára prenosové rámce vyslaním úvodných dát rámca a dopĺňa informáciu 16 bitovým CRC kódom pre rozpoznanie chýb v prenose. Pri príjme odstraňuje linková vrstva začiatok a koniec rámca a kontroluje správnosť CRC kódu.
IR LAP (IR Link Access Protokol) riadi prenos rámcov a  poskytuje  spojovo orietovaný obojsmerný prenos dát. Tento môže byť nezaručovaný, kde prípadnú chybu v prenášaných datách musí riešiť príjemca, alebo zaručený, kde LAP automaticky vyžiada opakovaný prenos chybných rámcov. Ďalej je táto vrstva zodpovedná za vykonanie detekcie IR zariadení (discovery proces) pri ktorom sa zisťujú prítomné IR zariadenia. Tiež je zodpovedná za nadviazanie spojenia a dohodnutí sa na spôsobe komunikácie.
IR LMP (IR Link Management protokol) poskytuje multiplexované zaručované spojenie pre vyššie vrstvy, prípadne koncové aplikácie. Dovoľuje teda súčasnú komunikáciu viacerých koncových bodov cez jedno IR LAP spojenie.
IAS (Information Access Server) poskytuje informácie o zabudovaných vyšších protokoloch. Okrem IrCOMM existujú ďalšie ako napríklad Tiny TP, OBEX, IrLAN (tieto zatiaľ nie sú podporované).
IrCOMM vytvára virtuálne obojsmerné COM alebo LPT spojenie mezdi dvoma zariadeniami. Aplikácie môžu navzájom komunikovať rovnako ako keby boli prepojené káblom cez COM alebo LPT port. Doručovanie dát je zaručené, teda akékoľvek chyby v prenose sa automaticky korigujú v predchádzajúcich vrstvách. Tento protokol je vhodný všade tam kde je už vypracovaná komunikácia cez COM alebo LPT port nakoľko nevyžaduje žiadny zásah do koncových aplikácií.


Implementácia

Pre rýchlosti do 115200 bit/sek. definuje IrDA jednoduché a lacné riešenie založené na klasickom sériovom prenose podľa V24 (RS232). Pre nízke rýchlosti prenosu (9600, 19200 bps) je možné priame pripojenie Ir prijímača/vysielača (napríklad HSDL-1001) k mikroradiču. Výstup infra-prijímača sa pripojí na prerušovací vstup mikroradiča. Riadenie celej komunikácie i kódovanie zabezpečuje mikroradič. Na nasledovnom obrázku je znázornená schéma pripojenia.

 

Naša implementácia IrDA pre AVR mikrokontroléry sa vyznačuje:
secondary devices (teda sám neiniciuje nadviazanie komunikácie s ďalším IrDA zariadením)
dovoľuje komunikáciu rýchlosťami až do 9600 bps.
data size =64bytes,
window size =1,
max. turn arround time 500 ms,
disconnect/treshold time of 3 seconds,
additional BOFs =0
 

*IrDA-implementácia má dĺžku približne 3000 bajtov a vyžaduje asi 200 bajtov dátovej pamäte; teda dá sa implementovať do typov  so zodpopvedajúcou veľkosťou pamätí-nezabudnúť pritom ale na skutočnosť, že pre vlastnú aplikáciu je  treba tiež niečo rezervovať. IrDA Stack je napísný v avr-asembleri (AVR Studio 4.XX).

Podrobný popis implementácie pre AVR (anglicky)

V prípade požiadavky komunikačných rýchlostí až do 115200 bps je treba použiť modulátor a demodulátor pre riadenie Ir prijínača/vysielača (napr. HSDL-7001), alebo vysoko výkonný mikroradič SX firmy Ubicom. Bloková schéma potom vyzerá nasledovne:

Aj pre túto variantu ponúkame implementáciu pre Atmel-AVR.


Aplikácie

AVR IrDA Stack Application Note (pdf-formát, cca 476kB; vyžaduje Acrobat Reader 4.x )
Datalogger na báze ATmega103. V tejto aplikačnej poznámke je podrobne popísané nasadenie infra-komunikácie medzi výkonným 8-bitovým mikrokontrolérom a Palm handheldom. IrDA -stack vyvinutý firmou psh-mikro je implementovaný v systéme na zber dát vrátane podrobných schém, stavových a vývojových diagramov. Poznámka je písaná po anglicky.

 

BT2 - merač viskozity betónu firmy Schleibinger Geräte GmbH. Je to prenosný prístoj, ktorý umožnuje v teréne merať viskozitu betónu. Meranie pozostáva zo záznamu údajov z troch tenzometrických snímačov a rýchlosti otáčania. Merania sú doplnené časovým údajom zo zabudovaného RTC a uložené do pamäte FLASH. Z tejto pamäte je možné jednotlivé merania vyčítať do prenosného zápisníka (PDA) Palm Pilot. Ten dovoľuje zobrazenie načítaných údajov vo forme grafu a ich prenos a spracovanie v PC. Okrem toho sa Palm používa na nastavenie parametrov prístroja (kalibrácia). Takéto riešenie má výhodu v tom, že v prostredí staveniska (prach, voda, cement, agresívne chemické látky) nemusíme použiť drahé a labilné LCDispleje a tiež v bezkontaktnej alebo lepšie bezkonektorovej komunikácii. Podrobný popis riešenia nájde záujemca tu: Referenčná aplikácia IrDA stacku na komunikáciu medzi jednočipovým mikrokontrolérom a Palm OS zariadením.

 

Posledná aktualizácia: 06.03.2002


Návrat hore
Referenčná aplikácia IrDA stacku na komunikáciu medzi jednočipovým mikrokontrolérom a Palm OS zariadením
PSH homepage