DEENESPTFRRUARHIKOZHNL

PWM Driver (Pwm)

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

모듈 가이드AI 생성

주기 및 듀티 사이클을 통해 마이크로컨트롤러 하드웨어의 펄스 폭 변조 출력을 채널별로 제어합니다.
AI 생성 미검증 모델: claude-opus-5-5 · 노력: high · 온도: 제어 불가 · 프롬프트: 346ede702b24 출처 열린 질문 (1)
인과 앵커: R20-11 R20-11부터 유효 이 사양 릴리스용으로 새로 합성되었습니다.
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

주기 및 듀티 사이클을 통해 마이크로컨트롤러 하드웨어의 펄스 폭 변조 출력을 채널별로 제어합니다.

PWM 드라이버는 MCAL 모듈로서 마이크로컨트롤러의 펄스 폭 변조 출력을 채널별로 제어하며, 이를 위해 해당 레지스터에 직접 접근합니다. Pwm_Init에 따라 Pwm User는 듀티 사이클을 설정하고 가변 주기 채널의 경우 주기 또한 설정합니다. 출력을 Idle 상태로 전환하고 에지 알림을 활성화하거나 비활성화할 수 있습니다 [SWS_Pwm_91000]. 선택적으로 드라이버는 준비 및 설정을 통한 2단계 전력 상태 전환을 관리합니다. 초기화 누락이나 유효하지 않은 채널과 같은 오류는 오류 감지가 활성화되어 있을 때 보고하며, 이 경우 아무 작업도 수행하지 않습니다 [SWS_Pwm_00201].

