تفاوت بین میکروکنترلر و ریزپردازنده. درباره میکروکنترلرها برای مبتدیان - تاریخچه خلقت، انواع اصلی و تفاوت معماری FPGA

Altera-cyclone و arduino

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

هر میکروپروگنده تازه کار در مرحله خاصی از توسعه آن به عنوان سوال از چه چیزی خواسته می شود تفاوت بین PLI (Altera یا Xilinx) و میکروکنترلر (ریزپردازنده)؟

شما انجمن ها را بخوانید - خبرنامه های کسب و کار بنویسید که این ها به طور کامل چیزهای مختلفی هستند که نمی توانند مقایسه شوند، استدلال می کنند که آنها متفاوت هستند معماری. شما کتابچه راهنمای Verilog یا C ++ را بخوانید - و دیگری استفاده از اپراتورهای مشابه با قابلیت های مشابه، حتی نحو مشابه است، و چرا متفاوت است؟ شما به سنجاب بروید - LED ها (یا حتی لامپ های نور) وجود دارد fpga چشمک زدن، تماشای پروژه ها در Arduino - روبات های اجرا در آنجا. متوقف کردن!

اما اکنون بیایید متوقف شویم و از خود بپرسیم: چرا با گلاسی - لامپ احمقانه، و Arduino یک ربات هوشمندانه است؟ پس از همه، اول و دوم به نظر می رسد یک دستگاه قابل برنامه ریزی است، واقعا گلاسی فرصت برای یک ربات نبود؟

تا حدودی ماهیت سوال "چه تفاوت بین FPGA و میکروکنترلر؟ " دقیقا در این مثال باز شد

نکته بلافاصله کاربردی گلاسی در ابتدا پایین تر نیست میکروکنترلر(و ریزپردازنده، به هر حال، دقیقا)، دقیق تر، عملکرد اصلی یکی و دوم اساسا یکسان است - برای تولید منطقی 0 یا 1 تحت شرایط خاص، و اگر ما در مورد سرعت صحبت می کنیم، تعداد نتیجه گیری (پاها) ) و قابلیت های نوار نقاله، سپس میکروکنترلر قبل از گلاسیاما به طور کلی دور. اما یک "اما" وجود دارد. زمان برای توسعه یک الگوریتم نرم افزاری مشابه در دو دستگاه مختلف (PLI و میکروکنترلر) در زمان، و یا حتی ده بار متفاوت است. دقیقا گلاسی در اینجا، در 99٪ موارد، MK بسیار پایین تر است. و نقطه در مشکل زبان نیست Verilog, vhdl یا اهدای، و در دستگاه خود گلاسی.

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

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

بازیگران اصلی:

مسیر - فلز، که برای لایه های تراشه است، یک هادی برق بین بلوک ها است.

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

سلول ها - گروه ها از چندین واحد به چند ده ترانزیستور.

ترانزیستور عنصر اصلی منطق TTL است.

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

Generator Clock یک تراشه خارجی است که پالس های ساعت را تولید می کند که اکثر کار بر اساس آن است. گلاسی.

پرچم معماری رابطه اجزای عناصر

مسیرهای پیاده روی به بلوک ها با استفاده از ترانزیستورهای ویژه CMOS متصل می شوند. این ترانزیستورها قادر به حفظ وضعیت خود (باز یا بسته شدن) در مدت زمان طولانی هستند. وضعیت ترانزیستور زمانی که سیگنال توسط یک مسیر خاص ارائه می شود، تغییر می کند، که تنها زمانی استفاده می شود برنامه نویسی Plis. کسانی که در زمان سیستم عامل، ولتاژ در برخی از مجموعه ای از ترانزیستورهای CMOS انجام می شود. این مجموعه توسط برنامه سیستم عامل تعیین می شود. این اتفاق پیچیده ساخت یک شبکه بزرگ از مسیرهای پیاده روی و بزرگراه ها در داخل رخ می دهد گلاسیاتصال یک راه دشوار برای یکدیگر، تعداد زیادی از بلوک های منطقی است. در برنامه، شما باید کدام الگوریتم را انجام دهید، و سیستم عامل، مواردی را که توابع را که در برنامه توصیف می کنید، متصل می کند. سیگنال ها در بزرگراه از بلوک به بلوک اجرا می شوند. و مسیر پیچیده توسط برنامه داده شده است.


