ریزکنترلگر ایویآر
اِیویآر (به انگلیسی: AVR)، خانوادهای از ریزکنترلگرهای جدید است که شرکت اتمل، آن را روانهٔ بازار الکترونیک کردهاست. این ریزکنترلگرهای هشت بیتی به خاطر دارا بودن قابلیت برنامهنویسی توسط کامپایلر زبانهای برنامهنویسی سطح بالا، مورد توجه قرار میگیرند. این ریزکنترلگرها از معماری ریسک برخوردارند. همچنین شرکت اتمل کوشیدهاست تا با استفاده از معماری پیشرفته و دستورهای بهینه، حجم کد تولید شده را پایین آورده و سرعت اجرای برنامه را بالا ببرد. یکی از مشخصات این نوع ریزکنترلگرها دارا بودن ۳۲ ثبات همه منظوره است. همچنین در این ریزکنترلگرها، از حافظههای کم مصرف و غیر فرار فلش و ایایپیرام استفاده میشود.
کامپایلرهایی به زبان بیسیک و C که زبانهایی پرکاربردی در دنیا محسوب میشوند: برای این نوع ریزکنترلگرها طراحی شدهاست. البته در حال حاضر استفاده از کامپایلر بسکام BAScom که نسبت به زبان c بسیار راحتتر و سریع تر عمل میکند جایگزین زبان c شدهاست. همچنین زبان اسمبلی را نیز میتوان برای برنامهنویسی به کار برد. برای نمونه کامپایلر بسکام با زبان بیسیک برای برنامهنویسی این نوع از ریزکنترلگرها میتواند به کار رود. همچنین نرمافزار CodeVision، برای برنامهنویسی به زبان C (سازگار با این ریزکنترلگرها) بسیار رایج است (البته این برنامه بیشتر میان کاربران ایرانی رواج دارد، در میان کاربرهای خارجی کمتر دیده شده و بیشتر از برنامهٔ رسمی شرکت Atmel استفاده میشود).
پیشینه
میکروکنترلر ایویآر در سال ۱۹۹۶ توسط شرکت اتمل ساختهشد. معماری ریزکنترلگر توسط Alf-Egil Bogen و Vegard Wollan دانشجویان دانشگاه صنعتی نروژ طراحی شد.[1] واحد میکروکنترلگر اصلی ایویآر در خانه ASIC محلی تروندهایم نروژ که Nordic VLSI نامیده میشد (اکنون Nordic Semiconductor) جایی که Vegard و Bogan به عنوان دانشجو فعالیت میکردند طراحی گردید.
شرکت اتمل میگوید نام ایویآر یک مخفف نیست به نام خاصی اشاره نمیکند. سازندگان ایویآر پاسخ مشخصی به این پرسش ندادند. اما به هر صورت به نظر میرسد که این نام مخفف (به انگلیسی: Alf (Egil Bogen) and Vegard (Wollan)'s RISC processor) است.
انواع ریزکنترلگرهای AVR
میکروکنترلرهای خانواده AVR بر اساس معماری ماشین تعدیل شدهٔ هاروارد (Modified Harvard) میباشد، جایی که برنامه اصلی میکروکنترلر و اطلاعات ذخیره میگردد در فضایی جداگانه و با آدرسهای جدا از همدیگر میباشند اما میکروکنترلرهای آی وی آر قابلیت خواندن اطلاعات را از حافظه برنامه با استفاده از دستوارت مخصوصی دارا میباشد.
خانوادههای اصلی AVR
- TinyAVR - سری ATtiny
- ۰٫۵–۱۶ کیلوبایت حافظه برنامه
- بستهبندی ۶–۳۲ پایه
- لوازم جانبی محدودتر
- megaAVR - سری ATmega
- ۴–۲۵۶ کیلوبایت حافظه برنامه
- بستهبندی ۲۸–۱۰۰ پایه
- راهنماهای بیشتر
- لوازم بیشتر
- classic AVR (از نظر امکانات بین دو گروه بالا) مثل AT90S8535
- Xmega - سری ATxmega
- ۸–۳۸۴ کیلوبایت حافظه برنامه
- بستهبندی ۳۲-۴۴-۶۴-۱۰۰ پایه
- بهبود کارکرد
- لوازم جانبی زیاد به دلیل وجود ADCها
- AVR کاربرد خاص
- مانند سری MegaAVR اما با ویژگیهای افزوده مانند کنترلر کنترلر ال سی دی، کنترلر USB و ...
- FPSLIC (اِی وی آر همراه با مدار مجتمع دیجیتال برنامهپذیر)
- مدار مجتمع دیجیتال برنامهپذیر ۵هزار تا ۴۰هزار گِیت
- حافظه SRAM برای کد برنامه اِی وی آر
- هسته اِی وی آر تا ۵۰ مگاهرتس[2]
- AVR 32 بیت
در سال ۲۰۰۶ شرکت اتمل میکرو کنترلرهایی را ارائه نمود که اساس معماری آنها ۳۲ بیتی (AVR32) بود، که این سری از میکروکنترلرها شامل یک دستور چند داده(SIMD) و پردازشگر سیگنال دیجیتال(DSP) بود که به تنهایی قادر به پردازش صدا و تصویر میباشند. این میکروکنترلرهای ۳۲ بیتی به منظور رقابت با ریزپردازندههای بر اساس معماری ARM تولید شد، دستورالعملهای این میکرو بر اساس معماری هستههای RISC میباشد، در حالی که به هیچ وجه دستوارت میکروکنترلرها AVR32 و هیچکدام از میکروهای ARM یکی نمیباشد.
ساختار و بخشهای میکروکنترلرهای AVR
در تمامی میکرو کنترهای AVR بخشهای Flash و SRAM و EEPROM همگی در یک چیپ آی سی قرار دارند و برای انتخاب و اتصال حافظههای خارجی نیازمند برنامهنویسی میباشد. بعضی از شمارههای میکروکنترلرها دارای یک تعداد پایه خروجی به عنوان BUS برای اتصال موازی حافظه خارجی به میکرو کنترلر میباشند. همچنین اکثر میکروهای AVR (به غیر از بعضی شمارههای ATtiny) دارای رابط سریال میباشند که از آنها میتوان برای اتصال میکرو به EEPROM یا حافظه خارجی سریال با ظرفیت بیشتر استفاده نمود.
پورتهای ورودی و خروجی GPIO
درگاهها ورودی / خروجی (I/O )به سیگنالهای دیجیتال بیرونی امکان میدهند که با میکرو کنترلر ارتباط پیدا کند. درگاههای I/O معمولاً به صورت گروههای 8 بیتی دستهبندی میشوند و به هر گروه نیز نام خاصی اطلاق میشود. به عنوان مثال، میکروکنترلر mega32 دارای 32 درگاه ورودی / خروجی میباشد که PB, PA, PD, PC نامیده میشوند. در تعدادی از میکرو کنترلرها، جهت خطوط درگاه I/O قابل برنامهریزی میباشد . لذا بیتهای مختلف یک درگاه را میتوان به صورت ورودی یا خروجی برنامهریزی نمود. در برخی دیگر از میکروکنترلرها (از جمله میکروکنترلرهای AVR) درگاههای I/O به صورت دو طرفه میباشند. هر خط از درگاه I/O این گونه میکرو کنترلرها را میتوان به صورت ورودی یا خروجی مورد استفاده قرار داد . معمولاً، این گونه خطوط خروجی، به همراه مقاومتهای بالا کش بیرونی به کار برده میشوند.
یک پورت از ۸ عدد پین تشکیل شدهاست که هر کدام از این پینها دارای یک مقدار مشخص شده میباشد . مثلاً Portb میکرو کنترلر avr از ۸ عدد پین که هر کدام دارای مقدار مشخص میباشد . مثلاً پورت B در میکرو از ۸ پایه تشکیل شدهاست که برای هر پایه نامی مشخص شدهاست.
به پایه شماره ۱ از پورت PB0 گفته میشود.
به پایه شماره ۲ از پورت PB1 گفته میشود.
به پایه شماره ۳ از پورت PB2 گفته میشود.
به پایه شماره ۴ از پورت PB3 گفته میشود.
به پایه شماره ۵ از پورت PB4 گفته میشود.
به پایه شماره ۶ از پورت PB5 گفته میشود.
به پایه شماره ۷ از پورت PB6 گفته میشود.
به پایه شماره ۸ از پورت PB7 گفته میشود.
این پایهها به ترتیب بر اساس سیستم دودوهی اولویت بندی و مقدار دهی شدهاند.
مثلاً:اگر شما به همه ۸ تا پینهای پورت، صفر منطقی (صفر ولت ) وصل نمایید مقدار خوانده شده میکرو از این پورت ۰ است. به این صورت که میکرو ابتدا مقدار پایه PB0 را خوانده و در عددی که برای ان مشخص شده ضرب میکند که طبق جدول بالا این عدد مقدارش ۱ میباشد در نتیجه مقدار خوانده شده از ورودی که صفر است ( به دلیل وصل کردن این پایه به صفر ولت ) را در ۱ ضرب میکند و جواب صفر میشود. برای بقیه پایه نیز این عمل را انجام می دهد و سپس در مرحله اخر تمامی جوابها را با هم جمع میکند.
سرعت پردازنده میکروکنترلر MUC SPEED
سرعت پردازنده میکروکنترلرها به صورت معمول بین ۰تا۱۶ مگاهرتز میباشد همچنین در بعضی قابلیت افزایش تا ۲۰ مگاهرتز و در بعضی خانوادهها تا ۳۲ مگاهرتز را دارا میباشد.
رابطهای برنامهریزی
راههای زیادی برای برنامهریزی و اشکال زدایی یا عیب یابی کردن میکروکنترلرهای AVR وجود دارد و هر خانواده روش خاص خود را دارد:
ISP
روش برنامهریزی درون مجموعه (به انگلیسی: In-system programming) (مخفف انگلیسی: ISP) توسط پروتکل گذرگاه ارتباط جانبی سریال به علاوه ارسال سیگنال با لبه بالا رونده یا پایین رونده به پایه RESET کار میکند و پر استفادهترین روش برنامه ریزی است. تا هنگامی که پایه های SPI ریزکنترلگر به چیزی که اختلال وارد کند وصل نشده، ریزکنترلگر AVR میتواند سرجای خود روی برد مدار چاپی باقی بماند. تنها چیزی که نیاز داریم یک پایانه ۶ پایه و مبدل برنامهریزی است.
انواع پروگرامر با رابط ISP
مبدل Atmel AVR ISP mkII به درگاه USB متصل به گذرگاه سری یا مستقیم به گذرگاه سری رایانه وصل شده و توسط نرمافزار ATMEL Studio از طریق رابط ISP قطعه را برنامه ریزی میکند.
همچنین نرمافزارAVRDUDE (مخفف AVR Downloader/UploaDEr) که روی سیستم عاملهای لینوکس، فری بی اس دی، ویندوز و Mac OS X اجرا میشود، برای مبدلهای گوناگون رسمی و غیررسمی (DIY) کار میکند [3].
PDI
رابط برنامهریزی و اشکال زدایی میکرو کنترلرها (به انگلیسی: The Program and Debug Interface) (مخفف انگلیسی: PDI) که یکی از خصوصیات میکروهای AVR برای برنامهریزی به وسیله ابزارهای خارجی و اشکال زدایی و عیب یابی بر روی برد میباشد این واحد با بخش JTAG متفاوت می باشد و برای دستگاه های خانواده XMEGA می باشد.
برنامه ریزی ولتاژ بالای سریال High Voltage Serial Programmer
برنامه ریزی ولتاژ بالا سریال (به انگلیسی: HIGH VOLTAGE SERIAL PROGRAMER) (مخفف انگلیسی: HVSP) بیشتر حالت پشتیبان گیری در AVR های کوچکتر است. یک تراشه 8 پین بسیاری از ترکیبات منحصر به فرد سیگنال را برای قرار دادن AVR در حالت برنامه نویسی باقی نمی گذارد. با این حال، AVR فقط در زمان برنامه نویسی و هرگز در زمان کار عادی نباید در ولتاژ ۱۲ مشاهده شود. حالت ولتاژ بالا همچنین در برخی از دستگاه هایی که پایه تنظیم مجدد توسط فیوز غیرفعال شده است، قابل استفاده است.
برنامه ریزی ولتاژ بالای موازی High Voltage Parallel Programmer
در این روش اطلاعات به صورت ۸ بیت مجزا توسط یک پورت انتقال داده میشوند. طبق دستور العمل شرکت سازنده میبایست ولتاژ ۱۲ ولت به پایه RESET اعمال شود. از این روش در مواقع محدود شدن دسترسی تراشه از spi و jtag کاربر مجبور به استفاده از این روش برای برنامه ریزی ریز پردازشگر می شود.بر خلاف سند spi که برای برنامه ریزی در کل به ۶ رشته کابل نیاز است ؛ در این روش تقریبا تمام پایه های تراشه مورد نظر به کار گرفته میشود. از مزیت های این روش فقط می توان به سرعت بالا و دسترسی کامل به تراشه اشاره نمود. تنها برنامهریز هایی مانند STK500HV از این روش پشتیبانی میکنند.
کامپایلرها
کامپایلرهای متفاوتی برای این میکروکنترلر منتشر شده است که از محبوب ترین آن ها در ایران کدویژن، بسکام و آردوینو می باشد.
اتمل استودیو Atmel Studio
اتمل استودیو (به انگلیسی: Atmel Studio) یک پلتفرم توسعه یکپارچه(IDP) می باشد که با استفاده از آن می توانید برنامه میکروکنترلرهای AVR و ARM را عیب یابی یا اشکال زدایی کرده و توسعه دهید. این کامپایلر یکی از قدرتمند ترین کامپایلرهای AVR می باشد ولی در عین حال پیچیده تر از بقیه بوده. به صورت رایگان از سایت میکروچیپ [4] قابل دانلود می باشد. علاوه بر میکروکنترلرهای AVR این کامپایلر توانایی برنامه ریزی میکروکنترلرهای ARM را نیز داراست [5].
بسکام BASCOM
این كامپایلر محصولی از شرکت MCS Electronics در هلند است كه زبان QBASIC را پشتیبانی می كند . نسخه "آزمایشی" این كامپایلر را می توان از سایت رسمی این شركت دانلود كرد. با این نسخه حداكثر می توان ۴ كیلو بایت را كامپایل كرد كه برای چیپ هایی مثل Atmega48 و سری TinyAVR بسیار مناسب می باشد. نسخه تجاری این كامپایلر قابلیت این را دارا می باشد كه تا ۱۲۸ كیلو بایت را كامپایل كند. در ایران به دلیل نبود قانون کپی رایت این نرم افزار به صورت گسترده مورد استفاده قرار گرفته است و کتابهایی نیز با استفاده از این زبان برای AVR نوشته شده است [6] [7].
IAR Embedded Workbench AVR
"IAR" (به سوئدی: Ingenjörsfirman Anders Rundgren) است که به معنای شرکت مهندسی اندرس روندگرن است. IAR Systems یک شرکت نرم افزاری کامپیوتر سوئدی است که ابزارهای توسعه سیستم های تعبیه شده را ارائه می دهد. از کامپایلرهای قدرتمند در برنامه نویسی میکروکنترلرها نرم افزار قدرتمند IAR است. این کامپایلر از بیشتر میکروکنترلرهای موجود در بازار پشتیبانی می کند. سازندگان میکروکنترلرها معمولاً مثال هایی که در کد منبع هایشان دارند به این زبان است. معمولاً منابع زیادی در اینترنت برای این محیط برنامه نویسی موجود نیست و شاید به همین دلیل است که سراغ آن نمی روند. قیمت این نرم افزار مثلاً برای AVR به صورت متغیر بین ۹۰۰ تا ۳۰۰۰ دلار است [8].
کدویژن CodeVisionAVR C Compiler
این كامپایلر محصولی از شرکت Hp InfoTech می باشد. زبانی که این كامپایلر پشتیبانی می كند زبان C می باشد. شركت Hp InfoTech انواع مختلفی از این كامپایلر را روانه بازار کرده است. نسخه رایگان این كامپایلر می تواند تا ۲ كیلو بایت را كامپایل كند. نسخه های دیگر نوع پیشرفته و حرفه ای را شامل می شود. سایت سازنده تفاوت بین این نسخه ها را به طور کامل توضیح داده است [9] [10].
WinAVR
یكی از قدرتمندترین كامپایلر ها برای میکروکنترلرهای AVR می باشد و طرفداران بسیاری را در دنیا دارد، این كامپایلر كاملا رایگان می باشد. در حالت كلی می توان گفت كه بیشتر برنامه نویسان حرفه ایی میکروکنترلرهای AVR از این كامپایلر استفاده می كنند. این كامپایلر به دلیل اینكه كد HEX كمتری تولید می كند در آخر برنامه بهینه و سریع تری را نتیجه می دهد [11].
آردوینو Arduino IDE
نرم افزار منبع باز آردوینو، کدنویسی و بارگذاری کد بر روی مدار را آسان می سازد. این نرم افزار برای سیستم عامل های ویندوز، Mac OS X و لینوکس قابل اجرا می باشد. همچنین نرم افزار آردوینو با تمامی بردهای آردوینو سازگاری داشته و می توان از این نرم افزار آردوینو بر روی تمامی بردهای آردوینو استفاده کرد. این محیط برنامه نویسی با استفاده از زبان جاوا و بر پایه پراسسینگ، avr-gcc و سایر نرم افزارهای منبع باز تولید شده است [12] [13]. اصول برنامه نویسی در نرم افزار آردوینو، تا حد زیادی مشابه برنامه نویسی به زبان C و ++C است؛ اگرچه در برخی از دستورها، فرمان ها، تابع ها، کتابخانه ها و غیره تغییراتی مختص آردوینو ایجاد شده است. روند کلی کار با نرم افزار آردوینو به این صورت است که ابتدا دستورها در پنجره ویرایش متن نوشته می شوند. سپس کامپایل شده و بر روی میکرو کنترلر بورد آردوینو بارگذاری می شوند. قبل از شروع بارگذاری، لازم است بورد آردوینو از طریق درگاه USB یا درگاه سریال، به رایانه متصل شده باشد. [14].
پیوند به بیرون
پانویس
- "AVR Microcontroller". Engineers Garage. Retrieved ۲۵ شهریور ۱۳۹۲. Check date values in:
|تاریخ بازبینی=
(help) - «Field Programmable System Level Integrated Circuit». بایگانیشده از اصلی در ۲۷ نوامبر ۲۰۱۲. دریافتشده در ۲۲ ژوئن ۲۰۱۴.
- http://www.cnn.com
- میکرو چیپ https://www.microchip.com/mplab/avr-support/atmel-studio-7
- شرکت میکروچیپ https://www.microchip.com/
- https://www.mcselec.com
- «نسخه آرشیو شده». بایگانیشده از اصلی در ۲۹ اکتبر ۲۰۱۹. دریافتشده در ۲۹ اکتبر ۲۰۱۹.
- https://www.iar.com
- http://www.hpinfotech.ro/
- http://www.micromadar.ir/
- http://winavr.sourceforge.net/
- http://arduino.ir/Software/
- https://multimetr.ir/
- کلید آردوینو.
منابع
- مشارکتکنندگان ویکیپدیا. «Atmel AVR». در دانشنامهٔ ویکیپدیای انگلیسی، بازبینیشده در ۲ می ۲۰۱۱.