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