NVIDIA DrivePX2系统及软硬件架构学习笔记

来源:公众号“汽车电子与软件”
2020-05-25
3045
导语
最近由于工作需要,整理了一下Tesla、NVIDIA、WAYMO等自动驾驶领头羊的一些资料,主要是关于域控制器、硬件架构、系统架构方面的梳理。特斯拉的技术能让大众汽车甘拜下风,NVIDIA的AI计算平台绝对是行业首屈一指,学习学习,站在巨人的肩旁上,才能看得远不是。一个不正经的工程师,看的不远,但是跟风而行不掉队,还是可以滴!

1DriverPX 2平台介绍


DrivePX2在2016年初CES上发布,目的是在AI人工智能算法深入影响自动驾驶发展之际,用以应对大量的机器学习训练和应用场景算法开发,NVIDIA拿手的GPU成为炙手可热之物,NVIDIADriver PX 2平台就此诞生。




DRIVEPX 2是一个开放式人工智能车辆计算平台,旨在为自动驾驶汽车和驾驶员辅助功能的深度学习算法提供硬件基础。对于车企和Tier1来说,可以基于PX2做快速的定制化的自动驾驶开发。DRIVEPX 2系列提供AUTOCRUISE(自动巡航)、AUTOCHAUFFEUR(自动私人司机)和FULLYAUTONOMOUS DRIVING(全自动驾驶)三个平台产品。




从数据上来看,Autochauffeur的性能相当于Autocruise2倍,增加了两颗基于Pascal架构的独立GPU,可以实现点对点的自动驾驶;而FULLYAUTONOMOUS DRIVING 则是将多重全方位配置的DrivePX 2 系统叠加整合到一台车内实现全自动驾驶。
ZF与 NVIDIA合作研发的ProAI 就是基于DrivePX 2 Autocruise 平台。Tesla与 NVIDIA合作并且在2016年 10月之后量产的ModelS 车型上搭载的也是DrivePX 2 自动驾驶平台。




NVIDIA2017年初 CES上发布的Xavier可以看做DrivePX 2 的进化版,Xavier是一款严格意义上的SoC,集成了VoltaGPU架构、定制8核 CPU架构以及新的计算机视觉加速器。Xavier提供30TOPS的计算高性能,而功耗仅为30W
2017年 3月,NVIDIA和博世合作开发的人工智能自动驾驶汽车电脑就是基于Xavier平台。目前NVIDIA和车厂以及一级供应商在自动驾驶领域的合作,都是集中在Xavier平台,Xavier也是目前自动驾驶领域SOCNO.1

2微商NVIDIADrive PX2 AutoChauffeur硬件架构

NVIDIADrive PX2 AutoChauffeur实物和接口如图所示




DRIVEPX 2 硬件架构图如下






2.1 PCIe Switch PEX8724

ExpressLane™PEX8724设备提供多主机PCIExpress交换功能,使用户能够通过可扩展,高带宽,无阻塞的互连将多个主机连接到其各自的端点,从而与包括服务器,存储,通信和图形平台在内的各种应用程序。PEX8724非常适合扇出,聚合和对等流量模式。
PEX8724采用增强版的PLX经过现场测试的PEX8624 PCIe交换机体系结构,允许用户以传统的单主机模式或多主机模式配置设备,最多可配置1+ 1个四个主机端口(1个备份)或N+1N个活动和1个备份)主机故障转移。这一强大的体系结构增强功能使用户可以构建基于PCIe的系统,以支持高可用性,故障转移,冗余或集群系统。PEX8724架构支持数据包直通,最大延迟为106nsx8x8)。除了低延迟之外,该设备还支持高达2048字节的数据包有效负载大小,从而使用户可以实现更高的吞吐量。
PEX8724提供端到端CRCECRC)保护和Poison位支持,以支持需要端到端数据完整性的设计。当数据包通过交换机时,PLX还支持整个内部数据路径中的数据路径奇偶校验和内存(RAM)纠错电路。
PEX8724PCIeGen 3 Switch, 24 Lanes, 6 Ports6个端口可以配置为通道宽度x1x2x4x8
PEX8724在DRIVE PX2中用了20-lane,4PCIe口连接两对TegradGPU,还有一个扩出了10GbE口。

2.2 PCIe-10GbE Intel X550-AT


IntelX550-AT以太网控制器,接口类型PCIev3.0 (8.0 GT/s), 每端口数据传输率
10/5/2.5/1GbE(NBASE-T in Linux Only),支持100Base-T,1000Base-T, 10GBase-T接口,支持英特尔®Virtualization Technology for Connectivity (VT-c)(英特尔®连接虚拟化技术)VMDq,SR-IOV

2.3 GMSL Camera

环视摄像头采用成对的串行器和解串器MAX9271和MAX9240,MAX9277和MAX9288,典型系统架构如下图:





另外DRIVERPX2的12路GMSL摄像头有可能采用了3片美信的MAX9286,MAX9286是四合一的解串芯片,有可能是NVIDIA定制的,比较新的产品。

2.4 GMSL Display

DriverPX2两个Tegra的HDMI通过MUX二选一芯片接到MAX9291上,用于GMSL Display.
MAX9291属于3.12GbpsGMSL串行器,用于同轴或STP输出及HDMI输入,芯片架构如下图:

2.5 FPDLink Display

Driver两个Tegra的DSI通过MUX芯片FSA644,然后经过DSI-LVDSBridge(SN65DSI85),再连接到DS90UB947,DS90UB947是1080p的双路FPD-LinkIII 串行器.
FSA644
2:1MIPI D-PHY (1.5Gbps) 4-Data Lane Switch, 可以用做10通道的选通开关。
SN65DSI85:桥接FlatLinkLVDS MIPIDSI
DSIFlatLink™桥,特有一个双通道MIPI®D-PHY 接收器前端配置,此配置中在每个通道上具有4条信道,每条信道的运行速率高达1Gbps;最大输出带宽8Gbps。此桥解码MIPI®DSI 18bpp RGB666 24bpp RGB888 数据包并将已格式化的视频数据流转换为一个运行在频率范围介于25MHz154MHz之间的像素时钟上的FlatLink™兼容LVDS输出,从而提供一个双链路LVDS,单链路LVDS,或者两个单链路LVDS接口,每条链路具有4条数据信道。
SN65DSI85非常适合60/秒的WQXGA(2560x1600),以及等效120fps(每像素高达24位)上的WUXGA3D 图形和全高清(HD)(1920x1080)分辨率。执行了部分线路缓冲以适应 DSILVDS接口间的数据流不匹配问题。
SN65DSI85与大部分MCU兼容,并且具有一系列电源管理特性,其中包括低摆幅LVDS输出以及MIPI®定义的超低功耗状态(ULPS)支持。
DS90UB947:
DS90UB947-Q1OpenLDIFPD-LinkIII 桥接芯片,与FPD-LinkIIIDS90UB940-Q1/DS90UB948-Q1解串器配对使用,可通过50Ω单端同轴电缆或100Ω差分屏蔽双绞线(STP)电缆提供单通道或双通道高速串行流。它对OpenLDI输入进行串行化处理,支持高达WUXGA1080p60的视频分辨率(24位色深)。
FPD-LinkIII 接口支持通过同一条差分链路进行视频和音频数据传输以及全双工控制(包括I2CSPI通信)。该器件在单一差分链路上最高可支持WXGA720p分辨率(24位色深)。
DS90UB947-Q1支持通过外部I2S接口接收多通道音频。其接收的音频数据会被加密并通过FPD-LinkIII 接口发送出去,然后再由解串器重新生成。

2.6 FT4232

USB转四串口,USBJTAG/I2C/SPI芯片,FT4232芯片在行业内的应用很广泛。

FT4232DRIVEPX 2中连接了两个TergaUARTGPIO,还有单片机TC297UART,然后接到USB2.0 Hub.

2.7 USB82514

Microchip的车规级USB2.0 Hub, 高速1分4接口,automotive-grade quality this Hi-Speed 4-PortHub。USB82514是一款多功能,经济高效且节能的USB2.0hub控制器。借助Microchip的MultiTRAK技术在混合速度USB环境中提供行业领先的数据吞吐量,USB82514专为满足汽车行业的严格要求而设计。

2.8 Marvell 88E6321

针对汽车EAVB的7口以太交换机,2014年底推出,有两个IEEE10/100/1000BASE-T/TX/T接口(对应传统的RJ45即我们常说的水晶头),两个RGMII/xMII接口或一个GMII接口,2个SGMII/ Serdes接口,1个RGMII/xMII接口,MII即MediumIndependentInterface,RMII为ReducedMII,SMII为SerialMII,GMII是GigaMII。MII(MediaIndependentInterface)即媒体独立接口,MII接口是MAC与PHY连接的标准接口。它是IEEE-802.3定义的以太网行业标准。10/100/1000BASE-T/TX/T指传输线缆。Port2、5、6可以配置为MAC模式或者PHY模式,均支持RGMII/RMII/MII,2、6Port还支持GMII。Port3、4支持10、100、1000M自适应以太网接口。Port0、1支持100M、1000M光口(SFP)。
DRIVEPX 2中,88E6321的SGMII口通过PHY芯片88EA1512P连到了Tegra的RGMII上。然后88E6321的RGMII外接PHY芯片BCM89811,扩出了AutoLink口。

2.9 AURIX TC297

InfineonTC297t,目前属于唯一选择,行业内用的也比较多,比如ZFzFASTesla的域控制器,或者其他基于Xavier设计的域控制器内部的MCU都是这个TC297T

3DrivePX 2 的软件架构

NVIDIADRIVE PLAFORM如下图所示:




最底层是DrivePX 2硬件和软件架构,在这一层面,NVIDIA已经和ZF、博世Tier1深度合作,根据不同厂商的不同需求做定制化。
再上一层是CUDACuDNNTensorRT以及NvMedia这些底层开发工具层。CUDA是 NVIDIA研发的一个并行计算平台和编程模型。它利用图形处理器(GPU)能力,实现计算性能的显著提高。可以让GPU解决复杂的计算问题,并且可以适应多种常用编程语言。



TensorRT用以优化深度学习的模型函数库,具有实时回应极度复杂网络的能力。通过训练过的32位或16位神经网络以及INT8运算为目的进行优化,将深度学习应用的处理量及效率极大化。从图中可以看到,有了TensorRT加持,每秒处理图像的能力以及优化训练神经网络和实时性都有提高。NVMEDIA提供可以调试摄像头或数据的API接口,实现图像抓取、图像信号处理、2D引擎、编码、与其他软件内容交互操作。




再往上一层的DriveWorks,这是DriverPX2的应用软件层。在NVIDIA的规划中,DriveWorks 是给开发者用的一套自动驾驶软件开发包,开发者可以在这上面实现各种传感器识别、端到端高清制图、定位、路径规划等功能。
最后一层是深度学习和其他自动驾驶开发应用程序。基于NVIDIADrive PX 2,开发者还可以利用深度神经网络实现交通工具识别、地面标线识别、开放路面识别等等ADAS功能,甚至多传感器数据融合的深度神经网络分析计算。
DrivePX 2 的推出,让GPU在并行计算方面的优势得到放大,NVIDIA通过这个DriverPX2和车企以及Tier1建立了合作关系,从而开创了NVIDIA自动驾驶行业的领先之路,同时让自动驾驶算法的开发工程师们有了更好用的计算平台,摆脱了工业级工控机,并以此建立起一套更加完善的自动驾驶生态系统。

推荐阅读
特斯拉AP3.0(FSD版)域控制器拆解分析学习笔记

《风语辰学习笔记》专辑

智能汽车不仅仅是当下的热门,也是未来趋势所在,作为一个汽车电控工程师,研究、设计、产品,这是工作;但是拆解、分析,形成自己的设计语言,这是兴趣。每个阶段有不同的收货,整理一下,记个笔记,给自己烙个印,也分享一下,共勉!

者:风语辰

著作权归作者所有。转载需获得授权,并注明出处。    






收藏
点赞
2000