Systemy dla Internetu Rzeczy (53). Komunikacja wielopasmowa zestawu czujnikowego LPSTK - CC1352R LaunchPad SensorTag

Systemy dla Internetu Rzeczy (53). Komunikacja wielopasmowa zestawu czujnikowego LPSTK - CC1352R LaunchPad SensorTag

W zestawie CC1352R LaunchPad SensorTag (LPSTK-CC1352R) zastosowano wielozakresowy, wieloprotokołowy bezprzewodowy procesor SimpleLink CC1352R. Dla zestawu został przygotowany przykładowy projekt DMM 15.4 Sensor, który pozwala skonfigurować zestaw jako węzeł czujnika do pracy jednocześnie w sieci z protokołem IEEE 802.15.4 w pasmie Sub-1 GHz oraz w sieci z protokołem BLE 5 w pasmie 2,4 GHz.

Uruchomienie projektu DMM 15.4 Sensor na zestawie CC1352R LPSTK [4] oraz projektu Collector na zestawie CC1352R LaunchPad tworzy sieć pracującą z protokołem IEEE 802.15.4 – jak pokazuje rysunek tytułowy [1]. Na obu zestawach pracuje firmowy stos TI 15.4. Sieć pracuje w pasmie Sub-1 GHz (868/915 MHz) co umożliwia uzyskanie sporego zasięgu – kilkaset metrów lub więcej. Tego typu sieci rozległe są nazywane WAN (Wide Area Network). Jednak początkowe prace z tym stosem dotyczyły komunikacji lokalnej, dlatego był nazywany PAN (Personal Area Network). I ta fraza przewija się w nazwach różnych parametrów sieci.

Aplikacje obu projektów używają komunikacji z komputerem poprzez łącze UART w celu wyświetlania informacji. Dodatkowo zastosowany tam interfejs CUI (Common User Interface) udostępnia sterowanie aplikacjami. Po stronie komputera może być zastosowany dowolny terminal znakowy, choć najwygodniej pracuje się z aplikacją PyTTy [16]. Praca zestawu CC1352R LPSTK [S33] z aplikacją firmową o nazwie BLE Multi Sensor, umożliwia komunikację BLE ze smartfonem. Jest ona fabrycznie programowana do procesora SimpleLink CC1352R [2] zestawu i została dokładnie opisana w poprzednim artykule tej serii [S52].

Technologia Dynamic Multi-protocol Manager (DMM) została opracowana przez firmę Texas Instruments i udostępniona jako część pakietu programowego SimpleLink CC13x2 26x2 SDK [S17]. DMM jest arbitrem poleceń RF pomiędzy stosami protokołów a sterownikami RF. Przechwytuje on wywołania sterowników i potencjalnie może zmieniać kolejność wykonania poleceń [S18]. Zagadnienia dotyczące działania DMM oraz organizacji oprogramowania z jej zastosowaniem zostały omówione w poprzednim artykule serii [S30].

Bezpieczeństwo jest najważniejszą cechą systemów Internetu Rzeczy (IoT). Dużym problemem jest bezpieczne dołączanie nowego węzła do sieci. Rozwiązaniem problemu jest zastosowanie metod bezpieczeństwa oferowanych przez protokół Bluetooth Low Energy (BLE), omówionych w poprzednim odcinku serii [S19].

Technologia EnergyTrace jest opracowana przez firmę Texas Instruments i udostępniana jako część środowiska programistycznego Code Composer Studio [S16]. Technologia EnergyTrace jest analizatorem prądu zasilania, który pozwala na pomiar prądu zasilania układów scalonych rodziny SimpleLink CC13x2/CC26x2. Dane udostępniane są w postaci wykresów oraz zestawienia tabelarycznego. Opis pomiarów prądu technologią EnergyTrace dla pracy stosu BLE został dokładnie opisany w poprzednim artykule tej serii [S30].

Można dosyć łatwo podglądać komunikację w sieci z protokołem IEEE 802.15.4. Dokładne omówienie tych zagadnień było omówione w poprzednim odcinku serii [S14].

Tor radiowy zestawu CC1352R LPSTK

Dopasowanie systemu antenowego ma decydujący wpływ na jakość pracy układu komunikacji radiowej, szczególnie przy bardzo małych mocach. Układ scalony CC1352R ma osobne różnicowe wyprowadzenia dla obsługi transmisji w pasmie 2,4 GHz oraz w pasmie Sub-1 GHz (rysunek 1). Firma Johanson Technology opracowała specjalnie dla niego zintegrowany podwójny układ IPC (Integrated Passive Component), o oznaczeniu 0900PC15A0036 (TR1) i wymiarach tylko 2×1,25×1 mm [10]. Jego zastosowanie redukuje liczbę koniecznych komponentów z 23 do 3, co znacznie zmniejsza wymaganą powierzchnię oraz koszt. Komponent zapewnia dopasowanie impedancyjne, ballun oraz filtrację harmonicznych jednocześnie w dwóch torach: 2,4...2,5 GHz oraz 862...928 MHz [10].

Rysunek 1. Wyprowadzenie sygnału radiowego zestawu CC1352R LPSTK [7]

