Aktualizacja: 2011-01-20

Bezprzewodowe Łącza Optyczne - FSO

Celem projektu było stworzenie stanowisk laboratoryjnych na których jest prezentowana laserowa transmisja danych w wolnej przestrzeni. Poniższy artykuł jest streszczeniem szerszej publikacji zatytułowanej "Laserowa transmisja danych". Numeracja tabel oraz obrazów odnosi się do wspomnianej publikacji.

Geneza

W niniejszej pracy została poruszona tematyka laserowej transmisji danych w wolnej przestrzeni (FSO). Proces transmisji polega na przesłaniu informacji między nadajnikiem a odbiornikiem. Dane zapisane zostają określonym, zrozumiałym dla obu stron kodem, przesłanym przez medium transmisyjne. Często stosowanym nośnikiem są światłowody, jednak możliwy jest również przekaz danych w wolnej przestrzeni (bez udziału kabla). Laserowe łącza wolnej przestrzeni są obecnie w fazie projektów np. satelitarne kanały optyczne lub transmisja między budynkami w sieciach metropolitarnych. System FSO jest także wykorzystywany przez wojsko w łączach optycznych samolot-samolot, samolot-ziemia. Emisje tego typu mają tę przewagę nad komunikacją radiową, że nie występują tu interferencje i przesłuchy. Wiązka transmisyjna może zostać silnie ukierunkowana, co w efekcie praktycznie uniemożliwia podsłuch i pozwala na zmniejszenie mocy nadajnika. Poza szeregiem zalet istnieją techniczne ograniczenia propagacji fali gdzie rolę medium transmisyjnego pełni atmosfera, mowa o zanieczyszczeniach i konieczności wzajemnej widoczności między nadajnikiem a odbiornikiem.

Koncepcja rozwiązania

Urządzenie nadawczo – odbiorcze umożliwia bezprzewodowy przesył informacji wykorzystując jako medium transmisyjne wiązkę lasera o długości fali 650 nm i mocy wyjściowej mniejszej niż 5 mW. Oprogramowanie mikrokontrolera PIC16F84A dokonuje filtracji pakietów danych wysłanych przez program komunikacyjny działający pod kontrolą systemu Microsoft® Windows®. Transmisja danych między DCE a DTE dokonywana jest zgodnie ze standardem RS232.

Koncepcja przesyłania danych

Sposób przesyłania informacji został przedstawiony (Rys. 4) w formie schematu blokowego. Transmisja odbywa się poprzez wolną przestrzeń za pomocą wiązki światła, wymaga to skonstruowania systemu komunikacji optycznej. Podstawowymi urządzeniami wchodzącymi w skład systemu to:

Rys. 4 Schemat przesyłania danych

Nadajnik optyczny otrzymuje dane w postaci cyfrowej, które zostają wyemitowane przez diodę laserową. Koncepcyjny schemat elektryczny układu nadawczego przedstawia (Rys. 5).

 

Rys. 5 Idea nadajnika optycznego

Moduł detektora optycznego (Rys. 6) odbiera zmodulowany sygnał optyczny i zamienia go na sygnał elektryczny.

 

Rys. 6 Idea detektora optycznego

Diagram wdrożenia

Komunikacja między źródłem informacji a transceiwerem zawierającym moduły: kodera nadawczego, nadajnika optycznego, dekodera odbiorczego, detektora optycznego odbywa się w standardzie RS-232. Urządzenia nadawczo-odbiorcze mogą zostać połączone parami, lub tworzyć sieć w której skład wchodzi wiele urządzeń związanych ze sobą zgodnie z topologią pierścienia (Rys. 7). Dane przesyłane między nimi są za pośrednictwem łącza FSO.

Rys. 7 Diagram wdrożenia

Konstrukcja urządzenia

W urządzeniu nadawczo – odbiorczym można wyróżnić trzy moduły komunikacyjne (Rys. 11) zarządzane przez jednostkę centralną, której funkcję pełni mikrokontroler PIC16F84A. Podstawowe moduły urządzenia:

Rys. 11 Moduły urządzenia

Procesor

