میکروکنترلرهای PIC

آشنایی با میکروکنترلر PIC

نکات برگزیده مقاله

  • توصیف سیستم های Embedded
  • معرفی میکروکنترلر، بخش ها و انواع آن
  • معرفی میکروکنترلر PIC، بخش ها و مزایای آن
  • مقایسه میکروکنترلرهای PIC و AVR

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

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

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

یک سیستم جاسازی‌شده (Embedded System) چیست؟

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

انواع مختلفی از میکروکنترلر‌ها در بازار یافت می‌شود که اغلب قابل‌ برنامه‌ریزی هستند. این میکروکنترلرها اکثراً ازنظر برخی خصوصیات مانند طراحی بیتی، میزان حافظه برنامه‌ریزی ، مقدار حافظه رم، نوع بسته‌بندی، تعداد ورودی / خروجی (I/O) ها، سرعت پردازش و یا میزان ولتاژ تغذیه باهم اختلاف دارند.

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

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

بخش‌های مختلف میکروکنترلر :

میکروکنترلرها شامل بخش‌های متعددی هستند:

  • ALU بخش محاسبه
  • CPU قسمت پردازشگر
  • ROM  قسمتی از حافظه که برنامه بر روی آن ذخیره می‌شود.
  • RAM حافظه اصلی میکروکنترلر
  • Timer واحد نظارت بر زمان
  • I/O ورودی‌ها و خروجی‌ها و . . .

همه‌ی میکروکنترلرها از چهار نوع هستند که همگی از یک برنامه تبعیت می‌کنند:

  • میکروکنترلر 8051
  • میکروکنترلر AVR
  • میکروکنترلر ARM
  • میکروکنترلر PIC

میکروکنترلرها دارای کامپایلرهای مخصوصی هستند که با زبان‌های برنامه‌نویسی روز و حتی قدیمی می‌توان با آن‌ها کارکرد و سپس برنامه‌ی آماده‌شده را با دستگاه Programmer که توسط یک کابل به یکی از ورودی‌های رایانه متصل شده و  برنامه نوشته‌شده را بر روی یک IC منتقل کرده و در ROM ذخیره می‌کند. میکروکنترلرها از امکانات متفاوتی برخوردارند و یا به عبارتی هرکدام از امکانات مخصوص به خود برخوردارند و بر حسب توانائی و نوع کارکردشان به قیمت‌های مختلفی هم عرضه می‌شود. برای اینکه کار کردن با میکروکنترلر را آغاز کنیم، باید حداقل با یک‌ زبان برنامه‌نویسی، مثل C، BASIC، ASSEMBELY آشنا باشیم و بعد از آن یک صفحه‌ی برد Programmer مهیا کرده و برنامه را روی میکروکنترلر ارسال کرده و بعد از آن مدار خود را روی صفحه‌ی برد منتقل کنیم و در آخر نتیجه کارمان را نظاره کنیم. استفاده از برنامه‌های آموزشی می‌تواند کمک خوبی در آماده‌سازی مدارهای الکترونیکی باشد.

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

  • میکروکنترلر 8051: نسل اول از میکروکنترلرهاست که اولین بار توسط شرکت Intel ساخته شد و پس‌ از آن شرکت‌های دیگری مثل زیمنس و فیلیپس و … نیز اقدام به ساخت آن کردند. یکی از شرکت‌هایی که به‌ صورت گسترده به ساخت این میکروکنترلر اقدام کرد شرکت ATMEL بود. اما در یک دید کلی میکروکنترلرهایی که امروزه ساخته می‌شوند با توجه به پیشرفت‌های شگرفی که در این زمینه داشته‌ایم ازنظر ساختار تفاوت چندانی با نسل اوّل میکروکنترلرها ندارند، امّا نسبت به میکروکنترلرهای امروزی بسیار ضعیف‌تر است، به‌ طوری‌ که حافظه آن تقریباً یک‌صدم میکروکنترلرهای امروزی است و تا ۴ برابر سرعتش کمتر از میکروکنترلر PIC بوده و همچنین۱۲ برابر از میکروکنترلر AVR کندتر است. این میکروکنترلر از زبان برنامه‌نویسی قدیمی‌تر مانند اسمبلی و C پشتیبانی کرده ولی زبان برنامه‌نویسی اختصاصی مورد پشتیبانی آن اسمبلی است و همین خود نشان از ضعف این میکروکنترلر است همان‌طور که می‌دانید  این زبان‌ها خیلی طولانی‌تر و مشکل‌تر از زبان‌های امروزی است. به‌ طور کلی میکروکنترلر ۸۰۵۱ دیگر قابلیت رقابت با میکروکنترلرهای امروزی را ندارد.
  • میکروکنترلر AVR: اولین پارامتر مثبت این نوع میکروکنترلرها که از زبان‌های برنامه‌نویسی امروزی و سطح بالاتری استفاده می‌کنند سرعت بسیار بالای آن‌هاست به عبارتی دستوراتی که به آن‌ها داده می‌شود، با سرعت بسیار بالائی پردازش می‌شوند. استفاده از زبان‌های برنامه‌نویسی سطح بالا باعث شده تا کدهایی که توسط این نوع میکروکنترلرها خوانده می‌شود بسیار کوتاه‌تر بوده و به‌ تبع آن، از سرعت بسیار بالاتری نسبت به سایر میکروکنترلرها برخوردار باشد.
  • میکروکنترلر ARM: این نوع میکروکنترلرها که قادر به راه‌اندازی سیستم‌های عامل لینوکس و ویندوز هستند معمولاً در جاهایی به کار می‌روند که نیاز به‌ ظاهر زیبای کار باشد. درواقع این نوع میکروکنترلرها دارای قدرت بالا با کاربردهای متنوع هستند.
  • میکروکنترلر PIC: و اما میکروکنترلر PIC که بسیار قوی و قدرتمند بوده و بالاترین آمار مصرف را به خود اختصاص داده‌اند. میکروکنترلر PIC ساخت شرکت میکروچیپ بوده و در مدل‌های خیلی متنوعی با امکانات مختلف و خاص برای کارهای متفاوتی ساخته می‌شوند.