Tor Sub-1 GHz jest dołączony do gniazdka antenowego J1 typu SMA (oznaczenie Sub-1GHz). Dla poprawnej pracy w tym pasmie należy dołączyć do tego gniazda antenę zewnętrzną. Taka antena prętowa jest dostarczana w zestawie. Tor 2,4 GHz jest dołączony do anteny A1 (oznaczenie 2,4 GHz) zrealizowanej bezpośrednio na płytce drukowanej. Zaletą anteny PCB jest niska cena oraz dobra jakość (po dokładnym zweryfikowaniu działania kolejnych wersji płytki drukowanej). Na płytce drukowanej jest też zamontowane gniazdko radiowe P1 (typu μSMA ). Po przelutowaniu kondensatora C11 w pole C9 (zaraz obok) będzie ono dołączone do wyjścia układu TR1.

Zestaw CC1352R LPSTK ma zastosowane osobne wyprowadzenie sygnału w pasmach Sub-1GHz/868 MHz. Jest to odmienne rozwiazanie, niż w zestawie CC1352R1 LaunchPad, gdzie oba tory są dołączone do jednej anteny PCB. Pomimo różnic zapewnia to pełną kompatybilność funkcjonalną aplikacji.

Oprogramowanie dla zestawu CC1352R LaunchPad SensorTag

Zestaw LPSTK-CC1352R [S33] jest zgodny programowo z zestawem CC13x2R1 LaunchPad [S15]. Dzięki temu możliwe jest zastosowanie wielu dotychczas dostępnych projektów [5]. Oprogramowanie dla zestawu CC1352R LPSTK jest dostarczane w ramach pakietu programowego SimpleLink CC13x2 and CC26x2 software development kit (SDK) [8] wraz z najnowszą wersją pakietu SimpleLink Academy [11].

Specjalnie dla zestawu CC1352R LPSTK zostały przygotowane trzy przykładowe projekty [9]. Zestaw jest dostarczany z fabrycznie zainstalowanym programem o nazwie Multi Sensor. Obsługuje on transmisję bezprzewodową Bluetooth LE 5.0. Umożliwia to komunikację z zastosowaniem protokołu BLE pomiędzy zestawem CC1352R LPSTK oraz smartfonem z aplikacją SimpleLink Starter (dostępną na system iOS [14] i Android [15]).

Szczególną zaletą zestawu CC1352R LPSTK jest możliwość jednoczesnej transmisji dwuzakresowej z różnymi protokołami komunikacyjnymi. Nową wersję oprogramowania z nowym protokołem transmisji można załadować bezprzewodowo podczas pracy programu Multi Sensor z aplikacją SimpleLink Starter.

Drugi projekt programowy umożliwia pracę dwuzakresową zestawu CC1352R LPSTK z protokołem BLE (2,4 GHz) oraz z protokołem IEEE 802.15.4 (Sub-1GHz). Jego opis znajduje się w pliku README.html w folderze projektu DMM 15.4 Sensor + BLE Remote Display [16], a dokładne omówienie jest zamieszczone w dokumencie LPSTK TI 15.4 – Stack [3]. Trzeci projekt dotyczy zastosowania komunikacji z protokołem BLE oraz ZigBee [9].

Porównanie konfiguracji sieci bezprzewodowych tworzonych z zastosowaniem zestawu CC1352R LPSTK zostało omówione w dokumencie Innovate, accelerate and connect across frequency bands and protocols with the SimpleLink MCU platform [1]. Dołączanie zestawu czujnikowego LPSTK-CC1352R do komputera oraz kasowanie wewnętrznej pamięci Flash jest opisane w artykule [S52]. Na portalu TI w sekcji szkoleń są zamieszczone bardzo przydatne prezentacje wideo. W prezentacji Long-range, multi-band sensor networks with LPSTK-CC1352R pokazano jak skonfigurować zestaw LPSTK-CC1352R jako węzeł czujnika Sub-1 GHz ze stosem TI-15.4 [13].

Aplikacja dmm_154sensor_remote_display

Projekt dmm_154sensor_remote_display prezentuje przykład komunikacji wieloprotokołowej, który umożliwia współbieżną obsługę protokołu IEEE 802.15.4g (w pasmie Sub-1 GHz) oraz protokołu BLE 5 (w pasmie 2,4 GHz). Ten przykład implementuje dwie sieci bezprzewodowe z zastosowaniem technologii DMM. Przykładowy projekt jest rozwinięciem wersji dla zestawu LAUNCHXL-CC1352R1. Różnica polega na tym, że aplikacja dla LPSTK wysyła dodatkowe wartości pomiarów do kolektora. Obejmuje to odczyty czujnika światła, czujnika wilgotności oraz akceleratora zestawu LPSTK. Kolektor domyślnie nie będzie wiedział jak odczytać dodatkowe odczyty czujnika.

Zadanie 1. Zaprogramowanie aplikacji dla zestawu czujnikowego LPSTK-CC1352R

W celu debugowania pracy zestawu CC1352R LPSTK trzeba do łącza JTAG (P2) dołączyć debuger sprzętowy [9]. Może to być debuger standardu XDS110. Najprościej można zastosować debuger XDS110 znajdujący się na płytce zestawu CC13x2R1 LaunchPad. Sposób dołączenia jest dokładnie opisany w poprzednim artykule serii [S52].

