智能座艙虛擬機系統


智能座艙虛擬機系統

1. 功能模塊介紹

智能座艙平台(Smart Cockpit Platform)

智能座艙整體解決方案,方案融合智能車機、TBOX、智能天線、HUD、液晶數字儀表、車聯網、以太網等智能網聯終端和生態,為車主提供更智能、更安全的汽車生活 。

智能車機(Intelligent Car Machine)

一體機、IVI、DA三種中控車機形態可選硬件規划i.MX8、i.MX6、AC8215、Accordo5高、中、低端全系平台產品。 軟件平台布局Android、Linux、QNX三大系統,產品定位各種車型。

TBOX

從長安Incall 1.0遠特為長安配套2G TBOX開始,遠特以低端、中端、高端解決方案布局TBOX通信終端, 為車企提供滿足不同成本、性能需求的產品。

智能天線(Intelligent Antenna)

采用前沿的車載以太網硬件方案,結合AVB軟件通訊協議,集成豐富無線功能,簡化其它電子元器件的開發成本,降低整車系統成本。可與車廠進行聯合開發,適配不同方案的需求,滿足高中低端的需求,應用前景廣。

數字儀表(Digital Instrument)

采用車規級雙核Cortex-A9,搭載高度定制化的QNX操作系統,針對汽車儀表特性裁剪內核,高於業內普遍標准的開機速度。 同時,采用專業圖形化工具KANZI進行界面設計,具備強大的圖像處理和顯示效果,提升用戶使用感和駕駛安全。

HUD

豐富的經驗及深厚的技術積累保證了產品的光學顯示效果、用戶體檢、交互體驗及可量產性, 產品的綜合競爭力較強,可開發多種形態HUD方案。

 

 

 

2. 技術介紹

智能座艙系統讓駕駛及汽車成為一體,通過不同的視覺模式,掌控行車環境及車內信息。隨着高性能多核處理器在座艙電子領域的廣泛應用,面對復雜的環境和控制要求,虛擬機能夠更好的發揮芯片性能和節約成本,已經成為座艙電子不可或缺的軟件系統,為了更好的應用這一技術在我們公司的智能座艙域控制器上,本文對座艙電子虛擬機技術進行了專業的產業研究。

新一代座艙電子SOC平台主要有:瑞薩R-CAR 3、德州儀器的Jacinto 7、英特爾Apollo Lake系列、NXP的i.mx8系列、聯發科MT27xx系列、三星Exynos Auto 88xx系列與V系列、高通的SA系列。

 

 

 虛擬機Hypervisor,有些地方也把它稱為VMM(virtual machine monitor),這個概念來自PC界,隨着座艙處理器的性能越來越強,座艙屏幕越來越多,座艙電子涵蓋的功能越來越多,虛擬機已經成為座艙電子不可或缺的軟件系統,ARM V8-A架構芯片的大量應用也使得虛擬化很容易實現,多核高性能處理器不用虛擬機也難發揮全部性能,虛擬機已經是高性能多核處理器的標配。單處理器可以節約大量成本,無需儀表MCU,無需儀表的10層PCB,無需儀表ECU盒子,無需存儲器,無需CAN收發器和大量線束。

在虛擬化環境下,物理服務器的CPU、內存和I/O等硬件資源被虛擬化並受Hypervisor的調度,多個操作系統在Hypervisor的協調下可以共享這些虛擬化后的硬件資源,同時每個操作系統又可以保存彼此的獨立性。對座艙電子來說通常是三個OS,一個是強調實時性的儀表OS,一般是ASIL B。一個是豐富功能的娛樂OS,一般是ASIL A,還有一個弱ADAS功能,如360環視,DMS駕駛者行為監控,面部識別等,一般是ASIL C。通常都稱之為Guest OS。

根據Hypervisor所處層次的不同和Guest OS對硬件資源的不同使用方式,Hypervisor虛擬化被分為兩種類型:Bare-metal虛擬化方式(“裸機”虛擬化)和Host OS虛擬化方式(基於操作系統的虛擬化,宿主型虛擬化)。車載系統基本上都是裸機虛擬機,一般稱之為Type-1型。除了基於軟件的虛擬化之外,還有一類基於硬件的虛擬化,德州儀器和NXP更看好硬件虛擬化,他們首推硬件虛擬化。

