רגע! לפני שהולכים... 👋
אל תפספסו! מסלולי לימוד נפתחים בקרוב - מקומות מוגבלים
| מסלול RT Embedded Linux | 31/08 |
| מסלול Cyber | 31/08 |
| מסלול Machine Learning | 06/10 |
| מסלול Computer Vision | 08/10 |
✓ ייעוץ אישי ללא התחייבות | תשובה תוך 24 שעות

עודכן לאחרונה: 7 יולי, 2026
ארכיטקטורת הבסיס של מערכת משובצת מחשב (Embedded System) נשענת על שילוב הדוק בין חומרה מותאמת אישית לבין קוד ייעודי. במרכזה של כל מערכת כזו עומדת יחידת עיבוד מרכזית – בין אם מדובר בליבה בודדת (Single-Core) או בליבות עיבוד מרובות (Multi-Core), המיושמות על גבי Microprocessors (MPU) או Microcontrollers (MCU).
יחידת ה-CPU (Central Processing Unit) מהווה את "המוח" של המוצר. מבחינה פיזית, ה-CPU הוא מעגל משולב (IC – Integrated Circuit) המבוסס על סט פקודות מוגדר מראש (Instruction Set Architecture - ISA). סט פקודות זה מכיל לרוב בין 150 ל-300 פקודות מכונה ייחודיות (בהתאם לארכיטקטורת המעבד), המאפשרות לבצע חישובים אריתמטיים, פעולות לוגיות וניהול קלט/פלט ברמת החומרה.
כדי להבין כיצד מעבד ה-Embedded מנהל את המערכת מקצה לקצה, נהוג לחלק את המבנה והרכיבים התומכים בו למספר מאפיינים מרכזיים:
מיקרו-בקר (MCU) מול מיקרו-מעבד (MPU):
Microcontroller (MCU): רכיב הכל-כלול (System on Chip - SoC) המאגד על גבי שבב סיליקון יחיד את ה-CPU, זיכרון העבודה (RAM), זיכרון האחסון לקוד (Flash/ROM), וממשקי קלט/פלט (Peripherals). פתרון זה אידיאלי למערכות קומפקטיות עם דרישות צריכת חשמל נמוכה (Low Power).
Microprocessor (MPU): מעבד חזק המכיל בעיקר את ליבת העיבוד עצמה, ודורש רכיבי זיכרון ורכיבים היקפיים חיצוניים על גבי הלוח (PCB). מתאים למערכות המצריכות כוח חישוב גבוה וניהול זיכרון מורכב.
סט פקודות מופחת (RISC Architecture): מרבית מעבדי ה-Embedded מבוססים על ארכיטקטורת RISC (Reduced Instruction Set Computer). ארכיטקטורה זו מורכבת מסט פקודות מצומצם, פשוט ואופטימלי, המאפשר למעבד לבצע כל פקודה במחזור שעון (Clock Cycle) יחיד או מועט – דבר המבטיח מהירות ביצוע מרבית וחיסכון ניכר באנרגיה.
ניהול אוגרים (Registers) ואוגרי מצב: בתוך ה-CPU קיימים אוגרים פנימיים מהירים ביותר. אוגרים אלו משמשים לאחסון זמני של נתונים בזמן אמת, ניהול מצבי מעבד (Status Registers), ומעקב אחר כתובת הפקודה הבאה לביצוע באמצעות מצביא התוכנית (Program Counter - PC).
תמיכה ברכיבים היקפיים (Peripherals Integration): ה-CPU אינו פועל בחלל ריק. הוא מתממשק באופן ישיר מול יחידות חומרה ייעודיות כגון ממירי אותות (ADC / DAC), טיימרים פנימיים (Timers/Counters), ובקרי תקשורת חומריים (UART, SPI, I2C, CAN Bus) המאפשרים לו לקבל נתונים מהעולם הפיזי ולהגיב אליהם מיידית.
תחילה המתכנת כותב קוד בשפה עילית (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.
מערכת Embedded רגילה מיועדת לבצע משימה מוגדרת בחומרה ייעודית, אך אין לה התחייבות קשיחה לזמן התגובה exact. לעומת זאת, מערכת Real-Time Embedded נדרשת להגיב לאירועים בחומרה תוך חלון זמן מדויק ומוגדר מראש (Deterministic Time). במערכות אלו, תגובה שתגיע אפילו בפיגור של מילי-שנייה נחשבת ככישלון טוטאלי של המערכת (למשל במערכות בלימה ברכב, כריות אוויר או בקרת טיסה).
מעגל העבודה הבסיסי של ה-CPU מורכב משלושה שלבים ראשיים:
Fetch (שליפה): ה-CPU שולף את הפקודה הבאה מזיכרון ה-Flash/ROM לפי כתובת המצוינת באוגר ה-Program Counter.
Decode (פענוח): יחידת הפענוח במעבד מתרגמת את פקודת המכונה לאותות בקרה חשמליים.
Run / Execute (ביצוע): יחידת האריתמטיקה והלוגיקה (ALU) מבצעת את החישוב, מעדכנת את האוגרים (Registers) או פונה לרכיב היקפי (Peripheral). במערכות Real-Time, תהליך זה מותאם לעבודה במספר מחזורי שעון (Clock Cycles) יחידים וקבועים מראש.
פסיקה (Hardware Interrupt) היא סיגנל חשמלי המגיע מרכיב חומרה חיצוני (כמו חיישן או טיימר) ומורה ל-CPU לעצור מיידית את הרצת התוכנית הראשית כדי לטפל באירוע דחוף. המעבד קופץ לביצוע שגרה ייעודית נקודתית (Interrupt Service Routine - ISR) ומחזיר את השליטה לקוד הראשי. מנגנון זה חיוני במערכות Real-Time כדי להבטיח מענה מיידי לאירועים קריטיים ללא שיהוי.
כאשר מערכת ה-Embedded נדרשת לבצע מספר משימות במקביל, מערכת הפעלה בזמן אמת (RTOS – כמו FreeRTOS או Zephyr) מנהלת את תזמון המשימות (Task Scheduling). ה-RTOS משתמשת במנגנון עדיפויות קשיח (Preemptive Scheduling) שמבטיח כי המשימה בעלת העדיפות הגבוהה ביותר תמיד תקבל את משאבי ה-CPU באופן מיידי, תוך שמירה על זמני תגובה צפויים ומדויקים.
מקורות לימוד מומלצים