Zainstalowany fabrycznie w zestawie CC1352R LPSTK program Multi Sensor używa specjalnego programowego bootloadera o nazwie Boot Image Manager (BIM) [9]. Jest on umieszczony w pamięci Flash w obszarze niedostępnym podczas zwykłego programowania kodu. Może on utrudniać lub nawet uniemożliwiać uruchomienie innych programów. Poprawne uruchamianie aplikacji z programem BIM zostało dokładnie opisane w poprzednim artykule serii [S52]. Gdy występuje problem z uruchamianiem aplikacji DMM 15.4 Sensor RD, po jej wpisaniu do wewnętrznej pamięci Flash układu CC132R1, należy wykonać opisane niżej działania. Aplikacja działa poprawnie po uruchomieniu w środowisku CCS, jednak po odłączeniu debugera XDS110, przyciśnięcie przycisku Reset powoduje uruchomienie przez BIM firmowej aplikacji Multi sensor, a dokładniej – uruchamia aplikację z zewnętrznej pamięci Flash. Uniknięcie tego problemu wymaga wykonania trzech kroków. Należy:

  • Skasować zewnętrzną pamięć Flash. Dla domyślnej aplikacji Multi sensor przycisnąć oba przyciski BTN-1 i BTN-2 przez 5 sekund podczas wykonywania operacji Reset (dodatkowo należy przycisnąć Reset);
  • Usunąć program z wewnętrznej pamięci Flash układu CC132R1. Należy użyć programu UniFlash w najnowszej wersji [12]. Kasowanie całej pamięci Flash jest dokładnie opisane w poprzednim artykule serii [S52];
  • Wpisać do wewnętrznej pamięci Flash układu CC132R1 aplikację dmm_154sensor z zastosowaniem środowiska CCS.

Programowanie projektu dmm_154sensor

Należy wykonać następujące czynności:

  • Uruchom program Code Composer Studio – dwukliknij na ikonkę CCS;
  • W oknie Workspace Launcher wpisz ścieżkę z nazwą: C:\home_dir\work_DMM_154_Sensor;
  • Nie zaznaczaj „Use this as the default …”;
  • Klinij OK;
  • Obserwuj prawy dolny róg okna, czekaj, aż wszystkie moduły środowiska Eclipse zostaną załadowane. Niestety, nie ma informacji o zakończeniu pracy;
  • W oknie Getting Started kliknij na Resource Explorer;
  • Jeśli zostanie wyświetlone okno dialogowe dotyczące plików cookie kliknij przycisk akceptacji. Zostanie otworzona zakładka Resource Explorer.

Krok 1A: Importowanie projektu dmm_154sensor do CCS

  • W zakładce TI Resource Explorer rozwiń ścieżkę: Software → SimpleLink CC13x2 26x2 SDK – 5.20.00.52 → Examples → Development Tools → CC1352 LaunchPad → dmm → dmm_154sensor_remote_display_oad_lpstk_app → TI-RTOS → CCS Compiler → dmm_154sensor_remote_display_oad_lpstk_app;
  • Kliknij w prawym oknie na ikonkę „import” ;
  • Obserwuj prawy dolnym róg ekranu, czekaj, aż wszystkie operacje zostaną wykonane (szczególnie indeksowanie). Niestety, nie ma informacji o zakończeniu pracy;
  • W oknie Project Explorer rozwiń drzewo projektu dmm_154sensor i otwórz plik (dwukliknij) dmm_154sensor_remote_display_oad_lpstk_app.syscfg;
  • W środkowym panelu kliknij linię TI 15.4 Stack;
  • W prawym panelu rozwiń pole RadioConfigure PHY settings for radio operations (rysunek 2);
  • W polu Sub-1 GHz Frequency rozwiń listę i wybierz 868 MHz. Ustawienia parametrów Network, oraz Power powinny być takie, jak na rysunku 2.
Rysunek 2. Okno ustawiania parametrów konfiguracyjnych

Krok 1B: Importowanie projektu bim_offchip do CCS

  • W zakładce TI Resource Explorer rozwiń ścieżkę: Software → SimpleLink CC13x2 26x2 SDK – 5.20.00.52 → Examples → Development Tools → CC1352 LaunchPad → BLE-Stack → bim_offchip → No RTOS → CCS Compiler → bim_offchip;
  • Kliknij w prawym oknie na ikonkę „import” ;
  • Obserwuj prawy dolnym róg ekranu, czekaj, aż wszystkie operacje zostaną wykonane (szczególnie indeksowanie);

Krok 2: Budowanie wszystkich projektów

  • Z menu wybierz Project → Clean;
  • W oknie Clean kliknij przycisk Clean;
  • Czekaj, aż w oknie Console zostanie wyświetlona informacja „Build Finished” i zakończy pracę aplikacja Indexer; 

Zostały zbudowane oba projekty, jednak w oknie Console pokazywane są teraz informacje dotyczące budowania projektu zaznaczonego w oknie Project Explorer. Sprawdź w oknie Console czy wygenerowany został plik jądra: bim_offchip_CC1352R1_LAUNCHXL_nortos_ccs.

  • Sprawdź czy wygenerowany został plik kodu: dmm_154sensor_remote_display_oad_lpstk_app_CC1352R1_LAUNCHXL_tirtos_ccs.out.

Krok 3: Zdefiniowanie konfiguracji debuggera – Debugger Configuration

