دسته بندی سایت
پیوند ها
مقدمه:
در اين پروژه سعي بر اين است که علاوه بر آشنايي با ميکروکنترلر AVRو محيط نرم افزاري (labview) سخت افزار،به گونه اي طراحي شود که با دريافت سيگنال آنالوگ ورودي (صوت) از ميکروفن،از طريق واحدADC ميکرو اين سيگنال به ديجيتال تبديل شود وبا توجه به برنامهاي که در داخل ميکرو تعبيه شده است،اين اطلاعات به داخل MMC ريخته شده وميکرو با دريافت فرمان از کامپيوتر به صورت ارتباط سريال دستور پخش را دريافت ميکند واز طريق واحد تايمر/ کانترکه در مد PWM کار ميکند,اطلاعات ذخيره شده در MMC را با آشکار سازي موج PWM توسط يک انتگرال گير،باز سازي وبه آنالوگ تبديل ميکند و اين سيگنال آنالوگ بوسيله يک سري مدارات مورد نياز براي پخش از طريق يک هدفن پخش ميگردد.
فصل اول :
نگاهي اجمالي به ميکروکنترلرها
بخش اول : ميکروکنترلرها
سير تكاملي ميكروكنترلرها :
اولين ميكروكنترلرها در اواسط دهه 1970 ساخته شدند. اين ميكروكنترلرها در ابتدا پردازندههاي ماشين حساب بودند که داراي حافظه برنامه كوچكي از نوع ROM ، حافظ داده از نوعRAM وتعدادي درگاه ورودي وخروجي بودند.
با توسعه فناوري سيليكون ، ميكرو كنترلرهاي 8 بيتي قويتري ساخته شدند . در اين ميكروكنترلرها علاوه بر بهينه شدن دستورالعمل ها، تايمر /شمارنده روي تراشه، امكانات وقفه و كنترل بهينه شده خطوط ورودي وخروجي نيز به آن اضافه شده است. حافظه موجود بر روي تراشه هنوز هم محدود ميباشد و دربسياري موارد كافي نيست .يكي از پيشرفتهاي قابل توجه در آن زمان، قابليت استفاده از حافظهEPROM قابل پاك شدن با اشعه ماورا بنفش،روي تراشه بوداين قابليت، زمان طراحي و پياده سازي محصول را بطور محسوسي كاهش داد و نيز براي اولين بار امكان استفاده از ميكروكنترلرها را در كاربردهايي كه حجم توليد پاييني دارند، فراهم ساخت.
خانواده 8051 در اوايل دهه 1980 توسط شركت اينتل معرفي گرديد . از آن زمان تاكنون 8051 يكي از محبوبترين ميكروكنترلرها بوده و بسياري از شركتها ديگر نيز به توليد آن اقدام كردهاند . در حال حاضر مدلهاي مختلفي از 8051 وجود دارد كه در بسياري از آنها امكاناتي نظير مبدل آنالوگ به ديجيتال حجم نسبتاً بزرگ از حافظه برنامه و حافظه داده،مدولاتور عرض پالس(PWM) در خروجيها كه امكان پاك كردن و برنامه ريزي مجدد آن توسط سيگنالهاي الکتريکي وجود دارد،تعبيه شده است.
ميكروكنترلرها اكنون به سمت 16 بيتي شدن در حركت هستند . ميكروكنترلر هاي 16 بيتي، پردازندههايي با كارايي بالا (نظير پردازش سيگنالهاي ديجيتال ) ميباشند كه در كنترل فرايندهاي بلادرنگ و در مواردي كه حجم زيادي از عمليات محاسباتي مورد نياز است، به كار برده ميشوند.
بسياري از ميكروكنترلرهاي 16 بيتي، امكاناتي نظير حجم زياد حافظه برنامه و حافظه داده، مبدل هاي آنالوگ به ديجيتال چند كانالي، تعداد زيادي درگاهI/O ، چندين درگاه سريال، عملكردهاي بسيار سريع رياضي و منطقي و مجموعه دستورالعملهاي بسيار قدرتمند با قابليت پردازش سيگنال را دارا ميباشند .
معماري داخلي ميكرو كنترلرها:
ساده ترينمعماري ميكروكنترلر، متشكل از يك ريز پردازنده، حافظه و درگاه ورودي/خروجي است. ريز پردازنده نيزمتشكل از واحد پردازش مركزي(CPU)و واحد کنترل(CU) است.
CPUدر واقع مغز يك ريز پردازنده است و محلي است كه در آنجا تمام عمليات رياضي و منطقي ،انجام ميشود.واحدكنترل ، عمليات داخلي ريزپردازنده را كنترل ميكند و سيگنالهاي كنترلي را به ساير بخشهاي ريز پردازنده ارسال ميكند تا دستورالعملهاي مورد نظر انجام شوند.
حافظه بخش بسيار مهمي از يک سيستم ميکروکامپيوتري است.ما ميتوانيم بر اساس بکارگيري حافظه ،آن را به دو گروه دستهبندي ميکنيم: حافظه برنامه و حافظه داده . حافظه برنامه ، تمام كد برنامه را ذخيره ميكند .اين حافظه معمولا از نوع فقط خواندني (ROM) مي باشد.انواع ديگري از حافظهها نظيرEPROM وحافظههاي فلش EEPROM براي کاربردهايي که حجم توليد پاييني دارند وهمچنين هنگام پيادهسازي برنامه به كار ميروند .حافظه داده از نوع حافظه خواندن/نوشتن(RAM) ميباشد.در كاربردهاي پيچيده كه به حجم بالايي از حافظهRAM نياز داريم، امكان اضافه كردن تراشه هاي حافظه بيروني به اغلب ميكروكنترلر ها وجود دارد.
در گاههاي ورودي / خروجي (I/O) به سيگنالهاي ديجيتال بيروني امكان ميدهند كه با ميكروكنترلر ارتباط پيدا كند .درگاههاي (I/O) معمولاً به صورت گروههاي 8 بيتي دسته بندي ميشوند و به هر گروه نيز نام خاصي اطلاق ميشود به عنوان مثال ، ميكروكنترلر 8051 داراي 4 درگاه ورودي / خروجي 8 بيت ميباشد که P3,P2,P1,P0 ناميده ميشوند.در تعدادي از ميكروكنترلرها ، جهت خطوط درگاه I/O قابل برنامه ريزي ميباشد . لذا بيتهاي مختلف يك درگاه را مي توان به صورت ورودييا خروجي برنامهريزي نمود. در برخي ديگر از ميكروكنترلرها (از جمله ميكروكنترلرهاي 8051) درگاههاي I/Oبه صورت دو طرفه ميباشند . هر خط از درگاه I/O اين گونه ميكرو كنترلرها را مي توان به صورت ورودي و يا خروجي مورد استفاده قرار داد . معمولاً ، اين گونه خطوط خروجي ، به همراه مقاومتهاي بالا كش بيروني به كار برده ميشوند.
خانوادهAVR:
ميکروکنترولر AVR به منظور اجراي دستورالعملهاي قدرتمند در يک سيکل کلاک (ساعت) به اندازه کافي سريع است و ميتواند براي شما آزادي عملي را که احتياج داريد به منظور بهينه سازي توان مصرفي فراهم کند . ميکروکنترلر AVR بر مبناي معماري(RISCکاهش مجموعهي دستورالعملهاي کامپيوتر ) پايهگذاري شده و مجموعه اي از دستورالعملها را که با 32 ثبات کار ميکنند ترکيب ميکند . به کارگرفتن حافظه از نوع Flash که AVR ها به طور يکسان از آن بهره ميبرند از جمله مزاياي آنها است.يک ميکرو AVRميتواند با استفاده از يک منبع تغذيه 2.7 تا 5.5 ولتي از طريق شش پين ساده در عرض چند ثانيه برنامه ريزي شود يا Program شود.
ميکروهاي AVR در هرجا که باشند با 1.8 ولت تا 5.5 ولت تغذيه ميشوند البته انواع توان پايين نيز وجود دارند که بهLow Power معروفند.ويژگيهايي که سبب شد، AVRها جاي 8051 را بگيرند،عبارتست از:
راههاي مختلف عمل برنامه ريزي :
ü موازي ياparallel يکي از سريعترين روشهاي برنامه ريزي.
ü خود برنامه ريزي توسط هر اتصال فيزيکي.
ü برنامه ريزي توسط هر نوع واسطي از قبيل TWIو SPI و غيره، دارا بودن امنيت صد درصد در بروزرساني و کد کردن.
ü : SPI واسطه سه سيمي محلي براي بروزرساني سريع ، آسان و موثر در استفاده.
ü واسط JTAG : واسطه اي که تسليم قانون IEEE 1149.1 است و ميتواند به صورت NVM برنامهريزي کند يعني هنگام قطع جريان برق دادهها از بين نروند .
AVRهمچنينمجهزبهامکاناتديگرمانندتايمرواچداگومبدلهاي ADC و PWM است.
يکي از مهمترين بخشهاي AVR که کمتر در هر ميکروکنترلرهاي ديگر ديده ميشود مقايسه کننده آنالوگ با گين 1 و200 و ... مي باشد.لازم به ذکر است که در 8051 بايد از فلش(EEPROM) وADCو کريستال مولد ساعت به صورت بيروني استفاده ميکرديم اما در AVR اين امکانات به صورت دروني وجود دارد .
انواع ميکروهايAVR :
شرکتATMEL کهشرکتاصليتوليدکنندهميکروهايAVR ميباشد,سه نوع ميکروکنترلر AVR توليد ميکند :
(1سري Tiny (2 سري AT90s (3 سريATmega
کههرسريازاينميکروهاويژگيهايخاصيداشتهودرمصارفخاصيکاربردبيشتريدارندکهدرذيلبهتوضيح مختصري پيرامون هر يک از اين سريها پرداخته ميشود :
سريTiny:
ميکروهاي اين سري براي : 1- کاهش قيمت 2- صرفه جويي در وقت بهينه شدهاند ، ميزان مصرف ، حجم حافظه و تعدادپايههادرميکروهاياينسريکماست.
از جمله ميکروهاي اين سري ميتوان موارد زير را نام برد :
• AT tiny 10
• AT tiny 11
• AT tiny 12
• AT tiny 15 L
• AT tiny 26
• AT tiny 26 L
• AT tiny 28 L
سري90s:
از نظر حجم حافظه و تعداد پين ورودي / خروجي و توان مصرفي متوسط ميباشد و به آن AVR معمولي هم میگويند.چند نمونه معروف از اين ميکروها در زير نام برده شده است :
• AT 90s 1200
• AT 90s 2313
• AT 90s2323/LS2323/S2343/LS2343
• AT 90s 2333/LS2333/S4433/LS4433
• AT 90s 8515
• AT 90s 8535/LS8535
سري MEGA:
اين ميکروها نسبت به دو سري قبل داراي قابليتهاي بيشتري ميباشد ؛ تعداد ورودي / خروجي(I/O) بيشتر و فضاي حافظه گستردهتر و به طبع اينها مصرف بالاتر.چند نمونه از AVR هاي موجود در بازار اين سري ، در زير ليست شدهاند :
• AT MEGA 323 , AT MEGA 323 L
• AT MEGA 32 , AT MEGA 32 L
• AT MEGA 128 , AT MEGA 128 L
• AT MEGA 163 , AT MEGA 163 L
• AT MEGA 8 , AT MEGA 8 L
• AT MEGA 8515 , AT MEGA 8515 L
• AT MEGA 8535 , AT MEGA 8535 L
• AT MEGA 161 , AT MEGA 161L
• AT MEGA 162 V , AT MEGA 162
• AT MEGA 16 , AT MEGA 16 L
• AT MEGA 100 , AT MEGA 103 L
• AT MEGA 169 V , AT MEGA 169 , AT MEGA 169 L
• AT MEGA 64 L , AT MEGA 64
نگاهي گذرا به معماري دروني ميکروکنترلرهايAVR :
ميکروکنترلرهاي 8 بيتيAVR داراي 32 ثبات 8 بيتي همه منظوره هستند .(يعني R0 تا R31 )سه ثبات آدرس شانزده بيتي با نام مستعارX,Y,Z که هر کدام از اين سه ثبات دو ثبات از همان 32 ثبات 8 بيتي هستند يعني:
(R28:R29) =رجيسترY (R26:R27)=رجيستر X
(R30:R31)=رجيسترZ
يک ثبات 16 بيتي به منظور اشاره گر پشته که در آدرسهاي ورودي /خروجي :
SPH(0x3e)و SPL (0x3d) قرارگرفته اند .همچنين اين آدرسها در حافظه داده با آدرسهاي 0x5e و0x5d هستند .
يک ثبات 8 بيتي به منظور سنجش وضعيت يا همان ثبات پرچم با نامSREG
I :فعال ساز و غيرفعال ساز عمومي وقفه يا Global Interrupt Enable/Disable Flag
T :بيت انتقالي مورد استفاده دستورالعملهاي BLD وBST
H:Half Carry Flag
S :بيت علامت ياSigned tests Instruction Set
V : سرريزنما براي مکمل دو يا Twos Complement Overflow Indicator
N :بيت منفي يا Negative Flag
Z :بيت صفر يا Zero Flag
C :Carry Flag
حافظه داده و ثباتهاي AVR :
32 آدرس اول حافظه يعني 0x0000)تا (0x001f متعلق به ثباتهاي R0 تا R31 هستند البته در برخيMCU ها براي ثبات ها از فضاي حافظه ي داده استفاده ميشود.
آدرس هاي 0x0020تا 0x005f از حافظه داده در دسترس آدرسهاي ورودي / خروجي0x00 تا 0x3f است.از آدرس0x006 حافظه ي داده به بعد فقط شامل حافظه استاتيک است يعني SRAM است.
دو ثبات براي واحد رياضي منطقيALU :
تعداد زيادي از دستورالعملهايALU شامل دو ثبات هستند يکي مقصد يا (Destination(Rd و يکي منبع يا (Source(Rr که نحوه کدگشايي دستورالعمل را در زير ميبينيد :
بيتهايي که در آن حرفiقرار گرفته دستورالعمل و حرفd بيت هاي مقصد هستند وحرف r بيتهاي منبع. ثبات منبع از بهم پيوستن بيتهاي r0 :r1 :r2 :r3 :r9ثبات مقصد از بهم پيوستن بيتهاي d4 :d5 :d6 :d7 : d8 مشخص ميشوند همچنين بيتهاي باقي مانده i10 :i11 :i12 :i13 :i14 :i15خود دستورالعمل را مشخص ميکنند .
به عنوان مثال حاصل جمع r17 وr2 که همانAdd r17,r2 است به صورت زير کدگشايي ياEncodeميشود
که در اين صورت خروجي از اين قرار است:
Hex : 0 :12 0d add r17 , r2
توجه داشته باشيد که يک کلمه ي 16 بيتي از هشت بيت کم ارزش آن در حافظه ذخيره مي شود.
مبلغ واقعی 16,000 تومان 50% تخفیف مبلغ قابل پرداخت 8,000 تومان
محبوب ترین ها
پرفروش ترین ها