میکروکنترلر چیست؟

4 شهریور 1405 - خواندن 11 دقیقه - 24 بازدید

میکروکنترلر چیست؟

میکروکنترلر را نمی توان صرفا «یک پردازنده کوچک» دانست. یک پردازنده معمولا برای اجرای دستورهای محاسباتی به حافظه و مدارهای جانبی بیرونی نیاز دارد؛ اما میکروکنترلر مجموعه ای نسبتا کامل از اجزای لازم برای کنترل یک سامانه را در یک تراشه گرد هم می آورد. در ساده ترین بیان، میکروکنترلر یک مدار مجتمع قابل برنامه ریزی است که پردازنده، حافظه، ورودی خروجی و مجموعه ای از واحدهای جانبی را در یک تراشه برای کنترل یک سامانه فیزیکی ترکیب می کند. هدف اصلی آن معمولا اجرای محاسبات عمومی سنگین نیست؛ بلکه دریافت وضعیت محیط، پردازش آن، تصمیم گیری و تولید فرمان در یک سامانه مشخص است.


✓ میکروکنترلر از چه بخش هایی تشکیل می شود؟
یک میکروکنترلر معمولی شامل چند بخش اصلی است:
پردازنده: دستورهای برنامه را دریافت، تفسیر و اجرا می کند.
حافظه برنامه: کدی را نگهداری می کند که رفتار سامانه را تعیین می کند.
حافظه داده: برای نگهداری متغیرها، وضعیت های موقت و داده های موردنیاز برنامه استفاده می شود.
پایه های ورودی خروجی: ارتباط مستقیم با مدارها و اجزای بیرونی را فراهم می کنند.
زمان سنج ها و شمارنده ها: برای اندازه گیری زمان، تولید تاخیر، شمارش رویداد و ایجاد سیگنال های زمان بندی شده به کار می روند.
واحدهای ارتباطی: امکان تبادل داده با مدارها و تجهیزات دیگر را فراهم می کنند.
مبدل های اندازه گیری: در برخی میکروکنترلرها امکان تبدیل کمیت های پیوسته به داده عددی و برعکس را فراهم می کنند.
واحدهای نظارت و مدیریت توان: برای کنترل وضعیت تغذیه، راه اندازی مجدد و عملکرد مطمئن سامانه استفاده می شوند.
این اجزا از طریق گذرگاه ها و مسیرهای داخلی با یکدیگر ارتباط دارند.


✓ پردازنده در میکروکنترلر چه می کند؟
پردازنده هسته محاسباتی میکروکنترلر است. برنامه به مجموعه ای از دستورها تبدیل شده و این دستورها توسط پردازنده اجرا می شوند.
در یک چرخه معمول، پردازنده:
دستور را دریافت می کند → آن را تفسیر می کند → عملیات لازم را انجام می دهد → نتیجه را ثبت می کند → به دستور بعدی می رود.
اما سرعت اجرای دستورها به تنهایی تعیین کننده عملکرد سامانه نیست. معماری پردازنده، حافظه، زمان دسترسی، وقفه ها، واحدهای جانبی و نحوه تعامل نرم افزار با سخت افزار همگی در رفتار نهایی اثر دارند.


✓ تفاوت میکروکنترلر و پردازنده
مهم ترین تفاوت، میزان یکپارچه سازی است. در یک سامانه مبتنی بر پردازنده، معمولا بخش هایی مانند حافظه، ورودی خروجی و واحدهای جانبی به شکل تراشه های جداگانه یا اجزای بیرونی قرار می گیرند. در میکروکنترلر، بسیاری از این اجزا داخل همان تراشه قرار گرفته اند.
بنابراین
پردازنده: هسته محاسباتی با وابستگی بیشتر به اجزای بیرونی
میکروکنترلر: هسته محاسباتی + حافظه + ورودی خروجی + واحدهای جانبی در یک تراشه
این تفاوت باعث می شود میکروکنترلر برای سامانه های کوچک، اختصاصی، کم مصرف و کنترل محور بسیار مناسب باشد.


✓ چرا میکروکنترلر برای کنترل مناسب است؟
یک سامانه کنترلی معمولا باید با دنیای فیزیکی ارتباط داشته باشد.
برای مثال ممکن است لازم باشد:
یک حسگر خوانده شود

مقدار اندازه گیری شده پردازش شود

شرایط بررسی شود

تصمیم گرفته شود

یک خروجی فعال شود
این چرخه می تواند هزاران یا میلیون ها بار تکرار شود. میکروکنترلر برای چنین کاری مناسب است، زیرا ورودی خروجی و واحدهای زمان بندی و ارتباطی را در کنار پردازنده دارد. در نتیجه نرم افزار مستقیما می تواند رفتار سخت افزار را کنترل کند.