Funkcję sterującą pracą urządzenia pełni mikrokontroler PIC16F84A wyprodukowany przez firmę Microchip. Układ wywodzi się z ośmiobitowego mikrokontrolera PIC1650 zaprojektowanego pierwotnie przez firmę General Instrument. Akronim PIC oznacza "Programmable Intelligent Computer"1, równie często spotykana jest nazwa PICmicro. Procesor należy do rodziny mikrokontrolerów architektury RISC2 opracowanej pod koniec lat siedemdziesiątych na uniwersytecie Berkeley. Architektura RISC różni się od CISC ograniczoną z kilkuset do kilkudziesięciu (najczęściej stosowanych) rozkazów procesora. W przypadku omawianego układu jest to trzydzieści pięć instrukcji sterujących.

Rys. 12 Wyprowadzenia mikrokontrolera PIC16F8x1

Moduł komunikacyjny RS232

Komunikacja między portem COM komputera a urządzeniem odbywa się zgodnie ze standardem RS232 (), w tym celu konieczna jest konwersja napięć portu COM do standardu TTL zgodnego z portami mikrokontrolera. Zadanie to spełnia układ scalony MAX232 firmy MAXIM (Rys. 13). Wyposażony jest on w przetwornicę napięcia, dzięki czemu możliwe jest zasilanie napięciami z przedziału +3.0V do +5.5V. Układ jest często stosowany w urządzeniach przenośnych, został wyposażony w dwa porty wejścia i dwa porty wyjścia. Do poprawnej pracy konieczne jest podłączenie pięciu kondensatorów o wartości 1uF (Rys. 13).

Rys. 13 MAX3232

Moduł odbiorczy

Moduł odbiorczy został zrealizowany w oparciu o fototranzystor, pełniący funkcję odbioru wiązki światła lasera. Regulacja czułości odbiornika regulowana jest za pomocą rezystora nastawnego.

Rys. 14 Koncepcyjny schemat elektryczny modułu odbiorczego

Ostateczna bitowa forma sygnału uzyskiwana jest przez podwójną negację wykonaną przez układ SN74HC14N, którego jest bramką NOT z Przerzutnikiem Shmitta.

Rys. 15 Wyprowadzenia układu SN74HC14N

„Jeśli przerzutnik jest włączony (stan wysoki), napięcie wyjścia jest równe napięciu szyny dodatniego zasilania (+VS). V+ dzieli się wtedy pomiędzy Vin a +VS. Komparator porównuje V+ z zerem. VinR2 musi się równać −VSR1 aby V+ było równe zeru, więc Vin musi spaść poniżej −(R1/R2)VS aby wyjście się przełączyło. W tym momencie wyjście ma napięcie −VS, a próg przełączania przyjmuje wartość +(R1/R2)VS. Obwód tworzy więc zakres przełączania symetryczny względem zera, z poziomami przełączania ±(R1/R2)VS. Napięcie wejściowe musi wzrosnąć powyżej górnej granicy tego zakresu, a następnie spaść poniżej granicy dolnej, aby napięcie wyjściowe przeszło w stan wysoki i z powrotem w niski. Gdy R1 równe jest zeru lub R2 jest nieskończone (obwód rozwarty), szerokość powyższego zakresu kurczy się do zera, i układ zachowuje się jak zwykły komparator.”

Rys. 16 Przerzutnik Shmitta

Moduł nadajnika

Układ nadawczy zbudowano na bazie fabrycznego modułu lasera małej mocy (5mW). Moduł zawiera zabezpieczeniem antyelektrostatyczne oraz sterownik prądowy. W celu ograniczenia prądu na porcie mikrokontrolera sygnał sterujący podawany jest na bazę tranzystora włączającego moduł lasera.

 

Rys. 17 Koncepcyjny schemat elektryczny modułu nadawczego

Schemat elektryczny i projekt płyty PCB płyty głównej

