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


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

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

با پیشرفت علم و تکنولوژی در عرصه الکترونیک، تراشه هایی به عنوان میکروپروسسورها طراحی و تولید شدند تا قبل از سال ۱۹۷۱ میلادی اگر شخص طراح، قصد طراحی سیستمی را داشت باید سیستم مورد نظر را به شرکت های سازنده میکروپروسسور ارائه می داد تا طراحی و ساخته شود و یا اینکه مجبور بود با استفاده از IC هایی سیستم مورد نظر خود را طراحی کند. از این پس شرکت های سازنده میکروپروسسورها، از جمله شرکت Zilog تصمیم به ساخت میکروپروسسوری نمود که بتوان آن را در اختیار کاربر قرار داد و به هر صورت ممکن که می خواهد سیستم مورد نظر خود را طراحی کند و به همین دلیل میکروپروسسور Z80 را به بازار عرضه کرد و نرم افزار کامپایلر به زبان اسمبلی و پروگرمر آنرا نیز ارائه نمود. بطور کلی اگر یک شخص از میکروپروسسور ۸ بیتی Z80 برای سیستمی استفاده کند، باید المان های جانبی CPU را نیز علاوه بر سخت افزار سیستم مورد نظر، در کنار میکروپروسسور Z80 قرار دهد.

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

8048 و 8051 شرکت Intel
68HC11 شرکت Motorola
Z80 شرکت Zilog
PIC شرکت Microchip
H8 شرکت Hitachi
AVR شرکت Atmel

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

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

۱-دارای بهترین MCU برای حافظه فلش در جهان ! (MCU: Master Control Unit)
۲-دارای سیستمی با بهترین هماهنگی
۳-دارای بالاترین کارایی و اجرا در CPU (یک دستورالعمل در هر سیکل کلاک)
۴-دارای کدهایی با کوچکترین سایز
۵-دارای حافظه خود برنامه ریز
۶-دارای واسطه JTAG که با IEEE 1149.1 سازگار است.
۷-دارای سخت افزار ضرب کننده روی خود
۸-دارای بهترین ابزارها برای پیشرفت و ترقی
۹-دارای حالات زیادی برای ترفیع دادن یا Upgrade

میکروکنترلر های AVR دارای ویژگی های منحصر بفردی دیگری نیز نسبت به میکروکنترلرهای دیگر موجود هستند، از جمله AVR ها میکروکنترلرهایی ۸ بیتی از نو ع CMOS با توان مصرفی پایین هستند که بر اساس ساختار پیشرفته RISC ساخته شده اند که با استفاده از این معماری عملیات خود را در یک کلاک سیکل انجام می دهند. خانواده AVR ، ۳۲ رجیستر همه منظوره و مجموعه دستورات قدرتمندی را شامل می گردند. تمام این ۳۲ رجیستر مستقیما به ALU متصل شده اند. بنابراین دسترسی به ۲ رجیستر در یک کلاک سیکل هم امکان پذیر است. این ساختار موجب می گردد تا سرعت آنها نسبت به میکرو کنترلرهای CISC بتواند تا ۱۰ برابر هم افزایش یابد.
میکروکنترلرهای AVR ، میتوانند تا ۱۰۰۰۰ مرتبه پاک شده و مجددا برنامه ریزی شوند. این میکروها از تکنولوژی حافظه کم مصرف غیر فرار استفاده می کنند.

ابتدا بهتر است تفاوت میکروپروسسورها را با میکروکنترلرها بصورت مختصر بیان کنیم. برای اینکه از یک میکروپزوسسور حتی برای ساده ترین عملکرد بخواهیم استفاده کنیم، باید از المان های جانبی دیگری نیز بهره گیریم. این عمل سبب افزایش قیمت و پیچیده شدن سخت افزار پروژه مورد نظر می گردد. بنابراین شرکت های سازنده قطعه را به فکر انداخت تا به طراحی تراشه ای بپردازند که تمامی امکانات جانبی میکروپروسسور را به همراه خود CPU داشته باشد، تا شخص طراح با قیمت مناسب و سخت افزار کمتر، بتواند سیستم مورد نظر خود را طراحی نماید.
درسال ۱۹۸۱ میلادی شرکت اینتل تراشه ای را به عنوان میکروکنترلر خانواده 8051 به بازار عرضه کرد که این میکروکنترلر دارای CPU 8 بیتی، تایمر یا کانتر، تبادل سریال ، حافظه SRAM و حافظه غیر فرار (Flash) داخلی بود. ابتدا این میکروکنترلر حافظه PROM بهره می برد که فقط یکبار قابل برنامه ریزی بود. سپس این میکروکنترلر را توسعه دادند و در آن از حافظه EPROM استفاده کردند مزیت استفاده از این نوع حافظه در آن است که می توان توسط پنجره شیشه ای که در بالای تراشه قرار داشت، در مجاورت نور ماورائ بنفش مانندنور خورشید قرار داده و بعد از چند دقیقه آنرا پاک کرد. با ادامه این روند شرکت اینتل تصمیم به استفاده از حافظه ای گرفت که بتواند با ولتاژ الکتریکی نوشته و پاک شود (حافظه Flash). این سری با شماره 89Cxx آغاز می شود که امروزه نیز مورد استفاده قرار می گیرد. شرکت های سازنده دیگری از جمله شرکت Atmel تحت لیسانس شرکت اینتل میکروکنترلر 8051 تولید کردند. شرکت Atmel بعدا نوع توسعه یافته 8051 را با سری AT89Sxx ارائه کرد.
این روند با ارائه میکروکنترلرهای جدیدی که دیگر شرکت های سازنده قطعه از جمله شرکت Microchip که میکروکنترلرهای PIC را تولید کرده است ادامه یافت تا در نهایت شرکت Atmel خانواده AVR را در سال ۱۹۹۷ به بازار عرضه نمود.

