Systemy łączności bezprzewodowej (część 1)

IQRF – inteligentne interfejsy radiowe

Jeżeli potrzebujemy rozwiązania stosunkowo prostego, ale jednocześnie dającego unikalne możliwości, warto zainteresować się ofertą czeskiej firmy MICRORISC. Czesi wpadli na pomysł, żeby połączyć prosty (z punktu widzenia programisty) moduł radiowy z małym mikrokontrolerem i umieścić ten układ na niewielkiej płytce drukowanej – rysunek 6.

Rysunek 6. Moduł TR72

Taki pomysł nie wydaje się czymś odkrywczym i rzeczywiście tak by było, gdyby na tym poprzestano. Produkt firmy MICRORISC to jednak znacznie więcej niż moduł radiowy i mikrokontroler. Zaprojektowano cały system zbudowany z małych, łatwych w użyciu i programowaniu modułów radiowych, zestawów rozszerzających DCC Kits, a także firmowych narzędzi sprzętowych i programowych stanowiących kompleksowe wsparcie dla projektanta. Użytkownik ma dyspozycji część pamięci programu mikrokontrolera i może tam umieszczać swój firmware napisany w języku C współpracujący z wbudowanym systemem operacyjnym (rysunek 7). Wydajność bardzo prostego rdzenia mikrokontrolera PIC16F i dostępne zasoby nie pozwalają na zaimplementowanie bardziej zaawansowanych protokołów radiowych. Tym niemniej do prostych zastosowań bardzo przydaje się elastyczne połączenie mikrokontrolera z prostym systemem operacyjnym oraz modułu radiowego.

Rysunek 7. Schemat blokowy modułu TR72

Nowa generacja modułów z transceiverem SPIRIT1

Obecnie oferowana jest kolejna generacja modułów. W torze radiowym pracuje układ SPIRIT1 produkowany przez STMicroelectronics. Mikrokontroler to jednostka Microchipa PIC16LF1938 z 8-bitowym rdzeniem PIC16F. Na płytce modułu zamontowano też sensor temperatury MCP9808 i pamięć EEPROM 24AA256 o pojemności 256 kbit. Schemat modułu TR72 został pokazany na rysunku 8.

Rysunek 8. Schemat modułu TR72

SPIRIT1 może pracować w pasmach 150-174 MHz, 300-348 MHz, 387-470 MHz, a także 779-956 MHz. To pozwala dobierać pasmo, w którym moduł będzie działał. Wybrane pasmo częstotliwości musi być dopuszczone do stosowania bez zezwolenia w kraju, w którym moduł będzie używany. W Europie jest to pasmo 868 MHz ISM.

Programowanie modułów

Jak już wspomniałem, w pamięci mikrokontrolera modułu fabrycznie umieszczono prosty system operacyjny nazwany IQRF OS. Użytkownik ma do dyspozycji zestaw funkcji systemowych. Realizują one transfer danych przez kanał radiowy i transmisję do układu hosta (standardowo przez interfejs SPI). Funkcje IQRF OS wspierają pracę sieci typu MESH. Program użytkownika jest pisany w języku C i kompilowany kompilatorem CC5X. Tu również producent zadbał o to, by nie trzeba było się martwić o niezbędne narzędzia. Darmowa wersja kompilatora zupełnie wystarcza do napisania sporego programu.

Trzeba pamiętać, że taki moduł jest inteligentnym układem peryferyjnym i nie można na nim uruchamiać dużych zadań. Jeżeli jest to konieczne, to moduł radiowy pełni funkcje komunikacyjne, a bardziej wymagające zadania wykonuje host. Tworzenie aplikacji umożliwia firmowy pakiet IQRF IDE. Mimo, że na pierwszy rzut oka wygląda na proste narzędzie, to ma dość spore możliwości. Z jego pomocą możemy wykonać wszystkie czynności projektowe: edytować (za pomocą zewnętrznego edytora) plik źródłowy języka C, skompilować go, zaprogramować mikrokontroler modułu radiowego i debugować działający program. I na koniec „programator” modułów umożliwia z poziomu IQRF IDE zapisanie pamięci Flash mikrokontrolera kodem programu użytkownika. IDE ma też szereg przydatnych funkcji, na przykład podglądanie on-line transmisji w kanale radiowym i podglądanie transmisji interfejsu SPI łączącego moduł z hostem (w tym przypadku hostem jest IDE).

Do programowania pamięci mikrokontrolera potrzebny jest dodatkowy moduł programatora z interfejsem USB. W programatorze umieszcza się moduł radiowy, na przykład wspomniany TR72 i po połączeniu kablem USB można programować jego pamięć. To jednak nie wszystko. Producent przewidział możliwość zdalnego przeprogramowania modułów poprzez połączenie radiowe. Można przeprogramować jeden konkretny moduł lub jednocześnie wszystkie, z którymi jest łączność.

Parametry połączenia radiowego

W systemie IQRF moduły radiowe TR52B tworzące sieć mogą pracować w dwóch trybach:

  • Peer-to-peer
  • IQMESH

Peer-to-peer jest trybem domyślnym. Jest wykorzystywany do połączenia dwóch lub więcej obiektów bez systemowego koordynatora sieci. Pakiety danych wysyłane przez moduł są dostępne dla wszystkich pozostałych modułów w sieci. Adresowanie i ruch pakietów nie są wspierane przez IQRF OS i muszą być całkowicie zaimplementowane w warstwie aplikacji użytkownika. Ilość modułów w sieci nie jest limitowana. Można sobie wyobrazić sieć w topologii gwiazdy z modułami zaprogramowanymi do pracy w trybie peer-to-peer. Moduł połączony z hostem pracuje jako master i sekwencyjnie odpytuje wszystkie pozostałe (slave). Każdy moduł slave musi mieć przypisany na stałe unikalny adres i odpowiada w momencie, kiedy jest wywołany (zaadresowany) przez mastera.

Tryb IQMESH pozwala na utworzenie sieci kratowej (MESH). Z założenia taka sieć daje możliwość komunikacji pomiędzy elementami sieci bez konieczności używania wydzielonego elementu centralnego. Każde urządzenie sieciowe (moduł radiowy) może komunikować się z każdym innym urządzeniem bezpośrednio (jeśli jest zasięg radiowy) lub za pośrednictwem dowolnych modułów (gdy element docelowy jest poza bezpośrednim zasięgiem źródła) (rysunek 9).

Rysunek 9. Przykładowa konfiguracja sieci IQMESH

W poważniejszych projektach na pewno warto docenić kompletność systemu, możliwości szybkiego tworzenia prostych i inteligentnych interfejsów radiowych, silne wsparcie sieci Mesh i możliwość szybkiego debugowania. Ja w jednym z projektowanych urządzeń zastosowałem starsze moduły TR52D. Z praktyki wiem, że te moduły pracują niezawodnie, a pisanie i uruchamianie własnego firmware jest szybkie i nie sprawia problemów. Mimo wielu zalet, IQRF niestety nie wpiera najbardziej znanych i popularnych protokołów sieciowych typu BLE czy Zigbee, co z pewnością rzutuje na jego popularność.

Zachęcamy do przeczytania drugiej części artykułu, w którym przedstawiliśmy kolejne standardy sieci bezprzewodowych – Microchip MiWi oraz LoRaWAN: Systemy łączności bezprzewodowej (część 2)

O autorze