برگزیده‌های مجله فرادرس
برگزیده‌های مجله فرادرس
خواندن ۸ دقیقه·۴ سال پیش

تفاوت میکروکنترلر و میکروپروسسور چیست؟ — به زبان ساده

یکی از پرسش‌هایی که بسیاری از افراد برایشان ایجاد می‌شود، این است که «تفاوت بین میکروکنترلر و میکروپروسسور چیست؟» همچنین، بسیار پیش می‌آید که این دو کلمه به اشتباه به جای یکدیگر به کار می‌روند. در ادامه، با تفاوت‌های میکروکنترلر و میکروپروسسور آشنا می‌شویم.

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

«میکروکنترلر» یا «ریزکنترل‌گر» (Microcontroller) یک کامپیوتر کوچک بر روی تراشه مدار مجتمع یا آی‌سی نیمه‌هادی است. این قطعه یک کامپیوتر کامل است و تمام اجزای ضروری مورد نیاز در یک تراشه مانند واحد پردازش، رام (ROM)، رم (RAM)، پورت‌های ورودی-خروجی (I/O)، پورت‌های سریال، تایمر و غیره را دارد.

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

میکروپروسسور چیست؟

«میکروپروسسور» یا «ریزپردازنده» (Microprocessor) نوعی آی‌سی است که فقط واحد پردازش مرکزی (CPU) دارد و فاقد سایر اجزای لازم در داخل آی‌سی است. در واقع، بسته‌بندی این قطعه شامل رم، رام و سایر اجزای مورد نیاز برای انجام یک کار مشخص نیست. به همین دلیل برای تکمیل آن به اجزا و قطعات خارجی نیاز است.

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

تفاوت میکروکنترلر و میکروپروسسور

برخی از تفاوت‌های میکروکنترلرها و میکروپروسسورها به شرح زیر است:

  • میکروکنترلر یک مینی‌کامپیوتر است که به تنهایی قادر به انجام وظایفی است (مثلاً میکروکنترلرهای 8051، 8951 و غیره)، اما میکروپروسسور واحد پردازش مرکزی رایانه است (مثلاً 8085، 8086 و غیره).
  • میکروکنترلر دارای تجهیزات جانبی لازم در داخل تراشه است (مانند رام، رم و...)، به همین دلیل سیستم روی تراشه یا SoC نامیده می‌شود. واحدهای عملکردی این قطعه عبارت‌اند از ثبات‌ها، رم، رام، ALU، پورت‌های I/O، دیجیتال به آنالوگ، آنالوگ به دیجیتال، کانترها و تایمرها. در طرف مقابل، میکروپروسسور برای انجام یک کار به رم و رام خارجی نیاز دارد. واحدهای عملکردی آن ثبات، CU و ALU و غیره هستند.
  • از میکروکنترلرها در سیستم‌های تعبیه‌ای و کاربردهای خاص استفاده می‌شود. اما میکروپروسسورها به عنوان مغز کامپیوتر به کار می‌روند.
  • از آنجا که میکروکنترلر به تجهیزات خارجی نیاز ندارد، در وسایل فشرده به کار می‌رود، اما میکروپروسسور به تجهیزات جانبی نیاز دارد و در صورت استفاده از آن، اندازه وسیله حجیم خواهد شد.
  • به دلیل تعداد کم تجهیزات خارجی میکروکنترلر، مصرف توان میکروکنترلر بسیار کم است و با باتری می‌توان آن را تغذیه کرد. اما میکروپروسسور به دلیل داشتن تجهیزات اضافه به توان بیشتری نیاز دارد و به همین دلیل برای کار با باتری مناسب نیست.
  • میکروکنترلر داری حافظه داخلی با مقدار مشخصی است که قابلیت ارتقا ندارد. اما حافظه میکروپروسسور را می‌توان به سادگی و با توجه به کار مورد نظر ارتقا داد.
  • میکروکنترلر به دلیل دارا بودن حافظه روی چیپ برنامه و دستورات را سریع‌تر بارگیری می‌کند. بنابراین، در هنگام راه‌اندازی سریع‌تر است. اما از آنجا که میکروپروسسور حافظه خارجی دارد، بارگیری برنامه‌ها در آن نسبت به میکروکنترلر زمان می‌برد و به همین دلیل، نسبتاً کند است.
  • میکروکنترلر در زمان بیکاری سیستم مصرف توان را کاهش داده و در آن صرفه‌جویی می‌کند. اما میکروپروسسور سیستم صرفه‌جویی انرژی ندارد و در شرایط بیکار بودن سیستم انرژی مصرف می‌کند.
  • سرعت پردازش میکروکنترلر ۷ مگاهرتز تا ۵۰ مگاهرتز است. بنابراین، نمی‌توان از آن برای کارهای پیشرفته استفاده کرد. این در حالی است که سرعت پردازش میکروپروسسور به بالای یک گیگاهرتز نیز می‌رسد و می‌تواند کارهای سنگین را نیز انجام دهد.
  • میکروکنترلر ویدئوی اچ‌دی تا 720p را پشتیبانی می‌کند، در حالی که میکروپروسسور بالاتر از این مقدار را پشتیبانی خواهد کرد.
  • میکروکنترلر از USB 2.0 با حداکثر سرعت ۴۸۰ مگابیت بر ثانیه پشتیبانی می‌کند. اما میکروپروسسور قابلیت پشتیبانی از USB 3.0 با سرعت ۵ گیگابیت بر ثانیه را دارد.
  • میکروکنترلر قطعه‌ای با کاربرد خاص است، بدین معنی که برای یک کار مشخص طراحی شده است. اما میکروپروسسور برای کارهای پیچیده و دشوار طراحی شده که از حافظه زیادی استفاده می‌کنند.
  • میکروکنترلر ارزان است و مصرف توان کمتری دارد، بنابراین برای کاربردهای الکترونیک که در آن‌ها از باتری استفاده می‌شود و هزینه پایین مهم است، گزینه مناسبی هستند. در طرف مقابل، میکروپروسسورها گران و پرمصرف هستند و سرعت پردازش بالایی دارند، در نتیجه برای کارهای پیچیده کارایی بالایی دارند.

