به نام خالق هستی

fpga  چیست؟

fpga  یا Field-Programmable Gate Array   (ارایه گیت های قابل برنامه ریزی) یک مدار مجتمع است که میتوان آن را پس از اتمام فرایند تولید ، مطابق نیاز طراح برنامه ریزی نمود و روابط منطقی بین پایه های ورودی و خروجی را تغییر داد از این رو به این تراشه ها ،تراشه های قابل برنامه ریزی میگویند .

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

روابط منطقی درون این تراشه ها را اغلب با زبان سخت افزار HDL   (Hardware Description Language) مشخص میکنند علاوه بر HDL از طراحی شماتیک ،State Diagram و برنامه نویس به زبان های دیگر مانند C نیز میتوان استفاده کرد که توسط برنامه ای که بواسطه طراحی را انجام میدهید به کد HDL تبدیل میگردد .

برخی از fpga های پیشرفته امروزی علاوه بر گیت های منطقی دارای منابع داخلی دیگری مانند RAM ، ADC (مبدل انالوگ به دیجیتال) ، DAC (مبدل دیجیتال به آنالوگ ) نیز هستند که به کاربر کمک میکنند تا در پروژه هایی که به این امکانات نیاز دارند از منابع داخلی استفاده نماید و یک سیستم کامل را در داخل تراشه پیاده سازی نماید که به افزایش کارایی ،سرعت و دقت fpga کمک کند .

 

کاربرد fpga

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

 

 

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

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

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

 

 

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

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

و….. بکار میروند .

  • محصولات الکترونیکی مصرفی : اسباب بازی ، دوربین ، ماشین لباس شویی ، کوره های مایکروویو و…
  • ابزار دقیق و کنترل فرایند : اسیلوسکوپ ، مولتی متر ، دستیابی و کنترل داده ها و…
  • ابزار پزشکی : Accu-check ،ECG و …
  • ارتباطات : تلفن های همراه ، دستگاه های پاسخ گو و…
  • تجهیزات اداری : فاکس ،چاپگر و …
  • خودرو : سرعت سنج ، سیستم خودکار ترمز و کاهش سرعت و …

 

مقایسه میکروکنترلر و fpga

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

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

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

پردازش همزمان fpgaها مناسب برای خواندن داده های موازی در چندین خط میباشد و اجازه میدهد تا کنترل بیشتری بر وقفه ها از طریق استفاده از دستگاه های دولتی محدود(FMSs) انجام شود . در حالی که یک کاربر میکروکنترلر باید مدت زمان لازم برای خاتمه دادن به وقفه را مورد توجه قرار دهد .

Fpgaها به دلیل سه عامل کلیدی نیاز به سخت افزار های جانبی بیشتری نسبت میکروکنترلر ها دارند :

  • حافظه دائمی : fpgaها از SRAM استفاده میکنند که نیاز به یک ماژول حافظه FLASH جداگانه برای ذخیراطلاعات پیکربندی دارند .
  • بدون نوسان سازی داخلی : fpgaها باید با یک کلاک خارجی عرضه شوند .
  • ولتاژ منبع تغذیه : بسیاری از fpgaها در ولتاژ های غیر معمول عرضه میشوند (نه 5V)

به طور خلاصه :

  1. میکروکنترلر ها یک رایانه های کوچک سفارشی ساخته شده در IC هستند در حالیکه fpgaها تنها از بلوک های منطقی تشکیل شده میتوانند از طریق برق مجددا ایجاد شوند
  2. میکروکنترلر ها دارای قدرت کمتر از fpgaها هستند
  3. دستگاه های ساختمانی با fpgaها نسبت به میکروکنترلر ها هزینه بیشتری دارند
  4. برای عملیات ارتباطی سریال ، fpgaها نسبت به میکروکنترلر ها خیلی مفید نیستند .
  5. Fpgaها داری مصرف انرژی بیشتری دارند .
  6. میکروکنترلر ها اغلب ساده تر و از طریق نرم افزار ها میتوان عیب یابی نمود .
  7. میکروکنترلرها با زبان های برتامه نویسی سطح بالا مانند C برنامه ریزی میشوند اما fpgaها با زبان سخت افزار .

بدون دیدگاه

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

نشانی ایمیل شما منتشر نخواهد شد.