开源LIDAR原型制作平台

摘要

本文探讨ADI公司新推出且拥有广泛市场的LIDAR原型制作平台,以及它如何通过提供完整的硬件和软件解决方案,使得用户能够建立其算法和自定义硬件解决方案的原型,从而帮助客户缩短产品开发时间;详细介绍模块化硬件设计,包括光接收和发送信号链、FPGA接口,以及用于长距离感测的光学器件;介绍系统分区决策,以凸显良好的系统设计、接口定义和合适的模块化分级的重要性;描述开源LIDAR软件堆栈的组件和平台定制的API,显示客户在产品开发期间如何受益,以及如何将这些产品集成到其最终的解决方案中。

简介

随着自动驾驶汽车和机器人从想象逐渐变为现实,汽车和工业客户开始寻求新的环境感知解决方案,力图让这些机器能够自动导航。LIDAR是该领域中发展最快的技术之一,随着它越来越成熟和可靠,其应用范围也变得更加广泛,带来了巨大的市场机遇。许多初创企业和知名传感器公司都致力于开发更加精准、功耗低、尺寸小,且更加经济高效的LIDAR传感器,但在设计系统硬件、实施软件基础设施以和系统中的所有组件通信时,他们都遇到了同样的挑战。正是在这些区域,ADI能够通过软件参考设计和开源软件堆栈提供价值,令客户能够轻松将ADI LIDAR产品系列、软件模块和HDL IP集成到其产品和IC中,从而缩短上市时间。

系统架构

客户在开发自己的LIDAR传感器时,系统设计中会存一些不同之处:接收和发送光学器件、激光器的数量和方向、激光发射模式、激光束控制,以及光接收元件的数量。但是,不管做出什么选择,在接收信号链和激光器驱动信号要求方面,所有传感器都高度相似。基于这些假设,ADI公司设计出模块化LIDAR原型制作平台AD-FMCLIDAR1-EBZ,以期让客户能够使用他们自己的硬件轻松配置或更换器件;该平台根据特定的应用要求设计,但仍可以用作整个系统。该系统可以分为三个不同的电路板,每个都配备标准化的数字和模拟接口:

  • 数据采集(DAQ)电路板,包含高速JESD204B ADC、对应的时钟和电源。此电路板上有一个符合FMC要求的接口,可以连接至用户优选的FPGA开发板。它充当系统的基板,通过用于在这些板和FPGA之间路由控制和反馈信号的数字连接器,以及用于传输模拟信号的同轴电缆,将另外两个板连接至这个板。
  • 包含雪崩光电探测器(APD)的光传感器和整个信号链的模拟前端(AFE)电路板,信号链用于调谐APD输出信号,以便能馈入DAQ板上的ADC。
  • 包含激光器和驱动电路的激光器板。

图1.LIDAR平台系统设计。

和以往一样,在系统设计中,模块化意味着灵活性,但它也有一些缺点,比如复杂性增加、性能下降和成本增加,在决定系统分区时必须全面评估这些缺点。在这种情况下,系统被分成三个板,原因如下:

  • 无论使用哪种模拟前端,选择哪种激光器解决方案,ADC和时钟很可能保持不变。
  • 模拟前端硬件设计和尺寸根据所选的APD、整体的系统接收灵敏度,以及选择的光学器件而变化。
  • 激光器板设计和尺寸根据所选的照明解决方案和光学器件而变化。.
  • 对于接收器和发射器的位置和方向,系统提供很大的灵活性,以便它们彼此对应或和其他目标对应,因此使用柔性电缆来传输数字信号,使用同轴电缆来传输两个电路板之间的模拟信号。