Układ elektroniczny może być zasilany napięciem z przedziału od 5V do 9V. Możliwe jest zasilanie układu wyższym napięciem (maksymalnie 35V ) pod warunkiem, że zostanie zapewnione odpowiednie chłodzenie układu IC1 (stabilizator napięcia), który dostarcza napięcie 5V podzespołom urządzenia. Wartość napięcia określiły parametry pracy układu IC2, IC3 oraz układy scalone na kartach rozszerzeń. Przed podłączeniem odwrotnej biegunowości zasilania zabezpiecza dioda prostownicza D1. Centralna jednostka sterująca IC2 komunikuje się z komputerem za pośrednictwem konwertera napięcia IC3, który do poprawnej pracy wymaga kondensatorów C2, C4, C5, C6. 1 Układ IC2 do obsługi transmisji w standardzie RS232 używa rezonatora kwarcowego o częstotliwości 4 MHz do którego zostały dobrane na podstawie dokumentacji technicznej 2 kondensatory C7, C8.

Rys. 18 Schemat elektryczny płyty głównej

Płyta główna została wyposażona w generator dźwięku LS1, włączany za poprzez tranzystor Q1. Stan działania urządzenia reprezentują kontrolki LED:

Rezystory R1, R2, R3, R4 pełnią funkcję ograniczników prądu przepływającego przez dany węzeł układu elektronicznego.

Rys. 19 Projekt płytki PCB płyty głównej

Płyta główna urządzenia (Rys. 19) została wykonana na laminacie PCB o grubości 2mm, ze ścieżkami jednostronnymi.

Schemat elektryczny i projekt płyty PCB modułu odbiornika

Moduł odbiornika podłączany jest do dowolnego gniazda rozszerzeń płyty głównej urządzenia. Zasilanie 5V dostarczane jest do modułu przez pin 6 (VCC) i pin 7 (GND). Moduł wysyła dane przez pin 1. Sygnalizacja odbioru danych realizowana jest przez diodę LED D1. Detektor optyczny zbudowany został w fototranzystora Q1, oraz bramek NOT z przerzutnikiem Shmitta. Regulacja czułości kalibrowana jest za pomocą rezystora nastawnego VR1.

Rys. 20 Schemat elektryczny odbiornika

Rys. 21 Projekt płytki PCB odbiornika

Schemat elektryczny i projekt płyty PCB modułu nadajnika

Moduł nadajnika może zostać podłączony do dowolnego gniazda rozszerzeń płyty głównej urządzenia. Zasilanie 5V dostarczane jest do modułu przez pin 6 (VCC) i pin 7 (GND). Układ odbiera dane przez pin 3. Jasność świecenia diody nadawczej może być regulowana za pomocą rezystora nastawnego VR1 (Rys. 22). Obwód ma za zadanie zmniejszenie prądu na porcie B5 mikrokontrolera (Rys. 12), jego zastosowanie nie jest konieczne w przypadku użycia laserów małej mocy (do 5mW). W przypadku braku modułu nadajnika, sterownik lasera należy podłączyć do pinu 3 (sygnał) oraz pinu 7 (minus).

Rys. 22 Schemat elektryczny nadajnika

 

Rys. 23 Projekt płytki PCB nadajnika

Oprogramowanie

Oprogramowanie służące do przesyłu danych łączem optycznym zostało zaprojektowane dla systemu Microsoft ® Windows ®, oraz jako system wbudowany dla mikrokontrolera PIC16F84. Zadania podzielono na trzy warstwy, realizowane przez oddzielne aplikacje (Rys. 24) i układy elektroniczne: program mikrokontrolera – sterowanie przepływem danych, kapsulacja i enkapsulacja pakietów, sterownik – biblioteka DLL uruchamiana na komputerze PC umożliwiająca komunikację między mikrokontrolerem a aplikacją, aplikacja – program uruchomiony na komputerze PC wyposażony w formularz umożliwiający dialog z użytkownikiem.

Rys. 24 Relacje między programami

Podział oprogramowania na trzy warstwy umożliwia niezależną pracę transceivera od komputera, ponieważ mikrokontroler steruje przepływem danych oraz ich adresacją. Zastosowanie sterownika DLL daje możliwość łatwej implementacji obsługi urządzenia w tworzonej aplikacji, która staje się jedynie elementem wydającym polecenia urządzeniu poprzez sterownik i prezentującym uzyskane dane

