مرکز کمک  
ارسال پیام
ساعات کاری: ۹:۰۰ تا ۲۱:۰۰ (GMT+9)
خطوط تلفن خدمات

9:00 -18:00، دوشنبه. - جمعه (GMT+8)

شنبه، ۹:۰۰ تا ۱۲:۰۰ (GMT+9)

(به جز تعطیلات رسمی چین)

X

FPGA در مقابل میکروکنترلر - درک تفاوت‌های کلیدی

4372

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


امروزه چندین هسته میکروکنترلر برای بازار تعبیه‌شده در دسترس است، از طرح‌های مرسوم مانند ۸۰۵۱ گرفته تا ماشین‌های RISC یا DSP. تصمیم‌گیری بین طرح‌های مختلف بر اساس معیارهایی مانند سرعت، توان، پایه نصب‌شده، پتانسیل استفاده مجدد و سایر ملاحظات فنی تعیین می‌شود. کاربردهای تعبیه‌شده یک موضوع مطالعه در سیستم‌های کامپیوتری هستند که دائماً در حال گسترش است. تعداد زیاد پورت‌های ارتباطی، واحدهای مدولاسیون پهنای پالس (PWM) و مبدل‌های آنالوگ به دیجیتال (ADC) در MCU که در یک تراشه واحد قرار گرفته‌اند، آن را برای کاربردهای صنعتی ایده‌آل می‌کند.



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

 

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

 

میکروکنترلر یک دستگاه الکترونیکی است که به خانواده میکروکامپیوترها تعلق دارد. اجزای میکروکنترلر با کمک ادغام در مقیاس بسیار بزرگ (VLSI) ساخته می‌شوند تا یک تراشه واحد را تشکیل دهند. آنها همچنین به عنوان کامپیوتر روی تراشه شناخته می‌شوند. یک میکروکنترلر دارای مقدار مشخصی RAM و ROM (EEPROM، EPROM و غیره) یا حافظه‌های فلش برای ذخیره کدهای برنامه است. ویژگی‌های اضافی عبارتند از تایمرها، پورت‌های موازی، پورت‌های سریال، پورت‌های وقفه، ADC، PWM و DAC. میکروکنترلر یک ریزپردازنده با قابلیت‌های حافظه و ورودی/خروجی است. میکروکنترلرها به دلیل ادغام CPU، حافظه و لوازم جانبی ورودی/خروجی در یک تراشه واحد، به طور گسترده در سیستم‌های تعبیه شده استفاده می‌شوند.

 



یک کامپیوتر شخصی یا لپ‌تاپ یک دستگاه همه‌کاره است (که برای کارهای مختلفی مانند بازی، مرور اینترنت، موسیقی، پردازش متن و غیره استفاده می‌شود). در مقابل، سیستم‌های تعبیه‌شده معمولاً دستگاه‌های تک‌کاره هستند که برای کارهای خاص طراحی شده‌اند. یکی از ویژگی‌های کلیدی سیستم‌های میکروکنترلر این است که آنها اغلب وظایف اختصاصی را بدون نیاز به یک سیستم عامل کامل (مثلاً ویندوز، لینوکس، macOS، iOS) انجام می‌دهند. ساعت‌ها، پخش‌کننده‌های MP3، دستگاه‌های فروش خودکار و سایر دستگاه‌های الکترونیکی حاوی سیستم‌های تعبیه‌شده هستند. یک کامپیوتر کامل گاهی اوقات در عملکرد دستگاه اختلال ایجاد می‌کند. تصور کنید که برای کار با ماشین ظرفشویی نیاز به راه‌اندازی ویندوز دارید. شکل 2 معماری یک میکروکنترلر را نشان می‌دهد.

 



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

 

FPGA (آرایه گیت قابل برنامه‌ریزی میدانی) چیست؟

 

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

 

بخش «قابل برنامه‌ریزی میدانی» در نام FPGA به این واقعیت اشاره دارد که برنامه‌نویسی «در محل» رخ می‌دهد (برخلاف دستگاه‌هایی که عملکرد اصلی آنها توسط سازنده به صورت سخت‌افزاری تعیین شده است). این ممکن است در مورد پیکربندی FPGAها در آزمایشگاه یا تغییر عملکرد یک دستگاه در یک سیستم الکترونیکی که قبلاً در دنیای واقعی مستقر شده است، صدق کند. اگر دستگاهی بتواند در حالی که در یک سیستم سطح بالاتر قرار دارد، برنامه‌ریزی شود، گفته می‌شود که قابل برنامه‌ریزی درون سیستمی است. شکل 3 برد توسعه FPGA را نشان می‌دهد.

 



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

 

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

 



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

 

عملکرد

 

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

 

مصرف برق

 

میکروکنترلرها (MCU) به دلیل اندازه جمع و جور میکروکنترلرها، نسبت به FPGAها برق کمتری مصرف می‌کنند. میکروکنترلرها برای راه‌اندازی باتری‌ها، اینورترها و مبدل‌ها ایده‌آل هستند. از سوی دیگر، FPGAها در پردازش دیجیتال برای پردازش تصویر و ویدیو بهتر هستند.

 

