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

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

زیر میکروکنترلر یک جز electronic الکترونیکی قابل درک است که شامل ماژولهای اصلی سخت افزاری لازم برای انجام عملکردهای خود است. مانند ، برای مثال:

  • تراشه محاسبات
  • ماژول ROM
  • ماژول RAM
  • تایمر
  • پل ها؛
  • تنظیم کننده ولتاژ؛
  • پورت های ورودی و خروجی.

بنابراین ، تمام اجزای مربوطه داخلی هستند. یک میکروکنترلر ، اگر در رایانه نصب شود ، اغلب با سایر ماژول های سخت افزاری رایانه شخصی (به عنوان مثال ، یک دیسک سخت یا RAM) به طور مستقیم ارتباط برقرار می کند و از ماژول های غیرضروری در رایانه استفاده نمی کند ، از نظر هدف مشابه با دستگاه داخلی است.

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

میکروکنترلرها معمولاً مسئول برخی از بخشهای عملیات محاسبات هستند. به عنوان مثال ، اگر آنها روی رایانه شخصی باشند ، می تواند خواندن و نوشتن داده ها ، روشن و خاموش کردن دستگاه های متصل به رایانه باشد. بنابراین ، عملکرد آنها نسبتاً پایین است.

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

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

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

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

پردازنده ماژول داخلی کمی دارد. به عنوان یک قاعده ، مدلهای مدرن قطعات الکترونیکی این نوع شامل یک میکرو مدار RAM هستند - از آن دسته اجزای مشخصه طراحی میکروکنترلر. ROM ، تنظیم کننده ولتاژ ، پورت ها در ساختار ریز پردازنده معمولاً وجود ندارند.

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

مقایسه

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

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

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

جدول

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

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

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

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

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

با این حال ، همانطور که اشاره کردم ، خط تار می شود. به عنوان مثال ، پردازنده های اخیر Intel / AMD یک کنترل کننده حافظه را روی تراشه اضافه می کنند (قبلاً در چیپست بود).

ریزپردازنده و میکروکنترلر تراشه های الکترونیکی قابل برنامه ریزی معمولی هستند که برای اهداف مختلف استفاده می شوند. تفاوت اساسی این دو در این است که ریزپردازنده مکانیزم محاسباتی قابل برنامه ریزی است که از ALU ها ، CU ها و ثبات ها تشکیل شده و معمولاً به عنوان واحد پردازشی (مانند CPU در رایانه ها) استفاده می شود که می تواند محاسبات را انجام دهد و تصمیم بگیرد. از طرف دیگر ، میکروکنترلر یک ریزپردازنده تخصصی است که "رایانه روی تراشه" در نظر گرفته می شود زیرا اجزایی مانند ریز پردازنده ، حافظه و ورودی و خروجی دیجیتال موازی را در خود ادغام می کند.

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

جدول مقایسه

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

تعریف ریز پردازنده

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

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

ریزپردازنده واحد مستقلی نیست و به سایر واحدهای سخت افزاری مانند حافظه ، تایمر ، کنترل وقفه و غیره بستگی دارد. اولین ریزپردازنده توسط اینتل در سال 1971 ساخته شد و Intel 4004 نام گرفت.

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

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

میکروکنترلر از ارزش بیشتری نسبت به ریزپردازنده در سیستم تعبیه شده برخوردار است زیرا از نظر اقتصادی و به راحتی در دسترس است. اولین میکروکنترلر TMS 1000 توسط Texas Instruments در سال 1974 ساخته شد. طراحی اولیه میکروکنترلر TI شبیه پردازنده Intel 4004/4040 (4 بیتی) است که در آن توسعه دهندگان پشتیبانی از RAM ، ROM ، I / O را اضافه کرده اند. یکی دیگر از مزایای میکروکنترلر این است که می توانیم دستورالعمل های کاربر را برای پردازنده بنویسیم.

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

  1. ریزپردازنده از یک تراشه سیلیکون با یک واحد منطقی - حسابی (ALU) ، یک واحد کنترل (CU) و ثبت ها تشکیل شده است. برعکس ، میکروکنترلر شامل خصوصیات ریزپردازنده و همچنین RAM ، ROM ، شمارنده ها ، پورت های ورودی / خروجی و غیره است.
  2. یک ریزپردازنده به گروهی از میکرو مدارهای دیگر مانند تایمر ، کنترل کننده های وقفه و حافظه برنامه و داده احتیاج دارد و آن را وابسته می کند. در مقابل ، میکروکنترلر به بلوک های سخت افزاری دیگری احتیاج ندارد ، زیرا قبلاً در آن گنجانده شده است.
  3. میکروکنترلر پورت های ورودی / خروجی ضمنی را فراهم می کند ، در حالی که ریز پردازنده از درگاه های ورودی / خروجی پردازنده استفاده نمی کند.
  4. ریزپردازنده عملیات عمومی را انجام می دهد. در مقابل ، میکروکنترلر عملیات برنامه را انجام می دهد.
  5. ریزپردازنده بر عملکرد تمرکز دارد ، بنابراین بازار پیشرفته را هدف قرار می دهد. از طرف دیگر ، میکروکنترلر به سمت بازار تعبیه شده است.
  6. استفاده از انرژی در میکروکنترلر بهتر از ریزپردازنده است.