Komunikacja między sterownikiem a mikrokontrolerem odbywa się za pomocą instrukcji sterujących (Tab. 1), będących słowami ośmiobitowymi i nazywanych instrukcjami lokalnymi. Instrukcje lokalne służą głównie do konfiguracji pracy urządzenia. Instrukcje typu sieciowego używane są do przesyłania rozkazów między mikrokontrolerami poprzez łącze optyczne.

 

Tab. 11 Instrukcje sterujące

Instrukcje lokalne (konfiguracyjne):

Poniższe rozkazy otrzymywane są przez procesor z portu COM.

 

Instrukcje sieciowe:

Poniższe rozkazy odbierane są przez port łącza optycznego.

 

Tryb pracy urządzenia

Urządzenie może pracować w dwóch trybach:

 

Po włączeniu urządzenie przyjmuje domyślne stany pracy, zmienne zostają wyzerowane. Domyślnym ustawieniem urządzenia jest stan pasywny (Rys. 25), DTE może dokonać zmiany trybu pracy na aktywny, lub pasywny rozkazem lokalnym „xB”.

Rys. 25 Tryby pracy urządzenia

Algorytm nadawania

Dane wysyłane z DTE odbierane zostają przez transceiver; DCE. Przesył danych zgodny jest ze standardem RS232. Urządzenie oczekuje na zapełnienie słowem ośmiobitowym bufora wejściowego. W przypadku gdy słowo jest instrukcją lokalną „x11” urządzenie oczekuje na wydanie polecenia, następnie przechodzi w stan oczekujący na zapełnienie bufora wejściowego. W przeciwnym wypadku sprawdzany jest tryb pracy mikrokontrolera. Urządzenie będące w trybie pasywnym przekazuje słowo ośmiobitowe (znak) bezpośrednio do modułu nadajnika. W trybie aktywnym mikrokontroler tworzy pakiet danych (Tab. 12), który zostaje wysłany do modułu nadajnika.

Rys. 26 Algorytm nadawania

Algorytm odbioru

Gdy urządzenie znajduje się w trybie pasywnym dane odebrane przez DCE po zapełnieniu bufora wejściowego słowem ośmiobitowym (Rys. 27) zostają przekazane bezpośrednio do DTE. W przypadku pracy w trybie aktywnym następuje sprawdzenie adresu odbiorcy, w chwili gdy pakiet danych jest adresowany do urządzenia dane zostają przekazane do DTE, jeżeli urządzenie nie jest odbiorcą pakietu zostaje on wysłany do następnego urządzenia w sieci.

Rys. 27 Algorytm odbioru

Ramka danych

Urządzenie działające w trybie aktywnym obsługuje adresację danych. Informacja może zostać odebrana tylko przez urządzenie, do którego skierowany jest pakiet danych (pod warunkiem, że pracuje ono również w trybie aktywnym). Kapsulacja danych oraz enkapsulacja wykonywana jest przez mikrokontroler będący w trybie aktywnym. Ramka danych (Tab. 12) zbudowana jest z 32 bitów, zaczyna się od instrukcji rozpoczęcia transmisji danych „x1” (8 bit), następnie podawany jest adresat danych (8 bit). Kolejne 8 bitów, zawiera informacje. Pakiet kończy instrukcja końca transmisji „x2” (8 bit).

 

Tab. 12 Ramka danych

Diagram przypadków użycia mikrokontrolera

Funkcję aktora pełni sterownik, który wydaje rozkazy binarne mikrokontrolerowi (Rys. 28). Główne przypadki użycia zaznaczono kolorem zielonym a ich najczęstsze rozszerzenia służące do transmisji danych w sieci; kolorem czerwonym. Obsługę adresu lokalnego oznakowano kolorem szarym, obsługę trybu pracy oznaczono kolorem niebieskim.

Rys. 28 Przypadki użycia mikrokontrolera

Diagram przypadków użycia sterownika