معماری PLI (FPGA)

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

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

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

RAM (RAM) - استفاده از حافظه میکروکنترلر برای ذخیره سازی داده های موقت (به عنوان محرک در گلاسی) به عنوان مثال، هنگام محاسبه اقدامات چندگانه. فرض کنید شما باید شماره اول را به دوم (عمل اول)، و سپس سوم به چهارم (2 عمل) ضرب کنید و نتیجه (3 عمل). در این حافظه، نتیجه 1 اقدام برای زمان اجرای دوم وارد می شود، پس از آن نتیجه 2 اقدام ارائه خواهد شد. و سپس هر دو این نتایج از RAM برای محاسبه 3 اقدام می شود.

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

پورت های I / O (پورت ها) و پورت های متوالی I / O - پاها میکروکنترلردر نظر گرفته شده برای ارتباط با دنیای خارج.

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

کنترل کننده تایر - بلوک کنترل تبادل بین همه بلوک ها میکروکنترلر. این درخواست ها را پردازش می کند، دستورات کنترل را ارسال می کند، ارتباطات را در داخل کریستال سازماندهی می کند و ساده می کند.

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

بزرگراه های داخلی - مسیرهایی که در داخل قرار دارند میکروکنترلر برای تبادل اطلاعات بین بلوک ها.

Generator Clock یک تراشه خارجی است که انگیزه های ساعت را تولید می کند کار میکروکنترلر کار.

رابطه اجزای بلوک های میکروکنترلر

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


تفاوت اصلی FPGA و میکروکنترلر

FPGA در سطح آهن، تقریبا در سراسر منطقه کریستال دوخته شده است. سیگنال ها از طریق زنجیرهای پیچیده ترانزیستورها عبور می کنند. ریزپردازنده در سطح برنامه آهن، سیگنال ها توسط گروه ها، از بلوک به بلوک عبور می کند - از حافظه به پردازنده، به RAM، از پردازنده عملیاتی به پردازنده، از پردازنده به I / O بنادر، از پورت های I / O به RAM، از رام ... و غیره. نتیجه گیری: به دلیل معماری PLI برنده شدن در سرعت و قابلیت های نوار نقاله گسترده تر، MK به سهولت نوشتن الگوریتم ها برنده می شود. با توجه به ساده ترین راه برای توصیف برنامه ها، توسعه دهنده فانتزی میکروکنترلر کمتر از زمان اشکال زدایی و زمان توسعه، و در نتیجه زمان برای برنامه ریزی همان ربات در MK و گلاسی خواهد بود فرق داشتن بسیاری و چند بار با این حال، یک ربات کار می کند گلاسی این کار بسیار بهتر خواهد بود، دقیق تر و بیشتر.

آهن و برنامه

که در گلاسی همه کارها باید به صورت دستی انجام شود: برای اجرای هر برنامه در گلاسی، شما باید هر زنگ را برای هر سیم کشی که به آن وارد می شوند پیگیری کنید گلاسی، برای ترتیب برخی از سیگنال ها در سلول های حافظه، مراقب باشید که یک زنگ دیگر در لحظه مناسب به این سلول ها، که شما همچنین پیگیری یا حتی تولید می کنید، و در نهایت، تصدیق هایی که در حافظه بازداشت شده اند، سیگنال را که نیاز دارید را بازداشت می کند، برای مثال، به یک پایه خروجی خاص بروید و LED را روشن کنید، که به آن متصل است. بخشی از زنگ هشدار در حافظه نیست، اما به عنوان مثال، در راه اندازی بخش خاصی از الگوریتم (برنامه). یعنی، در زبان میکروپروگترل، این پاها هدف قرار می گیرند. به عنوان مثال، ما در هیئت مدیره ما در برنامه ما سه پاهای هدفمند داریم که شامل برخی از الگوریتم های غیر مرتبط (یا مرتبط) با هر یک از الگوریتم های دیگر است که ما در Verilog اجرا کرده ایم گلاسی. همچنین در برنامه، به جز سه پا آدرس، ما هنوز 20 از پاهای اطلاعاتی داریم که مجموعه ای از زنگ ورودی (به عنوان مثال از سنسورهای مختلف) با هر گونه اطلاعات (به عنوان مثال، دمای آب در آکواریوم از سنسور دمای آب در آکواریوم). 20 پا \u003d 20 بیت. 3 پاها -3 بیت. هنگامی که سیگنال آدرس 001 می آید (از آدرس های سه پا) - ما شروع اولین الگوریتم است که 20 آلارم اطلاعات را در 20 سلول حافظه می نویسد (20 triggers)، پس از آن 20 هشدار زیر به دست آمده از 20، و نتیجه از ضرب در حافظه ثبت شده است، و سپس نتیجه را برای پاهای دیگر، به عنوان مثال، در ترموستات آب در آکواریوم ارسال کنید. اما ما این نتیجه را تنها زمانی که کد به عنوان مثال 011 به آدرس های ما می آید، حرکت می کند و الگوریتم خواندن و انتقال را راه اندازی می کند. خوب، به طور طبیعی، "ارجاع"، "خواندن" و هنوز هم چیزی را در کتابچه راهنمای کاربر ثبت کنید. ما هر هشدار را به هر کار ساعت حمل می کنیم گلاسی در یک مسیر خاص، از دست ندهید. ما ادامه می دهیم یا نوشتیم ما برابر یا ضرب می کنیم. فراموش نکنید که بنویسید فراموش نکنید که سیگنال بعدی را بردارید و به سایر عوامل اصلی بنویسید. حتی یک شغل را به فرکانس ساعت متصل می کند، هماهنگ سازی (که همچنین به صورت دستی اجرا می شود)، خطاهای اجتناب ناپذیر در مراحل توسعه و اشکال زدایی و یک دسته از مشکلات دیگر که در این مقاله به سادگی بی معنی است. دشوار. طولانی اما در خروج، آن را به سرعت به سرعت، بدون زلزله و ترمز کار می کند. اهن!

اکنون میکروکنترلر. 20 پا در دریافت اطلاعات - برای اکثر میکروکنترلرها وظیفه فیزیکی غیر ممکن است. اما 8 یا 16 - بله، لطفا! 3 اطلاعات - در آسان! برنامه؟ در 001، تعداد اول را به دومین تقسیم کنید، در 011 نتیجه را به ترموستات ارسال کنید. همه چيز! سریع. به راحتی. نه فوق العاده، اما به سرعت. اگر بسیار صالح است که یک برنامه را بدون زلزله و ترمز بنویسید. نرم افزار!

آهن و برنامه! در اینجا چیز اصلی است تفاوت بین FPGA و میکروکنترلر.

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

نتیجه

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

با توجه به ویژگی های خروجی سیگنال، گلاسی اغلب طراحی شده برای 3.3V، 20th، میکروکنترلر در 5V، 20mA.

زیر میکروکنترلر AVR، با موفقیت در پلت فرم Arduino تعبیه شده، انواع برنامه های باز نوشته شده است، مجموعه ای از موشک ها به شکل سنسورها، موتورها، مانیتور، و همه چیز فقط خودتان است! Arduino در حال حاضر بیشتر شبیه یک طراح بازی برای کودکان و بزرگسالان است. با این حال، فراموش نکنید که هسته این طراح "خانه های هوشمند"، لوازم الکترونیکی مصرفی مدرن، لوازم، اتومبیل، هواپیما، سلاح، سلاح، و حتی فضاپیما را مدیریت می کند. بدون تردید، چنین طراح یکی از بهترین هدایا برای هر نماینده نیمی از بشریت خواهد بود.

در اصل، همه چیز ساده است!

سوالی دارید؟ یک نظر بنویسید ما پاسخ خواهیم داد و به شکل گیری کمک می کنیم \u003d)

