DEENESPTFRRUARHIKOZHNL

Watchdog Driver (Wdg)

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

मॉड्यूल गाइडएआई जनित

वॉचडॉग हार्डवेयर को समयबद्ध ट्रिगर स्थिति के अनुसार संचालित करता है और इसके संचालन मोड को स्विच करता है।
एआई-जनित असत्यापित मॉडल: claude-opus-5-5 · प्रयास: high · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 826a1515b822 उद्गम खुले प्रश्न (3)
कारणात्मक एंकर: R20-11 R20-11 से मान्य इस विनिर्देश संस्करण के लिए नए सिरे से संश्लेषित।
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

वॉचडॉग हार्डवेयर को समयबद्ध ट्रिगर स्थिति के अनुसार संचालित करता है और इसके संचालन मोड को स्विच करता है।

Watchdog Driver, Watchdog Manager की ओर से आंतरिक या बाहरी वॉचडॉग हार्डवेयर को नियंत्रित करता है। यह Watchdog Interface के माध्यम से केवल एक समयबद्ध ट्रिगर स्थिति सेट करता है। जब तक यह मान्य है, ड्राइवर हार्डवेयर को स्वयं ट्रिगर करता है; उसके बाद वॉचडॉग समाप्त हो जाता है [SWS_Wdg_00144]। Wdg_Init कॉन्फ़िगरेशन से मानक मोड और टाइमआउट सेट करता है, और Wdg_SetMode OFF, SLOW और FAST मोड के बीच स्विच करता है [SWS_Wdg_00160]। 0 का टाइमआउट लगभग तत्काल रीसेट को ट्रिगर करता है, और वॉचडॉग को केवल तभी बंद किया जा सकता है जब कॉन्फ़िगरेशन इसकी अनुमति देता है।

Watchdog Driver Wdg चार सिंक्रोनस सेवाओं के माध्यम से वॉचडॉग हार्डवेयर को नियंत्रित करता है: 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कोई ट्रिगरिंग नहीं: वॉचडॉग समाप्त (एक्सपायर) हो जाता हैऔर 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 (खुला)

वॉचडॉग स्टैक में भूमिका: वह ड्राइवर जो स्वयं ट्रिगरिंग संभालता है

Watchdog Driver Wdg चार सेवाओं वाले एक छोटे, सिंक्रोनस API के माध्यम से वॉचडॉग हार्डवेयर को नियंत्रित करता है, जो सभी Wdg.h के माध्यम से उपलब्ध हैं: Wdg_Init (सर्विस-ID 0x00), Wdg_SetMode (0x01), Wdg_SetTriggerCondition (0x03) और Wdg_GetVersionInfo (0x04)। केवल Wdg_GetVersionInfo पुन:प्रवेशी (reentrant) है ([SWS_Wdg_00106], [SWS_Wdg_00107], [SWS_Wdg_00155], [SWS_Wdg_00109])। डी-इनिशियलाइज़ेशन के लिए जानबूझकर कोई इंटरफ़ेस नहीं है। यदि हार्डवेयर और वातावरण शटडाउन की अनुमति देते हैं, तो यह OFF मोड [SWS_Wdg_00031] के साथ Wdg_SetMode के माध्यम से होता है।

सेवाओं को बेसिक सॉफ़्टवेयर द्वारा कॉल किया जाता है। ECU State Manager Wdg_Init को कॉल करता है (SWS EcuM पृ. 34)। Watchdog Manager को WdgIf_SetMode और WdgIf_SetTriggerCondition की आवश्यकता होती है (SWS WdgM पृ. 86)। Watchdog Interface इन कॉलों को ड्राइवर पर मैप करता है और uint8 प्रकार के शून्य-आधारित DeviceIndex के माध्यम से इंस्टेंस का चयन करता है। यदि केवल एक ड्राइवर कॉन्फ़िगर किया गया है, तो यह मैपिंग कोई रनटाइम ओवरहेड उत्पन्न नहीं करनी चाहिए, उदाहरण के लिए मैक्रोज़ के माध्यम से (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 बस या पिन एक्सेस

संदर्भ आरेख: Wdg को EcuM द्वारा प्रारंभ किया जाता है और 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_OKWdg_SetMode का रिटर्न मान

अनुक्रम आरेख: EcuM द्वारा प्रारंभिकरण के बाद WdgIf के माध्यम से WdgM द्वारा ट्रिगर स्थिति सेट करना और मोड स्विच करना शामिल है। स्रोत: 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कोई ट्रिगरिंग नहीं: वॉचडॉग समाप्त (एक्सपायर) हो जाता हैऔर 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 ट्रिगरिंग (लगभग) तुरंत समाप्त होती है -> 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 में स्विच करता है। प्रत्येक मोड एक स्थिर रूप से कॉन्फ़िगर की गई सेटिंग से मेल खाता है, जैसे विभिन्न टाइमआउट अवधियों के साथ टॉगल या विंडो वॉचडॉग [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)। क्या वॉचडॉग को बंद करने की अनुमति है, यह प्री-कंपाइल पैरामीटर 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 शेड्यूलर के अनन्य क्षेत्र (exclusive area) के माध्यम से किया जाना चाहिए। एक 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]। सुरक्षा क्षेत्र से एक उदाहरण SPI के माध्यम से जुड़ा एक बाहरी विंडो वॉचडॉग है (EXP SafetyUseCase चित्र 4.1 पृ. 20)।

