فرمت فایل :power point( قابل ویرایش) تعداد اسلاید:63 اسلاید
مقدمه ای بر AVR
AVR انواع میکرو کنترلرهای
پاورپوینت درباره میکروکنترلرهای AVR
فرمت فایل :power point( قابل ویرایش) تعداد اسلاید:63 اسلاید
مقدمه ای بر AVR
AVR انواع میکرو کنترلرهای
لینک پرداخت و دانلود *پایین مطلب*
فرمت فایل:Word (قابل ویرایش و آماده پرینت)
تعداد صفحه: 31
معماری میکروکنترلرهای AVR
میکروکنترلرهای AVR توسط شرکت Atmel طراحی و ساخته شدهاند. اولین قطعات از میکروکنترلرهای AVR در سال 1993 روانه بازار شد و بهزودی جای خود را در قلب طراحان مدارات میکروکنترلری باز کرد. نخستین قطعات که در این خانواده معرفی شدند، میکروکنترلرهای AVR در سری Sxxxx90AT بودند. ولی از آنجاییکه این قطعات نسبت به سایر میکروکنترلرهای AVR که بعداً در سری Mega ارائه شدند امکانات کمتری دارند، بهندرت از آنها استفاده میشود. شرکت Atmel همزمان با ارائه میکروکنترلرهای AVR در سری Mega اقدام به طراحی و تولید میکروکنترلرهای AVR در سری Tiny کرده است. این قطعات در بستهبندیهای کوچکتر نسبت به نمونههای قبلی و با امکانات فوقالعاده (امکاناتی که کمتر از سری Mega و حدوداً برابر با سری Sxxxx90 هستند) در ولتاژها و جریانهای مصرفی کم ارائه شدهاند و زمینه را برای طراحی مداراتی با توان مصرف فوقالعاده کم و کارایی بسیار بالا فراهم کردهاند.
هدف ما در این مقاله ارائه مباحث مربوط به سری Mega است که در این سری بهطور خاص روی قطعه 16ATMega تأکید بیشتری خواهیم داشت. دلیل انتخاب این قطعه وجود بسیاری از قابلیتهای تمامی سری Mega و پایه بودن آن است.
در این بخش معماری داخلی میکروکنترلرهای AVR مورد بررسی قرار میگیرد.
میکروکنترلرهای AVR دارای درگاه داده 8 بیتی و از نوع CMOS و با ساختار Risc[1] هستند و در ساخت آنها معماری نوع Harward بهکار برده شده است. در این نوع معماری از باسهای سهگانه مجزا (آدرس ـ داده ـ کنترل) برای حافظه برنامه استفاده میشود. کاربرد ساختار Risc باعث میشد. که این قطعات دارای خصوصیات منحصربهفردی باشند، از آنجمله میتوان به سرعت بالا، سازگاری با کامپایلرهای زبانهای سطح بالا چون c و امکانات فراوان اشاره کرد. ساختار Risc برای اولینبار در سال 1970 میلادی برای معماری پردازشگرها معرفی شد. پیش از این، معماری Cisc[2] متداولتر بوده است. برای اینکه تفاوتهای بین Cisc و Risc مشخص شود، در ادامه تفاوتهای کلی این دو نوع معماری بررسی میشود.
آنچه که در طراحی پردازشگرها از اهمیت ویژهای برخوردار است سرعت آنهاست. هرکدام از ساختارهای Cisc و Risc خط مشی متفاوتی را برای رسیدن به این هدف ارائه میکنند و طراحان پردازشگر نیز یکی از آنها را به دیگری ترجیح میدهند.
برخی از مزایای ساختار Cisc مانند استفاده از ریزدستورالعملهای سختافزاری، مجموعه دستورالعملهای زیاد و سطح بالا دلیل محکمی برای شرکتهای چون اینتل و موتورولا بود تا در نمونههای خود مانند پردازندههای سری 96x80 و میکروکنترلرهای سری 8051 و 96x80 و سری k68 از این نوع معماری بهره ببرند. استفاده از ریزدستورالعملهای سختافزاری برای ایجاد دستورالعملهای اصلی در زبان اسمبلی بسیار میکروکنترلرهای AVR دارای راحت بود و ساخت نرمافزار برای واحد کنترل را با هزینه کمتری امکانپذیر میساخت. سادگی استفاده از ریزدستورالعملها برای ایجاد دستورالعملهای جدید این اجازه را به طراحان ماشینهای Cisc میدهد که بهراحتی قطعات جدید سازگار با قطعات قبلی را با صرف انرژی کمتر طراحی کنند. کامپیوترهای جدید ساختهشده به این روش قادر هستند تا نرمافزارهای نوشتهشده برای کامپیوترهای قدیمی را اجرا کنند، چون این کامپیوترها دستورالعملهای کامپیوترهای قبلی را با همان کدهای عملیاتی دارا هستند و در عین حال در آنها از دستورالعملهای جدید نیز استفاده شده است.
از آنجا که هر دستورالعمل در ساختار Cisc از یک سری ریزدستورالعملهای سختافزاری قدرتمند ساخته شده است یک ماشین Cisc دستورات سطح بالاتری نسبت به یک ماشین Risc خواهد داشت. بنابراین میتوان یک الگوریتم خاص را با دستورالعملهای کمتر در ماشین Cisc اجرا کرد. درنتیجه حافظه کمتری برای ذخیره کدهای عملیاتی نرمافزار لازم خواهد بود.
زمانی که ماشینهای Cisc شروع به گسترش کردند مزیتهای گفته شده باعث بهبود عملکرد کامپیوترها میشد ولی بعد از مدتی طراحان فهمیدند ماشینهای Cisc مشکلاتی را به همراه دارند. اولین و بزرگترین مشکلی که در ماشینهای Cisc وجود داشت این بود که بهعلت تعدد دستورالعملها و پیچیدگی موجود در آنها کد عملیاتی[3] مربوط به دستورالعملهای مختلف متغیر بود (طولی برابر با یک تا چندین بایت)؛ درنتیجه طول اشغالشده توسط هر دستورالعمل در حافظه برنامه اندازه متفاوتی پیدا میکرد. این موضوع و همچنین محدود بودن تعداد بیت در درگاه داده موجب میشد که پردازشگر چندین چرخه مکش دستورالعمل از حافظه را برای اجرای هر دستورالعمل انجام دهد. این امر به نوبه خود از یک طرف باعث پایین آمدن سرعت پردازشگرها و از سوی دیگر باعث یکسان نبودن زمان اجرای دستورالعملهای مختلف میشد. بنابراین عملاً امکان استفاده آسان از خط لوله دستورالعمل در ساختار چنین ماشینهایی از میان میرفت.
از طرف دیگر به دلیل بزرگ بودن سختافزار داخلی پردازشگرهای Cisc، ثباتهای قابل دسترس کمی در داخل آنها وجود داشت، درنتیجه در بیشتر دستورالعملهای منطقی و حسابی، از حافظه خارجی داده بهعنوان عملوند دوم این دستورات استفاده میشد که این مسأله نیز به نوبه خود باعث میشد که سرعت پردازشگرها تا حد سرعت حافظه خارجی پایین بیاید. در سال 1970 پیشرفتهای بهعملآمده در تکنولوژی نیمههادی باعث شد تا اختلاف سرعت میان پردازشگرها و حافظهها کمتر شود. همچنان که سرعت حافظهها افزایش پیدا میکرد، میل طراحان پردازشگرها برای طراحی پروسسورهایی با سرعتهای بالاتر بیشتر میشد و به این ترتیب بود که ساختار Risc متولد شد. با مراجعه به دستورالعملهای یک ماشین Risc درمییابیم که دستورالعملها در پردازشگرهای Risc سادهتر بوده و فرمت ثابتی دارند و درک آنها سخت بهنظر میرسد.
اگرچه در یک ماشین Risc اجرای بسیاری از دستورالعملها مدتی برابر یک یا دو پالس ساعت زمان میبرند، ولی عملاً، در ساختار آنها از آرایههای بزرگ گیتهای منطقی استفاده شده است که در نگاه اول عامل تأخیر بیشتر در اجرای این دستورالعملها بهنظر میرسند. در عمل، این تأخیرها وجود دارد، تا حدی که شاید اگر بخواهیم بهطور معمول از این دستورالعملها استفاده کنیم مدتی بیشتر از 2 الی 3 پالس ساعت زمان ببرد. ولی مستقل بودن کامل دستورالعملها از همدیگر امکان استفاده از ساختاری بهنام خط لوله دستورالعمل را بهدست میدهد. مفهوم خط لوله دستورالعمل این است که قبل از حصول نتایج کامل یک دستورالعمل، میتوان دستورالعملهای بعدی را کدگشایی و برای اجرا آماده کرد. بهعبارت دیگر زمانی که یک دستورالعمل در حال اجراست، دستورالعملهای بعدی مکش و کدگشایی میشوند. خط لوله دستورالعمل باعث میشود، عملیات لازم برای انجام 2 الی 3 دستورالعمل به موازات همدیگر انجام شود و درنتیجه زمان اجرای واقعی دستورالعملها پایین بیاید. همچنین ساختار Risc موجب آسانتر شدن ساخت ثباتهای داخلی میشود که درنتیجه تمام عملیات حسابی و منطقی در داخل ALU و بدون دخالت حافظه خارجی داده انجام میگیرد. بنابراین این ثباتها خود ALU هستند که عملوند دستورات را در معماری Risc میسازند.
پس دلایلی همچون:
باعث شده که در بسیاری موارد در طراحی پردازشگرهای امروزی، ساختار Risc بر معماری Cisc ترجیح داده شود. لازم به ذکر است که از سال 1990 به بعد معماریهای جدیدی همچون ARM[4]، M-Core و... معرفی شدهاند که مجال بحث در مورد آنها از عهده این مقاله و حوصله خوانندگان خارج است.
امکانات داخلی 16 Mega
امکانات موجود در هر دو نوع بستهبندی تقریباً مشابه همدیگر بوده و بهطور خلاصه شامل این موارد است:
سازماندهی حافظه
الفـ حافظه برنامه
میکروکنترلر 16Mega برای حافظه برنامه خود از 16 کیلوبایت یا 8 کیلو کلمه حافظه Flash استفاده میکند. این حافظه از طریق یک خط لوله تکمرحلهای به هسته اصلی AVR متصل است و زمانی که یک دستورالعمل در حال انجام است، دستورالعمل بعدی از حافظه Flash به درون CPU مکش میشود.
دستورالعملهای استفادهشده در میکروکنترلرهای AVR طولی برابر 2 یا 4 بایت را در حافظه برنامه اشغال میکنند. به همین دلیل حافظه FLASH در این میکروکنترلرها بهصورت دوبایتی (1 کلمه) پیکربندیشده و MCU میتواند در هر پالس ساعت به دو بایت از حافظه برنامه دسترسی داشته ابشد. براساس PC (شمارنده برنامه) در میکروکنترلرها AVR به آدرس یک کلمه در حافظه برنامه اشاره میکند. درنتیجه در قطعه 16 Mega حافظه برنامه ظرفیتی برابر 16× k8 داشته و شمارنده برنامه با 13 بیت ساخته شده است.
حافظه برنامه در تمام میکروکنترلرهای AVR در سری Mega به دو بخش کاربردی و Boot loader تقسیمبندی میشود که هر کدام ویژگیهای مخصوص به خود را داشته و برای منظور خاصی مورد استفاده قرار میگیرد. لازم به ذکر است که حافظه برنامه یا همان FLASH به اندازه تقریبی 10000 بار قابلیت پاک شدن یا نوشتن دارد و ذخیره دادهها بر روی آن برای مدت 10 سال پس از آخرین برنامهریزی ضمانت شده است. حافظه FLASH به همراه حافظه EEPROM به 4 طریق مختلف قابلیت برنامهریزی دارد:
لینک پرداخت و دانلود *پایین مطلب*
فرمت فایل:Word (قابل ویرایش و آماده پرینت)
تعداد صفحه33
بخشی از فهرست مطالب
آشنایی با میکرو کنترلرها2………………………………………………………
سیر تکاملی میکرو کنترلرها3……………………………….……………………
معماری داخلی میکرو کنترلرها5.…………………………………………………
مقدمه ای بر میکروکنترلرهای AVR : 8
نکات کلیدی و سودمند مدل Mega : 12
نکات کلیدی وسودمند مدل LCD : 11
نکات کلیدی و سودمند حافظه ی فلش خود برنامه ریز: 13
راههای مختلف برای عمل برنامه ریزی: 13
پروگرامرهایی که AVR های خاصی را پشتیبانی می کنند: 14
مقایسه ریز پردازنده و میکرو کنترلر 15……...………………...............................
آشنایی با میکرو کنترلرها
میکروکنترلرها یکی از قطعات پرکاربرد الکترونیکی در صنایع گوناگون و مصارف شخصی می باشند که در بین علاقه مندان الکترونیک بسیار محبوب هستند. در واقع یک میکروکنترلر یک CPU مانند CPU ی کامپیوتر شماست همراه با مدارات و قطعاتی که برای کار آن ضروری است به اضافه مداراتی که امکاناتی را به آن اضافه می کند و اینها همگی در کنار هم و در یک تراشه جمع شده اند. در واقع میکروکنترلرها برنامه هایی را که برایشان نوشته شده و در داخل آنها قرار داده شده را اجرا می کنند. این برنامه ها دقیقا شبیه برنامه هایی است که در کامپیوترهای شخصی با زبانهایی مثل اسمبلی ، C ، بیسیک یا پاسکال نوشته می شوند.
میکرو کنترلرها از ابتدا تا کنون پیشرفتهای زیادی داشته اند و هم اکنون تولید کنندگان زیادی آنها را در مدلهای مختلف و با کارکردهای مختلف می سازند. بعضی از مهمترین تولید کنندگان عباتند از Atmel و Microchip .
همانطور که ذکر شد در داخل میکرو کنترلرها علاوه بر CPU (که عموما دارای گذرگاه داده 8 بیت است) مدارات دیگری نیز وجود دارند که بسته به تولید کننده و مدل آن متفاوت است. این مدارات ممکن است شامل نوسان ساز ساعت سیستم، حافظه Flash برای ذخیره برنامه، حافظه RAM ، حافظه EEPROM / Flash برای داده، شمارنده / تایمر، پورت سریال، مقایسه کننده آنالوگ، مبدل آنالوگ به دیجیتال / دیجیتال به آنالوگ، PWM ، پورت USB و... باشد.
لینک پرداخت و دانلود *پایین مطلب*
فرمت فایل:Word (قابل ویرایش و آماده پرینت)
تعداد صفحه17
فهرست مطالب مقدمه عملیات تک سیکل
مختصری در مورد AVR
طراحی برای زبانهای BASIC و C
میکروکنترلرهای MEGAAVR
1-1 خصوصیات ATMEGA323 و ATMEGA323L
4- 1 خصوصیات ATMEGA163L , ATMEGA163
5- 1 خصوصیات ATMEGA8L , ATMEGA8
مقدمه
فصل یک در موردانواع میکروکنترلرهای MEGAAVR است که سعی شده است به طور کلی توضیح داده شود . در فصل دوم شاهد توضیحاتی در مورد عملکرد پروژه ساخت (مدار الکترونیکی ، قطعات تشکیل دهنده ، برنامه مورد استفاده وتوضیحات کامل کننده است . درفصل آخر شاهد مدارات داخلی آی سی های مورد استفاده در این پروژه خواهیم بود .
این مدار یک ولوم دیجیتال است که دارای دو خروجی مونو است ،همچنین میتوان به صورت استریو از آن بهره برد، که بعدا به طور کامل توضیح داده خواهد شد .
مختصری در مورد AVR
زبانهای سطح بالا یا همان HLL (HIGH LEVEL LANGUAGES) به سرعت در حال تبدیل شدن به زبان برنامه نویسی استاندارد برای میکروکنترلر های (MCU) حتی برای میکروهای 8 بیتی کوچک هستند . زبان برنامه نویبی BASIC و C بیشترین استفاده را در برنامه سازی دارند ولی در اکثر کاربردها کدهای بیشتری را نسبت به زبان برنامه نویسی اسمیلی تولید می کنند .
ATMEL ایجاد تحولی در معماری ، جهت کاهش کد به مقدار مینیمم رادرک کرد که نتیجه این تحول میکروکنترلرهای AVR هستند که علاوه بر کاهش وبهینه سازی مقدار کدها به طور واقع عملیات را تنها در یک کلاک سیکل توسط معماری (REDUCED RISC INSTRUCTION SET COMPUTER) انجام میدهند واز 32 رجیستر همه منظوره (ACCUMULATORS) استفاده می کنند که باعث شده 4 تا 12 بار سریعتر میکروهای مورد استفاده کنونی باشند.
تکنولوژی حافظه کم مصرف غیر فرار شرکت ATMEL برای برنامه ریزی AVR ها مورد استفاده قرار گرفته است در نتیجه حافظه های FLASH و EPROM در داخل مداار قابل برنامه ریزی (ISP) هستند . میکروکنترلرهای اولیه AVR دارای 1، 2و 8 کیلوبایت حافظه FLASH وبه صورت کلمات 16 بیتی سازماندهی شده بودند.
AVR ها به عنوان میکروهای RISC با دستورات فراوان طراحی شده اند که باعث می شود حجم کد تولید شده کم وسرعت بالاتری بدست آید.
عملیات تک سیکل
باانجام تک سیکل دستورات ،کلاک داخلی سیستم یکی می شود. هیچ تقسیم کنننده ای درداخل AVR قرار ندارد که ایجاد اختلاف فاز کلاک کند. اکثر میکرو ها کلاک اسیلاتور به سیستم را با نسبت 1:4 یا 1:12 تقسیم می کنند که خود باعث کاهش سرعت می شود . بنابراین AVR ها 4 تا 12 بار سریعتر و مصرف آنها نیز 4-12 بار نسبت به میکروکنترلرهای مصرفی کنونی کمتر است زیرا در تکنولوژی CMOS استفاده شده در میکروهای AVR ، مصرف توان سطح منطقی متناسب با فرکانس است .
طراحی برای زبانهای BASIC و C
زبانهای BASIC و C بیشترین استفاده در دنیای امروز به عنوان زبانهای HLL دارند . تا امروزه معماری
مقدمه
فصل یک در موردانواع میکروکنترلرهای MEGAAVR است که سعی شده است به طور کلی توضیح داده شود . در فصل دوم شاهد توضیحاتی در مورد عملکرد پروژه ساخت (مدار الکترونیکی ، قطعات تشکیل دهنده ، برنامه مورد استفاده وتوضیحات کامل کننده است . درفصل آخر شاهد مدارات داخلی آی سی های مورد استفاده در این پروژه خواهیم بود .
این مدار یک ولوم دیجیتال است که دارای دو خروجی مونو است ،همچنین میتوان به صورت استریو از آن بهره برد، که بعدا به طور کامل توضیح داده خواهد شد .
مختصری در مورد AVR
زبانهای سطح بالا یا همان HLL (HIGH LEVEL LANGUAGES) به سرعت در حال تبدیل شدن به زبان برنامه نویسی استاندارد برای میکروکنترلر های (MCU) حتی برای میکروهای 8 بیتی کوچک هستند . زبان برنامه نویبی BASIC و C بیشترین استفاده را در برنامه سازی دارند ولی در اکثر کاربردها کدهای بیشتری را نسبت به زبان برنامه نویسی اسمیلی تولید می کنند .
ATMEL ایجاد تحولی در معماری ، جهت کاهش کد به مقدار مینیمم رادرک کرد که نتیجه این تحول میکروکنترلرهای AVR هستند که علاوه بر کاهش وبهینه سازی مقدار کدها به طور واقع عملیات را تنها در یک کلاک سیکل توسط معماری (REDUCED RISC INSTRUCTION SET COMPUTER) انجام میدهند واز 32 رجیستر همه منظوره (ACCUMULATORS) استفاده می کنند که باعث شده 4 تا 12 بار سریعتر میکروهای مورد استفاده کنونی باشند.
تکنولوژی حافظه کم مصرف غیر فرار شرکت ATMEL برای برنامه ریزی AVR ها مورد استفاده قرار گرفته است در نتیجه حافظه های FLASH و EPROM در داخل مداار قابل برنامه ریزی (ISP) هستند . میکروکنترلرهای اولیه AVR دارای 1، 2و 8 کیلوبایت حافظه FLASH وبه صورت کلمات 16 بیتی سازماندهی شده بودند.
AVR ها به عنوان میکروهای RISC با دستورات فراوان طراحی شده اند که باعث می شود حجم کد تولید شده کم وسرعت بالاتری بدست آید.
عملیات تک سیکل
باانجام تک سیکل دستورات ،کلاک داخلی سیستم یکی می شود. هیچ تقسیم کنننده ای درداخل AVR قرار ندارد که ایجاد اختلاف فاز کلاک کند. اکثر میکرو ها کلاک اسیلاتور به سیستم را با نسبت 1:4 یا 1:12 تقسیم می کنند که خود باعث کاهش سرعت می شود . بنابراین AVR ها 4 تا 12 بار سریعتر و مصرف آنها نیز 4-12 بار نسبت به میکروکنترلرهای مصرفی کنونی کمتر است زیرا در تکنولوژی CMOS استفاده شده در میکروهای AVR ، مصرف توان سطح منطقی متناسب با فرکانس است .
طراحی برای زبانهای BASIC و C
زبانهای BASIC و C بیشترین استفاده در دنیای امروز به عنوان زبانهای HLL دارند . تا امروزه معماری بیشتر میکروها برای زبان اسمبلی طراحی شده است و کمتر از زبانهای HLL حمایت کرده اند .
هدف ATMEL طراحی معماری بود که هم برای زبان اسمبلی وهم زبانهای HLL مفید باشد . به طور مثال درزبانهای BASIC و C می توان یک متغیر محلی به جای متغیر سراسری در داخل زیر برنامه تعریف کرد .در این صورت فقط در زمان اجرای زیر برنامه مکانی از حافظه RAM برای متغیر اشغال می شود در صورتی که اگر متغیری به عنوان سراسری تعریف گردد در تمام وقت مکانی از حافظه FLASH ROM را اشغال کرده است .
برای دسترسی سریعتر به متغیرهای محلی و کاهش کد ، نیاز به افزایش رجیسترهای همه منظوره است . AVR ها دارای 32 رجیستر هستند که مستقیما به ALU متصل شده اند ، وتنها در یک کلاک سیکل به این واحد دسترسی پیدا می کنند . سه جفت از این رجیسترها می توانند بعنوان رجیسترهای 16 بیتی استفاده شوند .
20 صفحه فایل ورد قابل ویرایش