Jednym z najważniejszych wymagań dla węzła czujnika IoT jest małe zużycie energii. W wielu przypadkach węzeł czujnika będzie komunikował się bezprzewodowo, co upraszcza jego montaż. Całe zasilanie węzła musi być zapewnione przez wbudowaną baterię lub pobrane z otoczenia. W celu zminimalizowania kosztów konserwacji wielu użytkowników chciałoby, aby bateria umożliwiała zasilanie urządzenia przez cały okres jego eksploatacji, który może wynosić pięć, dziesięć, a nawet więcej lat.
Zużycie energii w okresie eksploatacji czujnika IoT zależy od zużycia energii podczas aktywnego przetwarzania danych i komunikacji z siecią bezprzewodową oraz w okresach braku aktywności. Zużycie energii przez urządzenia wykorzystujące logikę CMOS, takie jak mikrokontroler, zależy w dużym stopniu od ładunku wymaganego do przełączania poszczególnych stanów. Należy także uwzględnić stałą utratę energii spowodowaną przez prąd upływu.
Energię zużywaną podczas przełączania można obliczyć na podstawie wzoru C×V²×f, gdzie C oznacza całkowitą pojemność ścieżek obwodu w urządzeniu, V oznacza napięcie zasilania, a f częstotliwość roboczą. Energia tracona przez upływ zależy od użytej technologii przetwarzania i jest znacznie mniejsza od energii wymaganej do przełączania. Jednak ze względu na ciągły charakter upływu może on prowadzić do znacznej utraty energii w długim okresie.
Jedyną metodą zapobiegania upływowi jest całkowite wyłączenie zasilania obwodu. Wiele mikrokontrolerów jest zaprojektowanych do obsługi takiej funkcji. Gdy układ nie jest aktywny, stan uśpienia mikrokontrolera umożliwia odłączenie szyn zasilania od dużych fragmentów układu scalonego (IC) i zasilanie jedynie niektórych bloków funkcjonalnych, takich jak zegar czasu rzeczywistego. W energooszczędnym stanie uśpienia urządzenie zużywa o wiele mniej energii niż w stanie aktywnym.
Wiele zastosowań IoT może wykorzystać funkcję obsługi trybów uśpienia przez mikrokontroler. Odstępy pomiędzy okresami aktywności mogą być względnie długie. Każdy pomiar wykonywany przez czujnik trwa zwykle kilkaset mikrosekund, a często jest nawet jeszcze krótszy. Nawet w przypadku, gdy pomiar musi być wykonywany dziesięć razy na sekundę, węzeł czujnika może pozostawać uśpiony przez większą część swojego czasu eksploatacji.
Czas eksploatacji zależy w dużym stopniu od cyklu przełączania pomiędzy trybem aktywności a trybem uśpienia. W przypadku czasu aktywności wynoszącego 5 procent czasu eksploatacji, urządzenie może wybudzać się pięć razy na sekundę na 10 ms. Mikrokontroler zużywający 1 mA w stanie pełnej aktywności oraz obsługujący tryb głębokiego uśpienia, w którym zużywa 2 mA, może działać przez cztery lata dzięki zasilaniu baterią o pojemności 1800 mAh. Jeśli czas aktywności wzrośnie do 10%, czas eksploatacji ulegnie skróceniu o niemal połowę.
Projektanci mikrokontrolerów przeznaczonych do zastosowań IoT przywiązują ogromną wagę nie tylko do zredukowania energii zużywanej w trybie aktywności oraz w trybie uśpienia, ale również do zwiększenia stosunku czasu uśpienia do czasu największej aktywności. Szczytowa aktywność mikrokontrolera z reguły występuje w czasie, gdy centralny procesor przetwarza oprogramowanie.
Część energii jest również tracona w okresach wybudzania oraz przechodzenia w tryb uśpienia. W tym czasie oprogramowanie nie wykonuje przydatnych zadań. Choć projektanci mikrokontrolerów pracują nad skróceniem opóźnienia wybudzenia przy użyciu wbudowanych w układ oscylatorów szybkiego rozruchu, układ zużywa energię podczas przesyłania wartości ważnych rejestrów do oraz z pamięci nieulotnej oraz wykonywania innych zadań konserwacyjnych. Kluczem do wydłużenia czasu pracy baterii jest zatem zminimalizowanie liczby wymaganych cyklów wybudzania. Jest to możliwe dzięki użyciu inteligentnych urządzeń peryferyjnych.
Wielu projektantów zastosowało inteligentne, energooszczędne urządzenia peryferyjne – od 8-bitowych mikrokontrolerów, takich jak Microchip PIC, do 32-bitowych układów SoC wykorzystujących architekturę ARM. Niektóre z nich są wyposażone w automaty skończone i mikroprocesory sterujące urządzeniami peryferyjnymi bez konieczności przetwarzania oprogramowania.
Jako przykłady można tu podać technologie picoPower i SleepWalking firmy Atmel oraz blok peryferyjny LESENSE używany w serii mikrokontrolerów Gecko firmy Silicon Labs. Microchip zastosował koncepcję urządzeń peryferyjnych niezależnych od rdzenia w kilku mikrokontrolerach PIC12 i PIC16.
Zastosowanie automatów skończonych i innych układów logicznych w urządzeniach peryferyjnych umożliwia dłuższe pozostawienie rdzenia procesora w trybie uśpienia poprzez sprzętową, a nie programową realizację niektórych często wykonywanych obliczeń. Prostsze mechanizmy sprzętowe niższego poziomu potrzebują mniej czasu na wyjście z trybu uśpienia oraz zużywają o wiele mniej energii w porównaniu z w pełni aktywną jednostką przetwarzania centralnego.
W typowym zastosowaniu mikrokontroler działa przez większość czasu w trybie niemal pełnego uśpienia, z włączonymi tylko wybranymi najważniejszymi funkcjami, takimi jak obwód przerwań sprzętowych i zegar czasu rzeczywistego. Pozwala to nie tylko na przetwarzanie przerwań resetowania i podtrzymanie zegara systemowego, ale dzięki pracy zegara umożliwia generowanie przerwań czasowych w regularnych odstępach.
Przerwanie czasowe może spowodować częściowe wybudzenie i aktywację ważnych bloków, takich jak przetworniki analogowo-cyfrowe (A/C) podłączone do zewnętrznych czujników urządzenia IoT. Po aktywacji, przetworniki A/C mogą wykonać pomiary i przesłać je do pamięci układowej. Na przykład automat skończony zastosowany w kontrolerze LESENSE może porównać nową wartość z progiem ustawionym programowo przed poprzednim uśpieniem rdzenia procesora. Jeśli wartość jest niższa od progu, procesor może pozostać uśpiony. W przeciwnym przypadku kontroler LESENSE wybudzi procesor w celu wykonania bardziej szczegółowej analizy oraz ewentualnie innych wymaganych czynności.
Koordynacja urządzeń niskiego poziomu pomiędzy peryferiami umożliwia zapisywanie danych z kolejnych pomiarów, aby były one dostępne dla procesora po jego wybudzeniu. Podsystemy picoPower w mikrokontrolerach wykorzystujących architekturę ARM mają dostęp do sterowników bezpośredniego dostępu do pamięci (DMA), które umożliwiają bezpieczne zapisanie zarejestrowanych danych w pamięci lokalnej. Sterownik DMA może w jeszcze większym stopniu zredukować zużycie energii dzięki użyciu sprzętowego mechanizmu CRC w celu automatycznego obliczania sumy kontrolnej zapewniającej integralność systemu.
Gama niezależnych od rdzenia urządzeń peryferyjnych dla układów Microchip PIC obejmuje konfigurowalne komórki logiczne wykonujące operacje logiczne na nawet 32 wewnętrznych i zewnętrznych źródłach wejściowych i działające nawet po uśpieniu rdzenia procesora. Umożliwia to mikrokontrolerowi obróbkę sygnałów oraz manipulowanie danymi bez wybudzania procesora, chyba że będzie to konieczne ze względu na wynik operacji logicznych.
Technologia Dynamic SleepWalking firmy Atmel optymalizuje zużycie energii, umożliwiając przełączanie domen zasilania bez wybudzania procesora. Pozwala to mikrokontrolerowi na używanie najniższego możliwego trybu zasilania w danym momencie, autonomiczne zwiększanie domeny zasilania w celu użycia dodatkowego systemu lub urządzeń peryferyjnych, a następnie powrót do niższego trybu zasilania po wykonaniu zadań.
W dziedzinie układów ARM przykładem programowej obsługi układów IoT o niskim zapotrzebowaniu na energię jest system obsługi zdarzeń mBed OS. Tradycyjne systemy operacyjne czasu rzeczywistego (RTOS) mogą zwiększać zużycie energii, próbując zapewnić jak najmniejsze opóźnienie sygnałów.
Oparty na zdarzeniach model systemu mBed OS wykorzystuje minimalizującą zużycie energii zasadę działania używaną w mikrokontrolerach wspomaganych sprzętowo. System mBed OS nie używa regularnych przerwań czasowych do inicjowania zadań – procesor jest wybudzany tylko w przypadku konieczności obsługi zdarzeń. Model jednowątkowy przetwarza zadania z danej domeny zasilania przed przekazaniem sterowania do zadań z innej domeny. Pozwala to uniknąć problemu z częstą aktywacją i usypianiem różnych domen zasilania, co minimalizuje całkowite zużycie energii.
Nieustannie trwa optymalizacja przetwarzania pod kątem oszczędzania energii w mikrokontrolerach, co pozwoli na uzyskanie dodatkowych korzyści pod względem czasu eksploatacji baterii w węzłach czujników. Jednak zastosowanie coraz bardziej inteligentnych urządzeń peryferyjnych współpracujących z rdzeniami procesorów już obecnie stwarza możliwości projektowania węzłów czujników IoT o niskim zużyciu energii.
Simon Duggleby
Product Marketing Manager
Electronics Division w RS Components