www.eprace.edu.pl » bezprzewodowy-pomiar » Projekt bezprzewodowego systemu pomiaru temperatury » Idea działania systemu

Idea działania systemu

Zaprojektowany system bezprzewodowego pomiaru temperatury opiera się o bezpośrednią strukturę sieci sensorowej (Rozdział 2.7) i działa w dwóch trybach pracy:

Dzięki wprowadzeniu globalnego adresu sieci (de facto modułu nadrzędnego), możliwe jest jednoczesne działanie wielu sieci na tym samym obszarze pomiarowym.

Często zdarza się że system pomiarowy ma za zadanie monitorować wielkości fizyczne, których wartość jest krytyczna z punktu widzenia pracy jakiegoś urządzenia, czy procesu technologicznego. W takiej sytuacji system pomiarowy powinien być wyposażony w mechanizmy alarmu, powiadamiające użytkowników systemu o przekroczeniu zaprogramowanych progów wartości. W projekcie bezprzewodowego systemu pomiarowego nie zaimplementowano tego typu rozwiązania, gdyż wartość mierzonej temperatury nie jest czynnikiem krytycznym, a jedynie poglądowym.

Na rysunku 3.12 przedstawiona jest budowa ramki komunikacyjnej za pomocą której przesyłane są w sieci informacje. Każde pole ramki jest oktetem (8 bitów). Ramka przesyłana jest począwszy od najbardziej znaczącego oktetu (ang. Big Endian), bity w oktecie również przesyłane są w porządku Big Endian. Maksymalny rozmiar przesyłanej ramki to 15 oktetów.

Rys. 3.12: Budowa ramki komunikacyjnej.

Ramka zaczyna się od pola preambuły w postaci trzech oktetów o wartości 0xAA, następnie występuje pole synchronizacji składające się z dwóch oktetów o wartościach: 0x2D i 0xD4. Oktety preambuły są zalecane przez producenta modułów radiowych, dzięki nim odbiornik dostraja się do nadajnika. Oktety synchronizacji służą natomiast do poinformowania odbiornika o momencie rozpoczęcia transmitowania informacji użytkownika, dzięki temu odbiornik zwraca jedynie oktety będące meritum ramki (począwszy od licznika, aż do sumy kontrolnej). W przypadku RFM12B istnieje możliwość programowej zmiany drugiego oktetu pola synchronizacyjnego na dowolną wartość.

Po polu synchronizacji występuje pole licznika, które przechowuje rozmiar (ilość oktetów) pola pakietu. Za pomocą licznika oktetów odbiornik jest informowany o długości odbieranego pakietu.

Najważniejszą częścią ramki komunikacyjnej jest pole pakietu, zawierające informacje przesyłane pomiędzy urządzeniami. Składa się ono z:

Dane ważne z punktu widzenia poprawności transmisji (licznik i pole pakietu) zabezpieczone są sumą kontrolną (ang. Checksum) w postaci 16-bitowego cyklicznego kodu nadmiarowego CRC (ang. Cyclic Redundancy Check). Do generacji sumy kontrolnej zastosowano następujący wielomian generatora (standard CRC16-CCITT). Jest on bardzo często stosowany przy przesyłaniu danych (np. Bluetooth, karty SD). W stosunku do 8-bitowego CRC, CRC-16 zapewnia lepsze wykrywanie błędów przypadkowych, a przy tym wyliczenie kodu nadmiarowego jest dużo szybsze niż kodu 32-bitowego.

G16(x) = x16 + x12 + x5 + 1 (3.1)

Całość ramki komunikacyjnej zakończają dwa oktety epilogu o wartościach 0xAA. Oktety epilogu są zalecane przez producenta modułów radiowych. Ich pominięcie może skutkować częstym uszkodzeniem ostatniego przesyłanego oktetu w ramce.

Każdy moduł podrzędny otrzymał unikalny adres sieciowy z zakresu 0x1 - 0xFF. Adres modułu nadrzędnego jest jednocześnie adresem sieci, jego wartość podobnie jak dla modułów podrzędnych zawiera się w przedziale 0x1-0xFF. Adres 0x0, jest to tzw. adres rozgłoszeniowy (ang. Broadcast).