PWM 드라이버는 MCAL 모듈이며 마이크로컨트롤러의 레지스터를 통해 해당 펄스 폭 변조 출력을 제어합니다. 따라서 하위 모듈의 인터페이스를 필요로 하지 않습니다 (SWS PWM Driver 44쪽). 드라이버는 Pwm_Init 및 구성 세트에 대한 포인터 [SWS_Pwm_00095]를 통해 동기식으로 초기화되며, 이는 ECU State Manager가 선택적 초기화 인터페이스로 호출합니다 (SWS EcuM 152쪽). 일반적으로 파워 스테이지 드라이버 등을 통해 IoHwAb에서 사용됩니다 (SWS IoHwAb 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 신호 (포트 로직 이전의 Pwm_GetOutputState 판독 지점)

컨텍스트 다이어그램: EcuM이 드라이버를 초기화하고, Pwm User가 이를 운용하며, 드라이버가 알림 및 오류를 다시 보고합니다. 출처: [SWS_Pwm_00105], [SWS_Pwm_00198], [SWS_Pwm_00104]

제어는 16비트 듀티 사이클을 통해 이루어지며, 여기서 0x8000은 100%를 나타냅니다 (SWS PWM Driver 18쪽). 주요 서비스:

  • Pwm_SetDutyCycle은 듀티 사이클을 변경합니다 [SWS_Pwm_91000]. 0% 및 100%에서는 극성에 따라 정적 레벨을 설정합니다.
  • Pwm_SetPeriodAndDuty은 추가로 주기도 변경하지만, PWM_VARIABLE_PERIOD 클래스의 채널에서만 가능합니다 [SWS_Pwm_00110].
  • Pwm_SetOutputToIdle은 즉시 Idle 레벨로 전환합니다 [SWS_Pwm_91002].
  • Pwm_GetOutputState은 내부 레벨을 읽습니다 [SWS_Pwm_00100].
kanal init Pwm_Init 후 (구성된 시작 상태) mod Modulation (0 % < Tastgrad < 100 %) init->mod Konfiguration: Modulation stat 정적 레벨 (0%: 극성의 반대, 100%: 극성과 동일) init->stat 구성: Low 또는 High mod->mod Pwm_SetPeriodAndDuty (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 (가변 주기에서의 재활성화)

상태 다이어그램: 채널이 API를 통해 변조, 정적 레벨 및 Idle 상태 간을 전환합니다. 출처: [SWS_Pwm_91000], [SWS_Pwm_91001], SWS PWM Driver 31쪽

에지 알림은 채널별로 Pwm_EnableNotification을 통해 활성화되며 [SWS_Pwm_91004], Pwm User에게 Pwm_Notification_<#Channel>로 전달됩니다 [SWS_Pwm_00105]. 선택적으로 드라이버는 전력 상태를 2단계로 관리하기도 합니다. Pwm_PreparePowerState가 준비를 시작하고 [SWS_Pwm_00183], 주기적인 Pwm_Main_PowerTransitionManager이 이를 완료합니다 [SWS_Pwm_00189]. 이후 Pwm_SetPowerState이 상태를 설정합니다 [SWS_Pwm_00166].

오류 감지가 활성화된 경우 함수는 PWM_E_UNINIT, PWM_E_PARAM_CHANNEL 또는 PWM_E_PERIOD_UNCHANGEABLE와 같은 오류를 보고하고 [SWS_Pwm_00201] 아무런 효과 없이 반환합니다 (SWS PWM Driver 44쪽). Pwm_GetOutputState는 이러한 경우에 PWM_LOW을 반환합니다 [SWS_Pwm_30051]. 드라이버가 아직 사용 중일 때 Pwm_SetPowerState이 호출되면 런타임 오류 PWM_E_NOT_DISENGAGED가 발생합니다 [SWS_Pwm_00202].

MCAL에서의 역할: PWM 장치와 Pwm User 사이의 드라이버

PWM 드라이버는 마이크로컨트롤러의 펄스 폭 변조 출력을 캡슐화합니다. MCAL 계층의 모듈로서 마이크로컨트롤러의 레지스터에 직접 접근하므로 하위 계층 모듈의 인터페이스가 필요하지 않습니다 (SWS PWM Driver 44쪽). 동일한 이유로 하위 계층을 위한 콜백을 제공하지 않으며 (SWS PWM Driver 40쪽), 서비스 인터페이스도 제공하지 않습니다 (SWS PWM Driver 44쪽). 해당 서비스는 Pwm.h을 통해 제공되며, 예를 들어 Pwm_Init [SWS_Pwm_00095], Pwm_SetDutyCycle [SWS_Pwm_91000] 및 Pwm_GetOutputState [SWS_Pwm_00100] 등이 있습니다. 표준 타입 Std_ReturnType 및 Std_VersionInfoType은 Std_Types.h에서 가져옵니다 [SWS_Pwm_00094].

ECU State Manager는 Pwm_Init을 선택적 초기화 인터페이스에 포함합니다 (SWS EcuM 152쪽). 전력 출력단 사용 사례에서는 IoHwAb의 파워 스테이지 드라이버가 PWM, DIO 및 SPI의 서비스를 호출하여 전압 및 주파수 등을 설정합니다 (SWS IoHwAb 37쪽). 반대 방향으로 드라이버는 두 종류의 함수를 호출합니다: 채널별 알림 Pwm_Notification_<#Channel> [SWS_Pwm_00105] 및 전력 관리에서의 IoHwAb_Pwm_NotifyReadyForPowerState<#Mode> [SWS_Pwm_00198]입니다. 개발 오류는 선택적으로 Det_ReportError을 통해 보고합니다 [SWS_Pwm_00104]. 하드웨어가 서로 다른 채널에 대해 상이한 메커니즘을 제공하는 경우, 이는 공급업체 고유의 API 인픽스를 통해서가 아니라 채널 번호를 통해 추상화됩니다 (TPS BSWMDT 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 신호 (포트 로직 이전의 Pwm_GetOutputState 판독 지점)

컨텍스트 다이어그램: Pwm 드라이버는 EcuM에 의해 초기화되고 Pwm User에 의해 운용됩니다. 스케줄러에 의해 주기적으로 호출되고, Pwm User에게 알림을, DET에게 오류를 보고하며, 레지스터를 통해 PWM 장치를 제어합니다. 출처: [SWS_Pwm_00104], [SWS_Pwm_00105], [SWS_Pwm_00189], [SWS_Pwm_00198], SWS EcuM 152쪽, SWS IoHwAb 37쪽, RS PWM Driver 14쪽

신호 모델: 주기, 듀티 사이클, 극성 및 채널 클래스

채널은 숫자 식별자 Pwm_ChannelType을 통해 참조됩니다 [SWS_Pwm_00106]. 주기는 8~32비트의 구현별 타입인 Pwm_PeriodType 타입입니다 [SWS_Pwm_00107]. 세 가지 개념이 신호를 결정합니다 (SWS PWM Driver 9쪽):

  • 극성은 각 주기의 시작 레벨을 정의합니다.
  • 듀티 사이클은 주기에서 이 시작 레벨의 비율을 나타냅니다.
  • Idle 상태는 Pwm_SetOutputToIdle 또는 Pwm_DeInit 이후의 출력 상태입니다.

신호 설명 다이어그램은 두 극성 PWM_HIGH 및 PWM_LOW을 비교하여 보여줍니다 (SWS PWM Driver 7쪽).

듀티 사이클은 16비트 값입니다. 0x0000은 0%를 나타내고 0x8000은 100%를 나타냅니다. 구현 지원을 위해 명세서는 AbsoluteDutyCycle = ((uint32)AbsolutePeriodTime * RelativeDutyCycle) >> 15;를 언급합니다 (SWS PWM Driver 18쪽). 이에 따라 Pwm_SetDutyCycle 및 Pwm_SetPeriodAndDuty는 매개변수 DutyCycle을 Min=0x0000 및 Max=0x8000으로 제한합니다 [SWS_Pwm_91000] [SWS_Pwm_91001].

채널 클래스 Pwm_ChannelClassType은 채널이 런타임에 변경할 수 있는 항목을 정의합니다 [SWS_Pwm_00110]:

  • PWM_VARIABLE_PERIOD: 주기와 듀티 사이클을 변경할 수 있습니다.
  • PWM_FIXED_PERIOD: 듀티 사이클만 변경할 수 있습니다.
  • PWM_FIXED_PERIOD_SHIFTED: 변경할 수 없는 고정된 시프트 주기이며, 하드웨어가 지원하는 경우에만 사용할 수 있습니다.

시프트 주기 다이어그램은 주기가 동일하고 각 주기의 시작이 고정된 시간만큼 지연된 채널들을 보여줍니다 (SWS PWM Driver 23쪽).

수명 주기 및 신호 제어: Pwm_Init부터 Idle 상태까지

Pwm_Init은 동기식이며 재진입이 불가능합니다. 이 함수는 ConfigPtr을 통해 구성 세트에 대한 포인터를 전달받습니다 [SWS_Pwm_00095]. 해당 타입 Pwm_ConfigType은 하드웨어 고유의 내용을 포함합니다 [SWS_Pwm_00111]. 초기화 다이어그램에 따르면 이후 출력은 구성에 따라 Low, High 또는 변조 상태에 있게 됩니다. 알림은 Pwm_EnableNotification가 처음 호출된 후에야 발생합니다 (SWS PWM Driver 46쪽). 이미 초기화된 드라이버에 대해 Pwm_Init이 다시 호출되는 경우, 개발 오류 PWM_E_ALREADY_INITIALIZED을 보고해야 합니다 [SWS_Pwm_50002].

Pwm_DeInit 또한 동기식이며 재진입이 불가능합니다 [SWS_Pwm_00096]. 이 함수는 모듈을 초기화 해제하고, 출력을 Idle 상태로 설정하며, PWM 인터럽트 및 에지 알림을 비활성화합니다. PwmDeInitApi를 통해 이를 활성화 및 비활성화할 수 있습니다 (SWS PWM Driver 27쪽). 해석: 이후 모듈은 다시 초기화되지 않은 상태로 간주될 수 있으므로, Pwm_Init의 재호출이 허용됩니다. 질문 Q-a892974ddbe644e0 (열림)

lebenszyklus start Start uninit 초기화되지 않음 start->uninit uninit->uninit 기타 API → PWM_E_UNINIT (Pwm_GetOutputState는 PWM_LOW 반환) init 초기화됨 (구성에 따른 채널: Low, High 또는 변조) uninit->init Pwm_Init(ConfigPtr) init->uninit Pwm_DeInit (출력 Idle, 인터럽트 및 알림 꺼짐) 해석: 후속 상태 init->init Pwm_Init → PWM_E_ALREADY_INITIALIZED

상태 다이어그램: 초기화, 초기화 해제 및 잘못된 호출 순서로 인한 오류를 포함한 모듈의 수명 주기입니다. Pwm_DeInit 이후 “초기화되지 않음” 상태로의 복귀는 하나의 해석입니다. 출처: [SWS_Pwm_00095], [SWS_Pwm_00096], [SWS_Pwm_50002], [SWS_Pwm_20002], [SWS_Pwm_30051], SWS PWM Driver 27쪽

작동 중에 Pwm_SetDutyCycle은 채널의 듀티 사이클을 설정합니다 [SWS_Pwm_91000]. 0% 및 100%에서는 출력이 정적으로 설정됩니다 (SWS PWM Driver 28쪽):

  • 0%에서는 레벨이 구성된 극성의 반대가 됩니다.
  • 100%에서는 레벨이 극성과 일치합니다.
  • 그 사이의 값에서는 주기, 듀티 사이클 및 극성에 따라 변조됩니다.

다이어그램에 따르면 드라이버는 구현이 이를 지원하는 경우 진행 중인 주기의 끝에서 새 듀티 사이클을 적용하고, 그렇지 않은 경우 즉시 적용합니다 (SWS PWM Driver 37쪽).

Pwm_SetPeriodAndDuty은 주기와 듀티 사이클을 함께 설정합니다 [SWS_Pwm_91001]. 이때 세 가지 규칙이 적용됩니다 (SWS PWM Driver 30쪽):

  • 구현이 이를 지원하고 PwmPeriodUpdatedEndperiod을 통해 구성된 경우 주기는 주기 끝에서 업데이트됩니다.
  • 출력의 글리치는 억제되어야 합니다.
  • 주파수와 듀티 사이클이 일치하도록 듀티 사이클이 함께 전달됩니다.
tastgrad a Pwm_SetDutyCycle 또는 Pwm_SetPeriodAndDuty 호출 (일반 검사 통과) k Pwm_SetPeriodAndDuty? a->k c Kanalklasse = PWM_VARIABLE_PERIOD? k->c 예 d angeforderter Tastgrad? k->d nein (Pwm_SetDutyCycle) e PWM_E_PERIOD_UNCHANGEABLE 보고, 동작 없이 함수 종료 c->e 아니요(오류 감지 활성화 시) p 주기 및 듀티 사이클 설정 (PwmPeriodUpdatedEndperiod인 경우 주기 끝에서 주기 설정; 글리치 억제) c->p 예 z 출력 정적: 극성의 반대 d->z 0x0000 (0 %) h 출력 정적: 극성과 동일 d->h 0x8000 (100 %) m 주기, 듀티 사이클 및 극성에 따른 변조 d->m dazwischen

액티비티 다이어그램: 채널 클래스 검사 및 0%와 100%에 대한 특수 처리를 포함한 Pwm_SetDutyCycle 및 Pwm_SetPeriodAndDuty의 처리입니다. 출처: [SWS_Pwm_40002], SWS PWM Driver 28쪽, SWS PWM Driver 30쪽, SWS PWM Driver 44쪽

Pwm_SetOutputToIdle은 출력을 구성된 Idle 상태로 즉시 설정합니다 [SWS_Pwm_91002]. 가변 주기 채널은 이후 Pwm_SetPeriodAndDuty를 통해 다시 활성화됩니다 (SWS PWM Driver 31쪽). “Setting Pwm output to idle” 다이어그램은 바로 이러한 시퀀스를 보여줍니다 (SWS PWM Driver 50쪽). Pwm_GetOutputState는 내부 출력 상태를 PWM_HIGH 또는 PWM_LOW로 동기식으로 읽습니다 [SWS_Pwm_00100] [SWS_Pwm_00108]. 요구사항 명세서의 다이어그램은 읽은 값을 물리적 핀이 아닌 포트 로직 이전의 PWM 장치 출력에 위치시킵니다 (RS PWM Driver 14쪽).

kanal init Pwm_Init 후 (구성된 시작 상태) mod Modulation (0 % < Tastgrad < 100 %) init->mod Konfiguration: Modulation stat 정적 레벨 (0%: 극성의 반대, 100%: 극성과 동일) init->stat 구성: Low 또는 High mod->mod Pwm_SetPeriodAndDuty (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 (가변 주기에서의 재활성화)

상태 다이어그램: 채널의 출력 상태(변조, 정적 레벨, Idle) 및 이들 사이를 전환하는 API입니다. 출처: [SWS_Pwm_91000], [SWS_Pwm_91001], [SWS_Pwm_91002], SWS PWM Driver 28쪽, SWS PWM Driver 31쪽, SWS PWM Driver 46쪽

채널별 에지 알림

Pwm_EnableNotification을 통해 Pwm User는 채널에 대한 알림을 활성화합니다. Pwm_EdgeNotificationType 타입의 매개변수는 PWM_RISING_EDGE, PWM_FALLING_EDGE 또는 PWM_BOTH_EDGES를 선택합니다 [SWS_Pwm_91004] [SWS_Pwm_00109]. 함수는 보류 중인 인터럽트를 삭제합니다 (SWS PWM Driver 35쪽). 이 함수는 Pwm_DisableNotification [SWS_Pwm_91003]와 마찬가지로 PwmNotificationSupported이 활성화된 경우에만 존재합니다 (SWS PWM Driver 34쪽).

드라이버는 Pwm_EnableNotification 또는 Pwm_DisableNotification의 마지막 호출에 따라 구성된 함수 Pwm_Notification_<#Channel>을 호출합니다. 이때 연결된 인터럽트 플래그를 재설정합니다 (SWS PWM Driver 42쪽). 콜백에는 매개변수가 없으며 Pwm_Externals.h를 통해 알려집니다. 재진입 가능 여부는 Pwm User의 구현에 따라 달라집니다 [SWS_Pwm_00105].

PWM 채널의 에지 알림Pwm UserPwmPwm_Init(const Pwm_ConfigType*)Pwm_Init()다음 시점까지 알림 없음:ersten Pwm_EnableNotificationPwm_EnableNotification(ChannelNumber,PWM_RISING_EDGE | PWM_FALLING_EDGE | PWM_BOTH_EDGES)anstehende Interrupts verwerfenPwm_EnableNotification()loop선택된 각 에지에서인터럽트 플래그 리셋Pwm_Notification_<#Channel>()Pwm_DisableNotification(ChannelNumber)Pwm_DisableNotification()추가 알림 없음

시퀀스 다이어그램: 초기화부터 에지 알림의 활성화 및 비활성화, 추가 콜백의 중단까지의 흐름입니다. 출처: [SWS_Pwm_91004], [SWS_Pwm_91003], [SWS_Pwm_00105], SWS PWM Driver 52쪽, SWS PWM Driver 42쪽

PWM 주변장치의 전력 상태

전력 상태 제어는 선택적 기능입니다. 이는 PWM 주변장치에 국한되며 애플리케이션, 모드 관리 및 IoHwAb가 상위 제약 조건을 이미 충족하고 있음을 전제로 합니다 (SWS PWM Driver 17쪽). PwmLowPowerStatesSupport이 활성화되면 네 개의 전력 상태 API가 생성됩니다 (SWS PWM Driver 16쪽). Pwm_PowerStateType은 PWM_FULL_POWER (0x00) 및 소비 전력이 감소하는 상태를 위한 1..255 범위를 정의합니다. R20-11에서 이 타입은 열거형으로 정의되어 있습니다 [SWS_Pwm_00197]. 반면 이후 버전에서는 이를 uint8에서 파생된 타입으로 정의합니다 (SWS PWM Driver 25쪽).

전력 상태 전환은 2단계로 진행됩니다:

  1. Pwm_PreparePowerState은 준비를 시작하고 결과 매개변수로 PWM_SERVICE_ACCEPTED 또는 거부 사유를 반환합니다 [SWS_Pwm_00183] [SWS_Pwm_00165]. 즉시 완료할 수 없는 작업은 주기적으로 호출되는 Pwm_Main_PowerTransitionManager가 처리합니다 [SWS_Pwm_00189] [SWS_Pwm_00190]. 호출 주기는 가변적이며, 콜백은 비동기 모드에서만 전송합니다 (SWS PWM Driver 41쪽). 드라이버는 완료된 준비를 IoHwAb_Pwm_NotifyReadyForPowerState<#Mode>로 보고합니다 [SWS_Pwm_00198].
  2. Pwm_SetPowerState은 하드웨어를 준비된 상태로 전환합니다 [SWS_Pwm_00166]. 모든 채널을 IDLE로 설정하고 모든 알림을 등록 취소하는 것과 같은 사전 작업은 IoHwAb와 같은 담당 SWC가 이미 수행했어야 합니다. 이 함수는 암시적 중간 상태를 실행하지 않습니다 (SWS PWM Driver 36쪽).
powerzustand uninit 초기화되지 않음 (결과: PWM_NOT_INIT) stabil stabil (aktueller = Zielzustand) uninit->stabil Pwm_Init stabil->stabil 사전 준비 없는 Pwm_SetPowerState 또는 현재 상태로 Prepare 호출 → PWM_SEQUENCE_ERROR stabil->stabil 지원되지 않음 / 직접 도달할 수 없음 → PWM_POWER_STATE_NOT_SUPP / PWM_TRANS_NOT_POSSIBLE vorb 준비 진행 중 (목표 ≠ 현재 상태) 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)

상태 다이어그램: 준비, 완료, 설정 및 시퀀스 오류를 포함한 2단계 전력 상태 전환입니다. 출처: [SWS_Pwm_00183], [SWS_Pwm_00166], [SWS_Pwm_00165], [SWS_Pwm_00190], SWS PWM Driver 39쪽, SWS IoHwAb 61쪽

Pwm_GetCurrentPowerState [SWS_Pwm_00177]은 현재 상태를 반환하고, Pwm_GetTargetPowerState [SWS_Pwm_00180]은 요청된 상태를 반환합니다. 전환이 진행 중이지 않는 한 두 상태는 일치합니다 (SWS PWM Driver 38쪽). IoHwAb 명세서는 비동기 경우에 대해 BswM, RTE/SchM, IoHwAb, ADC 및 PWM 간의 상호작용을 보여줍니다 (SWS IoHwAb 60쪽). 동기 경우에서는 준비 API가 반환될 때 이미 준비가 완료되어 있습니다 (SWS IoHwAb 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_ACCEPTED백그라운드에서 준비 계속 진행 중Use 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()사전 조건: 모든 채널 IDLE,Benachrichtigungen abgemeldetPwm_SetPowerState(&Result)E_OK / PWM_SERVICE_ACCEPTEDPwm_GetCurrentPowerState(...)E_OK, CurrentPowerState

시퀀스 다이어그램: IoHwAb에 의해 제어되는 저전력 상태로의 비동기 전환입니다. 흐름은 단순화되었으며 ADC는 생략되었습니다. 출처: [SWS_Pwm_00183], [SWS_Pwm_00189], [SWS_Pwm_00198], [SWS_Pwm_00166], SWS IoHwAb 57쪽, SWS IoHwAb 60쪽

구성, 채널 컨테이너 및 동시성

채널의 필수 매개변수는 할당된 하드웨어 채널, 주기 및 듀티 사이클의 기본값, 극성, Idle 레벨 및 채널 클래스입니다. 위상 변위, 참조 채널 및 마이크로컨트롤러 고유 속성은 하드웨어가 제공하는 범위 내에서 선택 사항입니다 (SWS PWM Driver 25쪽). 구성 모델에서 PwmChannelConfigSet은 최소 하나의 PwmChannel를 포함하며, PwmDutycycleDefault은 0~0x8000으로 제한됩니다 (ECUC-Parameter 545쪽). PwmChannelClass는 Pwm_ChannelClassType에 매핑됩니다. PwmChannelId은 채널 컨테이너의 기호 이름에 할당됩니다 (SWS PWM Driver 57쪽).

선택적 서비스는 구성을 통해 활성화 및 비활성화됩니다: PwmSetOutputToIdle(SWS PWM Driver 31쪽), PwmGetOutputState(SWS PWM Driver 33쪽) 및 위에 언급된 PwmDeInitApi 및 PwmNotificationSupported.

동시성에 대해 다음이 적용된다:

  • Pwm_SetDutyCycle과 같은 채널 서비스는 서로 다른 채널 번호 [SWS_Pwm_91000]에 대해 재진입 가능(reentrant)합니다.
  • 전력 상태 API는 재진입이 불가능합니다 [SWS_Pwm_00183].
  • 구현에서 지원하지 않는 파티션 할당을 포함한 구성은 모듈이 거부해야 합니다 [SWS_Pwm_00203].

“multi-core reentrant”에 이르는 재진입성 수준은 BSW-Distribution-Guide(BSW Distribution Guide 18쪽)에서 설명합니다.

오류가 발생한 경우의 동작

개발 오류 감지(Development Error Detection)가 활성화되어 있으면 함수는 감지된 오류를 Default Error Tracer에 보고합니다. 그런 다음 데이터나 하드웨어 레지스터가 손상되지 않도록 요청된 함수를 건너뜁니다(SWS PWM Driver 44쪽). 오류 코드는 [SWS_Pwm_00201]입니다:

  • PWM_E_INIT_FAILED (0x10)
  • 초기화 전 호출에 대한 PWM_E_UNINIT (0x11) [SWS_Pwm_20002]
  • 유효하지 않은 채널에 대한 PWM_E_PARAM_CHANNEL (0x12) [SWS_Pwm_30002]
  • 고정 주기 채널의 주기 변경에 대한 PWM_E_PERIOD_UNCHANGEABLE (0x13) [SWS_Pwm_40002]
  • PWM_E_ALREADY_INITIALIZED (0x14)
  • Pwm_GetVersionInfo에 대한 NULL 매개변수의 경우 PWM_E_PARAM_POINTER (0x15)

Pwm_GetOutputState은 항상 값을 반환해야 합니다. 초기화 전이거나 유효하지 않은 채널인 경우 이 값은 PWM_LOW [SWS_Pwm_30051]입니다.

pruefung a 채널 API 호출 det Entwicklungsfehlererkennung aktiv? a->det ini Modul initialisiert? det->ini 예 ok 서비스 실행 det->ok 아니요 ch ChannelNumber 유효한가? ini->ch 예 u PWM_E_UNINIT an Det melden ini->u 아니요 pc PWM_E_PARAM_CHANNEL an Det melden ch->pc 아니요 ch->ok 예 skip 동작 없이 함수 종료 (Pwm_GetOutputState는 PWM_LOW 반환) u->skip pc->skip

활동 다이어그램: 개발 오류 감지가 활성화되었을 때 채널 API의 일반 검사 및 영향 없는 중단. 출처: [SWS_Pwm_20002], [SWS_Pwm_30002], [SWS_Pwm_30051], SWS PWM Driver 44쪽

전력 상태 API는 오류를 Std_ReturnType 및 결과 유형 Pwm_PowerStateRequestResultType을 통해 추가로 보고합니다. 가능한 값은 PWM_NOT_INIT, PWM_SEQUENCE_ERROR, PWM_HW_FAILURE, PWM_POWER_STATE_NOT_SUPP 및 PWM_TRANS_NOT_POSSIBLE [SWS_Pwm_00165]입니다. 지원되지 않는 상태에 대해서는 PWM_E_POWER_STATE_NOT_SUPPORTED도 정의되어 있으며 [SWS_Pwm_00174], 직접 도달할 수 없는 상태에 대해서는 PWM_E_TRANSITION_NOT_POSSIBLE [SWS_Pwm_00175]이 정의되어 있습니다.

채널이 아직 IDLE 상태를 벗어나 있거나 알림이 등록되어 있음에도 불구하고 Pwm_SetPowerState이 호출되면 런타임 오류 PWM_E_NOT_DISENGAGED (0x16) [SWS_Pwm_00202] (SWS PWM Driver 20쪽)이 발생합니다. Pwm_Main_PowerTransitionManager는 초기화 없이 단순히 반환되며 이때 의도적으로 개발 오류를 보고하지 않습니다. 그 이유는 주기적 태스크가 초기화가 끝나기 전에 이미 실행 중일 수 있기 때문입니다(SWS PWM Driver 41쪽).

더 자세한 증거

AUTOSAR Classic R20-11용 페이로드에 제공된 요구사항 및 문서 위치를 기반으로 생성된 AI 가이드입니다. 규격서만이 유일한 구속력을 가집니다.

PWM Driver (Pwm)

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

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

함수 Pwm_Init [SWS_Pwm_00095] 📄 PDF

void Pwm_Init (const Pwm_ConfigType* ConfigPtr);

Service for PWM initialization.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 0770524664d2 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기 함수 Pwm_Init은(는) 전체 PWM 드라이버를 초기화하기 위한 중앙 서비스 역할을 합니다([SWS_Pwm_00095]). 헤더 파일 Pwm.h을(를) 통해 제공되며 16진수 서비스 ID 0x00을(를) 가집니다([SWS_Pwm_00095]). 유일한 입력 매개변수로 ConfigPtr이(가) 전달되며, 이는 Pwm_ConfigType 타입의 드라이버별 구성 세트에 대한 포인터 역할을 합니다([SWS_Pwm_00095]). 이 인터페이스는 반환값이 없으며 출력 매개변수나 입출력 매개변수도 사용하지 않습니다([SWS_Pwm_00095]).

런타임 동작과 관련하여 Pwm_Init은(는) 동기식이며 재진입 불가능(Non Reentrant)으로 명시되어 있습니다([SWS_Pwm_00095]). 따라서 여러 스레드, 태스크 또는 인터럽트 루틴에서 이 함수를 동시에 또는 인터럽트하며 호출하는 것은 엄격히 금지됩니다. 이 실행은 PWM 채널을 추가로 사용하기 전에 ECU의 초기화 단계 중 시스템 시작 시 전형적으로 1회 수행될 것으로 보입니다. 질문 Q-ff3f1cf769dfed70 (열림)

허용된 호출 순서를 보장하기 위해 모듈은 자신의 상태를 모니터링합니다. PWM 드라이버가 이미 초기화된 상태에서 서비스 Pwm_Init이(가) 호출되면, 모듈은 식별자 0x14을(를) 갖는 개발 오류 PWM_E_ALREADY_INITIALIZED을(를) 보고합니다([SWS_Pwm_50002]). 따라서 반복적인 초기화는 오류로 처리됩니다.

이 텍스트는 AI에 의해 작성되었습니다. AUTOSAR 명세서가 기준이 됩니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 Pwm_DeInit [SWS_Pwm_00096] 📄 PDF

void Pwm_DeInit (void);

Service for PWM De - Initialization.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: e8e4048754f1 출처 열린 질문 (2)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용법 및 시그니처

함수 Pwm_DeInit은(는) PWM 드라이버([SWS_Pwm_00096])의 초기화 해제를 위한 서비스 역할을 합니다. 이 함수는 헤더 파일 Pwm.h을(를) 통해 제공되며 서비스 ID 0x01([SWS_Pwm_00096])을(를) 가집니다. 이 인터페이스는 void Pwm_DeInit(void) 시그니처를 가지며 입력 또는 출력 매개변수를 받지 않고 호출자에게 반환값을 제공하지 않습니다([SWS_Pwm_00096]).

Pwm_DeInit의 호출은 동기적으로 실행됩니다([SWS_Pwm_00096]). 따라서 호출 제어 흐름은 PWM 모듈의 초기화 해제 단계가 완료될 때까지 함수 내에 머무릅니다.

동시성 및 제약사항

실행에 대해 동시성과 관련하여 다음 제약 조건이 적용됩니다:

  • 비재진입: 이 서비스는 비재진입으로 명시되어 있습니다([SWS_Pwm_00096]). 여러 스레드, 태스크 또는 ISR에서의 동시 또는 인터럽트 호출은 허용되지 않습니다.
  • 호출 컨텍스트: 동기적 의미 체계와 재진입성의 부재로 인해, 일반적으로 태스크 레벨에서의 제어된 셧다운 단계의 일환으로 호출이 수행될 것으로 추정됩니다. 질문 Q-f1afc58637cba5cf (열림)

오류 처리

Pwm_DeInit의 사양에는 반환값이나 특정 오류 코드가 정의되어 있지 않습니다([SWS_Pwm_00096]). 함수 인터페이스를 통한 직접적인 오류 피드백이 제공되지 않으므로, 발생 가능한 런타임 또는 상태 오류는 개발 인터페이스(DET)와 같은 모듈 내부 모니터링 메커니즘을 통해 기록되거나 포착될 것으로 추정됩니다. 질문 (열림)

이 텍스트는 AUTOSAR Classic R20-11 사양을 바탕으로 자동 생성되었습니다.

함수 Pwm_DisableNotification [SWS_Pwm_91003] 📄 PDF

void Pwm_DisableNotification (Pwm_ChannelType ChannelNumber);

Service to disable the PWM signal edge notification.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 2d97fc6435bd 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

Pwm_DisableNotification 함수는 특정 PWM 채널의 에지 알림(Signal Edge Notification)을 비활성화하는 데 사용됩니다 [SWS_Pwm_91003]. 함수 선언 및 관련 타입 정의는 헤더 파일 Pwm.h을(를) 통해 제공됩니다 [SWS_Pwm_91003].

매개변수 및 반환값

이 인터페이스는 서비스 ID 0x06을(를) 가지며 다음과 같은 시그니처 특징을 나타냅니다 [SWS_Pwm_91003]:

  • ChannelNumber (in): 구성할 PWM 채널의 숫자 식별자(Pwm_ChannelType 타입) [SWS_Pwm_91003].

입출력 매개변수(inout)나 순수 출력 매개변수(out)는 존재하지 않습니다 [SWS_Pwm_91003]. 이 함수는 호출자에게 반환값(void)을 제공하지 않습니다 [SWS_Pwm_91003].

동기화 동작 및 동시성

Pwm_DisableNotification의 호출은 비동기식으로 작동합니다 [SWS_Pwm_91003]. 멀티스레딩 동작과 관련하여 이 서비스는 서로 다른 채널 번호가 지정되는 한 재진입이 가능합니다 [SWS_Pwm_91003].

Interpretation: 재진입성이 서로 다른 채널로 명시적으로 제한되어 있으므로 동일한 PWM 채널에 대해서는 vermutlich 재진입이 불가능할 것으로 보입니다 [SWS_Pwm_91003]. 질문 Q-005e97fd25679da7 (열림) 따라서 동일한 채널에 대한 동시 호출은 호출자 측에서 상호 동기화되어야 할 것으로 보입니다.

AUTOSAR Classic R20-11 사양을 기반으로 선별된 사용 지침입니다.

함수 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 0c9ffc1eca13 출처 열린 질문 (2)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용

함수 Pwm_EnableNotification은(는) 전달된 알림 파라미터 [SWS_Pwm_91004]에 따라 특정 PWM 채널에 대한 신호 에지 알림을 활성화하는 데 사용됩니다. 이 서비스는 헤더 파일 Pwm.h을(를) 통해 제공되고, 서비스 ID 0x07을(를) 가지며, 호출자에게 반환값(void)을 반환하지 않습니다 [SWS_Pwm_91004].

인터페이스 호출 시 두 개의 필수 입력 파라미터를 전달해야 합니다 [SWS_Pwm_91004]:

  • ChannelNumber (타입 Pwm_ChannelType): 대상 PWM 채널의 숫자 식별자 [SWS_Pwm_91004].
  • Notification (타입 Pwm_EdgeNotificationType): 허용되는 값 PWM_RISING_EDGE, PWM_FALLING_EDGE 또는 PWM_BOTH_EDGES을(를) 갖는 에지 알림의 유형을 정의합니다 [SWS_Pwm_91004].

시맨틱 및 동시성

서비스 실행은 비동기로 지정되어 있습니다 [SWS_Pwm_91004]. 동시성과 관련하여 Pwm_EnableNotification은(는) 서로 다른 채널 번호에 대해 재진입 가능하도록 설계되었습니다 [SWS_Pwm_91004]. 동일한 PWM 채널에 대한 동시 또는 중단(인터럽트) 접근의 경우 이 서비스는 재진입이 불가능할 것으로 추정되므로, 이러한 호출은 호출자 측에서 보호되어야 합니다. 질문 Q-73309ed8589161a3 (열림)

오류 처리 및 제약 조건

사양 발췌본에는 이 함수에 대해 특정 반환값이나 Development Error Tracer (DET) 또는 Diagnostic Event Manager (DEM)를 위한 오류 메시지가 정의되어 있지 않습니다 [SWS_Pwm_91004]. 마찬가지로 허용되는 호출 컨텍스트나 태스크 관련 순서에 대한 규정도 없습니다. 사전 조건이 명시되어 있지 않으므로, 함수 호출은 PWM 드라이버가 성공적으로 초기화된 후에만 허용될 것으로 보입니다. 질문 Q-7f428f59a20175c2 (열림)

이 사용 지침은 AUTOSAR Classic R20-11 사양 발췌본을 바탕으로 자동 작성되었습니다.

함수 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: b7532b0354d7 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기 함수 Pwm_SetPowerState은(는) PWM 모듈을 사전 구성된 파워 상태 선택 항목에서 사전에 준비된 상태로 전환합니다 [SWS_Pwm_00166]. 선언은 헤더 Pwm.h을(를) 통해 제공됩니다 [SWS_Pwm_00166].

사용법 및 반환값

이 함수는 입력 매개변수를 받지 않으며 Pwm_PowerStateRequestResultType* 타입의 포인터 매개변수 Result을(를) 통해 상세 결과를 전달합니다 [SWS_Pwm_00166]:

  • 모드를 성공적으로 변경할 수 있었던 경우, 함수는 E_OK을(를) 반환하고 Result을(를) PWM_SERVICE_ACCEPTED(으)로 설정합니다 [SWS_Pwm_00166].
  • 요청이 거부되면 호출은 E_NOT_OK을(를) 반환합니다 [SWS_Pwm_00166].

오류 처리

오류 발생 시(반환값 E_NOT_OK), Result은(는) 실패 원인 [SWS_Pwm_00166]을(를) 명시합니다:

  • PWM_NOT_INIT: PWM 모듈이 초기화되지 않았습니다 [SWS_Pwm_00166].
  • PWM_SEQUENCE_ERROR: 올바르지 않은 API 호출 시퀀스가 존재합니다 [SWS_Pwm_00166].
  • PWM_HW_FAILURE: 하드웨어 모듈의 오류로 인해 요청된 Power-State로의 진입이 방지됩니다 [SWS_Pwm_00166].

동시성 및 제약 조건

Pwm_SetPowerState은(는) 재진입이 불가능하며(Non Reentrant), 시퀀스 오류를 방지하기 위해 호출 전에 대상 상태가 준비되어 있어야 합니다 [SWS_Pwm_00166].

이 텍스트는 AUTOSAR 명세를 바탕으로 AI에 의해 작성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 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

함수 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

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 50b7f8a853d8 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용

동기 함수 Pwm_PreparePowerState은(는) PWM 하드웨어 모듈이 요청된 전력 상태로 전환될 수 있도록 필요한 준비 프로세스를 시작합니다 [SWS_Pwm_00183]. 원하는 대상 상태는 파라미터 PowerState을(를) 통해 전달되며, 세부 결과는 출력 포인터 Result을(를) 통해 제공됩니다 [SWS_Pwm_00183]. 준비가 성공적으로 시작되면 함수는 E_OK을(를) 반환하고 Result을(를) PWM_SERVICE_ACCEPTED(으)로 설정합니다 [SWS_Pwm_00183].

오류 처리

서비스가 거부되면 함수는 E_NOT_OK을(를) 반환하고 Result을(를) 통해 특정 원인을 보고합니다 [SWS_Pwm_00183]:

  • PWM_NOT_INIT: PWM 모듈이 초기화되지 않았습니다 [SWS_Pwm_00183].
  • PWM_SEQUENCE_ERROR: 현재 전력 상태가 이미 대상 상태와 일치하므로 올바르지 않은 호출 시퀀스입니다 [SWS_Pwm_00183].
  • PWM_POWER_STATE_NOT_SUPP: 모듈이 요청된 전력 상태를 지원하지 않습니다 [SWS_Pwm_00183].
  • PWM_TRANS_NOT_POSSIBLE: 직접 전환이 불가능하거나 하드웨어 주변장치가 아직 사용 중입니다 [SWS_Pwm_00183].

동시성 및 상호 작용

이 함수는 재진입이 불가능하므로(Non Reentrant) 동일한 모듈에 대해 동시에 호출되어서는 안 됩니다 [SWS_Pwm_00183]. Pwm_PreparePowerState에 의한 준비가 성공적으로 완료된 후, 전력 상태 전환을 최종적으로 완료하기 위해 즉각적으로 유효하지 않은 후속 조치들을 실행해야 합니다 [SWS_Pwm_00190].

이 사용 지침은 R20-11 사양을 바탕으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 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

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 879296577e8e 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

인터페이스 Pwm_Main_PowerTransitionManager은(는) [SWS_Pwm_00189]에 따른 PWM 드라이버의 전력 상태 전환(Power State Transitions)을 주기적으로 모니터링하는 데 사용됩니다. 이 인터페이스는 서비스 ID 0x0d을(를) 가지며, 전달 파라미터를 받지 않고 반환값을 제공하지 않습니다(시그니처 void Pwm_Main_PowerTransitionManager(void)).

주기적 실행의 일환으로 이 함수는 각 전력 상태에 대한 모듈의 작동 준비 상태를 검사합니다. 준비 상태가 확인되는 즉시 구성 파라미터 PwmPowerStateReadyCbkRef을(를) 통해 참조되는 알림 콜백 IoHwAb_Pwm_NotifyReadyForPowerState<Mode>을(를) 트리거합니다 [SWS_Pwm_00189].

이 함수는 주기적 호출 컨텍스트를 위해 제공되며 헤더 파일 SchM_Pwm.h을(를) 통해 제공됩니다. 결과적으로 주기적 호출은 일반적으로 BSW 스케줄러(Schedule Manager)의 컨텍스트에서 수행될 것으로 보입니다 [SWS_Pwm_00189]. 질문 Q-b9b0431e7ccbca88 (열림) 이 서비스에 대해 특정 오류 코드, DET 또는 DEM을 통한 오류 처리 메커니즘, 그리고 특별한 재진입 조건은 모듈 사양에 정의되어 있지 않습니다.

이 텍스트는 AUTOSAR 사양 R20-11을 기반으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 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>.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 6eff8686a5f4 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

채널별 알림 함수 Pwm_Notification_<#Channel>은(는) 각 채널에 대해 구성된 에지 이벤트가 발생하자마자 PWM 모듈에 의해 동기적으로 호출됩니다 [SWS_Pwm_00105]. 이 함수는 void Pwm_Notification_<#Channel>(void) 시그니처를 가지며 전달 매개변수를 받지 않고 반환값을 제공하지 않습니다 [SWS_Pwm_00105]. 이는 파일 Pwm_Externals.h에 선언되어 있으며 사용자가 제공해야 합니다 [SWS_Pwm_00105].

호출은 해당 채널에 대한 Pwm_EnableNotification의 마지막 호출에 따라 수행됩니다 [SWS_Pwm_00105]. 트리거 이벤트는 상승 에지(PWM_RISING_EDGE), 하강 에지(PWM_FALLING_EDGE) 또는 양쪽 신호 에지(PWM_BOTH_EDGES)를 구분하는 Pwm_EdgeNotificationType의 값을 따릅니다 [SWS_Pwm_00109]. 신호 생성 및 이벤트 알림 전에 PWM 모듈은 하드웨어 종속적인 Pwm_ConfigType 구조체를 사용하여 Pwm_Init을(를) 통해 초기화되어 있어야 합니다 [SWS_Pwm_00095], [SWS_Pwm_00111].

동시성과 관련하여 콜백 함수의 재진입성은 명시적으로 사용자 종속적인 것으로 정의됩니다(PWM user implementation dependant) [SWS_Pwm_00105]. 정확한 실행 컨텍스트(예: 인터럽트 서비스 루틴에서 직접 호출되는지 또는 태스크 컨텍스트에서 호출되는지 여부)는 기본 드라이버 구현에 따라 달라질 것으로 추정됩니다(해석). 질문 Q-327872e0e8fecb37 (열림) 이 알림 인터페이스에는 특정 오류 코드, 반환값 또는 표준화된 DET 또는 DEM 메시지가 존재하지 않습니다 [SWS_Pwm_00105].

이 텍스트는 AI에 의해 작성되었으며 AUTOSAR Classic Release R20-11 사양을 기반으로 합니다.

함수 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 23b0f44b508d 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

IoHwAb_Pwm_NotifyReadyForPower 함수(구문에서 IoHwAb_Pwm_NotifyReadyForPowerState<#Mode>(으)로 선언됨)는 헤더 IoHwAb_Pwm.h을(를) 통해 제공되며 AUTOSAR 전력 관리의 콜백 인터페이스 역할을 합니다 [SWS_Pwm_00198].

사용법, 인터페이스 특성 및 시스템 상호 작용과 관련하여 다음과 같은 구속력 있는 요구사항이 적용됩니다:

  • 사용 및 호출 컨텍스트: 이 인터페이스는 서비스 ID 0x60을(를) 가지며 동기식으로 실행됩니다 [SWS_Pwm_00198]. 모드의 요청된 전력 상태(Power State)에 대해 디바이스 측 준비가 성공적으로 완료되는 즉시 PWM 드라이버에서 이 인터페이스를 반드시 호출해야 합니다 [SWS_Pwm_00198].
  • 매개변수 및 반환값: 함수 시그니처는 입력, 입출력 또는 출력 매개변수를 정의하지 않으며 반환값도 없습니다(void) [SWS_Pwm_00198]. Interpretation: 각 전력 모드로의 할당은 소스 코드의 모드별 함수 이름에서 직접 도출될 것으로 보입니다. 질문 Q-ab761160ed91de78 (열림)
  • 동시성 및 제한 사항: 이 함수는 재진입이 불가능한 것(Non Reentrant)으로 지정되어 있습니다 [SWS_Pwm_00198]. 따라서 동일한 드라이버 컨텍스트 내에서 병렬로 또는 중첩되어 호출이 이루어져서는 안 됩니다.
  • 상호 작용: 모듈 간 흐름에서 이 호출은 드라이버 단계가 원하는 작동 상태로 전환할 준비가 되었음을 상위 I/O 하드웨어 추상화에 알립니다 [SWS_Pwm_00198].

사양 소스에는 이 함수에 대한 특정 오류 코드나 DET 또는 DEM에 대한 알림이 제공되지 않습니다 [SWS_Pwm_00198].

이 텍스트는 AI에 의해 작성되었으며, 모든 진술은 AUTOSAR 사양만을 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I1)

타입 Pwm_OutputStateType [SWS_Pwm_00108] 📄 PDF

Output state of a PWM channel.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 4d670762d069 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

열거형 타입 Pwm_OutputStateType은(는) Classic AUTOSAR 드라이버 내에서 PWM 채널의 출력 상태를 정의합니다 Pwm [SWS_Pwm_00108]. 이 타입 정의는 호출 소프트웨어 단위 및 드라이버 애플리케이션을 위해 헤더 파일 Pwm.h을(를) 통해 제공됩니다 [SWS_Pwm_00108].

이 열거형의 값 범위는 명확하게 정의된 채널의 두 가지 상태를 구분합니다 [SWS_Pwm_00108]:

  • PWM_HIGH(숫자 값 0x00): 해당 PWM 채널이 High 상태에 있음을 나타냅니다 [SWS_Pwm_00108].
  • PWM_LOW(숫자 값 0x01): 해당 PWM 채널이 Low 상태에 있음을 나타냅니다 [SWS_Pwm_00108].

호출 컨텍스트 및 사용 목적 측면에서 이 요소 자체는 타입으로서 인터페이스 함수를 정의하지 않습니다 [SWS_Pwm_00108]. 해석: 이 값들은 채널의 현재 또는 원하는 논리적 레벨 상태를 알리기 위해 모듈의 API 함수에서 일반적으로 매개변수 또는 반환값 역할을 할 것으로 추정됩니다. 질문 Q-9c142d658ab7fcfd (열림)

기본적인 타입 정의이므로 사양 범위 내에서 DET 또는 DEM에 관한 특정 오류 처리나 재진입성 또는 동기 실행에 대한 요구사항이 존재하지 않습니다 [SWS_Pwm_00108].

이 텍스트는 AUTOSAR Classic R20-11 명세를 기반으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

타입 Pwm_EdgeNotificationType [SWS_Pwm_00109] 📄 PDF

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

타입 Pwm_ConfigType [SWS_Pwm_00111] 📄 PDF

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

타입 Pwm_PowerStateRequestResultType [SWS_Pwm_00165] 📄 PDF

Result of the requests related to power state transitions.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 615a415d7a52 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

열거형 타입 Pwm_PowerStateRequestResultType은(는) [SWS_Pwm_00165]에 따라 PWM 드라이버에서 전원 관리 모드(Power State Transitions)의 상태 변경 요청 결과를 제공합니다. 이 타입 정의는 헤더 Pwm.h을(를) 통해 제공됩니다 [SWS_Pwm_00165].

이 타입은 성공적인 전환뿐만 아니라 특정 오류 조건도 나타냅니다 [SWS_Pwm_00165]:

  • PWM_SERVICE_ACCEPTED(0x00): 요청된 파워 상태 변경이 성공적으로 실행되었습니다 [SWS_Pwm_00165].
  • PWM_NOT_INIT(0x01): PWM 모듈이 아직 초기화되지 않았습니다 [SWS_Pwm_00165].
  • PWM_SEQUENCE_ERROR(0x02): API의 호출 시퀀스가 유효하지 않습니다 [SWS_Pwm_00165].
  • PWM_HW_FAILURE(0x03): 하드웨어 오류로 인해 요구된 전원 상태로 들어가지 못합니다 [SWS_Pwm_00165].
  • PWM_POWER_STATE_NOT_SUPP(0x04): 요청된 상태가 모듈에서 지원되지 않습니다 [SWS_Pwm_00165].
  • PWM_TRANS_NOT_POSSIBLE(0x05): 직접적인 상태 전환이 불가능하거나 하드웨어 주변 장치가 여전히 사용 중입니다 [SWS_Pwm_00165].

호출자는 상태 변경이 즉시 적용되었는지 확인하기 위해 결과를 평가해야 합니다. 해석: 이 타입은 전환 충돌이나 하드웨어 차단에 대해 상위 모듈에 알리기 위해 해당 전원 관리 기능의 반환값 또는 출력 매개변수로 일반적으로 작동할 것으로 추정됩니다. 질문 Q-fd06829e5c030906 (열림)

이 텍스트는 AI에 의해 생성되었으며 가이드 역할을 합니다. AUTOSAR 사양이 결정적인 기준입니다.

구현자 가이드 준비 중 (복잡도 I1)

타입 Pwm_PowerStateType [SWS_Pwm_00197] 📄 PDF

Power state currently active or set as target power state.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: b1411c45ba56 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

열거형 Pwm_PowerStateType은(는) PWM 모듈에서 전력 상태를 설명하는 데 사용됩니다 [SWS_Pwm_00197]. 이는 현재 활성화된 드라이버의 작동 상태 또는 새로 목표로 지정된 전력 상태를 나타냅니다 [SWS_Pwm_00197]. 이 데이터 타입은 헤더 파일 Pwm.h을(를) 통해 제공됩니다 [SWS_Pwm_00197].

사양에서는 열거형에 대해 다음과 같은 값과 값 범위를 정의합니다 [SWS_Pwm_00197]:

  • PWM_FULL_POWER (값 0x00): 전체 전력 상태(“Full Power”)를 나타냅니다 [SWS_Pwm_00197].
  • 값 범위 1..255: 단계적으로 감소하는 전력 소비를 갖는 단계별 전력 모드(“power modes with decreasing power consumptions”)를 정의합니다 [SWS_Pwm_00197].

사용 컨텍스트와 관련하여, 이 타입은 활성 상태와 목표 상태를 모두 나타내므로 절전 모드 요청 시 전달 파라미터 및 상태 조회 시 반환값으로 작동할 것으로 보입니다 [SWS_Pwm_00197]. 질문 Q-f0423f8b958d7e91 (열림) 구체적인 API 함수, 오류 처리(DET/DEM) 및 동시성 제한은 본 사양 발췌본에 포함되어 있지 않아 생략되었습니다 [SWS_Pwm_00197].

이 텍스트는 AUTOSAR 사양 R20-11을 기반으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 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#e80668a0
Content hash
e80668a0
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_PWMDriver.pdf#nameddest=SWS_Pwm_00095

초기화 및 상태

Pwm_DeInit 함수

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 함수

Service for PWM initialization.

void Pwm_Init (const Pwm_ConfigType* ConfigPtr);

서비스 · 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);

서비스 · 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);

서비스 · 기타

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

타입

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.