✓ ورودی خروجی دیجیتال
یکی از بنیادی ترین قابلیت های میکروکنترلر، پایه های ورودی خروجی دیجیتال است. یک پایه می تواند وضعیت یک سیگنال را بخواند یا یک وضعیت منطقی را در خروجی ایجاد کند. اما این موضوع در سطح فیزیکی صرفا «صفر و یک» نیست. صفر و یک منطقی در واقع با محدوده های مشخصی از ولتاژ نمایش داده می شوند. میکروکنترلر باید بتواند این محدوده ها را تشخیص دهد و در حالت خروجی، ولتاژ مناسب را ایجاد کند. بنابراین یک پایه ورودی خروجی هم زمان یک مفهوم منطقی و یک ساختار الکتریکی واقعی است.


✓ ورودی خروجی پیوسته و مبدل اندازه گیری
دنیای واقعی عمدتا پیوسته است. دما، فشار، نور، شتاب و بسیاری از کمیت های دیگر مستقیما به صورت عددهای صفر و یک وجود ندارند. برای خواندن چنین کمیت هایی، میکروکنترلر می تواند از مبدل تبدیل کمیت پیوسته به عدد استفاده کند.
این فرایند معمولا شامل سه مرحله مفهومی است:
نمونه برداری از کمیت

تبدیل مقدار آن به یک عدد

پردازش عدد توسط برنامه
در نتیجه میکروکنترلر می تواند میان جهان فیزیکی و جهان محاسباتی ارتباط برقرار کند.


✓ زمان سنج و اهمیت زمان
بسیاری از سامانه های نهفته فقط به «چه کاری انجام شود» نیاز ندارند؛ بلکه باید بدانند چه زمانی این کار انجام شود.
زمان سنج داخلی می تواند برای:
• اندازه گیری فاصله زمانی
• شمارش رویدادها
• تولید سیگنال دوره ای
• کنترل زمان بندی
• اندازه گیری عرض پالس
• ایجاد فرمان های دقیق زمانی
استفاده شود.
این واحدها بخش مهمی از دلیل مناسب بودن میکروکنترلر برای کنترل تجهیزات فیزیکی هستند.


✓ وقفه؛ پاسخ به رویداد
اگر پردازنده مجبور باشد دائما همه ورودی ها را بررسی کند، بخش زیادی از توان پردازشی صرف انتظار می شود. وقفه راه دیگری فراهم می کند. در این روش، یک رویداد سخت افزاری می تواند توجه پردازنده را به خود جلب کند.
برای مثال:
رویداد رخ می دهد → پردازنده متوجه آن می شود → اجرای کار فعلی را به طور موقت متوقف می کند → رویداد را پردازش می کند → به برنامه قبلی برمی گردد.
این سازوکار برای واکنش سریع به تغییرات خارجی بسیار مهم است. البته طراحی نادرست وقفه ها می تواند موجب تاخیر، از دست رفتن رویداد یا رفتار نامطمئن شود؛ بنابراین وقفه صرفا یک قابلیت نرم افزاری نیست و به زمان بندی سخت افزار وابسته است.


✓ ارتباط میکروکنترلر با مدارهای دیگر
میکروکنترلر معمولا بخشی از یک سامانه بزرگ تر است. بنابراین باید بتواند با حسگرها، حافظه ها، نمایشگرها، مبدل ها و کنترل کننده های دیگر تبادل داده داشته باشد. برای این منظور، واحدهای ارتباطی مختلفی در آن قرار می گیرند.
اصل مشترک آنها این است که داده در میکروکنترلر به شکل مشخصی سازمان دهی می شود → از مسیر الکتریکی منتقل می شود → گیرنده آن را دریافت و تفسیر می کند.
تفاوت میان روش های ارتباطی بیشتر به نحوه زمان بندی، تعداد سیم ها، روش هماهنگی و ساختار انتقال داده مربوط است.


✓ حافظه؛ فقط محل ذخیره برنامه نیست
در یک میکروکنترلر معمولا چند نوع حافظه با رفتار متفاوت وجود دارد. حافظه برنامه باید بتواند کد را در شرایط خاموش بودن سامانه نیز نگهداری کند. حافظه کاری برای داده هایی استفاده می شود که هنگام اجرای برنامه دائما تغییر می کنند. برخی میکروکنترلرها حافظه ای برای نگهداری داده های پایدار نیز دارند. این تفاوت اهمیت زیادی دارد؛ زیرا سرعت، ماندگاری داده، ظرفیت و نحوه دسترسی در انواع مختلف حافظه یکسان نیست. بنابراین معماری حافظه مستقیما بر طراحی نرم افزار و عملکرد سامانه اثر می گذارد.


✓ میکروکنترلر چگونه با دنیای واقعی ارتباط برقرار می کند؟
یک زنجیره معمول را می توان چنین دید:
پدیده فیزیکی

حسگر

سیگنال الکتریکی

ورودی میکروکنترلر

تبدیل و پردازش

تصمیم

خروجی

عملگر

تغییر در جهان فیزیکی
این زنجیره نشان می دهد که میکروکنترلر در بسیاری از سامانه ها نقش واسطه محاسباتی میان دنیای فیزیکی و منطق تصمیم گیری را دارد.


