DEENESPTFRRUARHIKOZHNL

PWM Driver (Pwm)

ModulPwm (PWM Driver)
BSW-Modul-ID121
Standard-Header#include "Pwm.h"
SWS-SpezifikationAUTOSAR_SWS_PWMDriver.pdf
ClusterMicrocontroller Abstraction (MCAL)

ModulegidsAI-GEGENEREERD

Stuurt pulsbreedtemodulatie-uitgangen van de microcontrollerhardware per kanaal aan via periode en duty-cycle.
DOOR AI GEGENEREERD ongecontroleerd Model: claude-opus-5-5 · Inspanning: high · Temperatuur: niet regelbaar · Prompt: 346ede702b24 Herkomst Open vragen (1)
Causaal anker: R20-11 Geldig vanaf R20-11 Nieuw gesynthetiseerd voor deze specificatiestand.
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

Stuurt pulsbreedtemodulatie-uitgangen van de microcontrollerhardware per kanaal aan via periode en duty-cycle.

De PWM-driver stuurt als MCAL-module de pulsbreedtemodulatie-uitgangen van de microcontroller per kanaal aan en heeft daarvoor direct toegang tot de registers ervan. Volgens Pwm_Init stellen Pwm Users de duty-cycle in en, bij kanalen met variabele periode, ook de periode. Zij kunnen uitgangen naar de idle-toestand schakelen en flankmeldingen in- of uitschakelen [SWS_Pwm_91000]. Optioneel beheert de driver tweefasige overgangen van de vermogenstoestand via voorbereiden en instellen. Fouten zoals ontbrekende initialisatie of ongeldige kanalen meldt hij bij actieve foutdetectie en voert dan niets uit [SWS_Pwm_00201].

De PWM-driver is een MCAL-module en stuurt de pulsbreedtemodulatie-uitgangen van de microcontroller via de registers ervan aan. Interfaces van diepere modules heeft hij daarom niet nodig (SWS PWM Driver p. 44). Hij wordt synchroon geïnitialiseerd met Pwm_Init en een pointer naar de configuratieset [SWS_Pwm_00095], die de ECU State Manager als optionele initialisatie-interface aanroept (SWS EcuM p. 152). Hij wordt typisch gebruikt door de IoHwAb, bijvoorbeeld via een power-stage-driver (SWS IoHwAb p. 37).

kontext EcuM EcuM (Startup) Pwm Pwm (MCAL-Treiber) EcuM->Pwm Pwm_Init User Pwm User (z. B. IoHwAb / Power-Stage-Treiber) User->Pwm Pwm_SetDutyCycle, Pwm_SetPeriodAndDuty, Pwm_SetOutputToIdle, Pwm_GetOutputState, Pwm_EnableNotification / Pwm_DisableNotification, Power-State-APIs SchM SchM (BSW-Scheduler) SchM->Pwm Pwm_Main_PowerTransitionManager (zyklisch) Pwm->User Pwm_Notification_<#Channel> IoHwAb_Pwm_NotifyReadyForPowerState<#Mode> Det Det Pwm->Det Det_ReportError (optional) HW PWM-Einheit (Mikrocontroller) Pwm->HW direkter Registerzugriff Port Port-Logik / PWM-Pin HW->Port PWM-signaal (afleespunt van Pwm_GetOutputState vóór de poortlogica)

Contextdiagram: EcuM initialiseert de driver, de Pwm User bedient deze, en de driver meldt notificaties en fouten terug. Bronnen: [SWS_Pwm_00105], [SWS_Pwm_00198], [SWS_Pwm_00104]

Aansturing vindt plaats via een 16-bits duty-cycle, waarbij 0x8000 staat voor 100% (SWS PWM Driver p. 18). De belangrijkste services:

  • Pwm_SetDutyCycle wijzigt de duty-cycle [SWS_Pwm_91000]. Bij 0% en 100% stelt deze afhankelijk van de polariteit een statisch niveau in.
  • Pwm_SetPeriodAndDuty wijzigt daarnaast de periode, maar alleen bij kanalen van de klasse PWM_VARIABLE_PERIOD [SWS_Pwm_00110].
  • Pwm_SetOutputToIdle schakelt direct over naar het idle-niveau [SWS_Pwm_91002].
  • Pwm_GetOutputState leest het interne niveau [SWS_Pwm_00100].
kanal init na Pwm_Init (geconfigureerde begintoestand) mod Modulation (0 % < Tastgrad < 100 %) init->mod Konfiguration: Modulation stat statisch niveau (0%: invers aan de polariteit, 100%: gelijk aan de polariteit) init->stat Configuratie: Low of High mod->mod Pwm_SetPeriodAndDuty (alleen PWM_VARIABLE_PERIOD) mod->stat Pwm_SetDutyCycle(0x0000 | 0x8000) idle Idle-Zustand (konfigurierter Idle-Pegel) mod->idle Pwm_SetOutputToIdle / Pwm_DeInit stat->mod Pwm_SetDutyCycle(> 0 %, < 100 %) stat->idle Pwm_SetOutputToIdle / Pwm_DeInit idle->mod Pwm_SetPeriodAndDuty (reactivering bij variabele periode)

Toestandsdiagram: een kanaal wisselt via de API tussen modulatie, statisch niveau en idle-toestand. Bronnen: [SWS_Pwm_91000], [SWS_Pwm_91001], SWS PWM Driver p. 31

Flankmeldingen worden per kanaal met Pwm_EnableNotification ingeschakeld [SWS_Pwm_91004] en komen als Pwm_Notification_<#Channel> bij de Pwm User binnen [SWS_Pwm_00105]. Optioneel beheert de driver ook vermogenstoestanden in twee fasen. Pwm_PreparePowerState start de voorbereiding [SWS_Pwm_00183], die door de cyclische Pwm_Main_PowerTransitionManager wordt voltooid [SWS_Pwm_00189]. Daarna stelt Pwm_SetPowerState de toestand in [SWS_Pwm_00166].

Bij actieve foutdetectie melden de functies fouten zoals PWM_E_UNINIT, PWM_E_PARAM_CHANNEL of PWM_E_PERIOD_UNCHANGEABLE [SWS_Pwm_00201] en keren zonder effect terug (SWS PWM Driver p. 44). Pwm_GetOutputState levert in deze gevallen PWM_LOW op [SWS_Pwm_30051]. Wordt Pwm_SetPowerState aangeroepen zolang de driver nog in gebruik is, dan ontstaat de runtimefout PWM_E_NOT_DISENGAGED [SWS_Pwm_00202].

Rol in de MCAL: driver tussen PWM-eenheid en Pwm User

De PWM-driver omkapselt de pulsbreedtemodulatie-uitgangen van de microcontroller. Als module van de MCAL-laag benadert hij direct de registers van de microcontroller en heeft daarom geen interfaces van dieper liggende modules nodig (SWS PWM Driver p. 44). Om dezelfde reden stelt hij geen callbacks voor lagere lagen beschikbaar (SWS PWM Driver p. 40) en biedt hij ook geen service-interfaces aan (SWS PWM Driver p. 44). Zijn services zijn beschikbaar via Pwm.h, zoals Pwm_Init [SWS_Pwm_00095], Pwm_SetDutyCycle [SWS_Pwm_91000] en Pwm_GetOutputState [SWS_Pwm_00100]. De standaardtypen Std_ReturnType en Std_VersionInfoType importeert hij uit Std_Types.h [SWS_Pwm_00094].