Hypervisor直接給物理外設打交道,那它當然需要運行在特權privilege模式了,在過去沒有virtualization extesion的情況下,guest os和guest application只能都運行在de-privileged模式,如下圖所示。

 

 

 特權模式下執行的指令分成了兩類:sensitive instructions(敏感指令):這些指令試圖去更改系統資源的配置信息,或者它的執行結果依賴於系統的狀態。privilegedinstructions(特權指令):這些指令在非特權模式下會trap(產生異常,陷入中斷向量表),在特權模式下可以正常執行。

 

敏感指令是特權指令的子集。這種標准現在被稱為classically virtualized(經典可虛擬化模型), 不滿足這個要求的情況下也可以做虛擬化(二進制翻譯技術)。

 

ARMV7架構中包含8種處理器模式,其中包含1種非特權模式和7種特權模式:V8取而代之的是4個固定的Exception level,分別為EL0到EL3, 其中數字越大代表特權(privilege)越大。類似地,可以將EL0歸屬於non-privilegelevel,EL1/2/3屬於privilege level。如下圖所示。

 

 

 EL0: 無特權模式(unprivileged),EL1:操作系統核心模式(OS kernel mode),EL2: 虛擬機監視器模式(Hypervisor mode),EL3:TrustZone® monitor mode。只有在異常(如:中斷、page faults等)發生時(或者異常處理返回時),才能切換Exceptionlevel(這也是Exception level的命名原因,為了處理異常)。當異常發生時,有兩種選擇,停留在當前的EL,或者跳轉到更高的EL,EL不能降級。對於ARMv8, Hypervisor運行在EL2異常級別。只有運行在EL2或更高異常級別的軟件才可以訪問並配置各項虛擬化功能。在EL2中實現額外的存儲器轉換層,稱為“Stage 2轉換”。hypervisor將為每個虛擬機創建和管理Stage 2的頁表;提供3種虛擬異常的支持,Virtual SError, Virtual IRQ, 和Virtual FIQ。物理異常被配置為hypervisor捕獲,虛擬異常將會被注入到Guest OS,針對Guest OS中dma設備,提供smmu硬件以支持dma重映射。

 對於x86架構,運行在X86架構上的操作系統(Operating System,OS)被設計為具有直接訪問和控制硬件資源的權限。X86架構使用0、1、2和3四個權限Ring來控制管理硬件訪問權限,其中用戶應用程序運行在Ring3權限中。OS因為需要直接訪問物理硬件資源而在Ring0中執行。X86架構下的這種層級授權機制也會被應用到虛擬機中。虛擬化上,x86架構要比ARM V8難得多。

 虛擬機分全虛擬和半虛擬兩種,全虛擬是應用在虛擬操作系統上,半虛擬是API應用在虛擬操作系統上。

目前常見的虛擬機包括黑莓的QNX、英特爾主導的ACRN、Mobica為代表的XEN、松下收購的Open Synergy的COQOS、德國大陸汽車的L4RE,法國VOSyS的VOSySmonitor,其余還有很多,包括Green Hills的Integrity,日本的eSOL,SYSGO 的Pike,Mentor的Nucleus,三星哈曼的Redbend,EPAM的Xen。

 

 

 QNX公認是最成熟安全程度最高的座艙虛擬機操作系統,不過收費較高,包括入門費、席位費、服務費和授權費(按屏幕數量收費)。QNX虛擬機采用虛擬CPU模式。


 

 

 QNX使用基於優先級的虛擬CPU共享模式,每個虛擬CPU擁有自己的優先級和時間任務安排序列(scheduling),確保高安全優先級OS能夠從低優先級OS那里搶占更多的物理CPU資源。虛擬CPU擁有估計資源預算能力,進而在物理CPU上實現自適應分區。能夠最大化利用硬件資源。

 

 

 

各OS之間可以共享設備I/O界面,有助減低成本,減少開發周期。

 在GPU虛擬方面,QNX引入仲裁機制,優先為高安全等級OS提供GPU資源。

 

 

 

