انجام پایان نامه

درخواست همکاری انجام پایان نامه  بانک مقالات رایگان انجام پایان نامه

سفارش پایان نامه

|

انجام پایان نامه ارشد

 پایان نامه 

پایان نامه‏ کامپیوتر

انجام پایان نامه‏ ارشد کامپیوتر

وقفه ها
1 مقدمه
وقفه ، حالتي است كه باعث متوقف شدن يك برنامه به صورت موقت مي شود ، كه خود توسط يك برنامه ديگر فعال مي گردد . وقفه ها نقش مهمي در طراحي و پياده سازي كاربردهاي ميكروكنترل دارند ; اما مي تواند اجراي يك برنامه به يك درخواست ديگر نيز پاسخ دهد . نبايد تصور كنيم كه سيستم داراي وقفه ، مي تواند بسياري از كارها را همزمان انجام دهد . البته ، CPU نمي تواند در هر لحظه بيش از يك دستور العمل را اجرا كند ; دستور العمل ديگر را اجرا كند و مجدداٌ به دستور اول باز گردد .در هر صورت ، اين عمل شبيه يك زيروال است . CPU برنامه ديگر – زيروال – را اجرا كند و مجدداٌ به دستور اول باز گردد . در هر صورت ،‌اين عمل شبيه يك زيروال است . CPU برنامه ديگر – زيروال – را اجرا كرده و سپس به برنامه اصلي بر مي گردد . شبيه يك زيروال است .تفاوتي كه در يك سيستم راه اندازي شده با وقفه وجود دارد ، اين است كه وقفه پاسخي به يك [اتفاق] است كه به طور غير همزمان با برنامه اصلي به وقوع مي پيوندد و حالتي نيست ه برنامه اصلي مورد وقفه قرار ميگيرد .
برنامه اي كه مربوط به وقفه مي شود يك روال سرويس وقفه (ISR) يا گرداننده وقفه ناميده مي شود ISR در پاسخ به يكوقفه عمل كرده و معمولاٌ عمليات ورودي يا خروجي را براي يك دستگاه انجام مي دهد . هنگام وقوع وقفه، اجراي برنامة اصلي متوقف شده و به ISR انشعاب صورت مي گيرد ; ISR  اجرامي شود و با دستورالعمل [برگشت از وقفه] پايان مي پذيرد و برنامه اصلي ادامه مي يابد . معمولاٌ برنامه اصلي سطح پايه و ISR سطح وقفه ناميده مي شود . اصطلاحات اصلي (سطح پايه ) و فرعي (سطح وقفه) نيزمورد استفاده قرار مي گيند . در شكل 1-6 قسمت (الف) ، اجراي برنامه بدون وقفه ، و در قسمت (ب) اجراي سطح پاي ، در صورت وقوع وقفه اجراي ISR ها در سطح وقفه ، به نمايش در آمده است .
ورود اطلاعات توسط صفحه كليد ، نمونه اي از يك اجاق مايكروويو را در نظر بگيريد . برنامه اوليه(اصلي) ممكن است عنصر تغذيه مايكروويو را براي پخت ، و كاهش يا افزايش زمان پخت  راكنترل كند . هنگامي كه كاربر كليدي فشار دهد يك وقفه توليد مي شود ، (سيگنالي كه مي تواند از سطح پائين به بالا رود ) و برنامه اصلي مورد وقفه قرار مي گيرد ، ISR كدهاي صفحه كليد را مي خواند و شرايط پخت را مطابق با آن تغيير مي دهد و با برگشت به برنامه اصلي خاتمه مي يابد و اجراي برنامه اصلي ادامه پيدا مي كند . نكته مهم در اين مثال اين است كه ورودي توسط شخص بطور [ غير همزمان ] صورت مي گيرد ، يعني زمان وقوع آنتوسط نرم افزار راه انداز سيستم قابل كنترل و پيش بيني نيست . اين يك وقفه است .
 

2-    سازمان وقفه 8051
در 8051 ، پنج منبع وقفه وجود دارد : دو وقفه خارجي ، دو وقفه تابمر و يك وقفه درگاه سريال . در 8052 ، وقفه ديگير نيز براي تايمري ديگر ، پيش بيني شده است . هنگام راه اندازي مجدد سيستم همه وقفه ها غير فعال يشده و بطور جداگانه توسط نرم افزار فعال مي گردند .
در صورت وقوع همزمان دو وقفه ياوقوع وقفه در صورتي كه وقفه ديگري در حال اجراست ، دو سطح تقدم براي آنها در نظر گرفته مي شود . توالي اجرا ثابت ، اما تقدم وقفه ها قابل برنامه ريزي ي باشد. اكنون چگونگي فعال و غير فعال كردن وقفه ها را بررسي مي كنيم .


