DEENESPTFRRUARHIKOZHNL

PWM Driver (Pwm)

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

Руководство по модулюСОЗДАНО ИИ

Управляет выходами микроконтроллера с широтно-импульсной модуляцией по каналам через период и коэффициент заполнения.
СОЗДАНО ИИ не проверено Модель: 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]. Опционально драйвер управляет двухфазным переключением состояния питания через подготовку и установку. При активном обнаружении ошибок он сообщает о таких сбоях, как отсутствие инициализации или недействительные каналы, и в этом случае ничего не выполняет [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]. Опционально драйвер также управляет состояниями питания в две фазы. 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). По той же причине он не предоставляет функций обратного вызова (callbacks) для нижних уровней (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. Он циклически вызывается планировщиком (Scheduler), отправляет уведомления 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]. Период имеет тип Pwm_PeriodType, являющийся специфичным для реализации типом разрядностью от 8 до 32 бит [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

Диаграмма деятельности: обработка Pwm_SetDutyCycle и Pwm_SetPeriodAndDuty с проверкой класса канала и специальной обработкой 0 % и 100 %. Источники: [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_Notification_<#Channel> в соответствии с последним вызовом Pwm_EnableNotification или Pwm_DisableNotification. При этом он сбрасывает соответствующий флаг прерывания (SWS PWM Driver с. 42). Callback не имеет параметров и объявляется через Pwm_Externals.h. Является ли он реентерабельным, зависит от реализации Pwm User [SWS_Pwm_00105].

Уведомление по фронту канала PWMPwm 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()Без дальнейших уведомлений

Диаграмма последовательности: процесс от инициализации через включение и отключение уведомления по фронтам до прекращения последующих вызовов callback. Источники: [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).

Смена состояния питания происходит в две фазы:

  1. Pwm_PreparePowerState запускает подготовку и возвращает в параметре результата PWM_SERVICE_ACCEPTED или причину отклонения [SWS_Pwm_00183] [SWS_Pwm_00165]. То, что невозможно завершить немедленно, выполняет циклически вызываемая Pwm_Main_PowerTransitionManager [SWS_Pwm_00189] [SWS_Pwm_00190]. Частота ее вызова вариативна, а callbacks она отправляет только в асинхронном режиме (SWS PWM Driver с. 41). О завершении подготовки драйвер сообщает с помощью IoHwAb_Pwm_NotifyReadyForPowerState<#Mode> [SWS_Pwm_00198].
  2. Pwm_SetPowerState переводит аппаратуру в подготовленное состояние [SWS_Pwm_00166]. Предварительные действия, такие как перевод всех каналов в состояние IDLE и отмена регистрации всех уведомлений, должны быть уже выполнены ответственными SWC, например IoHwAb. Неявные промежуточные состояния функция не выполняет (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)

Диаграмма состояний: двухфазное переключение состояния питания с подготовкой, завершением и установкой, а также ошибки последовательности. Источники: [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].
  • API состояний питания не являются реентерабельными [SWS_Pwm_00183].
  • Конфигурации с привязками разделов, которые не поддерживаются реализацией, модуль должен отклонять [SWS_Pwm_00203].

Уровни реентерабельности вплоть до «multi-core reentrant» описаны в руководстве по распределению BSW (BSW-Distribution-Guide) (BSW Distribution Guide с. 18).

Поведение при ошибке

Если обнаружение ошибок разработки активно, функции сообщают об обнаруженных ошибках в 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_E_PARAM_POINTER (0x15) для параметра NULL в Pwm_GetVersionInfo

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

Если Pwm_SetPowerState вызывается, когда каналы всё ещё находятся не в IDLE или зарегистрированы уведомления, возникает ошибка времени выполнения PWM_E_NOT_DISENGAGED (0x16) [SWS_Pwm_00202] (SWS PWM Driver с. 20). Pwm_Main_PowerTransitionManager просто возвращает управление без инициализации и намеренно не сообщает об ошибке разработки. Причина: циклические задачи могут выполняться ещё до завершения инициализации (SWS PWM Driver с. 41).

Дальнейшие подробные доказательства

Руководство, сгенерированное ИИ на основе требований и фрагментов документов для AUTOSAR Classic R20-11, предоставленных в полезной нагрузке. Обязательную силу имеет исключительно спецификация.

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.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 0770524664d2 Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронная функция Pwm_Init служит центральной службой для инициализации всего драйвера PWM ([SWS_Pwm_00095]). Она предоставляется через заголовочный файл Pwm.h и имеет шестнадцатеричный идентификатор службы 0x00 ([SWS_Pwm_00095]). В качестве единственного входного параметра передаётся ConfigPtr, который выступает в роли указателя на специфичный для драйвера набор конфигурации типа Pwm_ConfigType ([SWS_Pwm_00095]). Интерфейс не имеет возвращаемого значения и не использует ни выходных, ни входных/выходных параметров ([SWS_Pwm_00095]).

С точки зрения поведения во время выполнения Pwm_Init является синхронной и специфицирована как нереентерабельная (Non Reentrant) ([SWS_Pwm_00095]). Поэтому одновременный или прерывающий вызов этой функции из нескольких потоков, задач или подпрограмм обработки прерываний строго недопустим. Выполнение, как правило, должно происходить однократно во время запуска системы на этапе инициализации электронного блока управления перед дальнейшим использованием каналов PWM. Вопрос Q-ff3f1cf769dfed70 (открытый)

Для обеспечения допустимого порядка вызовов модуль отслеживает свое состояние: если сервис Pwm_Init вызывается, когда драйвер PWM уже инициализирован, модуль сообщает об ошибке разработки PWM_E_ALREADY_INITIALIZED с идентификатором 0x14 ([SWS_Pwm_50002]). Таким образом, повторная инициализация расценивается как ошибка.

Этот текст был создан ИИ. Спецификации AUTOSAR имеют преимущественную силу.

Руководство разработчика реализации в подготовке (сложность I1)

функция Pwm_DeInit [SWS_Pwm_00096] 📄 PDF

void Pwm_DeInit (void);

Service for PWM De - Initialization.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: e8e4048754f1 Происхождение Открытые вопросы (2)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование и сигнатура

Функция Pwm_DeInit служит сервисом для деинициализации драйвера PWM ([SWS_Pwm_00096]). Она предоставляется через заголовочный файл Pwm.h и имеет идентификатор сервиса 0x01 ([SWS_Pwm_00096]). Интерфейс имеет сигнатуру void Pwm_DeInit(void), не принимает ни входных, ни выходных параметров и не возвращает значения вызывающей стороне ([SWS_Pwm_00096]).

Вызов Pwm_DeInit выполняется синхронно ([SWS_Pwm_00096]). Таким образом, вызывающий поток управления остается в функции до тех пор, пока шаги деинициализации модуля PWM не будут завершены.

Параллелизм и ограничения

Для выполнения действуют следующие граничные условия относительно параллелизма:

  • Не реентерабельный: сервис специфицирован как нереентерабельный ([SWS_Pwm_00096]). Одновременный или прерывающий вызов из нескольких потоков, задач или ISR недопустим.
  • Контекст вызова: ввиду синхронной семантики и отсутствия реентерабельности вызов обычно должен осуществляться в рамках контролируемой фазы останова (Shutdown) на уровне задач. Вопрос 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.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 2d97fc6435bd Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Функция Pwm_DisableNotification служит для отключения уведомления по фронтам сигнала (Signal Edge Notification) определенного канала PWM [SWS_Pwm_91003]. Объявление функции и связанные определения типов предоставляются через заголовочный файл Pwm.h [SWS_Pwm_91003].

Параметры и возвращаемое значение

Интерфейс имеет Service 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].

Интерпретация: поскольку реентерабельность явно ограничена различными каналами, для одного и того же канала PWM функция, вероятно, не является реентерабельной [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.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 0c9ffc1eca13 Происхождение Открытые вопросы (2)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование

Функция Pwm_EnableNotification служит для активации уведомлений о фронтах сигнала для определенного канала PWM в соответствии с переданным параметром уведомления [SWS_Pwm_91004]. Сервис предоставляется через заголовочный файл Pwm.h, имеет идентификатор сервиса 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.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: b7532b0354d7 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронная функция Pwm_SetPowerState переводит модуль PWM в предварительно подготовленное состояние из предварительно сконфигурированного набора Power-States [SWS_Pwm_00166]. Объявление доступно через заголовок Pwm.h [SWS_Pwm_00166].

Использование и возвращаемые значения

Функция не принимает входных параметров и передает подробный результат через параметр-указатель Result типа Pwm_PowerStateRequestResultType* [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.

Руководство разработчика реализации в подготовке (сложность 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

СОЗДАНО ИИ не проверено Модель: 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

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 879296577e8e Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Интерфейс Pwm_Main_PowerTransitionManager служит для циклического контроля переходов энергетических состояний (Power State Transitions) драйвера PWM согласно [SWS_Pwm_00189]. Он имеет идентификатор сервиса 0x0d, не принимает передаваемых параметров и не возвращает значения (сигнатура void Pwm_Main_PowerTransitionManager(void)).

В рамках своего циклического выполнения функция проверяет эксплуатационную готовность модуля для соответствующего энергетического состояния. Как только готовность достигнута, она запускает функции обратного вызова для уведомления IoHwAb_Pwm_NotifyReadyForPowerState<Mode>, на которые ссылается конфигурационный параметр PwmPowerStateReadyCbkRef [SWS_Pwm_00189].

Функция предназначена для циклического контекста вызова и предоставляется через заголовочный файл SchM_Pwm.h. Как следствие, периодический вызов обычно должен осуществляться в контексте планировщика BSW (Schedule Manager) [SWS_Pwm_00189]. Специфические коды ошибок, механизмы обработки ошибок через DET или DEM, а также особые условия реентерабельности в спецификации модуля для этого сервиса не определены. Вопрос Q-b9b0431e7ccbca88 (открытый)

Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR R20-11.

Руководство разработчика реализации в подготовке (сложность 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>.

СОЗДАНО ИИ не проверено Модель: 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_EdgeNotificationType, который различает нарастающие (PWM_RISING_EDGE), спадающие (PWM_FALLING_EDGE) или оба фронта сигнала (PWM_BOTH_EDGES) [SWS_Pwm_00109]. Перед генерацией сигналов и уведомлением о событиях модуль PWM должен быть инициализирован через Pwm_Init аппаратно-зависимой структурой Pwm_ConfigType [SWS_Pwm_00095], [SWS_Pwm_00111].

В отношении параллелизма реентерабельность функции обратного вызова явно определена как зависящая от пользователя (PWM user implementation dependant) [SWS_Pwm_00105]. Точный контекст выполнения (например, выполняется ли вызов непосредственно в подпрограмме обработки прерываний или в контексте задачи), вероятно, зависит от базовой реализации драйвера (интерпретация). Вопрос Q-327872e0e8fecb37 (открытый) Специфические коды ошибок, возвращаемые значения или стандартизированные сообщения DET или DEM для этого интерфейса уведомлений отсутствуют [SWS_Pwm_00105].

Этот текст был создан ИИ и основан на спецификации 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.

СОЗДАНО ИИ не проверено Модель: 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].

В отношении использования, характеристик интерфейса и системного взаимодействия действуют следующие обязательные требования:

  • Использование и контекст вызова: интерфейс имеет Service ID 0x60 и выполняется синхронно [SWS_Pwm_00198]. Он должен обязательно вызываться драйвером PWM, как только подготовка со стороны устройства к запрошенному состоянию мощности (Power State) некоторого режима успешно завершена [SWS_Pwm_00198].
  • Параметры и возвращаемые значения: сигнатура функции не определяет ни входных, ни входных/выходных, ни выходных параметров и не имеет возвращаемого значения (void) [SWS_Pwm_00198]. Интерпретация: соответствие конкретному режиму энергопотребления, вероятно, напрямую определяется специфичным для режима именем функции в исходном коде. Вопрос Q-ab761160ed91de78 (открытый)
  • Параллелизм и ограничения: функция специфицирована как нереентерабельная (Non Reentrant) [SWS_Pwm_00198]. Следовательно, вызовы не должны осуществляться параллельно или быть вложенными в пределах одного и того же контекста драйвера.
  • Взаимодействие: в межмодульном процессе вызов сигнализирует вышестоящему уровню абстракции аппаратного обеспечения ввода-вывода (I/O Hardware Abstraction) о том, что каскад драйвера готов к переходу в требуемое рабочее состояние [SWS_Pwm_00198].

В источниках спецификации для этой функции не предусмотрено специфических кодов ошибок, а также сообщений в DET или DEM [SWS_Pwm_00198].

Этот текст был создан ИИ; все утверждения опираются исключительно на спецификацию AUTOSAR.

Руководство разработчика реализации в подготовке (сложность I1)

тип Pwm_OutputStateType [SWS_Pwm_00108] 📄 PDF

Output state of a PWM channel.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 4d670762d069 Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Перечислимый тип Pwm_OutputStateType определяет выходное состояние канала PWM в драйвере Classic AUTOSAR 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.

Руководство разработчика реализации в подготовке (сложность 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.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 615a415d7a52 Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Перечислимый тип Pwm_PowerStateRequestResultType возвращает результат запросов на изменение состояния режима управления питанием (Power State Transitions) в драйвере PWM согласно [SWS_Pwm_00165]. Определение типа доступно через заголовок Pwm.h [SWS_Pwm_00165].

Тип отображает как успешный переход, так и специфические условия ошибок [SWS_Pwm_00165]:

  • PWM_SERVICE_ACCEPTED (0x00): запрошенная смена Power-State была успешно выполнена [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 (открытый)

Этот текст был сгенерирован ИИ и служит в качестве справочного руководства. Определяющей является спецификация AUTOSAR.

Руководство разработчика реализации в подготовке (сложность I1)

тип Pwm_PowerStateType [SWS_Pwm_00197] 📄 PDF

Power state currently active or set as target power state.

СОЗДАНО ИИ не проверено Модель: 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.

Руководство разработчика реализации в подготовке (сложность 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#5a8627e1
Content hash
5a8627e1
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);
Pwm_GetVersionInfo функция

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…

Pwm_SetDutyCycle функция

Service sets the duty cycle of the PWM channel.

void Pwm_SetDutyCycle (Pwm_ChannelType ChannelNumber, uint16 DutyCycle);
Pwm_SetOutputToIdle функция

Service sets the PWM output to the configured Idle state.

void Pwm_SetOutputToIdle (Pwm_ChannelType ChannelNumber);
Pwm_SetPeriodAndDuty функция

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

void Pwm_SetPeriodAndDuty (Pwm_ChannelType ChannelNumber, Pwm_PeriodType Period, uint16 DutyCycle);
Pwm_SetPowerState функция

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);
Pwm_GetOutputState функция

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);
Pwm_EnableNotification функция

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);
Pwm_Notification_ функция

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);
Pwm_PreparePowerState функция

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.