De ECU State Manager vermeldt Pwm_Init onder zijn optionele initialisatie-interfaces (SWS EcuM p. 152). In het toepassingsgeval van een vermogenseindtrap roept een power-stage-driver van de IoHwAb services van PWM, DIO en SPI aan en stelt daarmee onder andere spanningen en frequenties in (SWS IoHwAb p. 37). In omgekeerde richting roept de driver twee soorten functies aan: de kanaalspecifieke notificaties Pwm_Notification_<#Channel> [SWS_Pwm_00105] en, in het vermogensbeheer, IoHwAb_Pwm_NotifyReadyForPowerState<#Mode> [SWS_Pwm_00198]. Ontwikkelingsfouten meldt hij optioneel via Det_ReportError [SWS_Pwm_00104]. Biedt de hardware voor verschillende kanalen verschillende mechanismen, dan wordt dat niet geabstraheerd via fabrikantspecifieke API-infixes, maar via het kanaalnummer (TPS BSWMDT p. 122).

kontext EcuM EcuM (Startup) Pwm Pwm (MCAL-Treiber) EcuM->Pwm Pwm_Init User Pwm User (z. B. IoHwAb / Power-Stage-Treiber) User->Pwm Pwm_SetDutyCycle, Pwm_SetPeriodAndDuty, Pwm_SetOutputToIdle, Pwm_GetOutputState, Pwm_EnableNotification / Pwm_DisableNotification, Power-State-APIs SchM SchM (BSW-Scheduler) SchM->Pwm Pwm_Main_PowerTransitionManager (zyklisch) Pwm->User Pwm_Notification_<#Channel> IoHwAb_Pwm_NotifyReadyForPowerState<#Mode> Det Det Pwm->Det Det_ReportError (optional) HW PWM-Einheit (Mikrocontroller) Pwm->HW direkter Registerzugriff Port Port-Logik / PWM-Pin HW->Port PWM-signaal (afleespunt van Pwm_GetOutputState vóór de poortlogica)

Contextdiagram: de Pwm-driver wordt door EcuM geïnitialiseerd en door de Pwm User bediend. Hij wordt door de scheduler cyclisch aangeroepen, meldt notificaties aan de Pwm User en fouten aan DET en bestuurt de PWM-eenheid via de registers ervan. Bronnen: [SWS_Pwm_00104], [SWS_Pwm_00105], [SWS_Pwm_00189], [SWS_Pwm_00198], SWS EcuM p. 152, SWS IoHwAb p. 37, RS PWM Driver p. 14

Signaalmodel: periode, duty-cycle, polariteit en kanaalklassen

Een kanaal wordt via de numerieke identificator Pwm_ChannelType aangesproken [SWS_Pwm_00106]. De periode is van het type Pwm_PeriodType, een implementatiespecifiek type van 8 tot 32 bits [SWS_Pwm_00107]. Drie begrippen bepalen het signaal (SWS PWM Driver p. 9):

  • De polariteit legt het beginniveau van elke periode vast.
  • De duty-cycle geeft het aandeel van dit beginniveau in de periode aan.
  • De idle-toestand is de begintoestand na Pwm_SetOutputToIdle of Pwm_DeInit.

Het schema voor signaalbeschrijving stelt beide polariteiten PWM_HIGH en PWM_LOW tegenover elkaar (SWS PWM Driver p. 7).

De duty-cycle is een 16-bits waarde. 0x0000 staat voor 0% en 0x8000 voor 100%. Als implementatiehulpmiddel noemt de specificatie AbsoluteDutyCycle = ((uint32)AbsolutePeriodTime * RelativeDutyCycle) >> 15; (SWS PWM Driver p. 18). Dienovereenkomstig begrenzen Pwm_SetDutyCycle en Pwm_SetPeriodAndDuty de parameter DutyCycle tot Min=0x0000 en Max=0x8000 [SWS_Pwm_91000] [SWS_Pwm_91001].

De kanaalklasse Pwm_ChannelClassType legt vast wat een kanaal tijdens runtime mag wijzigen [SWS_Pwm_00110]:

  • PWM_VARIABLE_PERIOD: periode en duty-cycle kunnen worden gewijzigd.
  • PWM_FIXED_PERIOD: alleen de duty-cycle kan worden gewijzigd.
  • PWM_FIXED_PERIOD_SHIFTED: vaste, verschoven periode die niet kan worden gewijzigd; alleen beschikbaar als de hardware dit ondersteunt.

Het schema voor de verschoven periode toont kanalen met dezelfde periode, waarvan het begin van de periode telkens met een vaste tijd is verschoven (SWS PWM Driver p. 23).

Levenscyclus en signaalsturing: van Pwm_Init tot de idle-toestand

Pwm_Init is synchroon en niet reentrant. De functie ontvangt met ConfigPtr een pointer naar de configuratieset [SWS_Pwm_00095]. Het type Pwm_ConfigType ervan heeft een hardwarespecifieke inhoud [SWS_Pwm_00111]. Volgens het schema voor de initialisatie staan de uitgangen daarna afhankelijk van de configuratie op Low, op High of in de modulatietoestand. Notificaties treden pas op na de eerste aanroep van Pwm_EnableNotification (SWS PWM Driver p. 46). Wordt Pwm_Init op een reeds geïnitialiseerde driver opnieuw aangeroepen, dan moet de ontwikkelingsfout PWM_E_ALREADY_INITIALIZED worden gemeld [SWS_Pwm_50002].

Pwm_DeInit is eveneens synchroon en niet reentrant [SWS_Pwm_00096]. De functie de-initialiseert de module, zet de uitgangen in de idle-toestand en schakelt PWM-interrupts evenals flankmeldingen uit. Via PwmDeInitApi kan deze worden in- en uitgeschakeld (SWS PWM Driver p. 27). Interpretatie: daarna geldt de module vermoedelijk weer als niet-geïnitialiseerd, zodat een nieuwe aanroep van Pwm_Init toegestaan is. Vraag Q-a892974ddbe644e0 (open)

lebenszyklus start Start uninit niet geïnitialiseerd start->uninit uninit->uninit andere API → PWM_E_UNINIT (Pwm_GetOutputState retourneert PWM_LOW) init geïnitialiseerd (kanalen volgens configuratie: Low, High of modulatie) uninit->init Pwm_Init(ConfigPtr) init->uninit Pwm_DeInit (uitgangen Idle, interrupts en notificaties uit) Interpretatie: vervolptoestand init->init Pwm_Init → PWM_E_ALREADY_INITIALIZED

Toestandsdiagram: levenscyclus van de module met initialisatie, de-initialisatie en de fouten bij een onjuiste aanroepvolgorde. De terugkeer naar de toestand „niet-geïnitialiseerd” na Pwm_DeInit is een interpretatie. Bronnen: [SWS_Pwm_00095], [SWS_Pwm_00096], [SWS_Pwm_50002], [SWS_Pwm_20002], [SWS_Pwm_30051], SWS PWM Driver p. 27

Tijdens bedrijf stelt Pwm_SetDutyCycle de duty-cycle van een kanaal in [SWS_Pwm_91000]. Bij 0% en 100% wordt de uitgang statisch ingesteld (SWS PWM Driver p. 28):

  • Bij 0% is het niveau invers aan de geconfigureerde polariteit.
  • Bij 100% komt het niveau overeen met de polariteit.
  • Bij tussenliggende waarden wordt gemoduleerd volgens periode, duty cycle en polariteit.

Volgens het schema neemt de driver de nieuwe duty cycle over aan het einde van de lopende periode, mits de implementatie dit ondersteunt, en anders direct (SWS PWM Driver p. 37).