1-2- فعال و غير فعال كردن وقفه
هر يك از منابع مقفه به طور مجزا ، از طريق بيت آدرس پذير مخصوص ، توسط ثبات IE (فعال كننده وقفه ) و آدرس 0A8H  فعال يا غير فعال مي شوند . علاوه بر بيتهاي فعال كننده خاص براي هر منبع وقفه ، يك بيت فعال كننده / غير فعال كننده كلي نيز وجود دارد كه پاك شدن آن كلية وقفه ها غير فعال شده و مي توانند با 1 شدن آن ، مجدداٌ فعال شوند . (جدول 1) را ببينيد )
براي فعال كردن هر وقفه ، دو بيت بايد 1 شوند : بيت فعال كنندهخاص و بيت كلي . بطور مثال تايمر 1 وقفه ها ، به صورت زير فعال مي شود :
SETB ET 1            ;ENABLE Timer 1 INTERRUPT
SETB EA               ; SET GLOBAL ENABLE BIT
اين عمل را مي توان با دستور زير نيز انجام داد :
MOV IE,#10001000B
 
جدول 1 خلاص ثبات IE (فعال كنندة وقفه)
بيت        نماد        آدرس بيت        شرح (غير فعال = 0 ،، فعال = 1)
IE.7        EA        AFH            فعال / غير فعال كلي
IE.6        -        AEH             نامعين
IE.5        ET2        ADH            فعال كردن وقفه تايمر2(8052)
IE.4        ES        ACH         فعال كردن وقفه درگه سريال
IE.3        ET1        ABH         فعل كردن وقفه تايمر 1
IE.2        EX1        AAH         فعال كردن وقفه 1 خارجي
IE.1        ET0        A9H             فعال كردن وقفه تايمر 0
IE.0        EX0        A8H            فعال كردن وقفه 0 خارجي

