module ara::phm — Platform Health Management
ModulegidsAI-GEGENEREERD
Bewaakt de temporele en logische programma-uitvoering en activeert bij fouten gecoördineerde veiligheidsreacties.
Bewaakt de temporele en logische programma-uitvoering en activeert bij fouten gecoördineerde veiligheidsreacties.
Het Platform Health Management bewaakt als centrale daemon de functionele veiligheid en runtime-integriteit van applicaties en platformdiensten conform AUTOSAR_AP_SWS_PlatformHealthManagement p. 15. Bewaakte entiteiten melden hun controlepunten cyclisch of gebeurtenisgestuurd aan het systeem, dat deadlines, alive-cycli en logische controleflows evalueert. Bij gedetecteerde fouten stelt de module het State Management op de hoogte voor het initiëren van gerichte herstelacties via [SWS_PHM_01142]. Blijft herstel uit of falen centrale instanties, dan dwingt een watchdog-trigger de veilige machinestatus af.
Het Platform Health Management (PHM) vormt de centrale achtergronddienst van het AUTOSAR Adaptive Platform voor de borging van de functionele veiligheid en software-integriteit conform ISO 26262 AUTOSAR_AP_SWS_PlatformHealthManagement p. 15. Het bewaakt zowel applicatie- als platformprocessen via deterministische controlepuntmeldingen en beveiligt de hardware via cyclische watchdog-triggers AUTOSAR_AP_SWS_PlatformHealthManagement p. 46.
Contextdiagram: Architecturale inbedding van de PHM-daemon in het samenspel met bewaakte applicaties, State Management, Execution Management, watchdog en IdsM. Bronnen: AUTOSAR_AP_SWS_PlatformHealthManagement p. 46, AUTOSAR_AP_SWS_PlatformHealthManagement p. 15, AUTOSAR_AP_EXP_SWArchitecture p. 131.
De functionele bewaking steunt op de interface ara::phm::SupervisedEntity, waarlangs processen controlepunten via ReportCheckpoint() melden ([SWS_PHM_01123], [SWS_PHM_01127]). Het PHM verdeelt de verificatie in drie bewakingsvormen [SWS_PHM_01138]:
- Alive Supervision voor cyclische frequentiecontrole AUTOSAR_FO_ASWS_HealthMonitoring p. 22,
- Deadline Supervision voor de bewaking van maximale uitvoeringstermijnen AUTOSAR_AP_SWS_PlatformHealthManagement p. 15,
- Logical Supervision voor de naleving van gedefinieerde controleflowgrafen AUTOSAR_AP_SWS_PlatformHealthManagement p. 15.
GlobalSupervisionStatus ([SWS_PHM_01137], SWS_PlatformHealthManagement p. 39).
Bij gedetecteerde schendingen delegeert het PHM het foutenherstel aan het State Management via de RecoveryHandler() van de interface RecoveryAction, nadat deze zijn dienstgereedheid per Offer() heeft gemeld ([SWS_PHM_01142], [SWS_PHM_01143]). Kan het State Management de fout niet herstellen of falen centrale daemons zelf, dan treedt de veiligheidsescalatie in werking: het PHM triggert via de native WatchdogInterface met FireWatchdogReaction() een onmiddellijke hardware-reset ([SWS_PHM_01256], AUTOSAR_AP_EXP_SWArchitecture p. 220).
Sequentiediagram: Foutescalatie naar het State Management via de RecoveryHandler met vertakking naar watchdog-activering in geval van fouten. Bronnen: [SWS_PHM_01142], [SWS_PHM_01256], AUTOSAR_AP_EXP_SWArchitecture p. 234, AUTOSAR_AP_EXP_SWArchitecture p. 220, AUTOSAR_AP_EXP_SWArchitecture p. 220.
Systeemgrenzen en functionele inbedding van het Health Management
Het Platform Health Management (PHM) vormt binnen het AUTOSAR Adaptive Platform de centrale functionele instantie voor de bewaking van de uitvoeringsintegriteit, dienstbeschikbaarheid en functionele veiligheid conform ISO 26262 AUTOSAR_AP_SWS_PlatformHealthManagement p. 15. Als zelfstandige achtergronddienst (daemon-based) implementeert de module de deterministische verificatie van temporele en logische controleflows in veiligheidsrelevante processen AUTOSAR_AP_EXP_SWArchitecture p. 128. De systeemgrenzen omvatten drie essentiële interactie-assen: de ontvangst van controlepuntmeldingen van bewaakte software-eenheden, de foutescalatie naar het State Management en het cyclisch activeren van 'alive'-meldingen naar een hardwarenabije watchdog AUTOSAR_AP_SWS_PlatformHealthManagement p. 46.
De bewakingsplichten beperken zich niet uitsluitend tot reguliere gebruikerstoepassingen (Adaptive Applications). Ook fundamentele platformdiensten zoals het Execution Management, het State Management, de Diagnostic Manager en de tijdsynchronisatie vallen onder de bewaking door het PHM, doordat zij zelf als bewaakte entiteiten fungeren en checkpoints aan het Health Management doorgeven AUTOSAR_AP_EXP_SWArchitecture p. 130. Voor interne hulpfuncties steunt de PHM-daemon op interfaces van het Execution Management (ExecutionClient voor de processtatusmelding) en van het logging-subsysteem (Logger uit Log and Trace) AUTOSAR_AP_EXP_SWArchitecture p. 131.
Contextdiagram: Architecturale inbedding van de PHM-daemon in het samenspel met bewaakte applicaties, State Management, Execution Management, watchdog en IdsM. Bronnen: AUTOSAR_AP_SWS_PlatformHealthManagement p. 46, AUTOSAR_AP_SWS_PlatformHealthManagement p. 15, AUTOSAR_AP_EXP_SWArchitecture p. 131.
Instrumentatie en levenscyclus van bewaakte entiteiten
Een logische bewakingseenheid binnen een proces wordt gerepresenteerd door de interface ara::phm::SupervisedEntity [SWS_PHM_01123]. De instantiëring vindt expliciet plaats onder opgave van een getypeerde identifier van het type ara::core::InstanceSpecifier, die verwijst naar het geconfigureerde poortpad in het systeemmanifest AUTOSAR_TPS_ManifestSpecification p. 141. Ter bescherming van de instantie-integriteit zijn de copy-constructor en de copy-toekenningsoperator verwijderd ([SWS_PHM_01212], [SWS_PHM_01213]); instanties mogen echter wel worden verplaatst ([SWS_PHM_01214], [SWS_PHM_01215]). Bij het ontmantelen ruimt de destructor de entiteit op [SWS_PHM_01211].
De geïnstrumenteerde software meldt het bereiken van vastgelegde programmapunten via de synchrone aanroep ReportCheckpoint() [SWS_PHM_01127]. Als parameter dient een getypeerde checkpoint-enumeratie, die wordt gegenereerd vanuit de interface-header ([SWS_PHM_00424], [SWS_PHM_00425]). De PHM-daemon verifieert bij elke melding de procesbevoegdheid; roept een niet in het manifest gemodelleerd proces de methode aan, dan wordt een toegangsschending gedetecteerd [SWS_PHM_01127]. Bij veiligheidskritieke anomalieën kan het PHM de toegangsverificatiefout doorsturen naar de Intrusion Detection System Manager (IdsM) AUTOSAR_AP_EXP_SWArchitecture p. 236.
De bewaking van een entiteit kan tijdens runtime toestandsafhankelijk worden bestuurd: via Enable() wordt de bewaking geactiveerd, mits de actuele toestand van de bijbehorende Function Group dit toestaat [SWS_PHM_01130]. Met Disable() kan de bewaking weer worden opgeschort [SWS_PHM_01380]. Beide methoden leveren een ara::core::Future<void> op en signaleren asynchrone beschikbaarstellingsfouten, bijvoorbeeld PhmErrc::kServiceNotReady [SWS_PHM_01130].
Sequentiediagram: Verloop van de controlepuntmelding via SupervisedEntity met bevoegdheidscontrole en veiligheidsbewaking door de IdsM. Bronnen: [SWS_PHM_01127], AUTOSAR_AP_EXP_SWArchitecture p. 236.
Bewakingssoorten en meerfasige statusaggregatie
Het Platform Health Management onderscheidt drie primaire elementaire bewakingssoorten ([SWS_PHM_01138], AUTOSAR_AP_EXP_SWArchitecture p. 128):
- Alive Supervision (
kAliveSupervision): Controleert of cyclische programmadelen binnen gedefinieerde tijdvensters een geconfigureerd minimum- en maximumaantal checkpoint-meldingen verzenden AUTOSAR_FO_ASWS_HealthMonitoring p. 22. - Deadline Supervision (
kDeadlineSupervision): Bewaakt de uitvoeringsduur tussen twee controlepunten op naleving van geconfigureerde minimum- en maximumtermijnen AUTOSAR_AP_SWS_PlatformHealthManagement p. 15. - Logical Supervision (
kLogicalSupervision): Valideert de uitvoeringsvolgorde aan de hand van een gemodelleerde overgangsgraaf om ontoelaatbare sprongen of controleflowvertakkingen te identificeren AUTOSAR_AP_SWS_PlatformHealthManagement p. 15.
Elke afzonderlijke bewaking heeft een eigen toestandsmachine voor haar elementaire status (ElementarySupervisionStatus) [SWS_PHM_01358]. Bij de start van het PHM worden alle elementaire toestandsmachines geïnitialiseerd in de toestand kDEACTIVATED en worden foutentellers op nul gezet SWS_PlatformHealthManagement p. 31. Na activering gaat de bewaking over naar kOK, zolang aan alle controlecriteria is voldaan. Treedt er een schending op, dan wisselt de status naar kFailed [SWS_PHM_01358].
Toestandsdiagram: Toestandsovergangen van de elementaire bewaking (ElementarySupervisionStatus) van kDEACTIVATED via kOK naar kFailed. Bronnen: [SWS_PHM_01358], SWS_PlatformHealthManagement p. 31.
Meerdere elementaire bewakingen worden samengevoegd tot een overkoepelende globale bewaking SWS_PlatformHealthManagement p. 24. Conform de specificatie bestaat per geconfigureerde Global Supervision precies één GlobalSupervisionStatus, die strikt gebonden is aan één enkele Function Group en zich niet over meerdere function groups mag uitstrekken ([SWS_PHM_01137], SWS_PlatformHealthManagement p. 39). De globale status aggregeert de resultaten via de toestanden kDEACTIVATED, kOK, kFAILED, kEXPIRED en kSTOPPED AUTOSAR_AP_SWS_PlatformHealthManagement p. 39. De toestand kOK vereist dat ten minste één bijbehorende bewaking foutloos werkt en geen enkele in de fouttoestand verkeert [SWS_PHM_01137].
Toestandsdiagram: Toestandsmodel van de globale bewakingsstatus (GlobalSupervisionStatus) met kDEACTIVATED, kOK, kFAILED, kEXPIRED en kSTOPPED. Bronnen: [SWS_PHM_01137], AUTOSAR_AP_SWS_PlatformHealthManagement p. 39, SWS_PlatformHealthManagement p. 39.
Cyclische watchdog-bediening en hardwarebeveiliging
Om de operationele werking van de gehele rekeneenheid te beveiligen tegen vastlopers of fatale systeemcrashes, koppelt het PHM het hardwarenabije watchdog-subsysteem aan via de interface apext::phm::WatchdogInterface [SWS_PHM_01255]. Deze native platformextensie (Platform Extension) wordt niet via service-middleware gerealiseerd, maar uitgevoerd als een deterministische native driveraanroep AUTOSAR_AP_EXP_SWArchitecture p. 130.
In een configureerbare cyclus controleert het PHM intern alle actieve bewakingsmetrieken en verstuurt bij een positieve algehele status via AliveNotification() een 'alive'-melding naar de watchdog ([SWS_PHM_01255], AUTOSAR_AP_EXP_SWArchitecture p. 233). Blijft deze melding binnen het geconfigureerde tijdvenster uit — bijvoorbeeld omdat de PHM-daemon geblokkeerd is of een kritieke bewaking faalt —, dan initieert de watchdog-interface zelfstandig een hardware-veiligheidsreactie [SWS_PHM_01255].
Sequentiediagram: Periodieke evaluatie van de bewakingsresultaten en Alive-signalering naar de watchdog-interface. Bronnen: [SWS_PHM_01255], AUTOSAR_AP_EXP_SWArchitecture p. 233, AUTOSAR_AP_EXP_SWArchitecture p. 130.
Coördinatie van herstelacties met het State Management
Detecteert het PHM een schending van bewakingsvoorwaarden, dan leidt het het foutenherstel niet eigenmachtig in, maar delegeert het de maatregel aan het State Management als centrale regulerende instantie (AUTOSAR_AP_EXP_SWArchitecture p. 129, AUTOSAR_AP_EXP_SWArchitecture p. 220). Deze ontkoppeling waarborgt het architectuurprincipe dat beslissingen over functionele systeemtoestanden en procesherstarts bij het State Management blijven AUTOSAR_AP_SWS_StateManagement p. 28.
Het State Management registreert zijn gereedheid voor foutafhandeling via de poort-interface ara::phm::RecoveryAction [SWS_PHM_01141]. Door het aanroepen van Offer() wordt de ontvangst van foutmeldingen geactiveerd [SWS_PHM_01143]; met StopOffer() kan het State Management de dienstgereedheid weer deactiveren [SWS_PHM_01144]. Om fatale race conditions en ongedefinieerd gedrag door vroegtijdige callback-aanroepen vóór de volledige constructie van afgeleide klassen uit te sluiten, zijn copy- en move-operaties voor RecoveryAction expliciet geblokkeerd ([SWS_PHM_01149], [SWS_PHM_01150], [SWS_PHM_01151], [SWS_PHM_01152]).
In geval van fouten roept het PHM de zuiver virtuele callback-functie RecoveryHandler() van het State Management aan en draagt daarbij de foutgebeurtenis ara::exec::ExecutionErrorEvent alsmede de aard van de geschonden bewaking TypeOfSupervision over [SWS_PHM_01142]. Het State Management bepaalt vervolgens de vervolgtoestand van de Function Group en draagt het Execution Management op tot een toestandsverandering of tot een herstart van getroffen processen (AUTOSAR_AP_EXP_SWArchitecture p. 169, AUTOSAR_AP_EXP_SWArchitecture p. 220).
Sequentiediagram: Foutescalatie naar het State Management via de RecoveryHandler met vertakking naar watchdog-activering in geval van fouten. Bronnen: [SWS_PHM_01142], [SWS_PHM_01256], AUTOSAR_AP_EXP_SWArchitecture p. 234, AUTOSAR_AP_EXP_SWArchitecture p. 220, AUTOSAR_AP_EXP_SWArchitecture p. 220.
Gedrag bij fouten en meerfasige escalatiepaden
Het Platform Health Management implementeert een getrapte escalatiestrategie voor de beheersing van runtimefouten AUTOSAR_AP_EXP_SWArchitecture p. 200. Treedt er een bewakingsfout op, dan wordt eerst het primaire pad gevolgd: de bewaking meldt de fout aan het State Management, dat via RecoveryHandler() een gecontroleerde herconfiguratie uitvoert [SWS_PHM_01142].
Kan het State Management het herstel niet uitvoeren (bijvoorbeeld bevestigd met de foutcode PhmErrc::kSMCanNotHandleRecovery) of treedt er een time-out op bij de beantwoording, dan treedt het secundaire escalatiepad in werking ([SWS_PHM_01240], AUTOSAR_AP_EXP_SWArchitecture p. 220). In dit geval omzeilt het PHM het softwareniveau en dwingt het via FireWatchdogReaction() een onmiddellijke hardwarenabije noodreactie af (systeemreset of overgang naar de Safe State) ([SWS_PHM_01256], AUTOSAR_AP_EXP_SWArchitecture p. 201).
Bijzonder kritiek is het uitvallen van de centrale platformdaemons zelf: faalt het Execution Management of het State Management, dan is een gecoördineerd herstel op besturingssysteemniveau niet meer mogelijk (AUTOSAR_AP_EXP_SWArchitecture p. 235, AUTOSAR_AP_EXP_SWArchitecture p. 235). Het PHM detecteert deze toestand via foutieve of ontbrekende checkpoints van deze daemons en vuurt zonder vertraging de watchdog-reactie af [SWS_PHM_01256].
Alle foutsituaties in de C++-API worden getypeerd via het foutdomein ara::phm::PhmErrorDomain ([SWS_PHM_01247], [SWS_PHM_01251]). De foutcodes zijn samengevat in het enum PhmErrc ([SWS_PHM_01240], [SWS_PHM_01245]). Voor synchrone interfaces en excepties staan hulpfuncties zoals MakeErrorCode() [SWS_PHM_01244] en het exceptietype PhmException ter beschikking ([SWS_PHM_01243], [SWS_PHM_01250]).
Manifestmodellering, ID-synchronisatie en instantiëring
De correcte koppeling tussen applicatiecode en de PHM-daemon is gebaseerd op een strikte ID-synchronisatie in het AUTOSAR-manifest AUTOSAR_AP_TPS_ManifestSpecification p. 566. In het applicatieontwerp wordt de entiteit gemodelleerd als PhmSupervisedEntityInterface met geaggregeerde PhmCheckpoint-elementen AUTOSAR_AP_TPS_ManifestSpecification p. 208. Voor het deployment op machineniveau wordt per procesinstantie een SupervisionCheckpoint aangemaakt, die de instantiereferentie naar de poort en de uitvoeringscontext (Process) oplost TPS_ManifestSpecification p. 568.
Wordt hetzelfde softwarecomponenttype meervoudig geïnstantieerd — hetzij binnen hetzelfde proces of over meerdere processen heen —, dan genereert de manifestconfiguratie voor elke poort een unieke InstanceSpecifier AUTOSAR_AP_SWS_PlatformHealthManagement p. 51. Daardoor kan de PHM-daemon identieke controlepunt-ID's uit de broncode eenduidig toewijzen aan de desbetreffende componentinstantie en procesidentiteit AUTOSAR_AP_TPS_ManifestSpecification p. 566. Interpretatie: De interprocescommunicatie tussen applicatie-user-space en de PHM-daemon is vermoedelijk besturingssysteemspecifiek geoptimaliseerd (bijvoorbeeld via Shared Memory of POSIX-domain-sockets), aangezien de C++-klasse SupervisedEntity de transportdetails transparant inkapselt [SWS_PHM_01123]. Vraag (open)
Aan de kant van de foutafhandeling modelleert het manifest RecoveryNotification-elementen die zijn toegewezen aan een PPortPrototype van het State Management AUTOSAR_AP_TPS_ManifestSpecification p. 587. Hierbij wordt ook een time-outwaarde (recoveryNotificationTimeout) gedefinieerd, waarna bij overschrijding de foutafhandeling als mislukt wordt geclassificeerd AUTOSAR_AP_TPS_ManifestSpecification p. 587.
Verdere gedetailleerde bewijzen
De bindende normatieve uitwerking van het Platform Health Management in release R25-11 steunt in het bijzonder op de volgende specificatie-ankers:
- Kernelementen van de bewaking: [SWS_PHM_01123] en [SWS_PHM_01127] definiëren de C++-klasse
SupervisedEntityen het meldingsmechanismeReportCheckpoint(); [SWS_PHM_01130] en [SWS_PHM_01380] regelen activering en deactivering. - Toestandsmodellen: [SWS_PHM_01358] specificeert de elementaire toestanden (
kDEACTIVATED,kOK,kFailed); [SWS_PHM_01137] verankert de globale statusaggregatie per Function Group SWS_PlatformHealthManagement p. 39. - Herstel en escalatie: [SWS_PHM_01141], [SWS_PHM_01142] en [SWS_PHM_01143] sturen de beschikbaarstelling en uitvoering van de
RecoveryHandler()in het State Management aan; [SWS_PHM_01256] borgt de nood-escalatie via de hardware-watchdog. - Foutdomein en exceptions: [SWS_PHM_01240] introduceert de foutcodes (
PhmErrc), die viaPhmErrorDomain([SWS_PHM_01247], [SWS_PHM_01251]) enPhmException[SWS_PHM_01243] worden getransporteerd.
Deze modulehandleiding is gebaseerd op de normatieve specificaties en systeemarchitectuurrichtlijnen van de AUTOSAR Adaptive-release R25-11.
function: 27 class: 5 enumeration: 5 type alias: 2 header file: 1 variable: 1
ara::phm::supervised_entities::{ <hierarchical-namespace-list-lower-skeleton>}
<SE><Checkpoint>Themakaart
Geen elementgegevens voor deze release
apext::phm
class for interface to hardware watchdog Note: class WatchdogInterface although identifiable in code as an interface, it is a PlatformExtens
ara::phm
Defines the error domain for Platform Health Management.
erft van ara::core::ErrorDomain
Exception type thrown by Platform Health Management.
erft van ara::core::Exception
RecoveryAction abstract class.
SupervisedEntity Class.
Returns the global PhmErrorDomain object.
constexpr const ara::core::ErrorDomain & GetPhmDomain () noexcept;Creates an error code.
constexpr ara::core::ErrorCode MakeErrorCode (PhmErrc code, ara::core::ErrorDomain::SupportDataType data) noexcept;Enumeration of elementary supervision status. Scoped Enumeration of uint32_t.
enum class ElementarySupervisionStatus : std::uint32_t {...};Enumeration of global supervision status. Scoped Enumeration of uint32_t.
enum class GlobalSupervisionStatus : std::uint32_t {...};Defines an enumeration class for the Platform Health Management error codes.
enum class PhmErrc : ara::core::ErrorDomain::CodeType {...};Enumeration of type of supervision. Scoped Enumeration of uint32_t.
enum class TypeOfSupervision : std::uint32_t {...};ara::phm::supervised_entities::{ <hierarchical-namespace-list-lower-skeleton>}
Defines the checkpoints for the ara::phm::PhmSupervisedEntityInterface
enum class {<phmssi-sn>} : std::uint32_t {...};For each enumeration in {<phm-checkpoint-list>} in [SWS_PHM_00424] there shall exist a C++ enumerator declaration.
{<symbol-phm-checkpoint>} = {<phm-checkpoint-value>};Namespaces
- apext::phm 1 Klassen, 0 freie Funktionen
- ara::phm 4 Klassen, 2 freie Funktionen
- ara::phm::supervised_entities::{ <hierarchical-namespace-list-lower-skeleton>} 0 Klassen, 0 freie Funktionen
UML-klassendiagram van de module
Abgerundete Rahmen = Namespaces; hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); graue Boxen = modulfremde bzw. externe Basisklassen. Klicken öffnet die Klassenseite.
gemini-3.8-flash-low· 2026-10-13 · Duits origineel