بیایید با آنچه که آنها در واقع متفاوت هستند مقابله کنیم و شباهت های این دو نوع دستگاه های الکترونیکی رادیویی دیجیتال چیست؟

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

ریزپردازنده چیست؟

ریزپردازنده (در ادبیات آنگوی زبانMPU - واحد پردازنده میکرو ) شامل یک عملکرد پردازنده مرکز کامپیوتری یا پردازنده CPU (CPU - واحد پردازش مرکزی) بر روی یک کریستال نیمه هادی (IC - تراشه انتگرال یا به شیوه ای غرب - مدار مجتمع).

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

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

چهار نوع اصلی از پردازنده هایی وجود دارد که در معماری خود متفاوتند.

ریزپردازنده ها با مجموعه ای کامل از دستورات (مجموعه دستورالعمل های پیچیده کامپیوتر، CISC -RHITECUT). مشخص مقدار غیر ثابت از طول فرمان، رمزگذاری اقدامات محاسباتی توسط یک فرمان، تعداد کمی از ثبت ها که عملکرد به طور دقیق تعریف شده را انجام می دهند. یک نمونه از این نوع پردازنده ها خانواده X86 است.

ریزپردازنده ها با مجموعه فرمان کاهش یافته (کاهش دستورالعمل کامپیوتر، RISC-Architecture). معمولا داشتن افزایش سرعت به هزینه دستورالعمل ها برای ساده سازی روندرمزگشایی و، بر این اساس، زمان اجرای آنها را کاهش می دهد. اکثر پردازنده های گرافیکی با استفاده از این نوع معماری توسعه یافته اند.

ریزپردازنده ها با حداقل مجموعه ای از دستورات (حداقل دستورالعمل مجموعه کامپیوتر، متفرقه -Rhitecut). بر خلاف معماری RISC، آنها از کلمات فرمان طولانی در آنها استفاده می کنند، که به شما اجازه می دهد اقدامات بسیار پیچیده ای را برای یک چرخه عملیات دستگاه انجام دهید. شکل گیری کلمات فرماندهی طولانی با افزایش تخلیه دستگاه های ریزپردازنده امکان پذیر بود.

در پردازنده های Supercalar (پردازنده های SuperScalar) و چندین رمزگشایی تیم استفاده می شودکه کار بسیاری از بلوک های اجرایی را دانلود کنید. برنامه ریزی اجرای جریان فرمان به صورت پویا اتفاق می افتد و توسط هسته محاسبات انجام می شود. یک نمونه از یک پردازنده با چنین نوع معماری، به عنوان مثال Cortex A8 است.

به طور جداگانه، من می خواهم ریزپردازنده های خاص را اختصاص دهم(ASIC - درخواست S PECIFIC I NTEGRATED C IRCUIT). به شرح زیر از نام، طراحی شده برای حل یک کار خاص. بر خلاف ریزپردازنده های عمومی هدف، در یک دستگاه خاص اعمال می شود و ویژگی های خاصی را برای این دستگاه انجام می دهد. تخصص در اجرای یک کلاس باریک از توابع منجر به افزایش سرعت دستگاه می شود و به عنوان یک قاعده، هزینه چنین مدار یکپارچه را کاهش می دهد. نمونه هایی از چنین ریزپردازنده ها ممکن است یک microcircuit باشد، به طور انحصاری برای مدیریت تلفن همراه طراحی شده است.، تراشه های سخت افزاری سخت افزاری و رمزگشایی سیگنال های صوتی و تصویری رمزگشایی - به اصطلاحپردازش سیگنال دیجیتال، چند پردازنده DSP). می تواند به عنوان FPGA (مدار مجتمع منطقی قابل برنامه ریزی) اجرا شود. هنگام توسعه چنین پردازنده ها برای توصیف قابلیت های خود استفاده از زبان های توضیحات سخت افزاری (HDL - سخت افزار Dscription l Anguage)، مانند Verilog و VHDL.

سیستم های مبتنی بر ریزپردازنده تقریبا به صورت زیر ساخته می شوند.

