Agent trybu pojazdu i zarządzania energią (VPM) pomaga pojazdowi kontrolować system zasilania ekosystemu pojazdu definiowanego programowo (SDV).
Agent VPM ułatwia komunikację między trybami pojazdu i zasilania a różnymi komponentami oprogramowania, w tym agentami SDV i pakietami usług w SDV.
Agent VPM umożliwia komponentom SDV śledzenie bieżącego stanu pojazdu, np. trybu pracy (np. parkowanie lub jazda) i stanu zasilania (np. włączony, zawieszony lub wyłączony). Stan pojazdu jest taki sam we wszystkich programach pojazdu, ale stan zasilania jest unikalny dla każdej maszyny wirtualnej SDV w pojeździe.
Agent VPM wysyła sygnał do platformy systemu SDV, aby uruchomić określone tryby zasilania. Ta funkcja optymalizuje zużycie energii i skraca czas uruchamiania w przypadku wznowienia działania oraz pomaga zapewnić wydajne działanie różnych komponentów oprogramowania SDV.
Na tej stronie opisujemy kluczowe wymagania, ograniczenia i zależności związane z agentem VPM. Wyjaśnia ona oczekiwaną funkcjonalność i zawiera wytyczne dotyczące integracji agenta VPM dla producentów oryginalnego sprzętu (OEM) i innych deweloperów SDV.
Architektura
Rysunek 1 przedstawia architekturę zarządzania energią:
Rysunek 1. Architektura zarządzania zasilaniem.
Agent VPM otrzymuje polecenia trybu zasilania (takie jak wyłączenie i zawieszenie) z usługi zarządzania zasilaniem OEM.
Agent VPM przekazuje te polecenia do odpowiednich agentów SDV i czeka, aż je wykonają. To skoordynowane podejście pomaga zapewnić płynne i bezpieczne przechodzenie między trybami zasilania, minimalizując ryzyko utraty danych lub niestabilności systemu.
Gdy wszystkie agenty SDV zakończą przejścia zasilania, agent VPM powiadomi OEM, umożliwiając systemom OEM wykonanie niezbędnych działań (np. przejście do następnego stanu lub wyłączenie). Przejścia stanu zasilania są blokujące. Przejście następuje tylko wtedy, gdy wszyscy agenci SDV wykonają przejście w określonym przez producenta OEM czasie oczekiwania.
Automat stanów zarządzania energią pokazano na tym diagramie:
Rysunek 2. Automat stanów zarządzania energią.
Agent VPM współpracuje z systemem orkiestracji i zarządzania cyklem życia, aby powiadamiać pakiety usług SDV o wszelkich aktualizacjach trybu zasilania. Dzięki temu pakiety usług mogą obsługiwać przejścia zasilania i zapobiegać przerwom w działaniu. Więcej informacji o korzystaniu ze stanów zarządzania energią w przypadku pakietów usług i obsłudze komunikacji SDV znajdziesz w artykule Obsługa wstrzymania i wznawiania.
Stany zasilania
Dozwolone stany zarządzania zasilaniem w SDV są następujące:
| Stan | Wyjaśnienie |
|---|---|
REPORT_UNSPECIFIED |
Wartość domyślna, jeśli nie określono raportu. |
POWER_OFF_EXIT |
Maszyna wirtualna uruchamia się w ramach zimnego rozruchu. Agenci SDV zaczynają się od znaku init.rc. |
SUSPEND_TO_RAM_EXIT |
Maszyna wirtualna jest wznawiana z trybu zawieszenia do pamięci RAM. Agenci SDV wznawiają działanie z pamięci RAM i otrzymują powiadomienie o zmianie stanu zasilania, jeśli subskrybują powiadomienia o stanie zasilania. |
ON |
Maszyna wirtualna działa normalnie. |
POWER_OFF_ENTER |
Maszyna wirtualna przygotowuje się do wyłączenia. Aplikacje OEM, które można wcześniej wyczyścić, powinny zostać wyczyszczone w tym stanie. Aplikacje OEM mogą nadal korzystać z agentów SDV działających na tym etapie. Na tym etapie agenci SDV nie powinni wstrzymywać ani wyłączać działania, ponieważ aplikacje OEM mogą nadal potrzebować z nimi komunikacji. |
SUSPEND_TO_RAM_ENTER |
Maszyna wirtualna przygotowuje się do przejścia w stan wstrzymania do pamięci RAM. Aplikacje OEM, które można wcześniej wyczyścić, powinny zostać wyczyszczone w tym stanie. Aplikacje OEM mogą nadal korzystać z agentów SDV działających na tym etapie. Na tym etapie agenci SDV nie powinni wstrzymywać ani wyłączać działania, ponieważ aplikacje OEM mogą nadal potrzebować z nimi komunikacji. |
WAIT_FOR_FINISH |
Maszyna wirtualna zakończyła wstępne czyszczenie i czeka na sygnał od producenta OEM, aby zakończyć lub anulować wyłączenie lub wstrzymanie. |
SHUTDOWN_CANCELLED |
Producent OEM poprosił o anulowanie w ramach przygotowań do wyłączenia. Ta prośba może zostać przesłana najpóźniej WAIT_FOR_FINISH. Aplikacje OEM są proszone przez menedżera cyklu życia o wycofanie przygotowań do zawieszenia lub wyłączenia. |
POWER_OFF_POST_FINISH |
Po otrzymaniu FINISH_SHUTDOWN żądania od producenta OEM maszyna wirtualna kończy ostateczne czyszczenie i wyłącza platformę bazową. Agenci SDV powinni zwolnić miejsce przed wyłączeniem zasilania. |
SUSPEND_TO_RAM_POST_FINISH |
Maszyna wirtualna zostanie zawieszona w pamięci RAM, a platforma bazowa zostanie zawieszona w pamięci RAM. Aplikacje OEM nie powinny w tym momencie korzystać z agentów SDV, ponieważ są oni również zawieszeni. Przed zawieszeniem konta agenci SDV powinni przeprowadzić czyszczenie. |
Otrzymywanie informacji o stanie pojazdu
Agent VPM otrzymuje aktualizacje dotyczące bieżących trybów pojazdu z pakietu usług sterowania pojazdem OEM.
Następnie agent przekazuje te informacje do odpowiednich komponentów SDV za pomocą standardowego stosu komunikacyjnego SDV. Informuje wszystkie komponenty SDV o stanie operacyjnym pojazdu, aby mogły odpowiednio dostosowywać swoje działanie.
Aby otrzymywać aktualizacje dotyczące stanów pojazdu, użyj w pakiecie usług następującej konfiguracji VSIDL:
package: "com.sdv.google.vpm.vehicle.client.subscriber"
service_bundle {
name: "VehicleStateSubscriber"
//Subscriber to the vehicle state updates.
subscriber {
message: "com.sdv.google.vpm.vehicle.VehicleStateChange"
}
}
Tryby pojazdu i przejścia między nimi nie blokują innych działań i są asynchroniczne. W przeciwieństwie do przejść zasilania nie jest wymuszana żadna maszyna stanu.
Dozwolone stany pojazdu w SDV są następujące:
| Stan | Wyjaśnienie |
|---|---|
VEHICLE_STATE_UNSPECIFIED |
Domyślna wartość stanów pojazdu, jeśli nie określono stanu. |
LOW_POWER |
Z perspektywy użytkownika samochód jest wyłączony, ale PCU nadal może wykrywać, że jest włączony. |
SOFTWARE_UPDATE |
Aktualizacje oprogramowania są w toku w przypadku niektórych lub wszystkich części pojazdu. Są to aktualizacje oprogramowania niezwiązane z SDV. |
PARK |
W przypadku tej konkretnej aktywności bez udziału klienta dostarczono niewiele jednostek ECU. |
LIFE_ON_BOARD |
Komfortowe moduły ECU, takie jak podgrzewanie foteli, zestawy wskaźników i panele centralne, są zasilane i działają lub wykrywana jest aktywność klienta, np. otwieranie drzwi lub odblokowywanie samochodu. |
VEHICLE_ON |
Dostarczane są jednostki ECU silnika, silnik działa, ale jazda nie jest możliwa. |
TRACTION_ON |
Dostarczane są ECU silnika, silnik działa i można nim jeździć. |
Sterowanie pojazdem i zarządzanie energią za pomocą agenta VPM
Użyj tych definicji VSIDL, aby wdrożyć pakiet usług, który steruje maszyną stanu zasilania w SDV:
package: "com.sdv.google.vpm.client"
service_bundle {
name: "VpmSystemClient"
//Client for VPM system interface.
client {
service: "com.sdv.google.vpm.VpmSystemService"
}
//Server to VPM notification interface.
server {
service: "com.sdv.google.vpm.client.PowerNotificationService"
}
}
Po wdrożeniu pakietu i dodaniu list ACL do agenta VPM pakiet może wysyłać żądania RPC do agenta VPM i otrzymywać powiadomienia o stanie zasilania na zdefiniowanym serwerze.