שליטה ברכב ובניהול צריכת החשמל

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

סוכן ה-VPM מאפשר תקשורת של מצבי הרכב וההספק לרכיבי תוכנה שונים, כולל סוכני SDV וחבילות שירותים בתוך SDV.

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

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

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

ארכיטקטורה

איור 1 מציג את ארכיטקטורת ניהול צריכת החשמל:

ארכיטקטורה של ניהול צריכת החשמל

איור 1. ארכיטקטורה של ניהול צריכת חשמל.

סוכן ה-VPM מקבל פקודות של מצב הפעלה (כמו כיבוי והשהיה) משירות ניהול ההפעלה של יצרן הציוד המקורי.

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

אחרי שכל סוכני ה-SDV משלימים את מעברי ההספק שלהם, סוכן ה-VPM מודיע ליצרן הציוד המקורי (OEM), וכך מערכות ה-OEM יכולות להמשיך בפעולות הנדרשות (לדוגמה, מעבר למצב הבא או כיבוי). מעברי מצב צריכת החשמל הם חסימה; המעבר מתרחש רק כשכל סוכני ה-SDV מבצעים את המעבר בתוך פסק זמן שמוגדר על ידי יצרן הציוד המקורי.

בתרשים הבא מוצג מצב המכונה לניהול צריכת החשמל:

מכונת מצבים לניהול צריכת החשמל

איור 2. מכונת מצבים לניהול צריכת חשמל.

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

מצבי צריכת חשמל

המצבים המותרים לניהול צריכת החשמל ב-SDV הם:

מדינה הסבר
REPORT_UNSPECIFIED ערך ברירת המחדל אם לא צוין דוח.
POWER_OFF_EXIT המכונה הווירטואלית מופעלת מאתחול קר. נציגי SDV מתחילים ב-init.rc.
SUSPEND_TO_RAM_EXIT המכונה הווירטואלית מתחדשת מהשהיה ל-RAM. סוכני SDV ממשיכים מ-RAM ומקבלים התראה על עדכון ההספק אם הם נרשמו כמנויים להתראות על מצב ההספק.
ON המכונה הווירטואלית פועלת כרגיל.
POWER_OFF_ENTER המכונה הווירטואלית מתכוננת לכיבוי. אפליקציות OEM שאפשר לנקות מוקדם יותר צריכות לעבור ניקוי במצב הזה. אפליקציות OEM עדיין יכולות להסתמך על סוכני SDV שפועלים בשלב הזה. בשלב הזה, סוכני SDV לא צריכים להשהות או לכבות את המכשיר כי יכול להיות שאפליקציות OEM עדיין צריכות לתקשר איתם.
SUSPEND_TO_RAM_ENTER המכונה הווירטואלית מתכוננת להשהיה ב-RAM. אפליקציות OEM שאפשר לנקות מוקדם צריכות להיות מנוקות במצב הזה. אפליקציות OEM עדיין יכולות להסתמך על סוכני SDV שפועלים בשלב הזה. בשלב הזה, סוכני SDV לא צריכים להשהות או לכבות את המכשיר כי יכול להיות שאפליקציות OEM עדיין צריכות לתקשר איתם.
WAIT_FOR_FINISH המכונה הווירטואלית סיימה את הניקוי הראשוני וממתינה לאות מיצרן הציוד המקורי כדי להשלים או לבטל כיבוי או השהיה.
SHUTDOWN_CANCELLED יצרן הציוד המקורי ביקש לבטל את ההזמנה כדי להתכונן לסגירת החשבון. הבקשה הזו יכולה להתבצע לכל המאוחר עד WAIT_FOR_FINISH. אפליקציות OEM נדרשות על ידי הכלי לניהול מחזור החיים כדי לבטל את ההשעיה או את ההכנה לכיבוי.
POWER_OFF_POST_FINISH בעקבות הבקשה FINISH_SHUTDOWN מהיצרן, המכונה הווירטואלית מסיימת את הניקוי הסופי ומכבה את הפלטפורמה הבסיסית. נציגי SDV צריכים לנקות את המכשיר לפני שמכבים אותו.
SUSPEND_TO_RAM_POST_FINISH המכונה הווירטואלית עומדת להיות מושעית ל-RAM, והפלטפורמה הבסיסית עומדת להיות מושעית ל-RAM. אפליקציות OEM לא יכולות להסתמך על סוכני SDV בשלב הזה כי הם גם מושעים. נציגי SDV צריכים לבצע את הניקויים שלהם לפני ההשעיה.

קבלת עדכונים על מצב הרכב

סוכן ה-VPM מקבל עדכונים על מצבי הרכב הנוכחיים מחבילת שירותי בקרת הרכב של יצרן הציוד המקורי (OEM).

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

כדי לקבל עדכונים לגבי מצבי הרכב, משתמשים בהגדרה הבאה של VSIDL בחבילת השירות:

package: "com.sdv.google.vpm.vehicle.client.subscriber"

service_bundle {
    name: "VehicleStateSubscriber"
    //Subscriber to the vehicle state updates.
    subscriber {
        message: "com.sdv.google.vpm.vehicle.VehicleStateChange"
    }
}

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

המצבים המותרים של רכב ב-SDV הם:

מדינה הסבר
VEHICLE_STATE_UNSPECIFIED ערך ברירת המחדל של מצבי הרכב אם לא צוין מצב.
LOW_POWER מנקודת המבט של המשתמש, הרכב כבוי, אבל יחידת בקרת ההספק עדיין יכולה לזהות שהרכב פועל.
SOFTWARE_UPDATE מתבצעים עדכוני תוכנה בחלקים מסוימים של הרכב או בכל החלקים. אלה עדכוני תוכנה שלא קשורים ל-SDV.
PARK מספר ה-ECU שמוקצים לפעילות הספציפית הזו בלי נוכחות של לקוח הוא נמוך.
LIFE_ON_BOARD יחידות בקרה אלקטרוניות (ECU) של מערכות נוחות, כמו חימום מושבים, לוחות מכשירים ולוחות מרכזיים, מסופקות וניתן להשתמש בהן, או שמזוהה פעילות של לקוחות, כמו פתיחת דלת או ביטול נעילה של מכונית.
VEHICLE_ON מסופקים יחידות בקרה אלקטרוניות של המנוע, המנוע פועל ואי אפשר לנהוג.
TRACTION_ON מסופקים מחשבי ECU של המנוע, המנוע פועל ואפשר לנהוג ברכב.

שליטה ברכב ובניהול צריכת החשמל באמצעות סוכן VPM

כדי להטמיע חבילת שירות ששולטת במכונת מצבי ההפעלה ב-SDV, צריך להשתמש בהגדרות VSIDL הבאות:

package: "com.sdv.google.vpm.client"

service_bundle {
    name: "VpmSystemClient"

    //Client for VPM system interface.
    client {
        service: "com.sdv.google.vpm.VpmSystemService"
    }

    //Server to VPM notification interface.
    server {
        service: "com.sdv.google.vpm.client.PowerNotificationService"
    }
}

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