איך עובדות מערכות Embedded?

עודכן לאחרונה: 24 אוקטובר, 2022

יש לכם שאלות? נשמח לדבר איתכם ולענות על הכל

איך עובדת Embedded System?

מערכות Embedded מנוהלות על-ידי ליבות עיבוד בודדות או מרובות Microprocessors או Microcontrollers. הכוללת בסופו של עניין את לב המוצר ה- CPU.
ה CPU הוא מעגל משולב (IC) שיודע לבצע בין 150-300 פקודות ייחודיות (בהתאם לסוג ה- CPU).

 

תהליך הרצת הקובץ

תחילה המתכנת כותב קוד בשפה עילית (C ,C# ,C++ ,JAVA ,Python) לאחר הידור (Compilation) הקוד מקור מתורגם לקוד בשפת מכונה הידועה גם בשמה Opcodes (אותם פקודות שה CPU מכיר) ונשמר כקובץ הרצה.

בעת "הרצת הקובץ" פקודות ה Opcodes עולים לזיכרון ה RAM והמעבד מבצע את הפעולות הבאות בעבור כל פקודת מעבד שהוא רואה:

  • Fetch – העברת הפקודה מהזיכרון למעבד
  • Decode – תרגום הפקודה (מה בדיוק צריך לבצע)
  • Run – הרצת הפקודה

תכונת המפתח של מערכת Embedded היא ההקדשה לפונקציה ספציפית שבדרך כלל דורשת מעבדים ייחודיים למטרות כלליות. לדוגמה – ניהול Smart Home – כוללת בין השאר מתגי כיבוי והדלקה של מערכות חשמל, ניהול תצרוכת המים, ניהול המזגן מרחוק, זיהוי דירי הבית וכו'. אכן את כל הדרישות הנ"ל ניתן לבצע גם עם מחשב Windows מבוסס Intel לדוגמה – אז היכן באה לידי ביטוי הייחודיות של Embedded?

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

איך עובדת Real Time Embedded System?

תנו לנו להפתיע אתכם, לא כל מערכת Real-Time היא בהכרח מערכת Embedded.

אתם יכולים למצוא מערכות Real-Time המבוססות על PC או על מערכות המבוססות על חומרה בלבד.

נסביר תחילה מהי מערכת Real-Time – מערכת Real Time הן מערכות שזמן התגובה שלהן הוא מיידי ותחום בטווח זמן מסוים.

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

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

 

ניתן להבחין בין שני סוגים עיקריים במערכות Real-Time:

  • Hard Real Time – אלו מערכות שבהן זמן תגובה מסוים, לרוב זמן תגובה קצר, הוא קריטי. כלומר, מערכות שטיב הביצוע שלהן או הצלחה בתגובת המערכת תלוי בכך שהמערכת תגיב בפרק זמן שנקבע מראש (לרוב מידי), לדוגמה – יירוט טיל. אם המערכת לא תבצע בזמן את הפקודה זה ייחשב לכישלון.
  • Soft Real Time – במערכות מהסוג הזה אין זמן מסוים לביצוע הפקודה, המערכת מצופה לעשות את "הטוב ביותר שלה" (Best Effort). מערכות אלו הן דווקא אופטימליות יותר מבחינת התגובה שלהן אך זמן התגובה שלהן איטי יותר, לדוגמה – יישומים של מולטימדיה - VOIP.

ארכיטקטורות ל-Embedded ומערכות הפעלה

מערכות Embedded הן מערכות שדורשות פיתוח Low level, הן יכולות להופיע על החומרה בתצורות הבאות:

1. Bare-board או Bare-Metal

הכוונה היא לכך שהתוכנית (הפקודות Opcode) רצה ישירות על המעבד. היות ואין שימוש במערכות הפעלה מתייחסים אל זה בשם "לוח ערום" (Bare-Board).

ברוב המקרים בעת הדלקת המערכת ירוץ ה Boot-Loader (קוד ראשוני אשר ידע להגדיר את החומרה של מערכת האמבדד – זכרון, CPU וכן IO) לאחר מכן ירוץ ה User-Program התוכנית העיקרית אשר מיישמת את הפעולה אשר נדרשנו לבצע.

כל מערכת אמבדד מורכבת ע"פ ארכיטקטורות חומרה ייחודית, קיימות כיום אלפי (אם לא עשרות אלפי) ארכיטקטורת CPU כגון ARM ,SPARCM ,PIC ,INTEL ,AMD וכו'
אחת מהארכיטקטורות השכיחות ביותר היא ארכיטקטורת ARM (או בשמה המלא - Acorn RISC Machine). על כך נלמד במסגרת קורס ARM.
ארכיטקטורות מסוג כזה דורשות לרוב ידע בשפות תכנות בסיסיות כמו שפת C או שפת C++.

2. OS Based

מבוססות מערכות הפעלה. כאשר אנו מפתחים מערכת שצריכה לבצע מספר פעולות – Multi tasking – אנו זקוקים למערכת Embedded המאפשרת הרצת מערכת הפעלה - בד"כ תצטרך רכיב MMU לניהול הזיכרון. בנוסף, בעת שימוש במערכות הפעלה מתאפשרת לנו היכולת הפרדה בין פיתוח התוכנית הנדרשת (האפליקציה או האלגוריתם) לבין הDriver (מנהל התכנים שלנו) בעבור החומרה, היתרון בא לידי ביטוי בכך ששינוי בחומרה לא יהווה שינוי משמעותי בפיתוח האפליקציה.

מערכת ההפעלה הפופולרית ביותר היום היא Linux. בעבור מערכות אמבדד – Embedded Linux מערכת הפעלה Linux היא מערכת מבוססת קוד פתוח המאפשרת התאמה למעבדים שונים ופלטפורמות שונות. Linux מעניקה יציבות ותומכת ברוב התקני החומרה הקיימים כיום בתעשייה. 

שפות תכנות למערכות Embedded

במערכות Embedded בחירת שפת התכנות מוכרעת על ידי מספר גורמים שיש לקחת בחשבון:

  • גודל זיכרון ה RAM – זהו הזיכרון הנדיף, כולל את ה Data & Instructors אליו עולים קבצי הרצה.
  • גודל הזיכרון Flash – זהו אמצעי לאחסון נתונים שנכתבו עליו, לדוגמה בעת הייצור, ניתן לכתוב עליו מספר רב של פעמים.
  • מהירות CPU – מהירה או איטית?
  • ניידות – האם זו תוכנה שניתן להתקין על מעבדים שונים או פלטפורמות שונות?
  • קלות הטמעה ותחזוקה פשוטה.
  • User Friendly – שימוש פשוט למשתמש

השפה הפופולרית ביותר במקרה של מערכת Embedded היא שפת תכנות C.

שפת C היא שפת התכנות הבסיסית בעלת יעילות ופשטות המתאימה באופן מושלם למערכות Embedded. בנוסף, שפת C מהווה בסיס לשפות תכנות מתקדמות יותר. לכן, אם תרצו לעסוק בתכנות או בבניית מערכות Embedded מכל סוג אנחנו ממליצים מאוד על לימוד שפת C.

פתרונות פיתוח EMBEDDED SYSTEMS לארגונים ולחברות


תחומי לימוד הכי מבוקשים בהייטק בשנת 2024

יש לכם שאלות? נשמח לדבר איתכם ולענות על הכל
© כל הזכויות שמורות Real Time Group