DEENESPTFRRUARHIKOZHNL

Watchdog Driver (Wdg)

ModulWdg (Watchdog Driver)
BSW-Modul-ID102
Standard-Header#include "Wdg.h"
SWS-SpezifikationAUTOSAR_SWS_WatchdogDriver.pdf
ClusterMicrocontroller Abstraction (MCAL)

دليل الوحدةمولَّد بالذكاء الاصطناعي

يخدم عتاد مراقب التشغيل (Watchdog) وفقًا لشرط تحفيز محدد زمنيًا ويبدّل أوضاع تشغيله.
مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: claude-opus-5-5 · الجهد: high · درجة الحرارة: غير قابل للتحكم · الموجّه: 826a1515b822 المصدر أسئلة مفتوحة (3)
المرساة السببية: R20-11 صالح اعتبارًا من R20-11 مُركَّب حديثًا لهذا الإصدار من المواصفة.
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

يخدم عتاد مراقب التشغيل (Watchdog) وفقًا لشرط تحفيز محدد زمنيًا ويبدّل أوضاع تشغيله.

يتحكم مشغل مراقب التشغيل في عتاد Watchdog الداخلي أو الخارجي بتكليف من Watchdog Manager. ويضبط هذا الأخير عبر Watchdog Interface شرط تحفيز محددًا زمنيًا فقط. وطالما أنه سارٍ، يطلق المشغل نبضات تحفيز العتاد بنفسه؛ وبعد ذلك تنتهي مهلة مراقب التشغيل [SWS_Wdg_00144]. يضبط Wdg_Init الوضع الافتراضي والمهلة الزمنية من التكوين، ويبدل Wdg_SetMode بين الوضع OFF والوضع SLOW والوضع FAST [SWS_Wdg_00160]. تسبب المهلة الزمنية 0 إعادة تعيين شبه فورية، ولا يمكن إيقاف تشغيل مراقب التشغيل إلا إذا كان التكوين يسمح بذلك.

يتحكم مشغل مراقب التشغيل Wdg في عتاد Watchdog عبر أربع خدمات متزامنة: Wdg_Init وWdg_SetMode وWdg_SetTriggerCondition وWdg_GetVersionInfo ([SWS_Wdg_00106]، [SWS_Wdg_00107]، [SWS_Wdg_00155]، [SWS_Wdg_00109]). يستدعي EcuM الخدمة Wdg_Init. ولا يصل Watchdog Manager إلى المشغل إلا عبر Watchdog Interface، التي تحدد النسخة عبر DeviceIndex (SWS WdgIf ص. 17). وتصل النسخ الداخلية مباشرة إلى العتاد، بينما تصل النسخ الخارجية عبر SPI أو DIO ([SWS_Wdg_00161]، [SWS_Wdg_00076]). وتقدم كلتاهما نفس API [SWS_Wdg_00077].

kontext cluster_wdg Wdg-Instanzen (Namen je Instanz erweitert) EcuM EcuM (ECU State Manager) WdgInt Wdg (interner Watchdog) EcuM->WdgInt Wdg_Init WdgExt Wdg (externer Watchdog) EcuM->WdgExt Wdg_Init WdgM WdgM (Watchdog Manager) WdgIf WdgIf (Watchdog Interface) Auswahl per DeviceIndex WdgM->WdgIf WdgIf_SetMode WdgIf_SetTriggerCondition WdgIf->WdgInt Wdg_SetMode Wdg_SetTriggerCondition WdgIf->WdgExt Wdg_SetMode Wdg_SetTriggerCondition HwInt interne Watchdog-Hardware WdgInt->HwInt direkter Zugriff Det Det (optional) WdgInt->Det Det_ReportError Dem Dem (اختياري) WdgInt->Dem Dem_SetEventStatus SpiDio Spi / Dio (المعالج أو المشغّل البرمجي) WdgExt->SpiDio واجهة برمجة تطبيقات API الخاصة بالمعالج/المشغّل البرمجي WdgExt->Det Det_ReportError WdgExt->Dem Dem_SetEventStatus HwExt externe Watchdog-Hardware SpiDio->HwExt الوصول إلى المسرى أو الطرف

مخطط السياق: يبتدئ EcuM نُسخ Wdg، ويتحكم WdgM بها عبر WdgIf. وتصل النسخ الخارجية إلى العتاد عبر Spi/Dio. المصادر: [SWS_Wdg_00076]، [SWS_Wdg_00161]، SWS WdgM ص. 86

جوهر الوحدة هو شرط التحفيز. ويُعد بمثابة إذن لخدمة مراقب التشغيل للـ n مللي ثانية القادمة. وطالما أنه صالح، يطلق المشغل نبضات التحفيز بنفسه؛ وبعد ذلك تنتهي مهلة مراقب التشغيل [SWS_Wdg_00144]. يعيد Wdg_SetTriggerCondition ضبط العداد ويحول المللي ثوانٍ إلى قيمة عداد وفقًا للوضع ([SWS_Wdg_00136]، [SWS_Wdg_00139]). يطلق روتين الخدمة الداخلي نبضات التحفيز ويخفض القيمة طالما أن العداد أكبر من الصفر. وعند الصفر، يتوقف عن التحفيز ([SWS_Wdg_00134]، [SWS_Wdg_00135]). تفرض المهلة الزمنية 0 إعادة تعيين (شبه) فورية، ولا يمكن إعادة تحميل العداد بعد انتهاء مهلته [SWS_Wdg_00140].