包含硬件设计的软件堆栈以分层方法为基础,以少数几个层级区分为适用于特定操作系统的驱动和接口、系统特定的API和应用层。这使得堆栈的上层可以保持不变,无论软件是在嵌入式目标上运行,还是在通过网络或USB连接与系统通信的PC上运行。如图2所示,在不同的产品开发阶段,这一点非常有用,因为这意味着将系统连接至PC以简化开发时,在原型制作期间开发的同样的应用软件可轻松部署到嵌入式系统中,甚至无需触碰低层接口。

图2.产品开发周期

硬件设计

LIDAR传感器通过测量光脉冲到达目标并返回的时间来计算与目标之间的距离。测量时间时,以ADC 采样数据为增量,这里ADC采样速率决定了系统对接收的光脉冲采样时的分辨率。公式1显示如何根据ADC采样速率计算距离。

Equation 1

其中:

LS 为光的速度, 3 × 108 m/s

fS 为ADC采样速率

N 为光脉冲生成至返回接收期间ADC样本的数量

假设系统使用AD9094JESD204B四通道ADC的1 GHz采样速率,那么每个样本结果相当于15厘米距离。因此,系统中不能存在采样不确定性,因为任何样本不确定性都可能导致巨大的距离测量误差。传统上,LIDAR系统以并行ADC为基础,这种ADC本身提供零采样不确定性。随着接收通道的数量不断增加,功率和PCB尺寸的要求越来越严格,这些ADC类型不能很好地扩展。另一选项是使用具备高速串行输出的ADC,例如JESD204B,以解决并行ADC存在的问题。这种选项的数据接口复杂度更高,因此难以实现零采样不确定性。

LIDAR DAQ板提供了解决这些挑战的方案,通过展示为在Subclass 1模式下运行的JESD204B数据采集系统的电源、时钟和数据接口设计来确保确定性延迟,以实现零采样不确定性,同时利用JESD204B接口提供的所有优势,令时钟方案的功耗达到最低。要在Subclass 1模式下运行JESD204B,系统总共要用到5个时钟:

  • ADC采样时钟:驱动ADC信号采样过程。
  • ADC和FPGA SYSREF:源同步、高压摆率时序分辨率信号,用于重置器件时钟分频器,以确保获得确定性的延迟。
  • FPGA全局时钟(也称为内核时钟或器件时钟):驱动JESD204B PHY层和FPGA逻辑的输出。
  • FPGA参考时钟:生成JESD204B收发器所需的PHY层内部时钟;需要等于,或是器件时钟的整数倍。

所有时钟都由一个 AD9528 JESD204B时钟生成器生成,因此可以确保它们彼此都同步。 图3显示了时钟方案,以及与FPGA的数据接口。

图3.DAQ板时钟和数据路径。

AFE板接收光学反射信号,将其转化成电子信号,然后传输给DAQ板上的ADC。这个板可能是整个设计中灵敏度较高的部分,因为它混合信号调节电路(使用16通道APD阵列生成的微安电流信号),将光学信号转化成电子信号,并采用为同样的APD供电所需的–120 V至–300 V大电压电源。16个电流输出被馈送至4个低噪声四通道互阻增益放大器(TIA)LTC6561,带有一个内部4合1复用器,用于选择之后向其中一个ADC输入端馈送的输出通道。要特别注意TIA的输入部分,以实现所需的信号完整度和通道隔离等级,使得APD生成的极低电流信号中不会掺杂更多噪声,从而最大化系统的SNR和对象检测率。AFE板的设计显示,要实现较高信号质量,较好的方法是让APD和TIA之间的线路长度尽可能短,并在TIA输入之间增加椭圆孔,以最大化通道间隔离;此外,在部署信号调节电路时,要保证该电路不会干扰板上的其他电源电路。另一项重要特性是能够测量APD的温度,以补偿APD信号输出的变化,这种变化是因为在正常运行期间APD温度上升导致的。提供几个旋钮来控制信号链的偏置和APD偏置,这些偏置转化成APD灵敏度,从而最大化ADC输入范围,以实现最大SNR。图4显示了AFE板信号链的框图。

图4.AFE板信号链。

