8051: משפחת הבקרים הזעירים

משפחת המיקרו-בקרים 8051 – אביב רווח

 

ה-8051 הוא בקר ממשפחת המיקרו-בקרים 80C51, שמקורה בעיצוב המקורי של אינטל שיוצר בתחילת שנות השמונים (צאצא של ה- 8048 הקדום).

 

ה-8051 הוא המיקרו-בקר הראשון, שהציג את שיטת מיעון-סיבית, המאפשרת גישה לכלל המידע החל מהסיבית ה-32 בזיכרון החיצוני באופן פרטני של הרמת סיבית/הורדת סיבית בעזרת שימוש בסט הוראות חדשניות.

מודל הזיכרון של המעבד נחשב מורכב באותה התקופה, אך בשל הגמישות הרבה שהוא איפשר בעיצוב מערכות, הפך ה-8051 לפופולארי ביותר (נמכרו מעל 2 מיליון יחידות מאז שנת 1988).

 

מאז העיצוב המקורי של המעבד שפותח על-ידי אינטל, חברות נוספות ייצרו שלל דגמים נוספים של המעבד, ביניהן:

AMD, Atmel, Cygnal, Dallas, Infineon, Philips, Signetics ,Siemans ואחרות.

 

 

מעט פרטים טכניים על השבב המקורי (כבסיס לגרסאותיו הרבות החדשות)

 

הוא היה בקר 8 סיביות (כיום הוא בקר 16 סיביות) וכלל 256 בתים של זיכרון RAM (מובנה על השבב), שהיו נגישים באופן ישיר או באופן עקיף על-ידי שימוש באוגרים. במידה וזכרון הקריאה/כתיבה הפנימי אינו מספיק, ניתן להוסיף זיכרון חיצוני. זכרון זה מיועד לנתונים. כדי לגשת לתא באיזור זיכרון זה, נעזרים באוגר נוסף בן 16 סיביות, ה- DPTR (Data Pointer), בו רושמים את כתובת התא אליו רוצים לפנות. בימנו, בקרים מתקדמים מבוססי-8051 מכילים שני אוגרי DPTR ויש אפילו שמכילים שמונה.

ה-8051 כלל 4KB של זיכרון ROM, היו לו 32 ערוצי קלט/פלט, 2-3 מוני-זמן(timers) בני 16 סיביות, 5-6 פסיקות (שתיים חיצוניות ושתיים בעלות אופציה לקביעת סדר עדיפויות).

 

הבקר משתמש במערכת הוראות אסמבלי הקרויה  MCS-51(או לעתים MCS-251), שמן הסתם, פותחה גם היא על-ידי אינטל. מערכת הוראות זו כוללת בערך 255 פעולות. קל מאוד ללמוד לתכנת בה בשל הדמיון הרב בין הפקודות שלה לבין פקודות הבסיס ב- 80x86 הסטנדרטי (כל מחשב ביתי).

פעולה בסיסית מתבצעת ב- 12 Clock Cycle (4 Clock Cycle בחלק מהבקרים המתקדמים, כמו אלו שבסדרת ה- E5 של חברת Triscend).

 

 

ה- RAM

 

כשההוראה MOV A,00 מתבצעת, הבית במיקום 00 בזיכרון ה- RAM, נקרא ונכתב אל ה- accumulator. 128 הבתים הראשונים הם למטרות-כלליות (general purpose), אך, 128 הבתים העליונים הם האוגרים המיוחדים- Special Function Registers (SFR), שאחראים על המחסנית, התקשורת הטורית, מוני-הזמן, הפסיקות ועוד (ב- 8051 הבסיסי מנוצלים בפועל רק 26 כתובות מתחום זה, כל שאר המקום יועד ליישומים עתידיים נוספים). לכן, יש לתת תשומת-לב מיוחדת לשינויים בכתובות אלו, שכן הם אחראים על מצב הפעולה הנוכחי של הבקר.

 

 

פסיקות ומוני-זמן

 

בין האוגרים המיוחדים, קיימים אוגרים הקשורים בפסיקות. מצב פסיקה הוא מצב בו מתבקש ה- CPU להפסיק לרוץ על התוכנית בה הוא נמצא, ולפנות לקטע קוד אחר. קטע קוד כזה נקרא פסיקה.