مقایسه‌ی میکروکنترلر AVR با میکروکنترلر PIC

هر زمان که موضوع بحث به مقایسه میکروکنترلر PIC و مورد مشابه آن یعنی AVR مطرح می‌شود بحث داغی درمی‌گیرد، همان‌طور که در بسیاری از رشته‌های مهندسی چنین بحث‌هایی وجود دارد. اما باید به این مطلب اشاره کرد که بحثی نادرست است چرا که بهتر است بیان شود که کدام مورد برای چه پروژه‌ای مناسب‌تر است؟! اغلب افراد مبتدی و یا کسانی که تازه، کار با میکروکنترلرها را شروع کرده‌اند، AVR را مناسب تر می دانند. با این حال میکروکنترلر PIC که شاهکار شرکت میکروچیپ است، در معماری هاروارد به‌ گونه‌ای طراحی‌شده است که در برابر نویز ایمن است. شاید این نکته را بتوان به‌ عنوان پارامترهای مثبت میکروکنترلر PIC دانست. البته این دو میکروکنترلر ازنظر برنامه‌نویسی و قابلیت دریافت دستورات قابل‌ فهم توسط CPU باهم تفاوت‌هایی هم دارند. به‌ عنوان‌ مثال، میکروکنترلر PIC در حدود 30 فرمان را قبول می‌کند و این در حالی است که نوع AVR تقریباً ۱۳۰ دستور، آن‌ هم به زبان اسمبلی را پشتیبانی می کند و در واقع اگر در مقام مقایسه بین حافظه‌های این دو ریزپردازنده برآییم، به این نتیجه می‌رسیم که داده ها در فضای کمتری از حافظه میکروکنترلر PIC ذخیره می شوند. یعنی برنامه‌ها در PIC به دلیل تعداد کمترِ مجموعه فرمان ها نسبت به AVR، حجم کمتری را اشغال می کنند و به تبع آن به حافظه کمتری هم احتیاج است. خانواده هر دو ریزپردازنده از انواع ریزپردازنده های ۱۶ و ۳۲ بیتی تشکیل‌ شده که تفاوت چندانی با یکدیگر ندارند و بیشتر بسته به شرایط کاری و بودجه‌ی در نظر گرفته‌ شده انتخاب می‌شوند. این در حالی است که معمولاً میکروکنترلرهای AVR ارزان‌تر از نمونه‌ی مشابه PIC آن است. و در مقام مقایسه:

  • در مقابل PIC 18 XXX، میکروکنترلر AVR سری MEGA را دارد.
  • در مقابل PIC 16 XXX، میکروکنترلر AVR سری AT90S را دارد.
  • در مقابل PIC 12 XXX، میکروکنترلر AVR سری Tiny را دارد.