إطلاق تشغيل مفكوك الاقتران عبر شرط المشغّلWdgMWdgIfWdgTimer-HardwareWatchdog-HardwareUse Case: Triggerbedingung erneuernWdgIf_SetTriggerCondition(DeviceIndex, Timeout)Wdg_SetTriggerCondition(timeout)إعادة تعيين عدّاد المشغّلالعودةالعودةUse Case: الخدمة في المشغّل البرمجيloopje Timer-InterruptInterruptaltعدّاد المشغّل > 0إنقاص عدّاد المشغّلHardware triggern(مع رمز التنشيط إن وجد)عدّاد المشغّل = 0لا يوجد إطلاق تشغيل: تنتهي مهلة المراقِب Watchdogويقوم بإعادة ضبط وحدة التحكم الإلكترونية ECU

مخطط التسلسل: يعيد WdgM تحميل العداد فقط، ويطلق مقاطعة المؤقت في المشغل عملية التحفيز. وعند وصول العداد إلى 0، تنتهي مهلة مراقب التشغيل. المصادر: SWS Wdg الشكل 9.2 ص. 31، [SWS_Wdg_00134]، [SWS_Wdg_00135]

يضبط Wdg_Init الوضع الافتراضي وفترة المهلة الزمنية من طقم التكوين Wdg_ConfigType [SWS_Wdg_00001]. ويبدل Wdg_SetMode بين WDGIF_OFF_MODE وWDGIF_SLOW_MODE وWDGIF_FAST_MODE ويعيد E_OK فقط عند اكتمال التبديل ([SWS_Wdg_00160]، [SWS_Wdg_00103]). ولا يوجد إلغاء للتهيئة. ويتم إيقاف التشغيل عبر الوضع OFF [SWS_Wdg_00031]، وذلك فقط إذا كان WdgDisableAllowed يسمح به [SWS_Wdg_00025].

في حالة الخطأ، يبلغ Wdg عن أخطاء التطوير WDG_E_DRIVER_STATE وWDG_E_PARAM_MODE وWDG_E_PARAM_CONFIG وWDG_E_PARAM_TIMEOUT [SWS_Wdg_00010]. يُضاف إلى ذلك أخطاء الإنتاج WDG_E_MODE_FAILED وWDG_E_DISABLE_REJECTED ([SWS_Wdg_00016]، [SWS_Wdg_00179]). ومن المرجح أن يُبلّغ عن أخطاء الإنتاج هذه عبر Dem_SetEventStatus [SWS_Wdg_00111]. سؤال Q-f0ec41b842ebbdc9 (مفتوح)

الدور في حزمة مراقب التشغيل: المشغل الذي يتولى عملية التحفيز بنفسه

يتحكم مشغل مراقب التشغيل Wdg في عتاد Watchdog عبر API متزامنة وصغيرة تشتمل على أربع خدمات، وجميعها متاحة عبر Wdg.h: Wdg_Init (معرّف الخدمة 0x00)، وWdg_SetMode (0x01)، وWdg_SetTriggerCondition (0x03)، وWdg_GetVersionInfo (0x04). الخدمة Wdg_GetVersionInfo وحدها فقط قابلة لإعادة الدخول ([SWS_Wdg_00106]، [SWS_Wdg_00107]، [SWS_Wdg_00155]، [SWS_Wdg_00109]). ولا توجد واجهة لإلغاء التهيئة عن قصد. إذا سمح العتاد والبيئة بإيقاف التشغيل، فيتم ذلك عبر Wdg_SetMode باستخدام الوضع OFF [SWS_Wdg_00031].

تستدعي البرمجيات الأساسية BSW هذه الخدمات. يستدعي ECU State Manager الخدمة Wdg_Init (SWS EcuM ص. 34). ويتطلب Watchdog Manager الخدمتين WdgIf_SetMode وWdgIf_SetTriggerCondition (SWS WdgM ص. 86). وتُسقط Watchdog Interface هذه الاستدعاءات على المشغل وتحدد النسخة عبر DeviceIndex ذي أساس صفري من النوع uint8. وإذا جرى تكوين مشغل واحد فقط، فيجب ألا يسبب هذا الإسقاط عبئًا إضافيًا على وقت التشغيل، على سبيل المثال عبر الماكروهات (SWS WdgIf ص. 17). يقع التحفيز الزمني بالكامل على عاتق المشغل. ويقوم Watchdog Manager بضبط شرط التحفيز فقط (SWS WdgM ص. 56؛ [SWS_Wdg_00144]).

تختلف النسخ تجاه العتاد. حيث تصل النسخة المخصصة لمراقب تشغيل داخلي إلى العتاد مباشرة [SWS_Wdg_00161]. وتستخدم النسخة المخصصة لمراقب تشغيل خارجي API الخاصة بالمعالج أو المشغل، مثل SPI أو DIO [SWS_Wdg_00076]. اختياريًا، يستخدم Wdg Det_ReportError لأخطاء التطوير وDem_SetEventStatus لحالة المراقبة [SWS_Wdg_00111].