همانطور که دیده می شود، ریزپردازنده در این سیستم دارای بسیاری از دستگاه های کمکی، مانند یک دستگاه ذخیره سازی ثابت، RAM، رابط سریال، تایمر، پورت های I / O و غیره است. تمام این دستگاه ها از طریق دستورات و داده ها با یک ریزپردازنده از طریق اتوبوس سیستم مبادله می شوند. تمام دستگاه های کمکی در سیستم ریزپردازنده خارجی هستند. اتوبوس سیستم، به نوبه خود، شامل یک تایر اتوبوس هدف، اتوبوس داده ها و اتوبوس کنترل است.

در حال حاضر، اجازه دهید میکروکنترلر را در نظر بگیریم.

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

در زیر یک نمودار بلوک از یک میکروکنترلر است. تفاوت اصلی آن از ریزپردازنده چیست؟ تمام دستگاه های مرجع، مانند یک دستگاه ذخیره سازی ثابت، RAM، تایمر، رابط سریال، پورت های I / O ساخته شده اند. بنابراین، نیازی به ایجاد اینترفیس با این دستگاه های کمکی وجود ندارد و زمان زیادی را برای توسعه دهنده سیستم ذخیره می کند.

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

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

برنامه ثبت شده در حافظه میکروکنترلر می تواند از امکان خواندن / نوشتن بعدی آن محافظت شود، که از استفاده غیر مجاز آن محافظت می کند.

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

ریز پردازنده میکروکنترلر
استفاده كردنسیستم های کامپیوتریسیستم های جاسازی شده
دستگاهشامل یک پردازنده مرکزی، ثبت نام عمومی، اشاره گرهای پشته، شمارنده های برنامه، تایمر و زنجیرهای وقفهمدار میکروپروسسور شامل ROM، RAM، دستگاه های I / O، تایمر و شمارنده ها است.
حافظه دادهاین دستورالعمل های بسیاری برای انتقال اطلاعات بین حافظه و پردازنده دارد.این یک یا دو دستورالعمل برای انتقال اطلاعات بین حافظه و پردازنده دارد.
زنجیره های برقدشواریبه اندازه کافی خوب
هزینه هاهزینه کل سیستم افزایش می یابدکم هزینه سیستم
تعداد ثبت نام هااین برنامه ها کمتر ثبت شده است، عملیات عمدتا در حافظه تولید می شود.تعداد بیشتری از ثبت را دارد، بنابراین برنامه های نوشتن آسان تر است
دستگاه حافظهبر اساس معماری نینان. برنامه و داده ها در همان ماژول حافظه ذخیره می شوند.بر اساس معماری هاروارد. برنامه ها و داده ها در ماژول های حافظه مختلف ذخیره می شوند.
زمان دسترسیزمان دسترسی به حافظه و دستگاه های ورودی / خروجی بیشتر هستند.زمان دسترسی کمی برای حافظه داخلی و دستگاه های I / O.
اهننیاز به تعداد بیشتری از سخت افزار دارد.نیاز به مقدار کمتر از سخت افزار.

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

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

اول، بیایید به تفاوت بین میکروکنترلر (MCU) و ریزپردازنده (MPU) نگاه کنیم. معمولا، میکروکنترلر از حافظه فلش ساخته شده استفاده می کند که در آن برنامه آن ذخیره و اجرا می شود. با توجه به این، میکروکنترلر زمان بسیار کوتاهی دارد و می تواند کد را به سرعت اجرا کند. تنها محدودیت زمانی که استفاده از حافظه داخلی ساخته شده است، حجم نهایی آن است. اکثر میکروکنترلرهای موجود در بازار دارای حداکثر مقدار حافظه فلش ~ 2 مگابایت هستند. برای برخی از برنامه های کاربردی، این ممکن است عامل مهمی باشد.

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

یکی دیگر از تفاوت های بین میکروکنترلر و ریزپردازنده سیستم قدرت است. با تشکر از تنظیم کننده ولتاژ داخلی، میکروکنترلر نیاز به تنها یک مقدار ولتاژ خارجی دارد. در حالی که ریزپردازنده نیاز به تنش های مختلفی برای هسته، حاشیه، پورت های I / O و غیره دارد. در مورد حضور این ولتاژ روی هیئت مدیره باید از توسعه دهنده مراقبت کند.