W oknie Project Explorer rozwiń drzewo projektu: dmm_154sensor_remote_display_oad_lpstk_app oraz gałąź targetConfigs. Plik konfiguracji sprzętowej CC1352R1F3.ccxml file jest już zdefiniowany i ustawiony jako Active/Default.

Krok 4A: Debugowanie projektu bim_offchip

  • W oknie Project Explorer zaznacz projekt bim_offchip_CC1352R1 _LAUNCHXL_nortos_ccs;
  • W oknie Project Explorer kliknij prawym klawiszem myszki na projekt bim_offchip_CC1352R1_LAUNCHXL_nortos_ccs;
  • Z podręcznego menu wybierz Debug As → Code Composer Debug Session;
  • Czekaj, aż kursor zostanie ustawiony na pierwszej linii kodu funkcji main();

Uwaga! Jeśli zostanie zaproponowana aktualizacja oprogramowania firmowego XDS110 to należy ją wykonać.

  • W perspektywie CCS Debug zakończ sesję – kliknij na ikonkę „terminate” ;
  • Czekaj, aż aplikacja powróci do perspektywy CCS Edit.

Krok 4B: Debugowanie projektu dmm_154sensor

  • W oknie Project Explorer zaznacz projekt dmm_154sensor;
  • Kliknij na ikonkę „debug” ;
  • Czekaj, aż kursor zostanie ustawiony na pierwszej linii kodu funkcji main().

Dołączanie terminala znakowego do zestawu LPSTK

  • W oknie Windows Device Manager sprawdź numer portu COMxx przydzielonego dla XDS110 Class Application/User UART (COMxx);
  • Uruchom aplikację PuTTY;
  • Wybierz Connection type jako Serial (po prawej stronie okna);
  • W polu parameteru Speed wpisz 115200 baud;
  • W polu parameteru Serial wpisz numer przydzielonego portu COMxx;
  • W oknie Category kliknij rozwiń linię Window → Colours;
  • Zaznacz Use system colours;
  • Kliknij na przycisk Open;
  • Rozciągnij okno aplikacji PuTTy na całą szerokość ekranu.

Uwaga! Nie odłączaj zestawu C1352R1 LaunchPad SensorTag od komputera w czasie pracy aplikacji PuTTy.

Wgląd w działanie projektu dmm_154sensor

  • W oknie edycyjnym pliku main.c zobacz sekwencję inicjalizacji;
  • Opis projektu znajduje się w pliku README [6];
  • W perspektywie CCS Debug zakończ sesję debugową. Kliknij na ikonkę „terminate” ;

Zostanie uruchomiona aplikacja 15.4 Sensor Remote Display z pamięci wewnętrznej układu CC1352R. Ponieważ przy bootowaniu nie było obrazu kodu w zewnętrznej pamięci Flash to BIM przepisze kod z pamięci wewnętrznej do zewnętrznej. Aplikacja projektu dmm_154sensor nie obsługuje kasowania zewnętrznej pamięci Flash. Ponowne zaprogramowanie nowej wersji aplikacji do wewnętrznej pamięci Flash układu CC1352R i wykonanie operacji Reset spowoduje uruchomienie starej wersji kodu z zewnętrznej pamięci Flash, z utratą wersji nowej. Aby skutecznie zaprogramować nową wersję kodu trzeba skasować zewnętrzną pamięć Flash. Wydaje się, że obecnie jedynym sposobem jest załadowanie aplikacji Multi sensor (np. poprzez OAD), skasowanie zewnętrznej pamięci Flash, skasowanie wewnętrznej pamięci Flash i zaprogramowanie nowego kodu.

Po uruchomieniu aplikacji 15.4 Sensor Remote Display na zestawie LPSTK trzy razy szybko błyska czerwona dioda LED i gaśnie. W oknie aplikacji PuTTy wyświetlane są informacje projektu dmm_154sensor. Wyświetlany jest adres BLE urządzenia i informacja, że pracuje w stanie rozgłaszania. Przyciśnięcie klawisza Enter powoduje wyświetlenie na górze okna podpowiedzi o nawigacji po menu sterowania aplikacją (rysunek 3).

Rysunek 3. Okno komunikatów projektu dmm_154sensor po dołączeniu do sieci WAN

Komunikacja w pasmie Sub 1-GHz ze stosem TI 15.4 jest w stanie oczekiwania – Waiting. Przyciśnięcie lewego przycisku zestawu LPSTK powoduje przejście do stanu Starting. Układ zaczyna w pasmie Sub-1 GHz nadawać Beacon (co ok. 7 s). Startuje również jednoczesna (równoległa) praca stosu BLE w trybie rozgłaszania. Urządzenie jest widoczne jako DMM 15.4 Sensor RD.

Zadanie 2. Zaprogramowanie aplikacji Collector