kontext cluster_wdg Wdg-Instanzen (Namen je Instanz erweitert) EcuM EcuM (ECU State Manager) WdgInt Wdg (interner Watchdog) EcuM->WdgInt Wdg_Init WdgExt Wdg (externer Watchdog) EcuM->WdgExt Wdg_Init WdgM WdgM (Watchdog Manager) WdgIf WdgIf (Watchdog Interface) Auswahl per DeviceIndex WdgM->WdgIf WdgIf_SetMode WdgIf_SetTriggerCondition WdgIf->WdgInt Wdg_SetMode Wdg_SetTriggerCondition WdgIf->WdgExt Wdg_SetMode Wdg_SetTriggerCondition HwInt interne Watchdog-Hardware WdgInt->HwInt direkter Zugriff Det Det (optional) WdgInt->Det Det_ReportError Dem Dem (اختياري) WdgInt->Dem Dem_SetEventStatus SpiDio Spi / Dio (المعالج أو المشغّل البرمجي) WdgExt->SpiDio واجهة برمجة تطبيقات API الخاصة بالمعالج/المشغّل البرمجي WdgExt->Det Det_ReportError WdgExt->Dem Dem_SetEventStatus HwExt externe Watchdog-Hardware SpiDio->HwExt الوصول إلى المسرى أو الطرف

مخطط السياق: يبتدئ EcuM الوحدة Wdg، ولا يتحكم فيها WdgM إلا بشكل غير مباشر عبر WdgIf. وتصل النسخ الداخلية مباشرة إلى العتاد، بينما تصل الخارجية عبر Spi/Dio. المصادر: [SWS_Wdg_00076]، [SWS_Wdg_00161]، [SWS_Wdg_00111]، SWS WdgM ص. 86

من بدء تشغيل النظام إلى التشغيل الخاضع للمراقبة

يتلقى Wdg_Init مؤشرًا إلى طقم تكوين من النوع Wdg_ConfigType. وتعتمد هذه البنية على العتاد ([SWS_Wdg_00106]، [SWS_Wdg_00171]). تقوم الدالة بتهيئة المشغل والعتاد وتضبط الوضع الافتراضي وفترة المهلة الزمنية من هذا الطقم [SWS_Wdg_00001]. وعلاوة على ذلك، تُهيئ جميع المتغيرات العامة [SWS_Wdg_00100]. وتكتب فقط في سجلات وحدة التحكم التي لا تؤثر على وحدات العتاد الأخرى ولا تعتمد عليها. أما السجلات المشتركة الاستخدام، فتهيئها وحدة نظام شاملة [SWS_Wdg_00101]. وعند تفعيل اكتشاف أخطاء التطوير، تنتقل الحالة الداخلية بعد نجاح التهيئة من WDG_UNINIT إلى WDG_IDLE [SWS_Wdg_00019].

يوضح الشكل 9.1 من المواصفات تقسيم العمل: يبتدئ EcuM الوحدة Wdg مباشرة، وبعد ذلك يتحكم WdgM عبر WdgIf في شرط التحفيز والوضع (SWS Wdg الشكل 9.1 ص. 34). الأمر المهم للقائمين على التكامل: بدءًا من Wdg_Init، يسري الوضع الافتراضي المكون وفترة المهلة الزمنية الأولية [SWS_Wdg_00001]. وإذا لم يكن هذا الوضع هو OFF، فيجب على النسخة المتحكمة تجديد شرط التحفيز داخل النافذة الزمنية، وإلا ستنتهي مهلة مراقب التشغيل [SWS_Wdg_00144].

التهيئة وشرط الإطلاق وتغيير الوضعEcuMWdgMWdgIfWdgUse Case: InitialisierungWdg_Init(ConfigPtr)تهيئة المتغيرات العامة والسجلاتتعيين الوضع الافتراضي وفترة المهلةمع اكتشاف أخطاء التطوير:WDG_UNINIT -> WDG_IDLEالعودةUse Case: Triggerbedingung setzenloopالتجديد قبل انتهاء النافذة الزمنيةWdgIf_SetTriggerCondition(DeviceIndex, Timeout)Wdg_SetTriggerCondition(timeout)تحويل ms إلى قيمة عداد(مراعاة الوضع الحالي)العودةالعودةUse Case: ModuswechselWdgIf_SetMode(DeviceIndex, WdgMode)Wdg_SetMode(Mode)E_OK / E_NOT_OKقيمة الإرجاع لـ Wdg_SetMode

مخطط التسلسل: تلي التهيئةَ بواسطة EcuM عمليةُ ضبط شرط التحفيز وتبديل الوضع بواسطة WdgM عبر WdgIf. المصادر: SWS Wdg الشكل 9.1 ص. 34، [SWS_Wdg_00001]، [SWS_Wdg_00019]، [SWS_Wdg_00139]، SWS WdgIf ص. 18

شرط التحفيز: إذن محدد زمنيًا للخدمة

لا تتم خدمة العتاد عبر استدعاءات تحفيز فردية من الخارج. بدلاً من ذلك، يسري شرط تحفيز: طالما أنه صالح، يخدم المشغل العتاد بنفسه. وإذا أصبح غير صالح، يوقف التحفيز، وتنتهي مهلة مراقب التشغيل [SWS_Wdg_00144]. تصف المواصفات الشرط بأنه «إذن لخدمة مراقب التشغيل للـ n مللي ثانية القادمة». ويجب على النسخة المتحكمة تجديده داخل هذه النافذة [SWS_Wdg_00144].

