جلسه چهارم
مقدمه
در سیستمهای مبتنی بر میکروکنترلر، وقفهها وسیلهای برای پاسخ سریع به رویدادهای خارجی یا داخلی هستند. در بسیاری از کاربردها، لازم است پردازنده بدون صرف انرژی زیاد، در زمان مناسب از خواب بیدار شده و به ورودی خاصی واکنش نشان دهد. در این جلسه با دو مفهوم مهم آشنا میشویم:
وقفههای خارجی و حالتهای کاهش مصرف توان.
۱) وقفه خارجی چیست؟
وقفه خارجی زمانی رخ میدهد که یک رویداد بیرونی (مثل فشرده شدن یک کلید، دریافت سیگنال از یک سنسور یا تغییر وضعیت یک پایه) نیازمند توجه فوری پردازنده باشد.
- نقش وقفه خارجی: باعث میشود پردازنده کار فعلی را متوقف کرده و به یک «روال وقفه» بپردازد.
- مزیت: پردازنده مجبور نیست بهطور مستمر وضعیت پایهها را بررسی کند (بر خلاف روش Polling).
- کاربردها: کلیدهای حساس، اندازهگیری رویدادها، پاسخهای سریع، سیستمهای کنترل صنعتی.
۲) انواع حالتهای تحریک وقفههای خارجی
وقفهها فقط در شرایط خاصی فعال میشوند. چند حالت رایج عبارتاند از:
- لبه بالا رونده: زمانی که سیگنال از صفر به یک تغییر میکند.
- لبه پایین رونده: از یک به صفر.
- سطح پایین: مادامی که پایه در سطح صفر نگه داشته شده باشد.
- لبه تغییر (Both Edges): با هر تغییر وضعیت.
اهمیت این تنظیمات در این است که رفتار سیستم در شرایط واقعی متفاوت خواهد بود و باید مطابق نیاز پروژه انتخاب شوند.
۳) نحوه عملکرد وقفه خارجی
فرآیند کلی به این صورت است:
- رویداد خارجی رخ میدهد.
- کنترل بهطور خودکار از برنامه اصلی به «روال وقفه» منتقل میشود.
- عملیات لازم انجام میشود (مثلاً ثبت یک مقدار یا روشن کردن LED).
- پردازنده به محل قبل از وقفه برگشته و کار خود را ادامه میدهد.
این سازوکار باعث میشود هیچ رویداد مهمی از دست نرود و پاسخگویی سیستم بسیار سریع باشد.
۴) چرا از وقفه به جای Polling استفاده میکنیم؟
Polling یعنی پردازنده مدام وضعیت یک پایه را بررسی کند.
وقفه یعنی پردازنده فقط هنگامی درگیر شود که اتفاقی رخ دهد.
مزیتهای وقفه نسبت به Polling:
- کاهش مصرف توان
- آزاد شدن توان پردازش برای کارهای دیگر
- افزایش سرعت واکنش
- مناسب برای سیستمهای چندوظیفهای
5) حالتهای صرفهجویی در توان (Power Saving Modes)
میکروکنترلرها برای کار در دستگاههایی که با باتری کار میکنند، دارای حالتهای کممصرف هستند. این حالتها باعث کاهش چشمگیر مصرف انرژی میشوند.
مهمترین حالتهای صرفهجویی توان شامل موارد زیر هستند:
• حالت Idle
پردازنده متوقف میشود، اما بخشهایی مانند تایمرها همچنان فعال میمانند.
• حالت Standby
بخشی از سختافزار خاموش شده و تنها قسمتهای کلیدی روشن میمانند.
• حالت Sleep
عمیقترین حالت صرفهجویی توان. تقریباً همه چیز غیرفعال میشود.
سیستم فقط با وقفه یا رویداد خاص دوباره فعال میشود.
نکته مهم: در بسیاری از کاربردها، پردازنده قسمت عمده از زمان را در حالت Sleep قرار میگیرد و فقط هنگام وقوع وقفه (مثلاً تغییر یک پایه) فعال میشود.
6) ارتباط وقفهها و حالتهای کممصرف
یکی از رایجترین ترکیبها در سیستمهای embedded این است که:
- پردازنده وارد حالت Sleep میشود تا انرژی مصرف نکند.
- یک رویداد خارجی (مثلاً فشردن دکمه یا سیگنال سنسور) باعث وقوع وقفه خارجی میشود.
- پردازنده از خواب بیدار شده و روال وقفه را اجرا میکند.
- پس از انجام وظیفه، دوباره به حالت کممصرف بازمیگردد.
این روش در ابزارهای قابلحمل، سیستمهای اندازهگیری، و دستگاههای IoT استفاده زیادی دارد.
جمعبندی جلسه
در این جلسه با دو مفهوم کلیدی آشنا شدیم:
- وقفههای خارجی برای پاسخ سریع به رویدادهای بیرونی
- حالتهای صرفهجویی توان برای کاهش مصرف انرژی
ترکیب این دو مفهوم باعث ایجاد سیستمهایی میشود که هم سریع و قابلاعتماد هستند، هم در مصرف انرژی بهینه عمل میکنند. این مباحث پایهای برای پروژههای پیشرفتهتر هستند که در جلسات بعدی با آنها کار خواهیم کرد.