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

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

میکرو

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

میکروکنترلرها اساساً در دستگاههایی بکار می روند که برای اعمال توسط کاربر دستگاه به درجه ای از کنترل نیاز دارند.

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

  1. Micro = میکرو : میکرو یک واحد ریاضی یونانی است و یعنی 10 به توان -6 (یعنی یک میکروکنترلر دارای سرعت بالا و اندازه بسیار کوچک است)
  2. controller = کنترلر : به معنای کنترل کننده است.

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

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

قبل از بوجود آمدن میکروکنترلر ها، مهندسین میتوانستند پروژه ها خود را با ترانزیستور ها و … بسازند اما بسیار مدار پیچیده ای ساخته میشد.

در واقعیت ، microcontroller همه امکانات را برای داشتن مداری ساده تر ، کوچک تر ، سریع تر و با دقت تر در یک فضای کوچک جمع آوری کرده است.

  • واحد پردازش مرکزی (CPU)
  • حافظه موقت خواندنی و نوشتنی (RAM)
  • حافظه فقط خواندنی (ROM)
  • پورت های ورودی و خروجی (I/O Ports)
  • تایمرها و شمارنده ها (Timers and Counter)
  • کنترلهای وقفه (Interrupt Controls)
  • مبدل آنالوگ به دیجیتال (ADC)
  • مبدل دیجیتال به آنالوگ (DAC)
  • رابط کاربری سریال (Serial Interface Ports)
  • و …

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

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

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

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

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

اجزای داخلی میکروکنترلر

میکروکنترلر ها به دلیل ویژگی های مختلف در سیستم های توکار استفاده می شوند. همانطور که در نمودار بلوک میکروکنترلر زیر نشان داده شده است، این شامل پردازنده، پین های ورودی / خروجی، پورت های سریال، تایمرها، ADC، DAC و کنترل وقفه است.

پردازنده یا CPU : پردازنده مغز یک میکروکنترلر است. وقتی ورودی از طریق پین های ورودی و دستورالعمل ها از طریق برنامه ها فراهم شوند، داده ها را بر اساس آن پردازش می کند و در پایه های خروجی ارائه می دهد.

حافظه : تراشه های حافظه برای ذخیره تمام برنامه ها و داده ها در میکروکنترلر ادغام شده اند. انواع مختلفی از حافظه در میکروکنترلر ها مانند RAM، ROM، EPROM، EEPROM، حافظه Flash و غیره وجود دارد.

پورت های ورودی/خروجی : هر میکروکنترلر دارای پورت های خروجی ورودی است. بسته به انواع میکروکنترلر ها، تعداد پایه های خروجی ورودی ممکن است متفاوت باشند. آن ها برای رابط دستگاه های ورودی و خروجی خارجی مانند سنسور ها، واحد های نمایشگر و غیره استفاده می شوند.

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

معرفی اجزای داخلی یک میکروکنترلر

ADC  و  DAC: گاهی اوقات سیستم های توکار نیاز به تبدیل داده ها از دیجیتال به آنالوگ و بالعکس دارند. بنابراین بیشتر آن ها برای انجام تبدیل مورد نیاز با ADC داخلی (مبدل آنالوگ به دیجیتال) و DAC (مبدل دیجیتال به آنالوگ) متصل شده اند.

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

کنترل وقفه : کنترل وقفه یکی از ویژگی های قدرتمند میکروکنترلرها است. این نوعی اعلان است که روند مداوم را قطع کرده و دستورالعمل انجام وظیفه تعریف شده توسط کنترل وقفه را می دهد.

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

شرکت های مختلفی مانند Atmel، ARM، Microchip، Texas Instruments، Renesas، Freescale، NXP Semiconductors و غیره انواع مختلفی از میکروکنترلر ها را با ویژگی های مختلفی تولید می کنند. با جستجوی پارامتر های مختلف مانند حافظه قابل برنامه ریزی، اندازه فلش، ولتاژ تغذیه، پین های ورودی / خروجی، سرعت و غیره، می توان میکروکنترلر مناسب را برای کاربردشان انتخاب کرد.

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

گذرگاه داده (اندازه بیت) : هنگامی که طبق اندازه بیت طبقه بندی می شود، بیشتر میکروکنترلر ها از 8 بیت تا 32 بیت هستند (میکروکنترلر هایی با بیت بالاتر نیز وجود دارند). در یک میکروکنترلر 8 بیتی گذرگاه داده آن از 8 خط داده تشکیل شده است، در حالی که در یک میکروکنترلر 16 بیتی گذرگاه داده آن از 16 خط داده و برای میکروکنترلرهای 32 بیتی و بالاتر نیز به همین ترتیب تشکیل شده است.

  • میکروکنترلر 8 بیتی عملیات منطقی را حساب و اجرا می کند. نمونه هایی از میکروکنترلر 8 بیتی Intel 8031/8051 هستند.
  • میکروکنترلر 16 بیتی بر خلاف 8 بیتی با دقت و عملکرد بیشتری اجرا می شود. نمونه ای از میکروکنترلر 16 بیتی Intel 8096 است.
  • میکروکنترلر 32 بیتی عمدتا در وسایل کنترل شده خودکار مانند ماشین های اداری ، تجهیزات پزشکی قابل کاشت و … استفاده می شود و برای انجام هرگونه عملکرد منطقی یا محاسباتی به دستورالعمل های 32 بیتی نیاز دارد.