يعيد Wdg_SetTriggerCondition(uint16 timeout) ضبط عداد المهلة الزمنية وفقًا للقيمة الممررة ([SWS_Wdg_00155]، [SWS_Wdg_00136]). وتُفسر القيمة على أنها مللي ثوانٍ. يحولها المشغل داخليًا إلى قيمة عداد [SWS_Wdg_00138] مع مراعاة الوضع الحالي [SWS_Wdg_00139]. القيمة 0 مسموح بها: فهي تنهي التحفيز بشكل (شبه) فوري وتؤدي بذلك إلى إعادة تعيين (شبه) فورية لمراقب التشغيل. وإذا كان العداد المخزن مضبوطًا بالفعل على 0، تتجاهل الدالة أي قيمة جديدة [SWS_Wdg_00140]. وبالتالي، لا يمكن إعادة تحميل العداد بعد انتهاء مهلته.

يتولى روتين خدمة داخلي بالمشغل عملية التحفيز الفعلية. إذا كان عداد التحفيز أكبر من الصفر، يقوم الروتين بإنقاصه ويحفز العتاد [SWS_Wdg_00134]. وإذا وصل إلى الصفر، فإنه لا يفعل شيئًا، وتنتهي مهلة مراقب التشغيل [SWS_Wdg_00135]. إذا نُفذت الخدمة كروتين مقاطعة، فإن إطارات المقاطعة تنتمي إلى Wdg_Irq.c [SWS_Wdg_00079]. ويوضح الشكل 9.2 لذلك مقاطعة مؤقت تطلق التحفيز باستقلالية زمنية عن الاستدعاء عبر WdgIf (SWS Wdg الشكل 9.2 ص. 31).

إطلاق تشغيل مفكوك الاقتران عبر شرط المشغّلWdgMWdgIfWdgTimer-HardwareWatchdog-HardwareUse Case: Triggerbedingung erneuernWdgIf_SetTriggerCondition(DeviceIndex, Timeout)Wdg_SetTriggerCondition(timeout)إعادة تعيين عدّاد المشغّلالعودةالعودةUse Case: الخدمة في المشغّل البرمجيloopje Timer-InterruptInterruptaltعدّاد المشغّل > 0إنقاص عدّاد المشغّلHardware triggern(مع رمز التنشيط إن وجد)عدّاد المشغّل = 0لا يوجد إطلاق تشغيل: تنتهي مهلة المراقِب Watchdogويقوم بإعادة ضبط وحدة التحكم الإلكترونية ECU

مخطط التسلسل: يقتصر دور WdgM على إعادة تحميل عداد التحفيز، بينما تطلق مقاطعة المؤقت في المشغل عملية التحفيز نفسها. وعند وصول العداد إلى القيمة 0، يتعطل التحفيز وتنتهي مهلة مراقب التشغيل. المصادر: SWS Wdg الشكل 9.2 ص. 31، [SWS_Wdg_00134]، [SWS_Wdg_00135]، [SWS_Wdg_00136]، [SWS_Wdg_00093]

triggerbedingung start Wdg_SetTriggerCondition(timeout) pruefMax اكتشاف أخطاء التطوير نشط و timeout > WdgMaxTimeout؟ start->pruefMax fehler الإبلاغ عن WDG_E_PARAM_TIMEOUT عدم إعادة تحميل العداد pruefMax->fehler نعم pruefNull العداد المخزن = 0؟ pruefMax->pruefNull لا ende العودة إلى المستدعي fehler->ende ignorieren عدم القيام بأي إجراء (تجاهل القيمة الممررة) pruefNull->ignorieren نعم umrechnen تحويل الأجزاء من الألف من الثانية إلى قيمة عداد (مراعاة الوضع الحالي) pruefNull->umrechnen لا ignorieren->ende laden إعادة تعيين عداد المهلة umrechnen->laden pruefT0 timeout = 0? laden->pruefT0 reset ينتهي الإطلاق فورًا (تقريبًا) -> إعادة تعيين Watchdog لـ ECU pruefT0->reset نعم weiter روتين المعالجة يُطلق، طالما أن العداد > 0 pruefT0->weiter لا reset->ende weiter->ende

مخطط النشاط: يرفض Wdg_SetTriggerCondition المهلات الزمنية الكبيرة للغاية، ويتجاهل القيم الجديدة عندما يكون العداد قد انتهت مهلته بالفعل، ويحول خلاف ذلك إلى قيمة عداد وفقًا للوضع. التفسير: لا تحدد المواصفات ترتيب عمليتي الفحص هاتين. المصادر: [SWS_Wdg_00146]، [SWS_Wdg_00140]، [SWS_Wdg_00138]، [SWS_Wdg_00139]، SWS Wdg ص. 29

أوضاع التشغيل OFF وSLOW وFAST

يبدل Wdg_SetMode المشغل والعتاد من الوضع الحالي إلى WDGIF_OFF_MODE أو WDGIF_SLOW_MODE أو WDGIF_FAST_MODE. ويتوافق كل وضع مع إعداد مكوّن بشكل ثابت، مثل Toggle-Watchdog أو Window-Watchdog بفترات مهلة زمنية مختلفة [SWS_Wdg_00160]. توجد المعلمات الخاصة بالعتاد لكل وضع في طقم التكوين الذي يُمرر إلى Wdg_Init [SWS_Wdg_00051]. يستورد Wdg النوع WdgIf_ModeType من WdgIf.h [SWS_Wdg_00105]. ويُظهر نموذج تكوين أقدم لذلك الحاويات WdgSettingsFast وWdgSettingsSlow وWdgSettingsOff بالإضافة إلى WdgDefaultMode (ECUC-Parameter الشكل 5.21 ص. 377).