اگر چه اين دو روش ، دقيقاٌ همان اثر راه اندازي مجدد سيستم را دارند ، اگر IE را در وسط برنامه ، به صورت متعلق [معلق] برنامه ريزي كنيم ، اثر متفاوتي در برخواهد داشت . روش اول تأثيري بر پنج بيت ديگر ثبات IE ندارد ، در حالي كه روش دوم بوضوح بيتهاي ديگر را پاك مي كند . بهتر است كه در شروع برنامه IE را با دستور "MOVE BYTE" مقدار دهي كنيم ، ( يعني به دنيال تغذيه يا reset(  كردن سيستم ) اما براي فعال و غير فعال كردن وقفه هاي به ثورت معلق داخل برنامه ، بايد از دستورهاي Set bit و Clear bit استفاده كرد تا روي بيتهاي ديگر ثبات IE تأثيري نداشته باشد .

2-2- تقديم وقفه
هر منبع وقفه در يكي از دو طريق بيت آدرس پذير مخصوصي در ثبات IP (تقديم وقفه) در آدرس 0b8h برنامه ريزي مي شود ( جدول 2 را ببينيد )
پس از راه اندازي مجدد سيستم IP پاك شده و همة وقفه ها در سطح تقدم پايين به صورت پيش فرض قرار مي يگرند . نظريه تقديم اين امكان را مي دهد كه وقفه ها بر اساس تقدم بالاتر ، توسط ISR سرويس شوند . در 8051 اين امر به آساني انجام مي شود ، چون تنها دو سطح تقديم وجود دارد . چنانچه هنگام سرويس دهي به يك وقفه يا تقدم پائين ، وقفه اي با تقدم بالاترروي دهد ، توسط ISR مورد پذيرش قرار مي يگرد ، ولي يك وقفه با تقدم بالاتر مورد وقفه قرار نمي گيرد .
برنامه اصلي ، در سطح پايه اجرا شده و با هيچ وقفه اي همراه نيست ، و همواره مي تواند بدون توجه به تقدم وقفه ها مرد وقفه واقه شود . در صورت روي دادن همزمان دووقفه با تقدمهاي متفاوت ، ابتدا وقفة با تقدم بالاتر سرويس دهي مي شود .
جدول 2 خلاصه ثبات IP (تقدم وقفه )
بيت        نماد        آدرس بيت        شرح (غير فعال = 0 ،، فعال = 1)
IP.7                             نا معين  
IP.6                             نامعين
IP.5        PT2        0BDH        تقدم وقفه تايمر 2(8052)
IP.4        PS        0BCH         تقدم وقفه درگاه سريال
IP.3        PT1        0BBH         تقدي موقفة تايمر 1
IP.2        PX1        0BAH         تقدي موقفة 1 خارجي
IP.1        PT0        0B9H         تقديم وقفة تامير 0
IE.0        EX0        0B8H        تقديم وقفة 0 خارجي  
3-2 ترتيب اجرا
اگر دو وقفه با يك تقدم ، هممان اتفاق بيفتند ، يك ترتيب اجراي ثابت نوبت سرويس دهي هركدام از آنها تعيين مي كد . ترتيب اجرا : 0 خارجي ، تايمر 0;1 خارجي ، تايمر1; درگاه سريال ، و تايمر 2 مي باشد .
شكل 2 ، پنج منبع وقه ، فرايند فعال كرد كلي و خاص ، ترتيب اجرا ، و سطوحتقديم را شرح مي دهد . حالت همه منابعوقفه از طريق بيتهاي پرچم در SFR ها قابل دستيابي است . البته اگر وقفه اي غير فعال شده باشد ، اتفاق نخواهد افتاد ، اما نرم افزار باز هم پرچم وقفه را تست مي كند . مثالهايدرگاه سريال و تايمر در دو فصل اخير بدون استفاده واقعي از وقفه ها ، بطوروسيع از پرچمهاي وقفه بهره بردند .
يك وقفه درگا سريال ناشي از OR منطقي دريافت وقفه (RI) يا ارسل وقفه (TI) مي باشد همچنين وقفه هاي تايمر2 با سرريز تايمر (TF2) يا پرچم ورودي خارجي (EXF2) تويد مي شوند . بيتهاي پرچم كه مقفه ها را توليد مي كنند ، در جدول 3-6 خلاصه شده اند .
3-6 وقفه هاي پردازنده
هنگام وقوع يك وقفه و پذيرش آن توسط CPU ، برنامه اصلي مورد وقفه قرار مي يگرد واعمال زير انجام مي شوند :
اجراي دستورالعمل  فعالي كامل مي شود .
PC در پشته ذخيره مي شود .
وضعيت وقفه جاري بطور داخلي ذخيره مي شود .
وقفه هاي. مسطح با اين وقفه متوقف ميشوند .
 PCبا آدرس برداري ISR بار مي شود .
ISR اجرا مي شود .
جدول 3 بيتهاي پرچم وقفه
وقفه                پرچم                 ثبات SFR و موقعيت بيت
0 خارجي             IE0                    TCON.1
1 خارجي             IE1                    TCON.3
تايمر 1            TF1                    TCON.7
تايمر 0            TF0                    TCON.5
درگاه سريال         TI                    SCON.1
درگاه سريال         RI                    SCON.0
تايمر 2            TF2                    T2CON.7(8052)
تايمر 2            EXF2                T2CON.6(8052)

 
اجراي ISR ، پاسخگويي به وقفه است ، و با دستورالعمل RETI (برگشت از وقفه) خاتمه مي يابد. با انجام اين عمل مقدار قبلي PC از پشته بازيابي شده و وضعيت قبلي نيز  ذخيره مي گردد . اجراي برنامه اصلي پس از وقفه ادامه مي‌يابد .

1-3    بردارهاي وقفه
هنگامي كه يك وقفه مورد پذيرش قرار مي گيرد ، عدد بار شده در PC  بردار وقفه ناميده مي شود ; كه در واقع آدرس شروع ISR براي منبع وقفه است . بردارهاي وقفه در جدول 4-6 ارائه شده اند .
بردار reset سيستم (RST در آدرس 0000H ) نير در جدول آمده است . از آن جا كه اين حالت مانند يك وقفه است ، برنامه اصلي رامورد وقفه قرار داده و PC را با مقدار بار مي كند .
هنگام " بردار كردن يك وقفه " پرچميكه باعث وقه مي شود ، بطور خودكار توسط سخت افزار پرك مي گردد . RI و TI براي وقفه هاي درگاه سريال و TF2 و EXF2 براي وقفه هاي تايمر2 ، از اين امر مستثنا هستند . چون براي هر يك از يوقفه ها دو منبع وجود دارد ، پاك كردن پرچم وقفه توسط CPU عملي نيست . اين بيتها بايد در ISR براي تعيين منبع وقفه ، آزمايش شوند ؛ و سپس پرچم وقفه دهند توسط نرم افزار پاك مي شود . معمولاٌ با توجه به مبنع وقفه انشعابي به عملياتي مناسب صورت مي گيرد .








انجام پایان نامه

انجام پایان نامه کامپیوتر، انجام پایان نامه ارشد کامپیوتر، انجام پایان نامه، پایان نامه

برای دیدن ادامه مطلب از لینک زیر استفاده نمایید

 

انجام پایان نامه | دانلود مقاله

سفارش پایان نامه