آموزش الکترونیکتکنولوژی

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

برای اینکه تفاوت میکروپروسسور و میکروکنترلر را بفهمیم، لازم است بدانیم که میکروپروسسور و میکروکنترلر چه هستند. برای مبتدیانی که تازه کار الکترونیک را شروع می کنند، اغلب ممکن است مقایسه ریزپردازنده و میکروکنترلر گیج کننده باشد. اما هر دو ریز پردازنده و میکروکنترلرها از نظر معماری سخت افزاری و عملکرد کاملاً متفاوت از یکدیگر هستند. تفاوت اصلی بین ریزپردازنده و میکروکنترلر این است که یک زیرپردازنده آی سی فقط یک CPU درون خود دارد در حالی که یک آی سی میکروکنترلر همچنین دارای RAM، ROM و سایر تجهیزات جانبی مرتبط با آن است. برخی از نمونه های معروف ریزپردازنده هسته اینتل Intel i7، AMD Athlon، Broadcom BCM2711 (رزبری پای) و غیره است، و برخی از نمونه های میکروکنترلرها ATmega328 (آردینو UNO)، STM32، PIC16F877A و غیره است. برای فهمیدن جزئیات باید نگاهی به  معماری کلی ریزپردازنده و میکروکنترلربیندازیم، که دقیقاً همان کاری است که ما در این مقاله انجام می دهیم.

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

میکروپروسسور (ریز پردازنده) وظیفه ی محاسبه منطقی و پردازش داده را بر عهده دارد. هر میکرو پروسسور نیازمند تعدادی قطعات و آی سی های جانبی از جمله حافظه دائمی (مثل EPROM، EEPROM و …)، حافظه غیر دائمی (مثل RAM ها)، تایمر و کانتر (مثل IC 82C54) و … می باشد. مبحث میکروپروسسور ها بسیار طولانی است و بحث اصلی ما در مورد تفاوت میکرو پروسسور و میکرو کنترلر است.

ریزپردازنده فقط یک CPU درون آن ها در یک یا چند مدار مجتمع دارد. مانند میکروکنترلرها RAM، ROM و سایر وسایل جانبی ندارد. آن ها برای کار به مدارهای خارجی جانبی وابسته هستند. اما ریزپردازنده ها برای کار خاصی ساخته نشده اند، اما در مواردی که کار ها پیچیده و مشکل هستند مانند توسعه نرم افزار ها، بازی ها و سایر برنامه هایی که به حافظه بالایی احتیاج دارند و ورودی و خروجی تعریف نشده اند، به آن ها نیاز دارند. ممکن است قلب سیستم رایانه ای نامیده شود. برخی از نمونه های ریزپردازنده Pentium، I3 و I5 و غیره است.

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

از این تصویر معماری ریزپردازنده به راحتی می توان دریافت که در آن رجیستر ها و ALU به عنوان واحد پردازش وجود دارد و RAM، ROM در آن وجود ندارد.

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

میکروکنترلر یک قطعه از نوع IC است. IC نیز به معنای مدار مجتمع است. میکروکنترلر ها قابل برنامه ریزی هستند. یعنی هرچیزی را که شما با استفاده از کامپایلر به میکروکنترلر بدهید، میکروکنترلر آن را انجام میدهد. اگر میخواهید به طور کامل با میکروکنترلر آشنا شوید، مقاله میکروکنترلر چیست را بخوانید. میکروکنترلر ها انواع مختلفی دارند مثل میکروکنترلر های AVR و ARM.

این مانند یک کامپیوتر کوچک در یک IC است. شامل یک هسته پردازنده، ROM، RAM و پین های ورودی و خروجی است که برای انجام کارهای مختلف اختصاص داده شده است. میکروکنترلرها به طور کلی در پروژه ها و برنامه هایی مورد استفاده قرار می گیرند که نیاز به کنترل مستقیم توسط کاربران دارند. از آنجا که تمام اجزای مورد نیاز در تراشه واحد خود را دارد، برای عملکرد خود به مدارهای خارجی احتیاج ندارد، بنابراین میکروکنترلرها به شدت در سیستم های توکار مورد استفاده قرار می گیرند و شرکت های بزرگ تولیدکننده میکروکنترلر باعث می شوند تا آن ها در بازار توکار شده مورد استفاده قرار گیرند. میکروکنترلر را می توان قلب یک سیستم تعبیه شده نامید. چند نمونه از میکروکنترلرهای معروف میکروکنترلرهای سری 8051، AVR، PIC هستند.

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

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

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

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