يعيد Wdg_SetMode القيمة E_OK فقط إذا نُفذ التبديل بالكامل وكانت لجميع معلمات المشغل والعتاد القيم الجديدة [SWS_Wdg_00103]. وتمرر WdgIf قيمة الإرجاع هذه دون تغيير (SWS WdgIf ص. 18). يحدد معامل ما قبل التجميع (Pre-Compile) WdgDisableAllowed ما إذا كان يُسمح بإيقاف تشغيل مراقب التشغيل. فإذا كان مضبوطًا على OFF، تُرفض التهيئة بوضع افتراضي يؤدي إلى إيقاف التشغيل [SWS_Wdg_00025]. ويغطي الخطأ WDG_E_DISABLE_REJECTED وفقًا لوصفه أيضًا تبديل الوضع المقابل [SWS_Wdg_00179].

modi start OFF WDGIF_OFF_MODE start->OFF Wdg_Init (الوضع الافتراضي) فقط إذا كان WdgDisableAllowed != OFF SLOW WDGIF_SLOW_MODE start->SLOW Wdg_Init (Standardmodus) FAST WDGIF_FAST_MODE start->FAST Wdg_Init (Standardmodus) OFF->SLOW Wdg_SetMode OFF->FAST Wdg_SetMode SLOW->OFF Wdg_SetMode فقط إذا كان إيقاف التشغيل مسموحًا به SLOW->FAST Wdg_SetMode FAST->OFF Wdg_SetMode فقط إذا كان إيقاف التشغيل مسموحًا به FAST->SLOW Wdg_SetMode

مخطط الحالة: يضبط Wdg_Init الوضع الافتراضي المكون، وبعد ذلك يبدل Wdg_SetMode بين الأوضاع الثلاثة. ولا يمكن الوصول إلى الوضع OFF إلا إذا سمح WdgDisableAllowed بذلك. المصادر: [SWS_Wdg_00160]، [SWS_Wdg_00001]، [SWS_Wdg_00025]، [SWS_Wdg_00179]، [SWS_Wdg_00031]

الحالات الداخلية والمناطق الحصرية ورموز التنشيط

عند تفعيل اكتشاف أخطاء التطوير، يحتفظ Wdg بحالة داخلية: WDG_UNINIT حتى تنجح التهيئة، وبعدها WDG_IDLE [SWS_Wdg_00019]. ويضبط Wdg_SetMode وروتين الخدمة أثناء تنفيذهما الحالة WDG_BUSY. وكآخر عملية قبل العودة، يضبطان مجددًا WDG_IDLE ([SWS_Wdg_00018]، [SWS_Wdg_00052]). ويتحقق كلاهما مسبقًا مما إذا كانت الحالة WDG_IDLE. وإلا، يتعطل تبديل الوضع أو التحفيز، ويُبلّغ عن WDG_E_DRIVER_STATE ([SWS_Wdg_00017]، [SWS_Wdg_00035]). وبهذه الطريقة يجري اكتشاف الاستدعاءات قبل التهيئة، وكذلك تداخل تبديل الوضع مع التحفيز.

إذا كان من الضروري حظر المقاطعات من أجل اتساق البيانات، على سبيل المثال عند تبديل الوضع أو في روتين التحفيز، فينبغي أن يتم ذلك قدر الإمكان عبر منطقة حصرية لجدول BSW. ويجوز للمشغل الداخلي بصفته وحدة MCAL حظر المقاطعات مباشرة أيضًا [SWS_Wdg_00040]. ويوضح دليل توزيع BSW الخلفية: ففي مشغلات MCAL، يمكن لـ Main Function وService-API وISR الوصول إلى سجلات الأجهزة الطرفية المشتركة في سياقات تنفيذ خاصة بها (BSW Distribution Guide ص. 36).

تتطلب بعض العتاد رمز تنشيط قابلاً للتكوين أو متغيرًا. في هذه الحالة، يدير Wdg الرمز داخليًا ويمرر القيمة الصحيحة في كل مرة. ومن ثم يُحدّث العتاد المتغير الداخلي بالرمز المتوقع التالي [SWS_Wdg_00093]. ويجب اختيار دورة التحفيز بحيث يمكن ضمان حدوث هذا التحديث [SWS_Wdg_00094]. وينتمي رمز البداية القابل للتكوين إلى طقم التكوين. أما في حالة الرمز المحدد مسبقًا والثابت في العتاد، فيسقط هذا المتطلب [SWS_Wdg_00095].

zustaende start UNINIT WDG_UNINIT start->UNINIT UNINIT->UNINIT Wdg_SetMode / Bedienroutine: WDG_E_DRIVER_STATE IDLE WDG_IDLE UNINIT->IDLE Wdg_Init erfolgreich BUSY WDG_BUSY IDLE->BUSY بدء Wdg_SetMode أو روتين المعالجة BUSY->IDLE العملية الأخيرة قبل العودة BUSY->BUSY weiterer Aufruf: WDG_E_DRIVER_STATE, kein Wechsel/kein Triggern

