چند کلمه در شرح محتوای وب‌سایت...

WATCH DOG TIMER

 
WDT مخفف Watch Dog Timer است که به معنای سگ نگهبان می باشد . WDT یکی از قابلیت های مفید و کاربردی در تراشه های میکروکنترلر است که با کمک آن می توان بر روی عملکرد میکروکنترلر نظارت داشت و در صورتی که تراشه به هر علتی قادر به اجرای برنامه نبود (هنگ کرد) ، آنرا ریست کرد .
فرض کنید در در محیطی صنعتی و نویز پذیر از میکروکنترلر استفاده می کنید . در این صورت بسته به نوع مدار و همچنین میکروکنترلر ، درصدی احتمال برای اثر گذاری نویز بر روی تراشه وجود دارد که در صورت وقوع این وضعیت ، میکروکنترلر هنگ می کند و دیگر قادر به اجرای برنامه نیست . در این شرایط لازم است که برای اجرای برنامه ، تراشه ریست شود که این عمل مستلزم نظارت کاربری بر مدار است تا در صورت هنگ کردن ، از این موضوع اطلاع حاصل کند .
در حالت عادی این ریست باید توسط کاربر انجام پذیرد که با بالا رفتن تعداد مدارات به کار گرفته شده در محیط مذکور و یا کار کردن دائمی مدارها ، نظارت توسط کاربر سخت ، هزینه بر و در مواردی غیر ممکن خواهد بود .
اما در میکروکنترلرهایی که مجهز به WDT هستند ، وظیفهء کاربر نظارت کننده را WDT بر عهده دارد و آنرا به خوبی انجام می دهد . WDT این امکان را دارد که پس از شمارش صعودی و سر ریز شدن تایمر ، میکروکنترلر را ریست کند . WDT در اکثر موارد از یک شبکه RC داخلی برای تامین کلاک مورد نظر خود استفاده می کند که در این حالت حتی اگر کلاک اصلی میکروکنترلر نیز قطع شود ، باز هم WDT به کارش ادامه خواهد داد . همچنین امکان تعیین پرسکالر (پیش مقسم فرکانسی) بر روی کلاک اعمالی به WDT نیز وجود دارد که با کمک آن می توان زمان های سرریز WDT را تغییر داد .
WDT در تراشه های در حالت کلی به صورت یکسان عمل می کند ، اما در حالت جزئی ممکن است تفاوتهایی در عملکرد WDT در بین انواع میکروکنترلر باشد .

چگونگی کار با WDT :
ابتدا با توجه به مقدار پرسکالر اعمالی و فرکانس کلاک WDT ، زمان سر ریز را محاسبه کرده ، سپس با فعال سازی WDT ، عمل نظارت آغاز می شود . برنامه کاری باید به نحوی نوشته شده باشد که قبل از اینکه WDT ریست شود ، مقدار آن توسط میکروکنترلر 0 شود . در این شرایط اگر میکروکنترلر در حالت کار عادی خود باشد ، قبل از سر ریز شدن WDT ، مقدار آنرا ریست می کند (جلوگیری از سر ریز تایمر) و به این ترتیب WDT سر ریز نشده و نمی تواند سیستم را ریست کند (مدار در حالت عادی به کار خود ادامه می دهد ) ؛ ولی اگر میکرو کنترلر به هر دلیلی هنگ کند و قادر به اجرای برنامه نباشد ، دیگر نمی تواند WDT را قبل از سر ریز شدن ریست کند و بنابراین WDT سر ریز شده و تراشه را ریست می کند و به این ترتیب از هنگ ماندن تراشه جلوگیری می کند و سریع آنرا از حالت هنگ خارج می کند .

نکته :
ریست مربوط به WDT در انواع مختلف میکروکنترلر ، متفاوت است ؛ به صورتی که در برخی از میکروکنترلر ها ریست شدن توسط WDT همانند ریست خارجی است که تمامی مقادیر رجیستر ها ، متغیرها و .. را ریست می کند ، اما در برخی دیگر هم ریست شدن توسط WDT تنها بر روی برخی از رجیستر ها تاثیر می گذارد .
گزارش تخلف
بعدی