周彥武
汽車作業系統典型可分為兩大類,一類是針對異構高效能運算晶片和新型E/E架構帶來的整車系統,另一類是針對中控車機的。這裡有非常多的基礎概念需要理清。
什麼是作業系統,狹義的作業系統包含原創的核心。目前主流原創核心不外乎Linux、微核心和Windows三種。實際上我們熟悉的Linux只是核心而不能稱得上是作業系統,Ubuntu才是作業系統。核心它沒有統一的操作介面,都需要自己開發。絕大部分程式設計師都不關心核心,作業系統用系統呼叫,system call來為程式設計師服務,當然,直接使用系統呼叫是非常繁瑣的,因此通常會在這之上提供一層封裝。如果是Windows,這個封裝就是Windows API,Linux只是一個開源的核心,如果一定要找一個類似的東西話那就是libc,也就是C標準庫,這裡同樣包括了對系統呼叫的封裝以及一些庫函式,但libc不包含建立帶有圖形介面應用程式的功能。
目前座艙的作業系統可以分為三大類:一是微核心的QNX;另一類是基於Linux的,包括像特斯拉這樣的Linux直改,還有車規級Linux的AGL,還有GENIVI聯盟(更名為COVESA);再一大類是安卓,包括了兩種,一種是國內的安卓直接改,還有一類是谷歌特別為車載推出的AAOS,注意,這可不是Android Auto那種App。為什麼要把安卓獨立在Linux之外,下文會說。華為的鴻蒙也勉強可以算是Linux直改,但它不能算嚴格的微核心,也不是Linux的宏核心,叫Split-Kernel比較合適,拿了宏核心的元件構成了微核心。
2021-2026年新車座艙作業系統預測
來源:佐思汽研
作業系統,應用軟體設計,網路協議棧等等,都體現了分層思想。分層中,每個層次負責不同的功能。一般來講,下層為上層提供服務,上層不要知道下層的具體實現細節,只需使用下層提供的服務。而層與層之間聯絡的橋樑就是“API介面”。OS呼叫硬體提供的API,軟體呼叫OS提供的API,而使用者呼叫軟體提供的API。
圖片來源:網際網路
典型的嵌入式系統結構如上圖,實際硬體平臺還可以再分為兩部分,一部分是板級支援包即BSP,一部分是硬體本身。BSP是介於主機板硬體和作業系統中驅動層程式之間的一層,一般認為它屬於作業系統一部分,主要是實現對作業系統的支援,為上層的驅動程式提供訪問硬體裝置暫存器的函式包,使之能夠更好的運行於硬體主機板,類似於電腦的BIOS。BSP就是作業系統與硬體間的介面。後來微軟發現,程式設計直接與硬體通訊,是造成系統不穩定的主要原因。在得出這個結論的基礎上,微軟公司在Windows NT上取消了對硬體的直接訪問,首先提出了硬體抽象層 (Hardware AbstractionLayer ,簡稱HAL) 的概念,硬體抽象層就是:“將硬體差別與作業系統其他層相隔離的一薄層軟體,它是透過採用使多種不同硬體在作業系統的其他部分看來是同一種虛擬機器的做法來實現的。這種 HAL設計思路被一些嵌入式作業系統參考,其系統核心被分成兩層,上層稱為“核心(Kernel)”,底層則稱為 “硬體抽象層 ”。
促使HAL出現的另一個原因是晶片的指令集系統越來越複雜,且迭代速度很快。不將硬體隔離,軟體工作複用率太低。
圖片來源:網際網路
引入HAL之後作業系統將會使用相對更為統一的HAL介面來實現對硬體的操作,而不是直接使用BSP庫。當然,HAL庫的實現是基於BSP庫的,只是將其進一步封裝,形成統一的標準。順序依次是hardware –> board support package –> hardware abstract layer –>driver –> operating system –> application,當然嵌入式系統中作業系統並不是必須的,並且在作業系統和應用程式之間可以再有一層中介軟體Middleware層,用於提供更多的系統功能,這個中介軟體Middleware層也被稱作SDK。
圖片來源:網際網路
上圖是安卓的架構,Android的硬體抽象層,簡單來說,就是對Linux核心驅動程式的封裝,向上提供介面,遮蔽低層的實現細節。也就是說,把對硬體的支援分成了兩層,一層放在使用者空間(User Space),一層放在核心空間(Kernel Space),其中,硬體抽象層執行在使用者空間,而Linux核心驅動程式執行在核心空間。傳統的Linux 系統則把對硬體的支援和管理全部放在核心空間中,即把對硬體的全部支援都放在硬體驅動模組當中。
Android 在使用者空間中新建一個HAL層來支援硬體裝置的主要原因還是因為Android 使用的開源協議是 Apache License,這個協議比較寬鬆,其允許開發者獲取並修改了原始碼之後,不用把原始碼公開出來。而 Linux 使用的開源協議 GPL,它的要求限制就比較多,要求開發者新增或修改了原始碼之後,必須把新增或修改後的程式碼公開出來。HAL層分開保護了開發廠家的利益,但脫離了Linux的開源,安卓是開放的,但不是開源的,這是為什麼把安卓從Linux分出去的主要原因。
圖片來源:網際網路
上圖為QNX的架構,與安卓不同的是QNX沒有獨立的HAL層,QNX還是採用BSP的方式。
圖片來源:網際網路
上面為三種核心架構的對比,微核心作業系統使用程序來隔離系統元件,這些元件之間的通訊使用了訊息傳遞方式來實現一個元件對另一個元件的呼叫-這實際上是進行了一次RPC(遠端過程呼叫協議)呼叫。但這種類似RPC的方式是透過程序間通訊(IPC)機制實現的,其效能一般低於傳統作業系統的系統呼叫的效能。這個IPC有一點點HAL的意味。
因為QNX是微核心,這就意味著為其相容性比較差,開放性比較差,當然,換來的是實時性很好,安全性極高。安卓的開放性吸引了無數開發者,而QNX凡事都需要黑莓自己去做,這就是BSP需要為硬體定製,而基於QNX的應用軟體自然就很少人開放。黑莓一家的開發能力有限。這也是鴻蒙為什麼要相容安卓的原因,不相容根本無法推廣。
隨著座艙聯網功能的拓展,QNX顯得不合時宜。
Genivi在2021年10月改名為COVESA即Connected Vehicle Systems Alliance。其頂級成員是寶馬和博世,核心會員是電裝、現代摩比斯、LG、瑞薩、風河、Mentor汽車和Geotab。其他重要成員還有賓士、本田、現代汽車、ARM、瑞薩、英偉達、NXP。寶馬、賓士幾乎全線使用GENIVI的Linux平臺,現代的Genesis也是如此,其他廠家較少見到有用Genivi。
AGL即Automotive Grade Linux,車規級Linux。成立於2016年1月,但是第一版AGL釋出是在2014年的6月30日,實際上就是Tizen的修改版,Tizen源自三星,Tizen是三星電子開發的一款基於Linux核心的開放原始碼移動作業系統,可適用裝置包括智慧手機、平板電腦、智慧手錶、上網本、車載資訊娛樂裝置(IVI)和智慧電視。該專案最初由Linux基金會以及LiMo基金會合力推出,目的在於取代MeeGo與LiMo平臺。在Linux基金會中,由技術指導小組(TSG)管理。目前三星是唯一推出使用 Tizen 的裝置的業者,也是 Tizen 的最大支持者。至 2017 年結束,Tizen 是世界第二大智慧手錶作業系統,僅次於蘋果 watchOS,比基於 Android 的 Wear OS 還要多。2011年9月,三星和英特爾與Linux基金會宣佈致力在2012年開發出Tizen,2012年1月1日,LiMo基金會更名為Tizen協會。大概在2015年,Tizen就基本沒人支援了,但是AGL開始慢慢起來。這也算是失之東隅,收之桑榆。
AGL的頂級白金會員有亞馬遜、馬自達、電裝、瑞薩、鈴木、豐田、松下。白銀會員則有愛信精機、賓士、福特、高通、上汽、大眾。其他重要會員還有阿爾派、ARM、博世、BOSE、中國移動、大陸、德賽西威、富士通、本田、現代、三星哈曼、HERE、日立、GreenHills、英特爾、JVC建伍、李爾、LG、馬瑞利、Mentor、Microchip、三菱、NEC、東軟、日本精機、NXP、英偉達、三星、先鋒、索尼、東芝、Telechips、德州儀器。
目前採用AGL的車型主要有新一代奧迪MIB3TOP、豐田凱美瑞、馬自達3和斯巴魯傲虎及力獅。還有一款賓士的MPV。大眾在2019年4月加入AGL,大眾未來也極有可能選用AGL做車機系統。
AGL的主要優勢之一是它的統一程式碼庫(UCB),這是一個新的Linux發行版,它基於AGL和另外兩個汽車開源專案:Tizen和GENIVI Alliance。UCB是第二代Linux汽車系統。它從底層開始開發,一直到特定的汽車應用軟體。完成了作業系統大約70%的工作。
目前AGL應用都在IVI(In-VehicleInfotainment)上,AGL正努力開拓在儀表和ADAS領域,不過這兩個領域對實時性要求較高,阻力很大。
在很多廠家都使用手機版安卓之時,谷歌也分別推出了Android Auto和Android Automotive OS,安卓Auto是一個超級App,不是一個作業系統,但Android Automotive OS就是一個作業系統,簡稱AAOS。Android 官網上, Android Auto這個分類,是和 Android TV、WebOS by Google 並列。而在 Android 官網開發者頁面處,我們能發現更多谷歌意圖獨立車載系統的想法。在Google官方的「Android developer guide」(安卓開發者指南)中,Android Automotive OS和Chrome OS也是以「OS(operationsystem,作業系統)」命名的。AAOS確實是為了解決Android本身在車機方面的一些問題。Automotive OS採用了與正代安卓差異較大的顯示和互動邏輯,「區塊」成為 Automotive OS 最基本的設計語言。在操作準確度要求非常高的車內環境裡面,觸屏相對孱弱的反饋被谷歌以碩大的圖示設計和選單劃分得以補償。
早在2016年,Google官方統計,安卓的碎片化版本已經達到了6000多個不同的版本,而且隨著時間的推移,安卓的版本碎片化也越來越嚴重。早年,在手機領域,同等條件下,相比安卓系統而言,蘋果的系統會更加的流暢一點,也是安卓碎片化最被詬病的槽點。這其中有兩個主要原因。安卓平臺最大的缺點就是碎片化嚴重,裝置繁多,品牌眾多,版本各異,解析度不統一等,任何一個成功的智慧作業系統都是由龐大的軟體資源支撐起來,這要求系統和硬體有一定的一致性,這才能確保軟體的相容性,以確保軟體和裝置完全相容。而由於Android完全免費以及完全開源的性質,最終導致Android裝置的軟體相容性變差。一言以概之,因為,核心選擇更小,可以由車企自由定製,並管理版本。超98%的應用存在開發隱患、修復管理滯後、漏洞監測困難等安全風險。92%安卓應用存在過度獲取隱私許可權。作為一款車載,很多情況下,是不需要考慮相容Android的所有應用,也不會允許別的第三方軟體加入進來,這相對於自身也是一種保護。
安卓是有大量的應用,但是不同廠商的定製系統,很可能導致未經過A廠商裝置適配的B廠商安卓應用無法安裝、使用出錯、安全問題。同時,Android國內版本的大量應用,在不同的應用市場無法做到嚴格稽核,安全存隱患。
最終於2017年3月,谷歌正式宣佈AAOS,第一個採用AAOS的是沃爾沃旗下的電動車Polestar。
- 2022 GMC Hummer EV
- 2022 GMC Sierra
- 2022 GMC Yukon
- 2022 Chevrolet Tahoe
- 2022 Chevrolet Suburban
- 2022 Chevrolet Silverado
- 2023 Cadillac Lyriq
- 2022 Renault Mégane E-Tech Electric
- 2021 Volvo XC40 P8
- 2021 Volvo XC40 Recharge
- 2022 Volvo C40 Recharge
- 2022 Volvo XC60
- 2022 Volvo S90
- 2022 Volvo V90
- 2022 Volvo V90 Cross Country
- 2021 Lucid Air
上面為確定使用AAOS的車型,還未確定車型但確定使用的還有2023年的PSA與FCA,包括Dodge Durango 和Chrysler Pacifica,2023年的福特和林肯,2022年的本田。
目前AAOS主要在英特爾A3900系列和高通SA8150/8155上執行,谷歌一開始就是和英特爾合作,A3900系列的AAOS的支援度比高通還高。
AAOS的架構
圖片來源:網際網路
圖片來源:網際網路
典型的AAOS,第一輛採用AAOS的車沃爾沃旗下的Polestar 2,由安波福供應車機和軟體系統,螢幕尺寸為11.15英寸,解析度1536*1152,這個解析度相當高,AAOS也需要高解析度,硬體是英特爾的A3950,eMMC高達128GB。AAOS的基本要求比較高,至少4GiB的RAM,32GB的eMMC。
安卓系統最難的是顯示影象啟動時間慢,特別是倒車影像或360環視,這是業者需要特別下功夫的地方。AAOS特別提供了EVS模組,專門應對外接攝像頭,保證影象2秒內啟動成像。
圖片來源:網際網路
AAOS自然離不開谷歌的服務,如谷歌助手,谷歌地圖等,所有這些服務都是要收費的,估計是和車廠有分成協議,要不然AAOS根本無法推廣,谷歌沒有動力,車廠也沒有動力。
圖片來源:網際網路
谷歌的野心當然不只是車機,谷歌是要覆蓋車內的全部應用,包括自動駕駛和儀表等等,早在2016年就開發了Fuchsia,這是一個基於Zircon的微核心作業系統,可以用於車內要求安全等級高的領域,如儀表和自動駕駛。
谷歌不僅要佔有你的手機,還要佔有你的汽車,當然,蘋果也不會閒著。
更多佐思報告
佐思 2021年研究報告撰寫計劃
智慧網聯汽車產業鏈全景圖(2021年10月版)
主機廠自動駕駛 |
汽車視覺(上) |
高精度地圖 |
商用車自動駕駛 |
汽車視覺(下) |
高精度定位 |
低速自動駕駛 |
汽車模擬(上) |
OEM資訊保安 |
ADAS與自動駕駛Tier1 |
汽車模擬(下) |
汽車閘道器 |
汽車與域控制器 |
毫米波雷達 |
APA與AVP |
域控制器排名分析 |
車用鐳射雷達 |
駕駛員監測 |
鐳射和毫米波雷達排名 |
車用超聲波雷達 |
紅外夜視 |
E/E架構 |
Radar拆解 |
車載語音 |
汽車分時租賃 |
充電基礎設施 |
人機互動 |
共享出行及自動駕駛 |
汽車電機控制器 |
L4自動駕駛 |
EV熱管理系統 |
混合動力報告 |
L2自動駕駛 |
汽車功率電子 |
汽車PCB研究 |
燃料電池 |
無線通訊模組 |
汽車IGBT |
汽車OS研究 |
汽車5G |
汽車線束 |
線控底盤 |
合資品牌車聯網 |
V2X和車路協同 |
轉向系統 |
自主品牌車聯網 |
路側智慧感知 |
模組化報告 |
自主品牌ADAS研究 |
商用車車聯網 |
商用車ADAS |
汽車多模態互動 |
汽車智慧座艙 |
車載顯示 |
Tier1智慧座艙(上) |
座艙多屏與聯屏 |
智慧後視鏡 |
Tier1智慧座艙(下) |
智慧座艙設計 |
汽車照明 |
座艙SOC |
汽車VCU研究 |
汽車座椅 |
汽車數字鑰匙 |
TSP廠商及產品 |
HUD行業研究 |
汽車雲服務平臺 |
OTA研究 |
汽車MCU研究 |
AUTOSAR研究 |
智慧停車研究 |
感測器晶片 |
軟體定義汽車 |
Waymo智慧網聯佈局 |
ADAS/AD主控晶片 |
T-Box市場研究 |
自動駕駛法規 |
ADAS資料年報 |
T-Box排名分析 |
智慧網聯和自動駕駛基地 |
汽車鎂合金壓鑄 |
乘用車攝像頭季報 |
智慧汽車個性化 |
飛行汽車 |
專用車自動駕駛 |
農機自動駕駛 |
礦山自動駕駛 |
港口自動駕駛 |
自動駕駛重卡 |
無人接駁車 |
「佐思研究月報」
ADAS/智慧汽車月報 | 汽車座艙電子月報 | 汽車視覺和汽車雷達月報 | 電池、電機、電控月報 | 車載資訊系統月報 | 乘用車ACC資料月報 | 前視資料月報 | HUD月報 | AEB月報 | APA資料月報 | LKS資料月報 | 前雷達資料月報