IrDA jest protokołem transmisji cyfrowych w podczerwieni, zawdzięczającym swoje powstanie procesom normalizacyjnym dotyczącym pilotów sterujących odbiornikami TV i magnetowidami. Dzisiaj Forum IrDA specyfikuje trzy standardy komunikacji za pośrednictwem wspomnianych fal podczerwonych: IrDA-Data, IrDA-Control oraz nowy – Air (Advanced Infrared). Na razie IrDA zapewnia transmisję typu punkt–punkt na odległość do 1 m, w zakresie falowym 850–900 nm. Osiągane przepływności dochodzą do 16 Mb/s, a kąt transmisji nie przekracza 30°. Po obniżeniu szybkości transmisji do 75 kb/s można komunikować się na odległość ponad 5 m. W przyszłości protokół Air zapewni przesyłanie danych w konfiguracji wielopunkt-wielopunkt. Teraz oferuje przepływność 4 Mb/s na odległości 4 m lub 250 kb/s po podwojeniu tego dystansu.
Do stowarzyszenia IrDA należą: Acer, Ascom, Agilent Technologies, Apple Computer, Compaq, Ericsson, Hewlett-Packard, Intel, Linux-IrDA, Matsushita, Microsoft, Motorola, National Semiconductor, Nokia, Philips, Seiko Instruments, Sony, Toshiba, ZiLOG i wiele innych.
Spis treści |
Protokoły komunikacyjne są w IrDA podzielone na warstwy i spełniają wiele funkcji. Stos protokołów wynika z architektury pokazanej na rysunku obok. Warstwy w stosie są zwyczajowo podzielone na dwie podgrupy – protokoły implementowane obowiązkowo i opcjonalne. W skład pierwszej wchodzą:
Zastosowanie protokołów opcjonalnych zależy od konkretnej aplikacji. Należą do nich:
Warstwa ta zawiera optyczny układ nadawczo-odbiorczy. W warstwie fizycznej przeprowadza się kodowanie danych, ramkowanie oraz sprawdzanie bitu nadmiarowości CRC (Cyclic Redundancy Check). Ta warstwa musi być przynajmniej częściowo zaimplementowana sprzętowo, a w niektórych przypadkach jest implementowana całkowicie sprzętowo. Żeby odseparować resztę stosu od warstwy sprzętowej, stworzono pewnego rodzaju warstwę programową, nazywaną framer. Jej najważniejszym zadaniem jest przyjmowanie przybywających z warstwy sprzętowej ramek i prezentowanie ich w IrLAP.
Bezpośrednio nad warstwą framer znajduje się warstwa IrLAP, znana jako protokół dostępu do łącza. Jak już wspomniano, należy ona do obowiązkowych implementacji, a w modelu OSI odpowiada warstwie drugiej. Opiera się na SDLC (Synchronous Data Link Control) i HDLC (High Level Data Link Control) z rozszerzeniami dla niektórych charakterystyk komunikacji w podczerwieni. W swoich założeniach IrLAP ma zapewnić niezawodny transfer danych przy użyciu mechanizmów, takich jak: retransmisja, sterowanie strumieniem i detekcja błędów. Sterowanie strumieniem w IrLAP jest niskopoziomowe (low-level), w TinyTP natomiast wysokopoziomowe (high-level); praktycznie we wszystkich sytuacjach te dwie metody powinny być stosowane zamiennie (alternatywnie).
O niezawodność transferu danych dba warstwa niska. Kiedy strumień światła podczerwonego zostanie przerwany w chwili ustawienia jakiejś przeszkody, np. książki, IrLAP może powiadomić o zaistniałym problemie wyższe warstwy, które zajmą się jego rozwiązaniem. W konsekwencji użytkownik zostanie powiadomiony o kłopotach w taki sposób, aby mógł przedsięwziąć odpowiednie środki – w tym przypadku przesunąć lub zabrać książkę. Wszystko to odbywa się bez przerwania połączenia i utraty transmitowanych danych.
A oto kilka charakterystyk związanych z warstwą IrLAP:
Połączenie LAP opiera się na trochę przestarzałej relacji master-slave z różnym poziomem odpowiedzialności. Urządzeniami nadrzędnymi (master) mogą być komputery osobiste lub PDA, podrzędnymi (slave) urządzenia peryferyjne. Jednak w połączeniu, gdy jedno urządzenie jest nadrzędne, a drugie podrzędne, to drugie może mieć stos protokołów dla urządzenia zarówno podrzędnego, jak i nadrzędnego – wiele urządzeń nadrzędnych może pełnić funkcje urządzenia podrzędnego.
Każde urządzenie IrDA dysponuje tablicą usług i protokołów dostępnych w danej chwili. Norma przewiduje dwa podstawowe tryby funkcjonowania IrLAP: NDM (Normal Disconnect Mode) i NRM (Normal Response Mode).
NDM jest domyślnym stanem rozłączonego urządzenia. Urządzenia w tym stanie badają zajętość medium przed transmisją. Jeśli nie została wykryta żadna aktywność innego urządzenia przez okres dłuższy niż 500 ms, to wtedy medium jest postrzegane jako zdolne do ustanowienia połączenia. Ważnym aspektem NDM są jego reguły komunikacji. Klasyczny problem do rozwiązania polega na takim skonfigurowaniu połączenia, żeby obydwie strony miały takie same parametry komunikacyjne. Może on się okazać szczególnie trudny, kiedy urządzeniu brakuje interfejsu użytkownika, niezbędnego przy ustawianiu lub przeglądaniu parametrów komunikacyjnych. Wspomniane kłopoty nie występują w systemach IrDA, gdzie cała NDM używa konkretnych parametrów łącza. Podczas procesów łączenia dwie strony wymieniają informacje i szukają parametrów najlepszych dla każdej z nich.
NRM jest trybem funkcjonowania połączonych urządzeń. Kiedy obydwie strony prowadzą dialog, opierając się na wynegocjowanych w trakcie stanu NDM parametrach komunikacyjnych, wyższe warstwy stosu używają do wymieniania informacji normalnych ramek poleceń i odpowiedzi. Urządzenia nie potrzebują wszystkich usług zdefiniowanych w specyfikacji IrLAP. Dlatego określono pewne minimalne wymagania. Do najważniejszych należą: detekcja urządzenia, negocjowanie najlepszych parametrów komunikacyjnych dla obydwu stron i dokonanie połączenia, wysyłanie danych oraz rozłączanie – zamykanie sesji i powrót do stanu NDM, oznaczającego gotowość do nowego połączenia.
Warstwa IrLMP, na której spoczywa odpowiedzialność za nadzorowanie łącza, zapewnia następujące funkcje:
Wszystkie usługi lub aplikacje muszą mieć kontakt z IAS (Information Access Service), jako że IAS może być zapytany o dodatkowe informacje na temat usługi. Na pełną implementację IAS składają się komponenty klienta i serwera. Klient jest składnikiem generującym zapytania o usługi w innym urządzeniu. Używa do tego celu IAP (Information Access Protocol), który jest stosowany tylko z IAS. Natomiast serwer jest składnikiem, który potrafi odpowiadać na zapytania klienta IAS. Urządzenia, które nie inicjują połączeń LMP, mogą zawierać jedynie serwer IAS. Baza informacji IAS (IAS Information Base) jest zbiorem obiektów, które są dostępne dla danego połączenia. Jest używana przez serwer IAS do udzielania odpowiedzi na pojawiające się zapytania IAS. Baza obiektów składa się z nazwy kategorii i jednego lub więcej atrybutów. Posługując się analogiami z telekomunikacji, nazwa kategorii odpowiada nazwie firmy w książce telefonicznej. Klienci będą zasięgali informacji o usłudze używając tej nazwy. Atrybuty stanowią informację analogiczną do numeru telefonu, adresu i pozostałych danych teleadresowych. Głównym atrybutem jest LSAP-SEL, wymagany do utworzenia połączenia LMP z usługą.
Była już mowa o tym, że warstwa fizyczna określa wymagania sprzętowe i niskopoziomowe ramkowanie danych. Wiadomo też, że IrLAP zapewnia niezawodną, sekwencyjną transmisję danych, a IrLMP daje multipleksowanie LAP oraz wspomniane usługi IAS. TinyTP jest wprawdzie opcjonalną warstwą IrDA, ale jest tak ważny, że właściwie powinien być postrzegany jako obowiązkowy.
TinyTP spełnia dwie funkcje:
Najważniejszą funkcją TinyTP jest sterowanie strumieniem w kanale. Właściwie IrLAP steruje strumieniem i równocześnie bada, czy jest potrzebny inny mechanizm sterowania. Główna korzyść ze stosowania TinyTP polega na tym, że w trakcie połączenia LMP jedna strona może przerwać nadawanie informacji bez negatywnego wpływu na drugą. Jest to nieosiągalne przy zastosowaniu „zwykłego” sterowania strumieniem LAP, gdy przerwa w transmisji odbija się niekorzystnie na pracy drugiej strony.
Drugą funkcją TinyTP jest SAR, czyli segmentacja i powtórne składanie danych. Zasadniczą ideą przyświecającą jej tworzeniu była chęć umożliwienia TinyTP dzielenia danych o dużej objętości na mniejsze części i składania ich po drugiej stronie (w urządzeniu odbierającym). Taki fragment podzielonej całości został nazwany SDU (Service Data Unit). Jego maksymalny rozmiar jest negocjowany w chwili inicjowania pierwszego połączenia TinyTP/LMP.
IrOBEX został stworzony po to, by umożliwić systemom wszystkich typów i rozmiarów wymianę danych i poleceń. IrCOMM zapewnia emulowanie portów szeregowych i równoległych. Jest on stosowany tylko do niektórych aplikacji. Natomiast IrLAN, który nie został jeszcze w pełni znormalizowany, służy jako wygodne połączenie między komputerem osobistym a siecią lokalną. IrLAN oferuje m.in. dostęp do sieci lokalnej za pośrednictwem urządzenia Access Point Device, zwanego czasem IR LAN Adapter. IrDA zdobyła już sobie pewną pozycję rynkową. Dla niektórych urządzeń najlepszym rozwiązaniem będzie zaimplementowanie właśnie tej krótkodystansowej technologii, szczególnie tam, gdzie nie ma potrzeby instalowania droższych i bardziej skomplikowanych systemów.