در این پست به تفاوت و فرق بین میکروپروسسور (microprocessor) و میکروکنترلر (microcontroller) می پردازیم. ترجمه فارسی این کلمات به ترتیب ریزپردازنده و ریزکنترل گر هست ولی ترجمه شون اصلا رایج نیست. و در دانشگاه و صنعت همون میکروپروسسور و میکروکنترلر نامیده می شوند.
توی دانشگاه رشته های الکترونیک هر کدوم رو در قالب یک درس 2-3 واحدی می خوانند. برای درس میکروپروسسور آی سی 8051 با نرم افزار Franklin و برای درس میکروکنترلر آی سی ATMEGA32 با نرم افزار CodeVision استفاده می شوند.
میکروپروسسور و میکروکنترلر از نظر ظاهر شبیه به هم هستند، اما قابلیت هایشان تفاوت زیادی دارد.
توی این پست، میکروپروسسور و میکروکنترلر رو به زبان ساده و به طور کامل مقایسه می کنم که کاملا متوجه تفاوت شون بشیم.
نکته: خصوصیات میکروپروسسور رو با رنگ آبی و خصوصیات میکروکنترلر رو با رنگ قرمز می نویسم.
نکته2: این دو را در 4 موضوع مقایسه می کنیم: کاربردشان، ساختار داخلی شان، قدرت پردازش و حافظه شان، و توان مصرفی و قیمت.
مقایسه کاربردشان
میکروپروسسورها برای کاربردهای چندگانه به کار میرن. نمونه کاربرد بارز آنها در کامپیوتر و لپ تاپ ها هست. برای مثال کامپیوتر، کاربردهای خیلی مختلفی داره مثل Game یا جستجوی اینترنت، یا انجام محاسبات، یا تماشای فیلم، یا درست کردن اسناد، یا ادیت عکس و …
بنابراین، میکروپروسسورها در مواردی استفاده می شوند که از پیش تعریف شده (predefined) نیستند و کاملا بستگی به شخص کاربر دارد که چه استفاده ای از آن کند.
اما میکروکنترلرها برای وظیفه خاصی درست می شوند که از پیش تعریف شده هستند. به اونها ورودی معینی داده میشه و خروجی معینی گرفته میشه.
مثال هایی از میکروکنترلر شامل دوربین عکاسی دیجیتالی، ماشین لباس شویی، ماکروویو و غیره می باشد. وسایلی که تک منظوره هستند و فقط برای انجام یک کار ساخته شدند.
ساختار داخلی
همان طور که گفتیم وظایفی که میکروپروسسور قرار است انجام دهد از پیش تعریف نشده نیستند و وظایف مختلف و زیادی قرار است انجام دهد از کارهای ساده مثل ساختن document گرفته تا کارهای سنگین مانند Gaming. بنابراین مقدار حافظه لازم بستگی به نوع کاربرد دارد.
بنابراین میکروپروسسور فقط شامل یک CPU است، و بقیه قسمتها (از جمله حافظه ها، ورودی/خروجی ها) به صورت خارجی به آن متصل هستند.
![ساختمان داخلی میکروپروسسور](http://www.badrian.ir/wp-content/uploads/2018/03/Microprocessor_Internal_Structure.png)
اما در میکروکنترلر برعکس است. چون میکروکنترلر برای وظیفه خاصی طراحی شده است، مقدار حافظه و پورت های ورودی/خروجی محدود هستند. بنابراین CPU و اجزای دیگر، همگی در یک چیپ (میکروکنترلر) قرار می گیرند.به صورت شکل زیر:
![ساختمان داخلی میکروپروسسور](http://www.badrian.ir/wp-content/uploads/2018/03/Microcontroller_Internal_Structure.png)
بنابراین اندازه (سایز) کلی میکروکنترلر کوچکتر از میکروپروسسور است. اما میکروپروسسور چون اجزای دیگرش به صورت خارجی به CPU متصل می شوند، اندازه اش بزرگتر از میکروکنترلر است.
قدرت پردازش و حافظه
سرعت و حافظه میکروپروسسور بسیار بسیار بالاتر است. که مشخصاتش به صورت عکس زیر است:
![مشخصات میکروپروسسور](http://www.badrian.ir/wp-content/uploads/2018/03/Microprocessor_Memory_Speed.png)
اما چون میکروکنترلرها برای وظایف خاصی طراحی می شوند، مقدار حافظه و سرعت کمی نیاز دارند. که به صورت عکس زیر است:
مقدار بیت میکروپروسسور: 32 بیت یا 64 بیت
یعنی میکروپروسسور در یک سیکل می تواند 32 یا 64 بیت اطلاعات را حمل کند.
مقدار بیت میکروکنترلر: 8 بیت، یا 16 بیت، یا 32 بیت
یعنی میکروکنترلردر یک سیکل می تواند 8 بیت یا 16 بیت یا 32 بیت اطلاعات را حمل کند.
توان مصرفی و قیمت
چون در میکروپروسسور، حافظه ها و سایر اجزا به صورت خارجی به CPU متصل هستند ، توان مصرفی و قیمت کلی سیستم، بالاتر است.
اما در میکروکنترلر چون اجزا به صورت داخلی بهم متصل هستند، توان مصرف و قیمت کلی سیستم، پایین تر است.
نکته: در قسمت کاربردها، ما درباره موبایل های هوشمند نگفتیم که آیا میکروپروسسور هستند یا میکروکنترلر. درحالیکه شاید بگوییم چون موبایل ها هم کارهای مختلفی (از جمله بازی، اینترنت، پخش موسیقی و غیره) انجام می دهند باید میکروپروسسور باشند.
ولی این طور نیست. موبایل های هوشمند نه میکروپروسسور هستند و نه میکروکنترلر، بلکه ترکیبی از هر دو هستند. سیستم آنها System on Chip (یا SOC) نامیده می شود.