Platform Software Defined Vehicle (SDV) AAOS menentukan mekanisme standar untuk pelaporan sumber waktu dari unit kontrol elektronik (ECU) dan platform standar untuk menampilkan informasi waktu di Instance SDV. Halaman ini memberikan detail dan panduan untuk standar SDV.
Arsitektur jam
Platform SDV memiliki dua jam standar:
Jam UTC: Ini adalah jam Waktu Universal Terkoordinasi standar. SOME/IP biasanya menyediakan jam ini dari ECU ke runtime platform. Kasus penggunaan mencakup kesegaran sertifikat, diagnostik, dan V2X.
Jam monoton jaringan: Ini adalah sinyal jam yang tidak menurun dan sangat akurat yang disediakan dari ECU yang digunakan oleh arsitektur kendaraan yang lebih luas untuk memastikan peristiwa dikoordinasikan. ECU menyediakan jam ini ke platform SDV melalui gPTP. Jam ini juga dikenal sebagai jam stabil.
Jam di platform SDV memiliki persyaratan arsitektur tertentu:
Pengiriman jam: Setiap instance VM mendapatkan akses ke sinyal jam monoton yang sama yang disediakan oleh ECU.
Integritas jam: Input jam monoton jaringan diharapkan menjadi sumber yang andal untuk mengoordinasikan peristiwa di seluruh layanan. Pertahanan terhadap kemungkinan kerentanan sistem seperti serangan replay atau inversi waktu didasarkan pada integritas jam monoton.
Penggunaan alarm: API jam platform SDV tidak boleh digunakan untuk peristiwa dengan frekuensi tinggi (> 100 Hz) atau latensi < 10 md antara waktu penjadwalan dan peristiwa. API frekuensi tinggi atau latensi rendah harus menggunakan driver kernel.
API jam
Jam monoton jaringan ditampilkan melalui clock_gettime(3) API standar:
// Network monotonic clock uses standard Linux API.
// This is represented as a dynamic clock in clock_gettime(3)
clock_gettime(clockid_t id, ×pec)
Jam ini disediakan melalui mekanisme jaringan PTP ke semua VM dan terdaftar sebagai jam dinamis untuk tujuan clock_gettime(3).
Jam UTC direpresentasikan oleh CLOCK_REALTIME di clock_gettime(3).
Driver perangkat opsional
OEM memiliki opsi untuk menampilkan blok perangkat Linux untuk properti waktu tambahan. Tampilkan dengan penanganan izin melalui sepolicy:
# in device/OEM/target/sepolicy/time/file_contexts
/dev/sdvtime u:object_r:time_device:s0
OEM bertanggung jawab atas pengembangan dan kemampuan driver perangkat Linux kustom yang menampilkan API ke blok perangkat.
Notifikasi dan callback
Notifikasi dan callback untuk komponen waktu di SDV adalah kemampuan userland yang disediakan oleh OEM. Platform SDV tidak menyediakan API tertentu untuk fungsi ini.
Harus ada maksimal satu layanan OEM per VM yang memerlukan fungsi sinkronisasi waktu yang menangani semua perubahan waktu yang relevan untuk dipantau. Sebagai contoh saat status tepercaya berubah untuk sumber waktu saat ini:
Perubahan pada status sumber waktu diharapkan sebagai peristiwa frekuensi rendah, sehingga layanan OEM dapat memeriksa perubahan melalui polling, misalnya, sekali per menit.
ECU mengomunikasikan status tepercaya jam UTC melalui jaringan, misalnya, melalui SOME/IP.
Layanan OEM memublikasikan topik Data Tunnel tertentu untuk menampilkan perubahan ini kepada pelanggan.
OEM menyesuaikan kebijakan otorisasi untuk layanan guna menentukan layanan mana yang dapat berlangganan topik Data Tunnel ini untuk memproses perubahan status waktu tepercaya.
Status dan penanganan error
Kode error mengikuti konvensi API Linux standar yang terlibat, misalnya:
Jika
clock_gettime()gagal, kode ini akan menampilkan-1danerrnoditetapkan; hal ini menunjukkan bahwa operasi jam tidak didukung atau sumber jam yang mendasarinya belum siap.Jika
fopen()gagal, kode ini akan menampilkan pointer null danerrnoditetapkan; hal ini menunjukkan bahwa perangkat blok tidak tersedia.Jika panggilan
ioctl()gagal, kode ini akan menampilkan-1danerrnoditetapkan; hal ini menunjukkan bahwa kode permintaan yang ditentukan tidak memiliki respons yang cocok dari driver yang mendasarinya.