SPIRIT1 + STM32F0: energooszczędne rozwiązania dla aplikacji ISM
STMicroelectronics rozwija swoją ofertę także w kierunku podzespołów dla aplikacji wymagających niewielkiego poboru mocy, w tym aplikacji radiowych na pasma ISM. W artykule przedstawiamy nowoczesne mikrokontrolery STM32F0 i transceivery z rodziny SPIRIT1, które w skrócie można określić triadą: tanio, wydanie, niezawodnie.
Transceiver SPIRIT1 jest jednoukładowym, kompletnym torem nadawczo-odbiorczym, który umożliwia dwukierunkowy transfer danych z prędkością (bitową, mierzoną w antenie) od 1 do 500 kb/s. Układ wyposażono w uniwersalny modulator pozwalający na korzystanie z następujących metod modulacji: 2-FSK, GFSK, MSK, GMSK, OOK oraz ASK. Standardowy odstęp międzykanałowy wynosi 12,5 kHz, dzięki czemu w każdym paśmie radiowym można ulokować lokalnie dużą liczbę niezależnych urządzeń nadawczo-odbiorczych. Odbiornik w układzie SPIRIT1 charakteryzuje się dużą czułością (–118 dBm), a tor nadawczy jest przystosowany do emisji sygnału o mocy wyjściowej do +11 dBm. Schemat blokowy transceivera SPIRIT1 pokazano na rysunku 1.
Rys. 1. Schemat blokowy transceivera SPIRIT1
Podczas konstruowania tego układu wyraźnie nie wzięto sobie za punkt honoru bicie jakichkolwiek rekordów, poza rekordowym komfortem jego aplikowania: dotyczy to zarówno fizycznej aplikacji (rysunek 2), poboru mocy (9 mA w trybie odbioru, 21 mA w trybie nadawania przy poziomie mocy wyjściowej +11 dBm) jak i wewnętrznych rozwiązań sprzętowych wspierających transfer danych.
Rys. 2. Schemat elektryczny kompletnego toru nadawczo-odbiorczego na układzie SPIRIT1
Tor radiowy jest programowany poprzez interfejs SPI, który służy także do transferu danych. W ścieżkach nadawczej i odbiorczej zastosowano niezależne bufory FIFO o pojemności po 96 bajtów każdy, a tor radiowy wyposażono w mechanizmy minimalizujące zmiany wielkości fizycznych w otoczeniu na jakość transmisji (np. filtr odbiorczy o programowanej szerokości przenoszenia, automatyczną kompensację offsetu częstotliwości referencyjnej, „inteligentny” system dywersyfikacji anten bazujący na pomiarze poziomu sygnału nośnego preambuł, wbudowany w strukturę czujnik temperatury itp.).
Prezentowany transceiver wyposażono także w sprzętowe bloki automatyzujące transmisję danych, w tym m.in. automatyczne potwierdzanie poprawnego odbioru, automatyczne żądanie retransmisji, monitorowanie czasu transmisji i sygnalizowanie wystąpienie timeout’u. Zautomatyzowano także system synchronizacji transmisji z mechanizmem CCA (Clear Channel Assessment), na którym bazuje mechanizm dostępu do kanału transmisyjnego CSMA.
Wymienione elementy „automatyki” transmisji są wbrew pozorom łatwe do przyswojenia i bardzo przydatne zarówno w prostych systemach transmisyjnych punkt-punkt, systemach rozgłoszeniowych oraz sieciach radiowych, w których w jednym zakresie częstotliwości musi komunikować się wiele urządzeń w tym samym czasie.
Użytkownik może w protokole transmisji zaimplementować dynamicznie modyfikowaną długość ramek danych oraz automatyczną detekcję adresu urządzenia docelowego, przesyłane dane mogą być szyfrowane za pomocą sprzętowego bloku kryptograficznego AES128. Minimalizację ryzyka błędnych transferów uzyskano dzięki systemowi automatycznej synchronizacji transmisji, sprzętowej ochronie konsystencji danych z CRC oraz wbudowanemu systemowi korekcji błędów FEC (Forward Error Correction).
Twórcy układu zadbali także o elektromagnetyczne skutki transmisji danych za pomocą transcievera SPIRIT1 i żeby zminimalizować poziom prążków emitowanych przez niego zakłóceń zakłóceń, wyposażyli go w sprzętowy system „zaszumiania” przesyłanych danych. Jest on stosowany w torze nadawczym i odbiorczym, a jego rolą jest zminimalizowanie poziomu emisji zakłóceń podczas transmisji szybko zmieniających się danych (np. ciągu 01010101). Kolejnym zabiegiem minimalizującym emisję zakłóceń podczas nadawania jest cyfrowa modulacja ASK z dyskretnymi poziomami mocy, włączanymi stopniowo. Czasy kroków narastania i zmniejszania poziomu wyjściowego są programowane przez użytkownika.
Diagnostykę połączeń nawiązywanych przez transceivery SPIRIT1 ułatwiają dodatkowe mechanizmy w nich zaimplementowane: detektor nośnej, cyfrowy wskaźnik poziomu odbieranego sygnału RSSI (Received Signal Strenght Indicator), programowany detektor jakości preambuły, a także miernik jakości połączenia, bazujący na statystycznej weryfikacji danych przesyłanych i odbieranych.
Bardzo przydatnym – przede wszystkim w aplikacjach bateryjnych – wyposażeniem układów SPIRIT1 jest wbudowany w nie system monitorowania stanu baterii zasilającej (z sygnalizacją zbyt niskiej wartości napięcia zasilającego) oraz system oszczędzania energii z mechanizmami usypiania i wybudzania za pomocą wewnętrznego timera lub zewnętrznego zdarzenia.
Bogactwu wyposażenia wewnętrznego i ogromnych możliwości transceivera SPIRIT1 „zaprzecza” niewielka obudowa QFN z 20 wyprowadzeniami, której wymiary zewnętrzne nie przekraczają 4×4 mm. Zaawansowana technologia produkcji struktur półprzewodnikowych umożliwiła jednak zintegrowanie w niej wszystkich wymienionych funkcji przy jednoczesnym zapewnieniu niewielkiego poboru mocy.
Warto pamiętać, że standardowe wersje układów SPIRIT1 mogą pracować w zakresie temperatur otoczenia od –40 do +85oC, spełniają one także wymagania norm i zaleceń Wireless M-BUS, EN 300 220, FCC CFR47 15 (15.205, 15.209, 15.231, 15.247, 15.249), jest także zgodny z ARIB STD T-67, T93, T-108.
Żeby ułatwić konstruktorom rozpoczęcie własnych prac ewaluacyjnych z transceiverami SPIRIT1, producent opracował i produkuje zestawy startowe o nazwie STEVAL-IKR001VxD – fotografia 3, które pracują w paśmie radiowym 868 MHz, pozwalając na weryfikację praktycznych możliwości transceiverów.
Fot. 3. Wygląd zestawu uruchomieniowego STEVAL-IKR001VxD z układem SPIRIT1
Z myślą o mniej wyrafinownych lub zorientowanych na niskie ceny, aplikacjach niskomocowych, firma STMicroelectronics wprowadziła do produkcji rodzinę mikrokontrolerów z rdzeniem Cortex-M0, które są pozycjonowane przez producenta jako tanie rozwiązanie low-power. Mikrokontrolery STM32F0 są wyposażone w rdzeń przystosowany do taktowania sygnałem zegarowym o częstotliwości do 48 MHz, przy której osiąga wydajność ok. 38 DMIPS.
W skład standardowego wyposażenia mikrokontrolerów STM32F0 wchodzą m.in.: 12-bitowe przetworniki A/C i C/A, szybkie linie GPIO z możliwością obsługi nastawników pojemnościowych (także suwaków i „obrotowych” – łącznie do 18 pól czujnikowych) i sprzętowy kontroler PMSM (Permanent Magnet Synchronous Motor). W zależności od typu mikrokontrolera, użytkownik ma do dyspozycji od 16 do 64 kB Flash, 4 lub 8 kB SRAM i obudowy o liczbie pinów od 20 (TSSOP20), przez 32 (UFQFPN32 i LQFP32) i 48 (LQFP48), aż do 64 (LQFP64). Standardowym wyposażeniem rodziny STM32F0 jest ponadto 5-kanałowy kontroler DMA, szybki – do 1 Mb/s – interfejs I2C, interfejs SPI z obsługą CEC-HDMI i elastycznie ustawianą długością ramki danych (od 4 do 16 bitów @18Mb/s), szybki USART (do 6 Mb/s), programowalne 16-/32-bitowe timery z możliwością generacji 3-fazowego przebiegu PWM i 17 liniami capture/compare, a także wygodny w obsłudze wbudowany RTC z kalendarzem zliczającym w kodzie BCD.