作者|Jessie
出品|焉知
高階自動駕駛汽車需要通過高帶寬和低延遲的網(wǎng)絡(luò)來連接所有傳感器、攝像頭、診斷工具、通信系統(tǒng)以及中央人工智能。這些技術(shù)會產(chǎn)生、發(fā)送、接收、存儲和處理海量數(shù)據(jù)。
對于下一代自動駕駛域控制器來說,常用車載網(wǎng)絡(luò)有CAN、LIN、FlexRay、MOST和LVDS等。除LVDS外,其他都是專門為汽車行業(yè)設(shè)計的通信網(wǎng)絡(luò)。當前,大部分汽車通過CAN或LIN聯(lián)網(wǎng),但隨著數(shù)據(jù)傳輸速度和數(shù)據(jù)量的增加,這些總線因為帶寬較低、體積較大而不太適合。CAN/LIN總線仍然會有一席之地,但它不會成為通信系統(tǒng)的骨干。
如上圖表示了一種集中式域控制器的內(nèi)部通用連接形式,對于下一代自動駕駛系統(tǒng)通信網(wǎng)絡(luò)連接而言,主要涉及中央域控制器單元中的芯片連接,傳感器接口輸入連接,調(diào)試接口連接,存儲連接等。
在中央域控制器中,通常需要設(shè)計一定大小的存儲單元進行數(shù)據(jù)、程序、文件、圖像等信息的存取。設(shè)計的存儲單元包括Flash、EMMC、LDDR等。其中,F(xiàn)lash一般存放驅(qū)動程序文件,大小為32MB-64MB,EMMC主要用于存儲高精地圖數(shù)據(jù),眾包建圖,自動駕駛數(shù)據(jù)記錄,影子模式、大數(shù)據(jù)等信息,大小需求大致為96GB-128GB。LDDR主要用于程序運行緩存。這里我們需要講解一下幾種典型的通信鏈路硬件形式,其中包含SPI、UART、GPIO、PCIe、CanFD、FlexRay以及ethernet等。
為了說明各種通信鏈路的連接形式適用場景,我們需要將這些通信鏈路及相應(yīng)的存儲單元進行不同程度的功能分析及優(yōu)缺點說明,并著力于為自動駕駛系統(tǒng)域控制器硬件設(shè)計、網(wǎng)絡(luò)通信設(shè)計過程提供幫助和參考。
系統(tǒng)架構(gòu)外圍通信總線
自動駕駛系統(tǒng)的外圍通信總線主要是指中央域控制器所連接的外圍傳感器、存儲硬盤、顯示單元及整車執(zhí)行器等。這些外圍傳感器、執(zhí)行器單元的連接方式傳輸?shù)臄?shù)據(jù)類型主要包括原始視頻數(shù)據(jù)、激光雷達點云數(shù)據(jù)、毫米波雷達目標數(shù)據(jù)及控制/顯示指令等信息。主要的通信連接方式包括了Ethernet、CanFd/Flexray/Lin等。
如下表表示了高階自動駕駛中央域控制器單元中的除AI計算單元SOC及邏輯計算單元MCU以外的所有典型網(wǎng)絡(luò)連接、存儲及接口信息交換單元數(shù)據(jù)信息。
1、Ehternet
為什么要用以太網(wǎng),簡單地說,整體汽車架構(gòu)會強烈的影響網(wǎng)絡(luò)走向,以太網(wǎng)可以在域控制單元的車載網(wǎng)絡(luò)中減少線束的同時,很好的提升服務(wù)質(zhì)量。目前,自動駕駛系統(tǒng)架構(gòu)已逐漸向集中式架構(gòu)進行不斷演進,這就意味著可以采用經(jīng)典的zonal架構(gòu)將分布在各zone的所有數(shù)據(jù)帶入一個中心位置區(qū)域進行處理,而中央集中式方案的挑戰(zhàn)之一就是帶寬,基本上該帶寬可以輕松的增加到10Gbps,當前我們車載以太網(wǎng)的速度僅僅是1Gpbs。
一般的,在外圍傳感器連接中,毫米波雷達不需要千兆的以太網(wǎng),低速以太網(wǎng)足以,攝像頭既可以用過以太網(wǎng),也可以采用傳統(tǒng)的LVDS進行數(shù)據(jù)通信,而如果增加了激光雷達,則攝像頭+激光雷達數(shù)據(jù)的組合就需要高速以太網(wǎng)。這里需要說明一點,在集成到域控制器的高速以太網(wǎng)PHY中,可能存在多個不同的通道同時驅(qū)動20-30甚至更長英尺的線束。這就會導(dǎo)致域控制器中的Soc發(fā)熱量出現(xiàn)巨大的增加,這將使得整個域控制器的封裝價格出現(xiàn)巨大的攀升。
2、CANFD/FLexRay/Lin
CanFD作為之前Can網(wǎng)絡(luò)的升級版,且只升級了協(xié)議,物理層未改變。具備更高的帶寬、數(shù)據(jù)傳輸速率。Can與CanFD主要區(qū)別:傳輸速率不同、數(shù)據(jù)長度不同、幀格式不同、ID長度不同。同時,CANFD速率可變,仲裁比特率最高1Mbps(與CAN相同),數(shù)據(jù)比特率最高8Mbps。因此,在下一代智能駕駛汽車的通信網(wǎng)絡(luò)中,主要作為漸進式網(wǎng)絡(luò)通信單元用于傳輸較高帶寬需求及較大速率的Can信號通信中。
Lin為局部連接網(wǎng)絡(luò),是一種低成本、串行通信,通信接口為UART。Lin分為主節(jié)點和從節(jié)點,通過單線連接。Lin在下一代智能駕駛汽車中,主要應(yīng)用于通信帶寬要求比較低的車身控制方面,如方向盤按鍵、車窗、座椅等,可作為Can通信補充。
FlexRay主要是應(yīng)對汽車安全性、功能性方面的要求,即可以提供更高傳輸帶寬、更高可靠性的場合。他和可以完全實現(xiàn)Can或者Lin的所有功能,但更多的是具備更高的確定性、容錯性、高速等特點。主要應(yīng)用在對誤差容限和時間確定性要求較高的線控領(lǐng)域,如下一代自動駕駛系統(tǒng)通常采用線控制動、線控轉(zhuǎn)向、線控驅(qū)動等方式進行相應(yīng)的橫縱向控制。Flexray主要是基于差分信號傳輸,由兩條總線組成,通常使用雙絞線。Flexray總線收發(fā)數(shù)據(jù)主要采用時間觸發(fā)和事件觸發(fā)的方式進行,利用時間觸發(fā)通信時,可以盡可能的保持傳輸同步與可預(yù)測,這對需要高速線控控制的三大控制執(zhí)行單元十分有利。但因其Flexray成本較高、設(shè)施復(fù)雜等缺點,并不會完全取代其他主要的車載網(wǎng)絡(luò)標準。
高性能計算平臺片間通信總線
智能駕駛高階域控制器需要把多個CPU核心為單位的SOC/MCU/MPU及相關(guān)輔助電路封裝在一個主板上,這種多芯片域控單元稱之為中央域控制器。當然,多核多芯片的域控制器往往會包含更多的輔助電路,以解決多個CPU核心之間的通信和協(xié)調(diào)問題。當前常用的輔助電路連接方式有以下幾種:GPIO、SPI、UART、PCIe、I2C。
1、GPIO
GPIO表示一種通用型輸入輸出總線,是一個靈活的軟件控制的數(shù)字信號。每個GPIO提供一位與特定的管腳相連。域控SOC處理器非常依賴于GPIO,某些情況下,普通管腳可以被配置為GPIO。大多數(shù)芯片至少擁有幾組類似的GPIO。GPIO驅(qū)動可寫成通用的,便于單板編寫代碼可以將這些管腳配置數(shù)據(jù)傳遞給驅(qū)動。在高階自動駕駛AI芯片中具備電源管理、音視頻解碼等功能,也會經(jīng)常具有一些這樣的管腳來彌補SOC芯片上面管腳的不足。這里就需要設(shè)計一些GPIO的擴展芯片,連接用于I2C或是SPI串行總線。
這里需要說明的是:如果用GPIO口模擬SPI總線,必須要有一個輸出口(SDO),一個輸入口(SDI),另一個口則視具體的設(shè)備類型而定,如果要實現(xiàn)主從設(shè)備,則需輸入輸出口,若只實現(xiàn)主設(shè)備,則需輸出口即可,若只實現(xiàn)從設(shè)備,則只需輸入口即可。
2、SPI
SPI是一種高速、全雙工、同步、串行通信串行外設(shè)接口總線,3~4線接口,以主從模式工作,收發(fā)獨立,可以實現(xiàn)多個SPI設(shè)備互相連接。
SPI總線由三條信號線組成,分別是SCLK(串行時鐘)、SDI(串行數(shù)據(jù)輸入)、SDO(串行數(shù)據(jù)輸出)。當有多個從設(shè)備時,還可以增加一條從設(shè)備選擇線,用CS控制芯片是否被選中,這樣就可以實現(xiàn)在同一總線上多個SPI設(shè)備互相連接,比如一塊芯片上可以掛接多個Flash設(shè)備。這里我們通常用SPI作為Nor Flash的通信連接方式,解決了不同容量的Nor flash在數(shù)據(jù)線和地址線的數(shù)量不同時,其在硬件上兼容性問題,并且不同容量的SPI Nor flash管腳也兼容封裝也更小,占用了合適的PCB板位置。SPI Nor Flash每次傳輸一bit位的數(shù)據(jù),接口簡單點,速度慢,但性價比高。對于中央域控制器來說,Norflash主要用于存儲用戶數(shù)據(jù)及基礎(chǔ)程序,通常情況這對整個存儲過程的實時性要求并不高,一般可采用串行數(shù)據(jù)的方式提前寫入Nor Flash即可。
提供SPI串行時鐘的SPI設(shè)備為SPI主機或主設(shè)備(Master),其他設(shè)備為SPI從機或從設(shè)備(Slave)。
3、UART
UART是一種通用異步收發(fā)器總線,為兩線、全雙工、異步串口,特點是速度慢。比SPI、I2C這兩種同步串口的結(jié)構(gòu)要復(fù)雜很多,一般由波特率產(chǎn)生器(產(chǎn)生的波特率等于傳輸波特率的16倍)、UART接收器、UART發(fā)送器組成,硬件上有兩根線,一根用于發(fā)送,一根用于接收。
作為接口的一部分,UART可以提供以下功能:
UART是用于控制中央計算單元與串行設(shè)備的芯片,它提供了RS-232C數(shù)據(jù)終端設(shè)備接口,這樣域控制器芯片就可以和調(diào)制解調(diào)器或其它使用RS-232C接口的串行設(shè)備通信了;
并/串轉(zhuǎn)化:將由SOC傳遞的并行數(shù)據(jù)轉(zhuǎn)換為輸出的串行數(shù)據(jù)流;
串行轉(zhuǎn)化字節(jié):將CPU單元外部來的串行數(shù)據(jù)轉(zhuǎn)換為字節(jié),供MCU內(nèi)部并行數(shù)據(jù)器件使用;
奇偶校驗:在輸出的串行數(shù)據(jù)流中加入奇偶校驗位及啟停標志位,并對從外部接收的數(shù)據(jù)流進行奇偶校驗;
輸入輸出緩沖區(qū),處理域控制器與外部串行設(shè)備(如攝像頭)數(shù)據(jù)管理及同步管理問題;
4、PCIe
PCIe總線使用端到端的連接方式,在一條PCIe鏈路的兩端只能各連接一個芯片設(shè)備,且這兩個芯片是互為是數(shù)據(jù)發(fā)送端和數(shù)據(jù)接收端的。PCIe總線除了總線鏈路外,還采用了與網(wǎng)絡(luò)協(xié)議棧較為類似的模型層次,發(fā)送和接收的數(shù)據(jù)都會經(jīng)過該層次。在高性能計算平臺設(shè)計中,往往利用PCIe在不同的SOC之間傳遞圖像、點云等信息。在域控制器內(nèi)部的芯片處理邏輯中,均采用了并行數(shù)據(jù)處理方式。而其中最重要的性能參數(shù)有兩個:即帶寬和傳輸實時性。
我們一般關(guān)注于有效帶寬,而在PCIe總線中,影響有效帶寬的因素有很多,其有效帶寬較難計算。通常只能計算PCIe鏈路的峰值帶寬來做大致評估。
峰值帶寬=總線頻率×數(shù)據(jù)位寬×2
如下表表示了PCIe中總線數(shù)據(jù)位寬與峰值帶寬的關(guān)系,了解PCIe峰值帶寬可便于我們在設(shè)計與域控制器過程中設(shè)計較好的硬件選型,從整體數(shù)據(jù)、圖像、點云等信息傳輸需求上選定合適大小的PCIe。PCIe最高版本V3.0規(guī)范使用4GHz的總線頻率,將進一步提高PCIe鏈路的峰值帶寬。
PCIe鏈路使用串行方式進行數(shù)據(jù)傳送,然而在芯片內(nèi)部,數(shù)據(jù)總線仍然是并行的,因此PCIe鏈路接口需要進行串并轉(zhuǎn)換,這種串并轉(zhuǎn)換將產(chǎn)生較大的延時。這也是PCIe應(yīng)用過程中的最大缺陷。除此之外PCIe總線的數(shù)據(jù)報文需要經(jīng)過事務(wù)層、數(shù)據(jù)鏈路層和物理層,這些數(shù)據(jù)報文在穿越這些層次時,也將帶來延時。
PCIe總線層次組成結(jié)構(gòu)
在域控制器中,PCIe鏈路使用端到端的數(shù)據(jù)傳送方式。在一條PCIe鏈路的兩端SOC/MCU芯片端口是完全對等的,分別為發(fā)送和接收端,而且一個PCIe鏈路的一端只能連接一個發(fā)送設(shè)備或者接收設(shè)備。因此PCIe鏈路必須使用Switch擴展PCIe鏈路后,才能連接多個設(shè)備。
在PCIe總線中,Switch是一個類似交換機的存在,該設(shè)備由1個上游端口和多個下游端口組成。
5、I2C
I2C表示一種集成電路總線,它是一種串行通信總線,使用多主從架構(gòu),方便了中央域控制器系統(tǒng)與外圍傳感器之間的有效通信。由于其簡單性,它被廣泛用于微控制器MCU/SOC與傳感器陣列、EPROM之間的通信。
高性能智能駕駛平臺中的通信接口
1、MIPI-CSI/DSI
MIPI為移動行業(yè)處理器接口,通常用于適配下一代自動駕駛系統(tǒng)DSI,CSI(Display Serial Interface,Camera Serial Interface),其中DSI定義了一個位于處理器和顯示模組之間的高速串行接口,DSI是一種Lane可擴展的接口,1個時鐘Lane/1-4個數(shù)據(jù)Lane。DSI和CSI的物理層定義都由D-PHY提供。在下一代高階智能駕駛系統(tǒng)中,DSI通常用于連接和輸入超聲波雷達數(shù)據(jù),而CSI定義了一個用于處理器和攝像模組之間的高速串行接口。
2、Serializer/Deserializer
在高階智能駕駛系統(tǒng)架構(gòu)中,其外圍傳感器部件往往趨向于高帶寬,大數(shù)據(jù),這可能加劇對系統(tǒng)架構(gòu)的布線難度,提升功耗,增加封裝成本等。通常中央域控制器處理的是串行數(shù)據(jù),因此,需要首先會傳感器視頻的輸出信號進行并/串行(加串)轉(zhuǎn)換,而對其顯示單元的輸入信號進行串并行(解串)轉(zhuǎn)換。
如上圖,F(xiàn)PD-Link是用于點對點傳輸視頻的接口。該接口利用SerDes技術(shù)可通過雙絞線或同軸線纜傳輸高清數(shù)字視頻以及雙向控制通道。這樣可以在域控制器單元與攝像頭或顯示單元與攝像頭之間進行優(yōu)化。同時通過不同的采樣時鐘確保視頻流和數(shù)據(jù)流在相同物理通道中的同步傳送。
在如上視頻圖像的處理過程中我們可稱之為圖像序列化,這一過程可以方便網(wǎng)絡(luò)傳輸,協(xié)議解釋及數(shù)據(jù)存儲。同時,在系統(tǒng)架構(gòu)設(shè)計中采用串行器/解串器(SERDES)技術(shù)的高速串行接口來取代傳統(tǒng)的并行總線架構(gòu),可以減少布線沖突、降低開關(guān)噪聲、更低的功耗和封裝成本等。
總結(jié)
高階自動駕駛域控制器的工作處理能力不僅體現(xiàn)在對于提供大算力、高性能圖像處理芯片,更多也是依賴于內(nèi)部片間通信網(wǎng)絡(luò)、存儲單元與外設(shè)總線傳輸、接口等設(shè)計。通信網(wǎng)絡(luò)設(shè)計講究網(wǎng)絡(luò)設(shè)計帶寬、速率、穩(wěn)定性及避免通信沖突等問題。存儲單元則是要求存儲容量、穩(wěn)定性等方面的需求。外圍接口則更多的關(guān)注接口適配性,與通信網(wǎng)絡(luò)總線的連接程度等問題。以上每一項對于真正涉及域控制器實體PCB版設(shè)計都是必須完全考慮的內(nèi)容,本文從整體分析中給設(shè)計師在各傳輸、存儲等方面的硬件選型上提供了一定的參考。此外,如果更加細化,就會涉及實際的電阻、電容甚至布線規(guī)則等,本文就不再做細化。