Opis dotyczy postępowania przy programowaniu zestawu startowego CC1352R LaunchPad. Takie samo postępowanie jest konieczne w przypadku użycia innych zestawów startowych. W skrócie, należy postępować według poniższego opisu. Programowanie wymaga zastosowania projektu Collector.

  • Dołącz zestaw startowy CC1352R LaunchPad do komputera;
  • Uruchom program Code Composer Studio – dwuklik na ikonkę CCS;
  • W oknie Workspace Launcher wpisz ścieżkę z nazwą: Nie zaznaczaj „Use this as the default …”;
  • Klinij OK;
  • Obserwuj prawy dolny róg okna;
  • W oknie Getting Started kliknij na Resource Explorer;
  • Jeśli zostanie wyświetlone okno dialogowe odnośnie plików cookie kliknij przycisk akceptacji. Zostanie otworzona zakładka Resource Explorer.

Krok 1C: Importowanie projektu collector

  • W zakładce TI Resource Explorer rozwiń ścieżkę: Software → SimpleLink CC13x2 26x2 SDK – 5.20.00.52 → Examples → Development Tools → CC1352 LaunchPad → TI 15.4-Stack → collector → TI-RTOS → CCS Compiler → collectori
  • Kliknij w prawym oknie na ikonkę „import” ;
  • Obserwuj prawy dolnym róg ekranu. Czekaj, aż wszystkie operacje zostaną wykonane (szczególnie indeksowanie);
  • W oknie Project Explorer rozwiń drzewo projektu collector_CC1352R1_LAUNCHXL_tirtos_ccs i otwórz plik (dwuklik) collector.syscfg;
  • W środkowym panelu kliknij linię TI 15.4 Stack;
  • W prawym panelu rozwiń pole RadioConfigure PHY settings for radio operations;
  • W polu Sub-1 GHz Frequency rozwiń listę i wybierz 868 MHz;
  • Sprawdź ustawienia parametrów Network, Power oraz Securit;
  • Otwórz plik csf.c znajdujący się w tej lokalizacji /application/collector;
  • Znajdź w pliku csf.c linie kodu (ok. 903)
CUI_statusLinePrintf(csfCuiHndl, deviceStatusLine, "Sensor - Addr=0x%04x, Temp=%d, RSSI=%d",
pSrcAddr->addr.shortAddr, pMsg->tempSensor.ambienceTemp, rssi);
  • Zamień wskazaną liniena na następujący kod:
CUI_statusLinePrintf(csfCuiHndl, deviceStatusLine, "Sensor - Addr=0x%04x, Temp=%d, Humidity=%d, Light=%d, RSSI=%d",
pSrcAddr->addr.shortAddr,
pMsg->humiditySensor.temp,
pMsg->humiditySensor.humidity,
pMsg->lightSensor.rawData,
rssi);

Krok 2C: Budowanie projektu collector

  • Z menu wybierz Project → Clean;
  • W oknie Clean kliknij przycisk Clean;
  • Czekaj, aż w oknie Console zostanie wyświetlona informacja „Build Finished” i zakończy pracę aplikacja Indexer;
  • Sprawdź czy wygenerowany został plik kodu collector_CC1352R1_LAUNCHXL_tirtos_ccs.out.

Krok 3C: Zdefiniowanie konfiguracji debuggera – Debugger Configuration

W oknie Project Explorer rozwiń drzewo projektu: collector_CC1352R1_LAUNCHXL_tirtos_ccs oraz gałąź targetConfigs. Plik konfiguracji sprzętowej CC1352R1F3.ccxml file jest już zdefiniowany i ustawiony jako Active/Default.

Krok 4C: Debugowanie projektu bim_offchip

  • W oknie Project Explorer zaznacz projekt collector_CC1352R1_LAUNCHXL_tirtos_ccs;
  • Kliknij na ikonkę „debug” ;
  • Czekaj, aż kursor zostanie ustawiony na pierwszej linii kodu funkcji main();
  • Zamknij CCS;
  • Odłącz zestaw startowy CC1352R LaunchPad od komputera. Oznacz jako Collector.

Dołączanie drugiego terminala znakowego do zestawu CC1352R LaunchPad

  • Dołącz zestaw startowy CC1352R LaunchPad do komputera;
  • W oknie Windows Device Manager sprawdź numer portu COMxx przydzielonego dla XDS110 Class Application/User UART (COMxx);
  • Uruchom aplikację PuTTY;
  • Postępuj tak samo jak dla zestawu C1352R1 LaunchPad SensorTag (opis powyżej);
  • Przyciśnij przycisk Reset na zestawie CC1352R LaunchPad.

Po uruchomieniu aplikacji 15.4 Sensor Remote Display w zestawie CC1352R LaunchPad trzy razy szybko błyska czerwona dioda LED i gaśnie. W oknie aplikacji PuTTy wyświetlane są informacje projektu collector, aplikacja jest w stanie Waiting. Przyciśnięcie klawisza Enter powoduje wyświetlenie na górze okna podpowiedzi o nawigacji po menu sterowania aplikacją (rysunek 4).

Tryby pracy aplikacji DMM 15.4 Sensor RD

Aplikacja Sensor pracuje w czterech stanach (tabela 1). Gdy stos BLE pracuje w stanie rozgłaszania to ma on niższy priorytet niż stos TI 15.4. Ale gdy stos BLE pracuje w stanie połączenia to ma priorytet wyższy. Taka organizacja pracy wynika z synchronicznej natury transmisji protokołu BLE. Stos TI 15.4 pracuje z transmisją asynchroniczną, więc możliwe jest powtórzenie transmisji pakietu bez utraty danych lub połączenia sieci. Dokładne omówienie pracy w trybie DMM zostało omówione w poprzednim odcinku serii [S30].