在2018年的Linux嵌入式大會上發布的ACRN,是一款靈活的、輕量級的參考hypervisor,以實時性和關鍵的安全性為設計出發點,並且通過開源平台為精簡嵌入式開發進行優化。ACRN的最大優勢之一是尺寸小,發布時大約只有25K行代碼。英特爾開源技術中心為項目貢獻了源代碼,ACRN的早期支持者包括英特爾、ADLink凌華科技、Aptiv、LG電子和東軟。后續則有三星哈曼加入。ACRN不是縮寫,發音為“acorn”,(acorn英文意思為橡子)寓意雖然開始很小,但最終可以長的很大,ACRN有兩個關鍵組成:hypervisor和ACRN設備模塊。ACRN Hypervisor是一個Type 1的hypervior,可以直接運行於裸機上。ACRN設備模塊是針對虛擬設備仿真的參考框架實現,它提供豐富的I/O虛擬化支持,目前計划支持音頻、視頻、圖形和USB。隨着社區發展,預計會有更多設備虛擬化功能加入。

 

 

 ACRN Hypervisor運行在裸機上,然后在其上可以運行一個基於Linux 的服務操作系統(SOS),然后可以同時運行多個客戶操作系統,以便整合工作負載。ACRN hypervisor為Service OS創造了第一個虛擬環境,然后啟動GuestOS。Service OS運行本地設備驅動程序來管理硬件,向Guest OS提供I/Omediation。Service OS以系統最高優先級的虛擬機運行,以滿足時間對敏感需求和系統服務質量(QoS)的要求。Service OS目前可以運行Clear Linux,但是ACRN也支持其它Linux 的發行版或者專有RTOS作為Service OS或Guest OS。為了保持ACRN hypervisor代碼庫盡可能小且高效,大部分設備模塊的實現駐留在Service OS,用來提供設備共享和其它功能。目的是保證在資源受限的設備上實現小尺寸,低延遲的代碼庫的優化。

  

 

 

  

ACRN的典型用例是奇瑞星途VX,這是奇瑞有史以來最高等級的車,也是奇瑞尺寸最大的車。配備了雙12.3英寸液晶顯示屏,儀表使用Clear Linux,儀表盤顯示刷新頻率達60Hz,中控采用最新的安卓9.0系統,這是轉為車載系統開發的,包括一些專用功能,比如AI語音助手,空調燈光音量語音控制,導航AR增強等。同時配備面部識別系統,根據面部識別系統可以個性化設置內飾,同時導航是增強現實AR導航。使用Slim Boot Loader (SBL)技術讓儀表盤冷啟動低於2秒。

 

 

 

ACRN也有對ADAS的對應。

 L4微內核系統由德國國家信息技術研究院JochenLiedtke設計(此人已在2001年過世),1995年公開。眾所周知,基於消息傳遞(Message Passing )IPC 機制是微內核系統的基本特點之一。這一設計理念有助於提高系統的靈活性,模塊化,安全性,以及可擴展性。IPC 的性能表現是決定微內核系統性能的關鍵因素,因為絕大多數系統調用和很多應用程序的服務都需要兩個IPC, 一個服務請求,一個結果返回。消息傳遞IPC 機制現在已經大量用於多種計算機系統中,但是很多IPC 實現的性能並不太好。根據CPU 性能和消息長短不同,一個IPC 大概需要50到500  µs。L4內核支持三種抽象概念:地址空間,線程,和IPC。他只提供7 個系統調用,只有12K 字節代碼。在486-DX50  機器上,一個地址空間切換IPC,8  字節參數傳遞,只需要5 µs 。1998年德國德累斯頓大學開發了基於L4的開源操作系統Fiasco.OC,采用基於對象的C++語言。同時也開發了L4運行環境,即L4Re。德國和法國的虛擬機系統推測有不少都是基於L4Re的。

 

 

 Fiasco.OC里有專為虛擬機開發的部分,稱之為NOVA,這也是德累斯頓大學的作品。

 

 

 

上圖為NOVA架構,和虛擬化有關的主要是三個Microhypervisor,VMM(Virtual MachineMonitor)和Root Partition Manager。可以看出hypervisor是對硬件的一種抽象,而且提供一種硬件的並發訪問和隔離機制(多個guest+os同時運行,共享硬件,但是又互相不影響),這些功能與操作系統的功能十分類似, 能不能把hypervisor和os+kernel結合起來?答案是肯定的,這就構成 microhypervisor,微內核與hypervisor有許多共性,使得它們的結合巧妙而自然。

 