چه چیزی MPU یا MCU را انتخاب کنید؟

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

یکی از جنبه هایی که تعیین دشوار است، سرعت مورد نیاز برای عملکرد سیستم آینده است. شما می توانید این معیار را با استفاده از قدرت محاسباتی به اصطلاح اندازه گیری کنید که در MIPS Dhrystone یا DMPS اندازه گیری می شود (Dhrystone یک آزمایش کامپیوتری مصنوعی است و MIPS تعداد میلیون ها دستورالعمل در ثانیه است). به عنوان مثال، میکروکنترلر Atmel SAM4 بر اساس هسته ARM Cortex-M4 150 dmips را فراهم می کند و میکروپروسسور بر روی هسته ARM Cortex-A5 مانند Atmel Sam5Ad3 می تواند تا 850 dmips ارائه دهد. یکی از راه های ارزیابی DMPS مورد نیاز این است که ببینیم چه میزان بهره وری برای شروع بخشی از برنامه مورد نیاز است. یک سیستم عامل کامل (لینوکس، آندروید یا ویندوز CE) را اجرا کنید تا کار خود را به کار خود ادامه دهید حدود 300 - 400 دیمپس. و اگر شما برای برنامه RTOS استفاده می کنید، تنها 50 dmips کافی است. هنگام استفاده از RTOS همچنین نیاز به حافظه کمتری دارد، زیرا هسته معمولا چند کیلوبایت طول می کشد. متأسفانه، یک سیستم عامل کامل، نیاز به یک واحد مدیریت حافظه (MMU) برای راه اندازی آن دارد، که به نوبه خود نوع هسته پردازنده را می توان مورد استفاده قرار داد.

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

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

عوامل متعددی در مورد رابط کاربری وجود دارد. اول، این یک بار محاسباتی اضافی است. برای چنین کتابخانه رابط به عنوان QT، که به طور گسترده ای در لینوکس استفاده می شود، علاوه بر این نیاز به 80-100 dmips. ثانیا، این پیچیدگی رابط کاربر است. هرچه بیشتر از انیمیشن ها، اثرات و مطالب چند رسانه ای استفاده کنید، رزولوشن تصویر بالاتر، عملکرد و حافظه بیشتر شما نیاز دارید. بنابراین، به احتمال زیاد ریزپردازنده در اینجا مناسب است. از سوی دیگر، یک رابط کاربری ساده با یک تصویر استاتیک بر روی صفحه نمایش با وضوح پایین می تواند بر روی یک میکروکنترلر اجرا شود.

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

در بازار اکنون Microcontrollers های فلش با کنترل کننده های LCD TFT ظاهر می شود، اما هنوز باید تعداد کافی از RAM ساخته شده برای کنترل صفحه نمایش وجود داشته باشد. به عنوان مثال، QVGA 320x240 16 رنگ نیاز به 150 کیلوبایت حافظه RAM برای استخراج تصویر و به روز رسانی صفحه نمایش دارد. این مقدار بسیار زیادی از RAM است و ممکن است نیاز به حافظه خارجی داشته باشد، که همچنین هزینه ها را تحت تاثیر قرار می دهد.

رابط کاربری پیچیده تر گرافیکی، به ویژه کسانی که از نمایشگرهای بیش از 4.3 اینچ استفاده می کنند، نیاز به استفاده از ریزپردازنده ها دارند. اگر ریزپردازنده ها برنامه هایی را که رابط کاربر با یک صفحه TFT رنگ مورد استفاده قرار می گیرد، غلبه می کند، سپس میکروکنترلرها پادشاهان بخش یا LCD های ماتریس نقطه و دیگر صفحه نمایش ها با رابط سریال هستند.

