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

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

میکروکنترلر AVR نوعی میکروکنترلر تولید شده توسط شرکت Atmel است که مزایای خاصی نسبت به تراشه‌های رایج دیگر دارد، اما ابتدا باید روشن شود که میکروکنترلر چیست؟ میکروکنترلر نوعی چیپ قابل برنامه‌ریزی جهت کنترل دستگاه‌هایی است که نیازمند ذخیره اطلاعات هستند. برای فهم بیشتر بهتر است یک میکروکنترلر را با رایانه شخصی مقایسه کرد که مادربرد در آن به کار رفته است. در مادربرد یک ریزپردازنده (تراشه‌های AMD یا اینتل)  قرار دارد که از طریق آن می‌توان به هوشمندی، حافظه RAM و EEPROM و رابط‌های دیگر سیستم مانند پورت‌های USB، درایوهای دیسک و رابط های نمایشگر اشاره کرد. یک میکروکنترلر تمام یا بیشتر این ویژگی‌ها همچون CPU، پورت‌های ورودی و خروجی و حافظه RAM یا ROM را در یک تراشه داخلی دارد، بنابراین نیازی به مادربرد ندارند و بسیاری از اجزای سازنده، مانند LEDها، می‌توانند مستقیماً به میکروکنترلر AVR متصل شوند.

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

 میکروکنترلرهای AVR بسته‌های مختلفی دارند که برخی برای نصب از طریق سوراخ و برخی نیز برای نصب روی سطح طراحی شده اند. AVRها با 8 پین تا 100 پین در دسترس هستند، اگرچه AVR از 64 پین بیشتر باشد فقط برای نصب روی سطح مناسب هستند. ریزپردازنده‌های رایانه‌های شخصی حداقل 32 بیتی هستند، البته امروزه رایانه‌ها اکثرا 64 بیتی ساخته می‌شوند. این بدان معناست که آن‌ها می‌توانند داده‌ها را به صورت قطعه‌های 32 بیتی یا 64 بیتی پردازش کنند. AVR بسیار ساده‌تر است و با داده‌های 8 بیتی سروکار دارد، زیرا پهنای گذرگاه آن 8 بیتی است، اگرچه اکنون یک AVR32 با پهنای گذرگاه 32 بیتی و یک خانواده ATxmega با پهنای گذرگاه داده 16 بیتی وجود دارد.

یک رایانه شخصی دارای سیستم عامل (ویندوز یا لینوکس) است که برنامه‌های زیادی مانند Word یا Internet Explorer یا Chrome را اجرا می‌کند و کارهای زیادی را انجام می‌دهند. یک میکروکنترلر 8 بیتی AVR معمولاً سیستم عاملی ندارد، اگرچه در صورت نیاز می‌تواند یک سیستم ساده را اجرا کند و در عوض فقط یک برنامه یا دستور را اجرا می‌کند. همانطور که اگر بروی رایانه خود هیچ برنامه‌ای را نصب نکنید‌، رایانه شما بی فایده خواهد بود، باید بروی AVR نیز باید یک برنامه نصب کرده باشید تا از بتوانید از آن استفاده کنید.  این برنامه بجای ذخیره در درایو خارجی در حافظه داخلی AVR ذخیره می‌شود. به عنوان مثال یک دستگاه گرمایشی را در دمای بالای خاصی خاموش کند و در دمای پایینی روشن کند.

تاریخچه میکروکنترلر AVR

میکروکنترلر AVR‌ خانواده‌ای از میکروکنترلرها است که در سال 1996 توسط  Alf-Egil Bogen و Vegard Wollan  دو محقق و دانشجوی نروژی طراحی شد و در شرکت ATMEL‌ ساخته شد. نام این میکروکنترلر از مخفف نام طراحان آن گرفته شده است. اولین میکروکنترلری که بر اساس طراحی AVR تولید شد مدل AT90S8515  بود، با این حال در سال 1997 میکروکنترلر AT90S1200  وارد بازار شد، تا این زمان میکروکنترلر AVR  هنوز کاملا شناخته شده نبود. میکروکنترلر AVR در سال 2016 توسط  Microchip Technology‌ خریداری شد. AVR یکی از اولین خانواده‌های میکروکنترلر بود که برخلاف سایر میکروکنترلرها که از حافظه ROM ، EPROM یا EEPROM با قابلیت یک بار برنامه‌نویسی در آن زمان استفاده می‌کردند، از حافظه فلش بر روی تراشه برای ذخیره برنامه استفاده کرد.

