خودرو

نماد HAL وسیله نقلیه اندروید

بسیاری از زیرسیستم‌های خودرو با یکدیگر و سیستم اطلاعات سرگرمی داخل خودرو (IVI) از طریق توپولوژی‌های مختلف اتوبوس متصل می‌شوند. نوع دقیق اتوبوس و پروتکل‌های آن به‌طور گسترده‌ای بین تولیدکنندگان (و حتی بین مدل‌های مختلف خودروی یک برند) متفاوت است. نمونه‌ها عبارتند از گذرگاه شبکه کنترل‌کننده (CAN)، گذرگاه شبکه اتصال محلی (LIN)، سیستم حمل و نقل رسانه‌گرا (MOST)، و همچنین شبکه‌های اترنت و TCP/IP درجه خودرو مانند BroadR-Reach.

لایه انتزاعی سخت افزار Android Automotive (HAL) بدون در نظر گرفتن لایه حمل و نقل فیزیکی، یک رابط سازگار با چارچوب Android ارائه می دهد. این وسیله نقلیه HAL رابطی برای توسعه پیاده‌سازی Android Automotive است.

یکپارچه‌کننده‌های سیستم می‌توانند یک ماژول HAL وسیله نقلیه را با اتصال رابط‌های HAL پلت فرم خاص عملکرد (به عنوان مثال HVAC) با رابط‌های شبکه ویژه فناوری (مانند گذرگاه CAN) پیاده‌سازی کنند. پیاده‌سازی‌های معمولی ممکن است شامل یک واحد میکروکنترلر اختصاصی (MCU) باشد که یک سیستم عامل بی‌درنگ (RTOS) اختصاصی برای دسترسی CAN bus یا موارد مشابه را اجرا می‌کند، که ممکن است از طریق یک پیوند سریال به CPU دارای Android Automotive متصل شود. به جای یک MCU اختصاصی، ممکن است امکان پیاده سازی دسترسی گذرگاه به عنوان یک CPU مجازی نیز وجود داشته باشد. انتخاب معماری مناسب برای سخت افزار به عهده هر شریک است تا زمانی که پیاده سازی الزامات رابط برای HAL وسیله نقلیه را برآورده کند.

معماری

HAL وسیله نقلیه تعریف رابط بین خودرو و سرویس شبکه خودرو است:

معماری HAL خودرو اندروید

شکل 1 . HAL خودرو و معماری خودرو اندروید

  • API خودرو شامل APIها از جمله CarSensorManager است. برای جزئیات بیشتر در مورد APIهای پشتیبانی شده، به /platform/packages/services/Car/car-lib مراجعه کنید.
  • CarService . واقع در /platform/packages/services/Car/ .
  • HAL وسیله نقلیه . رابطی که ویژگی های وسیله نقلیه را که OEM ها می توانند پیاده سازی کنند، تعریف می کند. حاوی فراداده ویژگی است (برای مثال، اینکه آیا ویژگی وسیله نقلیه یک int است و کدام حالت‌های تغییر مجاز هستند). واقع در hardware/libhardware/include/hardware/vehicle.h . برای پیاده سازی مرجع اولیه، به hardware/libhardware/modules/vehicle/ مراجعه کنید.

برای جزئیات بیشتر، ویژگی های خودرو را ببینید.

امنیت

HAL خودرو از این سطوح امنیتی هنگام دسترسی به داده ها پشتیبانی می کند:

  • قابل دسترسی به برنامه با مجوز (از طریق خدمات خودرو).
  • بدون اجازه (از طریق سرویس ماشین) قابل دسترسی است.

دسترسی مستقیم به ویژگی‌های خودرو فقط به اجزای سیستم منتخب با شبکه خودرو با حفاظت دسترسی سلینوکس مجاز است. اکثر برنامه‌ها از طریق سرویس خودرو از دروازه‌بانی اضافی عبور می‌کنند (برای مثال، فقط برنامه‌های سیستمی می‌توانند HVAC را کنترل کنند، زیرا به مجوز سیستم فقط به برنامه‌های سیستم نیاز دارد).

، نماد HAL وسیله نقلیه اندروید

بسیاری از زیرسیستم‌های خودرو با یکدیگر و سیستم اطلاعات سرگرمی داخل خودرو (IVI) از طریق توپولوژی‌های مختلف اتوبوس متصل می‌شوند. نوع دقیق اتوبوس و پروتکل‌های آن به‌طور گسترده‌ای بین تولیدکنندگان (و حتی بین مدل‌های مختلف خودروی یک برند) متفاوت است. نمونه‌ها عبارتند از گذرگاه شبکه کنترل‌کننده (CAN)، گذرگاه شبکه اتصال محلی (LIN)، سیستم حمل و نقل رسانه‌گرا (MOST)، و همچنین شبکه‌های اترنت و TCP/IP درجه خودرو مانند BroadR-Reach.

لایه انتزاعی سخت افزار Android Automotive (HAL) بدون در نظر گرفتن لایه حمل و نقل فیزیکی، یک رابط سازگار با چارچوب Android ارائه می دهد. این وسیله نقلیه HAL رابطی برای توسعه پیاده‌سازی Android Automotive است.

یکپارچه‌کننده‌های سیستم می‌توانند یک ماژول HAL وسیله نقلیه را با اتصال رابط‌های HAL پلت فرم خاص عملکرد (به عنوان مثال HVAC) با رابط‌های شبکه ویژه فناوری (مانند گذرگاه CAN) پیاده‌سازی کنند. پیاده‌سازی‌های معمولی ممکن است شامل یک واحد میکروکنترلر اختصاصی (MCU) باشد که یک سیستم عامل بی‌درنگ (RTOS) اختصاصی برای دسترسی CAN bus یا موارد مشابه را اجرا می‌کند، که ممکن است از طریق یک پیوند سریال به CPU دارای Android Automotive متصل شود. به جای یک MCU اختصاصی، ممکن است امکان پیاده سازی دسترسی گذرگاه به عنوان یک CPU مجازی نیز وجود داشته باشد. انتخاب معماری مناسب برای سخت افزار به عهده هر شریک است تا زمانی که پیاده سازی الزامات رابط برای HAL وسیله نقلیه را برآورده کند.

معماری

HAL وسیله نقلیه تعریف رابط بین خودرو و سرویس شبکه خودرو است:

معماری HAL خودرو اندروید

شکل 1 . HAL خودرو و معماری خودرو اندروید

  • API خودرو شامل APIها از جمله CarSensorManager است. برای جزئیات بیشتر در مورد APIهای پشتیبانی شده، به /platform/packages/services/Car/car-lib مراجعه کنید.
  • CarService . واقع در /platform/packages/services/Car/ .
  • HAL وسیله نقلیه . رابطی که ویژگی های وسیله نقلیه را که OEM ها می توانند پیاده سازی کنند، تعریف می کند. حاوی فراداده ویژگی است (برای مثال، اینکه آیا ویژگی وسیله نقلیه یک int است و کدام حالت‌های تغییر مجاز هستند). واقع در hardware/libhardware/include/hardware/vehicle.h . برای پیاده سازی مرجع اولیه، به hardware/libhardware/modules/vehicle/ مراجعه کنید.

برای جزئیات بیشتر، ویژگی های خودرو را ببینید.

امنیت

HAL خودرو از این سطوح امنیتی هنگام دسترسی به داده ها پشتیبانی می کند:

  • قابل دسترسی به برنامه با مجوز (از طریق خدمات خودرو).
  • بدون اجازه (از طریق سرویس ماشین) قابل دسترسی است.

دسترسی مستقیم به ویژگی‌های خودرو فقط به اجزای سیستم منتخب با شبکه خودرو با حفاظت دسترسی سلینوکس مجاز است. اکثر برنامه‌ها از طریق سرویس خودرو از دروازه‌بانی اضافی عبور می‌کنند (برای مثال، فقط برنامه‌های سیستمی می‌توانند HVAC را کنترل کنند، زیرا به مجوز سیستم فقط به برنامه‌های سیستم نیاز دارد).