مخطط الحالة: عند تفعيل اكتشاف أخطاء التطوير، تسري الحالات WDG_UNINIT وWDG_IDLE وWDG_BUSY. وتُرفض الاستدعاءات خارج WDG_IDLE مع WDG_E_DRIVER_STATE. المصادر: [SWS_Wdg_00019]، [SWS_Wdg_00017]، [SWS_Wdg_00018]، [SWS_Wdg_00035]، [SWS_Wdg_00052]

مراقبو التشغيل الداخليون والخارجيون: النسخ والملفات والتكوين

يمكن لوحدة التحكم الإلكترونية ECU أن تحتوي على عدة نسخ من Wdg، على سبيل المثال نسخة لمراقب تشغيل داخلي وأخرى لمراقب تشغيل خارجي. وحينئذٍ تُوسّع أسماء API وأسماء الأنواع الخاصة بالنسخة [SWS_Wdg_00172] بالإضافة إلى أسماء ملفات الشيفرة البرمجية وملفات الترويسة وفقًا لـ SRS_BSW_00347 ([SWS_Wdg_00169]، [SWS_Wdg_00170]). ويوضح الشكل 1 بنية الملفات باستخدام عناصر نائبة مثل Wdg<xxx>.h وWdg_<xxx>PBcfg.c (SWS Wdg الشكل 1 ص. 11). ويجب أن يقدم Wdg الخارجي نفس النطاق الوظيفي مع API متطابقة دلاليًا كالمشغل الداخلي [SWS_Wdg_00077]. كما يجب أن تكون شيفرته المصدرية مستقلة عن منصة المتحكم الدقيق [SWS_Wdg_00055]. ومن الأمثلة من مجال السلامة مراقب تشغيل خارجي من نوع Window-Watchdog متصل عبر SPI (EXP SafetyUseCase الشكل 4.1 ص. 20).

بنية ملف الشيفرة البرمجية ليست محددة مسبقًا بالكامل. وعند الحاجة، فإنها تشتمل على Wdg_Lcfg.c لمعلمات Link-Time وWdg_PBcfg.c لمعلمات Post-Build [SWS_Wdg_00079]. ويفحص Wdg التكوين بشكل ثابت في وقت التجميع على أقصى تقدير [SWS_Wdg_00086]. ويحدد تكوين ثابت ما إذا كانت الشيفرة تعمل من ROM أو RAM [SWS_Wdg_00168]. وبالنسبة للعتاد الخارجي، يدرج Wdg معلمات الوصول، مثل قناة SPI أو منفذ DIO، ضمن معلمات المنشورة ومعلمات التكوين الخاصة به [SWS_Wdg_00078]. وتصيغ الإصدارات الأحدث ذلك كمرجع اختيار WdgExternalContainerRef لمجموعة قنوات DIO أو تسلسل SPI أو تسلسل I2C. ولا يُذكر I2C صراحة في R20-11 (SWS Wdg ص. 40). ويفحص Wdg_SetTriggerCondition مقابل القيمة القصوى WdgMaxTimeout [SWS_Wdg_00146]. ويحتوي نموذج المعلومات المنشورة بالإضافة إلى ذلك على WdgMinTimeout وWdgResolution (ECUC-Parameter الشكل 5.22 ص. 380).

التصرف في حالة الخطأ

يميز Wdg بين أخطاء التطوير، التي يُفحص معظمها فقط عند تفعيل اكتشاف أخطاء التطوير، وأخطاء الإنتاج الموسعة. رموز الأخطاء محددة [SWS_Wdg_00010]:

  • WDG_E_DRIVER_STATE (0x10)
  • WDG_E_PARAM_MODE (0x11)
  • WDG_E_PARAM_CONFIG (0x12)
  • WDG_E_PARAM_TIMEOUT (0x13)
  • WDG_E_PARAM_POINTER (0x14)
  • WDG_E_INIT_FAILED (0x15، اختيار غير صالح لطقم التكوين)

لأخطاء التطوير، يطلب Wdg اختياريًا Det_ReportError [SWS_Wdg_00111]. حالات الخطأ للخدمات المفردة:

  • التهيئة: إذا كان طقم التكوين يقع خارج الحدود المسموح بها، يتعطل إجراء التهيئة مع WDG_E_PARAM_CONFIG [SWS_Wdg_00090]. وإذا كان الوضع الافتراضي سيوقف تشغيل مراقب التشغيل على الرغم من سريان WdgDisableAllowed==OFF، فإنها تتعطل مع WDG_E_DISABLE_REJECTED [SWS_Wdg_00025].
  • تغيير الوضع: تؤدي الحالة الخاطئة إلى WDG_E_DRIVER_STATE [SWS_Wdg_00017]. ويؤدي وضع خارج النطاق أو إعدادات عتادية غير مسموح بها إلى WDG_E_PARAM_MODE ([SWS_Wdg_00091]، [SWS_Wdg_00092]). في جميع الحالات الثلاث، لا يحدث أي تغيير، وتُرجع الدالة E_NOT_OK. وإذا فشل التغيير نفسه، بسبب إعدادات غير متسقة أو انتهاك شروط التوقيت مثلاً، فإنها تُرجع E_NOT_OK وتبلغ عن WDG_E_MODE_FAILED [SWS_Wdg_00016].
  • شرط الإطلاق: إذا تجاوزت المهلة WdgMaxTimeout، فلن يُعاد تحميل العداد، ويُبلَّغ عن WDG_E_PARAM_TIMEOUT [SWS_Wdg_00146].
  • الاستعلام عن الإصدار: يندرج المؤشر غير الصالح تحت WDG_E_PARAM_POINTER [SWS_Wdg_00010]. ويصف فحص المؤشر الفارغ (Null pointer) لـ Wdg_GetVersionInfo موضعاً توثيقياً من إصدارات أحدث (SWS Wdg ص. 30).

