Zarządzanie stanem zasilania dla urządzeń usługi Azure Sphere
Ważne
Jest to dokumentacja usługi Azure Sphere (starsza wersja). Usługa Azure Sphere (starsza wersja) zostanie wycofana 27 września 2027 r., a użytkownicy muszą przeprowadzić migrację do usługi Azure Sphere (zintegrowanej) do tej pory. Użyj selektora wersji znajdującego się powyżej spisu treści, aby wyświetlić dokumentację usługi Azure Sphere (zintegrowaną).
Aplikacja usługi Azure Sphere wysokiego poziomu może używać interfejsu API zarządzania energią, aby umieścić urządzenie w stanie Zasilania. Stan zasilania jest najniższym możliwym stanem zasilania, w przypadku których urządzenie może znajdować się poza w pełni wyłączonym zasilaniem. Urządzenie można obudzić za pomocą jednego z dwóch zdarzeń:
- Przybycie sygnału wejściowego wyzwalającego pinezkę WAKEUP.
- Przejście określonego czasu.
Aby użyć tej funkcji, musisz:
- Skonfiguruj sprzęt.
- Zapoznaj się z sekcjami dotyczącymi wymagań dotyczących zasilania RTC i Zagadnienia dotyczące zasilania w artykule Uwagi dotyczące sprzętu MT3620, aby zapoznać się z ogólnymi zagadnieniami dotyczącymi projektowania sprzętu.
- Zobacz sekcje Power supply and Power Down mode (Zasilanie i tryb zasilania) w podręczniku użytkownika usługi MT3620 RDB, aby dowiedzieć się, jak skonfigurować sprzęt RDB dla trybu zasilania.
- Zadeklaruj wartość ForcePowerDown dla funkcji PowerControls w manifeście aplikacji.
- Użyj PowerManagement_ForceSystemPowerDown z interfejsu API usługi Power Management .
Stan zasilania
Stan zasilania ma następujące cechy:
- Wszystko jest wyłączone z wyjątkiem zegara czasu rzeczywistego (RTC). Oznacza to, że wszystkie połączenia, pamięć RAM, flash, rdzenie procesora CPU itd. są wyłączone.
- Nie ma zachowania stanu. Przebudzenie z zasilania w dół jest równoważne zimnemu rozruchowi.
- Pobudka z zasilania występuje, gdy alarm zegara w czasie rzeczywistym jest uruchamiany (wznawianie oparte na czasie) lub gdy pin WAKEUP jest ściągany niski (wakeup oparty na zdarzeniach), w zależności od tego, co nastąpi wcześniej.
Uwaga
Certyfikat DAA (klienta) jest trwale przechowywany. W związku z tym urządzenie nie łączy się z usługą AS3 dla nowego certyfikatu po każdym zimnym rozruchu lub wyłączonym zasilaniu, które występuje między normalnymi aktualizacjami 24-godzinnym. Zmniejsza to zużycie energii i czas wymagany do nawiązania połączenia z chmurą.
Specyfiki mt3620
Uwagi dotyczące wyłączania zasilania usługi MediaTek MT3620 znajdują się w uwagach dotyczących sprzętu mt3620.
Wymuś wyłączenie zasilania i aktualizacje
Ostrzeżenie
Niepowodzenie stosowania się do wskazówek w tej sekcji może spowodować, że urządzenie nie może pobrać aktualizacji aplikacji lub systemu operacyjnego i wymagać odzyskiwania. Przed użyciem polecenia ForcePowerDown przeczytaj uważnie.
Ponieważ zarówno ForcePowerDown, jak i ForceReboot umożliwiają aplikacji wyłączenie urządzenia w dowolnym momencie, staje się ono obowiązkiem tej aplikacji, aby upewnić się, że urządzenie nadal może okresowo sprawdzać dostępność aktualizacji w przypadku korzystania z elementu ForcePowerDown lub ForceReboot. Aby ułatwić sprawdzanie dostępności aktualizacji w tym scenariuszu, wprowadziliśmy powiadomienia o zdarzeniach systemowych związanych z aktualizacjami, aby przekazać aplikacjom informacje o procesie aktualizacji, aby aplikacje mogły podejmować świadome decyzje o tym, kiedy włączyć urządzenie. Odpowiednie powiadomienia o zdarzeniach systemowych są następujące:
- SysEvent_Events_NoUpdateAvailable: Sprawdzanie aktualizacji zostało zakończone i nie są dostępne żadne aktualizacje systemu operacyjnego lub aplikacji.
- SysEvent_Events_UpdateStarted: rozpoczęto pobieranie aktualizacji systemu operacyjnego lub aplikacji. Po tym zdarzeniu nastąpi zdarzenie SysEvent_Events_UpdateReadyForInstall , gdy aktualizacja zostanie w pełni pobrana i gotowa do instalacji. Jeśli aktualizacja nie jest dostępna, SysEvent_Events_NoUpdateAvailable zostanie wysłana zamiast tego zdarzenia.
- SysEvent_Events_UpdateReadyForInstall: Aktualizacja została zakończona pobieranie i jest gotowa do zastosowania podczas ponownego uruchamiania.
Aplikacje korzystające z polecenia ForcePowerDown muszą pamiętać o stanie aktualizacji urządzenia. Aplikacje korzystające z polecenia ForcePowerDown powinny zawsze rejestrować się w przypadku tych zdarzeń i zwracać uwagę na nie w celu zapewnienia, że aplikacja nie spowoduje odroczenia aktualizacji na czas nieokreślony.
Udostępniamy przykładową aplikację, która pokazuje, jak prawidłowo skompilować kontrole aktualizacji w aplikacji korzystającej z elementu ForcePowerDown. Zdecydowanie zaleca się rozpoczęcie pracy z tym przykładem podczas tworzenia aplikacji za pomocą polecenia ForcePowerDown.
Kończenie działania aplikacji
Po wysłaniu żądania zasilania do aplikacji jest wysyłany sygnał SIGTERM. Jeśli aplikacja obsługuje sygnał, może to potrwać do 2 sekund, aby wykonać oczyszczanie. W przeciwnym razie aplikacja zostanie natychmiast zakończona. Aby uzyskać więcej informacji, w tym sposób prawidłowego obsługi sygnału, zobacz Kończenie działania aplikacji w celu aktualizacji.
Aplikacja przykładowa
Przykładowa aplikacja Power Down pokazuje, jak prawidłowo korzystać z elementu ForcePowerDown, aby zmniejszyć zużycie energii, jednocześnie zapewniając, że urządzenie będzie okresowo w stanie obudzić się, aby sprawdzić dostępność aktualizacji systemu operacyjnego i aplikacji.
Ten przykład czerwoną diodę LED reprezentującą pracę lub "logikę biznesową", którą aplikacja może wymagać, gdy urządzenie jest w stanie obudzić, a następnie wyłącza urządzenie przez określony czas. Co Nth Power Down/wake cycle, aplikacja będzie dłużej obudzić urządzenie, aby sprawdzić dostępność aktualizacji zamiast natychmiast wyłączać po zakończeniu logiki biznesowej (czerwoną diodę LED w tym przypadku). Aby upewnić się, że aktualizacje zostały ukończone przed wyłączeniem, przykładowa aplikacja korzysta z trzech powiadomień o zdarzeniach systemowych (SysEvent_Events_NoUpdateAvailable, SysEvent_Events_UpdateStarted i SysEvent_Events_UpdateReadyForInstall), które informują aplikację o stanie sprawdzania/pobierania aktualizacji. Przykładowa aplikacja pokazuje również, jak zmierzyć bieżące zużycie bazy danych RDB w celu sprawdzenia, czy urządzenie przechodzi w stan zasilania.