Praca z siecią WAN

Po uruchomieniu aplikacji Sensor, lewy przycisk służy do dołączania od sieci, a prawy przycisk służy do odłączania od sieci. Po uruchomieniu aplikacji Collector, lewy przycisk służy do startowania sieci, a prawy przycisk służy do otwierania/zamykania sieci na dołączanie węzłów.

Parametry połączeń aplikacji Sensor i Collector są pamiętane w pamięci nieulotnej NV układu CC1352R1. Aby je wykasować (przywrócić ustawienia do stanu początkowego) należy przycisnąć i przytrzymać (przez kilka sekund) prawy przycisk zestawu CC1352R LaunchPad następnie dodatkowo przycisnąć przycisk Reset. Należy uważać, aby nie przytrzymywać prawego przycisku zbyt długo.

Utworzenie sieci WAN wykonujemy w następujący sposób:

  • Przyciśnij przycisk BTN-1 (lewy) na zestawie CC1352R LaunchPad (Collector). Po chwili czerwona dioda LED zostanie zaświecona. Zostanie utworzona sieć WAN. W oknie terminala aplikacji Collector zostaną wyświetlone parametry tej sieci:
Status: Started--Mode=NBCN, Addr=0xaabb, PanId=0x0001, Ch=0, PermitJoin=Off
Device Status: -- \
Number of Joined Devices: 0
  • Przyciśnij przycisk BTN-2 (prawy) na zestawie CC1352R LaunchPad (Collector). Czerwona dioda LED zacznie migać co sygnalizuje, że sieć została otwarta na dołączanie węzłów (PermitJoin=On).

Dołączanie do sieci zestawu C1352R1 LaunchPad SensorTag przy pomocy aplikacji Sensor (obecnie jest w stanie Waiting) wykonujemy w następujący sposób. Przyciskamy przycisk BTN-1 (lewy) na zestawie C1352R1 LaunchPad SensorTag (Sensor). Powoduje to przejście aplikacji Sensor do stanu Starting. W sieci WAN zostanie nawiązane połączenie z węzłem Collector i węzeł Sensor zostanie dołączony do tej sieci (przechodzi do stanu Joined). Zostanie zaświecona czerwona dioda na zastawie LPSTK.

Okno informacji projektu collector pokazuje dla węzła Addr odebrane od niego dane dotyczące temperatury, wilgotności, poziomu oświetlenia oraz RSSI. Przy każdym odebraniu danych błyska zielona dioda LED na zestawie Collector i kreska na końcu linii danych obraca się o 45° (rysunek 4).

Rysunek 4. Okno komunikatów projektu collector po dołączeniu do sieci WAN

To Collector przesyła dane konfiguracji działania w sieci do węzła Sensor. Ustawienia konfiguracyjne sieci są widoczne na rysunku 3. Dane są wysyłane co 3 s. Dodatkowo Sensor wysyła do węzła Collector zapytanie o polecenia co 2 s. Polecenia można wydawać z użyciem menu w oknie informacji projektu collector.

Przyciśnięcie klawisza strzałki w prawo przewija po czterech pozycjach menu: HELP, CONFIGURE, NETWORK ACTTION oraz APP. Wciśnięcie klawisza Enter powoduje przejście na kolejny poziom.

I tak kombinacja APP → SEND TOGGLE + Enter spowoduje po chwili wyłączenie świecenia czerwonej diody LED na module Sensor.

Przyciśnięcie przycisku BTN-2 (prawy) na zestawie CC1352R LaunchPad (Collector) powoduje zamknięcie sieci WAN na dołączanie węzłów i czerwona dioda LED przestanie migać.

Parametry połączeń sieci WAN (jak Addr itd.) aplikacji Sensor oraz Collector są pamiętane w pamięci nieulotnej NV układu CC1352R1. Aby je wykasować (przywrócić ustawienia do stanu początkowego) należy przycisnąć i przytrzymać (przez kilka sekund) prawy przycisk zestawu następnie dodatkowo przycisnąć przycisk Reset.

Przyłączenie do sieci WAN kolejnych węzłów końcowych powoduje wyświetlenie w linii Device Status ostatnio odebranych danych węzła. Węzeł Sensor po utracie połączenia z węzłem Collector przechodzi do stanu Orphaned. Po ponownym nawiązaniu łączności przechodzi do stanu Rejoined i wznawia normalną pracę z poprzednimi ustawieniami (np. adresem sieciowym).

Wyświetlanie dodatkowych danych

Aplikacja Collector może pokazywać dodatkowe dane przesyłane przez węzeł z zestawem LPSTK. W tym celu należy w projekcie Colllector zdefiniować symbol „LPSTK”:

  • W oknie Project Explorer kliknij prawym klawiszem na linię projektu collector_CC1352R1_LAUNCHXL_tirtos_ccs;
  • Z menu wybierz Properties;
  • Przejdź do Build → Arm Complier → Predefined Symbols;
  • W oknie Pre-define NAME kliknij na ikonkę Add;
  • Wpisz „LPSTK” i kliknij OK;
  • Kliknij Apply and Close;
  • Z menu wybierz Project → Clean;
  • W oknie Clean kliknij przycisk Clean;
  • Kliknij na ikonkę „debug” ;
  • Kliknij na ikonkę „terminate” .