VMM在這里的功能是負責管理Virtual+Machine(VM)和host+os(microkernel)之間物理資源的交互。每一個VMM都向它的VM提供一組類似於物理硬件的接口,讓所有的guest+os覺得自己好像運行在真實的物理機器上一樣,同時microhypervisor保證它們之間的隔離性。需要強調的是,在NOVA里面,hypervisor和VMM不是同義詞。一般情況下,我們認為hypervisor和VMM都可以譯為虛擬機管理器,都是為了實現對硬件資源的抽象和復用以便支持多個os,但是在NOVA中,hypervisor是代表的privileged+kernel(microhypervisor)而VMM是代表一個deprivileged+user+component(從NOVA的架構圖上很容易得出)。

 

微內核是不包含policy的,所以關於資源分配的策略也應該放在用戶空間單獨實現。其實這里的Root+Partition+Manager我認為就是Sigma0,Sigma0是L4/fiasco微內核的第一個用戶進程,除了內核自己使用的內存之外,所有的內存、外設端口都交給Sigma0進程來管理,Sigma0負責向其他用戶進程分配內存和外設資源。這也正體現了L4微內核的遞歸內存分配,而且所有的分配策略都在用戶層決定。對於guest+os來說,它使用的是virtual+cpu(后文簡寫為vcpu),vcpu在guest+os看來是一個硬件,類似於真實的cpu,但是對於microhypervisor來說就是一個thread。microhypervisor采用的是基於優先級的、可搶占的、時間片輪轉調度策略,每個物理cpu都保存一個runqueue。每一次調度的時候,調度器都會在就緒隊列里選擇出當前優先級最高的線程進行執行,把當前上下文切換到要調度的線程的上下文(context+switch)。對於調度器來說,它並不區分調度的線程是native+thread還是vcpu+thread。

 

大眾下一代(最新的邁騰可能已經使用)中級車采用瑞薩的R-CAR M3(W或N)平台,它采用6核設計,兩個A57四個A53,德國廠家的L4RE一般都基於M3或H3平台研究,一般都使用兩個A53做儀表,每一個A57運行一個虛擬機VM。L4Re也通常和AGL(車規級Linux)連在一起使用。下圖為L4的虛擬SOCKS和虛擬CONSOLE。

 

 

 2016年7月,松下收購了Opensynergy,該公司有一套名為COQOS的虛擬機系統。不僅可用於座艙,也可以用於自動駕駛系統,對自適應Autosar也有對應。並且也通過了2018版的ASIL B級認證。下一代日產、福特有可能采用這套系統(基於瑞薩R-CAR 3)。


 

 

 

2019年9月ARM在IAA展會上展出了由Mobica與聯發科MT2712合作的三屏座艙電子系統,包括中控導航、儀表和副駕(360度環視),集成了TomTom的導航系統,該解決方案是使用 Google 的 Android 開放源代碼項目(AOSP)開發的,可讓 OEM 保留數據 IP,以用於未來的獲利策略。Mobica的虛擬機主要基於Xen Project。

 

 

 

法國Virtual Open System公司在幾乎在同時推出了基於MT2712的虛擬機樣品,即VOSYSmonitor,並稱通過了ASIL C級認證。它不是嚴格意義上的虛擬機,更像是一個虛擬分區系統。它利用ARM的TrustZone,支持多個並行不同類型不同安全等級的操作系統。

 

 

 

由於不是類似小型操作系統的虛擬機,這種輕量級系統性能比較好,但需要硬件配合,硬件必須像兩個芯片那樣設計。

 

 

 

全軟件虛擬機的優點是軟件靈活度很高,可以達到軟件定義座艙的程度,也可以減少整體軟件開發成本,缺點一是硬件資源消耗必然不低,因此也多在高通和英特爾平台上見到。缺點二,虛擬機對軟件技術不足的企業來說,第三方的支持費用會非常高,如果出貨量低的話,遠不如使用兩套獨立的系統。硬件虛擬化的優點恰恰是針對這兩個缺點的。像德州儀器J6這樣的性能不足的芯片都可以虛擬化,第三方支持費用會很低,適合出貨量不高的系統。缺點是靈活度不足。至於可靠性,硬件虛擬化有物理區域隔離,似乎更可靠,但全軟件虛擬機也主打高可靠性,兩者應該相差無幾。

 

 

 

上圖是NXP i.mx8qm的虛擬機圖。

 

 

 

 

 

上圖是德州儀器最新的J7即TDA4VM,整體達到ASIL B級,MCU島達到ASIL C級。使用多達6個Cortex R5F來保證實時性和可靠性。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM