高性能自動駕駛域控制器的關鍵要素設計
2021年11月19日 09:18 瀏覽:2297
作者 | Jessie
下一代自動駕駛系統設計中的迭代更新呈現巨大的變化,主要體現在功能上將不斷迭代出更多新功能,如將原始L2.5或準L3級自動駕駛只能實現在高速路或快速路上的脫手駕駛(這里一般稱之為高速路自動駕駛HWP或交通擁堵自動駕駛TJP功能),逐漸轉變為適用在更廣范圍內的脫手駕駛(這里我們稱之為點對點自動駕駛NGP或基于導航的點對點自動駕駛NOP),而后者則可以更多的適用在經過匝道的自動駕駛過程中。
此外,下一代自動駕駛在其性能上也出現了質的飛躍,如L2.5或準L3無法實現的脫眼駕駛將在下一代自動駕駛系統中被完美解決,更多地,下一代自動駕駛將實現諸如緊急轉向自動避撞,惡劣天氣狀態下的長時間自動駕駛,突發狀況下的緊急自動剎車等功能。要實現如上功能,除了在自動駕駛傳感器上需要增加更多的盲區覆蓋傳感單元(如增加多個側視攝像頭、后視攝像頭、前向或側向激光雷達等),更需要在控制器端增加滿足性能要求的域控制器單元,用于處理由于如上傳感器遞增所帶來的巨大數據量。
如上數據處理的過程包含幾個較大的方面,一般的對于下一代自動駕駛域控制器設計中主要關心如下文所述的幾個基本需求。
“車載攝像頭”硬件需求一般常用MIPI攝像頭作為對視頻分辨率輸入要求較高的場景中,他可以支持500萬像素以上高清分辨率,對于下一代自動駕駛來說往往要求其攝像頭分辨率至少在200w以上,這一需求對于MIPI接口來說完全足夠。它的全稱為“Mobile Industry Processor Interface”,分為MIPIDSI和MIPICSI,分別對應于視頻顯示和視頻輸入標準。
“車載攝像頭”接口協議需求一般采用FPDLink或GMSL兩種形態。其中,FPDLink是在LVDS基礎之上建立起來的通信標準,也是第一次對LVDS規范的應用,FPD Link包括SERIALIZER和DESERIALIZER端。由于FPDLink更加適用于高速數字視頻接口,因此,在下一代自動駕駛域控制芯片外圍接口中應用更加廣泛。GMSL是Maxim公司推出的一種高速串行接口,適用于視頻、音頻和控制信號的傳輸,使用50Ω同軸電纜或100Ω屏蔽雙絞線(STP)電纜時的距離可達15m或更長。FPDLink與GMSL在視頻傳輸上實際沒有明顯的區別,關鍵還是看定點的攝像頭供應商是否支持該接口協議。
此外,對于面向下一代自動駕駛系統的圖像處理技術,也會需要在如下相應的方面做出較大的提升。
①差異化的應用:
即圖像處理將面對不同的應用場景,如包含目標對象的實際檢測、可行駛區域檢測、場景語義分割、駕駛員監控、視覺SLAM等。
②高算力和高計算性能:
即圖像處理過程中需要系統具備足夠的算力將數萬億次的深度學習算法數據運行起來,同時需要確保該原酸效力能夠達到最優。
③神經網絡加速能力:
網絡加速即包含對相關處理單元(如CPU、GPU、TPU、FPGA、DSP等)的最大性能、靈活性、功耗及嵌入式代價問題的實際處理能力。
這里我們需要重點講一下關于網絡陣列最優化過程能力。該過程主要是通過將轉換張量劃分為3-D切片來實現。具有數百甚至數十億參數的深度網絡,傳統 CPU 對如此龐大的網絡一籌莫展,只有具有高計算能力的 GPU 才能讓網絡得以相對快速訓練。在自動駕駛感知數據處理過程中,對于具有更多層和節點的更大的神經網絡,減少其存儲和計算成本變得至關重要,在深度學習的另一端,即移動車端,如何讓深度模型在域控制器上有效運行,也是模型壓縮加速的一大重要目標。網絡模型的壓縮和加速的最終實現需要多學科的聯合解決方案,除了壓縮算法,數據結構、計算機體系結構和硬件設計等也起到了很大作用。
除開如上視頻數據信息處理策略外,在視頻接口輸入輸出時還需要重點考慮自動駕駛視頻圖像得串/并行數據轉化終端,在通用場景中,自動駕駛系統的設計師們會采用串行器/解串器(SERDES)技術的高速串行接口來取代傳統的并行總線架構。串/并數據轉化接口一般采用SERializer/DESerializer對其輸入(信號)進行串并行(解串)轉換。基于SERDES的設計增加了帶寬,減少了信號數量,同時帶來了諸如減少布線沖突、降低開關噪聲、更低的功耗和封裝成本等許多好處。而SERDES技術的主要缺點是需要非常精確、超低抖動的元件來提供用于控制高數據速率串行信號所需的參考時鐘。即使嚴格控制元件布局,使用長度短的信號并遵循信號走線限制,這些接口的抖動余地仍然是非常小的。
在自動駕駛域控制器設計過程中,其雷達數據的連接口通常采用CANFD或ethernet模式進行接入。
對于
毫米波雷達
而言,下一代自動駕駛系統即便是集中式控制方案仍舊按照探測結果數據進行處理,因此還是采用CANFD接入數據。而對于
激光雷達
而言,則是直接對原始點云數據的處理,則通常采用ethernet進行數據接入。
這里我們需要注意幾個比較重要的設計策略,其一是對CAN喚醒的數量需要根據實際功能需求來定。
其二是CAN接口分配需求需要充分考慮MCU算力承載能力,是否能
夠確保將傳感數據融合算法納入進來,融合這一部分算法的數據量相對于MCU傳統的車控算力是比較大的,一般的MCU無法承載該算力需求。
因此很多情況下,傳感數據融合算法通常是放到SOC中間的。
對于激光雷達而言采用以太網的傳輸方式,則需要充分考慮到原始數據源的數據量,目前看來,主流的百兆激光雷達能承載的數據量相對較少,而對于高線束的激光雷達則需要千兆以太網進行數據輸入。
而ethernet接口通常采用Broad-R-Reach能達到車規級,也可在量產開發中預留RJ45接口作為調試接口。
此外,自動駕駛中的通常會采用多路毫米波雷達介入相關感知數據。一般采用至少五組毫米波雷達進行感知輸入,正常情況下則至少需要5個以上的CANFD連接端。在一般的SOC芯片設計中不會設置如此多的CAN通道數,正常情況下設置4路CANFD是比較常見的。因此,毫米波雷達量產的時候可通過CAN ID號區分雷達的不同位置,因此只要帶寬足夠,多個雷達可以同時掛到一個CAN總線上,這樣可以節省不少CAN接口。
對于高精定位輸入接口設計而言,在下一代自動駕駛系統的輸入接口也通常沿用當前的狀態,采用ethernet進行輸入,而原始地圖眾包或點云數據通常出現較大的數據量,這就要求以太網升級為至少1000M/s以太網,以確保數據量的無疏漏且實時的傳輸。同時高精定位源會實時接入外圍感知定位數據端,包括IMU、RTK甚至輪速信息等,因此設計過程中需要預留更多的以太網接口。
而在高精定位處理策略中,則是將原始的分布式數據處理方式變更為集中式數據處理方式。即,原始地圖定位端只提供地圖眾包數據,上層ADS域控制器處理的信息則更多的需要融合IMU、輪速、RTK等數據信息。這使得整個定位融合算法會較多的占用MCU芯片的算力,一般情況下這種數據融合會放置到SOC中進行,這樣可以再確認定位信息無疏漏的情況下,大大減少MCU的算力負擔。
首先我們需要講解SOC的數據存儲和交換問題。以上問題涉及到關于AI芯片的外圍接口或外置存儲器到底能夠執行怎樣的任務。一般的,外圍存儲器應該具備的如下的功能項,運算數據臨時存儲單元,算法程序臨時存儲單元,較大容量臨時存儲單元。
一般的,主流的SOC存儲及交換單元主要包含LDDR、Flash及eMMC;
內存是
SOC
中數據與
CPU
進行溝通的橋梁,
SOC
中的所有程序的運行都是在內存中進行的,因此內存的性能對計算機影響非常大。
LPDDR
作為面向低功耗而指定的通信標準,以低功耗和小體積著稱,可專門用于移動式車載芯片控制端。
面向車載移動平臺的
LPDDR4
,其能夠在帶來等效的性能
(
速度
)
的同時,兼顧更少的能源消耗。
因此
LPDDR4
從成熟度和應用廣泛性上目前是主流
SOC
芯片主
要的內存平臺,不過
LPDDR5
的興起也將有逐漸代替
LPDDR4
的整體趨勢。
除開LDDR這種內存形式外,為了允許在操作中多次擦除或寫入相關數據,以及在SOC與其他數據輸入輸出端交換臨時傳輸數據,可以增加一定數量的快閃存儲器。NAND Flash具有較快的抹寫時間,而且每個存儲單元的面積也較小,這讓NAND Flash相較于NOR Flash具有較高的存儲密度與較低的成本,同時它的可抹除次數也高出NOR Flash十倍。因此,在SOC芯片外圍一般采用NAND Flash閃存。
此外,SOC芯片在通常設計外圍接口存儲器eMMC(embedded Multi Media Card)將NAND Flash芯片(Flash內存陣列)、Device Controller芯片封裝到一塊。Flash控制器負責管理內存,并且提供標準接口,使得eMMC能夠自動調整主機與從機的工作方式,沒有位數限制,不需要處理其他繁雜的NAND Flash兼容性和管理問題。從而大幅降低多芯片的空間占用和布線難度問題。對于自動駕駛芯片來說,應用eMMC來存放處理程序是一個非常常用的方式。
對于下一代自動駕駛系統架構設計而言,往往不是一塊或兩塊SOC芯片能夠解決其數據交互問題的,常有的情況是采用2-4片SOC進行AI數據處理。對于雙芯片設計時可直接通過連接中介交互信息,而當設計多于2路芯片時,通過這些芯片發送出來的數據信息應該至少有數十路的信息交互。因此,多芯片交互信息需要加入數據交換單元Switch進行數據交互。一般大數據傳輸采用的數據傳輸PCIe,一般的數據傳輸采用ethernet、GPIO。因此,對于數據交換單元Switch而言,主要包括ethernet Switch、PCIe Switch的數據中轉單元作為數據交換及數據管理的中介。
Ethernet Switch的工作基礎是Ethernet信息包結構。Ethernet信息包為固定格式,但長度可變,在信息包頭中帶有目的MAC地址、源MAC地址、信息長度等若干內容。Ethernet 交換機是根據Ethernet包中的源MAC地址來更新“MAC地址—端口號表”的,每一臺計算機打開后,其上面的NIC會定期發出空閑包或信號,Ethernet 交換機可據此得知其存在及MAC地址。若一定時間內未見已出現的MAC地址發出包,則將此MAC地址從“MAC—端口號表”中清除,此MAC地址重新出現時將會被當作新地址處理。
SOC的外圍存儲控制器之間需要做各種數據交換和同步,一般都是采用PCI-E,這將增加其連接上對通道數量的消耗。對于一般的車載域控制器端,普遍都是采用的多路存儲配置,去掉一些用于管理、內部嵌入式PCI-E設備的通道占用之后,需要的PCIe通道數也是相當可觀的,因此將多個獨立的控制器芯片連接到同一片Switch上,可以進行有效的信息交互。并可以覆蓋幾乎所有應用場景。當然需要在PCI-E Switch內部將對應的數據包進行地址映射翻譯進行Partition, 以便確保數據交互的有效性。
如上兩種數據連接Switch的作用主要有三個方面,其一是確保自動駕駛系統架構有效的實現雙冗余控制,其二是通過如上兩種線路Switch可以更好地實現時鐘同步,其三是通過線路可確保數據傳輸的帶寬足夠支撐整個自動駕駛數據的傳輸。
自動駕駛高端域控制器的設計過程中需要涉及多個方面的內容,其中包含的硬件部分就有芯片、外圍存儲器、MCU車端邏輯控制、數據傳輸控制中介等方面。軟件部分更多的涉及如何在各個芯片內部放置不同的軟件算法模塊,以便在達到預期功能設定的同時更能提升軟件性能要求(這部分主要指軟件功能安全要求)。這兩方面設計要求系統工程師、軟件工程師、硬件工程師相互同理配合才能確保在設計之初能夠盡可能多的滿足后期開發需求。
技術鄰APP
工程師必備