Funkcję aktora pełni program z poziomu którego uruchamiany zostaje sterownik (Rys. 24). Publiczne metody sterownika zostały zaznaczone kolorem zielonym (Rys. 29). Typowy rozkaz wysyłany do metody zaznaczono kolorem czerwonym, są to najczęściej wykonywane operacje wywoływane w trakcie transmisji danych. Kolorem szarym oznaczono komendy adresacji urządzenia. Kolorem niebieskim polecenia ustalające tryb pracy (Rys. 29).

Rys. 29 Przypadki użycia sterownika

Diagram przypadków użycia programu komunikacyjnego

Aktorem wywołującym przypadki użycia jest użytkownik programu (Rys. 30). Aplikacja podłącza sterownik za pośrednictwem którego zostają wydawane polecenia mikrokontrolerowi.

Rys. 30 Przypadki użycia programu komunikacyjnego

Implementacja programu mikrokontrolera

Program mikrokontrolera został napisany w języku C, w środowisku „PCW C Compiler IDE” wersji 3.43.

Implementacja programu sterownika urządzenia

Program sterownika urządzenia dokonuje transmisji danych z mikrokontrolerem przy pomocy portu COM komputera. Sterownik zawiera funkcje których wywołanie z poziomu aplikacji (do której podłączony jest sterownik Rys. 24) powoduje wysłanie odpowiednich instrukcji sterujących mikrokontrolerem, lub rozpoczyna przesył danych. Sterownik urządzenia został napisany w języku C++ w środowisku Borland C++ Builder™, wersja 5.0. Program wynikowy ma postać biblioteki DLL, która może być podłączona do programów działających na platformie Windows ®.

Zewnętrzne metody biblioteki DLL dostępne z poziomu aplikacji do której została ona podłączona.

extern "C" __declspec(dllexport) BOOL rs232_connect(int port);
extern "C" __declspec(dllexport) void rs232_disconnect();

extern "C" __declspec(dllexport) void send(char data);
extern "C" __declspec(dllexport) ShortString receive();

extern "C" __declspec(dllexport) void saveID(char id);
extern "C" __declspec(dllexport) char getID();

extern "C" __declspec(dllexport) void saveMODE(char id);

Program komunikacyjny

Program komunikacyjny został wyposażony w interface graficzny, przeznaczony dla użytkownika. Aplikacja importuje bibliotekę DLL sterownika urządzenia i za jej pośrednictwem komunikuje się z urządzeniem. Program został napisany w języku C++ w środowisku Borland C++ Builder™ wersja 5.0 i jest przeznaczony do pracy na platformie Windows ®.

Folder programu komunikacyjnego zawiera pliki: Communicator.exe – program komunikacyjny, config.ini – konfiguracja programu komunikacyjnego, transceiver.dll – sterownik urządzenia.

Uruchomienie programu Communicator.exe powoduje wyświetlenie głównego formularza aplikacji (Rys. 31).

Formularz posiada trzy pola tekstowe:

 

Na formularzu dostępne są przyciski:

Rys. 31 Program komunikacyjny

Pierwszą opcją z poziomu menu jest „Konfiguracja”, po jej wybraniu następuje otworzenie okna obejmującego formularz ustawień programu (Rys. 33). Obszar „Sterownik” zawiera lokalizację pliku DLL, który można wskazać na dysku klikając przycisk z ikoną . Wybór portu COM wskazuje do którego z nich zostało podłączone urządzenie. Numer „ID urządzenia” zostaje zapisany w pamięci mikrokontrolera. Jeśli w polu „Tryb pracy” wybrana została opcja „Aktywny” mikrokontroler wysyła do komputera jedynie te informacje, których adresat jest równy numerowi ID danego urządzenia. Odczyt ID urządzenia można dokonać po kliknięciu przycisku „ Odczyt”. Zapis konfiguracji do pliku „config.ini” oraz pamięci mikrokontrolera zainstalowanego w urządzeniu nadawczo odbiorczym wykonywany jest po kliknięciu przycisku „Zapisz”.