انعطاف پذیری و سفارشی سازی

 

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

 

زمان و پیچیدگی توسعه

 

MCUها و FPGAها از نظر معماری حافظه و ویژگی‌های عملکرد با هم متفاوت هستند. یک میکروکنترلر دارای حافظه غیرفرار است، به این معنی که پس از خاموش شدن، MCUها حافظه خود را حفظ می‌کنند، در حالی که این ویژگی در FPGAها به دلیل وجود حافظه دسترسی تصادفی در FPGAها وجود ندارد. میکروکنترلرها معمولاً با استفاده از زبان‌های سطح بالا مانند C/C++ برنامه‌نویسی می‌شوند، در حالی که توسعه FPGA به زبان‌های توصیف سخت‌افزار مانند Verilog یا VHDL نیاز دارد. Verilog و FPGAها از نظر سخت‌افزاری پشتیبانی می‌شوند در حالی که C/C++ از نظر نرم‌افزاری پشتیبانی می‌شوند.

 

شباهت‌های میکروکنترلر و FPGA

 

اجزای اساسی

 

یک میکروکنترلر تا زمانی که با مدارهای مجتمع (IC) یکپارچه نشده باشد، چیزی نیست، در حالی که FPGAها عمدتاً حاوی ICها و سایر مدارهای مجتمع هستند. به طور خلاصه، هر دو فناوری ترکیبی از مدارهای مجتمع و زبان برنامه‌نویسی سطح بالا هستند.

 

سفارشی سازی

 

پس از تولید، هم FPGAها و هم میکروکنترلرها قابل برنامه‌ریزی مجدد هستند و تغییر در عملکرد آنها پس از ساخت زیرساخت قابل انجام است. با این حال، FPGAها عمدتاً برای کاربردهای سطح بالا مناسب هستند، در حالی که MCUهایی مانند آردوینو برای کاربردهای ساده‌تر نیز مناسب هستند.

 

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

 

میکروکنترلرها به طور گسترده و با هزینه کم در دسترس هستند و طیف وسیعی از ویژگی‌ها را برای کاربردهای برق و الکترونیک ارائه می‌دهند. با این حال، استفاده از MCUها نیاز به تخصص در زبان‌های سطح بالا مانند C/C++ دارد. از سوی دیگر، FPGAها قیمت بالاتری دارند اما کاربرپسندتر هستند. میکروکنترلرها با توان کم به طور کارآمد کار می‌کنند که نیاز به انرژی را کاهش می‌دهد. از سوی دیگر، FPGAها به توان بالا نیاز دارند که برای عملیات به انرژی بیشتری نیاز دارد. راه‌حل‌های مبتنی بر نرم‌افزار مستقیماً سفارشی نمی‌شوند، در حالی که راه‌حل‌های مبتنی بر سخت‌افزار مستقیماً سفارشی می‌شوند. اینورترها، UPSها و مبدل‌ها کاربردهای ایده‌آلی برای MCUها هستند، در حالی که پردازش ویدیو و تصویر به دلیل قابلیت‌های پردازش موازی، برای FPGAها مناسب‌تر هستند.

 

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

 

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

 

FPGA در مقابل دیگران

 

تفاوت‌های بین FPGA، CPLD و MCU در این بخش توضیح داده شده است.

 

FPGA در مقابل CPLD

 

جنبه مقایسه

FPGA

CPLD

ساختار داخلی

Hبه عنوان جداول جستجو

Has پیچیدگی کمتر و بلوک‌های منطقی کوچکتر

زمان روشن شدن

Tوقت کم است

Tوقتشه

مصرف برق

نیاز به مصرف برق بالا

نیاز به مصرف برق کم


FPGA در مقابل ریزپردازنده

 

جنبه مقایسه

FPGA

ریزپردازنده

کارایی و انعطاف‌پذیری

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

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

اجرای وظیفه

وظایف را به صورت موازی انجام می‌دهد و مجموعه داده‌های بزرگ را به طور کارآمد مدیریت می‌کند.

وظایف را به ترتیب انجام می‌دهد

نوع حافظه

از حافظه فرار استفاده می‌کند و پس از قطع برق نیاز به برنامه‌ریزی مجدد دارد

از حافظه غیرفرار استفاده می‌کند و داده‌ها را پس از خاموش شدن حفظ می‌کند

موارد را استفاده کنید

مناسب برای محاسبات پرسرعت، پردازش جریان داده و وظایف سخت‌افزاری سفارشی

برای محاسبات عمومی، مانند کنترل سیستم عامل و مدیریت ورودی/خروجی استفاده می‌شود.


نتیجه

 

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

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

امیلی کارتر

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

مونتاژ 20 برد مدار چاپی برای $0

استعلام مونتاژ

ارسال فایل

نقل قول فوری

x
ارسال فایل

شماره تماس

ویچت

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

چی

تماس تلفنی

+ 86-755-27218592

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

پشتیبانی وی‌چت

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

پشتیبانی واتس اپ

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