Bezprzewodowy przełącznik zasilany energią wolnodostępną
| TechnikaW naszym otoczeniu jest coraz więcej inteligentnych produktów i potrzeba tego, aby były one połączone, jest coraz silniej zarysowana. W znakomitej większości przypadków sensowną opcją na zapewnienie łączności jest w tym przypadku komunikacja bezprzewodowa. Jednym z podstawowych produktów w takim obszarze są przełączniki zasilania, które wyposażone w łączność dają wiele interesujących możliwości i wygodę.
Wiele inteligentnych przełączników zasilania korzystających z komunikacji bezprzewodowej wymaga wyposażenia w baterię, co powiększa rozmiary i koszt oraz nie sprzyja wygodzie, bo co jakiś czas trzeba baterię wymieniać. Na szczęście na rynku pojawia się możliwość wykorzystania jako źródła zasilania energii wolnodostępnej.
Istnieje wiele źródeł energii wolnodostępnej, jak światło, pole elektromagnetyczne, wibracje, różnice temperatury i ciśnienia. W tym artykule opisane zostaną możliwości, jakie daje projekt referencyjny do pozyskiwania energii mechanicznej oraz rozwiązania półprzewodnikowe firm ON Semiconductor i ZF Electronics, które wykorzystano do wykonania nowatorskiej konstrukcji przełącznika z interfejsem Bluetooth i protokołem open beacon Eddystone. Projekt i powiązany z nim zestaw ewaluacyjny tworzą razem gotowe do użycia rozwiązanie systemu o bardzo małym poborze mocy z Bluetooth 5.0 niewymagające do pracy chemicznego źródła zasilającego.
Konstrukcja o ultramałym poborze mocy
Zestaw projektowy firmy ON Semiconductor o symbolu BLE-SWITCH001-GEVB łączy w całość moduł komunikacyjny w standardzie Bluetooth 5.0 z mechanicznym przełącznikiem realizującym pozyskiwanie mechanicznej energii wolnodostępnej (energy harvesting), zapewniając kompletne i gotowe do użycia rozwiązanie przełącznika bezprzewodowego. Źródłem energii zasilającej jest generator indukcyjny AFF-0007 firmy ZF Electronics, który dostarcza wystarczającą moc do pracy układu typu SiP (system- in-package) RSL10 Bluetooth 5 (BLE) firmy ON-Semiconductor. Zasada działania polega na tym, że naciśnięcie klawisza w przełączniku mechanicznym sprzężonym z generatorem indukcyjnym, zasila nadajnik na tyle długo, że możliwe jest wysłanie komunikatu do odbiornika drogą radiową w celu sterowania światłem, przekaźnikiem lub innym urządzeniem. Warunkiem poprawnego działania dla takiego bezbateryjnego urządzenia jest dodatni bilans energetyczny między energią dostarczaną przez generator AFIG-0007 oraz tym, co wymagane jest do transmisji sygnałów przez RSL10.
Moduł RSL10 to kompletne rozwiązanie komunikacyjne Bluetooth 5 integrujące wiele bloków funkcjonalnych (rys. 1). Zawiera zarówno mikrokontroler Arm Cortex-M3 pełniący ogólną funkcję sterującą działaniem, jak i specjalizowany 32-bitowy cyfrowy procesor sygnałowy (DSP) LPDSP32 firmy ON Semiconductor realizujący funkcje komunikacyjne.
Moduł ma 384 KB pamięci Flash, 76 KB pamięci programu i 88 KB pamięci danych. Do celów komunikacji Bluetooth ma wbudowany transceiver radiowy obsługujący fizyczną warstwę Bluetooth (PHY) pracujący na częstotliwości 2,4 GHz oraz kontroler pasma podstawowego obsługujący zaawansowane protokoły Bluetooth 5.0. Układ pracuje w szerokim zakresie napięć zasilania od 1,1 do 3,3 V i pobiera bardzo małą moc. Zgodnie z wynikami testu porównawczego ULPMark Embedded Microprocessor Benchmark (EEMB), RSL10 osiągnął najlepszy wynik w branży na poziomie 1090 punktów przy zasilaniu 3 V i 1360 przy zasilaniu 2,1 V.
W przypadku opisywanej aplikacji bardziej istotna jest nie tyle moc wymagana do obsługi powtarzalnych długich transakcji bezprzewodowych, ale bardzo krótkiego wysyłania komunikatów towarzyszących zmianie stanu przełącznika. W takim zastosowaniu wykorzystywane są funkcje beaconu (nawigacyjne) zawarte w Bluetooth.
Sygnały beaconu to krótkie wiadomości, które są zgodne z protokołami rozgłoszeniowymi Bluetooth wykorzystywanymi do rozgłaszania identyfikatora lub innej małej ilości danych każdemu odbiornikowi znajdującemu się w zasięgu. W połączeniu ze specjalistycznymi aplikacjami mobilnymi funkcje beacona znalazły szerokie zastosowanie w handlu detalicznym, rozrywce, transporcie i innych miejscach publicznych, w których wysyłany przez nie sygnał nawigacyjny może dostarczać informacji związanych z lokalizacją i obecnością użytkownika. W opisywanym przełączniku zastosowano specjalny typ becacona o nazwie Eddystone.
Beacon (radiolatarnia) Eddystone jest zgodna z otwartym standardem, który określa format i zawartość pakietu danych o długości zaledwie kilku bajtów. Jest to unikatowy dla urządzenia identyfikator (UUID), adres URL lub różne typy danych telemetrycznych (TLM), takie jak np. temperatura (rys. 2). Odbiornik, który znajdzie się w zasięgu beacona Eddystone, jest w stanie na podstawie wysyłanych przez niego danych wykonać żądaną akcję, np. włączyć oświetlenie lub przestawić termostat.
Źródło energii wolnodostępnej
Transmisja sygnałów nawigacyjnych beacona Eddystone trwa zaledwie 10 ms, a całkowita energia potrzebna do ukończenia transmisji przez RSL10 wynosi 100 mJ. Takie wartości są w zakresie możliwości generatora AFIG-0007.
AFIG-0007 zawiera cewkę, którą otacza metalowy rdzeń stykający się z ruchomym magnesem (rys. 3 po lewej). Gdy użytkownik naciska sprężynowy klawisz, magnes przesuwa się (rys. 3 po prawej) tak, że biegunowość pola magnetycznego w cewce ulega odwróceniu, powodując zgodnie z zasadami indukcji magnetycznej powstanie impulsu prądu w uzwojeniu. Zwolnienie siłownika powoduje powrót sprężystego bloku magnetycznego do jego pierwotnego położenia, co skutkuje kolejnym impulsem energii o przeciwnej biegunowości.
Szacunkowa mechaniczna żywotność generatora wynosi 1 mln cykli, a wymiary to jedynie 20×7×15 mm, co pozwala na wykorzystanie w wielu aplikacjach. AFIG-0007 dostarcza około 300 mJ energii przy każdym cyklu aktywacji naciśnięcia i zwolnienia klawisza, czyli znacznie więcej niż wymaga współpracujący z nim nadajnik RSL10. Pozwala to na przesłanie dwóch lub trzech sygnałów beacona Eddystone. Istotne jest, że poza generatorem i modułem komunikacyjnym cały projekt przełącznika bezprzewodowego wymaga jeszcze tylko kilko dodatkowych elementów.
Projekt kompletnego zasilacza
Zazwyczaj obwody służące do pozyskiwania energii wolnodostępnej wymagają wykorzystania przetworników podwyższających napięcie, gdyż to dostarczane przez przetwornik energii jest za małe w stosunku do wartości wymaganych przez mikrokontroler. W przypadku omawianej konstrukcji szeroki zakres napięć zasilania układu RSL10, a więc od 1,1 do 3,3 V, upraszcza konstrukcję obwodu zasilania. Napięcie na wyjściu AFIG- 007 jest prostowane w mostku na diodach Schottky’ego NSR1030, filtrowane i stabilizowane z użyciem prostego obwodu diodą Zenera SZMM3Z6V2ST1G, kondensatorem filtrująco-magazynującym (C1) i stabilizatorem LDO NCP170 (rys. 4). Zestaw BLE-SWITCH001-GEVB ma wymiary 23×23 mm i zawiera generator AFIG-007, moduł RSL10 i elementy dodatkowe (rys. 5).
W środkowej sekcji o szerokości 7 mm znajdują się podstawowe elementy, a odłączane boczne skrzydła zawierają interfejsy programistyczne, w tym 10-pinowy JTAG/SWD do podłączenia np. Tag-Connect TC2050-IDC. Są tam też pola kontaktowe i zworki do podłączenia zewnętrznego źródła zasilania 3,3 V (Vout) do programowania i debugowania za pomocą podłączonego programatora JTAG, takiego jak Segger Microcontroller Systems 8.16.28 J-Link Ultra+.
Projekt przełącznika
Oprogramowanie zaszyte w BLE- -SWITCH001-GEVB przesyła sygnał beacona Eddystone co 20 ms, dopóki system nie zużyje energii wywołanej naciśnięciem klawisza. W wersji demonstracyjnej jest to ramka Eddystone- URL zawierającą adres "https://onsemi.com/idk" a potem w kolejności ramki Eddystone-TLM, które zawierają dane telemetryczne, w tym napięcie zasilania przełącznika, czas jego działania i całkowitą liczbę przesyłanych do tej pory pakietów.
Towarzyszące zestawowi oprogramowanie zawiera przykłady użyteczne do tworzenia własnych ramek danych (Listing 1). Do tego można użyć funkcji EddyService_Env_Initialize (), pozwalającej na załadowanie struktury środowiska Eddystone oraz eddy_env_tag z danymi dla ramki Eddystone-URL. Aby wysłać sygnał nawigacyjny, wywołuje się Eddy_GATTC_WriteReqInd (), która tworzy pakiet, szyfruje dane za pomocą dostępnej w RSL10 jednostki AES, a następnie wpisuje (ke_msg_send ()) wiadomość do kolejki transmisji. Niższe warstwy protokołu pobierają wiadomości znajdujące się w kolejce i przesyłają je torem radiowym.
/*Listing 1. Przykładowy kod programu do definiowania zawartości ramki Eddystone-URL*/
struct eddy_env_tag eddy_env;
void EddyService_Env_Initialize(void) {
/* Reset the application manager environment */
memset(&eddy_env, 0, sizeof(eddy_env));
.
.
.
memcpy(eddy_env.advslotdata_value, (uint8_t[16] ) { 0x10, 0x03, 'o', 'n',
's', 'e', 'm', 'i', '.', 'c', 'o', 'm', '/', 'i', 'd', 'k' },
eddy_env.advslotdata_length);
eddy_env.advtxpower_value = OUTPUT_POWER_DBM; /* Set radio output power of RF */
Eddy_GATTC_WriteReqInd(…)
.
.
.
valptr = (uint8_t *) &eddy_env.advtxpower_value;
.
.
.
/* Enable and confi gure the base band block */
BBIF->CTRL = BB_CLK_ENABLE | BBCLK_DIVIDER_8 | BB_WAKEUP;
/* Copy in the exchange memory */
uint8_t plain_text[16];
for (int i = 0; i<=15;i++)
plain_text[i] = eddy_env.challenge_value[15-i];
memcpy((void *) (EM_BLE_ENC_PLAIN_OFFSET + EM_BASE_ADDR), plain_text, 16);
/* Confi gure the AES-128 engine for ciphering with the key and the memory
* zone */
uint8_t encryptionkey[16];
for (int i = 0; i<=15;i++)
encryptionkey[i] = eddy_env.lockstate_value[16-i];
Sys_AES_Confi g((void *) encryptionkey, EM_BLE_ENC_PLAIN_OFFSET);
/* Run AES-128 encryption block */
Sys_AES_Cipher();
/* Access to the cipher-text at EM_BLE_ENC_CIPHER_OFFSET address */
uint8_t encryptedtext_temp[16];
memcpy(&encryptedtext_temp[0], (void *) (EM_BLE_ENC_CIPHER_OFFSET + EM_BASE_ADDR),16);
uint8_t encryptedtext[16];
for (int i = 0; i<=15;i++)
encryptedtext[i] = encryptedtext_temp[15-i];
if (!memcmp(encryptedtext, eddy_env.unlocktoken_value, 16))
.
.
.
ke_msg_send(…)
Emitowane sygnały nawigacyjne mogą zostać wykryte przez dowolne urządzenie obsługujące BLE będące w zasięgu lub wyświetlone za pomocą specjalnej aplikacji mobilnej dla RSL10. Od tej strony można wykorzystać np. zestaw rozwojowy BDKGEVK BLE IoT zapewniający odbiór sygnału beacona i wysterowanie urządzenia bezpośrednio, np. diody LED lub większego systemu. W tym przypadku możliwe jest połączenie ze sterownikiem silnika bezszczotkowego BLDC-GEVK silnika krokowego D-STPR-GEVK.
Po wgraniu oprogramowania do przełącznika można odłamać skrzydełka i zostawić jedynie część główną z elementami funkcjonalnymi (rys. 6).
Digi-Key Electronics
https://www.digikey.pl/