जवाबों:
कुछ उत्पादों को सुरक्षा आवश्यकताओं को पूरा करना चाहिए, या तो निर्माता द्वारा निर्धारित किया जाना चाहिए या IEC 60730-1, या पुराने UL1998 जैसे अंतर्राष्ट्रीय सुरक्षा मानकों को पूरा करना चाहिए जो अभी भी अमेरिका में उपयोग में है। किसी भी माइक्रोकंट्रोलर में आंतरिक वॉचडॉग कार्यक्षमता का उपयोग करने के लिए पर्याप्त हो सकता है या नहीं भी हो सकता है। कुछ मामलों में आंतरिक WDT के साथ संयोजन में एक बाहरी WDT का उपयोग किया जा सकता है।
टीआई की हरक्यूलिस श्रृंखला जैसे कुछ माइक्रोकंट्रोलर सुरक्षा महत्वपूर्ण प्रणाली अनुप्रयोगों को बहुत गंभीरता से लेते हैं और सख्त आवश्यकताओं को पूरा करने की अधिक संभावना रखते हैं, हालांकि वे लागत-संवेदनशील अनुप्रयोगों के लिए उपयुक्त नहीं हो सकते हैं।
आमतौर पर डब्लूडीटी एक विफलता की संभावना को कम करने के कई तरीकों में से एक है, जो संपत्ति को नुकसान पहुंचाती है या जीवन को चोट पहुंचाती है। MCU मेमोरी या प्रोग्राम से अनपेक्षित मेमोरी से अनपेक्षित पहुंच का पता लगाने के लिए मेमोरी प्रोटेक्शन जैसी अन्य चीजें आमतौर पर WDT के साथ संयोजन में उपयोग की जाती हैं।
सुरक्षा-महत्वपूर्ण कार्यों को करने वाले सस्ते उत्पादों के उदाहरण ऑटोमोटिव सबसिस्टम, गेराज दरवाजा नियंत्रक और गैस (प्राकृतिक गैस या प्रोपेन) इग्निशन कंट्रोलर हैं जिनका उपयोग भट्टियों, ड्रायर और वॉटर हीटर में किया जाता है। बेशक कई चिकित्सा और एयरोस्पेस उत्पाद भी सुरक्षा-महत्वपूर्ण हैं, लेकिन अतिरेक और अन्य दृष्टिकोणों के लिए पर्याप्त जगह हो सकती है। कुछ मामलों में, कोई आसानी से उपलब्ध सुरक्षित स्थिति नहीं हो सकती है- उदाहरण के लिए, एक विमान में।
आदर्श रूप से वॉचडॉग टाइमर बहुत सरल है, MCU से स्वतंत्र है (उदाहरण के लिए, इसका अपना घड़ी स्रोत होना चाहिए और शायद एक घड़ी की निगरानी), किसी भी सॉफ़्टवेयर त्रुटि से नुकसान का कारण बनने से अधिक समय तक (सॉफ़्टवेयर द्वारा) सेट नहीं किया जा सकता है, और सिस्टम को एक सुरक्षित स्थिति में सौंप देगा यदि यह समय पर "पालतू" नहीं है, या तो टाइम-आउट के साथ या खिड़की वाले फैशन में भी, तो अक्सर रीसेट का पता लगाया जा सकता है। उदाहरण के लिए, थर्मल कंट्रोल एप्लिकेशन में डब्ल्यूडीटी को कुछ सेकंड के लिए सेट किया जा सकता है, क्योंकि यदि माइक्रोकंट्रोलर उस समय की लंबाई तक लॉक हो जाए तो कोई नुकसान संभव नहीं है।
विश्वसनीयता और सुरक्षा के लिए सिस्टम-स्तरीय दृष्टिकोण के हिस्से के रूप में डब्ल्यूडीटी सबसे उपयोगी है।
एक वॉचडॉग टाइमर बग के टुकड़े में हार्डवेयर बग के खिलाफ रख सकता है ... अत्याधुनिक माइक्रोकंट्रोलर। एक जो हमने हाल ही में इस्तेमाल किया, एक प्रसिद्ध ब्रांड से, मेरे पास ओ / ओ पिन था जो कभी-कभी उनके व्यवधान से चूक जाता था, कभी-कभी सही ढंग से शुरू नहीं होता था, और जहां एकीकृत वॉचडॉग कभी-कभी एक ज्ञात-अच्छी स्थिति में सिस्टम को रीसेट करने में विफल रहता था।
यह तब तक नहीं दिखा, जब तक कि हमने लंबे समय तक विश्वसनीयता परीक्षण के साथ शुरुआत नहीं की, और माइक्रोकंट्रोलर को बदलने की तुलना में बाहरी वॉचडॉग को जोड़ना आसान था।
यदि आपके पास पीसीबी पर एक से अधिक आईसी हैं, तो आपको सब कुछ बूट करने के लिए एक बाहरी रीसेट-आईसी या वोल्टेज मॉनिटर की आवश्यकता हो सकती है। इनमें से कई वॉचडॉग के रूप में भी काम कर सकते हैं।
यह तर्क करना कठिन है, कि आंतरिक प्रहरी की आंतरिक घड़ी वास्तव में अन्य सभी घड़ियों से स्वतंत्र है और हमेशा की तरह चल रही है।
इसलिए प्रमाणन के लिए आमतौर पर बोर्ड पर बाहरी वॉचडॉग लगाना बहुत आसान होता है और कहते हैं: देखो वहाँ हमारा वॉचडॉग है, इसे एमसीयू द्वारा उस अंतराल पर चालू किया जाना चाहिए, जो हमारे समय से असफल होने से कम है, इसलिए हमारा डिवाइस सुरक्षित है जैसा कि हमने इसे परिभाषित किया है।
कुछ टिप्पणियों को संबोधित करने के लिए:
"और हमेशा की तरह यह चलना चाहिए" - अच्छी बात है। यह साबित करना कठिन हो सकता है कि आपका सॉफ़्टवेयर सही तरीके से आंतरिक प्रहरी को प्रारंभिक रूप से केवल एक प्रहरी चिप को नियोजित करने की तुलना में और उसके डेटाशीट को संदर्भित करता है।
यह आमतौर पर एक गलती सम्मिलन परीक्षण द्वारा सिद्ध होता है, जिसे आप प्रमाणन के एक निकाय को प्रस्तुत करते हैं। तो आप उन्हें कोड दिखाते हैं जहां आपका इनिशियलाइज़ेशन होता है, और जहाँ वॉचडॉग का ट्रिगर होता है। वे आमतौर पर आपको कोड को इस तरह से संशोधित करने के लिए कहते हैं कि वॉचडॉग की ट्रिगरिंग एक निश्चित समय बीत जाने के बाद बंद हो जाती है और जांचें कि क्या नियंत्रक ठीक से रीसेट किया गया है।
या यह साबित करने के लिए कि आपके कोड में बग नहीं है जो गलती से आंतरिक वॉचडॉग को निष्क्रिय कर देता है।
कम से कम कुछ नियंत्रकों पर वॉचडॉग को स्वतंत्र कहा जाता है और इसका अपना घड़ी स्रोत होता है और इसे सॉफ़्टवेयर साधनों द्वारा अक्षम नहीं किया जा सकता है, केवल नियंत्रक का रीसेट वॉचडॉग को अक्षम कर देगा। कम से कम सिद्धांत में - यह दिखाना आसान है कि आप इसे सॉफ्टवेयर द्वारा रोक नहीं सकते हैं लेकिन यह साबित करने के लिए कठिन है कि घड़ी वास्तव में स्वतंत्र है और ईएमआई से नहीं रुकेगी।
या यह साबित करने के लिए कि आपका कोड बाहरी वॉचडॉग को जितनी तेजी से रीसेट कर रहा है, उतनी तेजी से जंगली नहीं चला रहा है। समस्या सुलझ गयी। ;-)
उस स्थिति के लिए आप एक विंडो वॉचडॉग का उपयोग करते हैं जिसे कुछ निश्चित अंतरालों पर चालू करना होता है और यदि आप ऐसा करने में विफल रहते हैं (इसे बहुत बार या बहुत कम ट्रिगर करें) सर्किट को रीसेट कर देगा। मैं जिस STM32 के साथ काम कर रहा हूं, उसमें एक आंतरिक विंडो वॉचडॉग है, लेकिन यह PCLK1 से चलता है, जो मुख्य घड़ी से निकला है, इसलिए मुझे नहीं लगता कि यह बाहरी वॉचडॉग जितना उपयोगी है, जितना कि अपने स्वयं के घड़ी स्रोत के साथ।
या कि कुछ प्रतिभाशाली घड़ीसाज़ सेवा दिनचर्या को एक टाइमर ISR के अंदर नहीं डालते हैं, इसलिए मुख्य कोड दुर्घटनाग्रस्त हो सकता है, लेकिन व्यवधान फायरिंग करता है और पहरेदार को पूरी तरह से सर्विस करता है ...
यह निश्चित रूप से सच है, लेकिन उम्मीद है कि एक समीक्षा उस प्रतिभा को अपनी कुर्सी पर वापस रख देगी - लेकिन हे जब मैंने शुरुआत की, तो यह मेरा पहला विचार था: डी। प्रमाणीकरण प्रक्रियाओं के दौरान मैं इसमें शामिल रहा हूँ, वे हमेशा सॉफ्टवेयर के वॉचडॉग भाग पर एक नज़र रखते थे।
माइक्रोकंट्रोलर्स के लिए बनाए गए वॉचडॉग में विशेष गुण होते हैं, जिसका अर्थ है कि वे स्वयं उन तरीकों से विफल हो सकते हैं जो एक अलग बाहरी वॉचडॉग नहीं हो सकता है।
उदाहरण के लिए, एक सामान्य डिजाइन एक कम पावर आरसी थरथरानवाला से चलने वाले वॉचडॉग टाइमर का उपयोग करना है। वह थरथरानवाला विफल हो सकता है। एक थरथरानवाला के बजाय संधारित्र निर्वहन पर आधारित एक बाह्य प्रहरी कई मामलों में अभी भी माइक्रोकंट्रोलर को रीसेट कर सकता है।
एक और कारण यह है कि बाहरी प्रहरी अधिक मजबूत हो सकता है। एक माइक्रोकंट्रोलर केवल एक निश्चित वोल्टेज रेंज पर मज़बूती से काम कर सकता है, और एक जटिल डिवाइस होने के कारण यह एक तरह से लैचिंग के अधीन हो सकता है जो अपने स्वयं के आंतरिक प्रहरी को अप्रभावी बनाता है। बाहरी वॉचडॉग में व्यापक स्वीकार्य आपूर्ति रेंज हो सकती है और विद्युत शोर के अधीन होने पर समस्याओं का कम खतरा हो सकता है।
बाहरी पहरेदार अक्सर टाइम-आउट मानों की एक व्यापक श्रेणी प्रदान करते हैं। एक माइक्रोकंट्रोलर जिसका मैं अक्सर उपयोग करता हूं, एक्सएमईजीए, का अधिकतम समय लगभग 7 सेकंड है। एक उत्पाद के लिए मैंने 2 घंटे के टाइम-आउट के साथ एक अतिरिक्त बाहरी वॉचडॉग जोड़ा। इससे मुझे बैटरी संचालित डिवाइस में बिजली की खपत को कम करने, हर कुछ सेकंड के बजाय एक घंटे में एक बार माइक्रोकंट्रोलर को जगाने की अनुमति मिली।
बाहरी वॉचडॉग में कभी-कभी कई कार्य होते हैं, जैसे टाइमर और वोल्टेज मॉनिटर / रीसेट नियंत्रण। फिर, ये एक माइक्रोकंट्रोलर की अंतर्निहित प्रणाली की तुलना में कम शक्ति हो सकते हैं।
बाहरी प्रहरी का एक अन्य दिलचस्प लाभ यह है कि इसका उपयोग माइक्रोकंट्रोलर के अलावा अन्य उपकरणों को रीसेट करने के लिए किया जा सकता है। उदाहरण के लिए, यह एक वोल्टेज नियामक के सक्षम पिन को नियंत्रित कर सकता है, एक बार में कई उपकरणों को रीसेट करने के लिए पूरे सर्किट को डी-पॉवरिंग कर सकता है। कुछ सरल तर्क का उपयोग करके कई स्रोतों से वॉचडॉग रीसेट सिग्नल को जोड़ा जा सकता है, जिससे वॉचडॉग को कई डिवाइसों को लगातार रीसेट करने की आवश्यकता होती है।
एक वॉचडॉग वास्तव में इस संबंध में किसी अन्य अंतर्निहित परिधीय से अलग नहीं है जो आपको एमसीयू में मिलता है। MCUs टाइमर, RTCs, ADCs, EEPROM और रीसेट कंट्रोलर के साथ आते हैं, फिर भी ये सभी कार्य अलग-अलग IC के रूप में मौजूद हैं। यदि उपलब्ध अंतर्निहित ब्लॉक आपकी आवश्यकताओं को पूरा नहीं करते हैं, तो आपको बाहरी उपयोग करना होगा। या आप सभी सही ब्लॉकों के साथ एक एमसीयू खोजने की कोशिश कर सकते हैं, जो आपके कोड को पोर्ट करने के लिए मौजूद नहीं हो सकता है या बहुत महंगा हो सकता है।
एक वॉचडॉग एक टाइमर है और जब आईसी एक अवधि के लिए इनपुट पल्स खो देता है तो इसका आउटपुट सक्रिय करता है।
यह एक बिल्डिंग ब्लॉक है और इसका उपयोग किसी भी एप्लिकेशन के लिए किया जा सकता है।
इसलिए, उन्हें किसी भी एप्लिकेशन में उपयोग किया जा सकता है, उदाहरण के लिए, असफल-सुरक्षित मोड में डेटा रूटिंग को बदलना । जब माइक्रोकंट्रोलर घड़ी विफल हो जाती है, तो हम कुछ महत्वपूर्ण आउटपुट को अक्षम नहीं कर सकते हैं।
एक बाह्य प्रहरी माइक्रोकंट्रोलर के जटिल घड़ी डोमेन से संबंधित नहीं है, और उनमें से कुछ में उनके एनालॉग आरसी चार्ज टाइमिंग या आंतरिक घड़ी है।
विकिरण में डिजिटल सर्किट आउटपुट को ट्रिगर कर सकते हैं जब चार्ज उनके फ्लिप-फ्लॉप को हिट करता है। लेकिन कुछ एनालॉग सर्किट सुरक्षित होते हैं क्योंकि वे एक संधारित्र में चार्ज को एकीकृत करते हैं, और जब हम इसे एकीकृत करते हैं तो यह सुरक्षित होता है।