מיקרוקוד - בית תוכנה

פיתוח תוכנה למערכות אמבדד

סלולרי - תיקשורת - IoT - זמן אמת - לינוקס

מיקרוקוד מתמחה במימוש פרוייקטים משלב הרעיון ועד לסיום.
פועלת "מאחורי הקלעים" עבור חברות היי-טק.

מערכות תיקשורת אלחוטיות



תיקשורת אלחוטית - סלולר 5G


למיקרוקוד ניסיון רב שנים במערכות אלחוטיות, החל מפיתוח ראשוני (רכיב ומערכת) של WiMAX, דרך התאמות ל-AeroMACS (תקן שדות תעופה) ורשתות פרטיות (CBRS), ועד לטכנולוגיה העכשווית של סלולר 5G.פרויקט אחרון בתחום, הוא יחידת רדיו סלולר 5G בתקן פתוח O-RAN. החדשנות הגדולה - לא עוד מרכז אחד עם אנטנה אחת, אלא מרכז יחיד עם מאות אנטנות פזורות ברחבי העיר ומחוברות באמצעות סיבים אופטיים. זה מעבר ליחידת קצה, זוהי מערכת מבוזרת ומשולבת רבת משתתפים.זהו פרוייקט רב-שנתי. פיתוח ברמה הזאת דורש את הצוותים הטובים ביותר לעבוד יחד בהרמוניה מושלמת. ובלב כל המאמץ המשותף, התוכנה היא עמוד השדרה ומובילה את הפיתוח כולו.


"Good things come in small packages"


מיקרו פרוססורים


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


פיתוח מערכות זמן-אמת

תוכנת זמן אמת הוא מומחיות מיוחדת השמורה למעטים נבחרים. זה כרוך ביצירת תוכניות דטרמיניסטיות שחייבות הרצה בזמנים מאוד מדויקים ובאופן עקבי. שלא כמו מערכת סטנדרטית המונעת על ידי משימות Task driven, קוד בזמן אמת מונע על ידי פסיקות Interrupts ודורש ניהול מדויק של DMAs מרובים, טיימרים ושימוש במעבדי עזר DSP. לעתים קרובות המערכת כולה מבוזרת על פני מעבדים מרובי ליבות. זהו קוד אסינכרוני עם שקיפות מאוד נמוכה שעשוי לצאת מאיזון מהר מאוד.הפתרון שלנו: שלד התוכנה הוא שלד סימולציה קנייני שלנו. מסגרת ייחודית זו מאפשרת לכל הקוד להיכתב, להיבדק ולאושר על סביבת סימולציה של Windows לפני הפריסה על המעבד המוטמע. אנו מדמים תרחישי נתונים שונים, בודקים כל פונקציה, ומאתרים באגים שעיקרם בהתנהגות האסינכרונית של הליבות.מה בתמונה? גראף שמשקף דינמיקה של מערכת זמן אמת. תהליכים בעלי עדיפות נמוכה יותר מושהים (Preempted) לטובת משימות קריטיות, וחוזרים לפעולה מיד כשהמשאב מתפנה. כל אירוע מתרחש במין ריצוד ("בלאגן מתוכנן"), אך הכל מתוקתק בדיוק של מיקרו-שניות, תוך שמירה קפדנית על דרישות זמן אמת.

דוגמה לעבודה שלנו היא פרויקט שמעבד 1 GSa/s (מיליארד דגימות בשנייה) של ערכי A/D מסיגנל ניכנס. התוכנה מבצעת פעולות מתמטיות מורכבות, ומייצרת סיגנל אנלוגי חדש ומאומת – הכול בזמן אמת, בדיוק וללא רבב. רמה זו של ביצועים דורשת מיומנויות מיוחדות וניסיון רב, שאנו מביאים לכל פרויקט.


ממשקי משתמש


ממשק משתמש מרוחק הוא כבר לא תכונה אלה דרישה בסיסית מכל מוצר.
תיעדוף ממשק המשתמש כבר בשלבים המוקדמים של מחזור הפיתוח ממקד את הפרויקט כולו בהתאמה ללקוח.
אנו מציעים את טכנולוגיות הקרוס-פלטפורם (Cross-Platform) הבאות:

סוג ממשקתיאור
Desktop Applicationממשק משתמש גרפי (GUI), הוא יישום עשיר בתכונות ובעל ביצועים גבוהים. הוא בדרך כלל מרכז בקרה מקיף שמשלב ומנהל ערוצי תקשורת שונים כגון USB, TCP, Wi-Fi. ניבנה להרצה על ווינדוס ולינוקס.
Webהמוצר מוטמע ביכולות שרת רשת (Web Server) מלאות, מה שמאפשר לכל דפדפן סטנדרטי לשמש כלוח בקרה. לתוך המוצר מוטמעים דפים דינמיים המספקים תצוגה ובקרה בזמן אמת.
Command-Line (CLI)ממשק טקסטואלי (SSH, Menu ) עם תמיכת תפריטים (המיועד בעיקרו להפעלה ידנית על ידי טכנאים), אך תומך באופן מלא גם בהרצת סקריפטים לסביבת אוטומציה.