कोड फ़ाइल संरचना पूरी तरह से निर्दिष्ट नहीं है। यदि आवश्यक हो, तो इसमें लिंक-टाइम मापदंडों के लिए Wdg_Lcfg.c और पोस्ट-बिल्ड मापदंडों के लिए Wdg_PBcfg.c शामिल हैं [SWS_Wdg_00079]। Wdg नवीनतम रूप से कंपाइल समय पर कॉन्फ़िगरेशन की स्थिर रूप से जांच करता है [SWS_Wdg_00086]। कोड ROM से चलता है या RAM से, यह एक स्थिर कॉन्फ़िगरेशन द्वारा निर्धारित होता है [SWS_Wdg_00168]। बाहरी हार्डवेयर के लिए, Wdg अपने प्रकाशित मापदंडों और अपने कॉन्फ़िगरेशन मापदंडों में एक्सेस पैरामीटर, जैसे SPI चैनल या DIO पोर्ट, शामिल करता है [SWS_Wdg_00078]। नए रिलीज़ इसे DIO चैनल समूह, SPI अनुक्रम या I2C अनुक्रम के लिए एक चयन संदर्भ WdgExternalContainerRef के रूप में मॉडल करते हैं। R20-11 में I2C का स्पष्ट रूप से उल्लेख नहीं किया गया है (SWS Wdg पृ. 40)। Wdg_SetTriggerCondition अधिकतम मान WdgMaxTimeout के विरुद्ध जाँच करता है [SWS_Wdg_00146]। प्रकाशित सूचना मॉडल में इसके अलावा WdgMinTimeout और WdgResolution शामिल हैं (ECUC-Parameter चित्र 5.22 पृ. 380)।

त्रुटि की स्थिति में व्यवहार

Wdg विकास त्रुटियों (development errors), जिनकी जाँच मुख्य रूप से केवल विकास त्रुटि पहचान सक्रिय होने पर ही की जाती है, को विस्तारित उत्पादन त्रुटियों (production errors) से अलग करता है। त्रुटि कोड [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] के अंतर्गत आता है। 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 पर सेट की जाती है, तो वॉचडॉग समाप्त हो जाता है, और 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 के विनिर्देश अंशों पर आधारित AI-जनरेटेड मॉड्यूल गाइड। केवल लिंक की गई आवश्यकताएं ही मानक हैं; व्याख्या के रूप में चिह्नित कथन स्रोतों द्वारा प्रत्यक्ष रूप से समर्थित नहीं हैं।

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 के साथ-साथ वॉचडॉग हार्डवेयर [SWS_Wdg_00106], [SWS_Wdg_00001] को आरंभ करने का कार्य करता है। पैरामीटर ConfigPtr के माध्यम से कॉन्फ़िगरेशन सेट का एक पॉइंटर पास किया जाता है [SWS_Wdg_00106]। फ़ंक्शन मॉड्यूल के सभी ग्लोबल वेरिएबल्स को आरंभ करता है और प्री-कॉन्फ़िगर डिफ़ॉल्ट वॉचडॉग मोड के साथ-साथ प्रारंभिक टाइमआउट अवधि सेट करता है [SWS_Wdg_00001], [SWS_Wdg_00100]।

हार्डवेयर नियंत्रण और सीमाएं

Wdg_Init वॉचडॉग नियंत्रण के लिए केवल उन कंट्रोलर रजिस्टरों को कॉन्फ़िगर करता है जो अन्य हार्डवेयर मॉड्यूल को प्रभावित नहीं करते हैं या उन पर निर्भर नहीं होते हैं [SWS_Wdg_00101]। क्रॉस-मॉड्यूल निर्भरता वाले रजिस्टरों को इसके बजाय एक सामान्य सिस्टम मॉड्यूल द्वारा आरंभ किया जाता है [SWS_Wdg_00101]। फ़ंक्शन नॉन-रीएंट्रेंट है और कोई रिटर्न मान नहीं देता है [SWS_Wdg_00106]।

त्रुटि प्रबंधन

इनिशियलाइज़ेशन करने से पहले विशिष्ट जांच की जाती है:

  • यदि डेवलपमेंट एरर डिटेक्शन (Development Error Detection) सक्रिय है, तो यह जाँचा जाता है कि कॉन्फ़िगरेशन सेट की हार्डवेयर-विशिष्ट सामग्री अनुमेय सीमाओं के भीतर है या नहीं; त्रुटियों की स्थिति में फ़ंक्शन निरस्त हो जाता है और WDG_E_PARAM_CONFIG रिपोर्ट करता है [SWS_Wdg_00090]।
  • यदि वॉचडॉग को निष्क्रिय करना अस्वीकार्य है (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]।

स्टेट और समवर्तीता (Concurrency)

रीएंट्रेंसी की कमी के कारण, कोई समवर्ती कॉल नहीं होना चाहिए। त्रुटि पहचान सक्रिय होने पर, फ़ंक्शन जाँचता है कि क्या मॉड्यूल 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 विनिर्देश के आधार पर एक AI द्वारा तैयार किया गया था।

इम्प्लीमेंटर गाइड जल्द आएगी (जटिलता 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#a5d25b7c
Content hash
a5d25b7c
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_WatchdogDriver.pdf#nameddest=SWS_Wdg_00106

विषय मानचित्र

आरंभीकरण और स्थिति

2

टाइप

1

विवरण दृश्य

रूपरेखा में कोई प्रविष्टि चुनें।

आरंभीकरण और स्थिति

Wdg_GetVersionInfo फ़ंक्शन

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);
Wdg_SetTriggerCondition फ़ंक्शन

Sets the timeout value for the trigger counter.

void Wdg_SetTriggerCondition (uint16 timeout);

टाइप

Wdg_ConfigType टाइप

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