先看一组图片,这是目前几乎所有主机厂和无人驾驶新兴团队的标准配置:
杂乱不堪的后备箱
那么通常情况下,这里面会有哪些东西呢?业内通常的标配就是工控电脑(GPU运算卡、CAN卡)、UPS电源/稳压电源、交换机、低压电源分配器、GNSS/IMU模块、车辆控制单元(通常是dSPACEMicroAutobox)、散热及冷却机构等。如果采用了一些特定的传感器,则还会有独立的工控机、融合器、接口和电源模块等。再加上互联的线缆、高低压电缆以及HMI和调试用的接口,其规模不亚于一个小型企业的机房。
一、NVIDIADrivePX2
首先分析的是DrivePX2AutoChauffeur开发板,这是NVIDIADrive系列目前公开的最新的一代产品:
NVIDIA的Drive系列
虽然基于Xavier的下一代SoC已经公开,但是依据N家的产品节奏,保守估计明年Q2才有机会看到车载级的产品和开发板公开发售。
NVIDIA的DrivePX2版本
而在DrivePX2中,AutoChauffeur是一个定义面向L3的版本,其运算部分的配置是双ParkerSoC外加双MXM3.1接口的Pascal架构独立运算单元,而更低一些的AutoCruiser是单颗ParkerSoC,更高一级的FullAutonomy是由两个AutoChauffeur组成。AutoChauffeur和AutoCruiser都采用了Infineon的TriCoreAURIXTC297作为ASIL-D的功能安全控制单元。
DrivePX2AutoChauffeur区别
实际上,AutoChauffeur也有至少两个不同的版本,其区别在于Parker之间的互联模式,其中一个采用Altera的CycloneVFPGA+ARMSoC和以太网互联,而另一个则是采用了PLX的PEX8724非透明PCIe交换芯片和以太网互联。
DrivePX2AutoChauffeur框图
正面
背面
12路FHD摄像头,在PX2上采用了Maixm定制的GMSL-CSI2转换芯片,这是一颗非公开物料。
话说回来,在目前传感器大都具备一定的算法处理能力,能做到结果输出。如果不是极端的成本优化和控制需求,是否需要重度依赖CUDA、OpenCL和各种CV加速呢?
二、TeslaAutopilot2.0
简而言之,AutoPilot2.0基本等同于AutoChauffeur的一半,或者AutoCruiser加上一块Pascal独立运算单元,同时增加了GNSS接收芯片。而AutoPilot2.5则是AutoChauffeur去掉一块Pascal独立运算单元,另一个则从MXM插卡变成板载,增加了一套基于Intel芯片和NXPMCU的仪表/导航板的整合系统,同时将TBOX和GNSS接收整合在板。
Autopilot2.0外观,双风扇
风扇下面的散热片
Autopilot2.0主板正面
Autopilot2.0主板背面
和DrivePX2AutoChauffeur对比,Autopilot2.0去掉了PEXPCIe交换芯片,增加了UbloxNEO-M8LGNSS接收芯片,将Maxim的GMSL摄像头接口换成了TI的FlatLinkIII芯片,从12路GMSL变成6路LVDS,保留两路GMSL视频输出和一路HUD输出。增加了一路22W单声道ClassD功放和一颗立体声Codec,9路CAN总线,其中有4路没有焊接收发器。保留了三路以太网,其中一路没有焊接,另外两路也没有采用BroadRReach,而是标准AVB,采用散热片加双风扇风冷散热。
简单列举一下主要芯片的型号:
1、NVIDIA“PARKER”P94W97.01PTA795SA-A2,ParkerSoC主控,内置了256CUDA单元,4核A5764位ARM和2核丹佛64位ARM
2、四颗SamsungDRAMK4F8E3S4HBMHCJ
3、NVIDIAGP106-505-KC的MXM插卡,4GBGDDR显存,预留4个焊盘,最大可以到8GB,属于GP106系列去掉显示部分的运算卡,有1280个CUDA运算单元
4、INFINEONTriCoreAUTRIXTC297TX-128ASIL-DMCU
5、UBloxNEO-M8LGNSS接收模块
6、ToshibaeMMC和SpansionNORFlash
7、Marvell88EA1512AVB/以太网收发器
8、Marvell88EA63217口AVB交换芯片
9、MaximMAX9260GMSL显示输出
10、TIDS90UB964LVDS摄像头输入
结合对DriveWorks的实际应用和性能评测,Autopilot2.0这样的硬件架构,到底能完成几级的自动驾驶呢?在此,做一些分析和分解。
AP2.0接口分析
而GPU则是256+1280个CUDA单元,以6个摄像头的配置,4个作为环视和SFM,两个前视用于车道线、行人/目标检测、交通标识检测以及前向空间(FreeSpace)的检测,按DriveWorks提供的代码和资源占用情况,其能力是不太够满足同时运算的要求。
SFM先放到一边,车道线、目标和交通标识检测大概要占用90%左右的GPU,而对这些目标做标记、编号以及识别则需要40%左右的GPU,可能的做法是对场景进行进一步分解,不追踪和识别全部的目标,这里就是Tesla量产Autopilot和NVIDIADrive开发平台的重要差别,但无论如何,1536个CUDA即使是为运算优化的GP106-505,我们判断单纯依靠Autopilot的运算能力是否能达到完整的L3还是有些困难的。
板载的NEO-M8LGNSS接收芯片,则是一个单频多模2.5米CEP自动驾驶精度的模块,即使配合IMU,单独来说应该也还达不到高精度定位导航要求的精度和可靠性。
三、TeslaAutopilot2.5
对于TeslaAutopilot2.5,新悦内部一直称之为AP3或者APNextGen,拿到这个单元时,我们并不知道其具体的车型,但是按照架构和形态猜测,应该是用在Model3上。国外包括Tesla官方论坛内称之为Autopilot2.5。
Autopilot2.5外形,水冷
Autopilot2.5外壳分解
之所以我们分析认为AP2.5是给Model3使用的,是因为这个单元正反面一共有两块板,一块和AP2.0类似,但是多了一个Parker的自动驾驶控制板,另外一块是基于Intel一颗保密型号的芯片加上SPC5748GMCU,并且带有TelitModem和LG的BT/WLAN模块及8声道ClassSB-I的数字功放。
从Model3来看,其取消了仪表,将信息娱乐系统和仪表做到了一起,那么SPC5748G则是处理功能安全的MCU,也就是仪表系统可靠性的保证。而Intel的SoC则是做信息娱乐导航或者一些数据处理。这两块电路板的单元内部并没有物理连接,只是共用了水冷散热部分,以及整合到同一个金属外壳之中,不计散热部分,其主体部分体积并没有比AP2.0大太多。
AP2.5多角度视图
下面逐一分析自动驾驶部分的主板和信息娱乐部分的主板:
AP2.5自动驾驶主板正面
AP2.5自动驾驶主板背面
接口部分,因为AP2.5(或许是因为我们拿到的并非Release版本)标注了所有接口的功能,所以不用想AP2.0去推测。按照接口标注,该主板支持如下接口:
1、GPS天线
2、REARCAM后摄像头
3、SELFIE内置驾驶员摄像头
4、MAINCAM前置主摄像头
5、REPEATER两路转发
6、B-PILLARB柱两路摄像头
7、FISHEYENARROW两路窄幅鱼眼摄像头
8、一系列IO,CAN和电源
9、单路以太网
10、USB
11、MCU外接口
主要芯片如下:
1、两颗NVIDIA“PARKER”PC5S58H.S8PTA795SA-A2,ParkerSoC主控,内置了256CUDA单元,4核A5764位ARM和2核丹佛64位ARM
2、六颗SamsungDRAMK4F8E3S4HBMHCJ,其中四颗给A,两颗给B
3、NVIDIAGP106-510-KC的板载芯片,4GBGDDR显存,应该是AP2.0的改进型号
6、一颗ToshibaeMMC给A和SpansionNORFlash两颗,AB各一颗
7、Marvell88AE1512AVB/以太网收发器
9、三颗TIDS90UB964LVDS摄像头输入
10、一颗TIDS90UB954LVDS摄像头输入
11、和AP2.0一样的TAS5421单声道数字功放和TLV320AIC3104立体声Codec;
12、FTDI1647-C串口转USB调试芯片
13、CAN收发器若干
取消了明显的显示输出部分,是否交给信息娱乐主板来处理呢?
AP2.5信息娱乐主板正面
AP2.5信息娱乐主板背面
接口部分:
1、FTDIUSB调试
2、WLAN天线
3、BT天线
4、LTEUSB调试
5、CAMIN摄像头入
6、CAMOUT摄像头出
7、BMP调试口
8、BMPLPC调试口,谈到LPC(LowPinCount),基本可以认为那个INTEL的芯片是x86系列。
9、PMIC调试接口
10、GSM开关
11、BROADREACH网口
12、CAN/POWER接口
13、ETHERNET网口
14、AUDIO接口
15、USB接口
而主要芯片如下:
1、一个带有4G内存的INTELCONFIDENTIAL的模块
2、模块附近有一个NORFlash和一片eMMC,可以理解为BIOS/EFI和硬盘
3、NXPSPC5748GSMMJ6一颗
4、LGInnotekB216CBT/WLAN模块
5、Marvell88EA63217口AVB交换芯片
6、TIDS90UB949串行化和TIDS90UB940解串芯片各一颗
7、还有一颗未知厂牌的WQ1214CS芯片
8、两颗STTDA7802Class-SB-I数字功放,每颗包含四路28瓦标称72瓦峰值。一共8路
9、一颗TJA1059,一颗TJA1043
10、以及一个类似MiniPCIE的4G模块插槽
从音频配置和SPC5748G以及接口配置来看,这基本就是信息娱乐系统单元没跑了,但是为何上面没有明显的显示接口?难道Model3的液晶屏当中,还像之前的ModelS和ModelX一样用一套Tegra3来做显示?
前面提到,AP2.0是Parker+Pascal,而AP2.5在自动驾驶部分则是双Parker+Pascal,实际上按我们的理解,Parker本身的CPU处理能力之前就有剩余,而256个CUDA的增加又能带来什么改变呢?据我们分析,实际上这能带来非常多的好处,用一颗独立的Parker,能够处理一些关联度不高的任务,避免和主要的运算任务做竞争,减少了切换和资源调度的开销。这应该是Tesla从实际应用角度出发做的一个改进。
ModelS的显示单元,T301应是Tegra3的车规版本
回到AP2.5,刚才提到,信息系统主板上有一个Modem插槽,这个Modem长啥样呢?
AP2.5的Modem模块
此模块采用了Telit的LE940B6-NA车规通信模组,并有一颗88EA1512网络芯片,从外壳结构来看,这个模块可以支持热插拔。在这块,Tesla的工程师应该是经过考虑的。首先,USB虽然可以热插拔,但是整体来说不如以太网可靠。而且采用AVB的以太网,可以灵活配置网关和其他车内模块的可访问性。
上一代信息娱乐系统中,采用的则应该是USB链接。
上一代信息娱乐系统的通信模块,整合LEA-6RGPS和一颗非常特别的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
其次,未来无人驾驶域控的软硬件架构应该充分而科学的整体规划,从系统架构上可分为两个主要派系,也就是域控强算法和域控弱算法。其区别非常类似分布式运算和虚拟化集中运算的差异。
强算法的域控能够降低前端传感器的复杂度和成本,更加高效地利用域控的运算资源和能力,对各种原始数据的融合更加合理,还能让物理架构更加清晰。其缺点或者说挑战也非常明显:
1、多种算法的理解、整合、优化和资源的合理分配及调度,非常考验系统架构师的设计能力以及工程师团队的实现能力;
2、比起ASIC处理特定的运算和数据,用CPU和GPGPU做运算,未必是最优的情况;
3、原始数据(RAWData)对带宽和实时性的要求都更加严苛;
4、系统复杂度的增加,提高了出错的几率和影响程度,原本单一传感器的故障,可能会在此放大成整体系统的故障。
板载MobileyeEyeQ3芯片的AudizFAS(非第一代)
考虑到这样的问题,可以考虑设计可扩展架构,例如新悦的WiseADCU加入了FPGA单元,对传感器的前端数据处理和数据通路可以进行灵活配置,对于车辆状态和姿态等数据做了统一的协议和数据接口。同时兼容原始数据和结果数据的处理,前端传感器除了提供检测结果数据,同时提供一份原始数据,而WiseADCU根据原始数据取出一些特定信息进行融合及权重的分配,而不需要涉及非常专业的算法,结合所处“域控”的地位所能采集的几乎全部数据,形成合理的“环感-车辆-权重-融合-决策-执行”的大闭环。
新悦智行WiseADCU硬件框图
WiseADCU硬件架构基于以上理念设计,新悦智行CTO李林峰则调用了其武汉海微科技核心汽车电子团队平均十年以上的硬件和驱动工程师共同参与,和新悦的工程师一起完成了理念到实际产品的转化。从第一版的情况来看,只有30多个MinorBugs,对于一个600多元器件、9000多焊盘的复杂系统来说,非常不易。
基于新悦智行WiseADCU域控所做的网络架构
从一些细分领域来看:
网络架构,基于AVB演进的TSN将会是重要的架构,但是不能因为有了TSN就放弃CAN/LIN,对于一些成熟和简单的场景,CAN/LIN无论成本还是可靠性,都是有保障的。
新悦智行WiseADOF系统架构
操作系统,Drive系列开发工具的UbuntuLinux及其内核都需要做深入的改造和优化,相信Tesla做了并且一直在做这个工作。首先,不能完全否定Linux的可靠性,很多人一谈到Linux就认为其不如某些商用实时系统可靠,从宏观的层面来说,Linux系统内核发展到4.x版本,其代码的庞大程度确实超过某些特定的商用实时系统,但是从微观角度来看,单纯的内核,如果不考虑驱动、文件系统和协议栈这些的话,其实大家都差不太多。
信息安全、传感器本身的安全、传输层的安全以及系统的安全等都需要综合考虑,作为一个1997年开始涉足网络安全和嵌入系统的老司机,听过一句话非常经典“堡垒往往是从内部被攻破的”。这是一个系统工程,后面可以单独弄一系列长篇大论。
总的来说,未来无人驾驶域控,要有好的整体架构设计、完整细致的框图以及有实战经验的团队,满怀敬畏,开放心态,跨界交流和实力团队的务实工作才能设计和落地深度跨界的产品并保持其不断的延续和演进。
雷锋网推荐阅读:曾经想“开启无人驾驶上帝视角”的两人,刚刚展出了新能源整车+L3自动驾驶平台|CESAsia2017