از نقطه نظر ارتباطات، اکثر میکروکنترلرها و ریزپردازنده ها در ترکیب آنها محبوب ترین هستند. اما رابط های با سرعت بالا، مانند HS USB 2.0، 10/100 مگابیت در ثانیه پورت های اترنت یا پورت های گیگابیت اترنت، معمولا فقط ریزپردازنده دارند، زیرا آنها بهتر از پردازش مقادیر زیادی از داده ها سازگار هستند. سوال اصلی در اینجا حضور کانال های مناسب و پهنای باند برای پردازش جریان داده است. برنامه های کاربردی با استفاده از اتصالات با سرعت بالا و سیستم عامل گرا نیاز به استفاده از میکروپروسسورها.

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

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

نتیجه

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

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

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

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

تفاوت بین ریزپردازنده ها از میکروکنترلرها. و بهترین پاسخ را دریافت کردم

پاسخ از Releboy [Guru]
ریزپردازنده یک دستگاه پردازش اطلاعاتی مستقل یا ورودی میکرو کامپیوتر است که به صورت یک یا چند مدارهای مجتمع بزرگ ساخته شده است (در واقع، این یک مغز میکروکنترلر است). با ظهور میکرو رایانه ی یک تراشه، آغاز دوره عصر استفاده از اتوماسیون کامپیوتری کامپیوتر را در زمینه کنترل قرار می دهد. ظاهرا، این شرایط و تعیین اصطلاح "کنترل کننده" (Eng. کنترل کننده - کنترل کننده، دستگاه کنترل). در ارتباط با رکود تولید داخلی و افزایش واردات فناوری، از جمله محاسبات، اصطلاح "میکروکنترلر" (MK) اصطلاح "میکرو کامپیوتر تک هیستریک" را از مصرف استفاده می کرد. اولین ثبت اختراع برای یک میکرو کامپیوتر تک تراشه در سال 1971 توسط مهندسین M. Kochen و Bunu، کارکنان دستگاه های آمریکایی تگزاس صادر شد. این آنها بودند که در یک کریستال نه تنها پردازنده، بلکه حافظه را با دستگاه های I / O ارائه دادند. هنگام طراحی میکروکنترلرها، لازم است که با تعادل بین اندازه ها و هزینه ها را در یک طرف و انعطاف پذیری و عملکرد دیگر برسانیم. برای برنامه های مختلف، نسبت مطلوب این و پارامترهای دیگر ممکن است بسیار متفاوت باشد. بنابراین، تعداد زیادی از انواع میکروکنترلرها وجود دارد که در معماری ماژول پردازنده، اندازه و نوع حافظه یکپارچه، مجموعه ای از دستگاه های محیطی، نوع مسکن و غیره متفاوت است. در حالی که پردازنده های عمومی 16 بیتی مدتها به طور کامل توسط مدل های تولیدی بیشتر محروم شده اند، میکروکنترلرهای 8 بیتی به طور گسترده ای مورد استفاده قرار می گیرند. این به این واقعیت توضیح داده شده است که تعداد زیادی از برنامه های کاربردی وجود دارد که عملکرد بالا مورد نیاز نیست، اما کم هزینه مهم است. در عین حال، میکروکنترلرهای با قابلیت های محاسباتی بزرگ مانند پردازنده های سیگنال دیجیتال وجود دارد. امروز، اصطلاح Microcontroller یک رایانه است که دستگاه های محیطی را در حالت اتوماتیک کنترل می کند بدون مشارکت اپراتور. معمولا در پایین ترین سطوح اتوماسیون عمل می کند. رایانه های شخصی مدرن، میکروکنترلرهای قدرتمند و با سرعت بالا هستند که با هدف انجام تعداد زیادی از عملیات و توابع با مشارکت اپراتور انجام می شود. جمع آوری و پردازش اطلاعات از کنترل کننده ها. در سطوح بالای اتوماسیون استفاده می شود.

پاسخ از yaerensky[guru]
همانطور که می دانم میکروپروسسور قبلا ممنوع است. یک میکروکنترلر را می توان پردازش کرد تا بسته به وظایف یک و همان کنترل کننده بتواند کنترل و کار را کنترل کند تا نشانگر چند رقمی را با یک ترکیب متفاوت برای تولید فرکانس برای مدیریت سوئیت های دستگاه های مختلف حتی در کنترل RF کنترل کند از رابط (به عنوان مثال، مودم) معمولا در دستگاه های چند منظوره نسبتا غیر گران قیمت استفاده می شود، بسته به دستگاه زمان انتشار، می تواند به صورت برنامه تعریف شود


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

