اقرأ في هذا المقال
- ما هي المقاطعات في المعالج الدقيق 8085؟
- أنواع المقاطعات في المعالج الدقيق 8085
- أولوية المقاطعات Priority of Interrupts
ما هي المقاطعات في المعالج الدقيق 8085؟
عندما يتلقى المعالج الدقيق أي إشارة مقاطعة (interrupt) من الأجهزة الطرفية (peripheral) التي تطلب خدماتها، فإنّه يتوقف عن التنفيذ الحالي ويتم نقل التحكم في البرنامج إلى روتين فرعي (sub-routine) عن طريق توليد إشارة (CALL) وبعد تنفيذ الروتين الفرعي عن طريق توليد إشارة (RET) مرة أخرى، يتم التحكم في البرنامج ويعني ذلك الانتقال إلى البرنامج الرئيسي من حيث توقف، عندما يستقبل المعالج الدقيق إشارات المقاطعة، فإنّه يرسل إقرارًا (INTA) إلى الجهاز الطرفي الذي يطلب الخدمة.
أنواع المقاطعات في المعالج الدقيق 8085:
يمكن تصنيف المقاطعات إلى فئات مختلفة بناءً على معايير مختلفة:
مقاطعات الأجهزة والبرمجيات Hardware and Software Interrupts:
عندما تتلقى المعالجات الدقيقة إشارات المقاطعة من خلال دبابيس (pins) “أجهزة” (hardware) للمعالج الدقيق، فإنّها تُعرف باسم “مقاطعة الأجهزة” (Hardware Interrupts)، يوجد (5) مقاطعات للأجهزة في المعالج الدقيق (8085)، وهي: (INTR, RST 7.5, RST 6.5, RST 5.5, TRAP).
مقاطعات البرمجيات (Software Interrupts)، هي تلك التي يتم إدخالها بين البرنامج ممّا يعني أنّ هذه هي فن الإستذكار (mnemonics) للمعالج الدقيق، هناك (8) مقاطعات برمجية في المعالج الدقيق (8085)، وهي: (RST 0, RST 1, RST 2, RST 3, RST 4, RST 5, RST 6, RST 7).
المقاطعات الموجهة وغير الموجهة Vectored and Non-Vectored Interrupts:
المقاطعات المتجهة (Vectored Interrupts) هي تلك التي لها عنوان متجه ثابت “عنوان البداية للروتين الفرعي (sub-routine)”، وبعد تنفيذ هذه المقاطعات، يتم نقل التحكم في البرنامج إلى هذا العنوان، يتم حساب عناوين المتجهات بواسطة الصيغة (8 * TYPE).
المقاطعة (INTERRUPT) | عنوان المتجه (VECTOR ADDRESS) |
---|---|
TRAP (RST 4.5) | 24 H |
RST 5.5 | 2C H |
RST 6.5 | 34 H |
RST 7.5 | 3C H |
بالنسبة لمقاطعات البرمجيات، يتم إعطاء عناوين المتجه بواسطة:
المقاطعة (INTERRUPT) | عنوان المتجه (VECTOR ADDRESS) |
RST 0 | 00 H |
RST 1 | 08 H |
RST 2 | 10 H |
RST 3 | 18 H |
RST 4 | 20 H |
RST 5 | 28 H |
RST 6 | 30 H |
RST 7 | 38 H |
المقاطعات غير الموجهة هي تلك التي لا يتم فيها تحديد عنوان متجه مسبقًا، يعطي جهاز المقاطعة عنوان الروتين الفرعي لهذه المقاطعات، (INTR) هي المقاطعة الوحيدة غير الموجهة في المعالج الدقيق (8085).
المقاطعات القابلة للإخفاء وغير القابلة للإخفاء Maskable and Non-Maskable Interrupts:
المقاطعات القابلة للإخفاء (Maskable Interrupts)، هي تلك التي يمكن تعطيلها أو تجاهلها بواسطة المعالج الدقيق، يتم تشغيل هذه المقاطعات إمّا من خلال الحافة (edge-triggered) أو يتم تشغيلها على مستوى (level-triggered)، بحيث يمكن تعطيلها، (INTR و RST 7.5 و RST 6.5 و RST 5.5)، هي مقاطعات قابلة للإخفاء في المعالجات الدقيقة (8085).
المقاطعات غير القابلة للإخفاء (Non-Maskable Interrupts)، هي تلك التي لا يمكن تعطيلها أو تجاهلها بواسطة المعالج الدقيق، (TRAP) عبارة عن مقاطعة غير قابلة للإخفاء، وهي تتألف من كل من المستوى (level-triggered) وكذلك تشغيل الحافة (edge-triggered)، وتستخدم في حالات انقطاع التيار الكهربائي الحرجة.
أولوية المقاطعات Priority of Interrupts:
عندما يتلقى المعالج الدقيق طلبات مقاطعة متعددة في وقت واحد، فإنّه سينفذ طلب خدمة المقاطعة (ISR) وفقًا لأولوية المقاطعات.
تعليمات المقاطعات Instruction for Interrupts:
- تمكين المقاطعة (Enable Interrupt (EI)): تعمل المقاطعة على تمكين (flip-flop) وتعمل على تمكين جميع المقاطعات بعد تنفيذ التعليمات التالية متبوعة بـ (EI)، لا تتأثر أي إشارات (flags)، بعد إعادة تعيين النظام، تتم إعادة تعيين تمكين المقاطعة (flip-flop)، وبالتالي تعطيل المقاطعات، هذه التعليمات ضرورية لتمكين المقاطعات مرة أخرى “باستثناء (TRAP)”.
- تعطيل المقاطعة (Disable Interrupt (DI)): تُستخدم هذه التعليمات لإعادة تعيين قيمة (flip-flop)، وبالتالي تعطيل جميع المقاطعات، لا تتأثر الإشارات (flags) بهذه التعليمات.
- تشكيل قناع المقاطعة (Set Interrupt Mask (SIM)): يتم استخدامه لتنفيذ مقاطعات الأجهزة (RST 7.5 ،RST 6.5 ،RST 5.5)، عن طريق تعيين بتات مختلفة لتشكيل الأقنعة أو إنشاء بيانات الإخراج عبر خط بيانات الإخراج التسلسلي (SOD)، أولاً يتم تحميل القيمة المطلوبة في المجمع ثمّ تأخذ بطاقة (SIM) نمط البت منه.
- قراءة قناع المقاطعة (Read Interrupt Mask (RIM)): تُستخدم هذه التعليمات لقراءة حالة مقاطعات الأجهزة (RST 7.5 ،RST 6.5 ،RST 5.5)، عن طريق تحميل بايت في السجل (A) يحدد حالة بتات القناع للمقاطعات، يقرأ أيضًا حالة بت (SID) “بيانات الإدخال التسلسلي” على المعالج الدقيق.
عندما ترتفع إشارة (INTR)، يمكن أن تحدث الأحداث التالية:
- يتحقق المعالج الدقيق من حالة إشارة (INTR) أثناء تنفيذ كل تعليمة.
- عندما تكون إشارة (INTR) عالية، يكمل المعالج الدقيق تعليماته الحالية ويرسل إشارة استلام نشطة منخفضة للمقاطعة.
- عند تلقي التعليمات، يقوم المعالج الدقيق بحفظ عنوان التعليمات التالية على المكدس (stack) وتنفيذ التعليمات المستلمة.