تقسیم‌بندی میکروکنترلر PIC

PIC درواقع حروف اول عبارت Programmable Interface Controller می باشد که در واقع معادل فارسی آن “کنترلر رابط قابل برنامه ریزی” است . این ریزپردازنده ها تولید شرکت میکروچیپ می‌باشند که در ادامه به تقسیم‌بندی انواع آن می‌پردازیم.

  • میکروکنترلرهای سری PIC10F: این نوع ریزپردازنده‌ها از نوع 6 پایه‌ی 8 بیتی هستند که شامل امکاناتی مانند تبدیل‌کننده آنالوگ به دیجیتال (ADC)، و همچنین مقایسه کننده‌های داخلی ، امکان برنامه‌نویسی به زبان خاص در مدار، و نیز اسیلاتور داخلی و قابلیت خاموش کردن پایه ی ریست و … برخوردارند. این سری از ابتدایی‌ترین میکروکنترلرهای PIC می‌باشند که سادگی طراحی و کارکرد ساده آن، استفاده از آن‌ها را تداوم بخشیده و نیز قیمت مناسب آن‌ها سبب شده تا این ریزپردازنده‌ها در دنیای الکترونیک جایگاه خود را همچنان حفظ کنند. البته میکروچیپ در جهت توسعه ی این نوع از ریزپردازنده‌ها، توان اسیلاتور در خانواده PIC 10F را حداکثر تا 16مگاهرتز افزایش داده است.
  • میکروکنترلرهای سری PIC12F: این نوع ریزپردازنده‌ها که از امکانات بیشتری نسبت به سری 10 برخوردارند از نوع 8 پایه‌ی 8 بیتی هستند. این سری نیز جزء قدیمی‌ترین سری از میکروکنترلرهای PIC است که همچنان به دلیل قیمت مناسبش جایگاه خوبی دارد. البته در این مورد هم میکروچیپ در جهت توسعه ی این نوع از ریزپردازنده‌ها توان اسیلاتور در خانواده PIC12F را تا میزان حداکثری 32 مگاهرتز ارتقاء داده است. مبدل آنالوگ به دیجیتال و نیز تایمر 0 و همچنین تایمر 1 و  تایمر WDT و نیز مقایسه کننده داخلی و یا اسیلاتور داخلی و خاموش کننده ی پایه ی ریست و غیره از امکانات میکروکنترلرهای PIC12F است .
  • میکروکنترلرهای سری PIC16F: از این سری بیش از 150 نوع میکروکنترلر تاکنون تولید شده است که در نهایت توان اسیلاتور در آن‌ها به 48 مگاهرتز ارتقاء یافته است و تعداد پایه‌های ریزپردازنده‌ها نیز از 8 تا 100 پایه متغیر است. از خصوصیات بارز در این دسته که در میکروکنترلرهای 8 بیتی وجود ندارد وجود تایمر 32 بیتی و رابط CAN و USB است.
  • میکروکنترلرهای سری PIC18F: این سری از سریع‌ترین، قوی‌ترین و به‌روزترین تراشه‌های 8 بیتی PIC است، که تاکنون بیش از 200 نوع میکروکنترلر از این سری ساخته‌شده است. سرعت فوق‌العاده بالای این ریزپردازنده‌ها که در برخی از انواع آن‌ها تا 64 مگاهرتز هم می‌رسد، از نقاط قوت این نوع از تراشه‌هاست.
  • میکروکنترلرهای سری PIC24F: از نوع ریزپردازنده‌های 16 بیتی هستند که گفته‌ شده از امکانات داخلی زیادی مانند ماژول ساعت و تقویم، امکان ارتقاء تا 32 بیت، حافظه های برنامه با حجم های بالاتر و … برخوردار است. این سری دارای CPU با سرعت 16MIPS است و سرعت اسیلاتور در هرکدام از این مدل‌ها متفاوت است. چنانچه در برخی مدل‌های به‌ روزتر آن تا 250 مگاهرتز هم می‌رسد اما به‌ طور معمول سرعت میانگین در آن‌ها تقریباً 96 مگاهرتز است. و تاکنون چیزی قریب به 150 محصول از این خانواده به بازار ارائه‌ شده است.
  • تراشه‌های سری RF: تراشه‌های 8 بیتی هستند که ازنظر امکانات همانند تراشه‌های سری PIC12F می‌باشند، با این تفاوت که به ماژول فرستنده‌ی UHF داخلی مجهز هستند که با فرکانس‌های متفاوت از  290 تا 930 مگاهرتز قابل‌ استفاده هستند.

