DEENESPTFRRUARHIKOZHNL
AUTOSAR_ECU_ConfigurationParameters FIG-8bad3385375e60dd 900 × 598 px 1 Release(s)

Figure 6.25: PWM channel specific configuration

SHA-256 Inhalts-Fingerabdruck: 8bad3385375e60ddda372b99f90ed55e053b980d50b6a054afda446a9bf2dc71
✦ KI-generierte Bildanalyse & technische Beschreibung Modell: gemini-3.8-flash (via agy) · Rezept figure-description@2 · erstellt am 2026-10-07

1. Diagrammtyp & Architektur-Kontext

  • Klassifikation: AUTOSAR ECU Configuration Parameter Definition Metamodell (UML-Klassendiagramm / BSW-Modulbeschreibungsschema).
  • Architektur-Kontext: MCAL (Microcontroller Abstraction Layer), Modul Pwm (Pulse Width Modulation Driver) gemäß AUTOSAR Classic Platform (SWS PWM).
  • Funktionaler Zweck: Formale Definition des Konfigurationsschemas für PWM-Kanäle. Dient ECU-Konfigurations- und Codegenerierungswerkzeugen (z. B. DaVinci Configurator, EB tresos) als Validierungsmodell für die Generierung der typsicheren Treiberstrukturen (Pwm_PBcfg.c, Pwm_Cfg.h).

2. Komponenten, Entitäten & Schnittstellen

Container-Hierarchie & Multiplizitäten
  • Pwm : ModuleDef: Wurzelknoten der PWM-Modulkonfiguration (lowerMultiplicity = 0, upperMultiplicity = *).
  • PwmChannelConfigSet : ParamConfContainerDef:
    • Beziehung: Komposition via +container von Pwm.
    • Eigenschaft: multipleConfigurationContainer = true. Definiert den Container als Basis für Post-Build-Varianten (PB/PC-Switching über Konfigurationssets).
  • PwmChannel : ParamConfContainerDef:
    • Beziehung: Komposition via +subContainer von PwmChannelConfigSet.
    • Multiplizität: lowerMultiplicity = 1, upperMultiplicity = * (mindestens ein Kanal muss konfiguriert sein). Repräsentiert die logische Kanalinstanz.
Parameterdefinitionen (Komposition via +parameter an PwmChannel)
  • PwmChannelId : IntegerParamDef:
    • Eigenschaften: symbolicNameValue = true, min = 0.
    • Semantik: Eindeutige numerische Kanal-ID. Generiert symbolische C-Makros (z. B. PwmConf_PwmChannel_<Name>) für API-Zugriffe (Pwm_ChannelType).
  • PwmPeriodDefault : FloatParamDef:
    • Eigenschaft: min = 0.
    • Semantik: Standard-Periodendauer in Sekunden (s) beim Treiberstart (Pwm_Init).
  • PwmDutycycleDefault : IntegerParamDef:
    • Eigenschaften: min = 0, max = 0x8000.
    • Semantik: Standard-Tastverhältnis (0x0000 = 0 %, 0x8000 = 100 % gemäß AUTOSAR-Normierung auf 15-Bit-Basis / 0x8000 == 32768).
  • PwmNotification : FunctionNameDef:
    • Eigenschaft: defaultValue = "NULL".
    • Semantik: Bezeichner der Callback-Funktion bei Erreichen der Flanke/Periode (void (*)(void)).
  • PwmChannelClass : EnumerationParamDef:
    • Literale (via +literal):
      • PwmFixedPeriod: Feste Periode, nur Tastverhältnis via Pwm_SetDutyCycle() änderbar.
      • PwmFixedPeriodShifted: Feste Periode mit konfigurierter Phasenverschiebung zu anderen Kanälen.
      • PwmVariablePeriod: Variable Periode, änderbar zur Laufzeit via Pwm_SetPeriodAndDuty().
  • PwmIdleState : EnumerationParamDef:
    • Literale (via +literal): PwmIdleStateHigh, PwmIdleStateLow.
    • Semantik: Elektrischer Ausgangspegel im deaktivierten oder Idle-Zustand (nach Pwm_Init bzw. Pwm_SetOutputToIdle()).
  • PwmPolarity : EnumerationParamDef:
    • Literale (via +literal): PwmPolarityHigh, PwmPolarityLow.
    • Semantik: Startpegel zu Beginn der PWM-Periode (High: Tastverhältnis definiert High-Phase; Low: Tastverhältnis definiert Low-Phase).

3. Dynamisches Verhalten & Sequenzablauf