לינוקס


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


בשלות תוכנה


ליבת השירות שלנו היא תכנון ומימוש תוכנה קפדני ומדויק.
אנחנו לא רק כותבים קוד - אנחנו מהנדסים פתרונות חזקים, ניתנים להרחבה (Scalable) וקלים לתחזוקה. אנו בונים את הפתרונות שלנו באמצעות תכנות מונחה-עצמים (OOP) בשפות ++C ו #C, גישה המבטיחה בסיס מוצק לפרויקט.
מתודולוגיה זו מובילה לתהליך פיתוח חלק, עם רמה גבוהה של יכולת חיזוי ונתיב ברור לצמיחה עתידית.מה שבאמת מבדיל את העבודה שלנו היא ברירות הקוד. אנו גאים בכתיבת קוד נקי, קוהרנטי ומתועד היטב, תוך שמירה מלאה על עקביות. עובדה זו מבטיחה שכל מפתח יכול לפתוח קובץ מהפרויקט ולהבין בביטחון מלא את תכולתו, מה שמבטיח פתרון שקוף ותחזוקה קלה לאורך שנים רבות.



מה אנו מספקים


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


אודותיינו


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


התקשרות


[email protected]050-3378866


window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'AW-975613156');

Open-RAN

מה בתמונה? הבשורה הגדולה של 5G – אנטנות בפריסת קמפוס לתמיכה ב- רשתות פרטיות.יחידת הרדיו היא יחידת קצה מתקדמת שמשלבת מגוון רחב של טכנולוגיות: RF, מודם, לינוקס, RTOS, DSP, מעבדי Multi-Cores, מיקרו-בקרים, PCIe ורכיבי PTP (Precision Time Protocol). זוהי מערכת עתירת חומרה ותוכנה.האתגר המרכזי הוא קצב הנתונים הבלתי נתפס של כ-10 Gbps של דגימות IQ (In-phase/Quadrature). התוכנה אחראית לזהות הודעות Control ולפעול עליהן במידית. הודעות Data עוברות בשרשרת העברה מורכבת: דרך מערכת לינוקס מעל PCIe אל במודם ומשם ליחידת הרדיו. שרשרת העברה זו מחייבת אופטימיזציה תוכנתית קיצונית.ניהול מידע בקצב כזה מחייב פעולה ברמת הסימבול (מיקרו-שניות). הישג זה עולה על יכולות התוכנה הסטנדרטית, ועם זאת – הכל מתזמר בהרמוניה.האתגר מחריף בשל הצורך לאחד תוכנה קנויה, מיובאת ומפותחת על ידינו. אנו מנהלים אינטגרציה רחבה עם החומרה ועם צוותים וספקים חיצוניים – כאשר כל רכיב נמצא בשלב פיתוח שונה, התוכנה שלנו חייבת להיות השכבה החזקה שמתמודדת עם חוסרים ובאגים.מאמצי פיתוח התוכנה הנרחבים שלנו יצרו פתרון חזק ומקצה לקצה שמוביל את התעשייה.

משפחות של מעבדים

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

סוגדוגמא
משפחותARM, Tensillica, Nxp e200
מעבדים קטניםTexas Instruments Tiva, STM32, Nxp Kinetis
מעבדים גדוליםTexas Instruments Sitara, Nxp LS/LX cores
מערכות הפעלה חינםTI-RTOS, NXP-MQX, FreeRTOS, Linux
מחשבי כרטיס מוכניםBeagelBone, RaspberryPI, Nxp LS1046A-RDB

אנו מומחים בהאצת פיתוח תוך שימוש במעבדי ARM חסכוניים אך רבי-עוצמה. באמצעות בחירה אסטרטגית זו, אנו מאפשרים ללקוחותינו ליהנות מאקוסיסטם תוכנה עשיר ונטול תמלוגים, הכולל מערכות הפעלה מתקדמות, פרוטוקולי תקשורת, SSL, USB ועוד. אנו ממנפים את הכדאיות הזו ישירות ליתרון תחרותי.לאחרונה, השלמנו בהצלחה פרויקט קריטי שהתבסס על המעבד הרב-עוצמה NXP Layerscape LS1046A. מעבד זה, המצויד במאיצי חומרה ייעודיים, שימש כבסיס לחזית מערכת הלינוקס המותאמת אישית שלנו. ניסיון זה מוכיח את יכולתנו לא רק לעבוד עם פתרונות בעלות נמוכה, אלא גם לשלוט במערכות מורכבות בעלות ביצועים גבוהים.


פרויקט חדש - שולחן נקי

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

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

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


שידרוג פרויקט

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