نتیجه

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

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

میکروکنترلر

این مانند یک کامپیوتر کوچک روی یک تراشه است. این شامل هسته پردازنده ، ROM ، RAM و پورت های ورودی / خروجی است که وظیفه انجام کارهای مختلف را بر عهده دارند. میکروکنترلرها معمولاً در پروژه ها و برنامه هایی که نیاز به کنترل مستقیم کاربر دارند استفاده می شود. از آنجا که تمام اجزای مورد نیاز در یک تراشه وجود دارد ، برای انجام وظیفه خود نیازی به هیچ مدار خارجی ندارد ، زیرا میکروکنترلرها اغلب در سیستم های جاسازی شده استفاده می شوند و میکروکنترلرهای اصلی ساخت این شرکت از آنها در بازارهای جاسازی شده استفاده می کنند. میکروکنترلر را می توان قلب سیستم های تعبیه شده نامید. چند نمونه از میکروکنترلرهای محبوب: 8051 ، AVR ، سری عکس ها.

بالاتر از معماری میکروکنترلر 8051. و می توانید ببینید تمام اجزای لازم برای یک پروژه کوچک در یک تراشه وجود دارد.

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

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

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

1. تفاوت کلیدی در آنها وجود یک دستگاه جانبی خارجی است ، در میکروکنترلرها RAM ، ROM ، EEPROM که در آن تعبیه شده است ، در مورد ریزپردازنده ها ، ما باید از مدارهای خارجی استفاده کنیم.

2. کل میکروکنترلر محیطی روی یک تراشه جمع شده است ؛ جمع و جور است ، در حالی که ریزپردازنده حجیم است.

3- میکروکنترلرها با استفاده از فناوری نیمه هادی اکسید فلز مکمل تولید می شوند ، بنابراین بسیار ارزان تر از ریز پردازنده ها هستند. علاوه بر این ، ادعا می شود که میکروکنترلرها ارزان تر هستند زیرا به اجزای خارجی کمتری نیاز دارند ، در حالی که هزینه کلی سیستم مبتنی بر ریزپردازنده به دلیل تعداد زیاد اجزای خارجی مورد نیاز چنین دستگاه هایی ، زیاد است.

4- سرعت پردازش میکروکنترلرها حدود 8 مگاهرتز تا 50 مگاهرتز است اما برخلاف سرعت پردازش ریز پردازنده های بالاتر از 1 گیگاهرتز ، بنابراین سرعت آنها بسیار بالاتر از میکروکنترلرها است.

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

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

7. وظایفی که میکروکنترلر انجام می دهد محدود بوده و به طور کلی از پیچیدگی کمتری برخوردار است. اگرچه وظایفی که توسط ریزپردازنده ها انجام می شود عبارتند از: توسعه نرم افزار ، توسعه بازی ، وب سایت ها ، مدارک و غیره که معمولاً پیچیده تر هستند ، بنابراین به حافظه و سرعت بیشتری نیاز دارند ، بنابراین ROM خارجی ، RAM با آن استفاده می شود.

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

Altera-Cyclone و Arduino

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

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

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

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

تا حدی ، اصل سوال «چه تفاوت بین FPGA و میکروکنترلر؟ " فقط با چنین مثالی آشکار می شود.

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

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

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

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

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

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

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

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

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

مولد ساعت - یک میکرو مدار خارجی که پالس های ساعتی را تولید می کند که بیشتر کارها بر اساس آن انجام می شوند FPGA.

معماری FPGA. ارتباط متقابل عناصر سازنده

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


معماری FPGA (FPGA)

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

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

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

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

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

امکانات ورودی / خروجی (پورت ها) و پورت های ورودی / خروجی سریال - پایه ها میکروکنترلربرای تعامل با دنیای خارج طراحی شده است.

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

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

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

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

ژنراتور ساعت یک میکرو مدار خارجی است که پالس های ساعتی را تولید می کند که همه روی آن هستند عملکرد میکروکنترلر.

رابطه بلوک های تشکیل دهنده میکروکنترلر

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


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

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

سخت افزار و نرم افزار.

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

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

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

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

نتیجه

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

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

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

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

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