لینک دانلود و خرید پایین توضیحات
فرمت فایل word و قابل ویرایش و پرینت
تعداد صفحات: 30
معماری میکروکنترلرهای AVR
میکروکنترلرهای AVR توسط شرکت Atmel طراحی و ساخته شدهاند. اولین قطعات از میکروکنترلرهای AVR در سال 1993 روانه بازار شد و بهزودی جای خود را در قلب طراحان مدارات میکروکنترلری باز کرد. نخستین قطعات که در این خانواده معرفی شدند، میکروکنترلرهای AVR در سری Sxxxx90AT بودند. ولی از آنجاییکه این قطعات نسبت به سایر میکروکنترلرهای AVR که بعداً در سری Mega ارائه شدند امکانات کمتری دارند، بهندرت از آنها استفاده میشود. شرکت Atmel همزمان با ارائه میکروکنترلرهای AVR در سری Mega اقدام به طراحی و تولید میکروکنترلرهای AVR در سری Tiny کرده است. این قطعات در بستهبندیهای کوچکتر نسبت به نمونههای قبلی و با امکانات فوقالعاده (امکاناتی که کمتر از سری Mega و حدوداً برابر با سری Sxxxx90 هستند) در ولتاژها و جریانهای مصرفی کم ارائه شدهاند و زمینه را برای طراحی مداراتی با توان مصرف فوقالعاده کم و کارایی بسیار بالا فراهم کردهاند.
هدف ما در این مقاله ارائه مباحث مربوط به سری Mega است که در این سری بهطور خاص روی قطعه 16ATMega تأکید بیشتری خواهیم داشت. دلیل انتخاب این قطعه وجود بسیاری از قابلیتهای تمامی سری Mega و پایه بودن آن است.
در این بخش معماری داخلی میکروکنترلرهای AVR مورد بررسی قرار میگیرد.
میکروکنترلرهای AVR دارای درگاه داده 8 بیتی و از نوع CMOS و با ساختار Risc هستند و در ساخت آنها معماری نوع Harward بهکار برده شده است. در این نوع معماری از باسهای سهگانه مجزا (آدرس ـ داده ـ کنترل) برای حافظه برنامه استفاده میشود. کاربرد ساختار Risc باعث میشد. که این قطعات دارای خصوصیات منحصربهفردی باشند، از آنجمله میتوان به سرعت بالا، سازگاری با کامپایلرهای زبانهای سطح بالا چون c و امکانات فراوان اشاره کرد. ساختار Risc برای اولینبار در سال 1970 میلادی برای معماری پردازشگرها معرفی شد. پیش از این، معماری Cisc متداولتر بوده است. برای اینکه تفاوتهای بین Cisc و Risc مشخص شود، در ادامه تفاوتهای کلی این دو نوع معماری بررسی میشود.
آنچه که در طراحی پردازشگرها از اهمیت ویژهای برخوردار است سرعت آنهاست. هرکدام از ساختارهای Cisc و Risc خط مشی متفاوتی را برای رسیدن به این هدف ارائه میکنند و طراحان پردازشگر نیز یکی از آنها را به دیگری ترجیح میدهند.
برخی از مزایای ساختار Cisc مانند استفاده از ریزدستورالعملهای سختافزاری، مجموعه دستورالعملهای زیاد و سطح بالا دلیل محکمی برای شرکتهای چون اینتل و موتورولا بود تا در نمونههای خود مانند پردازندههای سری 96x80 و میکروکنترلرهای سری 8051 و 96x80 و سری k68 از این نوع معماری بهره ببرند. استفاده از ریزدستورالعملهای سختافزاری برای ایجاد دستورالعملهای اصلی در زبان اسمبلی بسیار میکروکنترلرهای AVR دارای راحت بود و ساخت نرمافزار برای واحد کنترل را با هزینه کمتری امکانپذیر میساخت. سادگی استفاده از ریزدستورالعملها برای ایجاد دستورالعملهای جدید این اجازه را به طراحان ماشینهای Cisc میدهد که بهراحتی قطعات جدید سازگار با قطعات قبلی را با صرف انرژی کمتر طراحی کنند. کامپیوترهای جدید ساختهشده به این روش قادر هستند تا نرمافزارهای نوشتهشده برای کامپیوترهای قدیمی را اجرا کنند، چون این کامپیوترها دستورالعملهای کامپیوترهای قبلی را با همان کدهای عملیاتی دارا هستند و در عین حال در آنها از دستورالعملهای جدید نیز استفاده شده است.
از آنجا که هر دستورالعمل در ساختار Cisc از یک سری ریزدستورالعملهای سختافزاری قدرتمند ساخته شده است یک ماشین Cisc دستورات سطح بالاتری نسبت به یک ماشین Risc خواهد داشت. بنابراین میتوان یک الگوریتم خاص را با دستورالعملهای کمتر در ماشین Cisc اجرا کرد. درنتیجه حافظه کمتری برای ذخیره کدهای عملیاتی نرمافزار لازم خواهد بود.
زمانی که ماشینهای Cisc شروع به گسترش کردند مزیتهای گفته شده باعث بهبود عملکرد کامپیوترها میشد ولی بعد از مدتی طراحان فهمیدند ماشینهای Cisc مشکلاتی را به همراه دارند. اولین و بزرگترین مشکلی که در ماشینهای Cisc وجود داشت این بود که بهعلت تعدد دستورالعملها و پیچیدگی موجود در آنها کد عملیاتی مربوط به دستورالعملهای مختلف متغیر بود (طولی برابر با یک تا چندین بایت)؛ درنتیجه طول اشغالشده توسط هر دستورالعمل در حافظه برنامه اندازه متفاوتی پیدا میکرد. این موضوع و همچنین محدود بودن تعداد بیت در درگاه داده موجب میشد که پردازشگر چندین چرخه مکش دستورالعمل از حافظه را برای اجرای هر دستورالعمل انجام دهد. این امر به نوبه خود از یک طرف باعث پایین آمدن سرعت پردازشگرها و از سوی دیگر باعث یکسان نبودن زمان اجرای دستورالعملهای مختلف میشد. بنابراین عملاً امکان استفاده آسان از خط لوله دستورالعمل در ساختار چنین ماشینهایی از میان میرفت.
از طرف دیگر به دلیل بزرگ بودن سختافزار داخلی پردازشگرهای Cisc، ثباتهای قابل دسترس کمی در داخل آنها وجود داشت، درنتیجه در بیشتر دستورالعملهای منطقی و حسابی، از حافظه خارجی داده بهعنوان عملوند دوم این دستورات استفاده میشد که این مسأله نیز به نوبه خود باعث میشد که سرعت پردازشگرها تا حد سرعت حافظه خارجی پایین بیاید. در سال 1970 پیشرفتهای بهعملآمده در تکنولوژی نیمههادی باعث شد تا اختلاف سرعت میان پردازشگرها و حافظهها کمتر شود. همچنان که سرعت حافظهها افزایش پیدا میکرد، میل طراحان پردازشگرها برای طراحی پروسسورهایی با سرعتهای بالاتر بیشتر میشد و به این ترتیب بود که ساختار Risc متولد شد. با مراجعه به دستورالعملهای یک ماشین Risc درمییابیم که دستورالعملها در پردازشگرهای Risc سادهتر بوده و فرمت ثابتی دارند و درک آنها سخت بهنظر میرسد.
اگرچه در یک ماشین Risc اجرای بسیاری از دستورالعملها مدتی برابر یک یا دو پالس ساعت زمان میبرند، ولی عملاً، در ساختار آنها از آرایههای بزرگ گیتهای منطقی
مقاله درباره معماری میکروکنترلرهای AVR