פיתוחתיאור
שדרוג תוכנהמימוש שדרוג תוכנה הכולל חתימה דיגיטלית מאובטחת ויכולות שחזור מלאות, כגון: חזרה לגרסה קודמת (Rollback) או איפוס להגדרות יצרן (Factory Default).
מערכת תצוגות MVCארגון מחדש של כל שכבת התצוגה בתוכנה באמצעות ארכיטקטורת MVC. יישום זה מאפשר הפרדה ברורה בין הרכיבים (Separation of Concerns), ומביא לתוצאה של ממשק משתמש נקי, מודולרי וקל לתחזוקה לאורך זמן.
יתירות (Redundancy)פיתוח מערכת גיבוי דינמית בזמן אמת. שתי מערכות פועלות באופן סימולטני, ומחליפות תפקידים באופן מיידי בעת כשל, מה שמבטיח מעבר חלק וללא כל השבתה (Zero Downtime).
פרוטוקול זמן אמת (PTP)הטמעה של Precision Timing Protocol במוצר. אינטגרציה עם ציוד חיצוני - שעון אטומי, GPS ורכיבי Ecosystem נוספים. בנוסף שינוי אלגוריתם הסנכרון לרמת דיוק זמן של ננו-שנייה.
כלי בדיקהפיתוח תוכנת ייצור והכנה של הלוח למבצעיות. בדיקה אוטומטית של כל רכיבי הלוח, כיולים, טעינת תוכנה, רישום פרמטרים.
סביבת פיתוחיישום והטמעת Microsoft Visual Studio כסביבת הפיתוח המרכזית (ווינדוס ולינוקס). זה הכלי לעריכת קוד, ניפוי שגיאות וניהול פלטפורמת הסימולציה.


אינטגרצית חבילות תוכנה

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

פעילותתיאור
שידרוג קרנלהחלפה של לינוקס קרנל כחלק מיישור קו הבטחה. התמודדות עם תאימות שאר המערכת.
מערכות הפעלה קטנותהטמעה של FreeRTOS או MQX לתוך מעבד משני על הלוח. יצירת מבנה תוכנה חדש, בוגר וחזק.
קריפטוגרפיההחלפת חבילת OpenSSL והתאמת הקוד ההיקפי לתמיכה בהצפנות חדשות.
ניהול מוצר בתקן NETCONF Netconf מחליף את SNMP הישן, שניהם באים מאותה תקינה IETF. היתרון המרכזי טמון ביכולתו לבצע שינויי תצורה לכלל רשת המוצרים, בו זמנית בפקודה אחת (All or Nothing).
רכיבי חומרה מתכנתיםטעינת קוד לרכיבי חומרה הפועלים עם קוד תוכנה פנימי. לדוגמא, power management, system clocks, Ethernet PHY, I2C ועוד. כמו כן הצפנות של רכיבי Eeprom.
ממשק שורת פקודה בסיגנון סיסקוהכנסת ממשק משתמש טקסטואלי למוצר בסגנון Cisco. פקודות היררכיות, היסטוריה, קיצורים, השלמות, ועוד.


מחשב לוח יחיד - SBC

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

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

פעילותתיאור
💻 הכנת סביבת פיתוחאיסוף כל חבילות התוכנה, שמירה ב Git, הכנת סקריפטים, בניה עצמית של החומרים.
🔍 הכרת החומרהלמידת הכרטיס מתיעוד ייצרן. התמקדות במנהלי התקני חומרה I2C, SPI, PCI.
טעינת תוכנההכשרה של טעינת התוכנה אל eMMC, SD card. פישוט על ידי סקריפטים.
בדיקות והכשרהפיתוח כלי בדיקה לאישור תקינות המוצר.
⚙️ פיתוח אפליקציהפיתוח האפליקציה המבצעית ממוטבת עבור המשאבים של SBC, כולל המעבד, זיכרון וצריכת החשמל.

בפרויקט שנערך לאחרונה, שילבנו BeagleBone במכשיר CT רפואי. הלקוח מיתג מחדש את המכשיר שלו במהירות והביא מוצר תחרותי לשוק.


מנהיגות תוכנה

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

שירותי BSP

שדרוגי חומרה הם מציאות קבועה המונעת על ידי גורמים קריטיים כגון זמינות רכיבים, אופטימיזציה של עלויות ודרישות לחדשנות טכנולוגית.בעוד ששינוי חומרה נראה לכאורה פשוט, התאמת התוכנה להפעלה יציבה על לוח חדש מהווה אתגר משמעותי וגוזל זמן רב. אנו מספקים חבילת תמיכה מקיפה ב-BSP (Board Support Package) כדי לגשר על הפער הזה במהירות. אנו מבצעים את כל הנדרש להפעלת החומרה החדשה: הטמעת מנהלי התקנים חדשים, עדכון קוד האתחול (Boot), ואינטגרציה של מערכת הפעלה מעודכנת (כדוגמת Linux/RTOS).אנו מבטיחים שהאפליקציה הקיימת תמשיך לעבוד כרגיל וללא הפרעה. שירות זה מאפשר לצוות התוכנה הנוכחי להישאר ממוקד בלוח הזמנים המקורי, מבלי לסטות למשימות ההטמעה והאימות. אנו מספקים המשכיות עסקית וטכנולוגית.