בקשת פסיקה יכולה להתקבל במספר צורות. מערכות חיצוניות לבקר יכולות להתחבר ל- 2 קווים, הנכנסים אל הבקר ובעזרתם להודיע ל- CPU על בקשת פסיקה. בקשה כזו נקראת External Interrupt.

 

בין יתר האוגרים, קיימים מוני-זמן. מונה זמן הוא למעשה מונה בינארי הסופר את האותות הנכנסים אליו. אותות אלה יכולים להגיע ממקורות שונים כולל מקורות חיצוניים לבקר. כאשר מגיעים אליו אותו בתדירות קבועה, הופכת המנייה למדידת זמן. כאשר מסיים המונה לספור עד מספר מסויים שנקבע מראש, הוא יוצר בקשת פסיקה פנימית (Internal Interrupt) לבקר. אם מפעילים את המונים בצורה זו, ניתן ליצור פסיקות בקצב מוגדר מראש. אופציה יכולה לשמש למשל מערכת בקרת מהירות ברובוט.

ב- 8051, ניתן לחסום בקשות פסיקה מסוימות או לקבוע סדר עדיפות במקרה של קבלת יותר מבקשה אחת בו זמנית. קביעת החסימה, הנקראת מיסוך (MASK) וסדר העדיפויות נקבעים על-ידי הערכים המושמים באוגרים IP (Interrupt Priority) ו- IE (Interrupt Enable).

 

 

יתרונות הבקר

 

 

חברת Dallas (Maxim) השיקה לאחרונה את ה- DS89C420 Ultra High-Speed Microcontroller, הבקר התואם-8051 הראשון, שמגיע לשיאים חדשים במהירויות עיבוד ; הוא

מסוגל לבצע פקודת מכונה ב- Clock Cycle יחיד (שקול ל- 50 MIPS) !!

 

 

חסרונות הבקר

 

 

 