Wszelkie operacje sterujące mogą zostać wywołane „ręcznie”, umożliwia to panel „Instrukcje”, którego uaktywnienie następuje po wybraniu z menu opcji „Widok”, potem „Instrukcje” (Rys. 34). Przyciski zostały podzielone na trzy grupy. W skład pierwszej z nich wchodzą instrukcje sterujące (Tab. 11):

 

Kolejną grupą są instrukcje hexadecymalne:

 

Ostatnia grupa obejmuje znaki ASCII:

 

Odpowiedź mikrokontrolera zainstalowanego w urządzeniu na zadane instrukcje widoczna jest w polu TxD.

Testowanie

Celem przeprowadzenia testów jest sprawdzenie poprawności funkcjonowania poprawnego części elektronicznej; podłączenia urządzenia do komputera, zbadanie poszczególnych modułów układu nadawczo – odbiorczego. Kolejny etap weryfikuje poprawność oprogramowania; komunikację trybu pasywnego i aktywnego. Kolejność wykonywania testów została przedstawiona na „drzewie testowania” (Rys. 35).

Rys. 35 Drzewo testowania

Perspektywy rozwoju

Koszt urządzeń FSO jest porównywalny z radioliniami dostępowymi pracującymi w pasmach licencjonowanych popularnie stosowanych przez sieci komórkowe do łączenia stacji BTS, czy dostawców Internetu klasy operatorskiej, jednakże urządzenia FSO nazywane też Optical Wireless (Optyka Bezprzewodowa) oferują dużo wyższe przepływności, pełen dupleks i wysokie bezpieczeństwo. W dobie wysycenia częstotliwości radiowych w dużych aglomeracjach i ciągłe zapotrzebowanie na łącza szerokopasmowe, urządzenia Free Space Optics mają przed sobą świetlaną przyszłość. Warto wspomnieć, że tzw. ROI (Return-of-Investments) czas zwrotu kosztów inwestycji jest bardzo szybki w porównaniu do dzierżawy linii światłowodowej od firm Telekomunikacyjnych, czy budowy własnego światłowodu do połączenia np. biur w odległości 800m od siebie. Na transmisje tego typu nie są obecnie wymagane żadne zezwolenia.

Bibliografia

Strony internetowe
1.Free Space Optics- wikipedia, dostęp z dnia 15 marca 2010
2.Ronja, dostęp z dnia 1 kwietnia 2010
3.Artemis launch, dostęp z dnia 1 kwietnia 2010
4. Opracowanie firmy YUKO „Standard interfejsu RS232C (V.24)”, dostęp z dnia 1 kwietnia 2010
5. Coetzee E. „Modbus Protocol”, dostęp z dnia 6 kwietnia 2010
6.Modbus protocol, dostęp z dnia 6 kwietnia 2010
7.Przerzutnik_Schmitta -wikipedia, dostęp z dnia 21 kwietnia 2010
8.RS232, dostęp z dnia 22 kwietnia 2010
9.RS232, dostęp z dnia 18 maja 2010
10. - dostęp z dnia 18 maja 2010

Dokumentacja techniczna
11.Stabilizator napięcia 5V LM7805, dostęp z dnia 1 maja 2010
12.Tranzystor BC548, dostęp z dnia 1 maja 2010
13.Konwerter napięć TTL - RS232, układ MAX232, dostęp z dnia 1 maja 2010.
14.Mikrokontroler PIC16F84, dostęp z dnia 1 maja 2010
15.Bramka NOT z przerzutnikiem Shmitta, dostęp z dnia 1 maja 2010.

Publikacje książkowe
16.Reisdorph K.: „C++ Builder 6” , Helion, Warszawa 2003.
17.Mielczarek W.: „Szeregowe interfejsy cyfrowe”, Helion Warszawa 1993.

Prezentacje
18.„Łącza optyczne wolnej przestrzeni” Wydział Elektroniki i Technik Informacyjnych PW: prof. dr hab. Bogdan Golwas, dr inż. Jarosław Dawidczyk, dr inż. Jerzy Piotrowski, mgr inż. Jerzy Skulski, dr Agnieszka Szymańska

Marcin Filipiak

Wyślij komentarz