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