הערה: הבקרים החדישים מבוססי ה- 8051 מכילים אופציות מתקדמות יותר כמו: פסיקה בלעדית עבור קו התקשורת ל- PC, פסיקה בלעדית לממיר ה- A/D, תמיכה ב- CAN (-Campus Area Network רשת מקומית הכוללת קישוריות בפס מהיר בין בניינים באזור גיאוגרפי מוגדר כמו קמפוס, בית-חולים וכו'),

Power Management Mode (בו הבקר בוחר מהירות עיבוד על-פי התוכנה ומנהל את כל התהליכים במצב של פחות אנרגיה מבלי להיכבות), תפעול מובנה למנועי צעד (Stepper-motor drive), תמיכה ב- DSP (Digital Signal Processing- מדע המיועד באופן עיקרי למערכות משובצות מחשב, המשמש לפענוח אותות כמו- קריאת חיישנים לגבי זרמים שנוצרים בידי המוח והלב, רדאר, קריאה ממצלמת וידאו וכו'. יש לכך שימושים רבים במגוון תחומים: טכנולוגיות זיהוי קול, עיבוד תמונה, כיווץ מידע, ועוד).

 

 

למעוניינים להשתמש בבקר זה לצרכי פרוייקט, אני ממליץ לרכוש ערכת פיתוח מבוססת 8051.

ערכה מצויינת לחובבנים ולמקצוענים היא זו של PJRC.COM.

הערכה כוללת לוח עם חיבור טורי למחשב בפרוטוקול RS-232. בכדי להעלאות תוכנה אל הכרטיס

יש לרכוש כבל DB-9 (לא null modem). התקשורת נעשית במהירויות גבוהות: 115200, 75600 וכו'.

 

 

הלוח עצמו כולל 50 קווי תקשורת קלט-פלט, 32K SRAM לתוכנה ומשתנים

ו- 30K FLASH ROM  למידע לא קבוע (נמחק בכל אתחול)

 

חסרון בערכה זו טמון בעובדה שהיא אינה מספקת המרת A/D. יש לבנות לוח Interface חיצוני עם שבב ADC, שיתחבר לקווי התקשורת הדיגיטליים הקיימים, בכדי לבצע המרה של קריאות אנלוגיות לדיגיטליות (חיוני בעת קריאת קלט מחיישן מרחק כמו ה- GP2D02).

 

בין היתר, הערכה כוללת מערכת debugging משוכללת (עד כמה שאפשר במסגרת לוח חובבני) בשם PAULMON2. ניתן למצוא מידע נוסף על מערכת זו באתר-

http://www.pjrc.com/tech/8051/pm2_docs

מידע נוסף על ערכת הפיתוח ניתן למצוא באתר-

http://www.pjrc.com/tech/8051/board4

 

 

קריאה נוספת

 

ל-8051 יש דף FAQ (שאלות ותשובות) מעניין ביותר, שנכתב בידי ישראלי בשם ראש הרש:

http://www.brillianet.com/electronics/microcontrollers/tutorials/8051/faq.htm

 

 

 

אחד הבקרים האהובים עלי, בו משתמשים חובבנים רבים הוא ה- DS5000 של חברת Dallas Semiconductor (התאחדה עם Maxim לאחרונה). ניתן למצוא עליו פרטים באתר-

http://dbserv.maxim-ic.com/quick_view2.cfm?qv_pk=2946

 

בקר נוסף, אהוב עלי במיוחד הוא ה- C8051F020 של חברת Cygnal. הבקר עובד במהירות 25MIPS, וכולל- זיכרון 64k Byte Flash, זיכרון 4352 Byte RAM, 64 קווי קלט/פלט,

כניסת A/D בת 12 סיביות, כניסת D/A בת 12 סיביות, חמישה מוני-זמן (Timers) בני 16 סיביות,

שני UART-ים ותמיכה מובנית ב- SPI ו- I2C.

הבקר יקר ועולה בסביבות ה- $36. לכן, מומלץ מאוד להשקיע מעט כסף ולרכוש את חבילת הפיתוח המלאה- C8051F020DK, הנמכרת ב- $129 בלבד! (כוללת מתאם טוריEC2 , כבל RS-232 לחיבור למחשב, שנאי ודיסק הכולל- IDE, אסמבלר ומהדר לשפת C).

ניתן למצוא פרטים נוספים על הבקר באתר-

http://www.cygnal.com/products/C8051F020.htm

פרטים נוספים על חבילת הפיתוח אפשר למצוא באתר-

http://www.cygnal.com/products/c8051f020dk.htm

 

מידע כללי בנוגע למשפחת ה- 8051 ניתן למצוא באתר [לעתים מחשיבים את ה- 8051

וה- 8052 כמשפחה אחת (הנגזרת מה- 8031 הקדום, שלא כלל ROM פנימי). אם אני לא טועה ה- 8052 נגזר מה- 8051] -

http://www.8052.com/

 

ערכת פיתוח תוכנה אהובה עלי היא זו שפיתחה חברת Keil Software העולמית (לה גם נציגות

בתל-אביב). הערכה כוללת אסמבלר ומהדר C. ניתן להזמין דיסק הדגמה של מוצרי הפיתוח ל- 8051 דרך האתר:

http://www.keil.com

 

ספר מומלץ הוא "The 8051 Microcontroller - Hardware, Software and Interfacing", מהדורה שנייה, ISBN 0-13-531948-X. הספר טכני מאוד ומספק הכרות מעמיקה עם משפחת

ה-8051 למתכנת הבינוני/מקצועי (כולל נספח עם פירוט מלא של הוראות ה- MCS-51).  ניתן לקבל פרטים על הספר באתר:

http://www.amazon.com/exec/obidos/ASIN/013531948X/qid%3D1022585466/ref%3Dsr%5F11%5F0%5F1/002-2831006-9545620




רוצה ללמוד כיצד לחשב ערכי התנגדות של נגד?

,בעלי אתר זה לא ישאו באחריות כלשהי לכל נזק, כספי או אחר
שייגרם במישרין או בעקיפין משימוש במידע המצוי באתר זה

כל הזכויות שמורות לאסף פוניס, גיא יונה ואלי קולברג ©
אין להעתיק תכנים מאתר זה ללא רשות בכתב ממנהלי האתר

אתר זה נצפה באופן מיטבי ברזולוציית 1024X768