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

میکروکنترلرها (که مخفف آنها MCU یا MC است) میکروکامپیوترهای بسیار کوچکی هستند که به طور کامل روی یک تراشه منفرد قرار دارند.

شما می توانید یک میکروکنترلر را به عنوان یک کامپیوتر ساده شده تعریف کنید – کامپیوتری که عموماً برای اجرای مکرر یک برنامه اصلی واحد طراحی شده است. طبق تعریف، میکروکنترلرها معمولاً برای انجام یک کار خودکار، همانطور که از قبل توسط کاربر برنامه ریزی شده است، در یک دستگاه واحد در نظر گرفته شده اند. آنها طوری طراحی شده اند که این یک کار را به طور مکرر انجام دهند (یا، همانطور که معمول است، در یک حلقه زمان بندی شده).

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

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

برای دستیابی به این هدف، اصول اولیه یک میکروکنترلر حکم می کند که به طور کلی در ارتباط با انواع دیگر قطعات و مدارهای الکترونیکی که از طریق بردهای مدار چاپی (PCB) به هم وصل شده اند، کار کند. این ترکیب از یک میکروکنترلر و تجهیزات مبتنی بر PCB می‌تواند برای ایفای نقش کلیدی در کنترل، نظارت و تأثیرگذاری بر انواع مختلف سیستم‌ها و رفتارهای اجزا استفاده شود.

انواع میکروکنترلر

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

تمایز اصلی بین سه نوع میکروکنترلر از نظر عرض باس مربوطه آنها – عرض لوله های داده مربوطه آنهاست.

این در نهایت مشخصات کلیدی است که دقت ریاضی سرعت میکروکنترلر را محدود می کند. به طور خلاصه، یک میکروکنترلر 8 بیتی برای انجام محاسبات 16 بیتی یا 32 بیتی به تعداد دسترسی های اتوبوس و دستورالعمل های بیشتری نیاز دارد. بنابراین به پاسخ (یعنی رفتار خروجی) بسیار کندتر از MCU 16 یا 32 بیتی می رسد.

از نظر محاسباتی، این مسئله در واقع همان محدودیتی است که با یک CPU آهسته به جای یک پردازنده سریعتر و قدرتمندتر پیدا می کنید. این معیارهای مهم بر انتخاب و دامنه زبان های برنامه نویسی که می توانید به راحتی با یک واحد میکروکنترلر استفاده کنید، تأثیر می گذارد. خواه C++، پایتون، R یا آردوینو باشد، میکروکنترلرها به طور کلی با انواع زبان‌های برنامه‌نویسی سازگار هستند، اگرچه مشخصات آن به دستگاه بستگی دارد.

MCU های 8 بیتی مدت هاست که به عنوان ابتدایی ترین و مقرون به صرفه ترین گزینه ها، اما با عملکرد محدود در برخی از برنامه ها در نظر گرفته می شوند. میکروکنترلرهای 16 بیتی و 32 بیتی معمولاً گران‌تر هستند، اما عملکرد مناسبی را ارائه می‌دهند.

کاربردهای میکروکنترلر

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

برخی از رایج‌ترین پروژه‌ها، توابع، برنامه‌ها و محیط‌های میکروکنترلر که در آنها استفاده می‌شود عبارتند از:

  • اتوماسیون و رباتیک
  • لوازم الکترونیکی مصرفی و لوازم خانگی
  • تجهیزات پزشکی و آزمایشگاهی (دستگاه های تشخیصی دستی، اسکنرها و دستگاه های اشعه ایکس، ابزار اندازه گیری، آنالیز و مانیتورینگ)
  • صنایع خودروسازی و سیستم‌های کنترل خودرو (تنظیم قوای محرکه، کنسول‌های چندرسانه‌ای و نرم‌افزار ناوبری)
  • کنترل محیط صنعتی و تولیدی (گرمایش و روشنایی، سیستم های HVAC و مکانیزم های قفل ایمنی)
  • دستگاه ها و سیستم های اینترنت اشیا

میکروکنترلرها چه کاری انجام می دهند؟

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

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

  • روشن کردن صفحه نمایش LED یا OLED در پاسخ به تقاضای کاربر مبتنی بر لمس
  • پخش نورها و صداها در برنامه های حسگر دما یا انواع دیگر سیستم های هشدار و هشدار
  • پاسخ به نیاز موتور برای روشن یا خاموش شدن در پمپ یا سایر وسایل مکانیکی
  • تنظیم شیب، تعادل و سرعت در کاربردهای مبتنی بر ژیروسکوپ یا شتاب‌سنج

نحوه استفاده از میکروکنترلر: چگونه کار می کنند؟

واحد میکروکنترلر (MCU) یک کامپیوتر بسیار کوچک است که به طور کامل روی یک مدار مجتمع تعبیه شده است که در غیر این صورت به عنوان یک تراشه شناخته می شود.

از این نظر، استفاده از میکروکنترلرها تا حدودی شبیه به استفاده از سیستم روی تراشه (SoC) است، که معمولاً برای تأمین انرژی یک رایانه خانگی، احتمالاً توسط اینتل یا AMD، می‌بینید. با این حال، یک میکروکنترلر به طور قابل توجهی پیچیده‌تر از SoC متوسط است (این دومی اغلب شامل یک یا چند برد میکروکنترلر در میان بسیاری از اجزای اصلی خود می‌شود).

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

هنگامی که به درستی برای واکنش به ورودی های خاص یا تشخیص سیگنال برنامه ریزی شده باشد، یک پردازنده MCU می تواند برای انجام رفتارهای پاسخگو در طیف متنوعی از توابع و برنامه ها استفاده شود. اینها می توانند از محرک های ساده ورودی-خروجی (I/O) و الگوریتم های کنترل مؤلفه تا تأثیرگذاری بر رفتار اجزای اضافی در سیستم های کاملاً یکپارچه بسیار پیچیده تر باشند.

درک ساختار فیزیکی یک دستگاه میکروکنترلر نیز مهم است. این امر درک بهتری از نحوه برنامه ریزی یک میکروکنترلر و همچنین تفاوت بین MCU و اجزای مشابه مانند ریزپردازنده ها (MPs) را امکان پذیر می کند.

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

  • CPU (واحد پردازش مرکزی). اساساً مغز ریز کامپیوتر، این جزء یک ریزپردازنده است که تمام فرآیندهایی را که در داخل MCU انجام می شود کنترل و نظارت می کند. مسئول خواندن و اجرای تمام توابع منطقی و ریاضی در حال انجام است
  • RAM (حافظه دسترسی تصادفی). این ذخیره‌سازی موقتی است که فقط در صورت روشن بودن، برای کمک به اجرا و محاسبه برنامه‌هایی که به MCU گفته شده است، استفاده می‌شود. در حین استفاده مدام بازنویسی می شود
  • رام (حافظه فقط خواندنی). این یک حافظه دائمی از پیش نوشته شده است که حتی بدون برق نیز باقی می ماند. اساساً به MCU دستور می دهد که چگونه برنامه های خود را در صورت درخواست اجرا کند
  • نوسان ساز داخلی (تایمر اصلی MCU). این جزء به عنوان ساعت هسته میکروکنترلر عمل می کند و ریتم های اجرای فرآیندهای داخلی آن را کنترل می کند. مانند هر نوع تایمر دیگری، آنها زمان سپری شدن آن در طول یک فرآیند معین را ردیابی می کنند و به MCU کمک می کنند تا عملکردهای خاصی را در بازه های زمانی مشخص شروع و پایان دهد.
  • پورت های I/O (ورودی/خروجی). این شامل یک یا چند درگاه ارتباطی است که معمولاً به شکل پین های اتصالی است. آنها به MCU اجازه می دهند تا برای جریان سیگنال های داده ورودی/خروجی و منبع تغذیه به سایر اجزا و مدارها متصل شود.
  • تراشه های کنترل کننده جانبی (سایر لوازم جانبی و اجزای اختیاری). اینها به وظیفه ای که MCU باید انجام دهد بستگی دارد. آنها می توانند هر چیزی از تایمرها و شمارنده های اضافی مختلف گرفته تا گره های مدولاسیون عرض پالس (PWM)، مبدل های آنالوگ به دیجیتال، مبدل های دیجیتال به آنالوگ، تعداد زیادی ماژول ضبط داده، حافظه فلش و برنامه، گزینه های ورودی/خروجی بیشتر و خیلی بیشتر از این.

با این حال، همه این مؤلفه‌ها هم از نظر وسعت و هم از نظر ظرفیت در یک میکروکنترلر نسبت به SoC قابل مقایسه در رایانه شخصی بسیار کاهش یافته‌اند. معمولاً یک MCU کنترل رفتارهای اساسی را در محصولاتی مانند سشوار یا ماشین حساب می‌توان یافت، اما عملکرد محدودی را در یک ماشین پیچیده‌تر مانند یک رایانه کامل ارائه می‌دهد.

معماری میکروکنترلر

اگرچه تنها سه نوع اصلی میکروکنترلر وجود دارد، اما طیف متنوعی از مارک‌ها و معماری‌های سازنده MCU موجود است.

برخی از رایج‌ترین نام‌هایی که کاربران ممکن است اغلب به آنها توجه کنند عبارتند از:

  • پردازنده های هسته ARM (بسیاری از فروشندگان میکروکنترلرهای ARM و اجزای مرتبط از جمله هسته های ARM Cortex-M را عرضه می کنند)
  • میکروکنترلرهای AVR Atmel Technology (8 بیتی)، AVR 32 (32 بیتی) و AT91SAM (32 بیتی)
  • میکروکنترلرهای PIC فناوری ریزتراشه (8 بیت PIC16، PIC18، 16 بیت dsPIC33، PIC24، PIC32 32 بیت)
  • Freescale ColdFire (32 بیتی) و S08 (8 بیتی)
  • میکروکنترلرهای اینتل 8051
  • PowerPC ISE
  • Renesas Electronics (RL78 MCU 16-bit, RX 32-bit MCU, SuperH, V850 32-bit MCU, H8, R8C 16-bit MCU)
  • میکروکنترلرهای 8 بیتی 8051 خط لوله Silicon Laboratories و میکروکنترلرهای 32 بیتی مبتنی بر ARM با سیگنال مختلط
  • Texas Instruments TI MSP430 (16 بیتی)، MSP432 (32 بیتی)، C2000 (32 بیتی)
  • Toshiba TLCS-870 (8 بیتی و 16 بیتی)
  • CISC و RISC (همچنین RISC-V)

برای اطلاعات بیشتر و مشاوره در مورد انتخاب یا برنامه‌نویسی میکروکنترلرها، پردازنده‌ها و بردها و کیت‌های توسعه میکروکنترلر، لطفاً با تیم پشتیبانی مشتری متخصص ما تماس بگیرید.

بلوک دیاگرام میکروکنترلر

این بلوک دیاگرام معماری داخلی یک میکروکنترلر 8051 را به تصویر می کشد.

CPU فرآیندها را مدیریت و همگام سازی می کند، رجیسترها را مدیریت می کند و داده های ROM را تفسیر می کند. اگر برنامه اولویت دیگری درخواست دسترسی به گذرگاه سیستم را داشته باشد، فراخوانی فرعی وقفه ارائه می شود. وقفه ها باعث می شوند که فرآیندهای فعلی به تأخیر بیفتند تا این دسترسی اضافی اتفاق بیفتد. اسیلاتور (که در نمودار به عنوان OSC مشخص شده است) عملیات تایمر را برای مدار دیجیتال میکروکنترلر انجام می دهد.

میکروکنترلرها در مقابل میکروپروسسورها

اغلب در مورد اینکه دقیقاً چه چیزی یک میکروکنترلر در مقابل یک ریزپردازنده (MP) یا سیستم روی تراشه (SoC) را تعریف می کند، سردرگمی وجود دارد.

به طور خلاصه، یک میکروکنترلر یک نسخه ساده شده و تک کاره از یک SoC است. اگرچه یک MCU از نظر فنی شامل یک CPU یا پردازنده به عنوان بخشی از مدار یکپارچه خود است، اما نسخه بسیار ساده‌تری است. این ریزپردازنده کم توان به طور موثر به عنوان یک CPU یا مغز ساده برای واحد میکروکنترلر عمل می کند و به MCU توانایی اولیه برای انجام نقش برنامه ریزی شده خود را می دهد.

از نظر تعیین سایر تفاوت های کلیدی بین ریزپردازنده و میکروکنترلر، ساده ترین تعریف این است که از نظر اجزاء صحبت کنیم. یک ریزپردازنده واقعی فاقد هر گونه حافظه (RAM یا ROM) یا پورت ورودی/خروجی است و تنها می تواند به عنوان بخشی از سیستم های تعبیه شده گسترده تر عمل کند. مجموعه‌های دستورالعمل‌هایی که به یک ریزپردازنده مستقل می‌گویند چگونه یک تابع معین را اجرا کند، معمولاً در خارج ذخیره می‌شوند. در یک میکروکنترلر، همه این اجزای مختلف – از جمله پردازنده ساده شده – در یک واحد مستقل ترکیب می شوند.

از نظر عملکرد، میکروکنترلرها و ریزپردازنده ها چیزی شبیه به این است:

میکروکنترلرها

  • یک واحد کاملاً مستقل هستند که شامل یک CPU یا ریزپردازنده بسیار ساده است
  • برای یک برنامه خاص استفاده می شود، همانطور که از قبل توسط کاربر برنامه ریزی شده است
  • از نظر عملکرد به ویژه قدرتمند نیستند. به طور معمول، آنها فقط مقدار کمی انرژی مصرف می کنند و از نظر ظرفیت ذخیره سازی داده یکپارچه کمی دارند
  • نیاز به برنامه ریزی توسط اپراتور برای انجام هر نقش معنی دار
  • نمی تواند خارج از وظایف برنامه ریزی شده آنها عمل کند (کد نوشته شده برای آنها – و کیفیت آن – به طور کامل عملکرد آنها را مشخص می کند)
  • عموماً برای استفاده در دستگاه‌ها یا وسایل خاصی طراحی شده‌اند که برای انجام مکرر یک کار طراحی شده‌اند

ریزپردازنده ها

  • از نظر محدوده عملکرد بسیار پیچیده تر و همه کاره تر هستند و برای استفاده در محاسبات عمومی تر (برخلاف دستگاه های تخصصی تک وظیفه ای) در نظر گرفته شده اند.
  • سرعت پردازنده (ساعت) بسیار بالاتری نسبت به MCU ها دارند که اغلب به جای هرتز در گیگاهرتز (گیگاهرتز) اندازه گیری می شوند.
  • برخلاف میکروکنترلرهای نسبتا ساده و ارزان، ساخت آنها چالش برانگیز و پرهزینه است
  • برای کار کردن به قطعات خارجی بسیار بیشتری (RAM، پورت های ورودی/خروجی، ذخیره سازی داده، EEPROM یا حافظه فلش) نیاز دارید، که هیچ کدام در MP ادغام نشده اند و باید جداگانه خریداری و متصل شوند.
  • مصرف توان بسیار بالاتری دارند و متعاقباً اجرای مداوم آن بسیار مقرون به صرفه است.

سوالات متداول

اندازه یک میکروکنترلر کوچک چقدر است؟
میکروکنترلرها اجزای بسیار کوچکی هستند که به گونه ای طراحی شده اند که تا حد امکان جمع و جور باشند بدون اینکه عملکرد آنها به خطر بیفتد. ابعاد معمولی برای بسیاری از MCU های استاندارد شامل ارتفاع از 0.5 میلی متر تا 4.95 میلی متر و طول بین 4 میلی متر تا 35.56 میلی متر است. با این حال، باید توجه داشت که این می تواند به طور قابل توجهی بسته به عوامل و نیازهای متعدد دیگر متفاوت باشد. در میان کوچکترین ابعاد میکروکنترلر، ارتفاع فقط 0.15 میلی متر و طول 1.06 میلی متر است.

بهترین میکروکنترلرها کدامند؟
بهترین میکروکنترلر در نهایت به نیازهای پروژه شما بستگی دارد. هنگام در نظر گرفتن انتخاب دستگاه میکروکنترلر، باید چندین فاکتور کلیدی را در نظر بگیرید، از جمله:

تحمل دما
معماری
ظرفیت حافظه
قیمت و مقرون به صرفه بودن
راندمان (عملکرد در مقابل مصرف برق)
امنیت
برند یا سازنده
قدرت پردازش
رابط
حداکثر فرکانس (MHz)

میکروکنترلر در مقابل PLC: تفاوت چیست؟
یک کنترل کننده منطقی قابل برنامه ریزی (PLC) مانند یک میکروکنترلر است، اما بزرگتر، سریعتر و قابل اعتمادتر است. PLC ها اجزای بسیار پیچیده تری هستند که برای طیف وسیعی از برنامه های کاربردی با کارایی بالا مناسب هستند. از سوی دیگر، میکروکنترلرها در مقایسه ساده و ساده هستند و برای مصارف کوچکتر و کم مصرف ایده آل هستند.

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