مهم ترین تفاوت میکروپروسسور و میکروکنترلر ها، قابلیت افزایش RAM (حافظه) آن ها میباشد. از آنجا که در مدار های الکترونیک، میکروپروسسور ها از یک IC مجزا به عنوان حافظه ی در دسترس (RAM ) خود استفاده میکنند، میتوان با تغییر این آی سی ها حافظه در دسترس پردازنده را تغییر داد.

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

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

  1. تفاوت کلیدی در هر دو مورد وجود محیط جانبی خارجی است، جایی که میکروکنترلرها RAM، ROM، EEPROM را در خود جای داده اند در حالی که ما باید در مورد ریزپردازنده ها از مدارهای خارجی استفاده کنیم.
  2. تمام تجهیزات جانبی میکروکنترلر روی یک تراشه قرار دارند که آن جمع و جور است در حالی که ریزپردازنده حجیم است.
  3. میکروکنترلرها با استفاده از فناوری نیمه رسانا اکسید فلز مکمل ساخته می شوند، بنابراین ارزان تر از ریز پردازنده ها هستند. علاوه بر این، برنامه های کاربردی ساخته شده با میکروکنترلرها نیز ارزان تر هستند زیرا به اجزای خارجی کمتری نیاز دارند، در حالی که هزینه کلی سیستم های ساخته شده با ریزپردازنده ها به دلیل تعداد زیاد اجزای خارجی مورد نیاز چنین سیستم هایی، زیاد است.
  4. سرعت پردازش میکروکنترلرها حدود 8 مگاهرتز تا 50 مگاهرتز است، اما برعکس سرعت پردازش ریزپردازنده های عمومی بالاتر از 1 گیگاهرتز است بنابراین بسیار سریعتر از میکروکنترلرها کار می کنند.
  5. به طور کلی میکروکنترلرها دارای سیستم صرفه جویی در مصرف انرژی هستند، مانند حالت آماده به کار یا حالت صرفه جویی در مصرف برق، بنابراین در کل از انرژی کمتری استفاده می کنند و همچنین از آنجا که اجزای خارجی کم است مصرف کلی انرژی نیز کمتر است در حالی که در ریزپردازنده ها به طور کلی سیستم صرفه جویی در مصرف برق وجود ندارد و همچنین اجزای خارجی زیادی با آن استفاده می شود، بنابراین مصرف انرژی آن در مقایسه با میکروکنترلرها زیاد است.
  6. میکروکنترلرها جمع و جور هستند، بنابراین آن ها را به سیستمی مطلوب و کارآمدی برای محصولات و برنامه های کوچک تبدیل می کند در حالی که ریزپردازنده ها حجیم هستند، بنابراین برای کاربردهای بزرگ ترجیح داده می شوند.
  7. کارهایی که توسط میکروکنترلرها انجام می شود محدود بوده و به طور کلی پیچیدگی کمتری دارد. در حالی که کار انجام شده توسط ریز پردازنده ها توسعه نرم افزار، توسعه بازی، وب سایت، ساخت اسناد و غیره است که به طور کلی پیچیده تر هستند، بنابراین به حافظه و سرعت بیشتری احتیاج دارند، به همین دلیل ROM خارجی، RAM با آن استفاده می شوند.
  8. میکروکنترلرها براساس معماری هاروارد ساخته می شوند که در آن حافظه برنامه و حافظه داده جدا هستند در حالی که ریز پردازنده ها براساس مدل von Neumann ساخته می شوند که برنامه و داده ها در همان ماژول حافظه ذخیره می شوند.

همچنین معماری اکثر میکرو کنترلر های مشهور امروزی از نوع ریسک (RISC) است در حالی که بیشتر میکروپروسسور ها از معماری داخلی سیسک (CISC) استفاده میکنند.

معماری CISC با RISC در موارد زیر تفاوت دارد :

اگر در مورد این مطلب سوالی دارید در قسمت نظرات بپرسید
  • برنامه نویسی
  • مصرف توان سیستم
  • قدرت مورد نیاز
  • و …

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

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

میکروکنترلر و ریزپردازنده

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

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

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

میکروکنترلر و ریزپردازنده

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

عواملی مهم در انتخاب MPU یا MCU

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

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

1. توان پردازش

