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 دورة التشغيل، والدور أيضًا في القنوات ذات الدور المتغير. ويمكنهم تبديل المخارج إلى حالة الخمول (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، ويبلغ برنامج التشغيل بالإشعارات والأخطاء. المصادر: [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) بين التضمين والمستوى الثابت وحالة الخمول. المصادر: [SWS_Pwm_91000]، [SWS_Pwm_91001]، SWS PWM Driver ص. 31

يتم تفعيل إشعارات الحواف لكل قناة باستخدام Pwm_EnableNotification [SWS_Pwm_91004] وتصل كـ Pwm_Notification_<#Channel> إلى مستخدم Pwm [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

يغلف برنامج تشغيل 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. ويتم استدعاؤه دوريًا بواسطة المجدول، ويبلغ مستخدم Pwm بالإشعارات و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 متزامنة وغير قابلة لإعادة الدخول (non-reentrant). وتتلقى الدالة باستخدام 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.
  • يجب كبت النبضات التداخلية (Spikes) عند المخرج.
  • يتم تمرير دورة التشغيل لضمان توافق التردد ودورة التشغيل معًا.
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، أي قبل منطق المنفذ (Port-Logik) وليس عند الطرف الفيزيائي (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 (إعادة التنشيط عند دورة متغيرة)

مخطط الحالات: حالات المخرج لقناة ما (التضمين، والمستوى الثابت، والخمول) وواجهات برمجة التطبيقات (APIs) التي تنتقل بينها. المصادر: [SWS_Pwm_91000]، [SWS_Pwm_91001]، [SWS_Pwm_91002]، SWS PWM Driver ص. 28، SWS PWM Driver ص. 31، SWS PWM Driver ص. 46

إشعارات الحواف لكل قناة

باستخدام Pwm_EnableNotification، يقوم مستخدم Pwm بتفعيل الإشعار لقناة ما. ويختار المعامل من النوع 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 [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()لا توجد إشعارات أخرى

مخطط تسلسلي: التسلسل من التهيئة مرورًا بتشغيل إشعار الحافة وإيقافه حتى توقف ورود المزيد من استدعاءات رد النداء. المصادر: [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 نشطًا، فسيتم إنشاء واجهات برمجة التطبيقات الأربع لحالات القدرة (SWS PWM Driver ص. 16). ويتعرف Pwm_PowerStateType على PWM_FULL_POWER (0x00) وكذلك النطاق 1..255 للحالات ذات الاستهلاك المتناقص. وفي R20-11، تم تعريف النوع كنوع تعداد (Enumeration) [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] المستدعاة دوريًا. ومعدل استدعائها متغير، ولا ترسل استدعاءات رد النداء إلا في الوضع غير المتزامن (SWS PWM Driver ص. 41). ويبلغ برنامج التشغيل عن اكتمال التحضير بـ IoHwAb_Pwm_NotifyReadyForPowerState<#Mode> [SWS_Pwm_00198].
  2. ينقل Pwm_SetPowerState العتاد إلى الحالة المحضرة [SWS_Pwm_00166]. ويجب أن تكون مكونات البرمجيات (SWCs) المسؤولة، مثل IoHwAb، قد أنجزت بالفعل المتطلبات المسبقة مثل ضبط جميع القنوات على IDLE وإلغاء تسجيل جميع الإشعارات. ولا تنفذ الدالة أي حالات وسيطة ضمنية (SWS PWM Driver ص. 36).
powerzustand uninit غير مهيأ (النتيجة PWM_NOT_INIT) stabil stabil (aktueller = Zielzustand) uninit->stabil Pwm_Init stabil->stabil Pwm_SetPowerState دون تحضير أو التحضير مع الحالة الحالية ← 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

التكوين، وحاويات القنوات والتزامن

المعاملات الإلزامية لقناة ما هي قناة العتاد المخصصة، والقيم الافتراضية للدور ودورة التشغيل، والقطبية، ومستوى الخمول وفئة القناة. وتعتبر إزاحة الطور والقناة المرجعية والخصائص الخاصة بالمتحكم الدقيق اختيارية، طالما كان العتاد يوفرها (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 قابلة لإعادة الدخول (reentrant) لأرقام القنوات المختلفة [SWS_Pwm_91000].
  • واجهات برمجة التطبيقات لحالة القدرة غير قابلة لإعادة الدخول [SWS_Pwm_00183].
  • يجب على الوحدة رفض التكوينات ذات تعيينات الأقسام التي لا يدعمها التنفيذ [SWS_Pwm_00203].

يشرح دليل توزيع BSW مستويات إمكانية إعادة الدخول وصولاً إلى «إعادة الدخول عبر أنوية متعددة» (multi-core reentrant) (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

مخطط النشاط: الفحوصات العامة لواجهات برمجة التطبيقات الخاصة بالقنوات عند تنشيط اكتشاف أخطاء التطوير، مع الإلغاء دون أي تأثير. المصادر: [SWS_Pwm_20002]، [SWS_Pwm_30002]، [SWS_Pwm_30051]، SWS PWM Driver ص. 44

تبلغ واجهات برمجة التطبيقات لحالة القدرة عن الأخطاء بشكل إضافي عبر 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]). وبالتالي، فإن الاستدعاء المتزامن أو المقاطع لهذه الدالة من عدة سلاسل عمليات (Threads) أو مهام (Tasks) أو روتينات مقاطعة غير مسموح به تماماً. ويُرجح أن يتم التنفيذ نموذجياً لمرة واحدة أثناء بدء تشغيل النظام في مرحلة تهيئة وحدة التحكم الإلكترونية قبل الاستخدام الإضافي لقنوات 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]). ويُعد الاستدعاء المتزامن أو المقاطع من عدة مسارات تنفيذ (threads) أو مهام (tasks) أو ISRs غير مسموح به.
  • سياق الاستدعاء: نظرًا للدلالات المتزامنة والافتقار إلى قابلية إعادة الدخول، يُرجح أن يتم الاستدعاء عادةً في إطار مرحلة إيقاف تشغيل خاضعة للرقابة على مستوى المهام (task-level). سؤال 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].

المعلَمات وقيمة الإرجاع

تمتلك الواجهة معرّف الخدمة 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]. وفيما يتعلق بسلوك تعدد الخيوط (Multithreading)، فإن الخدمة قابلة لإعادة الدخول طالما تتم مخاطبة أرقام قنوات مختلفة [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، أو شروط خاصة لقابلية إعادة الدخول (Reentrancy) لهذه الخدمة. سؤال 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].

فيما يتعلق بالتزامن، تم تحديد قابلية إعادة الدخول لدالة رد النداء (callback) صراحةً على أنها معتمدة على المستخدم (PWM user implementation dependant) [SWS_Pwm_00105]. ويُرجح أن يعتمد سياق التنفيذ الدقيق (مثل ما إذا كان الاستدعاء يتم مباشرة في روتين خدمة المقاطعة أو في سياق المهمة) على تنفيذ المشغل الأساسي (تفسير). سؤال Q-327872e0e8fecb37 (مفتوح) ولا توجد رموز خطأ محددة أو قيم إرجاع أو رسائل DET أو DEM موحدة لواجهة الإشعار هذه [SWS_Pwm_00105].

تم إنشاء هذا النص بواسطة ذكاء اصطناعي ويستند إلى مواصفة AUTOSAR Classic الإصدار 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 وتعمل كواجهة استدعاء راجع (Callback) في إدارة الطاقة في AUTOSAR [SWS_Pwm_00198].

فيما يتعلق بالاستخدام وخصائص الواجهة والتفاعل مع النظام، تسري الاشتراطات الإلزامية التالية:

  • الاستخدام وسياق الاستدعاء: تمتلك الواجهة معرّف الخدمة 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#7c296a19
Content hash
7c296a19
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.