در ادامه، برخی از این موارد را با جزئیات بیشتری شرح می‌دهیم.

تفاوت در لوازم جانبی خارجی

تفاوت اصلی بین میکروکنترلر و میکروپروسسور وجود تجهیزات جانبی یا اجزایی مانند رم (RAM)، رام (ROM)، ای‌ای‌پی‌رام (EEPROM) و غیره در داخل تراشه آی‌سی است.

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

تفاوت در مصرف برق

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

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

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

تفاوت در حافظه و قابلیت ارتقا

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

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

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

تفاوت در سرعت پردازش

پردازش سریع میکروپروسسور بهتر از میکروکنترلر است. سرعت پردازش اولی از ۱ گیگاهرتز تا ۴ گیگاهرتز است، در حالی که سرعت دومی تقریباً ۸ مگاهرتز تا ۵۰ مگاهرتز است. ریزپردازنده بسیار سریع‌تر کار می‌کند و می‌تواند کارهای پیچیده‌ای مانند صوتی، تصویری، محتوای انیمیشن، ویرایش یا طراحی و غیره را سریع‌تر انجام دهد.

انتخاب بین میکروکنترلر و میکروپروسسور

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

  • تراشه میکروکنترلر شامل CPU (واحد پردازش مرکزی) و همچنین حافظه و وسایل جانبی لازم است، در حالی که تراشه میکروپروسسور فقط CPU دارد. بنابراین انتخاب بهتر از جهت اندازه میکروکنترلر است.
  • بهترین میکروکنترلر می‌تواند از یک ویدئو با کیفیت 720p پشتیبانی کند. برای ویدئوهایی با کیفیت بالاتر از 7250p میکروپروسسور انتخاب بهتری است.
  • میکروکنترلر از USB 2.0 پشتیبانی می‌کند و سرعت انتقال داده آن تقریباً ۱۲ مگابیت در ثانیه تا ۴۸۰ مگابیت در ثانیه است. USB 3.0 سرعت بهتری را در حدود ۵ گیگابیت در ثانیه فراهم می‌کند که به قدرت پردازش بالای میکروپروسسور نیاز دارد.
  • میکروکنترلر کندتر از میکروپروسسور است، بنابراین اگر به پردازش سریع حجم زیادی از داده‌ها نیاز دارید، میکروپروسسور گزینه بهتری است.
  • رابط کاربر گرافیکی (GUI) را می‌توان هم با میکروکنترلر و هم میکروپروسسور اجرا کرد، اما میکروپروسسور گزینه بهتری برای توسعه GUI با وضوح بالا است.
  • ویژگی صرفه‌جویی در مصرف و مصرف کم انرژی میکروکنترلر، آن را برای محصولات باتری‌دار به گزینه ایده‌آلی تبدیل می‌کند. صرفه‌جویی در مصرف انرژی در شرایط بیکاری، عمر باتری را تا ده برابر افزایش می‌دهد.
  • حافظه میکروکنترلر محدود است. این در حالی است که حافظه قابل ارتقای میکروپروسسور برای موارد که حافظه بالایی مورد نیاز است، گزینه مناسبی است.
  • میکروپروسسور به سیستم عامل (OS) نیاز دارد، در حالی که میکروکنترلر به سیستم عامل نیاز ندارد و مستقیماً برنامه را از سفت‌افزار (Firmware) خود بارگیری می‌کند. سیستم عامل به سرعت پردازش اضافه نیاز دارد که میکروکنترلر فاقد آن است.

از نکات بالا می‌توان چنین نتیجه گرفت که میکروپروسسور برای پردازش حجم زیاد داده، داشتن سرعت پردازش بالا، پشتیبانی از وضوح بیشتر از 720p (شامل رابط کاربر گرافیکی با وضوح بالا) و پشتیبانی از USB 3.0، گزینه بهتری است.

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

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

البته در بعضی از پروژه‌ها، برای انجام کارهای پیچیده‌ای مانند تشخیص گفتار، تشخیص چهره (پردازش تصویر)، هوش مصنوعی (AI) و... به حجم زیادی حافظه نیاز است که در این صورت باید از میکروپروسسور استفاده کرد.

همچنین می‌توان از هر دو قطعه به طور جداگانه در پروژه استفاده کرد تا موارد مورد نظر به نحو مطلوب به دست آیند. مثلاً می‌توان برای کنترل سنسورها و موتورها در یک ربات با استفاده از میکروکنترلر استفاده کرد و پردازش حجم زیاد داده‌های دوربین و میکروفن را با میکروپروسسور انجام داد.

اگر این مطلب برای شما مفید بوده است، آموزش‌های زیر نیز به شما پیشنهاد می‌شوند:

منبع [+]

مهندسی برقعلم و دانشآموزشی
در این وبلاگ، مطالبی برگزیده از جانب نویسندگان «مجله فرادرس» در زمینه‌‌های گوناگون علمی، دانشگاهی و مهندسی منتشر می‌شود.
شاید از این پست‌ها خوشتان بیاید