自動駕駛在新一代EE架構中趨向于從分布式向集中式演進,在此過程中,整車需求包括機械、電氣/電子、軟件、熱學等。工程師需要從中提取電氣/電子方面需求,并且對其進行分解然后協調各下游部門進行開發設計。在整個過程中,涉及電子電氣架構的定義、設計和交付的各種工程師必須平衡相互依賴的需求。從傳統架構到智能電氣架構,也會面臨類似的問題——傳統電氣架構全部都是機械和電氣范疇內的,在OEM那里是屬于電氣部門的,和電子不搭界,但升級到智能電氣架構后,全電子化了。因此可以說,傳統電氣架構的可靠性下限比較高,但上限很低,而基于半導體方案的智能電氣架構,可靠性下限比較低,但是上限非常高!
這里我們需要說明的是,如上過程從整體上看確實是有利于整個系統設計開發過程的。因為集中式域控制器工作過程中,其資源分配和任務調度也更加靈活。模塊化的軟件開發也將更加有利于整個系統的分布開發和在線升級。然而,區域控制器是根據車輛的物理布局將其余功能整合在一起。區域控制器的實施通常需要對軟件和供應商交互進行很大的更改,這對汽車制造商和供應商都是一個很大的挑戰。
整體來說,區域集中式架構通過實現超強的算力和更大通信帶寬的支持。最終,通過標準化的API接口可以實現軟硬件的真正解耦(也就是實現面向服務的SOA架構)。但是,由于SOA這一思想本身來自于互聯網,在原有電腦端高并發的場景應用中,更加傾向于數據傳輸效率,而非可靠性。
那么,我們就要說SOA架構對于下一代自動駕駛的適配性到底咋樣?由于自動駕駛汽車需要使用大量傳感器,車內線束也在迅速增長。車內需要傳輸的數據量激增,同時線束不僅承載的信號更多,而且數據傳輸速率要求更快。
因此,車端的SOA則在保持基礎傳輸效率的同時更加關注可靠性。那么如何提升這種可靠性和執行效率則是下一代EE架構必須面對的棘手問題?
首先是域控制器內部,應該在滿足最低限的算力需求情況下,盡可能提高算力利用率。這時候,各個芯片的AI處理能力和邏輯處理能力就顯得尤為重要了(這一點將在后續進行詳細講解)。此外,我們清楚各個SOC外圍往往會接入一定量的存儲單元用于對啟動程序、操作系統、臨時交換數據、即時處理數據的存儲。這一過程是為了方便SOC單元能夠在額定時間內隨時存取相應的數據進行處理。因此,對域控的整體性能來講,大容量的存儲單元對于提升SOC運算效率是非常重要的。當然,考慮到成本問題,各存儲器的擴容參數也不能無限放大,需要根據實際仿真或者臺架測試參數來定。此外,域控內的通信線路中可以多接入大帶寬的通信總線,比如接入PCIE可以多用于傳輸原始數字圖像或點云;加入更大容量的以太網(如千兆以太網甚至萬兆以太網)也可以大幅提升數據傳輸性能。
如上只是SOA中的單級域控單元的控制策略,當然其思想對于多級域控來說也是適用的。從本質和局部提升整體架構變革帶來的問題可以提升架構升級后的適用性。
通常,SOA的軟件部署都在MCU上,因為通常需要提供一個實時、高功能安全等級的系統和芯片,才能確保SOA的軟件部署實現最優內部進程過程通信能力(Inter Process Communication)。這里的IPC主要包括常用的SOME/IP、DDS、Dbus、MQTT等。
先進的電子電器架構中由于往往承載了各宗智駕域內的傳感器,域控制器和黑匣子等零件的鏈接與信息交互, 而真正的交互過程有并非是點對點的,所以整個過程需要專門接入交換機進行數據交換和路由。因此,“交換機”的作用則是不僅串聯了各硬件總成,更是為各端口之間提供了有效的網絡數據轉發、虛擬網絡劃分、鏈路聚合等功能。
對于先進架構來說,其交換機類型可以分為控制器內部Switch和外部Switch兩種。這兩種交換機均是工作在OSI參考模型中的數據鏈路層。對于先進的自動駕駛架構來說,交換機需要在滿足基本數據通信及轉發的基礎上,同時提供適當的時間同步、調度延遲處理、資源管理及可靠性保證。
先進的自動駕駛會采取冗余的EE架構設計,從內向外無論是域控制器內部還是域控制器之間都是采用了包含傳感器、執行器、通信、電源等雙路計算交互方式。比如,域控制器內部對于傳感器數據的處理,通常是多SOC均接入某一類傳感器數據進行數據處理、融合。這就意味著,輸入的傳感器數據會通過交換機傳遞至不同的SOC。當然,這里的傳感器數據類型可以是原始數據RawData,也可以是結果數據ObjectData。不同的傳遞方式會依賴不同的傳輸介質及交換機,比如原始數據是依賴于PCIe Switch傳遞圖像,結果數據是依賴于eThernet Switch傳遞環境目標信號。交換機工作的方式有單播、廣播和組播的方式,通常情況我們為了實現資源利用率、效率和可靠性的最大化,會選擇帶有組播優勢的Switch。因為,這里組播方式的Swicth相當于“點對點訂閱”所需要的信息,既避免了單播無法全面的找到適配的接收端的弱點,又可以規避廣播中對于交換機存儲和CPU處理能力的極大挑戰。
-Switch時間同步機制
先進的自動駕駛EE架構中主要以以太網作為主干網,為了提升數據交互的實時性、安全性,通常會考慮將智駕域控與其他域控通過以太網交換機進行直連,且關聯的每個域都會有自己的交換機。各域控之間的交互都會考慮一定的時間同步性,然而,為了更好的適配整個架構,需要增加時鐘冗余和時鐘傳輸路徑冗余,同時對滿足車輛功能安全的需求,需要提供一種統一的解決方案。交換機在整個域控內部及域控之間都可以看成一個邊界時鐘節點。即傳遞至接收端的幀信息不僅有數據還應該有時間戳信息,這就使得收端可以定期的進行時間同步。并且,由于Switch具備一定的存儲轉發功能,因此,當主時鐘失效的時候,還可以通過存儲的時鐘信息起到一定的緩沖作用。這里要說明的是,很多網絡設計師會考慮采用時間敏感網絡TSN中相關時間同步協議802.1AS/802.1AS-Rev進行Switch同步規范。
-Switch中的調度延遲處理
Switch中的調度延遲也可以理解為傳輸延遲,也就是說,對于Switch來說,智駕域輸入需要傳輸的數據可能是五花八門的,當然每種數據也可能本身從重要度、緊急度、輕量化等方面具備一定的優先級。那么這種數據轉發的優先級我們希望是能夠被Switch所識別并處理的,怎么做呢?那就是在交換機多個待輸出隊列中識別VLAN或IP所代表的優先級隊列,利用循環列表的方式來控制每個隊列的開關時間窗口,調整時間感知整形器,通過靈活配置來實現不同延時需求的調度規則集合,配置過程可以是優先級搶占發送資源的過程,即高優先級在傳輸幀中搶占低優先級發送數據,從而減少不同數據幀的最大傳輸延時,確保實現傳輸延時確定性和帶寬的穩定性。
-Swtch資源管理與可靠性
傳統的CAN網絡通信具有天然的組播通信方式,某一個節點的故障不會中斷其他節點間的通信。先進的自動駕駛系統最看重的就是功能安全的實現,而功能安全在應用汽車以太網作為骨干網的拓撲中主要關注的是通信安全。通信過程中往往需要大量的數據轉發的網絡拓撲,這些都是由交換機作為承載單元實現的。
我們前面提到,只有組播方式的信息交換和播發是最可行的??梢哉f,面向未來的集中式EE架構是在基于以太網基礎上采用了集中式的點對點通信實現的,這就需要使用一定的消息隊列來緩存一定大小的報文和控制通信信息。并且,考慮功能安全所關注的通信安全,則要求該以太網Switch利用軟件或者硬件冗余通道來保持實施數據備份。筆者了解到,很多車身網絡工程師采用了TSN協議中的802.1CB規范來設計硬件線路和軟件流量的雙重備份,這種類似復制幀的方式有效地提升了功能安全等級。
從傳統架構到智能電氣架構,最大的變化就在于很多原始問題由大量的機械問題變為電子電氣問題,對于排查故障要求也變高了,并且很多都是涉及電氣部門的電子問題??梢哉f,是從純硬件升級到軟硬兼施的問題,并且問題主要以軟件為主。既然是電氣問題,那就不得不提到相關的電源分配問題。
為什么要提到電源呢?因為,升級后的自動駕駛域控通常都是采用獨立電源供電的方式進行配電。整個域控負載需求提升以后,很多都會考慮氣能量管理、上下電策略、負載類型、負載特性、保護特性、線束匹配、散熱/防護設計、連接器設計、PCB載流等。也就是說這些都是整個域控電源和電流的設計很大程度上會影響其輸出效率甚至安全性。那么,我們在做架構設計時,就需要充分考慮在需求中增加配電能力和保護措施,比如通過在域控芯片中增加保護功能(大電流Shunt)和診斷功能的電路實現。
因此,對于主機廠來說,在做Tier1的招標時,一定要同時考慮其是否具有配電設計能力和電子模塊的設計能力。這也是最可能實現電氣架構落地的必要條件。
-芯片問題
提到車載智能芯片很多人首先會想到的是自動駕駛相關的AI芯片(又稱MPU)和邏輯運算芯片(又稱MCU)。當前研發的重點在于基于域控制器的整體設計、開發,將其中的算力、帶寬、功率及軟件算法等作為主要的考慮的選型要素。然而,一個自動駕駛相關的芯片還需要統籌考慮到模型適配性、算法運行效率及其安全保障等。其中算法模型適配性需要進行模塊和進程分解,而運行效率則包括進程數據通信、深度學習模型加速、任務調度和資源管理等。而功能安全保障能力有需要更多的場景分析和系統測試。這些都是比芯片本身更消耗人力、物力和財力的。
舉個例子,應用在ADAS中的系統芯片,大多數在ASIL-B或C級,為了提升功能安全等級至ASIL D,多數OEM會將多片B和C的芯片建立級聯關系的內核冗余技術,這種技術能力對芯片設計的要求很高。對于某些搭載在單個域控制器芯片的算法而言,由于為了實現高功能安全等級的中央計算能力,其核心實際是在主內核中配備一個影子內核,兩個內核需要同時執行相同的指令,再利用比較器比較出兩者差異,一旦兩個中的內核之一出現計算錯誤,比較器就會啟動糾正措施。
如上圖描述了一種基礎的軟件錯誤校驗框架。主SOC和影子SOC都運行相同的SWC軟件模塊,主要SOC運行端通過硬件及軟件模塊的運行日志錯誤搜集器分別搜集其芯片運行的錯誤情況并通過Error Reports報告給整體的系統錯誤處理器。該處理器有兩種錯誤信息處理方式。其一,是同時接收影子SOC所同步運行的SWC結果,并通過比較器進行誤差識別和矯正。矯正后的內容通過關鍵失效處理器對其中的關鍵失效內容Critical Failure進行處理,處理完成的結果可以發送給MCU進行終端失效處理。這類型處理模式實際上是對其進行了雙重保護,確保整體的失效帶來的不利后果降低到最小,這就無形中提升了整個芯片架構在功能安全上的能力。
但是,實際應用中,這種鎖步功能的軟件模塊并不是很容易實現,多核鎖步的這種安全架構方式會加大成本與片上系統功耗。鎖步架構對于芯片的設計能力要求高,很多芯片設計能力出眾卻缺乏汽車電子領域經驗的廠商卻十分重視這塊的能力,也試圖參與ASIL D級MCU芯片市場的競爭。
此外,一個域控制器中的自動駕駛內嵌芯片可能會涉及深度學習模型的實現、合適邏輯算力的CPU、具備圖像渲染功能的GPU、數字信號處理DSP芯片、圖像信號處理ISP芯片和CV(計算機視覺)芯片等。在芯片基礎上,還有一個支持深度學習模型實現的編譯器,該編譯器需要開發來最大效率地提高芯片的利用率,避免處理器等待或者數據瓶頸堵塞。如上,具備挑戰性的問題包含如下三個:
1)如何在模塊和進程分解中將算法進行適配?
2)如何在進程數據通信、深度學習模型加速、任務調度和資源管理等方面提高自動駕駛軟件的運行效率?
3)如何通過設計合理的工程架構(如開發系統冗余模式)提升在功能安全/預期功能安全的保障能力?
這里需要注意線控底盤技術雖然有如上各種優勢,然而,這一先進的技術也會面臨電子軟件或硬件故障所帶來的各種隱患。這相對于曾經的純機械式執行控制系統來說,卻是拿執行效率換取執行可靠性,對于功能安全要求高的場景來說還是十分不利的。
因此,為了規避如上可能存在的風險,也只能在滑板底盤軟件算法和分布式硬件部件上創建多重冗余,才能保證在故障情況下維持住其基本的執行器功能。這里的冗余正是之前在L3系統設計中強調的雙冗余執行系統。如ESP制動過程通常會搭載主ESP控制器,也包括冗余控制器iBooster(博世)或MKC one(大陸)等;又如EPS系統中部分廠家如捷泰、奈斯特、萬都等轉向供應商就開發了雙控轉向系統。
軟件定義汽車時代的興起,需要一種集中的、抽象的、強大的計算架構,這就需要一種新的系統硬件架構來完成這一使命。以服務導向的軟件系統構架(SOA)將成為主流,以SOA/SOME-IP為脈絡支撐起汽車以服務為出發點和差異化競爭的整車E/E架構。在經歷功能域控、區域域控等階段后,將催生真正的汽車大腦:中央計算單元。并與MEC(多接入邊緣計算)以及云計算組成協同式解決方案,避免車端算力需求無限增長。但是,這類集中式架構卻在過程中存在一定的固有缺陷。在架構設計過程中需要十分明確的關注其中的不確定性因素,避免產生一些不可預知的后果。