Pwm_SetPeriodAndDuty stelt periode en duty cycle gezamenlijk in [SWS_Pwm_91001]. Daarbij gelden drie regels (SWS PWM Driver p. 30):

  • De periode wordt aan het einde van de periode geactualiseerd als de implementatie dit ondersteunt en dit via PwmPeriodUpdatedEndperiod is geconfigureerd.
  • Stoorspieken aan de uitgang moeten worden onderdrukt.
  • De duty cycle wordt meegegeven, zodat frequentie en duty cycle bij elkaar passen.
tastgrad a Aanroep Pwm_SetDutyCycle of Pwm_SetPeriodAndDuty (algemene controles geslaagd) k Pwm_SetPeriodAndDuty? a->k c Kanalklasse = PWM_VARIABLE_PERIOD? k->c ja d angeforderter Tastgrad? k->d nein (Pwm_SetDutyCycle) e PWM_E_PERIOD_UNCHANGEABLE melden, functie zonder actie verlaten c->e nee (bij actieve foutdetectie) p Periode en duty cycle instellen (periode aan periode-einde, indien PwmPeriodUpdatedEndperiod; storingspieken onderdrukken) c->p ja z Uitgang statisch: invers aan de polariteit d->z 0x0000 (0 %) h Uitgang statisch: gelijk aan de polariteit d->h 0x8000 (100 %) m Modulatie volgens periode, duty cycle en polariteit d->m dazwischen

Activiteitendiagram: verwerking van Pwm_SetDutyCycle en Pwm_SetPeriodAndDuty met controle van de kanaalklasse en speciale behandeling van 0% en 100%. Bronnen: [SWS_Pwm_40002], SWS PWM Driver p. 28, SWS PWM Driver p. 30, SWS PWM Driver p. 44

Pwm_SetOutputToIdle zet de uitgang direct in de geconfigureerde idle-toestand [SWS_Pwm_91002]. Kanalen met variabele periode worden vervolgens via Pwm_SetPeriodAndDuty weer geactiveerd (SWS PWM Driver p. 31). Het schema “Setting Pwm output to idle” toont precies deze volgorde (SWS PWM Driver p. 50). Pwm_GetOutputState leest de interne uitgangstoestand synchroon als PWM_HIGH of PWM_LOW [SWS_Pwm_00100] [SWS_Pwm_00108]. Een schema in de specificatie van eisen situeert de gelezen waarde aan de uitgang van de PWM-eenheid, dus vóór de poortlogica en niet op de fysieke pin (RS PWM Driver p. 14).

kanal init na Pwm_Init (geconfigureerde begintoestand) mod Modulation (0 % < Tastgrad < 100 %) init->mod Konfiguration: Modulation stat statisch niveau (0%: invers aan de polariteit, 100%: gelijk aan de polariteit) init->stat Configuratie: Low of High mod->mod Pwm_SetPeriodAndDuty (alleen PWM_VARIABLE_PERIOD) mod->stat Pwm_SetDutyCycle(0x0000 | 0x8000) idle Idle-Zustand (konfigurierter Idle-Pegel) mod->idle Pwm_SetOutputToIdle / Pwm_DeInit stat->mod Pwm_SetDutyCycle(> 0 %, < 100 %) stat->idle Pwm_SetOutputToIdle / Pwm_DeInit idle->mod Pwm_SetPeriodAndDuty (reactivering bij variabele periode)

Toestandsdiagram: uitgangstoestanden van een kanaal (modulatie, statisch niveau, idle) en de API's die daartussen schakelen. Bronnen: [SWS_Pwm_91000], [SWS_Pwm_91001], [SWS_Pwm_91002], SWS PWM Driver p. 28, SWS PWM Driver p. 31, SWS PWM Driver p. 46

Flanknotificaties per kanaal

Met Pwm_EnableNotification schakelt de Pwm User de notificatie voor een kanaal in. De parameter van het type Pwm_EdgeNotificationType selecteert PWM_RISING_EDGE, PWM_FALLING_EDGE of PWM_BOTH_EDGES [SWS_Pwm_91004] [SWS_Pwm_00109]. De functie verwerpt openstaande interrupts (SWS PWM Driver p. 35). Deze bestaat, net als Pwm_DisableNotification [SWS_Pwm_91003], alleen wanneer PwmNotificationSupported is ingeschakeld (SWS PWM Driver p. 34).

De driver roept de geconfigureerde functie Pwm_Notification_<#Channel> aan overeenkomstig de laatste aanroep van Pwm_EnableNotification respectievelijk Pwm_DisableNotification. Daarbij reset hij de bijbehorende interrupt-vlag (SWS PWM Driver p. 42). De callback heeft geen parameters en wordt via Pwm_Externals.h bekendgemaakt. Of deze re-entrant is, hangt af van de implementatie van de Pwm User [SWS_Pwm_00105].

Flanknotificatie van een PWM-kanaalPwm UserPwmPwm_Init(const Pwm_ConfigType*)Pwm_Init()Geen notificatie tot aan deersten Pwm_EnableNotificationPwm_EnableNotification(ChannelNumber,PWM_RISING_EDGE | PWM_FALLING_EDGE | PWM_BOTH_EDGES)anstehende Interrupts verwerfenPwm_EnableNotification()loopbij elke geselecteerde flankInterrupt-flag resettenPwm_Notification_<#Channel>()Pwm_DisableNotification(ChannelNumber)Pwm_DisableNotification()Geen verdere notificaties

Sequentiediagram: verloop van de initialisatie via het in- en uitschakelen van de flanknotificatie tot het uitblijven van verdere callbacks. Bronnen: [SWS_Pwm_91004], [SWS_Pwm_91003], [SWS_Pwm_00105], SWS PWM Driver p. 52, SWS PWM Driver p. 42

Vermogenstoestanden van de PWM-periferie

De besturing van vermogenstoestanden is een optionele functie. Deze beperkt zich tot de PWM-periferie en vereist dat de applicatie, het modusbeheer en IoHwAb al aan de overkoepelende randvoorwaarden voldoen (SWS PWM Driver p. 17). Als PwmLowPowerStatesSupport actief is, worden de vier power-state-API's gegenereerd (SWS PWM Driver p. 16). Pwm_PowerStateType kent PWM_FULL_POWER (0x00) en het bereik 1..255 voor toestanden met afnemend verbruik. In R20-11 is het type gedefinieerd als een enumeratie [SWS_Pwm_00197]. Een latere versie definieert het daarentegen als een type dat is afgeleid van uint8 (SWS PWM Driver p. 25).

De overgang van vermogenstoestand verloopt in twee fasen:

  1. Pwm_PreparePowerState start de voorbereiding en levert in de resultaatparameter PWM_SERVICE_ACCEPTED of een reden voor afwijzing op [SWS_Pwm_00183] [SWS_Pwm_00165]. Wat niet direct kan worden voltooid, wordt afgehandeld door de cyclisch aangeroepen Pwm_Main_PowerTransitionManager [SWS_Pwm_00189] [SWS_Pwm_00190]. De aanroepsnelheid hiervan is variabel en callbacks worden alleen in asynchrone modus verzonden (SWS PWM Driver p. 41). De voltooide voorbereiding meldt de driver met IoHwAb_Pwm_NotifyReadyForPowerState<#Mode> [SWS_Pwm_00198].
  2. Pwm_SetPowerState brengt de hardware in de voorbereide toestand [SWS_Pwm_00166]. Voorbereidende stappen, zoals het instellen van alle kanalen op IDLE en het afmelden van alle notificaties, moeten door de verantwoordelijke SWC's, zoals de IoHwAb, al zijn uitgevoerd. Impliciete tussentoestanden voert de functie niet uit (SWS PWM Driver p. 36).
powerzustand uninit niet geïnitialiseerd (resultaat PWM_NOT_INIT) stabil stabil (aktueller = Zielzustand) uninit->stabil Pwm_Init stabil->stabil Pwm_SetPowerState zonder voorbereiding of Prepare met actuele toestand → PWM_SEQUENCE_ERROR stabil->stabil niet ondersteund / niet direct bereikbaar → PWM_POWER_STATE_NOT_SUPP / PWM_TRANS_NOT_POSSIBLE vorb Voorbereiding loopt (doel ≠ actuele toestand) stabil->vorb Pwm_PreparePowerState(PowerState) E_OK / PWM_SERVICE_ACCEPTED (asynchroner Modus) bereit Vorbereitung abgeschlossen stabil->bereit Pwm_PreparePowerState (synchroner Modus) vorb->bereit Pwm_Main_PowerTransitionManager → IoHwAb_Pwm_NotifyReadyForPowerState<#Mode> bereit->stabil Pwm_SetPowerState E_OK (neuer Zustand aktiv)

Toestandsdiagram: tweefasige overgang van de vermogenstoestand met voorbereiding, voltooiing en instelling, evenals de sequentiefouten. Bronnen: [SWS_Pwm_00183], [SWS_Pwm_00166], [SWS_Pwm_00165], [SWS_Pwm_00190], SWS PWM Driver p. 39, SWS IoHwAb p. 61

Pwm_GetCurrentPowerState [SWS_Pwm_00177] levert de actuele toestand op, Pwm_GetTargetPowerState [SWS_Pwm_00180] de aangevraagde. Zolang er geen overgang loopt, komen beide overeen (SWS PWM Driver p. 38). De IoHwAb-specificatie toont het samenspel van BswM, RTE/SchM, IoHwAb, ADC en PWM voor het asynchrone geval (SWS IoHwAb p. 60). In het synchrone geval is de voorbereiding al voltooid wanneer de voorbereidings-API terugkeert (SWS IoHwAb p. 61).

Asynchroner Wechsel in einen Niedrigenergiezustand (vereinfacht)BswMRte / SchMIoHwAbPwmUse Case: Phase 1: VorbereitungRTE/SchMSwitch(...)OnEntryRunnable_LowPowerModeA()IoHwAb_PreparePowerState_LowPowerModeA()Pwm_PreparePowerState(PwrSts_3)E_OK / PWM_SERVICE_ACCEPTEDVoorbereiding loopt op de achtergrond doorUse Case: Phase 2: Hintergrundverarbeitungloopbis Vorbereitung abgeschlossenPwm_Main_PowerTransitionManager()IoHwAb_Pwm_NotifyReadyForPowerStateLowPowerModeA()IoHwAb_PollForResults()UpdateModePorts()Use Case: Phase 3: Zustand setzenRTE/SchMSwitch(LowPowerModeA_Transition_End)IoHwAb_EnterPowerStateLP1()Voorwaarde: alle kanalen IDLE,Benachrichtigungen abgemeldetPwm_SetPowerState(&Result)E_OK / PWM_SERVICE_ACCEPTEDPwm_GetCurrentPowerState(...)E_OK, CurrentPowerState

Sequentiediagram: asynchrone overgang naar een energiezuinige toestand, aangestuurd door de IoHwAb. Het verloop is vereenvoudigd en ADC is weggelaten. Bronnen: [SWS_Pwm_00183], [SWS_Pwm_00189], [SWS_Pwm_00198], [SWS_Pwm_00166], SWS IoHwAb p. 57, SWS IoHwAb p. 60

Configuratie, kanaalcontainers en gelijktijdigheid

Verplichte parameters van een kanaal zijn het toegewezen hardwarekanaal, standaardwaarden voor periode en duty cycle, polariteit, idle-niveau en kanaalklasse. Faseverschuiving, referentiekanaal en microcontrollerspecifieke eigenschappen zijn optioneel, voor zover de hardware deze biedt (SWS PWM Driver p. 25). In het configuratiemodel bevat PwmChannelConfigSet ten minste één PwmChannel, en PwmDutycycleDefault is begrensd op 0 tot 0x8000 (ECUC-Parameter p. 545). PwmChannelClass wordt afgebeeld op Pwm_ChannelClassType. PwmChannelId wordt toegewezen aan de symbolische naam van de kanaalcontainer (SWS PWM Driver p. 57).

Optionele services worden via de configuratie in- en uitgeschakeld: PwmSetOutputToIdle (SWS PWM Driver p. 31), PwmGetOutputState (SWS PWM Driver p. 33) evenals de bovengenoemde PwmDeInitApi en PwmNotificationSupported.

Voor de gelijktijdigheid geldt:

  • Kanaalservices zoals Pwm_SetDutyCycle zijn re-entrant voor verschillende kanaalnummers [SWS_Pwm_91000].
  • De vermogenstoestand-API's zijn niet re-entrant [SWS_Pwm_00183].
  • Configuraties met partitietoewijzingen die de implementatie niet ondersteunt, moet de module afwijzen [SWS_Pwm_00203].

De re-entrantieniveaus tot en met “multi-core reentrant” worden toegelicht in de BSW-Distribution-Guide (BSW Distribution Guide p. 18).

Gedrag in het foutgeval

Als de detectie van ontwikkelingsfouten actief is, melden de functies gedetecteerde fouten aan de Default Error Tracer. Vervolgens slaan ze de aangevraagde functie over, zodat noch gegevens, noch hardwareregisters worden gecorrumpeerd (SWS PWM Driver p. 44). De foutcodes zijn [SWS_Pwm_00201]:

  • PWM_E_INIT_FAILED (0x10)
  • PWM_E_UNINIT (0x11) voor aanroepen vóór de initialisatie [SWS_Pwm_20002]
  • PWM_E_PARAM_CHANNEL (0x12) voor ongeldige kanalen [SWS_Pwm_30002]
  • PWM_E_PERIOD_UNCHANGEABLE (0x13) voor periodewijzigingen aan kanalen met een vaste periode [SWS_Pwm_40002]
  • PWM_E_ALREADY_INITIALIZED (0x14)
  • PWM_E_PARAM_POINTER (0x15) voor een NULL-parameter aan Pwm_GetVersionInfo

Pwm_GetOutputState moet altijd een waarde retourneren. Vóór de initialisatie of bij een ongeldig kanaal is dat PWM_LOW [SWS_Pwm_30051].

pruefung a Aanroep van een kanaal-API det Entwicklungsfehlererkennung aktiv? a->det ini Modul initialisiert? det->ini ja ok Service uitvoeren det->ok nein ch ChannelNumber geldig? ini->ch ja u PWM_E_UNINIT an Det melden ini->u nein pc PWM_E_PARAM_CHANNEL an Det melden ch->pc nein ch->ok ja skip Functie zonder actie verlaten (Pwm_GetOutputState retourneert PWM_LOW) u->skip pc->skip

Activiteitendiagram: algemene controles van de kanaal-API's bij actieve detectie van ontwikkelingsfouten, met afbreking zonder effect. Bronnen: [SWS_Pwm_20002], [SWS_Pwm_30002], [SWS_Pwm_30051], SWS PWM Driver p. 44

De vermogenstoestand-API's melden fouten bovendien via Std_ReturnType en het resultaattype Pwm_PowerStateRequestResultType. Mogelijke waarden zijn PWM_NOT_INIT, PWM_SEQUENCE_ERROR, PWM_HW_FAILURE, PWM_POWER_STATE_NOT_SUPP en PWM_TRANS_NOT_POSSIBLE [SWS_Pwm_00165]. Voor een niet-ondersteunde toestand is bovendien PWM_E_POWER_STATE_NOT_SUPPORTED vastgelegd [SWS_Pwm_00174], voor een niet direct bereikbare toestand PWM_E_TRANSITION_NOT_POSSIBLE [SWS_Pwm_00175].

Wordt Pwm_SetPowerState aangeroepen terwijl er nog kanalen niet op IDLE staan of er notificaties zijn geregistreerd, dan ontstaat de runtimefout PWM_E_NOT_DISENGAGED (0x16) [SWS_Pwm_00202] (SWS PWM Driver p. 20). Pwm_Main_PowerTransitionManager keert zonder initialisatie gewoon terug en meldt daarbij bewust geen ontwikkelingsfout. De reden: cyclische taken kunnen al vóór het einde van de initialisatie actief zijn (SWS PWM Driver p. 41).

Verdere gedetailleerde bewijzen

Door AI gegenereerde handleiding op basis van de in de payload verstrekte requirements en documentpassages voor AUTOSAR Classic R20-11. Uitsluitend de specificatie is bindend.

PWM Driver (Pwm)

Generates pulse-width-modulated signals with configurable duty cycle and period.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

functie Pwm_Init [SWS_Pwm_00095] 📄 PDF

void Pwm_Init (const Pwm_ConfigType* ConfigPtr);

Service for PWM initialization.

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 0770524664d2 Herkomst Open vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

De synchrone functie Pwm_Init dient als centrale service voor de initialisatie van de gehele PWM-driver ([SWS_Pwm_00095]). Deze wordt ter beschikking gesteld via het headerbestand Pwm.h en heeft de hexadecimale service-ID 0x00 ([SWS_Pwm_00095]). Als enige invoerparameter wordt ConfigPtr doorgegeven, die fungeert als pointer naar de driverspecifieke configuratieset van het type Pwm_ConfigType ([SWS_Pwm_00095]). De interface heeft geen retourwaarde en gebruikt noch uitvoerparameters noch invoer-/uitvoerparameters ([SWS_Pwm_00095]).

Met betrekking tot het runtimegedrag is Pwm_Init synchroon en gespecificeerd als niet-re-entrant (Non Reentrant) ([SWS_Pwm_00095]). Een gelijktijdige of onderbrekende aanroep van deze functie vanuit meerdere threads, taken of interruptroutines is daarom strikt ontoelaatbaar. De uitvoering vindt typisch eenmalig plaats tijdens het opstarten van het systeem in de initialisatiefase van de ECU vóór het verdere gebruik van de PWM-kanalen. Vraag Q-ff3f1cf769dfed70 (open)

Ter borging van de toegestane aanroepvolgorde bewaakt de module zijn toestand: Als de service Pwm_Init wordt aangeroepen wanneer de PWM-driver al is geïnitialiseerd, meldt de module de ontwikkelingsfout PWM_E_ALREADY_INITIALIZED met het ID 0x14 ([SWS_Pwm_50002]). Een herhaalde initialisatie wordt zodoende als fout beschouwd.

Deze tekst is opgesteld door een AI. AUTOSAR-specificaties zijn leidend.

Implementer's Guide volgt (complexiteit I1)

functie Pwm_DeInit [SWS_Pwm_00096] 📄 PDF

void Pwm_DeInit (void);

Service for PWM De - Initialization.

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: e8e4048754f1 Herkomst Open vragen (2)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

Gebruik en signatuur

De functie Pwm_DeInit dient als service voor de de-initialisatie van de PWM-driver ([SWS_Pwm_00096]). Deze wordt via het headerbestand Pwm.h ter beschikking gesteld en heeft service-ID 0x01 ([SWS_Pwm_00096]). De interface heeft de signatuur void Pwm_DeInit(void), accepteert noch ingangs- noch uitgangsparameters en levert geen retourwaarde aan de aanroeper ([SWS_Pwm_00096]).

De aanroep van Pwm_DeInit wordt synchroon uitgevoerd ([SWS_Pwm_00096]). De aanroepende control flow blijft zodoende in de functie totdat de de-initialisatiestappen van de PWM-module zijn voltooid.

Gelijktijdigheid en beperkingen

Voor de uitvoering gelden de volgende randvoorwaarden met betrekking tot gelijktijdigheid:

  • Niet-re-entrant: De service is gespecificeerd als niet-re-entrant ([SWS_Pwm_00096]). Een gelijktijdige of onderbrekende aanroep vanuit meerdere threads, tasks of ISR's is niet toegestaan.
  • Aanroepcontext: Vanwege de synchrone semantiek en het ontbreken van re-entrantie vindt de aanroep vermoedelijk typisch plaats in het kader van een gecontroleerde shutdown-fase op taskniveau. Vraag Q-f1afc58637cba5cf (open)

Foutafhandeling

In de specificatie van Pwm_DeInit zijn noch retourwaarden noch specifieke foutcodes gedefinieerd ([SWS_Pwm_00096]). Eventuele runtime- of toestandsfouten worden vermoedelijk via module-interne bewakingsmechanismen zoals de ontwikkelingsinterface (DET) gelogd of afgevangen, aangezien een directe foutterugmelding via de functie-interface niet is voorzien. Vraag (open)

Deze tekst is automatisch gegenereerd op basis van de specificatie AUTOSAR Classic R20-11.

functie Pwm_DisableNotification [SWS_Pwm_91003] 📄 PDF

void Pwm_DisableNotification (Pwm_ChannelType ChannelNumber);

Service to disable the PWM signal edge notification.

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 2d97fc6435bd Herkomst Open vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

De functie Pwm_DisableNotification dient voor het deactiveren van de flankmelding (Signal Edge Notification) van een bepaald PWM-kanaal [SWS_Pwm_91003]. De functiedeclaratie en bijbehorende typedefinities worden ter beschikking gesteld via het headerbestand Pwm.h [SWS_Pwm_91003].

Parameters en retourwaarde

De interface heeft de service-ID 0x06 en vertoont de volgende signatuurkenmerken [SWS_Pwm_91003]:

  • ChannelNumber (in): numerieke identificator van het te configureren PWM-kanaal van het type Pwm_ChannelType [SWS_Pwm_91003].

Er bestaan noch ingangs-/uitgangsparameters (inout) noch zuivere uitgangsparameters (out) [SWS_Pwm_91003]. De functie levert geen retourwaarde (void) terug aan de aanroeper [SWS_Pwm_91003].

Synchronisatiegedrag en concurrency

De aanroep van Pwm_DisableNotification werkt asynchroon [SWS_Pwm_91003]. Met betrekking tot het multithreading-gedrag is de service re-entrant, zolang verschillende kanaalnummers worden aangesproken [SWS_Pwm_91003].

Interpretatie: Aangezien de re-entrantie expliciet beperkt is tot verschillende kanalen, is de functie voor hetzelfde PWM-kanaal vermoedelijk niet re-entrant [SWS_Pwm_91003]. Vraag Q-005e97fd25679da7 (open) Gelijktijdige aanroepen voor een identiek kanaal moeten daarom vermoedelijk aan aanroeperszijde onderling worden gesynchroniseerd.

Gecureerde gebruiksinstructies op basis van de specificatie AUTOSAR Classic R20-11.

functie Pwm_EnableNotification [SWS_Pwm_91004] 📄 PDF

void Pwm_EnableNotification (Pwm_ChannelType ChannelNumber, Pwm_EdgeNotificationType Notification);

Service to enable the PWM signal edge notification according to notification pa rameter.

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 0c9ffc1eca13 Herkomst Open vragen (2)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

Gebruik

De functie Pwm_EnableNotification dient voor de activering van signaalflanknotificaties voor een bepaald PWM-kanaal conform de overgedragen notificatieparameter [SWS_Pwm_91004]. De service wordt via het headerbestand Pwm.h ter beschikking gesteld, heeft service-ID 0x07 en levert geen retourwaarde (void) terug aan de aanroeper [SWS_Pwm_91004].

Bij de aanroep van de interface moeten twee verplichte ingangsparameters worden overgedragen [SWS_Pwm_91004]:

  • ChannelNumber (van het type Pwm_ChannelType): Numerieke identificatie van het aan te spreken PWM-kanaal [SWS_Pwm_91004].
  • Notification (van het type Pwm_EdgeNotificationType): Definieert de aard van de flanknotificatie met de toegestane waarden PWM_RISING_EDGE, PWM_FALLING_EDGE of PWM_BOTH_EDGES [SWS_Pwm_91004].

Semantiek en gelijktijdigheid

De uitvoering van de service is gespecificeerd als asynchroon [SWS_Pwm_91004]. Met betrekking tot gelijktijdigheid is Pwm_EnableNotification re-entrant ontworpen voor verschillende kanaalnummers [SWS_Pwm_91004]. Bij een gelijktijdige of onderbrekende toegang tot hetzelfde PWM-kanaal is de service vermoedelijk niet-re-entrant; een dergelijke aanroep moet daarom aanroeperszijde worden beveiligd. Vraag Q-73309ed8589161a3 (open)

Foutafhandeling en randvoorwaarden

Het specificatie-uittreksel definieert voor deze functie noch specifieke retourwaarden noch foutmeldingen voor de Development Error Tracer (DET) of de Diagnostic Event Manager (DEM) [SWS_Pwm_91004]. Eveneens ontbreken voorschriften over toegestane aanroepcontexten of taskgerelateerde volgorden. Aangezien er geen randvoorwaarden worden genoemd, is de functieaanroep vermoedelijk pas na een succesvolle initialisatie van de PWM-driver toegestaan. Vraag Q-7f428f59a20175c2 (open)

Deze gebruiksinstructie is geautomatiseerd gemaakt op basis van het specificatie-uittreksel van AUTOSAR Classic R20-11.

functie Pwm_SetPowerState [SWS_Pwm_00166] 📄 PDF

Std_ReturnType Pwm_SetPowerState (Pwm_PowerStateRequestResultType* Result);

This API configures the Pwm module so that it enters the already prepared power st ate, chosen between a predefined set of configured ones.

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: b7532b0354d7 Herkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

De synchrone functie Pwm_SetPowerState brengt de PWM-module in een vooraf voorbereide toestand uit een voorgeconfigureerde selectie van power-states [SWS_Pwm_00166]. De declaratie is beschikbaar via de header Pwm.h [SWS_Pwm_00166].

Gebruik en retourwaarden

De functie accepteert geen invoerparameters en draagt het gedetailleerde resultaat over via de pointerparameter Result van het type Pwm_PowerStateRequestResultType* [SWS_Pwm_00166]:

  • Kon de modus succesvol worden gewijzigd, dan retourneert de functie E_OK en stelt Result in op PWM_SERVICE_ACCEPTED [SWS_Pwm_00166].
  • Wordt het verzoek afgewezen, dan retourneert de aanroep E_NOT_OK [SWS_Pwm_00166].

Foutafhandeling

In het geval van een fout (retourwaarde E_NOT_OK) specificeert Result de oorzaak van het mislukken [SWS_Pwm_00166]:

  • PWM_NOT_INIT: De PWM-module is niet geïnitialiseerd [SWS_Pwm_00166].
  • PWM_SEQUENCE_ERROR: Er is sprake van een niet-toegestane API-aanroepsequentie [SWS_Pwm_00166].
  • PWM_HW_FAILURE: Een fout in de hardwaremodule verhindert het binnengaan van de aangevraagde power-state [SWS_Pwm_00166].

Gelijktijdigheid en randvoorwaarden

Pwm_SetPowerState is niet-re-entrant (Non Reentrant) en vereist ter voorkoming van een sequentiële fout dat de doeltoestand voorafgaand aan de aanroep is voorbereid [SWS_Pwm_00166].

Deze tekst is door een AI gegenereerd op basis van de AUTOSAR-specificatie.

Implementer's Guide volgt (complexiteit I1)

functie Pwm_GetCurrentPowerState [SWS_Pwm_00177] 📄 PDF

Std_ReturnType Pwm_GetCurrentPowerState (Pwm_PowerStateType* CurrentPowerState, Pwm_PowerStateRequestResultType* Result);

This API returns the current power state of the PWM HW unit. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_PWMDriver

functie Pwm_PreparePowerState [SWS_Pwm_00183] 📄 PDF

Std_ReturnType Pwm_PreparePowerState (Pwm_PowerStateType PowerState, Pwm_PowerStateRequestResultType* Result);

This API starts the needed process to allow the PWM HW module to enter the requested power state. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_PWMDriver

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 50b7f8a853d8 Herkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

Gebruik

De synchrone functie Pwm_PreparePowerState leidt het vereiste voorbereidingsproces in, zodat de PWM-hardwaremodule naar een aangevraagde energietoestand kan overgaan [SWS_Pwm_00183]. De gewenste doeltoestand wordt via de parameter PowerState overgedragen, terwijl het gedetailleerde resultaat via de uitvoerpointer Result ter beschikking wordt gesteld [SWS_Pwm_00183]. Werd de voorbereiding succesvol in gang gezet, dan retourneert de functie E_OK en stelt Result in op PWM_SERVICE_ACCEPTED [SWS_Pwm_00183].

Foutafhandeling

Wordt de service geweigerd, dan levert de functie E_NOT_OK en meldt de specifieke oorzaak via Result [SWS_Pwm_00183]:

  • PWM_NOT_INIT: De PWM-module is niet geïnitialiseerd [SWS_Pwm_00183].
  • PWM_SEQUENCE_ERROR: Niet-toegestane aanroepsequentie, aangezien de actuele energietoestand al overeenkomt met de doeltoestand [SWS_Pwm_00183].
  • PWM_POWER_STATE_NOT_SUPP: De module ondersteunt de aangevraagde energietoestand niet [SWS_Pwm_00183].
  • PWM_TRANS_NOT_POSSIBLE: Een directe overgang is niet mogelijk of het randapparaat van de hardware is nog bezig [SWS_Pwm_00183].

Gelijktijdigheid en wisselwerking

De functie is niet-re-entrant (Non Reentrant) en mag daarom voor dezelfde module niet gelijktijdig worden aangeroepen [SWS_Pwm_00183]. Na succesvolle voorbereiding door Pwm_PreparePowerState moeten downstream, niet onmiddellijk effectieve acties worden uitgevoerd om de energietoestandsovergang finaal te voltooien [SWS_Pwm_00190].

Deze gebruiksinstructie is automatisch gegenereerd op basis van de specificatie R20-11.

Implementer's Guide volgt (complexiteit I1)

functie Pwm_Main_PowerTransitionManager [SWS_Pwm_00189] 📄 PDF

void Pwm_Main_PowerTransitionManager (void);

This API is cyclically called and supervises the power state transitions, checking for the readiness of the module and issuing the callbacks Io Hw Ab_ Pwm_ Notify Ready For Power State (see Pwm Power State Ready Cb k Ref configuration parameter). AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_PWMDriver

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 879296577e8e Herkomst Open vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

De interface Pwm_Main_PowerTransitionManager dient voor de cyclische bewaking van energietoestandsovergangen (Power State Transitions) van de PWM-driver conform [SWS_Pwm_00189]. Deze heeft service-ID 0x0d, accepteert geen overdrachtsparameters en levert geen retourwaarde op (signatuur void Pwm_Main_PowerTransitionManager(void)).