طراحی برای زبانهای Basic و C

زبانهای Basic و C بیشترین استفاده را در دنیای امروز بعنوان زبانهای (HLL (high level language دارند. امروزه معماری بیشتر میکروها برای زبان اسمبلی طراحی شده و کمتر از زبانهای HLL حمایت شده است.
هدف Atmel طراحی معماری بود که هم برای زبان اسمبلی و هم زبانهای HLL مفید باشد. بطور مثال در زبانهای C و Basic می توان یک متغیر محلی به جای متغیر سراسری در داخل زیر برنامه تعریف کرد، در این صورت فقط در زمان اجرای زیر برنامه مکانی از حافظه RAM برای متغیر اشغال می شود در صورتی که اگر متغیری بعنوان سراسری تعریف گردد در تمام وقت مکانی از حافظه Flash را اشغال کرده است.
برای دسترسی سریعتر به متغیرهای محلی و کاهش کد، نیاز به افزایش رجیسترهای همه منظوره است. AVR ها دارای ۳۲ رجیستر هستند که مستقیما به (ALU (Arithmetic Logic Unit متصل شده اند، و تنها در یک کلاک سیکل به این واحد دسترسی پیدا می کنند.

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

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

معماری Complex Instruction Set Computer) : CISC)
هدف از این معماری این بود که یک دستورالعمل برای هر عبارتی که در زبان سطح بالا نوشته شده باشد وجود داشته باشد. اما ثابت شد که هر چه تعداد دستورات و روش های آدرس دهی در کامپیوتر بیشتر باشد مدارهای سخت افزاری بیشتری برای پیاده کردن و پشتیبانی آنها لازم است و این امر سبب می گردد سرعت محاسبات کاهش یابد. بنابراین در این معماری تعداد دستورات بیشتر و پیچیده تر است اما برنامه نویسی آن بخصوص اسمبلی ساده تر شده و از طرفی سرعت اجرایی دستورات پایین تر آمده است.

معماری Reduced Instruction Set Computer) :RISC)
هدف از این معماری کوتاه کردن زمان اجرا، با کاهش مجموعه دستورات در کامپیوتر است. در این معماری جدید تعداد دستورات کاهش پیدا کرد و از طرفی سرعت اجرایی دستورات تقریبا ۱۰ برابر نسبت به معماری قبلی افزایش یافت و برنامه نویسی به زبان اسمبلی را قدری پیچیده و سخت کرد اما با وجود ساختار بهینه شده میکروکنترلرهای AVR با حافظه های ظرفیت بالا و همچنین استفاده از معماری RISC امکان برنامه نویسی به زبان سطح بالا مانند C و BASIC فراهم گردید.

فیوز بیت های میکرو کنترلر
فیوز بیت ها قسمتی از حافظه FLASH هستند که امکاناتی را در اختیار کاربر قرار می دهند. فیوز بیت ها با پاک کردن میکروکنترلر (ERASE) از بین نمی روند و می توانند توسط بیت های قفل مربوطه، قفل شوند. تغییر آنها فقط از طریق پروگرمر امکان پذیر است و برای تنظیم آنها نیاز به برنامه نویسی خاصی نداریم و موقع پروگرم کردن توسط ابزار نرم افزار Codevision یا BASCOM آنها را تنظیم و برنامه ریزی می کنیم. فیوز بیت ها با ۰ برنامه ریزی و با ۱ غیر فعال می شوند. توجه کنید که برنامه ریزی فیوزبیت ها باید قبل از قفل کردن تراشه صورت گیرد. میکرو کنترلر های AVR بسته به نوع قابلیتی که دارند دارای فیوز بیت های متفاوتی هستند.


مشاهده‌ی تمامی نوشته‌ها در گروه: جزوه های آموزشی.

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

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