Teraz w oknie informacji projektu collector jest wyświetlana dodatkowa linia LPSTK Data z danymi odczytanymi z czujnika wilgotności, światła i akcelerometru. Dla dołączonych do sieci dwóch zestawów LPSTK dane wyświetlane są naprzemiennie (rysunek 5).

Rysunek 5. Okno komunikatów projektu collector wyświetlające dodatkowe dane

Szybkie prototypowanie z aplikacją mobilną

Rozpoczęcie pracy aplikacji Sensor uruchamia pracę stosu TI 15.4. Startuje również jednoczesna (równoległa) praca stosu BLE w trybie rozgłaszania. Urządzenie jest widoczne jako DMM 15.4 Sensor RD.

Zestaw CC1352R LPSTK może zostać dołączony poprzez łącze radiowe standardu Bluetooth LE do urządzenia mobilnego (smartfon/iPad) lub innego z obsługą tego standardu. Opis i odnośniki są zamieszczone na stronie LPSTK-CC1352R LaunchPad SensorTag Out of Box Experience [9]. Oprócz aplikacji SimpleLink Starter firmy Texas Instruments można używać aplikacji LightBlue lub BLEScanner.

Postępowanie przy uruchamianiu komunikacji z urządzeniem mobilnym przebiega w następujący sposób:

  • Pobierz darmową aplikację komunikacyjną dla swojego urządzenia mobilnego (smartfon/iPad), obsługującego transmisję bezprzewodową Bluetooth LE ver.4.0 (lub nowszą):
    • z portalu Apple App Store pobierz aplikację TI SimpleLink Starter dla urządzeń z systemem operacyjnym iOS 10.0 i nowszym (iPhone i iPad) [14];
    • z portalu Google Play pobierz aplikację SimpleLink Starter dla urządzeń z systemem operacyjnym Android 5.0 i nowszym [15];
  • Uruchom aplikację komunikacyjną na swoim urządzeniu mobilnym. Może to wymagać włączenia na urządzeniu radia Bluetooth;
  • W głównym oknie aplikacji wyszukaj na liście swój zestaw CC1352R LPSTK widoczny jako DMM 15.4 Sensor RD (rysunek 6a). Typowo, zestaw umieszczony blisko ma największą wartość RSSI (najwięcej kresek identyfikacji poziomu sygnału).
Rysunek 6. Przykładowe ekrany aplikacji SimpleLink Starter v.5.7.5

Po wybraniu zestawu pojawia się okno robocze prezentujące bieżące wartości odczytu z zestawu (rysunek 6b). W oknie informacji projektu Sensor pokazywany jest adres BLE urządzenia mobilnego oraz parametry połączenia. Oznacza to, że zestaw Sensor jest w sieci BLE w stanie komunikacyjnym „połączony”. Aplikacja pokazuje bieżący poziom odbieranego sygnału radiowego RSSI oraz informacje o zestawie. Aplikacja umożliwia również trzykrotne błyśnięcie zieloną diodą LED zestawu Collector (polecenie TOGGLE COLLECTOR LED). Zwraca uwagę natychmiastowe wykonanie polecenia. Możliwa jest też obsługa dołączania węzłów do sieci (raczej nie działa).

Rysunek 7. Aplikacja SimpleLink Starter v.5.7.5: a) wybór oprogramowania zestawu; b) informacje o wybranym oprogramowaniu; c) okno postępu programowania

Aplikacja umożliwia aktualizację bezprzewodową (OAD) oprogramowania zestawu (rysunek 6c). Możliwy jest wybór aplikacji firmowej lub własnej. Obecnie dostępnych jest 6 aplikacji firmowych OFF-CHIP (rysunek 7a): Thread, Sensor (2,4 GHz), BLE Multi Sensor (domyślna), DMM 15.4 Sensor RD – UE (868 MHz), DMM 15.4 Sensor RD – US (915 MHz) oraz DMM ZigBee. Po wyborze odpowiedniego kodu pokazywana jest informacja o nim (rysunek 7b). Po wystartowaniu aktualizacji pokazywane są informacje o transferze (rysunek 7c). Podobne informacje są pokazywane w oknie informacyjnym aplikacji Sensor. Po pomyślnym zakończeniu transferu kodu aplikacja mobilna rozłącza się. Moduł Sensor wykonuje operację Reset i startuje wykonywanie nowego kodu. Moduł pomyślnie ponawia połączenie do sieci WAN i wystawia rozgłaszanie BLE.

Podsumowanie

W przypadku większości sieci WAN, do komunikacji z istniejącym sprzętem użytkownika (np. smartfon, tablet itp.) wymagany jest dodatkowy moduł radiowy. Układ SoC, który integruje moduły radiowe Sub-1 GHz i Bluetooth LE, może skutecznie obsługiwać wiele aplikacji, znacznie redukując koszt systemu bezprzewodowego.

Obecna wersja oprogramowania firmowego (CC13x2 26x2 SDK v5.20) udostępnia pracę z pełnym stosem IEEE 802.15.4 oraz BLE 5. W zaprezentowanym przykładzie została pokazana sieć z protokołem IEEE 802.15.4 pracująca w pasmie 868 MHz oraz jednoczesne połączenie z komunikacją standardu BLE z urządzeniem mobilnym w pasmie 2,4 GHz. W implementacji DMM istnieją pewne ograniczenia, np. interwały połączenia mniejsze niż 60 ms, po podłączeniu BLE spowodują dużą utratę pakietów komunikacji w pasmie Sub-1GHz.

