DEENESPTFRRUARHIKOZHNL

PWM Driver (Pwm)

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

Guide du moduleGÉNÉRÉ PAR IA

Commande canal par canal les sorties modulées en largeur d'impulsion du matériel du microcontrôleur via la période et le rapport cyclique.
GÉNÉRÉ PAR IA non vérifié Modèle : claude-opus-5-5 · Effort : high · Température : non réglable · Prompt : 346ede702b24 Provenance Questions ouvertes (1)
Ancre causale : R20-11 Valable à partir de R20-11 Synthétisé pour cette version de spécification.
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Commande canal par canal les sorties modulées en largeur d'impulsion du matériel du microcontrôleur via la période et le rapport cyclique.

En tant que module MCAL, le pilote PWM commande canal par canal les sorties modulées en largeur d'impulsion du microcontrôleur et accède pour cela directement à ses registres. Selon Pwm_Init, les Pwm Users définissent le rapport cyclique et, pour les canaux à période variable, également la période. Ils peuvent commuter les sorties vers l'état de repos (idle) et activer ou désactiver les notifications de front [SWS_Pwm_91000]. En option, le pilote gère les changements d'état de puissance en deux phases via une préparation et une application. En présence d'une détection d'erreurs active, il signale les erreurs telles qu'une initialisation manquante ou des canaux non valides et n'exécute alors aucune opération [SWS_Pwm_00201].