امروزه با پیشرفت صنعت و با توسعه‌ی نیازهای بازار مصرف، انواع دیگری از میکروکنترلرهای PIC ساخته‌شده است که میکروکنترلرهای سری  PIC24E و PIC24H از این جمله هستند سرعت CPUدر این دو سری بهبود چشمگیری یافته است، به‌ طوری‌ که در برخی از انواع آن‌ها تا 70 MIPS نیز می‌رسد و این در حالی است که کمینه سرعت نیز در این سری 40MIPS است. تا امروز حدود 30 نوع از این تراشه‌ها ساخته‌شده است. تراشه‌های سری DS نیز از دیگر میکروکنترلرهای PIC هستند که به دلیل ویژگی‌های منحصر به فردی که دارند به تراشه‌های پردازشگر سیگنال مشهور شده اند. سرعت CPU در این میکروکنترلرها به 30MIPS می‌رسد و تاکنون قریب به 25 نوع از این محصول به بازار عرضه‌شده است. این پردازنده‌ها از نوع 16 بیتی و دارای قدرت فوق‌العاده زیادی می‌باشند.

و در یک جمع‌بندی کلی:

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

اما چرا میکروکنترلرها؟

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

میکروکنترلر PIC: ریزپردازنده های تولیدشده در شرکت میکروچیپ با نام PIC  شناخته می‌شوند . این شرکت کلمه PIC را که جهت علامت تجاری برگزیده است، از سه حرف ابتدائی Programmable Interface Controller  استخراج و آن را برای شناسایی میکرو کنترلرهای خود استفاده می‌کند. در این اواخر شرکت Microchip که تولید کننده میکروکنترلرهای PIC استT این تراشه ها را با عبارت PICmicro MCUS هم به بازار عرضه کرده است. بر اساس آمار امروزه پرمصرف‌ترین نوع میکروکنترلرها در جهان مربوط به این شرکت هست، گرچه در ایران از اقبال خوبی برخوردار نبوده و جای خود را به میکروکنترلرهای AVR داده است.

میکروکنترلر PIC

مزایای میکروکنترلرهای PIC

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

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

امتیاز کاربران: اولین نفر باشید!
برچسب ها
نمایش بیشتر

محسن چهرازی

من محسن چهرازی، دانش آموخته رشته مهندسی برق- الکترونیک هستم.rnدر زمینه های کنترل تابلو فرمان آسانسور، برنامه نویسی میکروکنترلرها (زبان C) و MATLAB، کدنویسی VHDL برای FPGA ها و تا حدودی نانو الکترونیک تخصص دارم.rnاین وبسایت رو درست کردم تا با هم یاد بگیریم تحلیلی به مسائل الکترونیک نگاه کنیم و کمی از بخاطر سپردن دریای فرمول ها فاصله بگیریم.

دیدگاه خود را بنویسید. (این مقاله بر اساس نظرات شما به روز رسانی خواهد شد.)

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