تتعلق أخطاء الإنتاج WDG_E_MODE_FAILED وWDG_E_DISABLE_REJECTED بالتهيئة وتغيير الوضع. ويعتمد تردد مراقبتها على الطبقة العليا ([SWS_Wdg_00178]، [SWS_Wdg_00179]). ويُبلَّغ عنها بالحالة FAILED عند فشل تعيين الوضع أو إيقافه، وبالحالة PASSED عند نجاح ذلك ([SWS_Wdg_00180]، [SWS_Wdg_00181]، [SWS_Wdg_00182]، [SWS_Wdg_00183]). ويُرجَّح أن تمر هذه البلاغات عبر Dem_SetEventStatus المطلوب اختيارياً [SWS_Wdg_00111]. سؤال (مفتوح) والحالة الأكثر خطورة لا تظهر عمداً كقيمة إرجاع: فإذا غاب شرط الإطلاق أو عُيِّن على 0، ينتهي وقت كلب الحراسة (Watchdog)، وتُعاد تهيئة وحدة التحكم الإلكترونية (ECU) ([SWS_Wdg_00135]، [SWS_Wdg_00140]).

setmode start Wdg_SetMode(Mode) pruefZustand Entwicklungsfehlererkennung aktiv: Zustand = WDG_IDLE? start->pruefZustand fehlerZustand WDG_E_DRIVER_STATE melden kein Wechsel, E_NOT_OK pruefZustand->fehlerZustand لا pruefMode هل الوضع ضمن النطاق المسموح به؟ pruefZustand->pruefMode نعم ende العودة إلى المستدعي fehlerZustand->ende pruefGrenzen هل إعدادات العتاد للوضع ضمن الحدود؟ pruefMode->pruefGrenzen نعم fehlerMode WDG_E_PARAM_MODE melden kein Wechsel, E_NOT_OK pruefMode->fehlerMode لا pruefGrenzen->fehlerMode لا busy Zustand WDG_BUSY pruefGrenzen->busy نعم fehlerMode->ende umschalten تبديل برنامج التشغيل والعتاد إلى الوضع الجديد busy->umschalten pruefErfolg هل التبديل مكتمل وناجح؟ umschalten->pruefErfolg ok WDG_E_MODE_FAILED: PASSED إرجاع E_OK pruefErfolg->ok نعم nok WDG_E_MODE_FAILED: FAILED إرجاع E_NOT_OK pruefErfolg->nok لا idle Zustand WDG_IDLE (letzte Operation) ok->idle nok->idle idle->ende

مخطط النشاط: يتحقق Wdg_SetMode من الحالة والوضع وحدود العتاد، ويقوم بالتبديل، ويبلغ عن النتيجة عبر قيمة الإرجاع وWDG_E_MODE_FAILED. تفسير: ترتيب عمليات الفحص غير محدد معيارياً. المصادر: [SWS_Wdg_00017]، [SWS_Wdg_00091]، [SWS_Wdg_00092]، [SWS_Wdg_00016]، [SWS_Wdg_00103]، [SWS_Wdg_00018]، [SWS_Wdg_00180]، [SWS_Wdg_00181]

أدلة تفصيلية إضافية

دليل وحدات تم إنشاؤه بواسطة الذكاء الاصطناعي استناداً إلى مقتطفات المواصفات لـ AUTOSAR Classic R20-11. المتطلبات المرتبطة وحدها ذات طابع معياري؛ أما العبارات المصنفة كتفسير فليست مغطاة مباشرة بالمصادر.

Watchdog Driver (Wdg)

Hardware watchdog timer servicing and mode configuration.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

دالة Wdg_Init [SWS_Wdg_00106] 📄 PDF

void Wdg_Init (const Wdg_ConfigType* ConfigPtr);

Initializes the module.

مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 9b3504b00b97 المصدر
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

الاستخدام وتسلسل العمليات

تُستخدم الدالة المتزامنة Wdg_Init لتهيئة وحدة المشغل Wdg بالإضافة إلى عتاد Watchdog [SWS_Wdg_00106]، [SWS_Wdg_00001]. يُمرَّر مؤشر إلى مجموعة التكوين عبر المعلمة ConfigPtr [SWS_Wdg_00106]. تهيء الدالة جميع المتغيرات العامة للوحدة وتعيّن وضع Watchdog الافتراضي المكوَّن مسبقًا بالإضافة إلى فترة المهلة الزمنية الأولية [SWS_Wdg_00001]، [SWS_Wdg_00100].

التحكم في العتاد والقيود

تكوّن Wdg_Init حصريًا سجلات وحدة التحكم للتحكم في Watchdog التي لا تؤثر على وحدات عتادية أخرى أو تعتمد عليها [SWS_Wdg_00101]. تُهيّأ السجلات ذات الاعتماديات المشتركة بين الوحدات بدلاً من ذلك عبر وحدة نظام مشتركة [SWS_Wdg_00101]. الدالة غير قابلة لإعادة الدخول ولا تُرجع أية قيمة [SWS_Wdg_00106].

