ארכיטקטורה
פסיקות |
בין
האוגרים המיוחדים קיימים אוגרים
הקשורים בפסיקות. מצב פסיקה (INTERRUPT)
הוא מצב בו מתבקש ה-CPU להפסיק
לרוץ על התכנית בה הוא נמצא,
ולפנות לתכנית אחרת. תכנית זו
נקראת תכנית פסיקה. בקשת הפסיקה יכולה להתקבל במספר צורות. מערכות חיצוניות ל-CPU יכולות להתחבר ל2- קווים הנכנסים אל ה-CPU ובעזרתם להודיע ל-CPU על בקשת הפסיקה. בקשה כזו נקראת EXTERNAL INTERRUPT. אפשרות שניה, ע"י אחד משני קוצבי הזמן. ברגע שהם מסיימים למנות את המספר שנאמר להם למנות (ולאחר שהופעלו כמובן), הם מבצעים בקשת פסיקה. אפשרות שלישית, במקרה של תקשורת טורית, דרך הפורט הטורי הנמצא ב-CPU . עם קבלת הפסיקה, מסיים ה-CPU את ההוראה שהוא נמצא בה. הוא מאחסן את תוכן מונה התכנית, המצביע על כתובת ההוראה הבאה בתור. אחסון זה נעשה כדי שבסיום תכנית הפסיקה, יוכל לחזור ולהמשיך בתכנית בה הוא נמצא. לאחר האחסון הוא פונה לאזור הפניות שבתכנית המוניטור. באזור זה רשומות פקודות הפניה לתכניות הפסיקה השונות. הוא פונה לכתובת המתאימה, לבקשת הפסיקה שהתקבלה ומשם הוא מופנה לתכנית הפסיקה הרצויה. מיקום ההפניות הוא כדלקמן :
יש לדאוג שבכתובות אלו תימצאנה הפניות של תכניות הפסיקות השונות. צריך לזכור, שאזור זה נמצא ב-ROM המערכת. בזמן הפניה לתכנית הפסיקה או לתכנית משנה, מאחסן ה-CPU את תוכן מונה התכנית. אחסון תוכן זה יעשה באזור RAM הנקרא מחסנית. זהו זיכרון באזור ה-RAM הפנימי. כדי לדעת היכן בדיוק לאחסן, נעזר ה-CPU באוגר הנקרא מצביע מחסנית (SP - STACK POINTER). אוגר זה נמצא בין האוגרים המיוחדים שב-RAM הפנימי. הוא מצביע על כתובת בתוך ה-RAM הפנימי. כאשר מסתעף ה-CPU לתכנית משנה או לתכנית פסיקה, לפני ההסתעפות הוא מקדם את ה-SP ב1-. בכתובת ש-SP מצביע עליה הוא מאחסן את PCL. שוב הוא מקדם את SP ב1- והפעם מאחסן את PCH, כך הוא שומר ב2- בתים האחרונים את הכתובת אליה הוא צריך לחזור בסיום הפסיקה. SP נשאר להצביע על הנתון האחרון שאוחסן במחסנית. טעינת הנתונים חזרה נעשית בסדר הפוך לאחסון, לפי אחרון נכנס, ראשון יצא, כמו במחסנית של רובה. במחסנית משתמשים גם לאחסון נתונים בצורה ארעית. בזמן אתחול ה-CPU, מקבל SP את הערך 07. כלומר, דחיפת נתונים למחסנית תיעשה החל מתא 08. אזור זה הוא באזור BANK 1 של האוגרים R0-R7. אם עלולה להיווצר בעיה, יש לקבוע את SP לערך אחר. ניתן לחסום בקשות פסיקה מסוימות או לקבוע סדר עדיפויות במקרה של קבלת יותר מבקשת פסיקה אחת בו זמנית. קביעת החסימה (הנקראת מיסוך - MASK ) וסדר העדיפויות נקבע ע"י האוגרים IP ו-IE. בקרת הפסיקות :אוגר IE :
כאשר סיבית באוגר IE נמצאת ב-"0", היא חוסמת את הכניסה הרלוונטית לגביה. סיבית EA: חוסמת את כל הפסיקות, ולא משנה מה מצב שאר סיביות האוגר. כדי לאפשר פסיקה, צריך להעלות ל-"1" את הסיבית המתאימה לאותה הפסיקה וכן להעלות ל-"1", את סיבית EA. סיבית EX0: מאפשרת או חוסמת את בקשת הפסיקה החיצונית המגיעה מהרגל החיצונית INT0. סיבית ET0 :מאפשרת או חוסמת את בקשת הפסיקה המגיעה מ-TIMER0. סיבית EX1 :מאפשרת או חוסמת את בקשת הפסיקה החיצונית המגיעה מהרגל החיצונית INT1. סיבית ET1 :מאפשרת או חוסמת את בקשת הפסיקה המגיעה מ-TIMER1. סיבית ES :מאפשרת או חוסמת את בקשת הפסיקה המגיעה מהפורט הטורי של ה-UART. אוגר IP :
ב- 8051 קיימות שתי רמות עדיפות לפסיקה. כל אחד ממקורות הפסיקה ניתן לסיווג ברמת עדיפות גבוהה או נמוכה, ע"י כתיבה לאוגר IP. קביעת סיבית "1" בסיבית עדיפות פסיקה מסוימת, מעבירה אותה לרמת עדיפות גבוהה. יתכנו מספר פסיקות באותה רמת עדיפות (גבוהה או נמוכה). במקרה כזה העדיפות היא בהתאם לסדר הסיביות. PX0 בעלת העדיפות הגבוהה ביותר ו- PS בעלת העדיפות הנמוכה ביותר. סיביות 0 עד 6 מתייחסות בהתאמה לפסיקות שאופשרו באוגר IE. |