حافظه : برای ذخیره برنامه ها و داده ها به حافظه (RAM، ROM، EPROM، EEPROM، فلش مموری و غیره) نیاز دارند. در حالی که برخی از میکروکنترلر ها تراشه های حافظه داخلی دارند اما برخی دیگر برای اتصال به حافظه خارجی نیاز دارند. به ترتیب به این میکروکنترلر های حافظه توکار و میکروکنترلرهای حافظه خارجی گفته می شود. اندازه حافظه داخلی نیز در انواع مختلف میکروکنترلر ها متفاوت است و به طور کلی میکروکنترلر هایی با حافظه 4B تا 4Mb را می توانید پیدا کنید.

تعداد پین های ورودی/خروجی : با توجه به تعداد اندازه های پین ​​های ورودی/خروجی متفاوت هستند. با توجه به نیاز برنامه می توان میکروکنترلر خاصی را انتخاب کرد.

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

  • CISC : به معنی “رایانه مجموعه دستورالعمل پیچیده” است. به کاربر اجازه می دهد 1 دستورالعمل را به جای تعداد بالایی از دستور العمل های دیگر اجرا کند.
  • RISC : به معنی “رایانه دستورالعمل کاهش یافته” است. RISC زمان عمل را کاهش می دهد.

ساختار حافظه : میکروکنترلر ها دو نوع دارند – میکروکنترلر های ساختار حافظه هاروارد و میکروکنترلر های ساختار حافظه پرینستون.

  • میکروکنترلر معماری هاروارد
  • میکروکنترلر معماری Princeton Memory

میکروکنترلر ها چندین خانواده اند و محبوب ترین های آن ها را در زیر آوردیم.

  1. سری میکروکنترلر AVR و ARM از شرکت اتمل
  2. میکروکنترلر PIC از شرکت میکروچیپ
  3. میکروکنترلر 8051
  4. و …

معروفترین خانواده میکروکنترلر در ایران ، AVR ساخته شرکت Atmel است. البته امروز استفاده از میکروکنترلر های سری ARM دارد جای میکروکنترلر های AVR را میگیرد. اما هنوز بسیاری از مهندسین الکترونیک و برنامه نویسان از میکروکنترلر های 8051، AVR و … استفاده میکنند.

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

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

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

به طور کلی کاربرد میکرو کنترلر ها را میتوان در دسته های زیر قرار داد :

  • کاربرد های سلامتی : استفاده در دستگاه های مربوط به سلامتی مثل مچ بند های سلامتی، دستگاه های بیمارستان ها و …
  • کاربرد های صنعتی : استفاده برای کنترل دستگاه ها و ماشین های کارخانجات
  • کاربرد های فضایی :در انواع فعالیت های نجومی و فضایی استفاده میشود.

 زندگی روزمره:

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

کنترل صنعتی:

  • دستگاه های ابزار دقیق صنعتی
  • دستگاه های کنترل فرآیند

دستگاههای اندازه گیری:

  • ولت متر
  • اندازه گیری اشیا revol گردان
  • کنتور کنونی
  • سیستم های اندازه گیری دستی

بهترین میکروکنترلر

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

به طور مثال برای پروژه های ساده مثل ساعت یا یادآور، یک میکروکنترلر AVR مناسب است. اما برای پروژه های که نیاز به پردازش همزمان چندین مورد دارند دیگر میکروکنترلر AVR مناسب نیست و ما نیازمند یک میکروکنترلر سری ARM هستیم. همچنین باید توجه داشته باشید که تعداد پین های آنالوگ و دیجیتال، حافظه، سرعت، قابلیت PWM، ADC، DAC و … نیز در هنگام انتخاب میکروکنترلر مناسب مهم هستند.

و باید بدانید که سری ARM به مراتب قیمت بیشتری نسبت به سری AVR دارند.

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

برای برنامه نویسی میکروکنترلر ها ، نرم افزار های خاصی وجود دارند که به آن ها کامپایلر (Compiler) میگویند. در زیر چند تا از کامپایلر های محبوب را آورده ایم :

  • اتمل استودیو Atmel Studio
  • کدویژن Codevision
  • بسکام Bascom
  • کیل Keil
  • و …

در هر کامپایلر برنامه نویسی به زبان / زبان های خاصی انجام میشود. به طور مثال در کامپایلر اتمل استودیو و کدویژن از زبان C، بسکام زبان بیسیک و … استفاده میشود. زبان برنامه نویسی اتمل استودیو و کدویژن یکی است اما نمیتوان از کد کامپایلر دیگر برای کامپایلر دیگر استفاده کرد. زیرا بسیاری از توابع و کتابخانه در کامپایلر ها با هم تفاوت دارند.

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

خانهخدمات سوالاتتماسفروشگاه