ساختار میکروکنترلر AVR‌

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

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

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

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

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

معمولا AVR‌ در چهار گروه مگا (mega)، تاینی (tiny‌)، تک منظوره و کلاسیک دسته‌بندی می‌شوند.

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

میکرو کنترلر‌ tiny در ابعاد مختلف 8، 20 و 28 پایه موجود هستند. این سری نسبت به سایر مدل‌ها از امکانات کمتر برخوردار است، اما با این حال CUP‌ قوی دارد و بیشتر جهت عملیات‌های ساده و کم حجم مناسب است. تاینی سه حافظه فلش، SRAM و  EEPROM ‌را به کار می‌برد. برخی از انواع این میکروکنترلر عبارتند از ATtiny 2313، ATtiny11، ATtiny13 و ATtiny28 .

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

سری میکرکنترلر mega دارای حافظه فلش 4 تا 512 کیلوبایتی است که نسبت به سری تاینی سطح بالاتری دارد. برخی از میکروکنترلرهای AVR که بیشتر مورد استفاده قرار می گیرند عبارتند از:

میکروکنترلر Atmega8 AVR

شامل 28 پین، 1کیلوبایتی ، SRAM، 8 کیلوبایت حافظه فلش، دارای دو رابط سیم، پین خارجی برای اتصال دو ولتاژ به دو ورودی مقایسه کننده است.

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

میکروکنترلر Atmega16 AVR

از 40 پین تشکیل شده است. همچنین دارای یک نوع حافظه فلش، سرعت 16MIPS ، 1 کیلوبایت رم، شش حالت صرفه‌جویی در مصرف انرژی است.

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

میکروکنترلر Atmega32 AVR

از 44 پین به همراه حافظه 32 بیتی تشکیل شده است. این نوع از حافظه فلش، سرعت 16 MIPS ، 2048 SRAM و دارای محدوده ولتاژ 7/2 تا 5/5 است.

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

میکروکنترلر Atmega328 AVR

معماری RISC شامل حافظه نوع فلش 32 کیلوبایتی، 2 کیلوبایت SRAM ، محدوده ولتاژ عملیاتی از 8/1 تا 5/5 و حافظه EEROM  یک کیلوبایتی (حافظه فقط خواندنی با قابلیت پاک شدن) است.

موارد استفاده: به طور گسترده‌ای در سیستم‌های آردوینو، رباتیک، نظارت بر قدرت و مدیریت استفاده می‌شود.

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

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

سری کلاسیک یا AT90S اولین سری تراشه‌های میکروکنترلر AVR‌ است. از لحاظ امکانات در حد بین تاینی و mega‌ قرار دارد. برخی از مدل‌های این خانواده عبارتند از AT90S1200،  AT90S2313، AT90S2323 و AT90S8534‌ می‌باشد.

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

اگر به نام میکروکنترلرها توجه کرده باشید پسوند‌هایی را خواهید دید که این پسوندها در میکروکنترلر AVR هر کدام معنای خاصی را می‌رسانند و فقط یک نام خاص تلقی نمی‌شوند. این پسوند‌ها نشان‌دهنده محدوده ولتاژی و فرکانس میکروکنترلر هستند. درصورتی که بدون پسوند باشند محدوده تغذیه با تغییرات کم( v ~ 5.5 v)  و فرکانس کلاک حداکثر 16 مگاهرتز را نشان می‌دهد. همچنین پسوند L نشانگر محدودۀ تغدیه با تغییرات متوسط( v ~ 5.5 v7)   و فرکانس کلاک تا 8 مگاهرتز است،پسوندA   نیز خصوصیت‌های هر دو مورد قبلی را نشان می‌دهد . پسوند V نیز محدودۀ ولتاژ 8/1 ولت تا 5/5 ولت و فرکانس تا 4 مگاهرتز را نشان می‌دهد.

