امروزه با توجه به پیشرفت علم الکترونیک از میکروکنترلرها استفاده بیشتری می شود که این میکروکنترلرها دو مزیت بزرگ دارند : 1 سادگی مدار از نظر سخت افزاری 2 ارزان تمام شدن مدار .
میکروکنترلرها انواع مختلف و با زبان های برنامه نویسی مختلف از جمله Basic و C و...
می باشند که هر یک مزیتها و معایبی را دارند .
در این پروژه که جهت کنترل زمان روشن و خاموش شدن 4 موتور در خروجی یا به طور کلی 4 خروجی از میکروکنترلر AVR از نوع ATmega16 شرکت ATmel و توسط زبان Basic و در محیط Bascom طراحی شده است .
تاریخچه:
کلمه میکروکنترلر از دو نام که عبارتند از میکرو و کنترل تشکیل شده است که در تعریف میکرو باید گفت:واحدی یونانی ومعنای ان یک میلیونم است ومعنای کنترل هممانطور که همه میدانیم تحت نظارت داشتن کاری است.
با توجه به حرکت جوامع بشری به سوی هر چه کوچک تر کردن وسایل کاربردی, طراحان الکترونیک به طبعیت از این قانون سعی در کوچک کردن مدار کنترلی یک پروسه وکاهش هزینه های مربوط نمودند که این امر موجب پیداشی میکروکنترلرها به عنوان وسیله ای که دارایram,rom cpuوicI/oدر یک چیپ بود گردید.
اولین میکروکنترلر در سال1971توسط شرکت نام اشنای intel ساخته شد و این شرکت اولین میکروکنترلر کاربردی خود را در سال 1980با نام8080 روانه بازار کرد.
ما امروزه شاهد مدلهای گوناگونی از میکروکنترلر ها هستیم که مهمترین انها عبارتند از:
1-avr
2-pic
3-8051
اما تفاوت میکروکنترلهای 3 خانواده مزبور علاوه بر شکل ظاهریشان در برنامه نویسی مورد نیاز و پروگرامر انهاست به گونه ای که تنها با همان خانواده سازگاری دارد ,بدیهی است که توانایی برنامه نویسی یکی از اعضای این 3 خانواده قابل استفاده بودن همان برنامه را برای سایر اعضا چندان دور از دسترس نمیکند.
اما همانطور که در مبحث تاریخچه میکروپروسسور اشاره شد عیب بزرگ میکروکنترلرها در سرعت پایین انهاست,بله سرعت پایین شان,بدنست این موضوع را با یک مثال دنبال کنیم .سرعت گیت های منطقی(or,not.andو...)چیری در حدود چند نانو ثانیه است فرض کنید ورودی این گیت متناسب با سرعت ان در حال تغییر است وما میخواهیم خروجی گیتمان را به یک میکروکنترلر با سرعتی معادل چند میکرو ثانیه بدهیم شاهد ان خواهیم بود که در ازای هزار بار تغییرات ورودی گیتمان تنها میکرو میتواند یکی از انها را ثبت نمایی و اگر در مدار , ما نیاز به حساسیت بالای داشته باشیم خواهیم دید که این میکرو جواب گوی نیازمان نیست.
کاربرد ها:
میکروکنترلر ها به طور گسترده ای در تولید سیستم های تک منظوره به کار برده میشوند بد نیست که بدانید که یک سیستم تک منظوره بیانگر سیستمی است که از یک میکروپروسسور و یا میکروکنترلر فقط برای انجام یک پروسه استفاده میکند همانند ماوس کامپیوتر واما نمونه ای از یک سیستم چند منظوره در جلوی شماست بله کامپیوتر شما که در ان واحد می توانید در حالی که برنامه ای را در حال دانلود دارید به جستجو در صفحات وب و گوش دادن به موسیقی مورد علاقیتان با ان بپردازید .
این توانایی دریک سیستم چند منظوره به علت بکاربردن saftware یا همان نرم افزار است که معمولا در ramنوشته میشود در صورتی که در یک سیستم تک منظوره این کار در rom انجام میگیرد .
از کاربرد های متداول میکروکنترلر ها میتوان به استفاده از انها در کنترل از راه دور تلویزیون ,تلفن ,دوربین, پیرینتر ,سیستم های امنیتی,حفاظتی و.... اشاره کرد.
ما در هنگام خرید یک میکروکنترلر باید به چه نکاتی توجه کرد:
1.مهمترین موضوع سرعت.
- نوع بسته بندی یا به عبارت عامیانه تخت ویا سطح دار بودن انها.
3. توان مصرفی . - مقدا رحافظه های ram و rom و مقدار یکه میکرو از ان میتواند به عنوان external استفاده کند.
- قیمت تمام شده که شامل هزینه خرید میکرو ,طراحی برنامه و پروگرامر و.....میشود.
در سال 1980 با عرضه اولین میکرو کنترلر کاربردی از مبحث جدیدی تحت عنوان risc صحبت به میان امد که ما نیزبه طور خلاصه به ان خواهیم پرداخت.
تا قبل از دهه 1980 کلیه cpuها مبتنی بر ساختار cisc طراحی می گردیدند در این ساختار چند دستور کلیدی که کلیه عملیات را تحت پوشش قرار میداد وجود داشت در این روش به علت تعداد زیاد ترانز یستور پیچیدگی طراحی وساخت مدارباعث ابداع روش risc در 1980گردید که ویژگی های از زیر را داراست.
ثابت بودن اندازه دستور که بهcpu امکان سریعتر دیکد کردن دستورات را می دهد
2.استفاده ازروش store /lode, در این روش داده از حافظه به ریجیستر lode وبرعکس store وانتقال داده به طور مستقیم ازریجیستر به ریجیستر و از حافظه به حافظه امکان پذیر نیست.- تعداد ریجیستر ها در risc زیاد است اکثرا یک -32cpu ریحیستری, 32 بیتی است .
4.در این روش تعداد دستورات پایه کم است و کاربر باید به کمک این دستورات دیگر را بسازد بنابراین طول برنامه زیاد می شود پس استفاده از این روش در برنامه های سطح بالا راحت تر است. - برتری اصلی این روش دراجرای 95%دستورات دریک کلاک وما بقیه در دو کلاک است که باعث افزایش سرعت وکاهش ترانزیستور ها وسادگی در طراحی میگردد.
- چون در ciscتعداد دستور ها زیاد است بیش از60% ترانزیستور ها جهت پیاده سازی دستورات روی cpu مصرف میگردد در حالی که در riscزیر دستور ها با استفاده از hard wareتوسط 10%از ترانزیستور ها پیاده سازی میشود.
اما مشکل risc در این است که برنامه MC DOS بر روی ان قابل اجرا نمی باشد بنابر این در cpu های کامپیوتر ها از پردازنده هایی مبتنی بر cisc استفاده می شود.
تاریخچه میکروکنترلر های PIC
شرکت General Instrument مبتکر اصلی ساخت و استفاده از CPU 16 بیتی با نام CP1600 بود.در حالی که این CPU بطور کلی از نظر عملکرد از عملکرد خوبی برخوردار بود اما به سبب ضعف در کارایی پورتهای ورودی و خروجی این شرکت PIC هشت بیتی را در سال 1975 برای بهبود کلی در سرتا سر سیستم بوسیله حذف وظایف پورتهای ورودی و خروجی از CPU بوجود آورد. این کار با استفاده از یک ذخیره سازی ساده Microcode در ROM انجام پذیرفت اگر چه هم اکنون از این تکنولوژی در ساخت PIC استفاده نمی شود.
در حال حاضر علامت تجاری PIC و PICmicro برای شرکت MICROCHIP Technology ثبت شده و میکروکنترلر های PIC توسط این شرکت تولید می شود.
PIC ابتدایی از سر کلمات "Peripheral Interface Controller" توسط شرکت General Instrument گرفته شده بود.برای PIC پیشرفته تر همچون PIC1640 و PIC1650 از سر کلمات "Programmable Interface Controller" استفاده شده است.
در حال حاظر با توجه به قدرتمندی این میکروکنترلر ، PIC از سرکلمات با معنی واقعی "Programmable Intelligent Computer" به معنای کامپیوتر هوشمند قابل برنامه ریزی نشات گرفته شده است.
انواع خانواده PIC از نظر ساختار هسته
12 هسته ای Baseline Core
14 هسته ای Mid-Range Core
16 هسته ای High End Core
مختصری راجع به AVR
زبانهای سطح بالا یا همان (HIGH LEVEL LANGUAGES) HLL به سرعت در حال تبدیل شدن به زبان برنامه نویسی استاندارد برای میکرو کنترلرها (MCU) حتی برای میکروهای 8 بیتی کوچک هستند . زبان برنامه نویسی BASIC و C بیشترین استفاده را در برنامه نویسی میکروها دارند ولی در اکثر کاربردها کدهای بیشتری را نسبت به زبان برنامه نویسی اسمبلی تولید می کنند . ATMEL ایجاد تحولی در معماری ، جهت کاهش کد به مقدار مینیمم را درک کرد که نتیجه این تحول میکرو کنترلرهای AVR هستند که علاوه بر کاهش و بهینه سازی مقدار کدها به طور واقع عملیات را تنها در یک کلاک سیکل توسط معماری ( REDUCED RISC INSTRUCTION SET COMPUTER) انجام می دهند و از 32 ریجیستر همه منظوره (ACCUMULATORS) استفاده می کنند که باعث شده 4 تا 12 بار سریعتر از میکروهای موزد استفاده کنونی باشند .
تکنولوژی حافظه کم مصرف غیر فرّار شرکت ATMEL برای برنامه ریزی AVR ها مورد استفاده قرار گرفته است در نتیجه حافظه های FLASH و EEPROM در داخل مدار قابل برنامه ریزی (ISP) هستند . میکروکنترلرهای اولیه AVR دارای 1 ، 2 ، 8 کییوبایت حافظه FLASH و به صورت کلمات 16 بیتی سازماندهی شده بودند .
AVR ها به عنوان میکروهای RISC با دستورات فراوان طراحی شده اند که باعث میشود حجم کد تولید شده کم و سرعت بالاتری به دست آید .
عملیات تک سیکل :
با انجام تک سیکل دستورات ، کلاک اسیلاتور با کلاک داخلط سیستم یکی می شود . هیچ تقسیم کننده ای در داخل AVR قرار ندارد که ایجاد اختلاف فاز کلاک کند . اکثر میکروها کلاک اسیلاتور به سیستم را با نسبت 1:4 یا 1:12 تقسیم می کنند که
خود باعث کاهش سرعت می شود . بنابراین AVR ها 4 تا 12 بار سریعتر و مصرف
آنها نیز 4-12 بار نسبت به میکروکنترلرهای مصرفی کنونی کمتر است زیرا در تکنولژی CMOS استفاده شده در میکروهای AVR ، مصرف توان سطح منطقی متناسب با فرکانس است .
نمودار زیر افزایش (MILLION INSSTRUCTION PER SECONDS) MIPS را به علت انجام عملیات تک سیکل AVR (نسبت 1:1 ) در مقایسه با نسبتهای 1:4 و 1:12 دی دیگر میکروها را نشان می دهد .
نمودار مقایسه افزایش
MIPS/POWER Consumption در AVR با دیگر میکرو کنترلرها .
شامل 40 صفحه فایل word قابل ویرایش
دانلود تحقیق میکرو کنترلر ها