主機廠面臨的挑戰(zhàn)
挑戰(zhàn)1
某主機廠想在現(xiàn)有車型上增加一個汽車香氛功能,發(fā)現(xiàn)需要修改8個以上ECU結(jié)點,涉及到5個以上的供應(yīng)商的PCE,多條CAN總線信號改變,包括很長周期的測試驗證及功能聯(lián)調(diào)。 ?
挑戰(zhàn)2
某主機廠在規(guī)劃下一代車型的電子電器架構(gòu),新的EE架構(gòu)里增加了高階ADAS域控制器,10多個揚聲器,10個以上的攝像頭,激光雷達,點云毫米波雷達。 ? 導(dǎo)致ECU數(shù)量,ECU體積,ECU重量都有顯著提升,線束線徑直線上升,線束太粗,無法走線。??
挑戰(zhàn)3
來自某新勢力主機廠的挑戰(zhàn)。 ? 某新勢力主機廠在SOP之后以驚人的速度通過軟件OTA來給車型增加新功能,在將近3-4年內(nèi),不停的通過OTA給汽車賦能,給汽車增加新的功能,使消費者持續(xù)獲得新鮮感,有一種說法:某新勢力的OTA功能打開了潘多拉的魔盒。 ? 當前其他主機廠也在思考,?在SOP之后,汽車的生命周期是否還可以再延續(xù)幾年。然后通過OTA的方式來再次獲利。 ? 下表為2019某新勢力主機廠主要升級的內(nèi)容匯總:?
哨兵模式 |
寵物模式 |
可根據(jù)未知自動合攏/展開外后視鏡 |
峰值功率提升 |
動態(tài)制動燈 |
升級提示屏 |
更多TeslAtari電子游戲 |
New Application Launcher |
停車燈警告 |
更好的駕車可視化體驗 |
NoA的無需確認的變道功能 |
惡劣天氣NoA禁用功能 |
車道偏離避讓功能 |
緊急車道偏離避讓功能 |
有條件限速功能 |
挑戰(zhàn)4
某些主機廠在分析某新勢力主機廠的EEA之后的設(shè)計思路。 ? 包括中央大腦的出現(xiàn),ADAS的ECU、娛樂系統(tǒng)的ECU。如下圖所示 ?
? 上述EEA中,通過將車身的功能按區(qū)域劃分,進而優(yōu)化走線。將原先按照功能域劃分的功能拆分到不同的區(qū)域里面。 ? 很多主機廠都是跟風的,但是有些主機廠是有自己的想法的,所以他們也在往中央計算+區(qū)域化的電子電氣架構(gòu)的方向發(fā)展,以這樣的模式去開發(fā)他們的下一代的電子電氣架構(gòu)。??
總結(jié)
當前主機廠碰到的問題: ?
隨著車內(nèi)功能越來越多,代碼量已達到將近2億行
控制器數(shù)量已多達100多個,整個管控非常困難
1000個以上的功能跨ECU,這些功能要做修改和迭代是非常困難的
所以目前來說這些主機廠都為這些問題。正在頭痛,所以說大家都在尋求改變。 ? ? 特斯拉在年終一個更新里面增加了一個燈光秀的一個功能,這其實包含了SOA的概念。如果我們在原來的EEA上面要實現(xiàn)這樣的一個功能,其實是比較難的。
中央+區(qū)域的電子電器架構(gòu)
那么中央?yún)^(qū) + 區(qū)域的EEA是一個什么樣的一個概念呢?
中央 + 區(qū)域 EEA的概念
在1999年的時候,整車可能只有19個ECU,經(jīng)過多年以后,最新一代汽車上,ECU的數(shù)量已經(jīng)增加了108個,F(xiàn)lexRay的總線上的信號數(shù)量已經(jīng)多達4萬個。 ? 以FlexRay為例,當我們在增加功能的時候就會發(fā)現(xiàn),沒有人知道這4萬多個信號到底是干什么的,也沒有人敢去動它,然后大家只管往里面再去增加更多的信號,那么會導(dǎo)致后續(xù)我們?nèi)ラ_發(fā)新的功能的時候就非常的困難,所以需要做出改變! ? 下圖是他們這家主機廠現(xiàn)在在努力的一個方向,原先的電子電器架構(gòu)主要是以功能域來劃分的, 慢慢的轉(zhuǎn)到中央式的電子電器架構(gòu),他們會把很多功能域集成到計算平臺的ECU中, 把一些配電和一些對傳感器執(zhí)行器的集成會放在VIU 單元當中去, 用高速或慢速的CAN或以太網(wǎng),跟中央的大腦之間進行一個連接。 ?
集中計算的概念就是要有一個高性能的異構(gòu)計算平臺,設(shè)計軟件要有一個SOA的概念,具備OS與中間件, APP 要與硬件解耦; ? 然后分布式連接就是首先要搭一個中央+區(qū)域的電子電器架構(gòu),同時利用高速總線(以太網(wǎng)或 PCIe)來實現(xiàn)功能域之間的連接和通信,還有一些線束的革新,以及要做到IO解耦。??
SoC廠家愿景規(guī)劃
一些SoC廠家推出了一些SoC概念,在他們眼中,傳統(tǒng)網(wǎng)絡(luò)是一個網(wǎng)關(guān)把各個功能域連接在一起。 ? 在目前21/22年這一代可能量產(chǎn)的一些車型,或者量產(chǎn)的大部分車型中他們以功能域來劃分。在下圖可以看到ECU的數(shù)量大大減少了,把很多計算的東西放到了功能域上面,把一些功能集成到一個更大的ECU里面。 ? 在24/25年的時候,基本上會把這些功能域的控制器再做進一步的集成,會形成一個兩個或三個這種大腦即我們認為叫GCP或者叫CCU這樣一種形式,然后再以區(qū)域化的方式去接入。? ? 新進來的一個SoC廠商更加激進,他們認為可能一直到2026年可以把整車所有的計算全都放在單個的SoC里面,里面包括娛樂系統(tǒng)、Cluster、ADAS、車內(nèi)感知、車身控制、底盤等所有的功能。 ? 這目前是一個愿景,還在PPT階段,我們也拭目以待! ?
計算平臺概念
目前來說比較適合中國的主機廠的一個多快好省的計算平臺GCP,它應(yīng)該怎么去搭呢? ? 首先它是要有一個異構(gòu)的SoC,它里面是有MPU, 主要用來去做高性能計算,那上面我們會有VDL的這一層把外面接的執(zhí)行傳感器或者是其他的一些ECU進行一個抽象和代理。 ? 然后還有一個MCU這個單元,MCU就相當于一個實時核,它里面主要會跑 CP AUTOSAR,會通過信號與服務(wù)的轉(zhuǎn)換把一些信號暴露出來給MPU,讓MPU這邊去做一個SOA的一些應(yīng)用。 ? MCU主要是看它的個數(shù),包括它的算力,能夠支撐我們外面的一些ECU往里面去收集,我們就相當于可以去把類似于純計算的一些ECU集成到我們這個MCU里面去。 ? 然后MPU這邊的話可能會有一些SOA的服務(wù),整車的OTA的Master,網(wǎng)絡(luò)安全,整車診斷的功能,大數(shù)據(jù)收集的功能等都會放在MPU上,利用它的一個高性能的 OS、 Linux或者eMCOS,數(shù)據(jù)庫的這種方式可以在這上面實現(xiàn)。??
計算平臺的特點
上述計算平臺的特點如下: ?
中央網(wǎng)關(guān)既是網(wǎng)關(guān)又是計算平臺,也是軟硬分離的核心部件
中央網(wǎng)關(guān)連接的不再是功能域網(wǎng)段,而是按實時性及帶寬要求分解出更多的網(wǎng)段;
客戶體驗相關(guān)應(yīng)用盡量上移到GCP,硬件相關(guān)軟件的基礎(chǔ)功能軟件放在其他節(jié)點。
盡量暴露其他節(jié)點的信號;
盡量暴露其他節(jié)點的能力并盡量原子化;
GCP算力高低可配;
SoC盡量pin to pin 可擴展;
VDL可厚可薄取決需求。
通用計算平臺搭建
GCP如何搭建呢?它首先里面包括MPU、MCU兩個計算單元,我們這里是在一個異構(gòu)的SoC架構(gòu)里面。 ?
它是一個實時性的核和高性能的核的組合, 它要能夠?qū)崿F(xiàn)不同的功能域的融合的話,必須要支持不同的安全級別,有一些安全隔離,內(nèi)存、功能等之間是互相要隔離開,同時供電也是要互相隔離。 ? MPU特點:高算力、大運算量、服務(wù)類通信、低安全級別、低實時性、功能多樣化 ? MCU特點:中低算力、多控制功能、高安全級別、高實時性、快速啟動
功能分配
整合考慮因素
功能是否對實時性要求很高
功能是否需要有很多的模擬量輸入和輸出
I/O和計算分離后業(yè)務(wù)邏輯的變化(計算時的輸入參數(shù)需要通過總線傳遞)
OEM或供應(yīng)商是否有把某個功能做I/O,計算分離的技術(shù)能力
是否對優(yōu)化成本有優(yōu)勢
評估每個功能對硬件能力的需求,并評估整合后在新的硬件平臺上是否同樣滿足需求
整合后的ECU開發(fā)難度
功能分配
下圖是某個主機廠的一個基于Ti芯片的計算平臺,集成網(wǎng)關(guān)功能,車身控制功能,同時因為它外面有外掛IQ的芯片,把上層的ADAS融合算法和車輛控制也放到了這個芯片里面。 ?
高性能核有一些MCU的功能,在一個MPU中會有SOA相關(guān)的信號服務(wù)轉(zhuǎn)換功能、基本功能、上層服務(wù)。 ? 還有診斷功能DoIP、時鐘同步功能,數(shù)據(jù)和日志大數(shù)據(jù)收集功能(可能有的主機廠把大數(shù)據(jù)放在娛樂系統(tǒng)那邊的話,其實沒有辦法拿到整個車身上所有的信號,所以把它放在網(wǎng)關(guān)這樣一個節(jié)點或者放在中央計算平臺這樣一個節(jié)點是非常合理的)、網(wǎng)絡(luò)安全功能、OTA/刷寫功能。 ? 這些芯片除了以上描述的一些功能,還可以做一些視覺處理,泊車功能等。 ? 當然這個芯片目前做了一些評估,雖然說這個泊車功能放在上面理論上是有可能性,但是可能這個芯片算力上稍微差點,所以目前來說這只是一個規(guī)劃,如果后續(xù)出了一個更高的一個版本的話,那有可能把這個芯片的所有功能都用上,做成比較大的一個融合的平臺。
IO與計算分離
IO與計算分離概念
一個很典型的例子是在一個Door模塊里面集成了一個反光鏡的控制功能。比如有三組用戶的一個配置參數(shù)存在這個ECU的flash,受限于ECU的算力和FLASH、RAM大小,能夠存三組用戶數(shù)據(jù),我們可以看到,大多數(shù)一些車輛的門左側(cè)或者右側(cè)都會有一個用戶參數(shù)保存的實體按鈕,然后memory加上一個m鍵,這個功能基本上是定死,沒辦法再擴展。 ? ? 我們要去對這個I/O和計算進行一個解耦,那么怎么樣去做呢? ? 我們要把它的最基本的功能,比如左右上下的一個調(diào)整功能,擋位、車鎖芯聯(lián)動的這些功能保留在信號的一個層面,然后把用戶相關(guān)的參數(shù)保存這些東西會放到更上層去做。 ? GCP一般是在一個承上啟下的位置,ECU變成一個執(zhí)行器,邏輯就會簡化,信號通信也變的簡單。
整個的業(yè)務(wù)邏輯上提到GCP里面,比如在R核里面部署一個類似于反光鏡這樣一個SWC,那么在A核這邊,我們就可以部署一個反光鏡控制的這樣一個基礎(chǔ)服務(wù),可以由很多其他的服務(wù)來調(diào)用,比如User Setting,這樣用戶的個性化功能就可以通過服務(wù)調(diào)用跟我們的反光鏡可以聯(lián)動起來。 ? 以上就是一個面向服務(wù)的I/O與計算分離的一個示例。 ?
適用于計算平臺SoC
下面,我們分享一下適用于計算平臺的SoC。??
TI 821
TI 821的主要特點是有兩個A72的核,相對來說已經(jīng)是比較強的一個算力。還有4顆R5F,單顆可以在1GHz運行下,提供2k的DMIPS算力,4顆R5F最多可以提供8K的算力。 ? 下圖可以看到安全島的概念,綠色的地方,如果用兩顆R5F的話可以達到ASIL D的一個級別,它的內(nèi)部MCU也是可以鎖步的,分開來用可以達到ASL B的級別。這也印證了一點,它可以有不同的安全級別功能同時跑在不同的核上面。 ?
下圖是一個假想的設(shè)計框架,MCU0系統(tǒng)里面可以做一個網(wǎng)關(guān)的功能,把整個CP AUTOSAR的協(xié)議部署到上面??蛇x性比較多的,就看客戶的一個需求。 ?
NXP S32G
下圖是恩智浦的S32G芯片架構(gòu)圖 ?
? 上圖中,CPU Platform 中有兩個Cluster 0和1,每個Cluster 的里面是兩顆A53,這個A53可以支持鎖步,也可以支持分開來用。相當于Cluster 0?和Cluster 1至少可以有兩個獨立的工作區(qū)來跑高性能的運算. ? M7的核有三個可以支持鎖步的M7,可以達到ASIL-D,上面又可以去部署一些高實時性或CP AUTOSAR的一些功能。 ? S32G的外部接口的話跟TI 的芯片其實差不太多,比較有特色的就是它有一個網(wǎng)絡(luò)加速功能,對傳統(tǒng)的CAN有一個LLCE的引擎專門對報文路由進行硬件加速,跟PDR模塊進行一個緊密結(jié)合. ? 另外還有一個以太網(wǎng)加速模塊,也是一個對以太網(wǎng)報文路由進行一個加速硬件模塊。這是兩個比較有特色的點。 ? 下圖是S32G開發(fā)板的參考設(shè)計框架,圖中外擴了一個Switch,最下面是以太網(wǎng)的連接;上面可以支持LINE、FlexRay(主要是沃爾沃和吉利在用)、CAN傳統(tǒng)的車內(nèi)總線連接。 ?
? ?
?
SoC通用特性
MultipleCAN, FlexRay(opt), LIN, ADC, DIO,SPI,UART etc
MultipleEthernet
MPU:Cortex-A core (Performance Computing)
MCU:Cortex-M core Cortex-R core (Realtime Computing)
IPC(Inter Processor/Platform Communication)
HighSpeed & Bandwidth Interconnect between Computer Domains
SafetyEngine for HSM
SafetyIsland Concept (Separate Power Supplier, MCU only mode)
DDR-RAM& SRAM
NOR-FLASH(MCU firmware, NVM, Bootloader)
EMMC,UFS (MPU kernel, rootfs,user data)
SecureBoot
計算平臺SoC關(guān)鍵技術(shù)點
?
IPC工作流程
IPC工作流程如下圖所示: ?
Core1
application調(diào)用rpmsg_send接口,把數(shù)據(jù)copy到本地queue
virtio-ring把data從localqueu搬運到共享內(nèi)存中的vring中
同時寫mailbox寄存器進行kick操作
Core2
觸發(fā)IPC中斷
中斷處理函數(shù)中把數(shù)據(jù)從vring中搬運到localqueue
中斷處理函數(shù)callback,receivecount ++
上層APP調(diào)用rpmsg_recv,把數(shù)據(jù)copy到應(yīng)用中去
?
IPCF 跨平臺通信框架
Inter-Platform Communication Framework (IPCF)???是一個子系統(tǒng),它使應(yīng)用程序能夠運行在多個同質(zhì)或異質(zhì)處理核心上,位于同一芯片或不同芯片上,運行在不同的芯片上。操作系統(tǒng)(AUTOSAR、Linux、FreeRTOS、Zephyr 等),通過各種傳輸接口進行通信(共享內(nèi)存等)。 ? 下圖為恩智浦提出的一個方案,提供給用戶的API相對友好,利用了Zero-copy的技術(shù),從用戶空間或用戶application copy到共享內(nèi)存中效率較高。 ?
? 流程 ? 下面解釋一下IPCF的流程。 ? UNMANAGED 兩個API就可以實現(xiàn)一個動作,Channel是固定的,先取到一個buffer,做一個內(nèi)存寫的動作,中斷出來后,有個中斷處理函數(shù),中斷處理完成后會進行callback直接會把memory地址給到APP讀出來,如下圖所示。 ? 總體來說,Unmanaged的效率還是比較高的。 ?
? MANAGED這邊有些小區(qū)別,需要告訴對方chan_id、buffer、size,然后觸發(fā)中斷,對方收到后會有另外一個callback接口,會把buffer、size等告訴app,app用完之后會還掉buffer。這就是一個簡單的Managed的過程。 ?
?
實例
基于IPC技術(shù),我們舉一個例子,如下圖所示。 ? 在左邊的R5核中部署了一些SWC,利用CDD模塊來實現(xiàn)IPC。SWC可以實現(xiàn)一些邏輯,它會把信號通過IPC路由到A核的SST(信號服務(wù)轉(zhuǎn)換)模塊,SST會把信號包裝成服務(wù),通過服務(wù)接口,在控制車窗模塊提供基礎(chǔ)服務(wù)。 ?
? 上述中會有一個比較關(guān)鍵的技術(shù):信號到服務(wù)的轉(zhuǎn)換。 ?
?
其他關(guān)鍵技術(shù)點
QoS (不同的核訪問外設(shè)資源時候的優(yōu)先級分配)
Firewall(核與核之間訪問內(nèi)存的硬隔離)
DeviceManagement (靈活分配外設(shè)資源到不同的物理核)
InterruptRoutine Management (配合DeviceManagement, 中斷路由管理)
TimeSync (不同核之間的時間同步)
異構(gòu)SoC的BSP非常大,也是項目開發(fā)難度比較大的點。下圖可以看到A核通常是一個Linux的一個BSP,R核通常會是一個MCU的一個BSP,通常它還會有很多的tool chain,包括編譯的工具,調(diào)試的工具,輔助的SDK。 ?
? 這邊舉了一個TI 821的例子(J7是一個內(nèi)部代號),可以看到,它的R核上會有SBL,A核上會有SPL,可以從A核先啟動,也可以從R核先啟動。 ? 當然也支持CP AUTOSAR,需要我們做一定的適配。工作量也非常大。 ? 也支持LWIP,一個輕量化的IP協(xié)議棧,一般使用AUTOSAR的時候,會用AUTOSAR的協(xié)議棧。 ? 還有PDK Driver,里面包含了外設(shè)驅(qū)動等。 ?
編輯:黃飛
評論