Informacje wymieniane pomiędzy modułem nadrzędnym i modułami podrzędnymi zorganizowane są w pakiety. W zaprojektowanym systemie wyróżniono sześć rodzajów pakietów:


  1. Pakiet z danymi pomiarowymi - pakiet tego typu wykorzystywany jest do przesyłania danych pomiarowych (wartość temperatury) pomiędzy modułami podrzędnymi, a modułem nadrzędnym. W trybie Master – Slave moduł nadrzędny wysyła żądanie do modułu podrzędnego, zawierające typ pakietu, adres modułu do którego jest skierowany pakiet i swój własny adres (podpunkt a).

  1. Pakiet żądania przesłania danych pomiarowych.

(m. nadrzędny → m. podrzędny)

Typ pakietu (0x01) Adres odbiorcy Adres nadawcy

W odpowiedzi na żądanie wystosowane przez moduł nadrzędny, moduł podrzędny po zakończonej konwersji temperatury odsyła pakiet z danymi pomiarowymi (podpunkt b). Pakiet z danymi pomiarowymi wysyłany jest również (bez wcześniejszego żądania) w trybie pracy Klient – Serwer.

  1. Pakiet z danymi pomiarowymi.

(m. nadrzędny ← m. podrzędny)

Typ pakietu (0x01) Adres odbiorcy Adres nadawcy Dane[1] Dane[2]

  1. Pakiet „przedstawienia się” aktywnych modułów podrzędnych – jest to pakiet wysyłany przez moduł nadrzędny do wszystkich modułów podrzędnych (Broadcast) w celu wykrycia aktualnie aktywnych modułów. W odpowiedzi moduły podrzędne wysyłają pakiet „przedstawienia” zawierający ich własny adres (adres nadawcy).

(m. nadrzędny → m. podrzędny)

Typ pakietu (0x02) Adres rozgłoszeniowy Adres nadawcy

  1. Pakiet wyboru trybu pracy – jest to pakiet wysyłany w celu powiadomienia modułów podrzędnych o wybranym przez użytkownika trybie pracy: Master – Slave lub Klient – Serwer. Rodzaj trybu pracy określony jest przez wartość ostatniego oktetu pakietu. Pakiet adresowany jest do wszystkich modułów podrzędnych, zatem nie może zaistnieć sytuacja w której, część modułów pracuje w trybie Master – Slave, a część w trybie Klient – Serwer.

(m. nadrzędny → m. podrzędny)

Typ pakietu (0x05) Adres odbiorcy Adres nadawcy Tryb pracy

  1. Pakiet wyboru czasu – po wybraniu trybu pracy Klient – Serwer moduły podrzędne oczekują na pakiet zawierający interwał czasowy, określający częstotliwość z jaką mają się komunikować z modułem nadrzędnym w celu przesłania danych pomiarowych. Bez przesłania tego pakietu sieć nie będzie funkcjonować. Możliwe jest adresowanie zarówno brodcastowe jak i unicastowe.

(m. nadrzędny → m. podrzędny)

Typ pakietu (0x06) Adres odbiorcy Adres nadawcy Czas

  1. Pakiet potwierdzenia pozytywnego ACK (ang. ACKnowledge)pakiet ten wysyłany jest w trzech przypadkach: otrzymanie danych pomiarowych w trybie Klient – Serwer (nadawca – moduł nadrzędny), otrzymanie pakietu wyboru trybu pracy (nadawca – moduł podrzędny), otrzymanie interwału czasowego w trybie Klient – Serwer (nadawca – moduł podrzędny). Potwierdzenie w ostatnim oktecie zawiera typ pakietu potwierdzanego.

(m. nadrzędny ← m. podrzędny)