Le pilote PWM est un module MCAL et commande les sorties modulées en largeur d'impulsion du microcontrôleur via ses registres. Il n'a donc pas besoin d'interfaces de modules sous-jacents (SWS PWM Driver p. 44). Il est initialisé de manière synchrone avec Pwm_Init et un pointeur vers le jeu de configuration [SWS_Pwm_00095], que le gestionnaire d'état du calculateur (ECU State Manager) appelle en tant qu'interface d'initialisation optionnelle (SWS EcuM p. 152). Il est typiquement utilisé par l'IoHwAb, par exemple par un pilote d'étage de puissance (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 Signal PWM (point de lecture de Pwm_GetOutputState avant la logique de port)

Diagramme de contexte : EcuM initialise le pilote, le Pwm User le pilote, et le pilote renvoie des notifications et des erreurs. Sources : [SWS_Pwm_00105], [SWS_Pwm_00198], [SWS_Pwm_00104]

La commande s'effectue via un rapport cyclique sur 16 bits, où 0x8000 correspond à 100 % (SWS PWM Driver p. 18). Les principaux services :

  • Pwm_SetDutyCycle modifie le rapport cyclique [SWS_Pwm_91000]. À 0 % et 100 %, il applique un niveau statique en fonction de la polarité.
  • Pwm_SetPeriodAndDuty modifie en outre la période, mais uniquement pour les canaux de la classe PWM_VARIABLE_PERIOD [SWS_Pwm_00110].
  • Pwm_SetOutputToIdle bascule immédiatement vers le niveau de repos (idle) [SWS_Pwm_91002].
  • Pwm_GetOutputState lit le niveau interne [SWS_Pwm_00100].
kanal init après Pwm_Init (état initial configuré) mod Modulation (0 % < Tastgrad < 100 %) init->mod Konfiguration: Modulation stat niveau statique (0 % : inverse de la polarité, 100 % : identique à la polarité) init->stat Configuration : bas ou haut mod->mod Pwm_SetPeriodAndDuty (uniquement 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 (réactivation en cas de période variable)

Diagramme d'état : un canal bascule par API entre la modulation, un niveau statique et l'état de repos (idle). Sources : [SWS_Pwm_91000], [SWS_Pwm_91001], SWS PWM Driver p. 31

Les notifications de front sont activées canal par canal avec Pwm_EnableNotification [SWS_Pwm_91004] et parviennent au Pwm User sous forme de Pwm_Notification_<#Channel> [SWS_Pwm_00105]. En option, le pilote gère également les états de puissance en deux phases. Pwm_PreparePowerState lance la préparation [SWS_Pwm_00183], que l'appel cyclique Pwm_Main_PowerTransitionManager finalise [SWS_Pwm_00189]. Ensuite, Pwm_SetPowerState applique l'état [SWS_Pwm_00166].

Lorsque la détection d'erreurs est active, les fonctions signalent des erreurs telles que PWM_E_UNINIT, PWM_E_PARAM_CHANNEL ou PWM_E_PERIOD_UNCHANGEABLE [SWS_Pwm_00201] et retournent sans effet (SWS PWM Driver p. 44). Dans ces cas, Pwm_GetOutputState renvoie PWM_LOW [SWS_Pwm_30051]. Si Pwm_SetPowerState est appelé alors que le pilote est encore en cours d'utilisation, l'erreur d'exécution PWM_E_NOT_DISENGAGED est générée [SWS_Pwm_00202].

Rôle dans le MCAL : pilote entre l'unité PWM et le Pwm User

Le pilote PWM encapsule les sorties modulées en largeur d'impulsion du microcontrôleur. En tant que module de la couche MCAL, il accède directement aux registres du microcontrôleur et ne requiert donc aucune interface des modules inférieurs (SWS PWM Driver p. 44). Pour la même raison, il ne fournit pas de callbacks pour les couches inférieures (SWS PWM Driver p. 40) et ne propose pas non plus d'interfaces de service (SWS PWM Driver p. 44). Ses services sont disponibles via Pwm.h, tels que Pwm_Init [SWS_Pwm_00095], Pwm_SetDutyCycle [SWS_Pwm_91000] et Pwm_GetOutputState [SWS_Pwm_00100]. Il importe les types standard Std_ReturnType et Std_VersionInfoType depuis Std_Types.h [SWS_Pwm_00094].

L'ECU State Manager répertorie Pwm_Init parmi ses interfaces d'initialisation optionnelles (SWS EcuM p. 152). Dans le cas d'application d'un étage de sortie de puissance, un pilote d'étage de puissance de l'IoHwAb appelle des services de PWM, DIO et SPI, ajustant ainsi notamment des tensions et des fréquences (SWS IoHwAb p. 37). Dans le sens inverse, le pilote appelle deux types de fonctions : les notifications spécifiques au canal Pwm_Notification_<#Channel> [SWS_Pwm_00105] et, dans le cadre de la gestion de puissance, IoHwAb_Pwm_NotifyReadyForPowerState<#Mode> [SWS_Pwm_00198]. Il signale optionnellement les erreurs de développement via Det_ReportError [SWS_Pwm_00104]. Si le matériel propose des mécanismes différents pour différents canaux, cela n'est pas abstrait par des infixes d'API spécifiques au fabricant, mais via le numéro de canal (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 Signal PWM (point de lecture de Pwm_GetOutputState avant la logique de port)

Diagramme de contexte : le pilote Pwm est initialisé par EcuM et exploité par le Pwm User. Il est appelé cycliquement par l'ordonnanceur (scheduler), transmet des notifications au Pwm User ainsi que des erreurs à DET, et commande l'unité PWM via ses registres. Sources : [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

Modèle de signal : période, rapport cyclique, polarité et classes de canaux

Un canal est adressé via l'identifiant numérique Pwm_ChannelType [SWS_Pwm_00106]. La période est du type Pwm_PeriodType, un type spécifique à l'implémentation de 8 à 32 bits [SWS_Pwm_00107]. Trois concepts déterminent le signal (SWS PWM Driver p. 9) :

  • La polarité définit le niveau initial de chaque période.
  • Le rapport cyclique indique la proportion de ce niveau initial sur la période.
  • L'état de repos (idle) est l'état initial après Pwm_SetOutputToIdle ou Pwm_DeInit.

Le schéma de description du signal compare les deux polarités PWM_HIGH et PWM_LOW (SWS PWM Driver p. 7).

Le rapport cyclique est une valeur sur 16 bits. 0x0000 représente 0 % et 0x8000 100 %. La spécification mentionne AbsoluteDutyCycle = ((uint32)AbsolutePeriodTime * RelativeDutyCycle) >> 15; comme aide à l'implémentation (SWS PWM Driver p. 18). En conséquence, Pwm_SetDutyCycle et Pwm_SetPeriodAndDuty limitent le paramètre DutyCycle à Min=0x0000 et Max=0x8000 [SWS_Pwm_91000] [SWS_Pwm_91001].

La classe de canal Pwm_ChannelClassType définit ce qu'un canal est autorisé à modifier au moment de l'exécution [SWS_Pwm_00110] :

  • PWM_VARIABLE_PERIOD : la période et le rapport cyclique sont modifiables.
  • PWM_FIXED_PERIOD : seul le rapport cyclique est modifiable.
  • PWM_FIXED_PERIOD_SHIFTED : période fixe et décalée ne pouvant pas être modifiée ; disponible uniquement si le matériel le prend en charge.

Le schéma relatif à la période décalée montre des canaux ayant la même période, dont le début de période est décalé d'une durée fixe pour chacun (SWS PWM Driver p. 23).

Cycle de vie et commande du signal : de Pwm_Init à l'état de repos (idle)

Pwm_Init est synchrone et non réentrante. La fonction reçoit avec ConfigPtr un pointeur vers le jeu de configuration [SWS_Pwm_00095]. Son type Pwm_ConfigType a un contenu spécifique au matériel [SWS_Pwm_00111]. D'après le schéma d'initialisation, les sorties se trouvent ensuite à l'état bas, à l'état haut ou dans l'état de modulation, selon la configuration. Les notifications n'apparaissent qu'après le premier appel de Pwm_EnableNotification (SWS PWM Driver p. 46). Si Pwm_Init est appelée à nouveau sur un pilote déjà initialisé, l'erreur de développement PWM_E_ALREADY_INITIALIZED doit être signalée [SWS_Pwm_50002].

Pwm_DeInit est également synchrone et non réentrante [SWS_Pwm_00096]. La fonction désinitialise le module, place les sorties dans l'état de repos (idle) et désactive les interruptions PWM ainsi que les notifications de front. Elle peut être activée et désactivée via PwmDeInitApi (SWS PWM Driver p. 27). Interprétation : par la suite, le module devrait à nouveau être considéré comme non initialisé, de sorte qu'un nouvel appel de Pwm_Init soit autorisé. Question Q-a892974ddbe644e0 (ouverte)

lebenszyklus start commencer uninit non initialisé start->uninit uninit->uninit autre API → PWM_E_UNINIT (Pwm_GetOutputState renvoie PWM_LOW) init initialisé (canaux selon la configuration : bas, haut ou modulation) uninit->init Pwm_Init(ConfigPtr) init->uninit Pwm_DeInit (sorties Idle, interruptions et notifications désactivées) Interprétation : état suivant init->init Pwm_Init → PWM_E_ALREADY_INITIALIZED

Diagramme d'état : cycle de vie du module avec initialisation, désinitialisation et erreurs en cas d'ordre d'appel incorrect. Le retour à l'état « non initialisé » après Pwm_DeInit constitue une interprétation. Sources : [SWS_Pwm_00095], [SWS_Pwm_00096], [SWS_Pwm_50002], [SWS_Pwm_20002], [SWS_Pwm_30051], SWS PWM Driver p. 27

En fonctionnement, Pwm_SetDutyCycle définit le rapport cyclique d'un canal [SWS_Pwm_91000]. À 0 % et 100 %, la sortie est définie de manière statique (SWS PWM Driver p. 28) :

  • À 0 %, le niveau est l'inverse de la polarité configurée.
  • À 100 %, le niveau correspond à la polarité.
  • Pour les valeurs intermédiaires, le signal est modulé conformément à la période, au rapport cyclique et à la polarité.

D'après le schéma, le pilote applique le nouveau rapport cyclique à la fin de la période en cours si l'implémentation le prend en charge, sinon immédiatement (SWS PWM Driver p. 37).

Pwm_SetPeriodAndDuty définit conjointement la période et le rapport cyclique [SWS_Pwm_91001]. Trois règles s'appliquent alors (SWS PWM Driver p. 30) :

  • La période est actualisée à la fin de la période si l'implémentation le prend en charge et que cela est configuré via PwmPeriodUpdatedEndperiod.
  • Les pointes parasites (glitches) en sortie doivent être supprimées.
  • Le rapport cyclique est transmis conjointement afin que la fréquence et le rapport cyclique soient en cohérence mutuelle.
tastgrad a Appel de Pwm_SetDutyCycle ou Pwm_SetPeriodAndDuty (contrôles généraux réussis) k Pwm_SetPeriodAndDuty? a->k c Kanalklasse = PWM_VARIABLE_PERIOD? k->c Oui d angeforderter Tastgrad? k->d nein (Pwm_SetDutyCycle) e Signaler PWM_E_PERIOD_UNCHANGEABLE, quitter la fonction sans action c->e non (lorsque la détection d'erreurs est active) p Définir la période et le rapport cyclique (période en fin de période si PwmPeriodUpdatedEndperiod ; supprimer les pointes transitoires) c->p Oui z Sortie statique : inverse de la polarité d->z 0x0000 (0 %) h Sortie statique : égale à la polarité d->h 0x8000 (100 %) m Modulation selon la période, le rapport cyclique et la polarité d->m dazwischen

Diagramme d'activité : traitement de Pwm_SetDutyCycle et Pwm_SetPeriodAndDuty avec vérification de la classe de canal et traitement particulier de 0 % et 100 %. Sources : [SWS_Pwm_40002], SWS PWM Driver p. 28, SWS PWM Driver p. 30, SWS PWM Driver p. 44

Pwm_SetOutputToIdle place immédiatement la sortie dans l'état de repos (idle) configuré [SWS_Pwm_91002]. Les canaux à période variable sont ensuite réactivés via Pwm_SetPeriodAndDuty (SWS PWM Driver p. 31). Le schéma « Setting Pwm output to idle » illustre précisément cette séquence (SWS PWM Driver p. 50). Pwm_GetOutputState lit l'état de sortie interne de manière synchrone sous forme de PWM_HIGH ou PWM_LOW [SWS_Pwm_00100] [SWS_Pwm_00108]. Un schéma de la spécification des exigences situe la valeur lue à la sortie de l'unité PWM, c'est-à-dire en amont de la logique de port et non sur la broche physique (RS PWM Driver p. 14).

kanal init après Pwm_Init (état initial configuré) mod Modulation (0 % < Tastgrad < 100 %) init->mod Konfiguration: Modulation stat niveau statique (0 % : inverse de la polarité, 100 % : identique à la polarité) init->stat Configuration : bas ou haut mod->mod Pwm_SetPeriodAndDuty (uniquement 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 (réactivation en cas de période variable)

Diagramme d'états : états de sortie d'un canal (modulation, niveau statique, Idle) et APIs effectuant les transitions entre eux. Sources : [SWS_Pwm_91000], [SWS_Pwm_91001], [SWS_Pwm_91002], SWS PWM Driver p. 28, SWS PWM Driver p. 31, SWS PWM Driver p. 46

Notifications de front par canal

Avec Pwm_EnableNotification, le Pwm User active la notification pour un canal. Le paramètre de type Pwm_EdgeNotificationType sélectionne PWM_RISING_EDGE, PWM_FALLING_EDGE ou PWM_BOTH_EDGES [SWS_Pwm_91004] [SWS_Pwm_00109]. La fonction ignore les interruptions en attente (SWS PWM Driver p. 35). Tout comme Pwm_DisableNotification [SWS_Pwm_91003], elle n'existe que si PwmNotificationSupported est activé (SWS PWM Driver p. 34).

Le pilote appelle la fonction configurée Pwm_Notification_<#Channel> conformément au dernier appel de Pwm_EnableNotification ou Pwm_DisableNotification. Ce faisant, il réinitialise le drapeau d'interruption associé (SWS PWM Driver p. 42). Le callback ne prend aucun paramètre et est déclaré via Pwm_Externals.h. Son caractère réentrant dépend de l'implémentation du Pwm User [SWS_Pwm_00105].

Notification de front d'un canal PWMPwm UserPwmPwm_Init(const Pwm_ConfigType*)Pwm_Init()Aucune notification jusqu'àersten Pwm_EnableNotificationPwm_EnableNotification(ChannelNumber,PWM_RISING_EDGE | PWM_FALLING_EDGE | PWM_BOTH_EDGES)anstehende Interrupts verwerfenPwm_EnableNotification()loopà chaque front sélectionnéRéinitialiser le drapeau d'interruptionPwm_Notification_<#Channel>()Pwm_DisableNotification(ChannelNumber)Pwm_DisableNotification()Aucune autre notification

Diagramme de séquence : déroulement depuis l'initialisation jusqu'à l'absence d'autres callbacks, en passant par l'activation et la désactivation de la notification de front. Sources : [SWS_Pwm_91004], [SWS_Pwm_91003], [SWS_Pwm_00105], SWS PWM Driver p. 52, SWS PWM Driver p. 42

États de puissance du périphérique PWM

La gestion des états de puissance est une fonctionnalité optionnelle. Elle se limite au périphérique PWM et suppose que l'application, la gestion des modes et l'IoHwAb satisfont déjà aux contraintes de niveau supérieur (SWS PWM Driver p. 17). Si PwmLowPowerStatesSupport est actif, les quatre APIs de Power State sont générées (SWS PWM Driver p. 16). Pwm_PowerStateType prend en charge PWM_FULL_POWER (0x00) ainsi que la plage 1..255 pour les états à consommation décroissante. En R20-11, le type est défini sous forme d'énumération [SWS_Pwm_00197]. Une version ultérieure le définit en revanche comme un type dérivé de uint8 (SWS PWM Driver p. 25).

Le changement d'état de puissance s'effectue en deux phases :

  1. Pwm_PreparePowerState démarre la préparation et fournit dans le paramètre de résultat PWM_SERVICE_ACCEPTED ou un motif de refus [SWS_Pwm_00183] [SWS_Pwm_00165]. Ce qui ne peut pas être terminé immédiatement est pris en charge par Pwm_Main_PowerTransitionManager [SWS_Pwm_00189] [SWS_Pwm_00190], appelée périodiquement. Sa fréquence d'appel est variable, et elle n'envoie de callbacks qu'en mode asynchrone (SWS PWM Driver p. 41). Le pilote signale la fin de la préparation par IoHwAb_Pwm_NotifyReadyForPowerState<#Mode> [SWS_Pwm_00198].
  2. Pwm_SetPowerState fait passer le matériel dans l'état préparé [SWS_Pwm_00166]. Les actions préalables, telles que le passage de tous les canaux à IDLE et la désinscription de toutes les notifications, doivent déjà avoir été effectuées par les SWC responsables, comme l'IoHwAb. La fonction n'exécute pas d'états intermédiaires implicites (SWS PWM Driver p. 36).
powerzustand uninit non initialisé (résultat PWM_NOT_INIT) stabil stabil (aktueller = Zielzustand) uninit->stabil Pwm_Init stabil->stabil Pwm_SetPowerState sans préparation ou Prepare avec l'état actuel → PWM_SEQUENCE_ERROR stabil->stabil non pris en charge / non accessible directement → PWM_POWER_STATE_NOT_SUPP / PWM_TRANS_NOT_POSSIBLE vorb Préparation en cours (cible ≠ état actuel) 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)

Diagramme d'états : changement d'état de puissance en deux phases avec préparation, finalisation et définition, ainsi que les erreurs de séquence. Sources : [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] renvoie l'état actuel, Pwm_GetTargetPowerState [SWS_Pwm_00180] l'état demandé. Tant qu'aucune transition n'est en cours, les deux concordent (SWS PWM Driver p. 38). La spécification de l'IoHwAb montre l'interaction entre BswM, RTE/SchM, IoHwAb, ADC et PWM pour le cas asynchrone (SWS IoHwAb p. 60). Dans le cas synchrone, la préparation est déjà terminée lorsque l'API de préparation retourne (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_ACCEPTEDLa préparation se poursuit en arrière-planUse 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()Prérequis : tous les canaux IDLE,Benachrichtigungen abgemeldetPwm_SetPowerState(&Result)E_OK / PWM_SERVICE_ACCEPTEDPwm_GetCurrentPowerState(...)E_OK, CurrentPowerState

Diagramme de séquence : passage asynchrone à un état basse consommation, commandé par l'IoHwAb. Le déroulement est simplifié et l'ADC a été omis. Sources : [SWS_Pwm_00183], [SWS_Pwm_00189], [SWS_Pwm_00198], [SWS_Pwm_00166], SWS IoHwAb p. 57, SWS IoHwAb p. 60

Configuration, conteneur de canaux et concurrence

Les paramètres obligatoires d'un canal sont le canal matériel assigné, les valeurs par défaut de la période et du rapport cyclique, la polarité, le niveau au repos (Idle) et la classe de canal. Le déphasage, le canal de référence et les propriétés spécifiques au microcontrôleur sont optionnels, dans la mesure où le matériel les propose (SWS PWM Driver p. 25). Dans le modèle de configuration, PwmChannelConfigSet contient au moins un PwmChannel, et PwmDutycycleDefault est limité de 0 à 0x8000 (ECUC-Parameter p. 545). PwmChannelClass est mappé sur Pwm_ChannelClassType. PwmChannelId est assigné au nom symbolique du conteneur de canaux (SWS PWM Driver p. 57).

Les services optionnels sont activés et désactivés par configuration : PwmSetOutputToIdle (SWS PWM Driver p. 31), PwmGetOutputState (SWS PWM Driver p. 33) ainsi que les PwmDeInitApi et PwmNotificationSupported mentionnés ci-dessus.

En matière de concurrence :

  • Les services de canal tels que Pwm_SetDutyCycle sont réentrants pour des numéros de canaux différents [SWS_Pwm_91000].
  • Les APIs d'état de puissance ne sont pas réentrantes [SWS_Pwm_00183].
  • Le module doit rejeter les configurations comportant des assignations de partitions que l'implémentation ne prend pas en charge [SWS_Pwm_00203].

Les niveaux de réentrance, allant jusqu'à « multi-core reentrant », sont expliqués dans le guide de distribution BSW (BSW Distribution Guide p. 18).

Comportement en cas d'erreur

Si la détection des erreurs de développement est active, les fonctions signalent les erreurs détectées au Default Error Tracer. Elles ignorent ensuite la fonction demandée, afin de ne corrompre ni les données ni les registres matériels (SWS PWM Driver p. 44). Les codes d'erreur sont [SWS_Pwm_00201] :

  • PWM_E_INIT_FAILED (0x10)
  • PWM_E_UNINIT (0x11) pour les appels avant l'initialisation [SWS_Pwm_20002]
  • PWM_E_PARAM_CHANNEL (0x12) pour les canaux non valides [SWS_Pwm_30002]
  • PWM_E_PERIOD_UNCHANGEABLE (0x13) pour les modifications de période sur des canaux à période fixe [SWS_Pwm_40002]
  • PWM_E_ALREADY_INITIALIZED (0x14)
  • PWM_E_PARAM_POINTER (0x15) pour un paramètre NULL passé à Pwm_GetVersionInfo

Pwm_GetOutputState doit toujours renvoyer une valeur. Avant l'initialisation ou en cas de canal non valide, il s'agit de PWM_LOW [SWS_Pwm_30051].

pruefung a Appel d'une API de canal det Entwicklungsfehlererkennung aktiv? a->det ini Modul initialisiert? det->ini Oui ok Exécuter le service det->ok Non ch ChannelNumber valide ? ini->ch Oui u PWM_E_UNINIT an Det melden ini->u Non pc PWM_E_PARAM_CHANNEL an Det melden ch->pc Non ch->ok Oui skip Quitter la fonction sans action (Pwm_GetOutputState renvoie PWM_LOW) u->skip pc->skip

Diagramme d'activités : vérifications générales des APIs de canal lorsque la détection des erreurs de développement est active, avec interruption sans effet. Sources : [SWS_Pwm_20002], [SWS_Pwm_30002], [SWS_Pwm_30051], SWS PWM Driver p. 44

Les APIs d'état de puissance signalent en outre les erreurs via Std_ReturnType et le type de résultat Pwm_PowerStateRequestResultType. Les valeurs possibles sont PWM_NOT_INIT, PWM_SEQUENCE_ERROR, PWM_HW_FAILURE, PWM_POWER_STATE_NOT_SUPP et PWM_TRANS_NOT_POSSIBLE [SWS_Pwm_00165]. Pour un état non pris en charge, PWM_E_POWER_STATE_NOT_SUPPORTED est en outre défini [SWS_Pwm_00174], et pour un état non directement accessible, PWM_E_TRANSITION_NOT_POSSIBLE [SWS_Pwm_00175].

Si Pwm_SetPowerState est appelée alors que des canaux ne sont pas encore à IDLE ou que des notifications sont enregistrées, l'erreur d'exécution PWM_E_NOT_DISENGAGED (0x16) survient [SWS_Pwm_00202] (SWS PWM Driver p. 20). Pwm_Main_PowerTransitionManager retourne simplement sans initialisation et ne signale délibérément aucune erreur de développement. La raison : des tâches cycliques peuvent déjà s'exécuter avant la fin de l'initialisation (SWS PWM Driver p. 41).

Preuves détaillées supplémentaires

Guide généré par IA sur la base des exigences et passages de documents fournis dans le payload pour AUTOSAR Classic R20-11. Seule la spécification fait foi.

PWM Driver (Pwm)

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

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

fonction Pwm_Init [SWS_Pwm_00095] 📄 PDF

void Pwm_Init (const Pwm_ConfigType* ConfigPtr);

Service for PWM initialization.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 0770524664d2 Provenance Questions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

La fonction synchrone Pwm_Init sert de service central pour l'initialisation de l'ensemble du pilote PWM ([SWS_Pwm_00095]). Elle est fournie via le fichier d'en-tête Pwm.h et possède l'ID de service hexadécimal 0x00 ([SWS_Pwm_00095]). Le seul paramètre d'entrée transmis est ConfigPtr, qui fait office de pointeur vers le jeu de configuration spécifique au pilote de type Pwm_ConfigType ([SWS_Pwm_00095]). L'interface ne possède pas de valeur de retour et n'utilise ni paramètre de sortie ni paramètre d'entrée/sortie ([SWS_Pwm_00095]).

En ce qui concerne le comportement à l'exécution, Pwm_Init est synchrone et spécifiée comme non réentrante (Non Reentrant) ([SWS_Pwm_00095]). Un appel simultané ou interruptif de cette fonction depuis plusieurs threads, tâches ou routines d'interruption est donc strictement interdit. L'exécution devrait typiquement avoir lieu une seule fois lors du démarrage du système dans la phase d'initialisation du calculateur avant toute utilisation ultérieure des canaux PWM. Question Q-ff3f1cf769dfed70 (ouverte)

Pour sécuriser l'ordre d'appel admissible, le module surveille son état : si le service Pwm_Init est appelé alors que le pilote PWM est déjà initialisé, le module signale l'erreur de développement PWM_E_ALREADY_INITIALIZED avec l'identifiant 0x14 ([SWS_Pwm_50002]). Une initialisation répétée est ainsi considérée comme une erreur.

Ce texte a été généré par une IA. Les spécifications AUTOSAR font foi.

Guide de l'implémenteur à venir (complexité I1)

fonction Pwm_DeInit [SWS_Pwm_00096] 📄 PDF

void Pwm_DeInit (void);

Service for PWM De - Initialization.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : e8e4048754f1 Provenance Questions ouvertes (2)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Utilisation et signature

La fonction Pwm_DeInit sert de service de désinitialisation du pilote PWM ([SWS_Pwm_00096]). Elle est fournie via le fichier d'en-tête Pwm.h et porte le service ID 0x01 ([SWS_Pwm_00096]). L'interface possède la signature void Pwm_DeInit(void), ne prend aucun paramètre d'entrée ni de sortie et ne renvoie aucune valeur de retour à l'appelant ([SWS_Pwm_00096]).

L'appel de Pwm_DeInit est exécuté de manière synchrone ([SWS_Pwm_00096]). Le flux de contrôle appelant reste ainsi dans la fonction jusqu'à ce que les étapes de désinitialisation du module PWM soient terminées.

Concurrence et restrictions

Les contraintes suivantes s'appliquent à l'exécution en matière de concurrence :

  • Non réentrant : Le service est spécifié comme non réentrant ([SWS_Pwm_00096]). Un appel simultané ou avec interruption depuis plusieurs threads, tâches ou ISR est non autorisé.
  • Contexte d'appel : En raison de la sémantique synchrone et de l'absence de réentrance, l'appel devrait typiquement avoir lieu dans le cadre d'une phase d'arrêt (shutdown) contrôlée au niveau tâche. Question Q-f1afc58637cba5cf (ouverte)

Gestion des erreurs

Dans la spécification de Pwm_DeInit, ni valeurs de retour ni codes d'erreur spécifiques ne sont définis ([SWS_Pwm_00096]). Les éventuelles erreurs d'exécution ou d'état devraient vraisemblablement être journalisées ou interceptées via des mécanismes de surveillance internes au module tels que l'interface de développement (DET), étant donné qu'aucun retour d'erreur direct n'est prévu via l'interface de la fonction. Question (ouverte)

Ce texte a été généré automatiquement à partir de la spécification AUTOSAR Classic R20-11.

fonction Pwm_DisableNotification [SWS_Pwm_91003] 📄 PDF

void Pwm_DisableNotification (Pwm_ChannelType ChannelNumber);

Service to disable the PWM signal edge notification.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 2d97fc6435bd Provenance Questions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

La fonction Pwm_DisableNotification sert à désactiver la notification de front (Signal Edge Notification) d'un canal PWM déterminé [SWS_Pwm_91003]. La déclaration de la fonction et les définitions de types associées sont mises à disposition via le fichier d'en-tête Pwm.h [SWS_Pwm_91003].

Paramètres et valeur de retour

L'interface possède l'ID de service 0x06 et présente les caractéristiques de signature suivantes [SWS_Pwm_91003] :

  • ChannelNumber (in) : Identifiant numérique du canal PWM à configurer, de type Pwm_ChannelType [SWS_Pwm_91003].

Il n'existe ni paramètres d'entrée/sortie (inout) ni paramètres de sortie purs (out) [SWS_Pwm_91003]. La fonction ne renvoie aucune valeur de retour (void) à l'appelant [SWS_Pwm_91003].

Comportement de synchronisation et concurrence

L'appel de Pwm_DisableNotification s'exécute de manière asynchrone [SWS_Pwm_91003]. En ce qui concerne le comportement multithreading, le service est réentrant tant que des numéros de canal distincts sont adressés [SWS_Pwm_91003].

Interprétation : Étant donné que la réentrance est explicitement limitée à des canaux distincts, la fonction n'est probablement pas réentrante pour un même canal PWM [SWS_Pwm_91003]. Question Q-005e97fd25679da7 (ouverte) Les appels simultanés pour le canal identique devraient donc devoir être synchronisés les uns par rapport aux autres du côté de l'appelant.

Notes d'utilisation organisées sur la base de la spécification AUTOSAR Classic R20-11.

fonction 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.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 0c9ffc1eca13 Provenance Questions ouvertes (2)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Utilisation

La fonction Pwm_EnableNotification sert à activer des notifications de front de signal pour un canal PWM déterminé conformément au paramètre de notification transmis [SWS_Pwm_91004]. Le service est fourni via le fichier d'en-tête Pwm.h, possède le service ID 0x07 et ne renvoie aucune valeur de retour (void) à l'appelant [SWS_Pwm_91004].

Lors de l'appel de l'interface, deux paramètres d'entrée obligatoires doivent être transmis [SWS_Pwm_91004] :

  • ChannelNumber (de type Pwm_ChannelType) : Identifiant numérique du canal PWM à adresser [SWS_Pwm_91004].
  • Notification (de type Pwm_EdgeNotificationType) : Définit le type de notification de front avec les valeurs autorisées PWM_RISING_EDGE, PWM_FALLING_EDGE ou PWM_BOTH_EDGES [SWS_Pwm_91004].

Sémantique et concurrence

L'exécution du service est spécifiée comme asynchrone [SWS_Pwm_91004]. En matière de concurrence, Pwm_EnableNotification est conçu comme réentrant pour des numéros de canal différents [SWS_Pwm_91004]. En cas d'accès simultané ou avec interruption au même canal PWM, le service n'est vraisemblablement pas réentrant ; un tel appel doit donc être sécurisé côté appelant. Question Q-73309ed8589161a3 (ouverte)

Gestion des erreurs et conditions limites

L'extrait de spécification ne définit pour cette fonction ni valeurs de retour spécifiques ni messages d'erreur pour le Development Error Tracer (DET) ou le Diagnostic Event Manager (DEM) [SWS_Pwm_91004]. De même, les prescriptions relatives aux contextes d'appel autorisés ou aux ordonnancements liés aux tâches font défaut. Comme aucune condition préalable n'est mentionnée, l'appel de fonction ne devrait être autorisé qu'après une initialisation réussie du pilote PWM. Question Q-7f428f59a20175c2 (ouverte)

Cette note d'utilisation a été générée automatiquement sur la base de l'extrait de spécification d'AUTOSAR Classic R20-11.

fonction 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.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : b7532b0354d7 Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

La fonction synchrone Pwm_SetPowerState bascule le module PWM dans un état préalablement préparé parmi une sélection préconfigurée de Power-States [SWS_Pwm_00166]. La déclaration est disponible via l'en-tête Pwm.h [SWS_Pwm_00166].

Utilisation et valeurs de retour

La fonction ne prend aucun paramètre d'entrée et transmet le résultat détaillé via le paramètre de pointeur Result de type Pwm_PowerStateRequestResultType* [SWS_Pwm_00166] :

  • Si le mode a pu être changé avec succès, la fonction renvoie E_OK et définit Result à PWM_SERVICE_ACCEPTED [SWS_Pwm_00166].
  • Si la demande est rejetée, l'appel renvoie E_NOT_OK [SWS_Pwm_00166].

Gestion des erreurs

En cas d'erreur (valeur de retour E_NOT_OK), Result spécifie la cause de l'échec [SWS_Pwm_00166] :

  • PWM_NOT_INIT : Le module PWM n'est pas initialisé [SWS_Pwm_00166].
  • PWM_SEQUENCE_ERROR : Une séquence d'appel d'API non autorisée est présente [SWS_Pwm_00166].
  • PWM_HW_FAILURE : Une erreur dans le module matériel empêche l'entrée dans le Power-State demandé [SWS_Pwm_00166].

Concurrence et contraintes

Pwm_SetPowerState est non réentrant (Non Reentrant) et exige, pour éviter une erreur de séquence, que l'état cible ait été préparé avant l'appel [SWS_Pwm_00166].

Ce texte a été généré par une IA sur la base de la spécification AUTOSAR.

Guide de l'implémenteur à venir (complexité I1)

fonction 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

fonction 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

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 50b7f8a853d8 Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Utilisation

La fonction synchrone Pwm_PreparePowerState lance le processus de préparation nécessaire pour que le module matériel PWM puisse passer à un état d'énergie demandé [SWS_Pwm_00183]. L'état cible souhaité est transmis via le paramètre PowerState, tandis que le résultat détaillé est fourni via le pointeur de sortie Result [SWS_Pwm_00183]. Si la préparation a été initiée avec succès, la fonction renvoie E_OK et définit Result à PWM_SERVICE_ACCEPTED [SWS_Pwm_00183].

Gestion des erreurs

Si le service est rejeté, la fonction renvoie E_NOT_OK et signale la cause spécifique via Result [SWS_Pwm_00183] :

  • PWM_NOT_INIT : Le module PWM n'est pas initialisé [SWS_Pwm_00183].
  • PWM_SEQUENCE_ERROR : Séquence d'appel non autorisée, car l'état d'énergie actuel correspond déjà à l'état cible [SWS_Pwm_00183].
  • PWM_POWER_STATE_NOT_SUPP : Le module ne prend pas en charge l'état d'énergie demandé [SWS_Pwm_00183].
  • PWM_TRANS_NOT_POSSIBLE : une transition directe n'est pas possible ou le périphérique matériel est encore occupé [SWS_Pwm_00183].

Concurrence et interaction

La fonction est non réentrante (Non Reentrant) et ne doit donc pas être appelée de manière concurrente pour le même module [SWS_Pwm_00183]. Après une préparation réussie par Pwm_PreparePowerState, des actions en aval ne prenant pas effet immédiatement doivent être exécutées afin de finaliser la transition d'état d'énergie [SWS_Pwm_00190].

Cette note d'utilisation a été générée automatiquement sur la base de la spécification R20-11.

Guide de l'implémenteur à venir (complexité I1)

fonction 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

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 879296577e8e Provenance Questions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

L'interface Pwm_Main_PowerTransitionManager sert à la surveillance cyclique des transitions d'état d'énergie (Power State Transitions) du pilote PWM conformément à [SWS_Pwm_00189]. Elle possède le service ID 0x0d, ne prend aucun paramètre de transmission et ne renvoie aucune valeur de retour (signature void Pwm_Main_PowerTransitionManager(void)).

Dans le cadre de son exécution cyclique, la fonction vérifie la disponibilité opérationnelle du module pour l'état d'énergie respectif. Dès que la disponibilité est établie, elle déclenche les rappels de notification IoHwAb_Pwm_NotifyReadyForPowerState<Mode> qui sont référencés via le paramètre de configuration PwmPowerStateReadyCbkRef [SWS_Pwm_00189].

La fonction est prévue pour un contexte d'appel cyclique et est fournie via le fichier d'en-tête SchM_Pwm.h. Par conséquent, l'appel périodique devrait typiquement avoir lieu dans le contexte de l'ordonnanceur BSW (Schedule Manager) [SWS_Pwm_00189]. Des codes d'erreur spécifiques, des mécanismes de traitement d'erreur via DET ou DEM ainsi que des conditions particulières de réentrance ne sont pas définis dans la spécification de module pour ce service. Question Q-b9b0431e7ccbca88 (ouverte)

Ce texte a été généré par une IA sur la base de la spécification AUTOSAR R20-11.

Guide de l'implémenteur à venir (complexité I1)

fonction 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>.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 6eff8686a5f4 Provenance Questions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

La fonction de notification liée au canal Pwm_Notification_<#Channel> est appelée de manière synchrone par le module PWM dès que l'événement de front configuré pour le canal respectif survient [SWS_Pwm_00105]. La fonction possède la signature void Pwm_Notification_<#Channel>(void), ne prend aucun paramètre de transmission et ne renvoie aucune valeur de retour [SWS_Pwm_00105]. Elle est déclarée dans le fichier Pwm_Externals.h et doit être fournie par l'utilisateur [SWS_Pwm_00105].

L'appel a lieu en fonction du dernier appel de Pwm_EnableNotification pour le canal concerné [SWS_Pwm_00105]. Les événements déclencheurs s'orientent d'après les valeurs de Pwm_EdgeNotificationType, qui distingue les fronts montants (PWM_RISING_EDGE), descendants (PWM_FALLING_EDGE) ou les deux fronts de signal (PWM_BOTH_EDGES) [SWS_Pwm_00109]. Avant la génération de signal et la notification d'événement, le module PWM doit avoir été initialisé via Pwm_Init avec une structure Pwm_ConfigType dépendante du matériel [SWS_Pwm_00095], [SWS_Pwm_00111].

En matière de concurrence, la réentrance de la fonction de rappel est explicitement définie comme dépendant de l'utilisateur (PWM user implementation dependant) [SWS_Pwm_00105]. Le contexte d'exécution exact (par exemple si l'appel s'effectue directement dans une routine de service d'interruption ou dans le contexte de tâche) devrait dépendre de l'implémentation sous-jacente du pilote (interprétation). Question Q-327872e0e8fecb37 (ouverte) Des codes d'erreur spécifiques, des valeurs de retour ou des messages DET ou DEM standardisés n'existent pas pour cette interface de notification [SWS_Pwm_00105].

Ce texte a été créé par une IA et est basé sur la spécification AUTOSAR Classic Release R20-11.

fonction 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.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 23b0f44b508d Provenance Questions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

La fonction IoHwAb_Pwm_NotifyReadyForPower (déclarée dans la syntaxe comme IoHwAb_Pwm_NotifyReadyForPowerState<#Mode>) est mise à disposition via l'en-tête IoHwAb_Pwm.h et sert d'interface de callback dans la gestion de l'alimentation AUTOSAR [SWS_Pwm_00198].

Concernant l'utilisation, les propriétés d'interface et l'interaction système, les prescriptions obligatoires suivantes s'appliquent :

  • Utilisation et contexte d'appel : l'interface possède l'ID de service 0x60 et s'exécute de manière synchrone [SWS_Pwm_00198]. Elle doit impérativement être appelée par le pilote PWM dès que la préparation côté périphérique pour un état de puissance (Power State) demandé d'un mode s'est achevée avec succès [SWS_Pwm_00198].
  • Paramètres et valeurs de retour : la signature de fonction ne définit aucun paramètre d'entrée, d'entrée/sortie ou de sortie et ne possède pas de valeur de retour (void) [SWS_Pwm_00198]. Interprétation : l'affectation au mode de puissance respectif devrait découler directement du nom de fonction spécifique au mode dans le code source. Question Q-ab761160ed91de78 (ouverte)
  • Concurrence et restrictions : la fonction est spécifiée comme non-réentrante (Non Reentrant) [SWS_Pwm_00198]. Les appels ne doivent par conséquent pas s'effectuer en parallèle ou de manière imbriquée au sein du même contexte de pilote.
  • Interaction : dans le déroulement intermodulaire, l'appel signale à l'abstraction matérielle d'E/S de niveau supérieur que l'étage de commande est prêt pour le basculement vers l'état de fonctionnement souhaité [SWS_Pwm_00198].

Dans les sources de spécification, aucun code d'erreur spécifique ni message destiné à DET ou DEM n'est prévu pour cette fonction [SWS_Pwm_00198].

Ce texte a été rédigé par une IA ; toutes les déclarations s'appuient exclusivement sur la spécification AUTOSAR.

Guide de l'implémenteur à venir (complexité I1)

type Pwm_OutputStateType [SWS_Pwm_00108] 📄 PDF

Output state of a PWM channel.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 4d670762d069 Provenance Questions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Le type énuméré Pwm_OutputStateType définit l'état de sortie d'un canal PWM au sein du pilote Classic AUTOSAR Pwm [SWS_Pwm_00108]. La définition de type est mise à disposition via le fichier d'en-tête Pwm.h pour les unités logicielles appelantes et les applications du pilote [SWS_Pwm_00108].

La plage de valeurs de cette énumération distingue deux états du canal clairement définis [SWS_Pwm_00108] :

  • PWM_HIGH (valeur numérique 0x00) : Indique que le canal PWM concerné se trouve à l'état haut [SWS_Pwm_00108].
  • PWM_LOW (valeur numérique 0x01) : Indique que le canal PWM concerné se trouve à l'état bas [SWS_Pwm_00108].

En ce qui concerne le contexte d'appel et le cas d'usage, l'élément lui-même, en tant que type, ne définit aucune fonction d'interface [SWS_Pwm_00108]. Interprétation : Les valeurs devraient typiquement servir de paramètres ou de valeurs de retour lors de fonctions d'API du module, afin de signaler l'état de niveau logique actuel ou souhaité d'un canal. Question Q-9c142d658ab7fcfd (ouverte)

Comme il s'agit d'une définition de type élémentaire, il n'existe aucun traitement d'erreur spécifique relatif à DET ou DEM, ni aucune exigence de réentrance ou d'exécution synchrone dans le périmètre de la spécification [SWS_Pwm_00108].

Ce texte a été généré par une IA sur la base de la spécification AUTOSAR Classic R20-11.

Guide de l'implémenteur à venir (complexité 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.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 615a415d7a52 Provenance Questions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Le type énuméré Pwm_PowerStateRequestResultType fournit le résultat des demandes de changement d'état du mode de gestion d'énergie (Power State Transitions) dans le pilote PWM conformément à [SWS_Pwm_00165]. La définition de type est disponible via l'en-tête Pwm.h [SWS_Pwm_00165].

Le type représente aussi bien la transition réussie que des conditions d'erreur spécifiques [SWS_Pwm_00165] :

  • PWM_SERVICE_ACCEPTED (0x00) : Le changement de Power-State demandé a été exécuté avec succès [SWS_Pwm_00165].
  • PWM_NOT_INIT (0x01) : Le module PWM n'est pas encore initialisé [SWS_Pwm_00165].
  • PWM_SEQUENCE_ERROR (0x02) : La séquence d'appel de l'API est non autorisée [SWS_Pwm_00165].
  • PWM_HW_FAILURE (0x03) : Une erreur matérielle empêche le passage à l'état d'énergie requis [SWS_Pwm_00165].
  • PWM_POWER_STATE_NOT_SUPP (0x04) : L'état demandé n'est pas pris en charge par le module [SWS_Pwm_00165].
  • PWM_TRANS_NOT_POSSIBLE (0x05) : Une transition d'état directe n'est pas possible ou le périphérique matériel est encore occupé [SWS_Pwm_00165].

Les appelants doivent évaluer le résultat afin de déterminer si un changement d'état a pris effet immédiatement. Interprétation : Le type devrait typiquement faire office de valeur de retour ou de paramètre de sortie de fonctions de gestion d'énergie correspondantes, afin d'informer les modules de niveau supérieur de conflits de transition ou de blocages matériels. Question Q-fd06829e5c030906 (ouverte)

Ce texte a été généré par une IA et sert de guide d'orientation. La spécification AUTOSAR fait foi.

Guide de l'implémenteur à venir (complexité I1)

type Pwm_PowerStateType [SWS_Pwm_00197] 📄 PDF

Power state currently active or set as target power state.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : b1411c45ba56 Provenance Questions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Le type énuméré Pwm_PowerStateType sert dans le module PWM à la description d'états d'énergie [SWS_Pwm_00197]. Il représente soit l'état de fonctionnement actuellement actif, soit un nouvel état de puissance défini comme cible du pilote [SWS_Pwm_00197]. Ce type de données est mis à disposition via le fichier d'en-tête Pwm.h [SWS_Pwm_00197].

La spécification définit pour l'énumération les valeurs et plages de valeurs suivantes [SWS_Pwm_00197] :

  • PWM_FULL_POWER (valeur 0x00) : Indique l'état de pleine puissance (« Full Power ») [SWS_Pwm_00197].
  • Plage de valeurs 1..255 : Définit des modes de puissance échelonnés avec une consommation d'énergie décroissant progressivement (« power modes with decreasing power consumptions ») [SWS_Pwm_00197].

Concernant le contexte d'utilisation, le type devrait faire office de paramètre de transmission lors de la demande d'un mode d'économie d'énergie ainsi que de valeur de retour lors de requêtes d'état, car le type représente aussi bien les états actifs que cibles [SWS_Pwm_00197]. Question Q-f0423f8b958d7e91 (ouverte) Des fonctions d'API concrètes, des traitements d'erreur (DET/DEM) ainsi que des restrictions de concurrence ne sont pas contenus pour ce type de données dans le présent extrait de spécification et sont donc omis [SWS_Pwm_00197].

Ce texte a été généré par une IA sur la base de la spécification AUTOSAR R20-11.

Guide de l'implémenteur à venir (complexité 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#0d59c21e
Content hash
0d59c21e
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_PWMDriver.pdf#nameddest=SWS_Pwm_00095

Initialisation et état

Pwm_DeInit fonction

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 fonction

Service for PWM initialization.

void Pwm_Init (const Pwm_ConfigType* ConfigPtr);

Services · 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);

Services · 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);

Services · Autres

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);

Types

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.