کنترل خودرو و مدیریت انرژی

عامل مدیریت حالت و توان خودرو (VPM) به خودرو کمک می‌کند تا سیستم توان اکوسیستم خودرو مبتنی بر نرم‌افزار (SDV) را کنترل کند.

عامل VPM ارتباط حالت‌های خودرو و قدرت را با اجزای مختلف نرم‌افزاری، از جمله عامل‌های SDV و بسته‌های خدماتی درون SDV، تسهیل می‌کند.

عامل VPM اجزای SDV را قادر می‌سازد تا وضعیت فعلی خودرو، مانند حالت عملیاتی آن (مثلاً پارک شده یا در حال حرکت) و وضعیت برق (مثلاً روشن، معلق یا خاموش) را پیگیری کنند. وضعیت خودرو در تمام نرم‌افزارهای خودرو یکسان است؛ با این حال، وضعیت برق برای هر SDV VM در خودرو منحصر به فرد است.

عامل VPM به پلتفرم سیستم SDV سیگنال می‌دهد تا حالت‌های مصرف انرژی خاصی را شروع کند. این قابلیت، مصرف برق را بهینه کرده و در صورت از سرگیری، زمان بوت را کاهش می‌دهد و به تضمین عملکرد کارآمد اجزای نرم‌افزاری متنوع SDV کمک می‌کند.

این صفحه الزامات کلیدی، محدودیت‌ها و وابستگی‌های مرتبط با عامل VPM را شرح می‌دهد. این صفحه، عملکرد مورد انتظار و دستورالعمل‌های یکپارچه‌سازی عامل VPM را برای تولیدکنندگان تجهیزات اصلی (OEMها) و سایر توسعه‌دهندگان SDV توضیح می‌دهد.

معماری

شکل ۱ معماری مدیریت توان را نشان می‌دهد:

معماری مدیریت توان

شکل ۱. معماری مدیریت توان.

عامل VPM دستورات حالت مصرف برق (مانند خاموش کردن و تعلیق) را از سرویس مدیریت مصرف برق تولیدکننده اصلی (OEM) دریافت می‌کند.

عامل VPM این دستورات را به عامل‌های SDV مناسب ارسال می‌کند و منتظر می‌ماند تا عامل‌ها آنها را اجرا کنند. این رویکرد هماهنگ به تضمین انتقال روان و ایمن بین حالت‌های مصرف برق کمک می‌کند و خطر از دست رفتن داده‌ها یا بی‌ثباتی سیستم را به حداقل می‌رساند.

پس از اینکه همه عوامل SDV انتقال برق خود را تکمیل کردند، عامل VPM به OEM اطلاع می‌دهد و سیستم‌های OEM را قادر می‌سازد تا اقدامات لازم را انجام دهند (به عنوان مثال، رفتن به حالت بعدی یا خاموش شدن). انتقال برق مسدود می‌شود؛ انتقال فقط زمانی اتفاق می‌افتد که همه عوامل SDV انتقال را در یک مهلت زمانی تعریف شده توسط OEM انجام دهند.

دستگاه وضعیت برای مدیریت توان در نمودار زیر نشان داده شده است:

دستگاه مدیریت وضعیت برق

شکل ۲. دستگاه مدیریت وضعیت برق.

عامل VPM با سیستم هماهنگ‌سازی و مدیریت چرخه عمر همکاری می‌کند تا بسته‌های سرویس SDV را از هرگونه به‌روزرسانی حالت برق مطلع کند. این امر به بسته‌های سرویس اجازه می‌دهد تا انتقال برق را مدیریت کرده و از اختلال در عملکرد خود جلوگیری کنند. برای جزئیات بیشتر در مورد استفاده از حالت‌های مدیریت برق با بسته‌های سرویس و مدیریت ارتباطات SDV، به بخش مدیریت تعلیق و از سرگیری مراجعه کنید.

حالت‌های قدرت

حالت‌های مجاز برای مدیریت توان در SDV به شرح زیر است:

ایالت توضیح
REPORT_UNSPECIFIED مقدار پیش‌فرض در صورتی که گزارشی مشخص نشده باشد.
POWER_OFF_EXIT ماشین مجازی از حالت بوت سرد (Cold Boot) بوت می‌شود. عامل‌های SDV با init.rc شروع می‌شوند.
SUSPEND_TO_RAM_EXIT ماشین مجازی از حالت تعلیق به RAM در حال از سرگیری است. عامل‌های SDV از RAM از سر گرفته می‌شوند و در صورت اشتراک در اعلان‌های وضعیت برق، اعلانی در مورد به‌روزرسانی برق دریافت می‌کنند.
ON ماشین مجازی (VM) به طور عادی در حال اجرا است.
POWER_OFF_ENTER ماشین مجازی در حال آماده شدن برای خاموش شدن است. برنامه‌های OEM که می‌توانند در مراحل اولیه پاکسازی شوند، باید در این حالت پاکسازی شوند. برنامه‌های OEM همچنان می‌توانند در این مرحله به عوامل SDV که در حال اجرا هستند، متکی باشند. عوامل SDV نباید در این مرحله به حالت تعلیق درآیند یا خاموش شوند زیرا ممکن است برنامه‌های OEM هنوز نیاز به ارتباط با آنها داشته باشند.
SUSPEND_TO_RAM_ENTER ماشین مجازی در حال آماده شدن برای تعلیق در RAM است. برنامه‌های OEM که می‌توانند در مراحل اولیه پاکسازی شوند، باید در این حالت پاکسازی شوند. برنامه‌های OEM همچنان می‌توانند در این مرحله به عوامل SDV که در حال اجرا هستند، متکی باشند. عوامل SDV نباید در این مرحله تعلیق یا خاموش شوند زیرا ممکن است برنامه‌های OEM هنوز نیاز به ارتباط با آنها داشته باشند.
WAIT_FOR_FINISH ماشین مجازی پاکسازی اولیه را به پایان رسانده و منتظر سیگنال از OEM برای تکمیل یا لغو خاموش کردن یا تعلیق است.
SHUTDOWN_CANCELLED تولیدکننده اصلی (OEM) درخواست لغو آماده‌سازی برای خاموش کردن را داده است. این درخواست می‌تواند حداکثر تا زمان WAIT_FOR_FINISH رخ دهد. برنامه‌های تولیدکننده اصلی (OEM) توسط مدیر چرخه عمر درخواست می‌شوند تا آماده‌سازی تعلیق یا خاموش کردن را لغو کنند.
POWER_OFF_POST_FINISH پس از درخواست FINISH_SHUTDOWN از OEM، ماشین مجازی در حال اتمام پاکسازی نهایی و خاموش کردن پلتفرم اصلی است. عوامل SDV باید قبل از خاموش شدن، پاکسازی را انجام دهند.
SUSPEND_TO_RAM_POST_FINISH ماشین مجازی در شرف تعلیق به RAM و پلتفرم زیربنایی به RAM است. برنامه‌های OEM در این مرحله نباید به عوامل SDV تکیه کنند زیرا آنها نیز به حالت تعلیق درآمده اند. عوامل SDV باید قبل از تعلیق، پاکسازی‌های خود را انجام دهند.

دریافت به‌روزرسانی‌ها در مورد وضعیت خودرو

نماینده VPM به‌روزرسانی‌های مربوط به حالت‌های فعلی خودرو را از بسته خدمات کنترل خودرو سازنده اصلی خودرو دریافت می‌کند.

سپس عامل این اطلاعات را از طریق پشته ارتباطی استاندارد 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 از دید کاربر، خودرو خاموش است، اما PCU همچنان می‌تواند تشخیص دهد که خودرو روشن است.
SOFTWARE_UPDATE به‌روزرسانی‌های نرم‌افزاری در برخی یا تمام قسمت‌های خودرو در حال انجام است. این به‌روزرسانی‌های نرم‌افزاری مربوط به SDV نیستند.
PARK تعداد کمی ECU برای این فعالیت خاص بدون حضور مشتری عرضه می‌شود.
LIFE_ON_BOARD ECU های راحتی، مانند گرمکن صندلی، مجموعه چراغ‌ها و پنل‌های مرکزی، تأمین و قابل استفاده هستند، یا فعالیت مشتری مانند باز کردن در یا باز کردن قفل خودرو شناسایی می‌شود.
VEHICLE_ON ECU های موتور نصب شده اند، موتور کار می کند و رانندگی امکان پذیر نیست.
TRACTION_ON ECU های موتور تأمین شده، موتور عملیاتی است و رانندگی امکان پذیر است.

کنترل خودرو و مدیریت برق با عامل VPM

از تعاریف VSIDL زیر برای پیاده‌سازی یک بسته خدماتی که دستگاه وضعیت برق را در SDV کنترل می‌کند، استفاده کنید:

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 ارسال کرده و اعلان‌های وضعیت برق را در سرور تعریف‌شده دریافت کند.