Da es sich um ein statisches Konfigurationsmetamodell handelt, leitet sich das dynamische Verhalten aus den parametrierten Eigenschaften ab:

  1. Initialisierungsphase (Pwm_Init):
    • Treiber lädt das über PwmChannelConfigSet selektierte Post-Build-Set.
    • Jeder Kanal wird mit PwmPolarity, PwmDutycycleDefault, PwmPeriodDefault und PwmIdleState initialisiert.
  2. Laufzeit-Modulation:
    • PwmVariablePeriod: Erlaubt synchrone Aufrufe von Pwm_SetPeriodAndDuty(). Bei Kanälen vom Typ PwmFixedPeriod führt dieser Aufruf zu einem DET-Fehler (PWM_E_PERIOD_UNCHANGEABLE).
    • PwmFixedPeriod / PwmFixedPeriodShifted: Erlauben nur Pwm_SetDutyCycle().
  3. Asynchrone Callbacks & Notifications:
    • Ist PwmNotification != "NULL" und die Benachrichtigung via Pwm_EnableNotification() scharfgeschaltet, ruft die ISR des Hardware-Timers bei Flankenwechsel den konfigurierten Funktionspointer im Interrupt-Kontext auf.
  4. Abschaltung:
    • Aufruf von Pwm_SetOutputToIdle() forciert den physikalischen Pin sofort auf den Pegel von PwmIdleState.

4. Normative Relevanz & Entwickler-Hinweise

  • Duty-Cycle-Skalierung (0x8000-Konvention): Das Tastverhältnis wird in AUTOSAR strikt mit 0x0000 (0 %) bis 0x8000 (100 %) parametriert und übergeben. Übergaben > 0x8000 an APIs wie Pwm_SetDutyCycle() müssen vom Treiber mit dem DET-Fehler PWM_E_PARAM_DUTYCYCLE abgewiesen werden.
  • Kanal-Klassifizierung & Codegrößen-Optimierung: Hardware-Timer, die keine variablen Prescaler/Perioden-Register unterstützen, müssen als PwmFixedPeriod definiert werden. Dies ermöglicht es dem BSW-Generator, API-Funktionen wie Pwm_SetPeriodAndDuty() per Präprozessor-Switch (PWM_SET_PERIOD_AND_DUTY_API == STD_OFF) vollständig zu entfernen.
  • ISR-Restriktionen bei PwmNotification: Der Callback läuft direkt im ISR-Kontext des Timers. Entwickler dürfen darin keine blockierenden Operationen, OS-Wait-Events oder langwierige Berechnungen ausführen.
  • Post-Build-Variantenbildung: Da multipleConfigurationContainer = true gesetzt ist, können verschiedene Parametersätze für unterschiedliche Fahrzeugderivate zur Linkzeit oder Post-Build-Ladezeit vorgehalten werden, ohne den Binärcode des MCAL-Treibers neu kompilieren zu müssen.

Zugeordnete Anforderungen

Diese Angaben zeigt der Versions-Explorer.

Aus dem Dokument extrahierter Text & Kontext

Beschriftungen im Schaubild:

Pwm :ModuleDef | lowerMultiplicity = 0 upperMultiplicity = * | PwmChannel : ParamConfContainerDef | lowerMultiplicity = 1 upperMultiplicity = * PwmPeriodDefault : | FloatParamDef | min = 0 | PwmDutycycleDefault : | IntegerParamDef | min = 0 max = 0x8000 | PwmIdleState : EnumerationParamDef | PwmChannelClass : EnumerationParamDef | PwmFixedPeriod : EnumerationLiteralDef | PwmFixedPeriodShifted : | EnumerationLiteralDef | PwmVariablePeriod : EnumerationLiteralDef | PwmNotification : FunctionNameDef | defaultValue = "NULL" | PwmPolarity : EnumerationParamDef | PwmIdleStateHigh : EnumerationLiteralDef | PwmIdleStateLow : EnumerationLiteralDef | PwmPolarityHigh : EnumerationLiteralDef | PwmPolarityLow : EnumerationLiteralDef | PwmChannelId :IntegerParamDef | symbolicNameValue = true min = 0 | PwmChannelConfigSet : ParamConfContainerDef | multipleConfigurationContainer = true | +literal | +parameter | +parameter | +parameter | +parameter | +parameter | +parameter | +literal | +subContainer | +literal | +literal | +container | +literal | +literal | +literal | +parameter

Vorkommen in AUTOSAR-Releases (1)

Release Dokument Seite Nr. Bildunterschrift im Dokument
R2.1.20 AUTOSAR_ECU_ConfigurationParameters S. 545 6.25 Figure 6.25: PWM channel specific configuration