Typ pakietu (0x04) Adres odbiorcy Adres nadawcy Typ pakietu potwierdzanego

  1. Pakiet potwierdzenia negatywnego NACK (ang. Negative ACKnowledge) – jeżeli moduł podrzędny odbierze błędną ramkę (niezgodność CRC) to przesyła do modułu nadrzędnego ramkę NACK. Moduł nadrzędny sprawdza czy adresat poprzedniej ramki zgadza się z nadawcą ramki NACK, w przypadku zgodności moduł ponawia wysłanie poprzedniej (błędnie odebranej) ramki. Poprzednia ramka zostanie również wysłana do odpowiedniego modułu (tego który wysłał ramkę NACK) w sytuacji gdy była nadawana rozgłoszeniowo.

(m. nadrzędny ← m. podrzędny)

Typ pakietu (0x03) Adres odbiorcy Adres nadawcy

Rozpoczęcie pracy z systemem nie wymaga wstępnego konfigurowania trybu pracy, o ile użytkownik zamierza wykorzystywać tryb Master - Slave, który jest trybem domyślnym. Po uruchomieniu urządzeń i skonfigurowaniu portu szeregowego komputera PC (parametry konfiguracyjne zostały podane w rozdziale 3.6), można rozpocząć pracę z systemem.

Przykładowy cykl komunikacyjny w trybie Master – Slave:

Strzałki na poniższych cyklach komunikacyjnych określają sekwencję operacji.

Żądanie - przesłanie danych (moduł nadrzędny):

Typ pakietu (0x01) Adres odbiorcy (0x02) Adres nadawcy (0x01)

Odpowiedź - pakiet z danymi pomiarowymi (moduł podrzędny):

Typ pakietu (0x01) Adres odbiorcy (0x01) Adres nadawcy (0x02) Dane (0xA1) Dane (0x4E)

Przykładowy cykl komunikacyjny w trybie Klient – Serwer:

Żądanie - wybór trybu pracy systemu (moduł nadrzędny):

Typ pakietu (0x05) Adres odbiorcy (0x00) Adres nadawcy (0x01) Tryb pracy (0x01)

Odpowiedź - potwierdzenie odebrania pakietu (moduł podrzędny):

Typ pakietu (0x04) Adres odbiorcy (0x01) Adres nadawcy (0x03) Typ pakietu potwierdzanego (0x5)

Żądanie - wybór określonego interwału czasowego( moduł nadrzędny):

Typ pakietu (0x06) Adres odbiorcy (0x3) Adres nadawcy (0x1) Czas (0x5)

Odpowiedź - potwierdzenie odebrania pakietu (moduł podrzędny):

Typ pakietu (0x04) Adres odbiorcy (0x01) Adres nadawcy (0x03) Typ pakietu potwierdzanego (0x6)

Żądanie - pakiet z danymi pomiarowymi (moduł podrzędny):

Typ pakietu (0x01) Adres odbiorcy (0x01) Adres nadawcy (0x03) Dane (0xA1) Dane (0x4E)

Odpowiedź - Potwierdzenie odebrania pakietu (moduł nadrzędny):

Typ pakietu (0x04) Adres odbiorcy (0x03) Adres nadawcy (0x01) Typ pakietu potwierdzanego (0x1)

Praca wielu modułów radiowych w jednym paśmie częstotliwości wymusza zastosowanie mechanizmów przeciwdziałających kolizjom ramek. W pracy zastosowano protokół dostępu do medium transmisyjnego MAC (ang. Media Access control), rozszerzony o możliwość oceny zajętości kanału przed wysłaniem sygnału, tj. CSMA (ang. Carrier Sense Multiple Access). Moduły radiowe (zarówno podrzędne jak i nadrzędny) przed wysłaniem wiadomości nasłuchują aktualny stan kanału transmisyjnego (wykrywanie nośnej), w celu wykrycia zajętości pasma przez inne moduły. W przypadku wolnego kanału moduł zaczyna transmisje danych. Gdy kanał jest zajęty przez inne urządzenie, moduł odczekuje pewien losowy czas (do ok. 1s) i ponownie sprawdza stan kanału transmisyjnego.



komentarze

Copyright © 2008-2010 EPrace oraz autorzy prac.