Bluetooth Low Energy oferuje platformę, na której konfigurację, obsługę i konserwację urządzenia można przeprowadzić lokalnie za pomocą smartfona lub tabletu. Co więcej, bezprzewodowe aktualizacje oprogramowania układowego (OTA) mogą być wykonywane znacznie szybciej dzięki połączeniu Bluetooth LE 5 o wyższej przepustowości.

Henryk A. Kowalski
Instytut Informatyki
Politechnika Warszawska

Literatura
[1] Innovate, accelerate and connect across frequency bands and protocols with the SimpleLink MCU platform, Adrian Fer, Nov 6, 2019, Texas Instruments, https://bit.ly/2XoKRzJ
[2] CC1352R SimpleLink multi-band wireless MCU, Texas Instruments, http://bit.ly/35tHuqc
[3] SimpleLink Academy, LPSTK TI 15.4 – Stack, Texas Instruments, https://bit.ly/39qX1uI
[4] SimpleLink multi band CC1352R wireless MCU Launchpad SensorTag kit LPSTK-CC1352R, Texas Instruments, http://bit.ly/38GI1ar
[5] LPSTK-CC1352R Quick start guide, 26 Nov 2019, Texas Instruments, http://bit.ly/35sTOr0
[6] TI 15.4-Stack Collector Example, README, Texas Instruments, file:///C:/ti/simplelink_cc13x2_26x2_sdk_5_20_00_52/examples/rtos/CC1352R1_LAUNCHXL/ti154stack/collector/README.html
[7] LPSTK-CC1352R Design Files ZIP, 15 Oct 2019, Texas Instruments, http://bit.ly/38Eicrr
[8] SimpleLink CC13x2 and CC26x2 software development kit (SDK) (Ver. 5.20.00.52), Texas Instruments, https://bit.ly/3lVCiGT
[9] LPSTK-CC1352R LaunchPad SensorTag Out of Box Experience (Meet the SimpleLink LPSTK-CC1352R LaunchPad SensorTag Development Kit), SimpleLink Academy, Texas Instruments, http://bit.ly/2st7tQ4
[10] Integrated Filter Balun for CC1352 (Matched Filter Balun for CC1352 and CC1352P), SWRA629A, 28 Jun 2019, Texas Instruments, http://bit.ly/36DwrLq
[11] SimpleLink Academy (5.20.01.00), Texas Instruments, https://bit.ly/3kqt1p8
[12] UniFlash, 6.2.0.3059, 25 Jan 2021, Texas Instruments, http://bit.ly/2tfQzom
[13] 3.25 Connect: Long-range, multi-band sensor networks with LPSTK-CC1352R, Video training, 13:07, Nov 21, 2019, Texas Instruments, http://bit.ly/38KW9iL
[14] TI SimpleLink Starter, Texas Instruments, iPhone (Requires iOS 10.0 or later.), Version 5.9, App Store, https://apple.co/3yHLlid
[15] Simplelink Starter, Texas Instruments Inc., Android 5.0 i nowszy, Version: 5.7.5, 16 czerwiec 2020, Google Play, http://bit.ly/2tk14Ub
[16] DMM 15.4 Sensor + BLE Remote Display, README, Texas Instruments, file:///C:/ti/simplelink_cc13x2_26x2_sdk_5_20_00_52/examples/rtos/CC1352R1_LAUNCHXL/dmm/dmm_154sensor_remote_display_oad_lpstk_app/README.html

Wybrane pozostałe artykuły kursu Systemy dla Internetu Rzeczy
[S14] Podglądanie ruchu w sieci radiowej z protokołem IEEE 802.15.4, EP 2/2018
[S15] Zestaw CC1352R1 LaunchPad, EP 5/2018
[S16] Dynamiczne monitorowanie prądu zasilania układu SoC, EP 6/2018
[S17] Jednoczesna komunikacja radiowa z użyciem dwóch protokołów i w dwóch pasmach, EP 8/2018
[S18] Praca z jednoczesną komunikacją radiową z użyciem dwóch protokołów i w dwóch pasmach, EP 9/2018
[S19] Bezpieczeństwo transmisji z protokołem Bluetooth Low Energy, EP 10/2018
[S30] Praca z jednoczesną komunikacją radiową BLE 5 oraz IEEE 802.15.4, EP 10/2019
[S33] Zestaw czujnikowy LPSTK – CC1352R LaunchPad SensorTag, EP 1/2020
[S52] Projekt Multi Sensor dla zestawu czujnikowego LPSTK – CC1352R LaunchPad SensorTag, EP 8/2021
Artykuł ukazał się w
Elektronika Praktyczna
październik 2021

Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik kwiecień 2024

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio marzec - kwiecień 2024

Świat Radio

Magazyn krótkofalowców i amatorów CB

Automatyka, Podzespoły, Aplikacje marzec 2024

Automatyka, Podzespoły, Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna kwiecień 2024

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Elektronika dla Wszystkich kwiecień 2024

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów