隨著智能汽車快速發(fā)展,智能汽車產(chǎn)業(yè)開始實現(xiàn)重大變革,主要體現(xiàn)為智能駕駛、智能座艙、智能網(wǎng)聯(lián)汽車功能的不斷升級,基于域端的操作系統(tǒng)也將逐漸形成,智能駕駛領(lǐng)域?qū)τ谄囆旭偘踩邆浜芨叩囊蟆?/span>在軟件定義汽車已成為共識的趨下,不論是傳感器數(shù)量、芯片算力還是單車價值均實現(xiàn)了快速提升。整個過程要求下一代智能駕駛汽車能夠具備車載智能計算平臺,從而確保智能汽車的運算過程及能力能夠滿足現(xiàn)實要求。通常情況下,車載智能計算平臺自下而上可大致劃分為如下幾個方面:
①硬件平臺:AI單元-GPU、FPGA、ASIC芯片、CPU等;②系統(tǒng)軟件:硬件抽象層、OS內(nèi)核、中間件等;③功能軟件:算法接口API、自動駕駛通用框架模塊、庫組件、中間件;④應(yīng)用算法軟件:自動駕駛數(shù)據(jù)及地圖、感知/規(guī)劃/決策算法。智能汽車車載計算平臺將具備更高算力能力、更大的通信帶寬、以及更優(yōu)秀的軟件升級能力,同時,最重要的EE架構(gòu)也將換代升級(包括硬件、軟件、通信架構(gòu)三大方向升級),伴隨著EE架構(gòu)從分布式向集中式演進過程中,自動駕駛也從L2向L2+、L3乃至L4逐漸升級。其中無論從芯片、操作系統(tǒng)、中間件、應(yīng)用層算法、駕駛數(shù)據(jù)都是實現(xiàn)智能汽車的關(guān)鍵,以上這一系列組件的把控將會成為實現(xiàn)智能汽車的重要環(huán)節(jié)。這將是下一代自動駕駛汽車的發(fā)展需求。 作為軟件定義汽車的靈魂,本文將重點論述如上幾種要素中的不被大家熟知的關(guān)鍵要素:操作系統(tǒng)及中間件。在分布式EE架構(gòu)下,通常用于實現(xiàn)低等級的駕駛輔助系統(tǒng),我們比較常用的方式是將計算單元放置于某一個傳感器總成中(比如雷達控制器總成和攝像頭控制器總成),這里的總成相當(dāng)于分布式中央處理單元。通常前端原始傳感器處理只涉及簡單的、分辨率較低的點云或數(shù)字圖像,這里的單元基本只需要調(diào)度某一單一任務(wù)。因此通常的計算功能只涉及一些簡單的邏輯運算,風(fēng)險系數(shù)也不高。在智能駕駛逐漸過度到集中式域控制方案時,其傳感器種類和數(shù)量大幅增加、需要處理的數(shù)據(jù)量也是呈現(xiàn)指數(shù)級增長。包含涉及的任務(wù)量也更多,很多任務(wù)還是成多線程同時調(diào)度,這就需要將諸如原始感知能力集中到前端AI芯片上。而在集中式域控制器方案中,必須需要有一個強大的實時操作系統(tǒng)才能更好的分配、調(diào)度運算和存儲資源。通常,我們所提到的操作系統(tǒng)通常是指的是其中的內(nèi)核管理單元,內(nèi)核實際是負(fù)責(zé)系統(tǒng)的最基本功能,決定著系統(tǒng)的性能和穩(wěn)定性。承擔(dān)著進程調(diào)度、內(nèi)存管理、設(shè)備驅(qū)動程序、文件管理和網(wǎng)絡(luò)管理等功能。目前,主流的自動駕駛系統(tǒng)的內(nèi)核開發(fā)供應(yīng)商包括黑莓公司的QNX、開源基金會的Linux以及風(fēng)河公司的VxWorks幾種。在自動駕駛領(lǐng)域中,人們更加關(guān)注其各個傳感器、軟硬件組件、應(yīng)用系統(tǒng)、控制算法等的穩(wěn)定性,安全性、實時性等特征。操作系統(tǒng)作為底層驅(qū)動,所承擔(dān)的職責(zé)處于如上各個子功能的底層。這就使得自動駕駛領(lǐng)域更加關(guān)注操作系統(tǒng)的功能安全。對于如上三大主流操作系統(tǒng)內(nèi)核,只有QNX早在2011年就通過了ISO26262 ASIL-D安全認(rèn)證,這是第一個通過這項認(rèn)證的實時操作系統(tǒng)。這也是很多域控制器選型中重點關(guān)注的要素,甚至作為是否適配高級自動駕駛系統(tǒng)開發(fā)設(shè)計的門檻。而安全性也就意味著不可能免費提供,且部分QNX是一種不可更改內(nèi)核的固化OS內(nèi)核,也就意味著底層內(nèi)核不是開源的。這一點上,Linux和VxWorks相對于QNX而言,就開放很多,幾乎是全開源的,tier1或主機廠可以根據(jù)實際需求進行中間件和應(yīng)用軟件的擴展編寫,甚至可以根據(jù)自己的實力動其底層的OS內(nèi)核驅(qū)動軟件,這就大大的擴展了Linux在不同CPU架構(gòu)上運行的效能,減少對于底層OS內(nèi)核軟件服務(wù)商的依賴,降本的同時也是真正自研軟件的開始。當(dāng)然,像類似Linux這樣開源的操作系統(tǒng),其內(nèi)核的的組件要比QNX復(fù)雜得多,從而導(dǎo)致其穩(wěn)定性也要差很多,且對于主機廠或tier1的開發(fā)能力提出了極高的要求,這一技術(shù)壁壘經(jīng)常導(dǎo)致開發(fā)進程中的很小bug也會導(dǎo)致整個系統(tǒng)崩潰。而VxWork這一操作系統(tǒng),則是從技術(shù)上解決了QNX與Linux兩者的弊端,他既解決了QNX不開源的弊端,同時,也在2019年2月,通過了ISO 26262 ASIL-D認(rèn)證,成為了實現(xiàn)功能安全認(rèn)證的第二款操作系統(tǒng)。然而這一款操作系統(tǒng)仍舊是收費的,且由于其綜合實力較好,其開發(fā)工具鏈費用還相對較高,在講求性價比的主機廠或tier1中應(yīng)用并不廣泛。這里我們就需要以自動駕駛系統(tǒng)對芯片及底層驅(qū)動的需求,將這幾類操作系統(tǒng)的優(yōu)劣進行對比了,以便為后續(xù)的方案選型做準(zhǔn)備。這里我們統(tǒng)計了這三種主流操作系統(tǒng)的不同特性得出如下的比較結(jié)論:幾種操作系統(tǒng)在自動駕駛不同的芯片級廠家中應(yīng)用范圍是不同的,而由于幾種不同的基礎(chǔ)特征,可能導(dǎo)致主機廠或tier1在芯片選型中也會更加關(guān)注其操作系統(tǒng)的是否能夠滿足其性能需求。因為相當(dāng)一部分主機廠或tier1有能力自研除操作內(nèi)核以外的其他基礎(chǔ)軟硬件,比如中間件、自動駕駛通用框架、算法API等。當(dāng)前,由于主機廠或tier1自身研發(fā)能力受限,往往在評估可靠地車載計算平臺時,會結(jié)合自身需求及能力選擇適合的操作系統(tǒng)內(nèi)核,選擇的標(biāo)準(zhǔn)主要包括開放性、可擴展性、易用性、安全性、可靠性及成本等因素。然而,隨著主機廠或tier1在軟件技術(shù)能力上的不斷提升,像Linux這種開源的軟件將更加受歡迎,因為他不限制其開發(fā)的自主性,且面向未來的架構(gòu)設(shè)計可以實現(xiàn)更高的可兼容性。諸如特斯拉、谷歌這類主機廠具備較高自主研發(fā)能力,通常能夠很好地駕馭像Linux這類開源的操作系統(tǒng)。而像百度Robotaxi為了追求安全性與實現(xiàn)性能的綜合性價比,就將感知算法計算能力放在Linux上,非感知算法計算能力放在QNX上。實際上,真實地操作系統(tǒng)還包括了除操作內(nèi)核之外的其他應(yīng)用單元,比如板件支持、中間件、庫組件及與上層接口之間的其他程序驅(qū)動單元。對于自動駕駛系統(tǒng)整體運算過程而言,由于其龐大計算量和超高的運算難度,需要在早期將計算任務(wù)化整為零,將整個軟件工程分解成若干小任務(wù),分散解決。在系統(tǒng)集成階段時,又需要化零為整,根據(jù)需求將各個運算完成的任務(wù)整合成一個整體。本質(zhì)上,中間件可以認(rèn)為是一種廣義操作系統(tǒng),不同于QNX、Linux、Vxworks這些底層OS內(nèi)核,它是介于上層應(yīng)用和底層系統(tǒng)之間的一套軟件框架,是對軟硬件資源進行管理、分配和調(diào)度的平臺,充當(dāng)著軟件和硬件解耦的關(guān)鍵角色。同時,能為上層的應(yīng)用軟件提供開發(fā)和運行所需的環(huán)境,方便開發(fā)者快速、高效、靈活地開發(fā)和集成自動駕駛軟件。因此,中間件是實現(xiàn)下一代面向服務(wù)SOA的重要單元。在一定程度上決定了未來自動駕駛系統(tǒng)能否實現(xiàn)最佳效能。
當(dāng)前,很多公司所涉及的操作系統(tǒng)自研能力實際都是指的對操作系統(tǒng)內(nèi)核做補充開發(fā)中間件或裁減應(yīng)用軟件。而主機廠與Tier1在開發(fā)能力上的差異性往往體現(xiàn)在其所開發(fā)底層操作系統(tǒng)研發(fā)的整體框架上,而框架又取決于OS的中間件組合。比如基于QNX內(nèi)核做開發(fā)時,由于底層OS內(nèi)核不可被更改,主機廠或tier1只能通過疊加自己定制的上層算法來完成中間件的設(shè)計。而基于Linux內(nèi)核開發(fā)時,則是先參照自身需求對底層OS內(nèi)核做軟件裁減配置,再上層適配不同的中間層算法,顯然Linux難度要大得多。借助于中間件平臺,插拔式設(shè)計可以將主機廠的不同硬件配置進行統(tǒng)一定制化開發(fā),整個自動駕駛系統(tǒng)方案,在開發(fā)時可以根據(jù)需求進行不同拓展,而這里的不同拓展,既可以體現(xiàn)為適配不同的傳感器、芯片、車輛平臺等硬件,也體現(xiàn)為選配不同的軟件算法模塊,實現(xiàn)不同級別的自動駕駛功能。同時,中間件的應(yīng)用也能確保開發(fā)后可以快速高效地進行軟件迭代。
對于中間件的開發(fā)而言,需要在底層系統(tǒng)層面,打通OSI(開放式系統(tǒng)互聯(lián))接口,對不同系統(tǒng)的接口進行封裝。具體將以自下而上的自動駕駛系統(tǒng)算法處理模式來說明整個中間件的開發(fā)過程。自動駕駛的感知數(shù)據(jù)前端處理包括對世界模型的相關(guān)數(shù)據(jù)結(jié)構(gòu)進行定義和描述,中間件將傳感器數(shù)據(jù)解析成世界模型中的數(shù)據(jù)表示,分離傳感器數(shù)據(jù)接入方式和數(shù)據(jù)解析。這里需要在基礎(chǔ)平臺庫中,開發(fā)和配置自動駕駛系統(tǒng)應(yīng)用的基礎(chǔ)組件,包括日志、配置、通訊、資源隔離、線程池、內(nèi)存池、無損隊列,以上功能的開發(fā)可以實現(xiàn)傳感器數(shù)據(jù)抽取、同步等操作。中間件需要提供了關(guān)于數(shù)據(jù)整合的執(zhí)行管理、狀態(tài)管理、時間同步、通訊、診斷、監(jiān)控以及一些其他的模塊。從而確保平臺系統(tǒng)、應(yīng)用功能、系統(tǒng)資源按照正確的配置運行,并且狀態(tài)得到高效管理,模塊間可以實現(xiàn)及時有效的通訊,出現(xiàn)問題時可以實現(xiàn)隨時診斷。某種程度上來說,操作系統(tǒng)內(nèi)核及其中間件的開發(fā)將成為自動駕駛應(yīng)用背景下的一項“新基建”。尤其是隨著自動駕駛產(chǎn)業(yè)化進程的深入,量產(chǎn)紛紛提上各家日程,越來越多人意識到操作系統(tǒng)和中間件的重要性和必要性。操作系統(tǒng)對實時性、功能安全、信息安全的要求都在提高。總的來說,對使用什么樣的操作系統(tǒng)內(nèi)核和中間件,車企和芯片公司的話語權(quán)是高于操作系統(tǒng)廠商的。因為主機廠是更加貼近用戶知道需要在底層操作系統(tǒng)基礎(chǔ)上如何做延伸開發(fā)以適配更多的軟件功能。
推薦閱讀
比亞迪漢ECU接口梳理
對工作中ASPICE的一些理解
汽車功能安全工程師入行指南
基于UDS的Bootloder詳解
關(guān)于整車上下電流程的理解
關(guān)于車載以太網(wǎng) Switch Vlan的理解
AURIX TC3XX系列的SOTA機制詳解
一文詳解奧迪e-tron內(nèi)部系統(tǒng) |附下載
ID.3 和大眾的電氣化平臺 |附下載
一文詳解CAN總線錯誤幀|附下載
DoIP協(xié)議介紹,資料分享!
詳解車載網(wǎng)絡(luò) OTA系統(tǒng)的開發(fā)|文末附下載
一文了解汽車嵌入式AUTOSAR架構(gòu)|附下載
特斯拉Autopilot系統(tǒng)安全研究|附dbc下載