Badanie zużycia energii przez system wbudowany

Coraz większy nacisk kładzie się dzisiaj na zrozumienie profilu zużycia energii przez rozwiązania wbudowane. Na przykład od czujników IoT/IIoT może być wymagane działanie na zasilaniu bateryjnym przez wiele lat. Niezbędna jest więc wiedza o tym, jak długo urządzenie może pozostawać w stanie uśpienia, jednocześnie szybko reagując na przerwania.

W tym artykule omówiono zapotrzebowanie na energię typowego urządzenia bezprzewodowego oraz wyzwania, jakie przed inżynierami stawiają pomiary zużycia energii i dokładne przewidywanie żywotności baterii.

Ile energii zużywa mój system wbudowany?

W miarę jak IoT/IIoT rozszerza swój zasięg, zarówno pod względem różnorodności zastosowań, jak i użytkowania w odległych lokalizacjach, zasilanie urządzeń brzegowych z baterii staje się normą. Z inżynierskiego punktu widzenia bateria jest wygodnym źródłem zasilania systemu. Jednak wyzwaniem jest obliczenie jaka pojemność baterii będzie wymagana do zasilania urządzenia przez określony czas. Pojedyncza bateria pastylkowa może zasilać czujnik o bardzo niskim poborze mocy przez wiele lat, lecz prędzej czy później będzie wymagać wymiany. Koszty pracy i podróży są nieproporcjonalne do ceny baterii, a zarządzanie setkami urządzeń staje się niepraktyczne. Korzystanie z akumulatorów i technik pozyskiwania energii takich jak panel fotowoltaiczny znacznie tu pomaga, lecz ujemnie wpływa na fizyczne rozmiary urządzenia.

Zrozumienie profilu zużycia energii przez urządzenie staje się krytyczną miarą przewidywania żywotności i wymaganej pojemności baterii. Profil ten jest nie tylko odczytem wartości średniej, a  wskaźnikiem dynamicznym, w którym występują wartości szczytowe i minimalne poboru mocy. System chemiczny niektórych baterii sprawia, że ​​mają one mniejszą zdolność do szybkiego powrotu do stanu normalnego po okresie szczytowego poboru energii, więc kluczowe jest ustalenie, co powoduje te maksima.

Po zidentyfikowaniu przyczyn występowania szczytów poboru mocy oraz spoczynkowego prądu tła, działania zmierzające do ich obniżenia obejmują techniki programowe, takie jak wprowadzanie mikrosterownika w tryb uśpienia i zmiany w harmonogramie zadań.

Pomiary zużycia energii przez układ wbudowany

Pomiar multimetrem cyfrowym bezprzewodowego czujnika IIoT pokazuje średnie zużycie prądu, co jednak nie daje nam dokładnego obrazu. Spójrzmy na arkusz danych typowego mikrokontrolera bezprzewodowego o małej mocy stosowanego w urządzeniu IoT, co pozwoli zapoznać się z zakresami poboru prądu. Ponieważ układ składa się z dwóch głównych bloków funkcjonalnych: mikrokontrolera (MCU) i bezprzewodowego transceivera, większość producentów zapewnia możliwość wyłączania funkcji radiowych niezależnie od MCU. Weźmy na przykład bezprzewodowy moduł SoC Bluetooth firmy Silicon Labs, EFR32BG22 Series 2. Jego szczytowy pobór prądu wynosi 8,2 mA i występuje, gdy nadajnik pracuje z mocą wyjściową 6 dBm. Gdy SoC znajduje się w trybie głębokiego uśpienia EM4, pobór prądu spada do zaledwie 0,17 µA. Tak szeroki dynamiczny zakres poboru prądu, około 50:1, który może zmienić się w ciągu mikrosekund, obrazuje skalę wyzwania. Energię zużywają także interfejsy urządzeń peryferyjnych i GPIO podczas pracy z powiązanymi funkcjami urządzenia IoT.