✓ میکروکنترلر و سامانه نهفته
سامانه نهفته سامانه ای محاسباتی است که برای انجام یک یا مجموعه محدودی از وظایف مشخص درون یک محصول یا تجهیز قرار گرفته است. میکروکنترلر یکی از مهم ترین بسترهای ساخت چنین سامانه هایی است. در اینجا رایانه هدف، اجرای هر برنامه دلخواه کاربر نیست؛ بلکه از ابتدا برای یک عملکرد مشخص طراحی می شود.
به همین دلیل معیارهای مهم طراحی عبارت اند از:
زمان پاسخ
مصرف انرژی
قابلیت اطمینان
هزینه سخت افزار
اندازه
پایداری زمانی
محدودیت حافظه
رفتار در شرایط خطا
بنابراین «قوی تر بودن» همیشه به معنای «بهتر بودن» نیست.
یک میکروکنترلر با توان محاسباتی کمتر، اگر زمان بندی، مصرف توان و واحدهای جانبی مناسب تری داشته باشد، می تواند برای یک سامانه مشخص انتخاب بهتری باشد.


✓ میکروکنترلر در برابر رایانه عمومی
رایانه عمومی معمولا برای اجرای طیف گسترده ای از برنامه ها و تعاملات طراحی شده است. میکروکنترلر معمولا برای یک وظیفه مشخص و با محدودیت های دقیق طراحی می شود.
در نتیجه، در میکروکنترلر ویژگی هایی مانند:
قابلیت پیش بینی زمان اجرا
راه اندازی سریع
مصرف توان پایین
دسترسی مستقیم به پایه های سخت افزاری
واکنش دقیق به رویدادها
اهمیت بیشتری پیدا می کنند.
به همین دلیل یک تراشه کوچک می تواند کنترل یک سامانه فیزیکی را با دقت بالا انجام دهد، در حالی که از نظر توان محاسباتی با یک رایانه عمومی قابل مقایسه نیست.


✓ چرا میکروکنترلر «رایانه کوچک» نیست؟
این عبارت تا حدی درست اما ناقص است. میکروکنترلر از نظر داشتن پردازنده، حافظه و برنامه پذیری ویژگی های یک رایانه را دارد؛ اما معماری آن از ابتدا برای کنترل سخت افزار و اجرای وظیفه مشخص بهینه شده است.
ویژگی مهم آن یکپارچگی است. به جای ساخت سامانه از چندین تراشه جداگانه، بسیاری از قابلیت های موردنیاز در یک تراشه جمع شده اند. این یکپارچگی تعداد اتصالات، فضای مدار، مصرف توان و پیچیدگی سخت افزار را کاهش می دهد.



✓ محدودیت بنیادی میکروکنترلر
یک میکروکنترلر همه کاره نیست.
محدودیت های اصلی آن می توانند شامل:
• ظرفیت محدود حافظه
• توان پردازشی محدود
• پهنای باند محدود
• تعداد محدود پایه ها
• دقت محدود واحدهای اندازه گیری
• توان خروجی محدود
• حساسیت به نویز
• محدودیت حرارتی
• و محدودیت زمان بندی
باشند.
در نتیجه انتخاب میکروکنترلر باید بر اساس نیازهای واقعی سامانه انجام شود، نه صرفا تعداد هسته یا سرعت پردازنده.


✓ نکته مهم در طراحی حرفه ای
میکروکنترلر به تنهایی سامانه را نمی سازد.
بین تراشه و دنیای واقعی، مدارهای دیگری نیز وجود دارند:
منبع تغذیه
حفاظت
تطبیق سطح ولتاژ
فیلتر
تقویت کننده
راه انداز عملگر
مدار ساعت
حفاظت در برابر تخلیه الکتریکی
و موارد دیگر.
اگر این بخش ها درست طراحی نشوند، حتی بهترین میکروکنترلر نیز نمی تواند عملکرد سامانه را تضمین کند. بنابراین طراحی میکروکنترلری در اصل یک مسئله سخت افزار و نرم افزار توامان است.



میکروکنترلر یک سامانه محاسباتی فشرده و قابل برنامه ریزی در یک تراشه است که پردازنده را با حافظه و واحدهای جانبی موردنیاز برای تعامل مستقیم با سخت افزار ترکیب می کند. نقطه قوت اصلی آن سرعت پردازنده نیست؛ بلکه یکپارچگی، کنترل دقیق، واکنش پذیری، مصرف توان مناسب و ارتباط مستقیم با دنیای فیزیکی است.
از دیدگاه معماری می توان مسیر عملکرد آن را چنین خلاصه کرد:
ورودی فیزیکی → دریافت → تبدیل → پردازش → تصمیم → خروجی → کنترل سامانه
به همین دلیل میکروکنترلر در سامانه های نهفته، ابزار دقیق، کنترل صنعتی، تجهیزات پزشکی، وسایل نقلیه، لوازم خانگی، رباتیک و بسیاری از تجهیزات الکترونیکی به عنوان هسته کنترل استفاده می شود. در نهایت، تفاوت اصلی میان یک میکروکنترلر و یک پردازنده صرفا در اندازه یا قدرت محاسباتی نیست؛ میکروکنترلر برای قرارگرفتن درون یک سامانه و کنترل مستقیم آن سامانه طراحی شده است.