本次分享人:潘波

天津大学电子信息工程学士,目前负责Pony.ai硬件平台(EE方向)的研发及测试工作。曾就职于英伟达亚洲设计中心,主导DriveCX2智能座舱的硬件平台设计,参与PX2,DrivePegasus自动驾驶平台的研发;曾就职于DensoTen,参与和主导多款车载导航及辅助驾驶产品的研发及测试工作。

注:本文基于作者2019年12月在DataFunTalk的演讲。

划重点:本文主题为如何做好自动驾驶创业公司的硬件系统研发(电子部分),主要内容包括:

❖ 自动驾驶硬件系统的演变

❖ 传统汽车电子与自动驾驶硬件产业链

❖ 自动驾驶硬件现阶段问题分析与解决方案

❖ 硬件研发:车规设计与Pony.ai电子电气开发流程

1. 自动驾驶硬件系统的演变

自动驾驶从无到有,硬件系统也经历了从满足基本功能、基本性能的需求,到逐步向更稳定、更安全的方向演变的过程。

第一步是满足基本的功能需求,也就是完成简单的自动驾驶演示,通过提升性能实现一些稍微复杂场景下的自动驾驶。而接下来要想实现RobotTaxi车队的运营,不管是从节约维护成本,还是安全的角度来考虑,都需要更加稳定、安全的硬件系统才能提供足够的保障。

这个过程中面临两个主要问题:

第一,稳定安全的自动驾驶硬件应该是什么样子?

第二,如何才能做到?什么样的路才适合创业公司?

首先分析传统汽车电子

要回答这两个关键问题,我们要从分析传统的汽车电子开始。

传统的汽车电子特点是功能单一、构造简洁、可靠性高,看起来有“安全感”。但是在功能,性能方面与自动驾驶的硬件需求相差甚远。

传统汽车电子产业链大致是这样的:汽车厂商向一级供应商提出需求,一级供应商根据这些需求在二/三级供应商处进行选型,二/三级供应商向一级供应商提供新型、适宜的方案,一级供应商完成设计方案并与汽车厂商进行详细深入的合作,直至完成产品交付。

这个过程大概需要两到三年的时间,整个流程非常成熟,可以满足传统汽车配件行业的生产需求。

再来认识一下自动驾驶的硬件系统

上图展示的是由Audi, Intel, Nvidia等传统汽车厂商、一级供应商、及科技巨头合作完成的一个量产L2+自动驾驶硬件计算平台。与以往传统的汽车电子产品的研发有所不同,科技巨头在技术方面起到了决定性的作用。

很明显L2+级的自动驾驶硬件系统相对于传统汽车电子设备,在技术难度,系统复杂度上已经高出了一个数量级,那么对于RobotTaxi所需的L4+级自动驾驶硬件,在技术难度和复杂度上将达到了一个更高的等级。

自动驾驶硬件产业链

由于自动驾驶的技术门槛远高于传统的汽车电子,所以在自动驾驶的产业链中增加了方案供应商,并且在很长一段时间内整个行业的发展也是由方案供应商推动的。方案供应商提供自动驾驶所需的软硬件解决方案。

目前大多数的创业公司都扮演着或者希望成为方案供应商。而我们所熟悉的GPU供应商NVIDIA,激光雷达供应商Velodyne则属于二级硬件供应商。

自动驾驶硬件未来会是什么样子?

上图中是采埃孚的ProAI RoboThink自动驾驶硬件计算单元的概念图或许会是一个可能性。从稳定安全的角度来看:紧凑坚固,液冷散热,采用全车规器件,这些都是值得我们学习的。

硬件现阶段的问题分析

任何事物的存在都是有道理的,正是因为具备了某些特定的优点才被人使用。现阶段,自动驾驶的硬件仍在发展与改善中。

上图中一个原始状态的自动驾驶硬件系统,它的优点是方案变化灵活,硬件研发投入较少,不需要很大规模的研发团队,只需几名工程师就可以搭建起来,甚至不需要专业的硬件工程师。

当然这个系统也存在明显的缺点,例如:组装非常困难、稳定性较差、难以维护、功耗大、散热效果差。在实际使用的过程中我们发现其最主要的两个缺点,一是容易出现硬件接触不良,不适应车辆运行过程中颠簸的路况; 二是功耗和散热问题严重影响了GPU、CPU的性能。

对于这种类型的系统存在的这些问题,我们提出了以下几点改善方案:

第一,让整个硬件系统变得简洁,在硬件领域从可靠性的角度来评判,系统越简洁,相对来说就会越可靠。

想要把系统进化得更加简洁,首先要减少设备间信号的转接,提高单个设备的集成度,这需要在硬件研发上投入较多的精力。

其次是优化设备的布局,进行专业的线缆设计,提高设备间连接的可靠性。

第二,优化电源系统,提高电源的使用效率,图中上方的电源系统是自动驾驶硬件初期构建时比较常见的方案,包括各种逆变器,多级降压设备,各种类型的保险丝,继电器等等。这个系统不需要太多的设计投入,只需要将设备按照需要连接在一起,带来的问题是效率低下,设备工作不稳定,出现问题的时候很难找到问题发生的根本原因。

如果想要解决这些问题,就需要针对自动驾驶的特殊需求,设计专业的电源系统。减少电源转换层级,提高电源转换效率,并且采用智能的电源分配和管理系统,监测和管理每一个设备的工作状态,提高系统稳定性和安全等级。

硬件研发的车规设计

如前所述的两种改善方案都离不开硬件的定制或者是自研,而由于行业正处于起步阶段,还没有形成成熟完备的产业链,所以对于大多数公司来说硬件自研是目前最快速有效的方式。当然自动驾驶的硬件研发需要考虑相应的汽车行业标准以及相应的设计规范。这里有一个通俗的叫法“车规设计” 那么我们应当如何正确理解自动驾驶硬件的车规设计呢,该如何准确地定义车规设计?

首先车规设计与采用汽车级元器件并不是等价关系,一个全部采用汽车级元器件的设备并不一定能够通过汽车级的认证测试。同样一个没有完全使用汽车级器件的设备也许可以通过汽车级测试。

车规设计的真正目的是要让产品的可靠性、寿命能够满足汽车产品的认证测试以及相应的使用环境。对于自动驾驶来说,真正的挑战并不是常规的认证测试,而是如何准确地定义合理的应用环境。

合理的应用环境对于不同的发展阶段定义是有区别的,比如初期不需要追求苛刻的气候环境,不需要应对高强度的振动耐久。而伴随着规模的逐渐扩大,高可靠性,高安全性的要求逐步地提高,这些需求也在不断地追加和提升。

除了自身发展阶段上的区分。对比传统的汽车电子,自动驾驶硬件的应用环境也许需要***性的改变。

举个例子,上图是ISO中定义的车载设备在车辆中不同的安装位置所对应的使用温度范围。在这个表格中,即使是最宽松的要求,对于自动驾驶的超算平台来说,依然是很难满足的。

如果我们刻意地满足这些要求,就需要牺牲很大一部分的计算性能。而计算性能又恰恰是自动驾驶硬件最重要的指标之一。

那么我们究竟该如何处理这样的问题?

首先,需要弄清楚ISO等传统标准的数据依据和目的。

然后,对比我们的使用环境和传统数据之间的差距。

最后,判断传统标准的规格在当前阶段是否可以缓和,如果不可以缓和,则需要通过设计手段来达到相应的规格。

对于上面的例子,如果要求超算平台工作在70摄氏度的环境中,即使是液冷方案也很难达到较高的计算性能,而如果通过通风,空调等手段,环境温度远远低于70摄氏度。

所以,我们的结论是:

第一,车规设计不仅仅是选择车规物料这么简单,而是要熟悉车辆的使用环境,通过合理的设计手段,以合理的成本设计出满足应用需求的产品或者方案。

第二,汽车行业的各种标准是设计的参考指标,并不是检验好与不好的唯一标准,不同的阶段,目标的界定是不一样的,需要合理地制定设计需要达到的目标。

第三,熟悉自动驾驶硬件相关的各种技术标准,例如汽车以太网,CAN网络,高速系统设计等,合理地结合技术理论,测试数据和设计经验,从而达成制定的目标。

硬件研发:Pony.ai电子电气开发流程

)

对于一家自动驾驶创业公司来说,硬件的开发流程在初期确实没有太多的必要,几位硬件工程师在一起充分沟通效率远远高于某一个书面的流程。

其次自动驾驶的硬件属于车载设备,汽车行业的研发流程太过于复杂。我们知道车载设备的开发周期大概需要两到三年,对于创业公司来说,采用传统汽车行业的研发流程明显是不合理不适用的,如果简单粗暴地照搬过来则会带来很多的负面影响。

难道我们真的就不需要流程吗?

当硬件团队达到一定的规模,着手去做一个复杂系统的时候,我们发现流程的是非常必要的,一个好的流程可以降低人为失误,提高项目的管理力度,有效保证研发的品质和产品的质量。

什么样的流程才是好的流程,或者说什么样的流程才是适合我们的?合理的开发流程需要满足以下几个基本原则:

高效:硬件可以做到快速迭代,及时满足软件的应用需求以及公司的发展需求。

实用:简单明了的指导方法,让年轻工程师或者新加入的成员容易上手。

足够严谨:可以覆盖到每一个关键的节点,以及关键的设计内容。

下面我们来介绍一下Pony.ai硬件的开发流程:

首先是征集需求:

Pony.ai在硅谷弗里蒙特(Fremont),国内的北京、广州都有软硬件研发团队。我们希望同样的硬件方案、同样的设计可以满足三地的需求,这样利于硬件问题的解析和收敛,当然也可以降低硬件的研发和维护成本。

需求的收集不仅仅是功能、性能上的要求,还包括环境,可靠性方面的要求,比如广州需要硬件可以耐高温高湿的环境,北京需要硬件在低温下可以稳定启动。

在收集到设计需求之后,我们就可以开始真正的硬件研发设计,这部分和传统的硬件研发并没有很大的区别。我们参照业内主流的硬件研发方式制定了一个简洁高效的流程,其中包括大家熟悉的:原理图,PCB的设计,以及技术方面的工程审核。

考虑到自动驾驶硬件在功耗及处理能力方面的特殊要求,我们针对这两个方面做了专门的技术强化。

首先,针对系统的功耗及散热方案,通过严谨的电源设计,热力图参数的计算和分析,散热方案仿真等,优化系统的电源转换效率,预测系统功耗并制定合理的散热方案。

针对系统的处理能力,我们在信号完整性电源完整性方面做了深入的研究,确保每一个关键信号,每一个关键指标都能满足我们的设计要求,来保证处理器及整个系统运行在较为理想的工作状态。

)

电源完整性:

理想中的电源如上图左所示,而实际中的电源却是上图右的样子。

自动驾驶用到的处理器大多数是性能非常强劲,功耗比较高,比如CPU,GPU,或者是某些FPGA。这些处理器一般都有一个内核电源,GPU的内核电源在工作时会有上百安培峰值电流,CPU或者一些性能比较强的FPGA也会达到几十安培,内核电源在AC和DC方面都有非常严格的要求,供电网络必须要满足这些需求才能使处理器发挥出应有的算力。

表面上来这个需求没有什么难度,而实际上远远没有那么简单。设计上需要分析集成电路板的直流损耗,分析整个网络的PDN参数(这里面包括处理器,电源网络,集成电路板的各种材料的各类模型及参数),通过严格的仿真来预测结果,从而提高设计的合理性和准确性。

信号完整性:

信号完整性是一个复杂而且抽象的问题。它关系到系统是否可以正常运行,而且它还决定了系统是否可以达到最高性能的工作点。

信号完整性的具体工作是防止信号发生不可接受的畸变,让信号接收端得到一个在指标范围之内的有效信号。传统的概念中信号是有模拟信号和数字信号之分的,但是对于硬件工程师而言,所有的信号都是模拟信号,没有理想的0和1,我们需要通过合理的设计手段,保证它的指标满足相应的规格,它才能表现出应有的0, 1特性。(上右图是一个PPS信号的上升沿波形,和理想的PPS信号相差甚远)

继续使用PPS信号来举例说明:PPS的原理非常简单,一秒钟一次脉冲,它看起来就是一个简单的低速信号。但是如果从高精度同步的角度来考虑,它却是一个真正的高速信号,PPS标准信号的上升沿是纳秒级的,如果系统中所有设备间的延迟要在几百纳秒或者几微秒范围之内,就要将PPS作为高速信号来处理,确保相位延迟和上升沿在指标范围之内。如果系统要求毫秒级或者更粗糙的同步,则不需要过分追求PPS信号的性能指标。

案例:摄像头电路的电源完整性问题

从事自动驾驶硬件研发的人员对GMSL和FPD-LINK的Power Over COAX ( POC)设计应该都不陌生。这个POC电路通过AC电容和POC电感来分离电源和信号,实现用一根线缆同时传输电源和信号,这是目前最流行的技术,也是整个行业最先进的技术。

这个设计的要点是:一,线缆上的信号在直流通路要有足够的抵抗,防止信号衰减过大;二,线缆上的AC噪声不能超过额定的指标,防止噪声对信号的影响导致通信失败。在器件供应商的设计指南中对这两点都做了详细的介绍。

而除了上述的两个关键点,在实际的应用中,还会遇到一些其他的问题,比如从前端的传感器,ISP,POC,到供电电源形成的电源网络存在响应不足的风险,这种风险会导致电源的不连续,而电源的不连续会导致信号在接收端产生了较大的跳变,而这正是我们要避免的噪声。

自动驾驶的硬件研发由于采用了很多的新技术,或者是创新的设计,在研发的过程中我们经常遇到一些新的问题或者新的挑战。只有应用专业的技术技能解决这些问题,克服这些挑战,才能把自动驾驶的硬件做好。

一个完整的研发过程自然少不了测试验证部分,Pony.ai硬件的测试验证包含以下几个主要的方面:

一,功能检查Bring-up Checklist。制定一个标准的检查表,检查每一个功能的状态,以及每一个硬件电气连接的准确性,确保硬件设计做到足够好。

二,设计验证Design Validation Test Checklist。通过一系列的信号测试,电源测试,及压力测试,确保设备的性能满足设计要求。

三,环境和可靠性测试Environmental and Reliability Test Checklist。气候条件,电子可靠性,机械可靠性测试,确保设备满足应用要求。

四,路测On Road Test。通过较长时间的路测,检测设备在系统中的工作状态及稳定性。

经过以上严格的测试,可以检测出硬件设计上的问题或者是一些不足之处。将这些问题或不足之处快速地反馈到下一个阶段的设计中,从而达到快速提高硬件性能和质量的目的。与此同时,硬件设计团队也得到快速的成长,具备研发设计高性能高品质自动驾驶硬件系统的能力。