Pomiar prądu pobieranego przez dowolne urządzenie zazwyczaj wiąże się z włączeniem w obwód zasilania systemu rezystora bocznikowego o niskiej rezystancji i wysokiej klasie dokładności, zwykle 1%. Pomiar napięcia na tym rezystorze pozwala obliczyć wartość przepływającego przezeń prądu. Istnieje optymalna wartość rezystancji, zapewniająca skuteczność pomiaru. Zbyt wysoka rezystancja wprowadza wysoki spadek napięcia na rezystorze i obniża dostępne napięcie zasilania mikrokontrolera. Z kolei zbyt mała wartość utrudnia pomiar bardzo niskich prądów.

Koncepcja debugowania zasilania pojawiła się w branży projektowania systemów wbudowanych ponad dziesięć lat temu. Standardowe sondy debugowania JTAG oferują teraz funkcję pomiaru prądu. Obsługuje je wiele popularnych zestawów narzędzi programistycznych i środowisk IDE, lecz zazwyczaj nie oferują one dynamicznego zakresu ani szczegółowości pomiarów wymaganych przez współczesne systemy wbudowane.

Zapotrzebowanie na dokładny pomiar zużycia energii przez urządzenie w czasie rzeczywistym spełniają przyrządy takie jak Qoitech Otii Arc.

Pomiary poboru prądu o dużym zakresie dynamicznym w czasie rzeczywistym

Przyrząd Qoitech Otii Arc (patrz rysunek 1) łączy programowalne źródło zasilania i analizator w jednej kompaktowej i przenośnej obudowie. Dołączona aplikacja programowa zapewnia interfejs użytkownika dla Otii Arc i jest dostępna dla wszystkich popularnych systemów operacyjnych. Otii Arc może wyświetlać i rejestrować prąd w czasie rzeczywistym z dokładnością do nanoamperów i z maksymalną częstotliwością próbkowania wynoszącą 4 ks/s. Wysoki dynamiczny zakres pomiaru prądu, od dziesiątek nanoamperów do 5 amperów, nie ma sobie równych w branży i sprawia, że przyrząd idealnie nadaje się do każdego projektu systemu wbudowanego.

Rysunek 1. Kompaktowy, przenośny przyrząd Qoitech Otii Arc (źródło: Qoitech)

Otii Arc może być zasilany przez USB lub z zewnętrznego zasilacza prądu stałego. Napięcie wyjściowe do testowanego urządzenia (DUT) jest programowalne w zakresie od 0,5 do 5 VDC w krokach co 1 mV. Otii zapewnia ciągły prąd wyjściowy do 2,5 A oraz szczytowy do 5 A. Aby móc dostarczyć prąd wyższy niż dostępny z portu USB, wymagane jest zewnętrzne źródło zasilania.

Otii Arc jest wyposażony w interfejs UART, dwa wejścia GPIO, dwa wyjścia GPIO i dwa piny pomiaru napięcia. W przypadku korzystania z interfejsu UART komunikaty debugowania z DUT są wyświetlane wraz z pomiarami prądu w czasie rzeczywistym. Ta funkcja UART umożliwia programistom wyróżnienie zadań lub punktów kontrolnych w kodzie w celu oznaczenia określonych funkcji aplikacji. Komunikaty UART umożliwiają synchronizację kodu aplikacji z pomiarem prądu w czasie rzeczywistym. Przykład przedstawiono na rysunku 2.

Rysunek 2. Wykorzystanie komunikatów debugowania UART do synchronizacji z pomiarami prądu przez Otii Arc w czasie rzeczywistym (źródło: Qoitech)

Oprogramowanie Otii Arc

Oprogramowanie Otii Arc umożliwia rejestrowanie i przechowywanie sesji czasu rzeczywistego. Ta funkcja jest szczególnie przydatna do porównywania wpływu ulepszeń kodu lub usprawnień sprzętowych na różnych etapach prototypowania systemu wbudowanego. Piny GPIO umożliwiają wyświetlanie pinów stanu testowanego urządzenia na wyświetlaczu Arc w czasie rzeczywistym, co dodatkowo wspomaga proces testowania.

Piny pomiaru napięcia umożliwiają pomiary na innych szynach zasilania testowanego urządzenia lub czteroprzewodowe monitorowanie podstawowego napięcia zasilania. Otii Arc wyposażono także w programowalne wyjście pobierające prąd, które umożliwia rozładowanie baterii i rejestrację jej profilu. Otii może następnie emulować zapisany profil baterii z jej pierwotnym napięciem wyjściowym. Do korzystania z tych funkcji niezbędna jest jednak licencja opcjonalnego oprogramowania Otii Battery Toolbox.

Rysunek 3 przedstawia baterię pastylkową CR2032 podłączoną do Otii Arc w celu zmierzenia profilu jej rozładowania. Ustawienia profilu testowania baterii przedstawiono na rysunku 4. Proszę zwrócić uwagę na możliwość ustawienia obciążenia prądowego i czasu trwania poziomu wysokiego i niskiego. Można również ustawić iteracje cyklu.

Rysunek 3. Bateria pastylkowa CR2032 podłączona do Otii Arc w celu sprofilowania (źródło: Qoitech)

Rysunek 4. Ustawienia profilowania dla baterii pastylkowej CR2032 (źródło: Qoitech)

Nastawa prądu wysokiego przedstawiona na rysunku 4 wynosi 40 mA, a niskiego 100 µA. Czas w każdej strefie poboru prądu i czas trwania cyklu reprezentują 30-dniowy okres rozładowania.

Programista systemów wbudowanych posługując się Otii Arc może szybko sprawdzić, w jaki sposób i kiedy prototyp zużywa energię. Nie tylko daje to wiedzę pozwalającą manipulować trybami uśpienia mikrokontrolera i wyłączaniem funkcji peryferyjnych, lecz również pozwala sprawdzać inne pomysły na oszczędzanie energii – na przykład decyzje, którego protokołu bezprzewodowego użyć. Większość brzegowych bezprzewodowych czujników IoT musi wysyłać tylko minimalną ilość danych, takich jak odczyty temperatury i wilgotności, co 15 minut. Charakter niektórych protokołów bezprzewodowych, routingu sieciowego i metod zabezpieczania danych powoduje, że 40-bajtowy komunikat może szybko zmienić się w kilka kilobajtów.

Opublikowany niedawno przez Qoitech raport techniczny podkreśla, jak wybór protokołu bezprzewodowego wpływa na zużycie energii. Rysunek 5 przedstawia podsumowanie wyników serii testów przeprowadzonych z wykorzystaniem modułu bezprzewodowego NB-IoT z różnymi protokołami i ustawieniami bezpieczeństwa.

Rysunek 5. Porównanie wpływu protokołów komunikacyjnych na zużycie energii (źródło: Qoitech)

Analiza zużycia energii urządzenia IoT w kilka minut

Określenie żywotności baterii wbudowanego systemu IoT jest najeżone trudnościami. Bez dokładnego pomiaru zużytej energii przewidywany czas pracy baterii jest co najwyżej szacunkowy. Arkusze danych bezprzewodowych SoC są dobrą wskazówką, lecz nie uwzględniają dynamicznego charakteru np. nawiązywania połączenia bezprzewodowego i wysyłania danych. Szczytowe zużycie energii również wpływa na długoterminową wydajność baterii, więc umiejętność modelowania jej prawdopodobnego zachowania staje się niezbędna.

Dzięki możliwości kontrolowania dostarczania energii, analizy poboru w czasie rzeczywistym i synchronizacji kodu debugowania w jednym kompaktowym urządzeniu przyrząd Qoitech Otii Arc, dostępny teraz w ofercie firmy Mouser, szybko staje się niezbędnym narzędziem na stole roboczym każdego programisty.

O autorze