ยานยนต์

ไอคอน HAL ของรถ Android

ระบบย่อยของรถยนต์จำนวนมากเชื่อมต่อถึงกันและระบบอินโฟเทนเมนต์ในรถยนต์ (IVI) ผ่านโทโพโลยีบัสต่างๆ ประเภทรถบัสและโปรโตคอลที่แน่นอนแตกต่างกันอย่างมากระหว่างผู้ผลิต (และแม้กระทั่งระหว่างรุ่นรถที่แตกต่างกันในยี่ห้อเดียวกัน) ตัวอย่าง ได้แก่ บัส Controller Area Network (CAN) บัส Local Interconnect Network (LIN) Media Oriented Systems Transport (MOST) ตลอดจนเครือข่าย Ethernet และ TCP / IP ระดับยานยนต์เช่น BroadR-Reach

เลเยอร์นามธรรมของฮาร์ดแวร์ Android Automotive (HAL) ให้อินเทอร์เฟซที่สอดคล้องกันกับเฟรมเวิร์กของ Android โดยไม่คำนึงถึงเลเยอร์การขนส่งทางกายภาพ HAL ยานพาหนะนี้เป็นอินเทอร์เฟซสำหรับการพัฒนาการใช้งาน Android Automotive

ผู้ติดตั้งระบบสามารถใช้โมดูล HAL ของยานพาหนะโดยเชื่อมต่ออินเทอร์เฟซ HAL ของแพลตฟอร์มเฉพาะฟังก์ชัน (เช่น HVAC) กับอินเทอร์เฟซเครือข่ายเฉพาะเทคโนโลยี (เช่น CAN บัส) การใช้งานทั่วไปอาจรวมถึง Microcontroller Unit (MCU) เฉพาะที่ใช้ระบบปฏิบัติการแบบเรียลไทม์ (RTOS) ที่เป็นกรรมสิทธิ์สำหรับการเข้าถึง CAN บัสหรือที่คล้ายกันซึ่งอาจเชื่อมต่อผ่านลิงค์อนุกรมไปยัง CPU ที่ใช้ Android Automotive แทนที่จะใช้ MCU เฉพาะอาจเป็นไปได้ที่จะใช้การเข้าถึงบัสเป็น CPU เสมือน พาร์ทเนอร์แต่ละรายจะต้องเลือกสถาปัตยกรรมที่เหมาะสมกับฮาร์ดแวร์ตราบใดที่การใช้งานเป็นไปตามข้อกำหนดอินเทอร์เฟซสำหรับ HAL ของยานพาหนะ

สถาปัตยกรรม

HAL ของยานพาหนะเป็นคำจำกัดความของอินเทอร์เฟซระหว่างรถยนต์และบริการเครือข่ายยานพาหนะ:

สถาปัตยกรรม HAL ของรถยนต์ Android

รูปที่ 1 . สถาปัตยกรรมยานยนต์ Vehicle HAL และ Android

  • รถ 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 ของยานพาหนะรองรับระดับความปลอดภัยเหล่านี้เมื่อเข้าถึงข้อมูล:

  • เข้าถึงแอพได้โดยได้รับอนุญาต (ผ่านบริการรถยนต์)
  • เข้าถึงได้โดยไม่ได้รับอนุญาต (ผ่านบริการรถยนต์)

อนุญาตให้เข้าถึงคุณสมบัติของยานพาหนะได้โดยตรงเฉพาะส่วนประกอบของระบบที่เลือกด้วยเครือข่ายยานพาหนะที่มีการป้องกันการเข้าถึง Selinux เท่านั้น แอปพลิเคชันส่วนใหญ่ต้องผ่านการรักษาประตูเพิ่มเติมด้วยบริการรถยนต์ (ตัวอย่างเช่นเฉพาะแอปพลิเคชันระบบเท่านั้นที่สามารถควบคุม HVAC ได้เนื่องจากต้องได้รับอนุญาตจากระบบที่มอบให้กับแอประบบเท่านั้น)