پروژه طراحي ميكروكنترلر AVR جهت اسكن
چكيده :
قبل از ساخت ميكروكنترلرها ، براي ساخت هر وسيله يا ابزاري براي اندازه گيري هاي مختلف مثل دما ، ولتاژ ، جريان ، فركانس و … از سخت افزار در سطح وسيعي استفاده مي شد . ولي با ساخت و اختراع ميكروكنترلرها انجام اين نوع اندازه گيري ها آسانتر شد .
هدف از انجام اين پروژه به دست آوردن سخت افزاري است كه گوشه اي از قابليت هاي يك ميكروكنترلر از جمله دقت و سرعت را نشان مي دهد .
در اين پروژه سعي شده با استفاده از ميكروكنترلر AVR و صفحه كليد 4×4 تمام كليدها اسكن مي شود.
اين پروژه شامل دو قسمت : 1) نرم افزار ، 2) سخت افزار مي باشد .
وجود ميكروكنترلر باعث شده است مقدار زيادي از سخت افزار را كه قبلا مورد استفاده قرار مي گرفت حذف نمايد . در ادامه به توضيح اين دو بخش و نحوه عملكرد AVR پرداخته شده است .
تاريخچه و مقدمه :
ريزپردازنده وسيله اي است كه مي توان با دادن فرمان آن را به عمليات مختلف واداشت . يعني يك كنترل كننده قابل برنامه ريزي است . همه ريزپردازنده ها سه عمل اساسي يكساني را انجام مي دهند : انتقال اطلاعات ، حساب و منطق ، تصميم گيري ، اينها سه كار يكسان هستند كه به وسيله هر ريزپردازنده ، كامپيوتر كوچك يا كامپيوتر مركزي انجام مي شود .
اولين ريزپردازنده تك تراشه اي ، ريزپردازنده Intel 4004 بود كه توانست دو عدد 4 بيتي دودويي را جمع كند و عمليات متعدد ديگري را انجام دهد .
4004 با معيارهاي امروزي يك وسيله كاملا ابتدايي بود كه مي توانست 4096 مكان مختلف را آدرس دهد. براي حل اين مسئله بود كه ريزپردازنده 8 بيتي ( 8008 ) به وسيله شركت Intel معرفي شد .
Intel 8008:
Intel 8008 توانست اعداد 8 بيتي را ( كه بايت ناميده مي شوند ) به كار گيرد ، كه اين خود پيشرفت بزرگي نسبت به 4004 بود . تقريبا در همان زمان گشايشي در ساختن مدارهاي منطقي NMOS ( نيمه هادي اكسيد فلز از نوع N )پيش آمد . منطق NMOS بسيار سريع تر از PMOS است . به علاوه از يك منبع تغذيه مثبت استفاده مي كند كه آن را براي اتصال به مدارهاي منطقي TTL سازگارتر مي كند . خصوصيات مذكور از اين جهت داراي اهميت است كه بسياري از مدارهاي جنبي ريزپردازنده از نوع TTL هستند . NMOS سرعت ريزپردازنده را با ضريبي در حدود 25 بار افزايش مي دهد كه رقم چشمگيري است .
اين تكنولوژي جديد در ساختمان ريزپردازنده معروف امروزي يعني Intel 8080 به كار برده شد .
Intel 8080:
Intel 8080 در 1973 و معرفي آن دنيا را به دوره ريزپردازنده وارد كرد . 8080 نوع بسيار غني شده اي از 8080 بود كه مي توانست 500000 عمل را در ثانيه انجام دهد و 64 كيلو بايت از حافظه را آدرس مي دهد و 500000 دستورالعمل را در ثانيه اجرا كند . امتياز اصلي Z80 نسبت به 8080 اين است كه مي تواند از دستورالعمل هايي كه براي 8080 مي شوند نيز استفاده كند . نرم افزاري كه براي 8080 استفاده مي شود بدون پيچيدگي بر روي Z80 قابل اجرا است . يك مشخصه سخت افزاري مهم Z80 در مقايسه با 8080 آرايش كامل تر ثبات هاست . Z80 همچنين مكانيزمي را به كار مي گيرد كه حافظه RAM ديناميكي را به طور خوركار تازه مي كند . اين دو مشخصه اضافي موجب برتري Z80 نسبت به Intel 8080 شده است.
ساير ريزپردازنده هاي اوليه :
تا سال 1973 ، Intel توليد كننده اصلي ريزپردازنده ها بود . بعد از آن توليد كنندگان ديگر متوجه شدند كه اين وسيله جديد داراي آينده است و شروع به توليد انواع اصلاح شده ديگري از ريزپردازنده Intel 8080 كردند .
ريزپردازنده هاي امروزي :
به نظر مي رسد كه آينده توجه ريزپردازنده در دست سه شركت Intel ، Motorola و Zilog است . اين شركت ها هر يك با دو سال يك بار انواع پيشرفته تري از ريزپردازنده ها را توليد مي كنند . امروزه ريزپردازنده ها از نظر اندازه بين 4 تا 32 بيت دارند .
انواع ميكروپروسسورها :
- Genela ( كه خود شامل cpu مي باشد كه بر اساس برنامه وظيفه آنها تغيير مي كند و µ.c كه از تكنولوژي RISC سود مي برد .
2.پروسسورهاي صوتي : سري VP ساخت شركت QUICK و سري ISD
3.پروسسورهاي مخابراتي ( شركت MITEL فقط پروسسورهاي مخابراتي مي زند . )
- پروسسورهاي خاص ( براي كاربردهاي خاص استفاده مي شود ) .
در معماري CPU از تكنولوژي CISC و RISC استفاده شده كه تكنولوژي CISC ( Complex INSTROCTION set Computer )دستورات پيچيده را در داخل خود اجرا مي كند و تكنولوژي RISC( Reduce INSTROCTION set Computer )
SET كامپيوتري است كه دستورات ساده اي دارد كه از اين نوع تكنولوژي در ميكرو كنترلرها نيز استفاده شده و خواص آن تعداد كم دستورالعمل ها مي باشد .
تعريف µ.c :
تراشه هايي هستند كه واسطهاي صفحه كليد ، ديسك و در بسياري از ديگر دستگاهها استفاده مي شود . اين نوع تراشه ها به علت حجم بسيار كوچك كه دارند به نام single µ.c chip معروفند .
تفاوت ميان ريزپردازنده با ريز كنترل كننده ( µ.c ) :
ريز كنترل كننده ها علاوه بر cpu شامل حافظه ، خطوط I/O تايمر ، كانتر و در برخي از آنها حتي A/D نيز دارند . حال به مروري بر ميكروهاي AVR و انواع آنها مي پردازيم .
مقدمه :
- الكترونيك در زندگي امروز
امروزه پيشرفت در الكترونيك اي امكان را به ما داده است تا بتوانيم انواع وسايل الكترونيكي مانند ، ماشين حساب هاي جيبي ، ساعت رقمي ، كامپيوتر براي كاربرد در صنعت در تحقيقات پزشكي و يا طريقه توليد كالا به طور اتوماتيك در كارخانجات و بسياري از موارد ديگر را مستقيم يا غير مستقيم مورد استفاده قرار دهيم .
اينها همه به خاطر آن است كه فن آوري توانسته مدارهاي الكترونيكي را كه شامل اجزاء كوچك الكترونيكي هستند ، بر روي يك قطعه كوچك سيليكن كه شايد سطح آن به 5 ميلي متر مربع بيشتر نيست ، جاي دهد . فن آوري ميكروالكترونيك كه به مدارهاي يكپارچه معروف به آي سي يا تراشه مربوط مي گردد ، در بهبود زندگي بشر تاثير به سزايي داشته و آن را بطور كلي دگرگون نموده است . تراشه ها همچنين براي مصارفي چون كنترل رباتها در كارخانجات ، يا كنترل چراغهاي راهنمايي و يا وسايل خانگي مانند ماشين لباس شويي و غيره مورد استفاده قرار مي گيرند . از طرفي تراشه ها را مي توان مغز دستگاه هايي چون ميكرو كامپيوترها و رباتها به حساب آورد .
2-1 سيستم هاي الكترونيكي
پس از يك نظر اجمالي در داخل يك سيستم الكترونيكي مانند يك دستگاه راديو ، تلويزيون و يا كامپيوتر ممكن است انسان از پيچيدگي آن و از يادگيري الكترونيك دلسرد شود ، اما در واقع آن طور كه به نظر مي رسند ، دشوار نيستند و اين به دو دليل است .
اول اينكه اگرچه سيستم هاي الكترونيكي اجزاو قطعات زيادي را در خود جاي مي دهند ، اما بايد دانست كه انواع كلي اين اجزا اغلب محدود و انگشت شمار هستند . از مهم ترين گروه هاي اين اجزا مي توان مقاومت ها ، خازن ها ، القا گرها ، ديودها ، ترانزيستورها ، كليدها و مبدل ها را نام برد . اين اجزا زماني كه به صورت يكپارچه در يك تراشه قرار مي گيرند ، هر يك همان وظيفه خود را به عنوان يك قطعه مجزا انجام مي دهند و فقط اندازه فيزيكي آن كوچكتر شده است .
دوم اينكه انواع سيستم هاي الكترونيكي از تعداد محدودي مدارهاي اصولي و يا بلوك هايي كه وظيفه هر كدام به كاراندازي قسمتي از سيستم مثلا تقويت يا شمارش است ، تشكيل يافته اند كه به منظور عملكرد كل سيستم ، آن را به يكديگر متصل مي نمايند .
3-1 مدارهاي خطي و مدارهاي رقمي
بسياري از سيستم هاي الكترونيكي طوري طراحي شده اند تا با دريافت يك ورودي الكتريكي و با پردازش آن ، يك خروجي الكتريكي توليد كرده تا بتوانند كار معيني را انجام دهند ( كه اين كار بدون سيستم مورد نظر ، به تنهايي از عهده ورودي الكتريكي مذكور ساخته نخواهد بود . )
مدارهاي الكترونيكي كه در سيستم ها كاربرد دارند به دو دسته مهم تقسيم مي شوند : مدارهاي خطي ( يا قياسي ) و مدارهاي رقمي يا ديجيتال .
مدارهاي خطي ار نوع مدارهاي تقويت كننده هستند كه با سيگنال هايي سرو كار دارند كه اين سيگنال ها معرف كميت هايي مانند تغييرات صوتي ، صداي انسان يا موسيقي و غيره هستند . در بسياري از مدارهاي خطي از ترانزيستور به عنوان تقويت كننده صوتي استفاده مي كنند .
مدارهاي ديجيتال از نوع مدارهاي كليدزني هستند ، كه مقدار ورودي يا خروجي آنها در هر زمان فقط مي تواند داراي يكي از دو حالت صفر يا يك باشد و اگر قرار است اين دو حالت به هم تبديل شوند اين تبديل حالت بسيار سريع اتفاق مي افتد ، در حالي كه مدارهاي خطي داراي حالت مداوم بوده و اين حالات به تدريج در واحد زمان قابل تغيير هستند . مدارهاي رقمي داراي فقط دو حالت هستند و ورودي و خروجي آنها به اصطلاح (high) به معني بالا ، يعني نزديك به ميزان ولتاژ منبع مدار و يا (low) به معني پايين ، يعني نزديك صفر ولت هستند . در اين مدارها عمل كليدزني به وسيله ترانزيستور انجام مي گيرد . دستگاه شمارش گر در واقع يك مدار رقمي است كه در آن سيگنال توليد شده توسط سلول نوري ، يا در حالت صفر و يا در حالت يك قرار مي گيرد و اين امر بستگي به قطع شدن يا نشدن نور دارد . بنابراين مدارهاي رقمي علائم الكتريكي را به صورت پالس يا ضربه با خود حمل مي كنند . سيستمي كه در آن يك لامپ توسط ديمر كنترل و كم و زياد مي شود ، يك سيستم حالت مداوم و سيستمي كه همان لامپ را خاموش و روشن مي كند يك سيستم دو حالته است ، چون كه توسط آن لامپ مذكور يا كاملا روشن يا كاملا خاموش مي شود .
فصل اول: مختصري از نحوه كار با AVR
1-1- خصوصيات Atmega16L و Atmega16
٭ ازمعماري AVR RISC استفاده مي كند .
– كارايي بالا و توان مصرفي كم
– داراي 131 دستورالعمل با كارايي بالا كه اكثرا تنها در يك كلاك سيكل اجرا مي شوند .
– 8×32رجيستر كاربردي
– سرعتي تا 16 MIPS در فركانس 16 MHZ
٭ حافظه ، برنامه و داده غير فرار
–16K بايت حافظه FLASH داخلي قابل برنامه ريزي
پايداري حافظه FLASH : قابليت 10000 بار نوشتن و پاك كردن ( WRITE / ERASE )
–1024 بايت حافظه داخلي SRAM
–512 بايت حافظه EEPROM داخلي قابل برنامه ريزي
پايداري حافظه EEPROM : قابليت 100000 بار نوشتن و پاك كردن ( WRITE / ERASE )
– قفل برنامه FLASH و حفاظت داده EEPROM
٭ قابليت ارتباط JTAG ( IEEE Std . )
– برنامه ريزي برنامه FLASH ، EEPROM ، FUSE BITS ، LOCK BITS از طريق ارتباط JTAG
٭ خصوصيات جانبي
– دو تايمر- كانتر (TIMER / COUNTER ) 8 بيتي با PRESCALER مجزا و مد COMPARE
– يك تايمر- كانتر (TIMER / COUNTER ) 16 بيتي با PRESCALER مجزا و داراي مدهاي COMPARE و CAPTURE
– 4 كانال PWM
– 8 كانال مبدل آنالوگ به ديجيتال 10 بيتي
8 كانال SINGLE-ENDED
داراي 7 كانال تفاضلي در بسته بندي TQFP
داراي دو كانال تفاضلي با كنترل گين 1x ، 10x و 200x
– يك مقايسه كننده آنالوگ داخلي .
– WATCHDOG قابل برنامه ريزي با اسيلاتور داخلي .
– قابليت ارتباط با پروتكل سريال دو سيمه (TWO-WIRE )
– قابليت ارتباط سريال SPI ( SERIAL PERIPHERAL INTERFACE ) به صورت MASTER يا SLAVE
–USART سريال قابل برنامه ريزي
٭ خصوصيات ويژه ميكروكنترلر
– POWER-ON RESET CIRCUIT و BROWN-OUT قابل برنامه ريزي .
– داراي اسيلاتور RC داخلي كاليبره شده
– داراي 6 حالت SLEEP ( POWER-DOWN ، IDLE ، POWER-SAVE ، STANDBY ، EXTENDED STANDBY و ADC NOISE REDUCTION )
– منابع وقفه (INTERRUPT ) داخلي و خارجي .
– عملكرد كاملا ثابت .
– توان مصرفي پايين و سرعت بالا توسط تكنولوژي CMOS
٭ توان مصرفي در 1MHZ ، 3V ، 250C براي ATMEGA16L
– حالت فعال 1.1 mA ( ACTIVE MODE )
– در حالت بي كاري 0.35 mA ( IDLE MODE )
– در حالت POWER-DOWN : > 1µA
٭ ولتاژهاي عملياتي (كاري )
–2.7 V تا5.5 V براي ( Atmega16 L )
–4.5 V تا 5.5 V براي ( Atmega16 )
٭ فركانس هاي كاري
–0MHZ تا 8MHZ براي( Atmega16 L )
–0MHZ تا 16MHZ براي ( Atmega16 )
خطوط I/O و انواع بسته بندي