معالجة الأخطاء

قبل تنفيذ التهيئة، تُجرى فحوصات محددة:

  • إذا كان اكتشاف أخطاء التطوير (Development Error Detection) مفعلاً، يُفحص ما إذا كانت المحتويات الخاصة بالعتاد في مجموعة التكوين تقع ضمن الحدود المسموح بها؛ وفي حالة حدوث أخطاء، تقاطع الدالة وتُبلغ عن WDG_E_PARAM_CONFIG [SWS_Wdg_00090].
  • إذا كان تعطيل Watchdog غير مسموح به (WdgDisableAllowed == OFF)، ولكن الوضع الافتراضي المكوَّن كان سيعطله، فسيتم إلغاء التهيئة وإطلاق الخطأ WDG_E_DISABLE_REJECTED [SWS_Wdg_00025].

تم إنشاء ملاحظة الاستخدام هذه بصورة آلية استناداً إلى متطلبات المواصفات.

دليل المنفِّذ قيد الإعداد (التعقيد I2)

دالة Wdg_SetMode [SWS_Wdg_00107] 📄 PDF

Std_ReturnType Wdg_SetMode (WdgIf_ModeType Mode);

Switches the watchdog into the mode Mode. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_WatchdogDriver

مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: b7aa0ec55f3d المصدر
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

الاستخدام

تبدّل الدالة التزامنية وغير القابلة لإعادة الدخول [SWS_Wdg_00107] مشغل مراقب التشغيل بالإضافة إلى العتاد الأساسي إلى واحد من ثلاثة أوضاع مهيأة استاتيكيًا: WDGIF_OFF_MODE، أو WDGIF_SLOW_MODE، أو WDGIF_FAST_MODE [SWS_Wdg_00160]. وبما أن الوحدة لا تقدم واجهة مستقلة لإلغاء التهيئة، يتم إيقاف تشغيل مراقب التشغيل عبر الاستدعاء بالوضع WDGIF_OFF_MODE، طالما كان العتاد يدعم ذلك [SWS_Wdg_00031]. وفي حال التطبيق الناجح والكامل لجميع المعلمات، ترجع الدالة E_OK [SWS_Wdg_00103].

الحالة والتزامن

نظرًا لعدم قابلية إعادة الدخول، لا يجوز إجراء استدعاء متزامن. وعند تفعيل اكتشاف الأخطاء، تتحقق الدالة مما إذا كانت الوحدة في الحالة WDG_IDLE [SWS_Wdg_00017]. وأثناء التنفيذ، تضبط الحالة على WDG_BUSY ولا تبدل مرة أخرى إلى WDG_IDLE إلا كآخر عملية قبل العودة [SWS_Wdg_00018].

معالجة الأخطاء

في حالة الخطأ، يتم إرجاع E_NOT_OK:

  • عند وجود قيم غير صالحة لـ Mode أو تهيئات خاصة بالعتاد تقع خارج الحدود، تبلغ الدالة عن الخطأ WDG_E_PARAM_MODE [SWS_Wdg_00091]، [SWS_Wdg_00092].
  • إذا لم تكن الوحدة في الحالة WDG_IDLE، يُجهَض التبديل مع WDG_E_DRIVER_STATE [SWS_Wdg_00017].
  • إذا لم يتمكن العتاد من تولي الوضع – على سبيل المثال بسبب إعدادات غير متناسقة أو انتهاك لمتطلبات التوقيت –، يتم إطلاق Extended Production Error WDG_E_MODE_FAILED [SWS_Wdg_00016].

تم إنشاء هذا النص بواسطة ذكاء اصطناعي بناءً على مواصفات AUTOSAR.

دليل المنفِّذ قيد الإعداد (التعقيد I2)

دالة Wdg_SetTriggerCondition [SWS_Wdg_00155] 📄 PDF

void Wdg_SetTriggerCondition (uint16 timeout);

Sets the timeout value for the trigger counter.

نوع Wdg_ConfigType [SWS_Wdg_00171] 📄 PDF

Used for pointers to structures holding configuration data provided to the Wdg module initialization routine for configuration of the module and watchdog hardware.

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/CP_MOD_Wdg
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_Wdg@rel:R20-11#ae4726a3
Content hash
ae4726a3
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_WatchdogDriver.pdf#nameddest=SWS_Wdg_00106

خريطة المواضيع

التهيئة والحالة

2

الأنواع

1

عرض التفاصيل

اختر عنصرًا من المخطط.

التهيئة والحالة

Returns the version information of the module.

void Wdg_GetVersionInfo (Std_VersionInfoType* versioninfo);
Wdg_Init دالة

Initializes the module.

void Wdg_Init (const Wdg_ConfigType* ConfigPtr);

الخدمات

Wdg_SetMode دالة

Switches the watchdog into the mode Mode. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_WatchdogDriver

Std_ReturnType Wdg_SetMode (WdgIf_ModeType Mode);

Sets the timeout value for the trigger counter.

void Wdg_SetTriggerCondition (uint16 timeout);

الأنواع

Used for pointers to structures holding configuration data provided to the Wdg module initialization routine for configuration of the module and watchdog hardware.