حافظه میکروکنترلر AVR

ذخیره برنامه میکروکنترلر AVR توسط حافظه ROM‌ انجام می‌شود. گرچه 8 مگابایت فضای ROM در میکرکنترلر AVR تعبیه شده است اما این مقدار برای تمام اعضا AVR‌ منظور نمی‌گردد. اندازه ROM از یک کیلوبایت تا 256 کیلوبایت برای انواع سری متغییر است. حافظه ROM‌ در چند ثانیه پاک می‌شود، اما با اضافه شدن حافظه فلش بر روی‌ آن این زمان بیشتر شده و 20 دقیقه زمان برای پاک شدن احتیاج است. حافظه فلش جهت ذخیره‌سازی کد یا برنامه است. نوع دیگر حافظه ROM از نوع EEPROM است، این نوع از حافظه جهت ذخیره داده‌هایی که تغییر نمی‌کنند، داده‌ها در این حافظه با قطع برق و یا خاموش کردن میکروکنترلر پاک نمی‌شود.

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

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

معماری RISC

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

معماری CISC‌

در این معماری تعداد کدها بیشتر و پیچیده‌تر است. زیرا هدف معماری CISC‌ میکروکنترلر AVR این بود که کد یا دستورالعملی  برای هر عبارتی که در زبان سطح بالا نوشته شده& وجود داشته باشد. اما مسلما هر چه تعداد این کدها و آدرس‌دهی ها بیشتر باشد& مدارهای سخت‌افزاری بیشتری برای اجرا و پشتیبانی آن‌ها نیاز است و درنتیجه منجر به کاهش سرعت محاسبات می‌گردد. اما برنامه‌نویسی آن بخصوص اسمبلی ساده‌تر شده و از جهتی سرعت اجرا کدها و دستورات کم شده است.

ویژگی‌های میکروکنترلر AVR

همانطور که هر میکروکنترلر کاربرد و ویژگی منحصر به فرد خود را دارد و در جایگاه خود می‌تواند به عنوان بهترین میکروکنترلر باشد بنابراین نمی توان یک میکروکنترلر را نسبت به سایر رقبا بهترین دانست. با این وجود ويژگی‌های میکروکنترلر AVR نیز خاص ‌هستند که به طور خلاصه می‌توان گفت:

1 . بالاترین کارایی و اجرا در CPU

2. سخت‌افزار ضرب‌کننده روی خود

3. کدهایی کوچک

4. هماهنگی بالای سیستم

5. قابلیت به روزرسانی بالا

6. حافظه خود برنامه‌ریز

7. دارای واسط JTAG سازگار با IEEE 1149.1

8. حاوی بهترین MCU  برای حافظه فلش

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

هر میکروکنترلر‌ را می‌توان یک کامپیوتر کوچک در نظر گرفت. یک کامپیوتر با ورودی‌ها، خروجی‌ها، CPU و حافظه روی یک تراشه. هر میکروکنترلرAVR نیز مانند یک کامپیوتر برای ارتباط با ابزارهای الکترونیکی دیگر نیاز به پورت‌های ورودی‌ و خروجی‌ دارد. میکروکنترلر برای انجام وظایف خود در یک سیستم، باید با دنیای بیرون ارتباط داشته باشد. حتی اگر این وظیفه روشن و خاموش کردن یک LED یه یه سیستم تهویه باشد. کاربرد اصلی  میکروکنترلرها در یک سیستم، کنترل و پردازش پارامترهای سیستم و پارامترهای در ارتباط با سیستم است. بدین صورت که پارامترهای ورودی پردازش شده و نتیجۀ آن نمایش داده می‌شود.

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

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

دیدگاه ها

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

پشتیبانی در واتساپ
تماس با آموزشگاه
تماس با آموزشگاه