עד 50% הנחה
לקורסי בוקר במתכונת BOOTCAMP!
4 חודשים ונכנסתם להייטק כמפתחים מן השורה
אל תחמיצו את מועדי הפתיחה הקרובים:
מסלול Full Stack | 28/10 |
מסלול RT Embedded Linux | 30/10 |
מסלול Cyber | 30/10 |
מסלול Machine Learning | 30/10 |
מסלול Computer Vision | 30/10 |
עודכן לאחרונה: 24 אוקטובר, 2022
מערכות Embedded מנוהלות על-ידי ליבות עיבוד בודדות או מרובות Microprocessors או Microcontrollers. הכוללת בסופו של עניין את לב המוצר ה- CPU.
ה CPU הוא מעגל משולב (IC) שיודע לבצע בין 150-300 פקודות ייחודיות (בהתאם לסוג ה- CPU).
תחילה המתכנת כותב קוד בשפה עילית (C ,C# ,C++ ,JAVA ,Python) לאחר הידור (Compilation) הקוד מקור מתורגם לקוד בשפת מכונה הידועה גם בשמה Opcodes (אותם פקודות שה CPU מכיר) ונשמר כקובץ הרצה.
בעת "הרצת הקובץ" פקודות ה Opcodes עולים לזיכרון ה RAM והמעבד מבצע את הפעולות הבאות בעבור כל פקודת מעבד שהוא רואה:
תכונת המפתח של מערכת Embedded היא ההקדשה לפונקציה ספציפית שבדרך כלל דורשת מעבדים ייחודיים למטרות כלליות. לדוגמה – ניהול Smart Home – כוללת בין השאר מתגי כיבוי והדלקה של מערכות חשמל, ניהול תצרוכת המים, ניהול המזגן מרחוק, זיהוי דירי הבית וכו'. אכן את כל הדרישות הנ"ל ניתן לבצע גם עם מחשב Windows מבוסס Intel לדוגמה – אז היכן באה לידי ביטוי הייחודיות של Embedded?
מערכת Embedded מתוכננות להיות אופטימליות בעבור פונקציונליות ייחודית, מספר סופי של פעולות שהיא יודעת לעשות במהירות מקסימלית תוך כדי חיסכון במשאבים (זיכרון, מחיר, גודל) בעוד שמערכות מיחשוב גנריות מיועדות לבצע פעולות רבות יותר (חלקן אף מורכבות יותר) אך מכיוון שמלכתחילה מערכת גנריות לא תוכננו לעבוד באופן אופטימלי למשימות ספציפיות אלה מן הסתם לא יתנו את אותן תוצאות כמו המערכת האמבדד.
תנו לנו להפתיע אתכם, לא כל מערכת Real-Time היא בהכרח מערכת Embedded.
אתם יכולים למצוא מערכות Real-Time המבוססות על PC או על מערכות המבוססות על חומרה בלבד.
נסביר תחילה מהי מערכת Real-Time – מערכת Real Time הן מערכות שזמן התגובה שלהן הוא מיידי ותחום בטווח זמן מסוים.
כלומר, משך העיבוד מרגע מתן הפקודה עד לתגובת המערכת חייב להיות תחום בזמן, ולרוב מדובר על זמן קצר. י
שנם סוגים רבים של מערכות למגוון רחב מאוד של שימושים, לאחרונה בעקבות התפרצותו של נגיף הקורונה והמשבר הבריאותי הכלל עולמי שאיתו אנו מתמודדים כעת, מערכת lmsצוברת פופולריות רבה בקרב מסגרות החינוך מכל סוגיהן.
מערכות 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 היא שפת תכנות C.
שפת C היא שפת התכנות הבסיסית בעלת יעילות ופשטות המתאימה באופן מושלם למערכות Embedded. בנוסף, שפת C מהווה בסיס לשפות תכנות מתקדמות יותר. לכן, אם תרצו לעסוק בתכנות או בבניית מערכות Embedded מכל סוג אנחנו ממליצים מאוד על לימוד שפת C.