به طور شگفت انگیز، به عنوان بخش کوچکی از تکنولوژی، چهره رایانه های شخصی را تغییر داده است. از اولین ریزپردازنده تجاری (4 بیتی 4004)، که توسط اینتل در سال 1971 برای یک پیشرفته تر و پیشرفته تر 64 بیتی Itanium 2 توسعه یافت، تکنولوژی میکروپروسسور به یک حوزه کاملا جدید معماری نسل بعدی منتقل شد. دستاوردها در زمینه تجهیزات ریزپردازنده، محاسبات شخصی را سریعتر و قابل اطمینان تر از هر زمان دیگری انجام داد. اگر ریزپردازنده قلب سیستم کامپیوتری باشد، میکروکنترلر مغز است. هر دو ریزپردازنده و میکروکنترلر اغلب در مترادف یکدیگر به دلیل این واقعیت که ویژگی های مشترک دارند و به طور خاص برای برنامه های زمان واقعی طراحی شده اند، استفاده می شود. با این حال، آنها سهم خود را از تفاوت ها دارند.

ریزپردازنده چیست؟

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

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

میکروکنترلر شبیه به یک مینی کامپیوتر با یک پردازنده، و همچنین RAM، ROM، پورت های سریال، تایمر و دستگاه های I / O محیطی ساخته شده به یک تراشه است. این طراحی شده است تا وظایف خاصی را که نیاز به درجه خاصی از کنترل دارند، مانند کنترل از راه دور تلویزیون، پانل صفحه نمایش LED، ساعت هوشمند، وسایل نقلیه، کنترل ترافیک، کنترل دما و غیره طراحی شده است. این یک دستگاه با کیفیت بالا با یک میکروپروسسور، حافظه است و پورت های I / O در یک تراشه. این مغز یک سیستم کامپیوتری است که شامل طرح های کافی برای انجام وظایف خاص بدون حافظه خارجی است. از آنجا که هیچ اجزای خارجی وجود ندارد، مصرف برق کمتر است، که آن را ایده آل برای دستگاه های در حال اجرا بر روی باتری است. یک مکالمه ساده، یک میکروکنترلر یک سیستم کامپیوتری کامل با تجهیزات خارجی کوچکتر است.

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

1) تکنولوژی مورد استفاده در ریزپردازنده و میکروکنترلر

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

2) معماری میکروپروسسور و میکروکنترلر

ریزپردازنده به سادگی یک مدار مجتمع بدون RAM، ROM یا I / O مخاطب است. اساسا، این به پردازنده مرکزی سیستم کامپیوتری اشاره دارد که از دست دادن، تفسیر و اجرای دستورات منتقل شده به آن را حذف می کند. این شامل توابع CPU به یک مدار یکپارچه تک. از سوی دیگر، میکروکنترلرها، دستگاه های قدرتمند تر هستند که شامل یک طرح ریزپردازنده هستند و دارای RAM، IO و پردازنده در یک تراشه هستند.

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

برای ریزپردازنده، یک اتوبوس خارجی برای اتصال به دستگاه های محیطی، مانند RAM، ROM، آنالوگ و دیجیتال IO، و همچنین پورت های سریال مورد نیاز است. Alu تمام عملیات حسابداری و منطقی را از حافظه یا دستگاه های ورودی انجام می دهد و نتایج را بر روی دستگاه های خروجی انجام می دهد. MicroController یک دستگاه کوچک با تمام دستگاه های محیطی جاسازی شده در یک تراشه است و برای انجام وظایف خاص مانند اجرای برنامه های مدیریت دستگاه های دیگر طراحی شده است.

4) حافظه داده ها در ریزپردازنده و میکروکنترلر

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

5) ذخیره سازی در ریزپردازنده و میکروکنترلر

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

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

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

ریزپردازنده میکروکنترلر: جدول مقایسه ای

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

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