آشنایی با 5 تفاوت میکروکنترلر و میکروپروسسور
تفاوت میکروکنترلر و میکروپروسسور، موضوعی ابتدایی ولی مهم در مهندسی الکترونیک است. میکروپروسسور (ریز پردازنده)، عنصری پردازشی و میکروکنترلر (ریز کنترلگر)، عنصری کنترلی در برد مدار چاپی است. این دو از نظر اجزاء جانبی، سرعت پردازشی و توان مصرفی فرق دارند، که همین امر باعث کاربردهای گوناگون آنها شده است. در این مقاله با بررسی تفاوت های مهم این دو قطعه، راهنمایی کاربردی برای پروژه های خود خواهید داشت.
میکروپروسسور چیست؟ (Microprocessor)
میکروپروسسور (Microprocessor) یک واحد پردازشی است که فراخوانی دستورات از حافظه، رمزگشایی و اجرا آنها را بر عهده دارد. به عبارت دیگر، برنامه پیچیده ما به دستورات جزئی تر و قابل فهم برای میکروپروسسور، مانند جمع دو عدد و… شکسته شده، برای پردازش به Microprocessor ارائه میشود، آنگاه از نتیجه پردازش استفاده می کنیم. میکروپروسسور به اختصار µP، up یا CPU نامیده میشود و معادل فارسی آن ریزپردازنده است.
میکروکنترلر چیست؟ (Microcontroller)
میکروکنترلر (Microcontroller) واحدی کنترلی برای کنترل یک عملیات خاص در یک سیستم خاص است. به زبان سادهتر، میکروکنترلر قطعهای است که با برنامهریزی آن توسط افراد، میتواند یک عملیات (مانند کنترل دما) را در یک سیستم خاص (مانند بخاری) کنترل کند.
microcontroller شامل میکروپروسسور (CPU)، حافظه جانبی (Memory)، لوازم جانبی (Peripheral) است که در یک تراشه (Chip) گنجانده شده و به راحتی قابل استفاده و برنامهریزی است. میکروکنترلر به اختصار UC, μC, MC یا MCU نامیده میشود و معادل فارسی آن ریزکنترلگر است. در صنعت الکترونیک ایران، استفاده از واژه «میکرو» مرسوم است.
فرق میکروکنترلر و میکروپروسسور
برای درک بهتر تفاوت میکروکنترلر و میکروپروسسور، آنها را از نظر اجزای جانبی، توان مصرفی، حافظه، سرعت پردازشی و کاربرد مقایسه و بررسی خواهیم کرد.
1- اجزای جانبی (Peripheral)
ریز پردازنده تنها یک واحد پردازشی است و هیچ اجزای جانبی در اختیار ندارد. در حالی که میکروکنترلر شامل اجزای جانبی داخلی است. این اجزای جانبی میتواند شامل ورودی خروجی های منطقی (برای کنترل رله، خواندن وضعیت کلید و …)، ارتباطی مانند SPI-I2C-UART-USB و … (برای ارتباط با سایر سیستم ها) یا مبدل ACD-DAC برای تبدیل مقادیر آنالوگ به دیجیتال و بالعکس باشد.
اتصال Peripheral به میکروپروسسور، قواعد و اصول مهندسی خاص خود را دارد و باعث افزایش حجم مدار و پیچیدگی طراحی میشود که باید توسط طراح مدار حرفهای انجام شود.
استفاده از میکروکنترلر ها در پروژه هایی که محدودیت فضا داریم، مطلوب است و با توجه به آماده بودن اجزاء جانبی، طراحی سادهتری خواهد داشت.
2- توان مصرفی (Power consumption)
توان مصرفی رابطه مستقیمی با سرعت پردازشی، تکنولوژی ساخت و معماری دارد. لذا نمیتوان با قطعیت گفت مصرف توان کدام تراشه بیشتر است. اما به طور معمول، CPU ها قدرت پردازشی بیشتر و طبیعتاً مصرف توان بیشتری دارند.
میکروکنترلر های با قدرت پردازشی کمتر و استفاده از راهکار های کاهش توان مصرفی (مانند خاموش کردن ادوات جانبی در صورت عدم نیاز)، مصرف انرژی کمتری دارند.
استفاده از میکروکنترلر ها در پروژه هایی که محدودیت توان مصرفی داریم (مانند دستگاههایی که با باتری کار می کنند) مطلوب است.
3- حافظه و قابلیت ارتقاء (Memory)
میکروپروسسور تنها یک واحد پردازشی است و حافظه ندارد (مگر رجیستر ها یا حافظه کش (Cache) کم حجم داخلی که برای افزایش سرعت عملیات پردازشی و ذخیره موقت اطلاعات استفاده می شود).
در مقابل، Microcontroller ها شامل حافظه مشخص و ثابت جانبی هستند. این حافظه میتواند از نوع RAM, FLASH و EEPROM باشد.
آیا امکان ارتقاء حافظه وجود دارد؟
در ریز پردازنده ها با توجه وجود باس پرسرعت خارجی، امکان اتصال انواع حافظه پرسرعت خارجی مانند RAM وجود دارد. ولی در میکرو به علت داخلی بودن باس های پرسرعت، امکان اتصال حافظه های سرعت بالا وجود ندارد و تنها میتوان با پروتکل های ارتباطی مانند SPI/I2C به حافظه های خارجی با سرعت پایین مانند EEPROM متصل شد و حافظه قابل استفاده را افزایش داد.
استفاده از میکروکنترلر ها در پروژه هایی با حافظه کم و غیر قابل ارتقاء، مناسب است.
4- سرعت پردازشی(Clcok speed)
در بحث تفاوت میکروکنترلر و میکروپروسسور، به طور معمول سرعت پردازش ریز پردازنده ها بیشتر است. به عنوان مثال سرعت کلاک MCU STM32F401 حداکثر 84 مگاهرتز و CPU Intel® Core™ i7-11850HE در محدوده 4700 مگاهرتز (60 برابر سریعتر) است. استفاده از میکروکنترلر ها در پروژه هایی که با سرعت کم (در حد چند مگاهرتز)، مناسب است.
5- کاربرد (Usage)
ریز پردازنده ها در سیستمهای چند منظوره با قدرت پردازشی و توان مصرفی بالا کاربرد دارند. سیستمهایی مانند کامپیوتر، تلفن هوشمند، سرور و برد های پردازشی هوش مصنوعی – پردازش تصویر ریزکنترلگر در سیستمهایی با کاربرد مشخص، قدرت پردازشی و توان مصرفی پایین کاربرد دارند. مانند انواع سیستم کنترل دما محیط، خانه هوشمند، ربات ها و …
میکروکنترلر | میکروپروسسور | ویژگی مورد بررسی |
درون چیپ پریفرال های خاص و ثابتی قرار داده شده است. | به صورت داخلی وجود ندارد اما امکان اتصال خارجی فراهم است. | اجزای جانبی (Peripheral) |
کم | زیاد | توان مصرفی (Power consumption) |
درون چیپ حافظه پرسرعت وجود دارد. امکان اتصال حافظه خارجی کم سرعت | حافظه جانبی وجود ندارد اما امکان اتصال خارجی انواع حافظه در صورت سازگاری، فراهم است. | حافظه و قابلیت ارتقاء (Memory) |
کم | زیاد | سرعت پردازشی(Clcok speed) |
سیستمهایی که نیاز به توان مصرفی پایین با وجود قدرت پردازشی پایین دارند. مانند انواع سیستم کنترل دما محیط، خانه هوشمند و … | سیستمهایی که نیاز به قدرت پردازشی بالا دارند مانند کامپیوتر، تلفن هوشمند و … | کاربرد (Usage) |
فاکتور های مهم برای انتخاب میکروکنترلر
- سرعت پردازشی
- معماری
- سهولت دسترسی در بازار قطعات
- سهولت طراحی PCB و چیدمان مناسب پایه ها
- جامعه کاربران، مستندات سازنده و منابع آموزشی
- قیمت
- حافظه
- نوع و تعداد لوازم جانبی (Peripheral)
- نویز پذیری
چگونه میکروکنترلر مناسب برای پروژه خود انتخاب کنیم؟
پس از بررسی تفاوت میکروکنترلر و میکروپروسسر، اکنون می خواهیم بدانیم برای انتخاب میکروکنترلر مناسب چه فاکتورهایی را باید در نظر گرفت، تا طراحی و قیمت محصول بهینه شود.
1- حداقل نیازمندی های پروژه خود را تعریف کنید
برای پروژه کنترل دما محیط به واحد ADC (مبدل آنالوگ به دیجیتال) با دقت حداقل 8 بیت، 2 خروجی برای کنترل 2 عدد رله ( هیتر و فن)، رابط I2C برای نمایش دما فعلی محیط بر روی نمایشگر OLED و 4 ورودی دیحیتال (کلید) برای انجام تنظیمات دستگاه نیاز داریم. این سیستم باید در دمای -10 تا +50 درجه سانتی گراد عمل کند که با توجه به کند بودن تغییر دما محیط، سرعت پردازش اهمیت بالایی ندارد. سیستم کنترل دما با آداپتور کار میکند و بهینه سازی مصرف توان اهمیت ندارد.
2- لیست چند میکروکنترلر رایج در بازار قطعات الکترونیک ایران که توانایی پاسخگویی به نیاز های پروژه را داشته باشند
به عنوان مثال ATmega8, STM32F030xxxx حداقل نیازمندی های پروژه ما را تأمین میکنند و در بازار هم به راحتی قابل تأمین هستند. در زیر اسامی چند خانواده رایج در بازار ایران به همراه سازنده آن آمده است. (در حال حاضر AVR و STM32 محبوبتر است)
- PIC توسط شرکت Microchip
- AVR توسط شرکت Microchip
- STM8 توسط شرکت STMicroelectronics
- STM32 توسط شرکت STMicroelectronics
- LPC توسط شرکت NXP Semiconductors
هر خانواده شامل تعدادی سری، و هر سری شامل تعداد زیادی میکرو است که بر اساس نیازمندی ما و موجود بودن در بازار ایران، قابل انتخاب هستند.
3- مقایسه فاکتور های نهایی و تصمیم گیری
در این مرحله لیست فاکتور های مهم برای انتخاب را مقایسه می کنیم. مهمترین موضوع قیمت و سهولت دسترسی در بازار قطعات است. در پروژه کنترل دما محیط با توجه به اینکه STM32F030xxxx تمام نیاز های پروژه را برطرف میکند و قیمت مناسب تری نسبت به ATmega8 دارد، انتخاب مناسب تری است.
4 – پیادهسازی سختافزار و نرمافزار برد نمونه
پس از برنامه نویسی میکروکنترلر و طراحی مدار، نوبت به طراحی برد مدار چاپی است. معمولاً نسخه اولیه PCB پروژه تحت عنوان «برد نمونه» به شرکت های چاپ PCB سفارش داده میشود و پس از بررسی و تست عملکرد پروژه، اصلاحاتی در طراحی و PCB صورت میگیرد. سپس نسخه نهایی و اصلاح شده محصول در تعداد مورد نیاز (همراه با چاپ محافظ یا راهنما در صورت نیاز) به شرکت های چاپ و مونتاژ برد مدار چاپی سفارش داده می شود.
نتیجهگیری تفاوت میکروپروسسور و میکروکنترلر
تفاوت میکروکنترلر و میکروپروسسور چیست؟ میکروپروسسور و میکروکنترلر دو جزء مهم سیستمهای پردازشی و کنترلی هستند و هر یک کاربرد های ویژه خود را دارند. به طور کلی میکروکنترلر شامل میکروپروسسوری ضعیف در کنار حافظه و لوازم جانبی محدود داخلی است که برای کاربرد هایی که قدرت پردازشی بالا مورد انتظار نیست، انتخابی بهتر با قیمت مناسبتر می باشد.
در مقابل میکروپروسسور ها با فراهم کردن قدرت پردازشی بیشتر، باعث طراحی پیچیدهتر (به علت اتصال اجزا و حافظه جانبی) و توان مصرفی بیشتر میشوند و در کاربردهایی که قدرت پردازشی بالا اولویت است، کاربرد دارند.
در حال حاضر به عنوان مدیر تولید خط چاپ و مونتاژ در کارخانه مرصا فعالیت می کنم. مدرک کارشناسی رو در رشته مهندسی رباتیک از دانشگاه صنعتی شاهرود گرفتم و ارشد رو در رشته مدیریت در دانشگاه تهران ادامه دادم. از سال 1396 رسما فعالیتم رو در شرکت مرصا شروع کردم و تجربیات و مطالعات شخصیم رو به اشتراک می گذارم.