激光器板生成波长为905 nm的光学脉冲。它使用四个激光器,这些激光器同时驱动,以增加光束强度,实现更长的测量距离。此激光器使用由FPGA载波板生成的具备可编程脉宽和频率的PWM信号来控制。这些信号在FPGA上生成,以LVDS从FPGA传输至激光器板,经过DAQ板以及连接DAQ和激光器板的扁平电缆期间,不易受到噪声影响。驱动信号可以返回至其中一个ADC通道,以获得飞行时间参考。采用外部电源为激光器供电。其设计符合国际标准IEC 60825-1:2014和IEC 60825-1:2007中关于Class 1级激光器产品的要求。

图5.激光器板信号链。

AFE和激光器板都需要光学器件,以实现长距离测量。事实证明,该系统可在60米范围内测量,使用快速轴准直器1 ,帮助激光二极管将垂直FoV缩小到1°,同时在保持水平视场不变的情况下,在接收侧放置一个非球面透镜。

HDL参考设计

HDL设计包含连接硬件的主要接口,其逻辑电路实现了将来自JESD链接的数据传输至系统存储器,驱动激光器,同步接收器和发射器以准确测量飞行时间,并且在所有组件上设计了通信接口。图6显示了HDL设计的简化框图。ADI的HDL参考设计采用了通用架构使得框架可扩展,且更容易连接另一个FPGA端口。该设计使用ADI公司的JESD204B框架2 ,以及多个SPI和GPIO接口来接收来自AD9094 ADC的数据,以及控制该原型机平台上的所有器件。

图6.HDL设计框图。

JESD204链接配置用于支持4个数据转换器(M),这些转换器使用线路速率为10 Gbps的4条路线来实现8位转换器分辨率。器件时钟与高速收发器的参考时钟相同,被设置为250 MHz,由DAQ板提供。该链接在Subclass 1模式下运行,确保高速转换器和FPGA之间具备确定性延迟。

对于LIDAR系统,最大的挑战在于如何同步各种功能和发射脉冲,以及如何处理从高速ADC接收的必要数量的数据。为了解决这一挑战,HDL设计中包含了一个IP,用于提供生成激光器脉冲所需的逻辑,控制TIA的内部多路复用器,以及为DMA提供背压。所有这些控制函数都与发射脉冲同步,以便系统无需保存所有原始高速量化数据流。如此,大幅降低系统的总数据速率。

软件

T定义LIDAR平台的软件堆栈的几个关键点包括自由和开源。用户因此能够“自由运行、复制、分发、学习、变更和改善软件,3 包括从 Linux® 内核到用户域的工具,以及与此相关的所有代码。

图7.软件堆栈。

内核中使用的软件驱动器会启动硬件组件,向用户显示所有可用功能。这些驱动器大部分都是工业I/O (IIO) Linux子系统的组成部分。4 这些驱动器都与平台无关,所以无需改变硬件,包括与FPGA供应商相关的部分(例如,从 Xilinx® FPGA 迁移至 Intel®)。

为了简化软件接口IIO器件开发,ADI开发出了libiio库。5 该库提取硬件的低层详情,提供简单但完整的编程接口,可供高级项目使用。多种可用的libiio后端(例如,本地、网络、USB、串行端)支持在本地使用IIO器件,以及远程在不同操作系统上运行的应用(包括,Linux、 Windows®, macOS®)中使用该器件。

ADI开发的IIO示波器就是这样一项应用示例,它使用libiio连接IIO器件,可在系统评估阶段使用。该工具可在不同模式下捕捉和图示数据(例如,时域、频域、星座图、交互相关)、发送数据以及允许用户查看和修改被检测器件的设置。

图8.显示LIDAR数据的IIO示波器捕捉窗口。

虽然libiio提供低层编程接口,但在大多数情况下,用户期望使用平台相关的集合了低层驱动器调用的API,来展示一组功能,用于访问和配置各种系统参数和流数据。因此,LIDAR原型制作平台采用特定的API,以及适用于常用框架和编程语言(例如 C/C++, MATLAB®或Python®)的配套组件,6 使用户能够使用其优选的编程语言与系统连接,集中精力研发对客户而言极具价值的算法和应用。

结论

对于系统设计,在建立架构和做出设计决定时,存在一定程度的模糊性。这代表着系统构建完成后无法正常工作或运行的风险,会导致重复的设计周期,增加开发成本,以及延长产品上市时间。参考设计以预设计的、针对彼此交互操作的系统为基础,与从头开始的自定义专用设计相比,其风险降低,整体可预测性和可靠性提高。在规划过程中使用参考设计作为起点,有助于更快将新设计推向市场,并确保出现更少的意外和问题。系统设计人员总是寻求通过参考平台来验证其设计方案,以降低风险和提高可靠性。启动项目时,使用清晰标准的设计选项有助于推动规划过程的实施。可通过使用通用语言来帮助协调目标,鼓励多个职能部门相互合作和参与来实现,并且帮助简化在各设计目标之间评估和取舍的难度。LIDAR原型制作平台试图通过提供开源硬件和软件设计来满足这些需求,这些设计可以提供初始系统架构阶段的参考。硬件平台和软件堆栈可用于整个产品开发阶段,从初始系统评估、开发,到集成到最终产品中。参考设计的内容(例如工程图纸和BOM)可构建、合法、本地化的系统设计提供了一个良好的开端。可以帮助缩短设计周期,且可能在整个过程中帮助节省资金。模块化硬件设计支持使得各种配置选项满足特定的应用要求,而基于行业标准框架和编程语言,搭配应用示例的开源软件堆栈则允许客户侧重于开发应用,为产品注入价值,无需将精力耗费在堆栈的低层。

参考电路

1 快速轴准直透镜。 FISBA,2019年。

2JESD204接口框架。 ADI公司,2019年。

3自由软件是什么?Free Software Foundation, Inc.,2019年。

4Linux Driver Implementer的API指南。ADI公司,2019年。

5关于libiio。ADI公司,2019年。

6 PyADI-IIO:ADI Python接口,适用于配备工业I/O驱动器的硬件。”GitHub, Inc.,2020年。

Michael Hennerich和Robin Getz。 “ADI公司如何看待自由和开源软件。” 《模拟对话》, 第44卷第3期,2010年3月。

作者

István Csomortáni

István Csomortáni

István Csomortáni是ADI公司的FPGA设计工程师,负责支持基于FPGA的参考设计的设计与开发。他拥有工业自动化与信息技术学士学位及集成电路设计硕士学位。他从2012年开始进入ADI公司工作,负责为高速转换器和RF收发器提供各种系统级参考设计支持。

Dragos Bogdan

Dragos Bogdan

Dragos Bogdan目前是SDG部门的小型嵌入式软件开发团队负责人,为各种类型的平台和元件增加开源裸机和Linux支持。Dragos于2011年加入ADI公司担任软件工程师。2010年到2011年间,他在当地的Pergamon RD公司工作,从事用于打印设备的嵌入式硬件和软件的开发工作。在此之前,他曾参加National Instruments和Continental Automotive的实习生项目。他拥有克卢日-纳波卡科技大学电子学学士学位和自动化硕士学位。

Cristian Orian

Cristian Orian

Cristian Orian是ADI公司的系统设计工程师,负责评估平台的硬件开发工作。他拥有电子学博士学位。其工作领域还涉及电源设计。

Andrei Cozma

Andrei Cozma

Andrei Cozma是ADI公司工程设计经理,负责支持系统级参考设计的设计与开发。 他拥有工业自动化与信息技术学士学位及电子与电信博士学位。他参与过电机控制、工业自动化、软件定义无线电和电信等不同行业领域的项目设计与开发。