المعالجات والمتحكمات المصغرة الجزء الرابع (01-19)


0001

0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019

المعالجات والمتحكمات المصغرة
المحاضرة الرابعة والأخيرة
النظام الفرعي للمؤقت والمقاطعة
جامعة حلب – كلية الهندسة الكهربائية والالكترونية
سنة رابعة – قسم الميكاترونيكس
ترجمة أحمد رامي قباني || RamiKabbani.wordpress.com
وظائف المقاطعة وإعادة الضبط
 تقوم بمقاطعة تنفيذ البرنامج وتنشئ تفريعة تقوم بتنفيذ ال ISR عند حصوله.
 هذه العملية مفيدة من أجل الاستجابة اللحظية للأحداث الخارجية، عندما
يكون )انتظار المعالج الصغري لحصول حدث ما مضيعة للوقت(
. 1 تستخدم المقاطعات لمتابعة الوقت باستمرار،
. 2 زر الإطفاء الطارئ،
. 3 أجهزة مثل لوحة المفاتيح.
 إعادة الضبط؛ يعمل بالطريقة ذاتها.
ترجمة وتنسيق: رامي قباني. إلقاء الدكتور: عبد الغني البكار.
2
ترجمة أحمد رامي قباني || RamiKabbani.wordpress.com
عملية المقاطعة
 كل مقاطعة لها شعاع عنوان.
 يقوم المترجم بوضع عنوان بداية ال ISR وتعليمات القفز في مكان
شعاعي.
 عندما تحدث المقاطعة،
. 1 يكمل البرنامج تنفيذ التعليمات الحالية ويتفرع إلى المكان
الشعاعي.
. 2 ثم يقوم البرنامج بتنفيذ تعليمة القفز إلى ال ISR ويبدأ بتنفيذها.
ترجمة وتنسيق: رامي قباني. إلقاء الدكتور: عبد الغني البكار.
3
ترجمة أحمد رامي قباني || RamiKabbani.wordpress.com
عملية المقاطعة
 عندما تحدث المقاطعة،
 يتم تخزين عنوان العودة في مكدس النظام.
 التعليمة الأخيرة في ال ISR هي RETI ، وتسبب
. 1 استعادة عنوان العودة من المكدس،
. 2 ويتابع البرنامج تنفيذه من ذات النقطة التي وردت المقاطعة عندها.
 لا يمكن في الشريحة ATmega16 صناعة شبكات من المقاطعات،
حيث تتمتع جميع المقاطعات بالأولوية ذاتها،
 عندما تحدث مقاطعتين في الوقت ذاته، يتم أولا تنفيذ المقاطعة ذات القيمة
الأدنى للشعاع…
ترجمة وتنسيق: رامي قباني. إلقاء الدكتور: عبد الغني البكار.
4
ترجمة أحمد رامي قباني || RamiKabbani.wordpress.com
المصادر الستة الأولى للمقاطعات
عنوان البداية
رقم الشعاع
المصدر
الوصف
0x0000
1
إعادة الضبط
إعادة الضبط من الخارج،
التشغيل، انتهاء زمن مؤقت
المراقبة
0x0002
2
المقاطعة الخارجية 0
تحدث عند ورود إشارة من
العتاد الصلب على القطب INT0
0x0004
3
المقاطعة الخارجية 1
تحدث عند ورود إشارة من
العتاد الصلب على القطب INT1
0x0006
4
مقارن المؤقت 2
تحدث عند حصول تطابق عند
مقارن المؤقت 2
0x0008
5
طفحان المؤقت 2
تحدث عند حدوث طفحان في
المؤقت 2
ترجمة وتنسيق: رامي قباني. إلقاء الدكتور: عبد الغني البكار.
5
ترجمة أحمد رامي قباني || RamiKabbani.wordpress.com
بدء المقاطعات
. 1 نقوم برفع الحجب عن المقاطعات التي سيتم تفعيلها،
• وذلك عن طريق إعداد حاجب المقاطعة في GICR
. 2 تفعيل المقاطعات الغير محجوبة وبشكل عام.
• ويتم ذلك عن طريق التعليمة: #asm(“sei”)
. 3 ضبط بتات تحسس المقاطعات في MCUCR
• حسب القيمة )منخفض، تغير منطقي(،
• حسب الحواف )هابطة، صاعدة(.
ترجمة وتنسيق: رامي قباني. إلقاء الدكتور: عبد الغني البكار.
6
ترجمة أحمد رامي قباني || RamiKabbani.wordpress.com
المسجلات INT0 ،
و INT1 ، و INT2 .
7
ملاحظات: العلم INTFx يأخذ قيمته عند حصول المقاطعة الموافقة له، وتتم إعادة ضبطه عن طريق تنفيذ ال
ISR أو كتابة القيمة 1 منطقي على العلم.
ترجمة وتنسيق: رامي قباني. إلقاء الدكتور: عبد الغني البكار.
مثال عن INT0
 تقوم الدارة بتشغيل
ضوء LED موصول على
القطب PC0 ، وذلك عند
الضغط على زر كباس
موصول مع القطب
INT0 .
ترجمة وتنسيق: رامي قباني. إلقاء الدكتور: عبد الغني البكار.
8
ترجمة أحمد رامي قباني || RamiKabbani.wordpress.com
مثال عن برنامج يستخدم INT0
#include <mega16.h>
interrupt (EXT_INT0) void ext_int0_isr(void){
PORTC = PORTC ^ 0x1; /*
» سي « تشغيل الخانة الأقل أهمية في المنفذ */
}
void main (void)
{
DDRC = 0x01; /* تحديد الخانة
كخرج » سي « الأقل أهمية في */
GICR = 0x40; /* تحديد قيمة
اي ان تي « البت 0 بحيث تمكن المقاطعات الخارجية »
0*/
MCUCR = 0x02 /* تحديد قيمة
آي اس سي « 01 بحيث يتم تفعيلها عند الجبهة الهابطة »
*/
#asm(“sei”) /* تفعيل بت
التفعيل العام للمقاطعات */
while (1)
; /* لا تفعل شيء – ستقوم
المقاطعة بالعمل */
}
ترجمة وتنسيق: رامي قباني. إلقاء الدكتور: عبد الغني البكار.
9
ترجمة أحمد رامي قباني || RamiKabbani.wordpress.com
مثال عن برنامج يستخدم INT0
 في هذا المثال، تحدث المقاطعة عند ورود جبهة هابطة على القطب INT0 .
 يؤدي ذلك إلى تشغيل ال LED الموصول بالمنفذ C ، البت 0 ، عند كل مرة يتم
فيها الضغط على الكباس الموصول على القطب INT0 .
 تقوم كل من الأقطاب INT0 )القطب 16 (، و INT1 )القطب 17 (، و INT2
)القطب 3 ( بتفعيل المقاطعات في ATmega16 عندما
• يحصل حدث خارجي يقوم المستخدم بتحديد مواصفاته، على أحد الأقطاب المعنية
بتلك المقاطعة.
• يتم تفعيل كل من INT0 ، و INT1 إما عن طريق قيمة الإشارة، أو تشغيلها، أو
جبهاتها
• يتم تفعيل ال INT2 عن طريق الجبهات فقط.
ترجمة وتنسيق: رامي قباني. إلقاء الدكتور: عبد الغني البكار.
10
ترجمة أحمد رامي قباني || RamiKabbani.wordpress.com
إعادة الضبط
 هناك ثلاثة مصادر تؤدي إلى تفعيل إعادة الضبط:
. 1 تطبيق إشارة منطقية منخفضة على قطب إعادة الضبط لفترة أطول من
50 نانو ثانية،
. 2 جزء من تسلسل التشغيل الأول للمعالج الصغري،
. 3 عن طريق نفاذ الوقت في مؤقت المراقبة.
 بدء تنفيذ البرنامج عند الموقع 0x0000
. 1 يتم إيقاف جميع الطرفيات )بما فيها ال WDT ،)
. 2 يتم تحديد حالة جميع المنافذ بحيث تكون مداخل،
. 3 يتم تعطيل كافة المقاطعات.
ترجمة وتنسيق: رامي قباني. إلقاء الدكتور: عبد الغني البكار.
11
ترجمة أحمد رامي قباني || RamiKabbani.wordpress.com
مؤقت المراقبة
 هو جهاز أمان، يؤدي إلى تفعيل قطب إعادة الضبط في حالة:
. 1 ضياع أو اختلال المعالج الصغري
. 2 عمل أي شيء لا يعتبر تنفيذا للبرنامج.
 كيف يمكن أن يحصل ذلك؟
• يقوم مؤقت المراقبة WDT بإعادة ضبط المعالج الصغري إذا نفذ الوقت فيه.
• يقوم البرنامج عادة بتصفير مؤقت المراقبة لمنع نفاذ الوقت فيه.
• سينفذ الوقت من مؤقت المراقبة إذا ضاع البرنامج في أحد مراحله أو تم
إغلاقه، وسيؤدي ذلك إلى إعادة ضبط المعالج الصغري.
ترجمة وتنسيق: رامي قباني. إلقاء الدكتور: عبد الغني البكار.
12
ترجمة أحمد رامي قباني || RamiKabbani.wordpress.com
مسجل التحكم بمؤقت المراقبة ) WDTCR )
ترجمة وتنسيق: رامي قباني. إلقاء الدكتور: عبد الغني البكار.
13
البت )البتات(
الاسم )الاسماء(
الوصف
WDTOE
بت تفعيل إغلاق مؤقت المراقبة
يسمح بإيقاف عمل ال WDT
WDE
تشغيل مؤقت المراقبة
يفعّل مؤقت المراقبة
WPx
بت تقسيم مؤقت المراقبة
يحدد قيمة دور مؤقت المراقبة.
ترجمة أحمد رامي قباني || RamiKabbani.wordpress.com
تردد الساعة ونفاذ الوقت ل WDT
 إن ساعة ال WDT مفصولة عن ساعة النظام.
 يتعلق ترددها بالجهد المطبق على المعالج الصغري.
• عندما يكون الجهد 5 فولت والتردد 1 ميغا هرتز.
ترجمة وتنسيق: رامي قباني. إلقاء الدكتور: عبد الغني البكار.
14
WDP2
WDP1
WDP0
نفاذ الوقت عند جهد التغذية 5 فولت
نفاذ الوقت عند جهد التغذية 3 فولت
0
0
0
16 ميللي ثانية
17 ميللي ثانية
0
0
1
33 ميللي ثانية
34 ميللي ثانية
0
1
0
65 ميللي ثانية
68 ميللي ثانية
0
1
1
130 ميللي ثانية
140 ميللي ثانية
1
0
0
260 ميللي ثانية
260 ميللي ثانية
1
0
1
520 ميللي ثانية
550 ميللي ثانية
1
1
0
1000 ميللي ثانية
1000 ميللي ثانية
1
1
1
2100 ميللي ثانية
2200 ميللي ثانية
ترجمة أحمد رامي قباني || RamiKabbani.wordpress.com
مثال عن WDT : إعداد العتاد الصلب
ترجمة وتنسيق: رامي قباني. إلقاء الدكتور: عبد الغني البكار.
15
ترجمة أحمد رامي قباني || RamiKabbani.wordpress.com
مثال عن WDT : البرنامج
#include <mega16.h>
static unsigned intwaiter; /* متحول خاص بالنبضات الزمنية */
void main (void)
DDRC = 0x1; /* سي « تحديد القطب 0 كخرج » */
/* انتظر حتى يتم الضغط على الزر */
while (PINA.0 == 1)
{
; /* انتظر حتى يتم الضغط على الزر الكباس */
}
ترجمة وتنسيق: رامي قباني. إلقاء الدكتور: عبد الغني البكار.
16
ترجمة أحمد رامي قباني || RamiKabbani.wordpress.com
مثال عن برنامج WDT
WDTCR = 0x0b /* تفعيل مؤقت المراقبة بزمن
انتهاء 130 ميللي ثانية */
/* ابقَ في هذه الحلقة طالما أن الزر مضغوط */
while (PINA.0 == 0)
{
#asm(“wdr”); /* قم دائما بإعادة ضبط ال
» دبليو تي « */
++waiter; /* قم بزيادة قيمة هذا المتحول */
if (waiter == 50000)
{
PORTC.0 = PORTC.0 ^ 1; /*
تطبيق المتمم الأحادي على بت القطب */
waiter = 0; /* قم بإعادة ضبط
المتحول من أجل زمن التأخير التالي */
}
}
while(1); /* قسم يعلق داخله البرنامج ليسمح
بطفحان مؤقت المراقبة */
{}
ترجمة وتنسيق: رامي قباني. إلقاء الدكتور: عبد الغني البكار.
17
ترجمة أحمد رامي قباني || RamiKabbani.wordpress.com
مثال ال WDT
 يقوم S1 بتفعيل مؤقت المراقبة، ويجب أن يتم إعادة ضبطه كل
120 ميللي ثانية لتجنب حصول إعادة ضبط للمعالج الصغري.
 طالما أن الكباس S1 مفعل، سيتم إعادة ضبط مؤقت المراقبة
باستمرار، وسيومضالضوء باستمرار.
عندما نترك الكباس S1 ، يحصل طفحان في WDT )مؤقت
المراقبة( ويقوم بإعادة ضبط المعالج الصغري كل 130 ميللي ثانية.
ترجمة وتنسيق: رامي قباني. إلقاء الدكتور: عبد الغني البكار.
18
ترجمة أحمد رامي قباني || RamiKabbani.wordpress.com
منع البرنامج من إبطال مفعول ال WDT عن طريق
الخطأ
 بعد تفعيل ال WDT ، هناك خطوتان لإيقاف تفعيله:
. 1 ضبط كل من WDE و WDTOE سوية
WDTCR = 0x18
. 2 مسح البت WDEWDTCR = 0x00
ترجمة وتنسيق: رامي قباني. إلقاء الدكتور: عبد الغني البكار.
19
ترجمة أحمد رامي قباني || RamiKabbani.wordpress.com

أضف تعليق