域控制器發(fā)展趨勢(shì)
域控制器的興起對(duì)傳統(tǒng)的汽車MCU廠商造成了極大的挑戰(zhàn),“因?yàn)镸CU使用量將大大減少,傳統(tǒng)的MCU產(chǎn)品其演進(jìn)路線將不復(fù)存在”。
在分布式ECU時(shí)代,計(jì)算和控制的核心是MCU芯片,傳輸?shù)幕A(chǔ)核心是基于傳統(tǒng)的CAN、LIN和FlexRay等低速總線。但在域控制器時(shí)代,高性能、高集成度的異構(gòu)SoC芯片作為域的主控處理器,將成為域控制器的計(jì)算與控制的核心芯片。而汽車TSN(Time-Sensitive Network)以太網(wǎng)因?yàn)榫哂懈邘?、?shí)時(shí)和可靠的數(shù)據(jù)通信能力等特點(diǎn),必將成為整車通信的核心基礎(chǔ)設(shè)施,尤其是域主控處理器之間的通信主干網(wǎng)。
下面我們來(lái)簡(jiǎn)單分析一下域控制器以及核心的主控處理器的一些關(guān)鍵技術(shù)和趨勢(shì)。
3.1 高性能
總的來(lái)說(shuō),對(duì)算力的需求提升一直是域控制器核心芯片發(fā)展的主要推動(dòng)力。一方面原本由多個(gè)ECU完成的功能,現(xiàn)在需要依靠單一的域主控處理器來(lái)完成,并且還需要管理和控制所連接的各種傳感器與執(zhí)行器等。比如:底盤、動(dòng)力傳動(dòng)系統(tǒng)和車身舒適電子系統(tǒng)的域主控處理器,其算力需求大約在10000DMIPS-15000DMIPS左右。
圖2-5 汽車域控制器對(duì)CPU DMIPS算力的需求預(yù)測(cè)
新的智能汽車,除了要更多的與人交互外,更需要大量的對(duì)環(huán)境進(jìn)行感知,這就需要計(jì)算和處理海量的非結(jié)構(gòu)化數(shù)據(jù),因此座艙域和自動(dòng)駕駛域都要求高性能的CPU,比如就座艙儀表的CPU算力而言,它其實(shí)跟一部高端智能手機(jī)的CPU算力差不多,約為50000DMIPS左右。此外,為了支持L2輔助駕駛功能或者更高級(jí)別的自動(dòng)駕駛功能,需要運(yùn)行很多視覺(jué)DNN模型算法,這就又額外需要上百TOPS的AI算力。
所以,各芯片廠商總是會(huì)盡量使用更先進(jìn)的制程工藝、更先進(jìn)的CPU核于與NPU核來(lái)盡量提高域主控芯片的CPU核心性能與NPU性能。
3.2 高異構(gòu)性
伴隨著AI技術(shù)在視覺(jué)領(lǐng)域的應(yīng)用,基于視覺(jué)的自動(dòng)駕駛方案逐漸興起,這就需要在CPU的基礎(chǔ)上加裝擅長(zhǎng)視覺(jué)算法的GPU芯片,從而形成“CPU+GPU”的解決方案。不過(guò),“CPU+GPU”組合也并非最優(yōu)解決方案,因?yàn)?GPU 雖然具備較強(qiáng)的計(jì)算能力,但成本高、功耗大,由此又逐步引入了FPGA和 ASIC 芯片。
總體來(lái)看,單一類型的微處理器,無(wú)論是 CPU、GPU、FPGA還是ASIC,都無(wú)法滿足更高階的自動(dòng)駕駛需求,域控制器中的主控芯片會(huì)走向集成“CPU+xPU”的異構(gòu)式 SoC(xPU 包括 GPU/FPGA/ASIC等),從而能較好的支撐各種場(chǎng)景的硬件加速需求。
3.3 高集成度
從功能層面上,域控制器會(huì)整合集成越來(lái)越多的功能。比如動(dòng)力系統(tǒng)域可能把發(fā)動(dòng)機(jī)的控制、電機(jī)控制、BMS、車載充電機(jī)的控制組合在一起。有些主機(jī)廠甚至直接一步到位,將底盤、動(dòng)力傳動(dòng)以及車身三大功能域直接整合成一個(gè)“整車控制域(Vehicle Domain Controller,VDC)”。
要支持這些功能的整合,作為域控制器的大腦,域主控處理器SoC就需要集成盡可能多的接口類型,比如:USB、Ethernet、I2C、SPI、CAN、LIN以及FlexRay等等,從而能連接和管理各種各樣的ECU、傳感器和執(zhí)行器。
3.4 硬件虛擬化
對(duì)硬件虛擬化技術(shù)的需要主要來(lái)自兩方面:(1)硬件資源的分區(qū)與隔離;(2)支持混合安全等級(jí)。
原本需要多個(gè)ECU實(shí)現(xiàn)的多個(gè)功能都整合到域控制器上后,勢(shì)必會(huì)導(dǎo)致域控制器的軟件更為復(fù)雜,這勢(shì)必會(huì)導(dǎo)致整個(gè)軟件系統(tǒng)的出錯(cuò)概率增加、可靠性下降。而且多個(gè)應(yīng)用混合運(yùn)行在同一個(gè)操作系統(tǒng)上,經(jīng)常會(huì)出現(xiàn)故障傳播(Failure Propagation),也就是一個(gè)應(yīng)用出現(xiàn)問(wèn)題后,會(huì)使得整個(gè)系統(tǒng)底層軟件和硬件都處于紊亂狀態(tài),從而導(dǎo)致其它原本正常的應(yīng)用也會(huì)開始出現(xiàn)故障。因此通過(guò)硬件虛擬化技術(shù)對(duì)硬件資源進(jìn)行分區(qū)(Partition),使得各個(gè)功能對(duì)應(yīng)的軟硬件之間互相隔離(Isolation),以此保證整個(gè)系統(tǒng)的可靠性。
另一方面,在汽車電子系統(tǒng)中,通常不同的應(yīng)用其對(duì)實(shí)時(shí)性要求和功能安全等級(jí)要求都不同。例如,根據(jù)ISO 26262標(biāo)準(zhǔn),汽車儀表系統(tǒng)與娛樂(lè)信息系統(tǒng)屬于不同的安全等級(jí),具有不同的處理優(yōu)先級(jí)。汽車儀表系統(tǒng)與動(dòng)力系統(tǒng)密切相關(guān),要求具有高實(shí)時(shí)性、高可靠性和強(qiáng)安全性,要求運(yùn)行在底層實(shí)時(shí)操作系統(tǒng)上(比如QNX)。而信息娛樂(lè)系統(tǒng)主要為車內(nèi)人機(jī)交互提供控制平臺(tái),追求多樣化的應(yīng)用與服務(wù),以Linux和Android為主。為了實(shí)現(xiàn)混合安全等級(jí)的應(yīng)用,實(shí)現(xiàn)不同的操作系統(tǒng)運(yùn)行在同一個(gè)系統(tǒng)上,這就需要虛擬化技術(shù)的支持。
車載硬件虛擬化技術(shù)的核心是Hypervisor,它是一種運(yùn)行在物理服務(wù)器和操作系統(tǒng)之間的中間層軟件,可以允許多個(gè)不同虛機(jī)上的操作系統(tǒng)和應(yīng)用共享一套基礎(chǔ)物理硬件。當(dāng)系統(tǒng)啟動(dòng)時(shí),首先運(yùn)行Hypervisor,由它來(lái)負(fù)責(zé)給每一臺(tái)虛擬機(jī)分配適量的內(nèi)存、CPU、網(wǎng)絡(luò)、存儲(chǔ)以及其它硬件資源等等(也就是對(duì)硬件資源進(jìn)行分區(qū)),最后加載并啟動(dòng)所有虛擬機(jī)的客戶操作系統(tǒng)。
一句話總結(jié)一下基于Hypervisor的優(yōu)點(diǎn):它提供了在同一硬件平臺(tái)上承載異構(gòu)操作系統(tǒng)的靈活性,同時(shí)實(shí)現(xiàn)了良好的高可靠性和故障控制機(jī)制, 以保證關(guān)鍵任務(wù)、硬實(shí)時(shí)應(yīng)用程序和一般用途、不受信任的應(yīng)用程序之間的安全隔離,實(shí)現(xiàn)了車載計(jì)算單元整合與算力共享。
3.5 ISO 26262功能安全
功能安全是汽車研發(fā)流程中非常關(guān)鍵的要素之一。隨著系統(tǒng)復(fù)雜性的提高,來(lái)自系統(tǒng)失效和隨機(jī)硬件失效的風(fēng)險(xiǎn)日益增加。ISO 26262標(biāo)準(zhǔn)制定的目的就是更好的規(guī)范和標(biāo)準(zhǔn)化汽車全生命周期中的功能安全管理和要求,包括:概念階段、系統(tǒng)研發(fā)、硬件研發(fā)、軟件研發(fā)、生產(chǎn)和操作過(guò)程、售后等環(huán)節(jié),尤其重點(diǎn)在產(chǎn)品設(shè)計(jì)階段如何定義和實(shí)現(xiàn)功能安全的目標(biāo)。
載汽車功能安全標(biāo)準(zhǔn)ISO26262-5 2018 “產(chǎn)品開發(fā):硬件層面附錄D”中對(duì)處理器單元的診斷覆蓋率推薦的安全技術(shù)措施中,雙核鎖步(dual-core lockstep)、非對(duì)稱冗余和編碼計(jì)算是三種典型的硬件冗余技術(shù)措施。除此之外,硬件BIST、軟硬件Self-Test技術(shù)、ECC等也是常見的提高處理器安全特性的設(shè)計(jì)措施。
圖2-6 ISO26262標(biāo)準(zhǔn)中的功能安全芯片設(shè)計(jì)技術(shù)
雙核鎖步CPU是一種CPU冗余技術(shù),在一個(gè)芯片中包含兩個(gè)相同的處理器,一個(gè)作為master core,一個(gè)作為slave core,它們執(zhí)行相同的代碼并嚴(yán)格同步,master可以訪問(wèn)系統(tǒng)內(nèi)存并輸出指令,而slave不斷執(zhí)行在總線上的指令(即由主處理器獲取的指令)。slave產(chǎn)生的輸出,包括地址位和數(shù)據(jù)位,發(fā)送到比較邏輯模塊,由master和slave總線接口的比較器電路組成,檢查它們之間的數(shù)據(jù)、地址和控制線的一致性。檢測(cè)到任何總線的值不一致時(shí),就會(huì)發(fā)現(xiàn)其中一個(gè)CPU 上存在故障,但不會(huì)確定是哪個(gè)CPU故障。
這種CPU架構(gòu)使得CPU自檢獨(dú)立于應(yīng)用軟件,不需要執(zhí)行專門的指令集自檢,實(shí)際運(yùn)行的軟件指令在每個(gè)時(shí)鐘都進(jìn)行比較,只需要測(cè)試軟件用到的CPU資源,但這種架構(gòu)不會(huì)對(duì)內(nèi)存和總線進(jìn)行檢測(cè),需要增加單獨(dú)的檢測(cè)方法以避免兩個(gè)CPU的共模故障。
3.6 網(wǎng)絡(luò)卸載引擎
汽車網(wǎng)絡(luò)會(huì)存在多種通信總線。骨干網(wǎng)未來(lái)勢(shì)必會(huì)基于TSN以太網(wǎng)來(lái)構(gòu)建,但是從域主控處理器到ECU或者傳感器之間的通信則仍然是基于傳統(tǒng)的車載低速總線,比如:CAN、FlexRay等。域主控處理器作為域控制器的核心,是所有ECU和傳感器通信的匯聚中心。因此如果要依靠CPU的算力來(lái)完成不同總線間的協(xié)議轉(zhuǎn)換,以及跨域通信的網(wǎng)絡(luò)包處理的話,勢(shì)必會(huì)占用寶貴的CPU算力資源。
因此基于硬件來(lái)實(shí)現(xiàn)網(wǎng)絡(luò)協(xié)議轉(zhuǎn)換處理的網(wǎng)絡(luò)卸載引擎,對(duì)于各個(gè)域(包括中央網(wǎng)關(guān))的域主控處理器是非常重要的技術(shù)。
3.7 Security引擎
連接性(Connectivity)是汽車智能化發(fā)展的一個(gè)很重要的趨勢(shì),未來(lái)的汽車一定會(huì)像今天的手機(jī)一樣隨時(shí)保持連接到互聯(lián)網(wǎng)中。因此如何阻止未經(jīng)授權(quán)的網(wǎng)絡(luò)訪問(wèn),以保護(hù)汽車免于受到黑客的攻擊,對(duì)未來(lái)的智能汽車而言就會(huì)變得極為重要。下一代硬件安全模塊(Hardware Security Module,HSM)正在成為下一代車載網(wǎng)絡(luò)通信的重要基礎(chǔ)設(shè)施之一。
HSM對(duì)于完全的安全車載通信(Secure Onboard Communication,SecOC)是必不可少的。HSM能確保所接收到的數(shù)據(jù)的真實(shí)性,防止攻擊者繞過(guò)相關(guān)的安全接口,入侵車載網(wǎng)絡(luò)。
基于硬件的安全模塊主要解決兩個(gè)問(wèn)題:
-
密鑰泄漏問(wèn)題:如果密鑰存儲(chǔ)在應(yīng)用程序的代碼或數(shù)據(jù)中,很容易被泄漏。所以有必要增加一個(gè)硬件模塊,專門存儲(chǔ)密鑰。
-
Crypto算法加速:通過(guò)內(nèi)核來(lái)直接進(jìn)行加密或解密運(yùn)算會(huì)占用大量CPU算力資源。因此,有必要通過(guò)硬件模塊來(lái)進(jìn)行加密解密算法的加速。
SHE(Secure Hardware Extension)標(biāo)準(zhǔn)是由奧迪和寶馬公司合作制定的、針對(duì)硬件安全模塊HSM的規(guī)范,它主要包括密碼模塊的硬件、硬件軟件接口。這個(gè)規(guī)范已被廣泛接受,很多針對(duì)汽車行業(yè)的微處理器都支持這個(gè)規(guī)范。
3.8 面向服務(wù)的軟件架構(gòu)SOA
ECU原先運(yùn)行的軟件大多數(shù)是按照Classic AutoSAR規(guī)范開發(fā)的軟件系統(tǒng),其中的應(yīng)用軟件一般都是靜態(tài)調(diào)度(Static Scheduling)模式的,也即在系統(tǒng)運(yùn)行時(shí),程序中不同功能的函數(shù)按照事先定義好的排序文件依次調(diào)用、逐個(gè)運(yùn)行。靜態(tài)調(diào)度的優(yōu)點(diǎn)是資源分配問(wèn)題都是事先安排好的,車輛量產(chǎn)后就不會(huì)再改變,每個(gè)功能對(duì)應(yīng)的函數(shù)代碼具體運(yùn)行時(shí)間也被提前鎖定,是確定性的。因此這種設(shè)計(jì)對(duì)于汽車上很多對(duì)功能安全要求苛刻的場(chǎng)景是非常適合的。比如:決定安全氣囊是否打開的功能函數(shù)就是固定地每隔幾毫秒運(yùn)行一次,以便緊急情況下可以及時(shí)打開。
承載計(jì)算和控制的底層硬件從分散的多個(gè)ECU集中到多核、異構(gòu)的高性能域主控處理器后,相應(yīng)的軟件也會(huì)從分散向集中、從簡(jiǎn)單向復(fù)雜、從靜態(tài)向動(dòng)態(tài)進(jìn)化。下圖2-7顯示了以后汽車域控制器上的典型軟件架構(gòu):
圖2-7 域控制器上基于空分虛擬化技術(shù)的典型軟件架構(gòu)
- 操作系統(tǒng)層:最底層利用Hypervisor虛擬化技術(shù)對(duì)硬件資源進(jìn)行分區(qū)(partition),從而可以在每個(gè)虛機(jī)運(yùn)行不同的操作系統(tǒng)。比如在上圖中,虛機(jī)VM1中運(yùn)行兼容POSIX實(shí)時(shí)操作系統(tǒng)標(biāo)準(zhǔn)(比如PSE 52)的RTOS,RTOS上通常要承載功能安全相關(guān)的應(yīng)用和服務(wù);虛機(jī)VM2中運(yùn)行Linux這種完全POSIX標(biāo)準(zhǔn)的分時(shí)操作系統(tǒng),上面通常運(yùn)行管理相關(guān)的功能和服務(wù);虛機(jī)VM3中運(yùn)行的可能是原來(lái)在ECU上運(yùn)行的Legacy應(yīng)用。
- 中間件層:操作系統(tǒng)是不做任何與“車”特定相關(guān)工作的。為了讓域主控處理器在汽車場(chǎng)景下使用,需要有很多軟件或者中間件用于讓域控制器滿足汽車的電源管理標(biāo)準(zhǔn)、網(wǎng)絡(luò)管理標(biāo)準(zhǔn)以及診斷標(biāo)準(zhǔn)等;車載域控制器需要比一般工業(yè)嵌入式系統(tǒng)有更高的可靠性要求,這樣就需要在計(jì)算機(jī)OS基礎(chǔ)上再附加對(duì)存儲(chǔ)和通訊等各方面的安全保護(hù)和容錯(cuò)機(jī)制;同時(shí),位了讓車載域控制器能夠在整車EE架構(gòu)下運(yùn)行,還需要提供時(shí)鐘同步、日志跟蹤以及服務(wù)管理和發(fā)現(xiàn)等功能。Adaptive AutoSAR規(guī)范定義了運(yùn)行在Linux或者完全兼容POSIX 1003.1標(biāo)準(zhǔn)RTOS上的這一層與“車”相關(guān)的中間件標(biāo)準(zhǔn);而傳統(tǒng)運(yùn)行在POSIX子集的RTOS或者BareMetal模式的中間件規(guī)范則由Classic AutoSAR標(biāo)準(zhǔn)定義。
- 應(yīng)用層:上層應(yīng)用基于AutoSAR標(biāo)準(zhǔn)的中間件來(lái)進(jìn)行開發(fā)。隨著汽車智能化和網(wǎng)聯(lián)化相關(guān)的功能越來(lái)多,上層應(yīng)用軟件也越來(lái)越復(fù)雜。位了降低單個(gè)應(yīng)用的整體復(fù)雜性,我們可以借鑒互聯(lián)網(wǎng)的面向服務(wù)架構(gòu)(SOA)的軟件設(shè)計(jì)思想,將一個(gè)復(fù)雜應(yīng)用拆分多個(gè)服務(wù)。每個(gè)服務(wù)實(shí)現(xiàn)得盡可能小,盡量實(shí)現(xiàn)成無(wú)狀態(tài)方式的服務(wù),以利于整個(gè)系統(tǒng)的開發(fā)、測(cè)試和軟件重用。服務(wù)與服務(wù)之間通過(guò)事件或者消息總線(發(fā)布/訂閱工作模式)來(lái)進(jìn)行通信,并降低互相之間的耦合度。通過(guò)服務(wù)配置來(lái)管理服務(wù)之間的依賴性、服務(wù)的部署和啟動(dòng),以及服務(wù)的健康狀態(tài)檢測(cè)等。
汽車以太網(wǎng)給車載系統(tǒng)通信帶來(lái)一個(gè)革命性的變化,在中央計(jì)算式汽車EE架構(gòu)下,整個(gè)車載系統(tǒng)可以被看作是一個(gè)分布式網(wǎng)絡(luò)系統(tǒng):中央計(jì)算平臺(tái)是一個(gè)小型服務(wù)器集群,區(qū)域計(jì)算平臺(tái)是邊緣計(jì)算節(jié)點(diǎn)。在互聯(lián)網(wǎng)或者大型分布式系統(tǒng)中,SOA架構(gòu)設(shè)計(jì)理念已經(jīng)被廣泛使用了。因此當(dāng)IP網(wǎng)絡(luò)技術(shù)被廣泛應(yīng)用于汽車后,很多在互聯(lián)網(wǎng)或者分布式計(jì)算中已經(jīng)很成熟的軟件技術(shù),自然會(huì)被借鑒到新的汽車軟件架構(gòu)設(shè)計(jì)中來(lái),比如:RPC技術(shù)、事件/消息總線、RESTful API設(shè)計(jì)等。
大型互聯(lián)網(wǎng)數(shù)據(jù)中心中的服務(wù)器集群動(dòng)輒幾百、上千臺(tái)服務(wù)器,每秒百萬(wàn)、千萬(wàn)級(jí)別的并發(fā)。車載系統(tǒng)盡管可以被看作是一個(gè)分布式網(wǎng)絡(luò)系統(tǒng),但是它卻沒(méi)有互聯(lián)網(wǎng)大型服務(wù)器系統(tǒng)的高并發(fā)特征,相反,它更注重通信的實(shí)時(shí)性和可靠性。
車載系統(tǒng)在物理上是向集中式發(fā)展的,也就是原來(lái)通過(guò)多個(gè)分散ECU來(lái)實(shí)現(xiàn)的功能,漸漸集中到幾個(gè)主要的高性能域控制器上。因此,盡管在軟件設(shè)計(jì)上,我們會(huì)盡量按照SOA的思路拆分成一個(gè)一個(gè)小的服務(wù),但是這些服務(wù)在部署上其實(shí)是集中式的。鑒于這種物理部署上的“集中”與運(yùn)行時(shí)的“分布式”并存的特點(diǎn),因此我們可以通過(guò)一系列技術(shù)手段來(lái)優(yōu)化服務(wù)與服務(wù)之間的通信延遲(比如:通過(guò)共享內(nèi)存技術(shù))。這是車載分布式系統(tǒng)與互聯(lián)網(wǎng)強(qiáng)調(diào)高并發(fā)特性的分布式系統(tǒng)之間另一個(gè)顯著的差別。
4.
小結(jié)
域集中式EE架構(gòu)會(huì)是未來(lái)相當(dāng)長(zhǎng)一段時(shí)間占主要地位的汽車EE架構(gòu),域控制器作為域集中式EE架構(gòu)的核心,會(huì)在整個(gè)汽車產(chǎn)業(yè)鏈中占據(jù)越來(lái)越重要的地位。其相應(yīng)的芯片和硬件方案、操作系統(tǒng)和算法等將會(huì)成為整個(gè)產(chǎn)業(yè)鏈各上下游廠家的爭(zhēng)奪焦點(diǎn)。
轉(zhuǎn)自汽車ECU開發(fā)


