379
技術社區[雲棲]
從TeslaAP2.0/2.5運算單元看未來無人駕駛域控製器的設計趨勢
雷鋒網·新智駕按:本文來自未來出行服務商新悅智行聯合創始人&CEO徐超、聯合創始人&CTO李林峰的技術詳解。新悅智行目前業務線包括新能源整車和L3級無人駕駛整合方案。今年4月,新悅智行發布了自主研發的WiseADCU無人駕駛運算控製單元。在本文中,作者對TeslaAP2.0/2.5運算單元進行了拆解,並結合之前國際先進的無人駕駛運算控製單元的平台分析報告進行了資料分享。雷鋒網(公眾號:雷鋒網)·新智駕獲作者授權轉載此文。
先看一組圖片,這是目前幾乎所有主機廠和無人駕駛新興團隊的標準配置:
雜亂不堪的後備箱
那麼通常情況下,這裏麵會有哪些東西呢?業內通常的標配就是工控電腦(GPU運算卡、CAN卡)、UPS電源/穩壓電源、交換機、低壓電源分配器、GNSS/IMU模塊、車輛控製單元(通常是dSPACE MicroAutobox)、散熱及冷卻機構等。如果采用了一些特定的傳感器,則還會有獨立的工控機、融合器、接口和電源模塊等。再加上互聯的線纜、高低壓電纜以及HMI和調試用的接口,其規模不亞於一個小型企業的機房。
正是因為如此,新悅智行才會設計自己的WiseADCU,正如Tesla的Autopilot運算控製單元、Audi的zFAS等等。自動駕駛從實驗室走向量產,必然需要在提升可靠性的同時降低體積、成本和功耗。當然,NVIDIA提供了Drive係列,NXP也有BlueBox,但這些都隻是“開發工具”,而主流零部件供應商則宣布了他們的運算控製單元或者域控製器,對於主機廠來說,也隻是黑盒子的存在,而且很有可能會捆綁其底盤電子相關產品。新悅智行的WiseADCU則是用開放的軟硬件合作模式,為主機廠和無人駕駛團隊“賦能”,使其完全掌握無人駕駛運算控製係統的軟硬件規劃和定義能力。
一、NVIDIA Drive PX2
首先分析的是Drive PX2 AutoChauffeur開發板,這是NVIDIA Drive係列目前公開的最新的一代產品:
NVIDIA的Drive係列
雖然基於Xavier的下一代SoC已經公開,但是依據N家的產品節奏,保守估計明年Q2才有機會看到車載級的產品和開發板公開發售。
NVIDIA的Drive PX2版本
而在Drive PX2中,AutoChauffeur是一個定義麵向L3的版本,其運算部分的配置是雙Parker SoC外加雙MXM3.1接口的Pascal架構獨立運算單元,而更低一些的AutoCruiser是單顆Parker SoC,更高一級的Full Autonomy是由兩個AutoChauffeur組成。AutoChauffeur和AutoCruiser都采用了Infineon的TriCore AURIX TC297作為ASIL-D的功能安全控製單元。
Drive PX2 AutoChauffeur區別
實際上,AutoChauffeur也有至少兩個不同的版本,其區別在於Parker之間的互聯模式,其中一個采用Altera的Cyclone V FPGA + ARM SoC和以太網互聯,而另一個則是采用了PLX的PEX8724非透明PCIe交換芯片和以太網互聯。
Drive PX2 AutoChauffeur框圖
因為手頭沒有FPGA的版本,也沒有FPGA的實現邏輯,隻能分享一下PEX版本的情況,簡單來說,采用PEX的版本,可以將獨立的Pascal GPU掛在任何一顆Parker SoC上,采用PCIe 4x互聯。
正麵
背麵
12路FHD攝像頭,在PX2上采用了Maixm定製的GMSL-CSI2轉換芯片,這是一顆非公開物料。
標準的Drive PX2相對比較公開,雖然我們手頭有Drive PX2的硬件,但因為保密協議和相關法律條款,以上的分析雖然都是實物分析,但均可以找到互聯網公開的資料來源。
前段時間瘋傳Tesla(Tesla)正在和AMD合作打造自己的無人駕駛芯片,這種可能性當然存在,打造自己的芯片也理應是Tesla的必然選擇。但是作為一個曾經在農企(AMD)工作過的人,結合對Drive係列平台尤其是DriveWorks相關框架的實際應用和理解,農企在自動駕駛領域的積累比起兵工廠(NVIDIA)可能差了不止3、5年。在成型的DriveWorks框架和海量的基於CUDA的算法麵前,OpenCL還是非常蒼白。實際上,農企在工控機領域是有長期積累的,以前脫胎於Cyrix後來被NatSemi收購的Geode係列,還有農企自己的AM186~AM486係列直到今天還在供貨。隻是在生存的窘境麵前,麵對牙膏廠和兵工廠的雙重擠壓,一個連筆記本處理器都不太敢碰的企業,又有多少精力和勇氣去進入無人駕駛領域?
話說回來,在目前傳感器大都具備一定的算法處理能力,能做到結果輸出。如果不是極端的成本優化和控製需求,是否需要重度依賴CUDA、OpenCL和各種CV加速呢?
二、Tesla Autopilot 2.0
做了一些背景鋪墊,大家最關心的莫過於Tesla的Autopilot運算單元分析,之所以會有前麵對Drive PX2的描述,是因為此前看了很多國內外的文章和分析,大家都將Tesla Autopilot硬件直接說成“采用NVIDIA Drive PX2”,這一點是不準確的。至少Autopilot2.0和2.5都不是Drive PX2任何一個版本的簡單複製。
簡而言之,AutoPilot2.0基本等同於AutoChauffeur的一半,或者AutoCruiser加上一塊Pascal獨立運算單元,同時增加了GNSS接收芯片。而AutoPilot2.5則是AutoChauffeur去掉一塊Pascal獨立運算單元,另一個則從MXM插卡變成板載,增加了一套基於Intel芯片和NXP MCU的儀表/導航板的整合係統,同時將TBOX和GNSS接收整合在板。
Autopilot2.0外觀,雙風扇
風扇下麵的散熱片
Autopilot2.0主板正麵
Autopilot2.0主板背麵
和Drive PX2 AutoChauffeur對比,Autopilot2.0去掉了PEX PCIe交換芯片,增加了Ublox NEO-M8L GNSS接收芯片,將Maxim的GMSL攝像頭接口換成了TI的FlatLink III芯片,從12路GMSL變成6路LVDS,保留兩路GMSL視頻輸出和一路HUD輸出。增加了一路22W單聲道Class D功放和一顆立體聲Codec,9路CAN總線,其中有4路沒有焊接收發器。保留了三路以太網,其中一路沒有焊接,另外兩路也沒有采用BroadR Reach,而是標準AVB,采用散熱片加雙風扇風冷散熱。
簡單列舉一下主要芯片的型號:
1、 NVIDIA “PARKER” P94W97.01P TA795SA-A2,Parker SoC主控,內置了256 CUDA單元,4核A57 64位ARM和2核丹佛64位ARM
2、 四顆Samsung DRAM K4F8E3S4HBMHCJ
3、 NVIDIA GP106-505-KC的MXM插卡,4GB GDDR顯存,預留4個焊盤,最大可以到8GB,屬於GP106係列去掉顯示部分的運算卡,有1280個CUDA運算單元
4、 INFINEON TriCore AUTRIX TC297TX-128 ASIL-D MCU
5、 UBlox NEO-M8L GNSS接收模塊
6、 Toshiba eMMC和Spansion NOR Flash
7、 Marvell 88EA1512 AVB/以太網收發器
8、 Marvell 88EA6321 7口AVB交換芯片
9、 Maxim MAX9260 GMSL顯示輸出
10、 TI DS90UB964 LVDS攝像頭輸入
結合對DriveWorks的實際應用和性能評測,Autopilot2.0這樣的硬件架構,到底能完成幾級的自動駕駛呢?在此,做一些分析和分解。
AP2.0接口分析
先說CPU部分,4xA57+2xDenver+Aurix,其運算能力足以處理自動駕駛相關的HMI、總線通訊、結果輸出型傳感器融合、GNSS數據處理以及車輛運動控製,大概還有一半的冗餘。
而GPU則是256+1280個CUDA單元,以6個攝像頭的配置,4個作為環視和SFM,兩個前視用於車道線、行人/目標檢測、交通標識檢測以及前向空間(Free Space)的檢測,按DriveWorks提供的代碼和資源占用情況,其能力是不太夠滿足同時運算的要求。
SFM先放到一邊,車道線、目標和交通標識檢測大概要占用90%左右的GPU,而對這些目標做標記、編號以及識別則需要40%左右的GPU,可能的做法是對場景進行進一步分解,不追蹤和識別全部的目標,這裏就是Tesla量產Autopilot和NVIDIA Drive開發平台的重要差別,但無論如何,1536個CUDA即使是為運算優化的GP106-505,我們判斷單純依靠Autopilot的運算能力是否能達到完整的L3還是有些困難的。
實際上,如果按照Tesla和Mobileye分手之前來說,後者處理了大部分前向視覺相關的部分,AP2.0應該足夠完成L3。
板載的NEO-M8L GNSS接收芯片,則是一個單頻多模2.5米CEP自動駕駛精度的模塊,即使配合IMU,單獨來說應該也還達不到高精度定位導航要求的精度和可靠性。
三、Tesla Autopilot 2.5
對於Tesla Autopilot 2.5,新悅內部一直稱之為AP3或者AP NextGen,拿到這個單元時,我們並不知道其具體的車型,但是按照架構和形態猜測,應該是用在Model 3上。國外包括Tesla官方論壇內稱之為Autopilot 2.5。
Autopilot2.5外形,水冷
Autopilot 2.5外殼分解
之所以我們分析認為AP2.5是給Model 3使用的,是因為這個單元正反麵一共有兩塊板,一塊和AP2.0類似,但是多了一個Parker的自動駕駛控製板,另外一塊是基於Intel一顆保密型號的芯片加上SPC5748G MCU,並且帶有Telit Modem和LG的BT/WLAN模塊及8聲道Class SB-I的數字功放。
從Model 3來看,其取消了儀表,將信息娛樂係統和儀表做到了一起,那麼SPC5748G則是處理功能安全的MCU,也就是儀表係統可靠性的保證。而Intel的SoC則是做信息娛樂導航或者一些數據處理。這兩塊電路板的單元內部並沒有物理連接,隻是共用了水冷散熱部分,以及整合到同一個金屬外殼之中,不計散熱部分,其主體部分體積並沒有比AP2.0大太多。
AP2.5多角度視圖
下麵逐一分析自動駕駛部分的主板和信息娛樂部分的主板:
AP2.5自動駕駛主板正麵
AP2.5自動駕駛主板背麵
接口部分,因為AP2.5(或許是因為我們拿到的並非Release版本)標注了所有接口的功能,所以不用想AP2.0去推測。按照接口標注,該主板支持如下接口:
1、 GPS天線
2、 REAR CAM後攝像頭
3、 SELFIE內置駕駛員攝像頭
4、 MAIN CAM前置主攝像頭
5、 REPEATER兩路轉發
6、 B-PILLAR B柱兩路攝像頭
7、 FISHEYE NARROW兩路窄幅魚眼攝像頭
8、 一係列IO,CAN和電源
9、 單路以太網
10、 USB
11、 MCU外接口
主要芯片如下:
1、 兩顆NVIDIA “PARKER” PC5S58H.S8P TA795SA-A2,Parker SoC主控,內置了256 CUDA單元,4核A57 64位ARM和2核丹佛64位ARM
2、 六顆Samsung DRAM K4F8E3S4HBMHCJ,其中四顆給A,兩顆給B
3、 NVIDIA GP106-510-KC的板載芯片,4GB GDDR顯存,應該是AP2.0的改進型號
4、 INFINEON TriCore AUTRIX TC297TX-128 ASIL-D MCU
5、 UBlox NEO-M8L GNSS接收模塊
6、 一顆Toshiba eMMC給A和Spansion NOR Flash兩顆,AB各一顆
7、 Marvell 88AE1512 AVB/以太網收發器
8、 Marvell 88EA6321 7口AVB交換芯片
9、 三顆TI DS90UB964 LVDS攝像頭輸入
10、 一顆TI DS90UB954 LVDS攝像頭輸入
11、 和AP2.0一樣的TAS5421單聲道數字功放和TLV320AIC3104立體聲Codec;
12、 FTDI 1647-C串口轉USB調試芯片
13、 CAN收發器若幹
取消了明顯的顯示輸出部分,是否交給信息娛樂主板來處理呢?
AP2.5信息娛樂主板正麵
AP2.5信息娛樂主板背麵
接口部分:
1、 FTDI USB調試
2、 WLAN天線
3、 BT天線
4、 LTE USB調試
5、 CAM IN攝像頭入
6、 CAM OUT攝像頭出
7、 BMP調試口
8、 BMP LPC調試口,談到LPC(Low Pin Count),基本可以認為那個INTEL的芯片是x86係列。
9、 PMIC調試接口
10、 GSM開關
11、 BROADREACH網口
12、 CAN/POWER接口
13、 ETHERNET網口
14、 AUDIO接口
15、 USB接口
而主要芯片如下:
1、 一個帶有4G內存的INTEL CONFIDENTIAL的模塊
2、 模塊附近有一個NOR Flash和一片eMMC,可以理解為BIOS/EFI和硬盤
3、 NXP SPC5748GSMMJ6一顆
4、 LG Innotek B216C BT/WLAN模塊
5、 Marvell 88EA6321 7口AVB交換芯片
6、 TI DS90UB949串行化和TI DS90UB940解串芯片各一顆
7、 還有一顆未知廠牌的WQ1214CS芯片
8、 兩顆ST TDA7802 Class-SB-I數字功放,每顆包含四路28瓦標稱72瓦峰值。一共8路
9、 一顆TJA1059,一顆TJA1043
10、 以及一個類似MiniPCIE的4G模塊插槽
從音頻配置和SPC5748G以及接口配置來看,這基本就是信息娛樂係統單元沒跑了,但是為何上麵沒有明顯的顯示接口?難道Model 3的液晶屏當中,還像之前的Model S和Model X一樣用一套Tegra 3來做顯示?
前麵提到,AP2.0是Parker+Pascal,而AP2.5在自動駕駛部分則是雙Parker+Pascal,實際上按我們的理解,Parker本身的CPU處理能力之前就有剩餘,而256個CUDA的增加又能帶來什麼改變呢?據我們分析,實際上這能帶來非常多的好處,用一顆獨立的Parker,能夠處理一些關聯度不高的任務,避免和主要的運算任務做競爭,減少了切換和資源調度的開銷。這應該是Tesla從實際應用角度出發做的一個改進。
Model S的顯示單元,T301應是Tegra 3的車規版本
回到AP2.5,剛才提到,信息係統主板上有一個Modem插槽,這個Modem長啥樣呢?
AP2.5的Modem模塊
此模塊采用了Telit的LE940B6-NA車規通信模組,並有一顆88EA1512網絡芯片,從外殼結構來看,這個模塊可以支持熱插拔。在這塊,Tesla的工程師應該是經過考慮的。首先,USB雖然可以熱插拔,但是整體來說不如以太網可靠。而且采用AVB的以太網,可以靈活配置網關和其他車內模塊的可訪問性。
上一代信息娛樂係統中,采用的則應該是USB鏈接。
上一代信息娛樂係統的通信模塊,整合LEA-6R GPS和一顆非常特別的Gyro
繼續回到AP2.5信息娛樂主板,該主板上有SIM卡和TF卡插槽,SIM卡從ICCID來看應該是美國某運營商的卡,而TF卡中隻有一個分區,裏麵存儲了一些Log,並沒有地圖和其他數據。
當然,分析還在繼續,我們有一些有意思的“跨界工具”,例如……
修手機必備良品
寫到這裏,我想說,無論對PX2還是AP2.0或者2.5進行分析,都肯定會有一些偏頗,畢竟不是原始設計,但是這樣的對標分析,結合芯片行業的從業經曆,多少能得到不少有用的信息。
Tesla的幾代產品從PCB工藝角度來說,都相當不錯,全部都是12層盲埋孔,很多連接器和芯片都是定製型號,例如MXM,Tesla設計的是帶鎖扣和托架的,連接相當穩固,這樣的連接器在zFAS一代Prototype上也能看到。
而從接口的角度來看,Tesla大量采用了AVB和LVDS(包括FPDLink3和GMSL等),但是也依然保留了CAN、LIN等,作為市麵上為數不多大規模量產的自動駕駛控製單元,不管其無人駕駛實際執行效果如何,這一係列控製單元無論從設計還是製造工藝,都堪稱是完美的藝術品。
四、從WiseADCU談無人駕駛域控的設計
未來的無人駕駛域控製器,其設計理念應該是前述的“高可靠、高性能、低成本、低功耗、小體積”的高度整合軟硬件平台,而芯片企業、算法團隊、零部件企業和主機廠之間所存在的鴻溝需要進一步的填補。
首先,從目前公開的各種自動駕駛和無人駕駛係統架構來看,環境感知和融合發展非常迅速,但是大家都忽視了車輛本身的運動控製和線控之間的差別。不止一次在非常專業的會議和組織,聽到了“車輛動力學模型和仿真是不必要的”“環境感知融合後給出引導曲線,線控按此執行即可”這樣的論斷,實際上這還隻是實驗室階段的無人駕駛。
而新悅智行作為吉大汽車工程學院的產業化落地團隊,我們深刻認知到,簡單地把車輛作為一個質心固定的剛體,是非常淺薄的理解。車身姿態和運動狀況是一個層麵,環境傳感器是一個層麵,車輛本身的能力也是一個非常重要的層麵,如果不把執行器的“能力”和車輛的狀態考慮在決策條件之中,是無法完成精準可靠的自動駕駛係統的,更無法滿足“安全和舒適”這兩個自動駕駛和無人駕駛的基本需求。
新悅智行的WiseADCU-L4v1
其次,未來無人駕駛域控的軟硬件架構應該充分而科學的整體規劃,從係統架構上可分為兩個主要派係,也就是域控強算法和域控弱算法。其區別非常類似分布式運算和虛擬化集中運算的差異。
結合新悅智行自己設計WiseADCU的曆程和理解,做一些分享。
強算法的域控能夠降低前端傳感器的複雜度和成本,更加高效地利用域控的運算資源和能力,對各種原始數據的融合更加合理,還能讓物理架構更加清晰。其缺點或者說挑戰也非常明顯:
1、 多種算法的理解、整合、優化和資源的合理分配及調度,非常考驗係統架構師的設計能力以及工程師團隊的實現能力;
2、 比起ASIC處理特定的運算和數據,用CPU和GPGPU做運算,未必是最優的情況;
3、 原始數據(RAW Data)對帶寬和實時性的要求都更加嚴苛;
4、 係統複雜度的增加,提高了出錯的幾率和影響程度,原本單一傳感器的故障,可能會在此放大成整體係統的故障。
板載Mobileye EyeQ3芯片的Audi zFAS(非第一代)
弱算法的域控,簡而言之就是大家做好各自的事情,按照統一的約定和協議,提供目標檢測的結果,其缺點在於原始數據融合度極低,相互之間沒有前後文關聯,依賴統一的時間戳做即時運算形成決策結果,有些傳感器本身依賴車身姿態和相關狀態,需要多套係統冗餘。
考慮到這樣的問題,可以考慮設計可擴展架構,例如新悅的WiseADCU加入了FPGA單元,對傳感器的前端數據處理和數據通路可以進行靈活配置,對於車輛狀態和姿態等數據做了統一的協議和數據接口。同時兼容原始數據和結果數據的處理,前端傳感器除了提供檢測結果數據,同時提供一份原始數據,而WiseADCU根據原始數據取出一些特定信息進行融合及權重的分配,而不需要涉及非常專業的算法,結合所處“域控”的地位所能采集的幾乎全部數據,形成合理的“環感-車輛-權重-融合-決策-執行”的大閉環。
新悅智行WiseADCU硬件框圖
WiseADCU硬件架構基於以上理念設計,新悅智行CTO李林峰則調用了其武漢海微科技核心汽車電子團隊平均十年以上的硬件和驅動工程師共同參與,和新悅的工程師一起完成了理念到實際產品的轉化。從第一版的情況來看,隻有30多個Minor Bugs,對於一個600多元器件、9000多焊盤的複雜係統來說,非常不易。
基於新悅智行WiseADCU域控所做的網絡架構
從一些細分領域來看:
網絡架構,基於AVB演進的TSN將會是重要的架構,但是不能因為有了TSN就放棄CAN/LIN,對於一些成熟和簡單的場景,CAN/LIN無論成本還是可靠性,都是有保障的。
新悅智行WiseADOF係統架構
操作係統,Drive係列開發工具的Ubuntu Linux及其內核都需要做深入的改造和優化,相信Tesla做了並且一直在做這個工作。首先,不能完全否定Linux的可靠性,很多人一談到Linux就認為其不如某些商用實時係統可靠,從宏觀的層麵來說,Linux係統內核發展到4.x版本,其代碼的龐大程度確實超過某些特定的商用實時係統,但是從微觀角度來看,單純的內核,如果不考慮驅動、文件係統和協議棧這些的話,其實大家都差不太多。
信息安全、傳感器本身的安全、傳輸層的安全以及係統的安全等都需要綜合考慮,作為一個1997年開始涉足網絡安全和嵌入係統的老司機,聽過一句話非常經典“堡壘往往是從內部被攻破的”。這是一個係統工程,後麵可以單獨弄一係列長篇大論。
車輛控製,需要ASIL-D的功能安全,丹諾西城的李丹曾經作為Fujitsu/Spansion的老員工,對ASIL-D和LockStep相關的知識做了非常詳細的講解,這位老司機同樣也是WiseADCU的核心專家和智囊。加上吉大底盤和運動控製國家重點實驗室多年的積累和積澱,以及對車輛運動控製的實踐,WiseADCU後續和Matlab/Simulink以及各種主流車輛仿真軟件的的深度融合也符合未來主流自動駕駛域控趨勢。WiseADCU采用了ASIL-D級的MCU硬件配合AutoSAR規範的係統架構,並實現多種仿真軟件的接口,其主要目的是在規模化應用階段開始取代MicroAutobox等接口層硬件。
總的來說,未來無人駕駛域控,要有好的整體架構設計、完整細致的框圖以及有實戰經驗的團隊,滿懷敬畏,開放心態,跨界交流和實力團隊的務實工作才能設計和落地深度跨界的產品並保持其不斷的延續和演進。
關注新智駕(公眾號:AI-Drive),回複“拆解特斯拉”獲取TeslaAP2.0/2.5運算單元拆解過程的高清細節圖。
本文作者:新智駕
本文轉自雷鋒網禁止二次轉載,原文鏈接
最後更新:2017-11-06 16:34:58