下一代自動駕駛域控制器系統架構設計
2021年7月21日 09:29 瀏覽:2629
近年來,隨著計算機和通信等技術的發展,汽車產業的發展逐漸呈現出以下幾個主要特點:智能網聯化、電動化、輕量化和國際化。智能網聯汽車的出現不僅為汽車交通事故、交通擁堵等問題提供了良好的解決方案,也為我國汽車產業的發展提供了新的機遇。根據國際自動駕駛工程師協會SAE所提出的標準[1],自動駕駛一共可以分為六個級別:L0,L1,L2,L3,L4 和 L5。其中,L0 -L2 屬于駕駛輔助階段,L3、L4 和 L5 屬于高級自動駕駛。就目前的技術儲備和產業基礎而言,L1 級和 L2 級具有較多的應用場景和市場,部分主機廠已宣布量產L3級或準L3,而針對L3 級及以上(這里我們稱之為L3+)仍然存在諸多技術難題。
L3+級自動駕駛相對于初級版L3主要呈現的問題如下:
1)當前L3級自動駕駛系統中仍然存在較大的傳感探測盲區,比如當前架構下前視攝像頭對前方目標的距離深度及廣度探測存在局限性;側向雷達無法完成側方目標(包含距離、類型、方位)的精準探測;后向通過側向雷達存在較大的三角探測盲區等問題都會在一定程度上影響對于目標的輸出,而這種探測局限性又很可能導致自動駕駛存在一定的危險性;
2)此外,中央域控制器算力、帶寬不足以滿足傳感器輸入的指數級數據量,從而導致無論對于傳感信息亦或者邏輯信息的處理實時性、有效性均無法滿足性能要求;
3)系統架構設計無法滿足駕駛功能安全及性能設計要求。這里我們指的系統架構包含但不限于網絡架構、冗余設計架構、關聯系統接口以及診斷設計架構;
4)功能安全設計是下一代自動駕駛需要解決的老大難問題,所有的系統開發工作均圍繞著功能安全展開。其中的設計過程包含了系統級、零部件級等等,從整體系統級別出發的功能安全等級分析往往需要牽一發而動全身,其智能駕駛系統自身內部設計的方方面面均需要考慮全面,同時參照其控制器、執行器搭載架構而言還需要更多的關注零部件級硬件+軟件功能安全分析。
5)系統功能測試局限問題明顯。對于真正的自動駕駛而言,系統開發往往圍繞正向開發過程進行,正向開發意味著很多邊緣化的場景并未在開發過程中進行響應,我們知道通過APICE流程開發模型中,其中涉及的單元測試和過程測試正是針對開發原始軟件的漏洞和缺陷進行實時補充和更新的方式,這就要求測試過程具備極為豐富的場景庫以及測試平臺搭建能力。場景庫不難理解,就是我們常常稱之為的UseCase,而平臺搭建能力則是對下一代自動駕駛系統測試的巨大挑戰。因為其中包含了仿真測試與實車測試兩種方式。難點在于在很多真實場景下無法進行測量(可能測量時存在較大危險性)的邊緣化場景只能通過仿真平臺搭建,而仿真搭建的模型卻又很難真實的再現出實際的功能場景。
本文針對下一代自動駕駛系統的功能設計架構進行詳細分析,從不同的角度說明自動駕駛系統在設計上的詳細需求,從而確保為開發下一代自動駕駛系統提供支撐。
下一代自動駕駛從整車架構上講主要增加了不同的幾類硬件配置,典型的方案是采用集中式控制方案進行數據處理與邏輯控制。顧名思義集中式即是域控制器直接處理激光雷達、前視攝像頭、后視攝像頭、側視攝像頭、環視攝像頭、超聲波雷達等傳感器原始信號,同時集成高精地圖與定位數據至Soc中(此時可以摒棄掉告警地圖盒子),包含創建SLAM定位建圖策略,外掛獨立IMU進行車輛位姿數據優化等過程。如下表示了下一代自動駕駛的整車架構典型示意圖:
下一代自動駕駛系統涉及的整車網絡系統由若干路 CAN 子網、LIN 子網、車載以太網Ethernet組成。其中CAN 子網分別為:動力 CAN、底盤 CAN、舒適 CAN、信息 CAN、ADAS CAN、T-Box CAN與診斷 CAN等這幾種主要類型。而主體的LIN 子網分別為:VCU/EMS- LIN、BCM-LIN、GW-LIN以及IHU-LIN等。
針對頂層自動駕駛控制系統而言,需要充分考慮的部分包括傳感器與控制器部分的搭載更新,如下圖表示了一種典型的下一代自動駕駛傳感器升級配置圖以及相關控制器主導網絡架構:
從下一代自動駕駛功能架構上看,主要是實現當前階段自動駕駛無法實現的新功能以及提升當前已實現的自動駕駛功能的相關性能指標項。主要的新增功能項有一定環境下的全脫眼自動駕駛Eyesoff,高速路下的點對點自動駕駛NoP,緊急轉向支撐ESS以及自動尋位的全自動泊車系統AVP等等。
整體來講下一代自動駕駛系統的功能架構總體包含的系統功能列表如下:
下一代自動駕駛平臺化系統架構設計的要點在于做到下幾個典型的控制處理方向。為了滿足功能安全設計要求必須實現控制器、傳感器、通信網絡、執行單元等全部雙冗余。從控制器層面講,實現雙冗余可以通過兩方面來實現,各自具備相應的優缺點。
下一代域控制器架構主要分為如下兩種:
一種是雙域控制器雙芯片,另一種是單域控制器單芯片。兩種設計方式各有優劣,且相應的設計原理主要考慮如下因素:
當兩片Soc的算力足夠時,設計所有傳感器進行雙鏈接,可以完全實現感知數據無遺漏傳輸處理。如果將所有傳感器均連接至雙芯片時,也可能由于兩個Soc的數據源均來自相同的傳感器,可能引發數據同源的風險。
2)是否可以做到真正的數據冗余處理及過程控制,并且可以從硬件安全等級上做到完全的防水、防塵、熱保護、高壓、過電保護等內容?
對于設計單控制器雙芯片來說,在一定程度上,特別是軟件上幾乎可以完全做到冗余保護作用,但是對于由于某些外部環境導致的機械性故障,確是無能為力的。特別是當防水、防塵過程中無法滿足需求時,兩片控制器軍可能失效。這是單控制器雙芯片設計的一大弊端。因此,為了更好的向高等級自動駕駛系統需求兼容,一般會選擇設計雙域控制器雙芯片單獨控制方案。
3)是否可以在數據處理結果中做到相互校驗,安全監測等?
在
MCU
設計中對于數據的處理除了包含通常情況的邏輯控制外,還包括對于處理結果的邏輯校驗,其過程包含了數據完整性校驗,數據有效性校驗、功能安全相關校驗等過程。
可靠性高的處理器,監控外圍電路,獨立的電源和電壓域,不能和其他混在一起,相關邏輯在必要時候有冗余設計。兩份芯片來比較,看每份輸出是否一致,有限狀態。設計IP時候需要注意內部子模塊在接口上是否看到。功能安全島的作用主要是利用鎖步的方式實現更高級別的安全等級(一般可達到ASIL-D),Soc芯片本身需要設計安全島用以提升自身功能安全等級。其中鎖步類型包含控制、數據仲裁、系統監控、系統生命周期、時間管理等。
5)芯片之間的連接如何考慮數據帶寬、時鐘同步等因素?
芯片之間的數據連接及通信過程主要包含如下幾個類別:CAN、GPIO、PCIe、SPI、Ethernet、UART、SerDes。各種連接所具備的特征如下:
GPIO是一種通用的數據接口,一般適用于大多數芯片之間的數據傳輸。如果是單控制器雙芯片設計過程中,兩個芯片之間主要通過ehtenet、SPI、PCIe、UART進行通信,如果通信需求實現的高速率、大數據量、高效率,則系統主要選擇PCIe進行,比如兩個芯片之間需要傳輸表格或像素級點云數據,但要注意這種傳輸類型對于數據鏈路的帶寬占有量比較大。如果通信需求對于傳輸數據沒有特別高的穩定性要求,可以采用UART進行傳輸,這樣可以彌補PCIe需求大帶寬的特點。此外,一般情況下,Soc與MCU的連接一般是通過ehtenet、PCIe進行傳輸,可以實現將Soc的數據高效傳輸至MCU,這里需要注意的是在連接設計上兩者的區別,如果是需要對傳感器信號進行時標同步至控制器,則一版采用Ethernet效果更優。而SPI設計來說相對簡單、高效。
以上涉及的內容會完全影響到對于域控制器的硬件設計結果。
系統功能架構上主要包含設計實現功能的應用軟件層及底層驅動處理層。分別由中央域控制器的MCU芯片及SOC芯片進行控制處理,當然其中也有功能交叉。
其中,底層驅動處理層一般是由Tier2供應商進行設計開發的Soc芯片,處理任務主要包含如下:
參照下一代自動駕駛傳感器架構而言,其原始數據的處理包括了激光雷達原始點云數據處理,攝像頭原始RGB圖像數據處理(包含一定程度的深度學習模型訓練),毫米波雷達原始微波處理。下圖表示了一種典型的傳感器數據處理架構:
主要包含文件系統讀寫、線程控制,同時集成高速、大數據吞吐量、靈活和智能的網絡子系統;集成硬件加速器提高數據包和網絡安全 處理,以降低延遲性和軟件復雜度;集成以太網交換機降低系統成本,縮小系統體積。
另一方面,應用軟件位于平臺的最頂層,通常由主機廠負責定義和開發,一般是實現四方面的功能子項。
1)用戶可感知的應用軟件功能,如HWP、TJP、NoP等。如上這些自動駕駛子功能拆解開來的功能模塊主要包括激光雷達感知軟件、側向攝像頭感知軟件開發、激光雷達/側向攝像頭/V2X融合軟件開發、源融合定位軟件開發、規劃決策-控制軟件開發等方面。
2)是數據記錄Log。一般指對自動駕駛過程中異常情況的有效記錄,服務內容包括意外事件記錄EDR和行車記錄DVR。
3)包含數據運行過程中的實時監控(如芯片狀態監控、執行監控、傳感器狀態監控、安全監控),并將監控結果反饋給后臺進行總體管理。
4)四是軟件自動升級,包含手動升級與自動升級。這一方面包含設置云端接口、OTA服務,動態交通信息、傳感數據上傳、駕駛員狀態數據上傳等。
5)是故障診斷功能。診斷功能包含對于傳感器、控制器以及關聯對手件的整體診斷,其中還有對于整個實現功能的診斷監控。
如下圖表示了一種典型的自動駕駛應用平臺軟件開發模塊架構。
如上這些部分的功能項一部分是由Soc進行處理,如感知前/后融合,源定位軟件開發,因為這些都需要具備較高的算力與數據帶寬。另一部分邏輯算力如決策規劃及控制執行方面是由MCU進行處理,這些數據處理對算力要求并不是很高,但是對于數據處理的實時性要求較高。
隨著下一代自動駕駛程度的提高,汽車自身所產生的數據將越來越龐大。據估算,假設 一輛自動駕駛汽車配置了GPS、聲納、 相機、雷達和激光雷達等傳感器,則上述傳感器每秒鐘產生的數據將是:50kB(GPS)+10-100kB(聲吶)+20-40MB(相機)+10-100kB(雷達)。將上述數字相加后可知,一輛自動駕駛汽車每天將產生約4000GB待處理的傳感器數據。由此,有志于投入自動駕駛系統研制的汽車制造商、IT公司以及初創科技公司們不得不面對一個復雜的難題:如何使自動駕駛汽車能夠實時處理如此海量的數據,并在提煉出的信息的基礎上,得出合乎邏輯且形成安全駕駛行為的決策?
解決上述難題的兩個關鍵環節在于提出合理的自動駕駛系統架構,本文正是基于如上現有問題進行闡述和分析,用于重點區分數據處理在終端傳感器處還是在中央處理器完成,這一過程需要對中央控制器的實際算力進行重新評估。同時如何將數據從終端傳感器傳輸到中央處理器,且當對并非位于一處而是遍布自動駕駛汽車車身的多個傳感器進行數據融合時,需要專門考慮傳感器和中央處理器之間的連接設計和線路布置需求。
技術鄰APP
工程師必備