In het kader van haar cyclische uitvoering controleert de functie de operationele gereedheid van de module voor de desbetreffende energietoestand. Zodra de gereedheid aanwezig is, triggert deze de notificatie-callbacks IoHwAb_Pwm_NotifyReadyForPowerState<Mode>, waarnaar via de configuratieparameter PwmPowerStateReadyCbkRef wordt verwezen [SWS_Pwm_00189].

De functie is voorzien voor een cyclische aanroepcontext en wordt via het headerbestand SchM_Pwm.h ter beschikking gesteld. Bijgevolg vindt de periodieke aanroep vermoedelijk typisch plaats in de context van de BSW-scheduler (Schedule Manager) [SWS_Pwm_00189]. Vraag Q-b9b0431e7ccbca88 (open) Specifieke foutcodes, mechanismen voor foutafhandeling via DET of DEM evenals bijzondere re-entrantievoorwaarden zijn in de modulespecificatie voor deze service niet gedefinieerd.

Deze tekst is door een AI gegenereerd op basis van de AUTOSAR-specificatie R20-11.

Implementer's Guide volgt (complexiteit I1)

functie Pwm_ [SWS_Pwm_00105] 📄 PDF

void Pwm_Notification_<#Channel> (void);

The Pwm module shall call the function Pwm_ Notification_<#Channel> accordingly to the last call of Pwm_ Enable Notification for channel <#Channel>.

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 6eff8686a5f4 Herkomst Open vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

De kanaalgebonden notificatiefunctie Pwm_Notification_<#Channel> wordt door de PWM-module synchroon aangeroepen zodra de voor het desbetreffende kanaal geconfigureerde flankgebeurtenis optreedt [SWS_Pwm_00105]. De functie heeft de signatuur void Pwm_Notification_<#Channel>(void), accepteert geen overdrachtsparameters en levert geen retourwaarde op [SWS_Pwm_00105]. Deze is gedeclareerd in het bestand Pwm_Externals.h en moet door de gebruiker worden geleverd [SWS_Pwm_00105].

De aanroep vindt plaats afhankelijk van de laatste aanroep van Pwm_EnableNotification voor het desbetreffende kanaal [SWS_Pwm_00105]. De triggerende gebeurtenissen baseren zich op de waarden van Pwm_EdgeNotificationType, die stijgende (PWM_RISING_EDGE), dalende (PWM_FALLING_EDGE) of beide signaalflanken (PWM_BOTH_EDGES) onderscheidt [SWS_Pwm_00109]. Voorafgaand aan de signaalgeneratie en gebeurtenisnotificatie moet de PWM-module via Pwm_Init met een hardware-afhankelijke Pwm_ConfigType-structuur zijn geïnitialiseerd [SWS_Pwm_00095], [SWS_Pwm_00111].

Wat betreft gelijktijdigheid is de re-entrantie van de callback-functie expliciet gedefinieerd als gebruikersafhankelijk (PWM user implementation dependant) [SWS_Pwm_00105]. De exacte uitvoeringscontext (bijvoorbeeld of de aanroep direct in een interrupt-service-routine of in de taskcontext plaatsvindt) hangt vermoedelijk af van de onderliggende driverimplementatie (interpretatie). Vraag Q-327872e0e8fecb37 (open) Specifieke foutcodes, retourwaarden of gestandaardiseerde DET- of DEM-meldingen bestaan er voor deze notificatie-interface niet [SWS_Pwm_00105].

Deze tekst is opgesteld door een AI en is gebaseerd op de specificatie AUTOSAR Classic Release R20-11.

functie IoHwAb_Pwm_NotifyReadyForPower [SWS_Pwm_00198] 📄 PDF

void IoHwAb_Pwm_NotifyReadyForPowerState<#Mode> (void);

The API shall be invoked by the PWM Driver when the requested power state preparation for mode <#Mode> is completed.

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 23b0f44b508d Herkomst Open vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

De functie IoHwAb_Pwm_NotifyReadyForPower (in de syntaxis gedeclareerd als IoHwAb_Pwm_NotifyReadyForPowerState<#Mode>) wordt via de header IoHwAb_Pwm.h beschikbaar gesteld en dient als callback-interface in het AUTOSAR-powermanagement [SWS_Pwm_00198].

Met betrekking tot gebruik, interface-eigenschappen en systeemsamenspel gelden de volgende bindende voorschriften:

  • Gebruik en aanroepcontext: De interface heeft de service-ID 0x60 en wordt synchroon uitgevoerd [SWS_Pwm_00198]. Deze moet verplicht door de PWM-driver worden aangeroepen zodra de voorbereiding aan apparaatzijde voor een aangevraagde vermogenstoestand (Power State) van een modus met succes is voltooid [SWS_Pwm_00198].
  • Parameters en retourwaarden: De functiesignatuur definieert noch ingangs-, ingangs-/uitgangs- noch uitgangsparameters en heeft geen retourwaarde (void) [SWS_Pwm_00198]. Interpretatie: De toewijzing aan de betreffende vermogensmodus vloeit vermoedelijk direct voort uit de modusspecifieke functienaam in de broncode. Vraag Q-ab761160ed91de78 (open)
  • Gelijktijdigheid en beperkingen: De functie is gespecificeerd als niet-re-entrant (Non Reentrant) [SWS_Pwm_00198]. Aanroepen mogen bijgevolg niet parallel of genest binnen dezelfde drivercontext plaatsvinden.
  • Samenspel: In het module-overschrijdende verloop signaleert de aanroep aan de bovenliggende I/O-hardware-abstractie dat de driverfase gereed is voor de overgang naar de gewenste bedrijfstoestand [SWS_Pwm_00198].

In de specificatiebronnen zijn voor deze functie geen specifieke foutcodes en geen meldingen aan DET of DEM voorzien [SWS_Pwm_00198].

Deze tekst is opgesteld door een AI; alle beweringen steunen uitsluitend op de AUTOSAR-specificatie.

Implementer's Guide volgt (complexiteit I1)

type Pwm_OutputStateType [SWS_Pwm_00108] 📄 PDF

Output state of a PWM channel.

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 4d670762d069 Herkomst Open vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

Het enumeratietype Pwm_OutputStateType definieert de uitgangstoestand van een PWM-kanaal binnen de Classic AUTOSAR-driver Pwm [SWS_Pwm_00108]. De typedefinitie wordt via het headerbestand Pwm.h beschikbaar gesteld voor aanroepende software-eenheden en drivertoepassingen [SWS_Pwm_00108].

Het waardebereik van deze enumeratie onderscheidt twee eenduidig vastgelegde toestanden van het kanaal [SWS_Pwm_00108]:

  • PWM_HIGH (numerieke waarde 0x00): Geeft aan dat het desbetreffende PWM-kanaal zich in de High-toestand bevindt [SWS_Pwm_00108].
  • PWM_LOW (numerieke waarde 0x01): Geeft aan dat het desbetreffende PWM-kanaal zich in de Low-toestand bevindt [SWS_Pwm_00108].

Met betrekking tot aanroepcontext en gebruiksdoel definieert het element zelf als type geen interfacefuncties [SWS_Pwm_00108]. Interpretatie: De waarden dienen vermoedelijk typisch als parameters of retourwaarden bij API-functies van de module om de actuele of gewenste logische niveautoestand van een kanaal te signaleren. Vraag Q-9c142d658ab7fcfd (open)

Aangezien het om een elementaire typedefinitie gaat, bestaan er in de specificatieomvang geen specifieke foutafhandelingen met betrekking tot DET of DEM en geen eisen aan re-entrantie of synchrone uitvoering [SWS_Pwm_00108].

Deze tekst is gegenereerd door een AI op basis van de specificatie AUTOSAR Classic R20-11.

Implementer's Guide volgt (complexiteit I1)

type Pwm_EdgeNotificationType [SWS_Pwm_00109] 📄 PDF

Definition of the type of edge notification of a PWM channel.

type Pwm_ConfigType [SWS_Pwm_00111] 📄 PDF

This is the type of data structure containing the initialization data for the PWM driver.

type Pwm_PowerStateRequestResultType [SWS_Pwm_00165] 📄 PDF

Result of the requests related to power state transitions.

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 615a415d7a52 Herkomst Open vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

Het enumeratietype Pwm_PowerStateRequestResultType levert het resultaat van verzoeken tot toestandsverandering van de energiebeheermodus (Power State Transitions) in de PWM-driver conform [SWS_Pwm_00165]. De typedefinitie is beschikbaar via de header Pwm.h [SWS_Pwm_00165].

Het type representeert zowel de succesvolle overgang als specifieke foutcondities [SWS_Pwm_00165]:

  • PWM_SERVICE_ACCEPTED (0x00): De aangevraagde wisseling van de power-state is succesvol uitgevoerd [SWS_Pwm_00165].
  • PWM_NOT_INIT (0x01): De PWM-module is nog niet geïnitialiseerd [SWS_Pwm_00165].
  • PWM_SEQUENCE_ERROR (0x02): De aanroepsequentie van de API is niet toegestaan [SWS_Pwm_00165].
  • PWM_HW_FAILURE (0x03): Een hardwarefout verhindert het aannemen van de vereiste energietoestand [SWS_Pwm_00165].
  • PWM_POWER_STATE_NOT_SUPP (0x04): De aangevraagde toestand wordt niet ondersteund door de module [SWS_Pwm_00165].
  • PWM_TRANS_NOT_POSSIBLE (0x05): Een directe toestandsovergang is niet mogelijk of het hardware-randapparaat is nog bezig [SWS_Pwm_00165].

Aanroepers moeten het resultaat evalueren om vast te stellen of een toestandsverandering direct van kracht is geworden. Interpretatie: Het type fungeert vermoedelijk typisch als retourwaarde of uitgangsparameter van overeenkomstige power-managementfuncties om bovenliggende modules te informeren over overgangsconflicten of hardware-blokkades. Vraag Q-fd06829e5c030906 (open)

Deze tekst is gegenereerd door een AI en dient als oriëntatiehulp. Doorslaggevend is de AUTOSAR-specificatie.

Implementer's Guide volgt (complexiteit I1)

type Pwm_PowerStateType [SWS_Pwm_00197] 📄 PDF

Power state currently active or set as target power state.

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: b1411c45ba56 Herkomst Open vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

Het opsommingstype Pwm_PowerStateType dient in de module PWM ter beschrijving van energietoestanden [SWS_Pwm_00197]. Het representeert ofwel de momenteel actieve bedrijfstoestand ofwel een nieuw als doel opgegeven vermogenstoestand van de driver [SWS_Pwm_00197]. Dit datatype wordt beschikbaar gesteld via het headerbestand Pwm.h [SWS_Pwm_00197].

De specificatie definieert voor de opsomming de volgende waarden en waardebereiken [SWS_Pwm_00197]:

  • PWM_FULL_POWER (waarde 0x00): Markeert de toestand van vol vermogen (“Full Power”) [SWS_Pwm_00197].
  • Waardebereik 1..255: Definieert getrapte vermogensmodi met stapsgewijs afnemend energieverbruik (“power modes with decreasing power consumptions”) [SWS_Pwm_00197].

Met betrekking tot de gebruikscontext fungeert het type vermoedelijk als overdrachtsparameter bij het aanvragen van een energiebesparingsmodus alsook als retourwaarde bij statusopvragingen, aangezien het type zowel actieve als doel-toestanden afbeeldt [SWS_Pwm_00197]. Vraag Q-f0423f8b958d7e91 (open) Concrete API-functies, foutafhandelingen (DET/DEM) en gelijktijdigheidsbeperkingen zijn voor dit datatype in het voorliggende specificatie-uittreksel niet opgenomen en derhalve weggelaten [SWS_Pwm_00197].

Deze tekst is door een AI gegenereerd op basis van de AUTOSAR-specificatie R20-11.

Implementer's Guide volgt (complexiteit I1)

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/CP_MOD_Pwm
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_Pwm@rel:R20-11#04d19a7e
Content hash
04d19a7e
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_PWMDriver.pdf#nameddest=SWS_Pwm_00095

Initialisatie en status

Pwm_DeInit functie

Service for PWM De - Initialization.

void Pwm_DeInit (void);

Service returns the version information of this module.

void Pwm_GetVersionInfo (Std_VersionInfoType* versioninfo);
Pwm_Init functie

Service for PWM initialization.

void Pwm_Init (const Pwm_ConfigType* ConfigPtr);

Diensten · Set…

Service sets the duty cycle of the PWM channel.

void Pwm_SetDutyCycle (Pwm_ChannelType ChannelNumber, uint16 DutyCycle);

Service sets the PWM output to the configured Idle state.

void Pwm_SetOutputToIdle (Pwm_ChannelType ChannelNumber);

Service sets the period and the duty cycle of a PWM channel

void Pwm_SetPeriodAndDuty (Pwm_ChannelType ChannelNumber, Pwm_PeriodType Period, uint16 DutyCycle);

This API configures the Pwm module so that it enters the already prepared power st ate, chosen between a predefined set of configured ones.

Std_ReturnType Pwm_SetPowerState (Pwm_PowerStateRequestResultType* Result);

Diensten · Get…

This API returns the current power state of the PWM HW unit. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_PWMDriver

Std_ReturnType Pwm_GetCurrentPowerState (Pwm_PowerStateType* CurrentPowerState, Pwm_PowerStateRequestResultType* Result);

Service to read the internal state of the PWM out put signal.

Pwm_OutputStateType Pwm_GetOutputState (Pwm_ChannelType ChannelNumber);

This API returns the Target power state of the PWM HW unit.

Std_ReturnType Pwm_GetTargetPowerState (Pwm_PowerStateType* TargetPowerState, Pwm_PowerStateRequestResultType* Result);

Diensten · Overige

The API shall be invoked by the PWM Driver when the requested power state preparation for mode <#Mode> is completed.

void IoHwAb_Pwm_NotifyReadyForPowerState<#Mode> (void);

Service to disable the PWM signal edge notification.

void Pwm_DisableNotification (Pwm_ChannelType ChannelNumber);

Service to enable the PWM signal edge notification according to notification pa rameter.

void Pwm_EnableNotification (Pwm_ChannelType ChannelNumber, Pwm_EdgeNotificationType Notification);

This API is cyclically called and supervises the power state transitions, checking for the readiness of the module and issuing the callbacks Io Hw Ab_ Pwm_ Notify Ready For Power State (see Pwm Power State Ready Cb k Ref configuration parameter). AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_PWMDriver

void Pwm_Main_PowerTransitionManager (void);

The Pwm module shall call the function Pwm_ Notification_<#Channel> accordingly to the last call of Pwm_ Enable Notification for channel <#Channel>.

void Pwm_Notification_<#Channel> (void);

This API starts the needed process to allow the PWM HW module to enter the requested power state. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_PWMDriver

Std_ReturnType Pwm_PreparePowerState (Pwm_PowerStateType PowerState, Pwm_PowerStateRequestResultType* Result);

Typen

Defines the class of a PWM channel

Nume ric identifier of a PWM channel.

This is the type of data structure containing the initialization data for the PWM driver.

Definition of the type of edge notification of a PWM channel.

Output state of a PWM channel.

Definition of the period of a PWM channel.

Result of the requests related to power state transitions.

Power state currently active or set as target power state.