توان پردازش یکی از اصلی ترین مواردی است که در هنگام انتخاب بین میکروکنترلر و ریزپردازنده باید به آن توجه شود. این یکی از اصلی ترین عوامل استفاده از ریز پردازنده ها است. توان پردازش در DMIPS اندازه گیری می شود(Dhrystone میلیون دستورالعمل در هر ثانیه) و نشان دهنده تعداد دستورالعملی است که یک میکروکنترلر یا ریزپردازنده می تواند در ثانیه پردازش کند. این اساساً نشان دهنده این است که دستگاه با چه سرعتی می تواند وظیفه ای را که به آن داده شده است انجام دهد.

توان پردازشی میکروکنترلر و میکروپروسسور

تعیین دقیق توان محاسباتی مورد نیاز طراحی شما می تواند کار بسیار سختی باشد اما با بررسی وظایف و دستگاهی که برای انجام این کار استفاده می شود و نیازهای محاسباتی آن کارها می توان مقداری را برای آن حدس زد. برای مثال تهیه دستگاهی که نیاز به استفاده از یک سیستم عامل کامل یا لینوکس امبدد، ویندوز CE یا هر سیستم عامل دیگری دارد، به یک توان پردازش به اندازه 500 DMIPS نیاز دارد.

همچنین راه اندازی یک سیستم عامل در یک دستگاه به یک واحد مدیریت حافظه (MMU) نیاز دارد که باعث افزایش توان پردازش مورد نیاز می شود. برنامه های کاربردی دستگاه که محاسبات زیادی را در بر می گیرد به مقادیر DMIPS بسیار بالایی نیاز دارند و هرچه دستگاه محاسبات عددی بیشتری انجام دهد، به دلیل توان پردازش مورد نیاز، توجهات طراحی به سمت استفاده از ریز پردازنده بیشتر می شود.

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

بیشتر کتابخانه های مورد استفاده در ایجاد رابط های کاربری مانند QT به توان پردازش 80 – 100 DMIPS نیاز دارند و برای نمایش بیشتر انیمیشن ها، تصاویر و سایر محتوای چندرسانه ای، توان پردازش مورد نیاز بیشتر است.

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

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

2. رابط ها

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

اکثر میکروکنترلر ها و ریزپردازنده ها دارای رابط های مورد نیاز برای اتصال به دستگاه های ارتباطی هستند، اما هنگامی که دستگاه های جانبی با سرعت بالا مانند رابط USB 3.0 داریم، چندین پورت اترنت 10/100 یا پورت اترنت گیگابیت مورد نیاز است، در ریزپردازنده رابط مورد نیاز برای پشتیبانی از این موارد معمولاً فقط روی آن ها یافت می شود زیرا توانایی بیشتری در کنترل و پردازش مقدار زیادی از داده ها و سرعت انتقال آن ها را دارند.

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

3. حافظه

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

هزینه

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

حافظه محدود

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

چندین عامل دیگر نیز وجود دارد که باید بر اساس حافظه در نظر گرفته شوند، یکی از آن ها زمان راه اندازی است. به عنوان مثال ریزپردازنده ها سیستم عامل را روی یک حافظه خارجی ذخیره می کنند (معمولاً یک حافظه NAND یا Flash Serial خارجی است) و هنگام راه اندازی، سیستم عامل در DRAM پردازنده بارگیری می شود. اگرچه این کار در عرض چند ثانیه انجام می شود، اما ممکن است برای برخی از کاربرد ها ایده آل نباشد. از طرف دیگر میکروکنترلر زمان کمتری می برد.

حافظه محدود دستگاه ها

بطور کلی و بر اساس سرعت، MCU معمولاً برنده است زیرا به دلیل داشتن هسته پردازنده به کاربرد های مهم زیادی در زمان کم رسیدگی می کند، این واقعیت حافظه امبدد است و سیستم عامل استفاده شده با آن ها همیشه RTOS یا فلز بدون روکش است.

4. توان

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

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

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

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

نتیجه

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

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

4.8 (13 نفر)

برای دریافت مطالب جدید کانال تلگرام یا پیج اینستاگرام ما را دنبال کنید.

محمد رحیمی

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

5 نظر

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

    از یک طرف گفته اید که میکروکنترلر ها تنها برای یک هدف مشخص استفاده میشوند و نمیتوان از آن ها برای راه اندازی سیستم های چند منظوره استفاده کرد. و از طرف دیگر گفته اید از میکروکنترلر (به عنوان هسته مرکزی) میتوانید برای انجام فعالیت های متفاوت استفاده کنید لذا اگر مطلب شما صحیح است لطفا در این خصوص توضیحات بیشتری ارائه فرمائید.

    1. سلام عزیز، تصحیح شد، با تشکر از شما

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

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

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *