APP下载

浅议无人车探测多通道数据同步采集系统

2022-07-11杨壮涛朱纪洪刘兆沛李猛文善贤陈俊贤

中国设备工程 2022年12期
关键词:板卡激光雷达上位

杨壮涛,朱纪洪,刘兆沛,李猛,文善贤,陈俊贤

(1.广西大学机械工程学院,广西 南宁 530004;2.清华大学精密仪器系;3.清华大学计算机系,北京 100084)

机动车的需求量和购买量在不断提升,与此同时频发的交通事故严重威胁人们的生命财产安全。自动驾驶技术的实现依赖于车辆对自身及周围环境情况的采集及获取,因此实现多传感器的数据融合极其重要。各个传感器间具有统一时间基准是实现各传感器数据融合的基础。

对多个通道数据进行采集,有采用单片机、DSP等串行微处理器实现的方案,因为处理器中的程序采用串行处理机制,适用于传感器数量不多、数据量不大,同步要求不高的应用场景。基于数字电路的FPGA具有并行处理优势,文献基于FPGA对多达24路磁异常数据进行采集,但是仅保证指令同时发送而不设计时间同步机制,随着时间推移各传感器间的时间基准可能会存在较大偏差。基于FPGA结合PPS进行多传感器同步可较容易的获得较高的时间同步精度,华中科技大学的文献[1]、文献[2]及文献[3]基于PPS进行多传感器数据融合,具有较高的时间同步精度,但是基于PPS实现需保证控制电平符合激光雷达等传感器的电平需求,需进行额外的驱动电路设计及增加布线,另外因无人车车载设备集成度高,对同步信号可能产生较大电磁干扰。

为保障数据传输的实时性,本设计采用高带宽的PCIe通信实现探测板卡与上位机的通信;为实现多通道并行处理,采用基于数字电路的FPGA作为开发平台;为降低各通道间的耦合度,开发了以太网协议栈并封装为IP核;为实现多个传感器间时间同步,分析了IEEE 1588协议,并以探测节点板卡作为主节点设计了时间同步机制。

1 系统总体方案设计

采集系统采用“FPGA+CPU”的异构硬件平台,数据同步采集系统架构如图1所示。FPGA实现多传感器数据的采集,并作为时间同步主节点对多个传感器进行同步。计算机基于FPGA提交的数据绘制激光雷达点云图、完成目标探测识别及无人车路径规划等任务,并产生控制指令发送至车辆控制系统,由车辆控制系统指控执行机构完成无人车自主行驶、自主越障等任务。计算机与FPGA板卡通过PCIe接口进行通信,FPGA板卡与传感器间采用以太网实现通信。在时间同步方面,以FPGA作为时间同步主节点,基于IEEE1588协议对激光雷达进行授时,另外可基于用户配置写入协议对多个激光雷达进行配置。因FPGA板卡主要实现探测数据的同步采集,以下叙述称探测节点。

图1 多通道同步采集系统设计框架

2 探测节点硬件设计

2.1 硬件总体方案

为增加设计方案的可移植性,降低硬件成本,本方案采用“核心板+底板”的实现方式。FPGA选用Xilinx公司的XC7A200TFBG676-2,此芯片有丰富的逻辑资源,LUT资源高达133.8K个;IO口高达400个,可与大量外设进行交互。相对应的核心板选择米联客MA704A,底板设计如下,为实现与激光雷达、摄像头等多个传感器进行数据交互,采用通信速率可达1Gbps的千兆以太网接口。上位机需实时对各传感器数据进行解算,因此需采用通信速率更高的通信接口将多通道以太网数据实时上传至上位机,选用PCIe-X4接口来实现。考虑试验数据记录需要底板设计了TF卡槽,对重要的参数进行记录,以方便后续对试验结果进行整理分析。串口通信应用广泛,在通信速率要求不高的应用场景中,可满足探测节点与其他控制器的通信需求。为方便项目调试,设计了多个LED灯及GPIO口。另外,设计了JTAG程序下载接口及供电电路;在使用FPGA的MGT高速接口时,需要设计低抖动的时钟发生电路。探测节点硬件方案如图2所示。

图2 探测节点硬件方案示意图

2.2 PCIe硬件设计

PCIe总线一般用于计算机与外围设备互连,是第三代高性能IO总线,规范定义了其基本结构,包含根组件、交换器以及端节点设备。探测节点和上位机通过金手指连接,在X4模式下有4对差分信号发送管脚和4对差分信号接收管脚,为pcie_mgt_txp/n[3:0]及pcie_mgt_rxp/n[3:0]。参考时钟clk_pcie_p/n频率为100MHZ,由上位机板卡通过金手指差分时钟管脚提供。上位机主板与探测节点板卡之间需进行直流电压隔离,通过在数据发送端添加直流耦合电容的方式来实现。探测节点板卡pcie_mgt_rxp/n[3:0]的电容已经在主机板卡上添加,节点板卡只需为pcie_mgt_rxp/n[3:0]在靠近金手指处添加耦合电容即可。金手指数据传输通道与FPGA高速接口MGT相连,FPGA的GTX以Quad为单位进行划分,每个Quad包含4个lane。

2.3 以太网硬件方案

以太网MII(Medium Independent Interface, MII)接口类型主要有GMII(Gigabit Media Independent Interface, GMII)、RGMII(Reduced Gigabit Media Independent Interface)、SGMII(Serial Gigabit Media Independent Interface)、TBI(Ten Bit interface)和RTBI(Reduced Ten Bit Interface)五种。其关键参数如表1所示。

表1 以太网接口参数汇总表

首先,进行多通道数据采集需采用多个网口,需考虑节省IO资源;其次,采用SGMII接口后期可升级采用光通信,相比传统采用电压信号进行通信的方式光通信具有较强的抗电磁干扰能力,另外光通信还能够减轻设备质量,因此本文选用SGMII接口。

3 探测节点软件架构

3.1 软件总体架构

相比采用Verilog硬件描述语言进行连线的方式,探测节点软件开发在VIVADO的Block Design中完成,连线更加简洁。PCIe有两种数据传输方式,PIO及DMA。PIO(Programmed Input-Output,PIO)每一次传输都通过CPU执行IO端指令来实现。DMA(Direct Memory Access, DMA)数据传输由DMA控制器完成,几乎不占用CPU资源,相较于PIO来说具有更高的数据吞吐量。常用于端点设备中的DMA传输方式可分为总线主控式和分散聚合式,总线主控式DMA要求系统开辟物理地址连续的内存空间,且每次传输完成后均需要处理器重新进行配置,适用于少量单块数据传输。分散聚合式DMA通过描述符链表实现,将主机中分散的内存空间与描述符链表的映射关系映射到端节点设备的内存中。在多通道数据同步采集的应用场景下,且考虑后期需将摄像头数据接入多通道探测节点板卡,本文采用分散聚合式DMA进行数据传输实现上位机与探测节点板卡的数据传输,以保障数据传输速率及实时性。

以太网通信具有灵活的拓扑结构,可用于长距离传输,在音视频、雷达数据传输中广泛使用。UDP协议在设计时优先保障数据带宽需求,没有复杂的重传机制,适宜在数据采集的应用场景下使用。为保障足够的数据带宽,探测节点板卡开发千兆以太网接口,兼容百兆传输速率。

探测节点软件总体方案如图3所示,探测节点板卡实现了上位机与传感器间的高速通信。通过DMA操作实现上位机与探测节点板卡的数据传输,板卡与传感器通过以太网进行数据交互,以太网通信接口与PCIe通信接口间通过共享RAM的形式实现数据交互,通过TIME_SYN模块实现多个传感器的同步。

图3 探测节点软件架构示意图

3.2 PCIe软件架构

PCIe设备A的待发送的用户数据经过事务层、数据链路层和物理层进行逐层的数据打包,然后以串行差分信号的方式传输给设备B;设备B接收数据的过程是数据发送的逆过程,将数据逐层进行拆包解析。

PCIe通信通过分散聚合式DMA实现,通过MGT高速串行接口实现板间通信;进行DMA数据传输时,上位机可通过H2C(Host to Card)、C2H(Card to Host)通道实现对用户数据的读写,用户数据一侧支持AXI4-memory map及AXI4-Stream接口。当描述符完成或数据读写出错时,板卡以中断的形式告知上位机。AXI Interconnect IP核可以与任何AXI主设备或从设备进行连接,允许这些AXI设备在不同的时钟域,有不同的接口宽度及不同的AXI子协议类型。可通过AXI Interconnect IP核实现1对N、N对1及M对N的AXI设备间的数据交互。

XDMA核心实现通过PCIe接口实现板间通信,AXI Interconnect核心实现AXI设备间的数据交互,AXI BRAM Controller可通过AXI接口实现对RAM的读写控制。设计方案中4块RAM用于缓存4个传感器采集到板卡的数据,另外4块RAM用于缓存上位机发送至传感器的控制指令。时钟域划分上,所有的AXI Interconnect核心以及RAM读写时钟均采用XDMA核心输出的axi_aclk。

3.3 以太网软件架构

主干网FPGA的软件设计以以太网协议为依据进行。以太网帧格式中前导码占8字节,7个连续的8’h55用于发送端及接收端设备数据的同步,1个8’hd5表示一个帧的开始。以太网帧首部包含各位8字节的目的MAC地址及源MAC地址,MAC地址是网卡中固化的唯一物理地址,占用2字节的类型用于标记上层协议的类型;FCS为帧校验序列,以太网协议采用32bits的CRC校验;包数据对于MAC层处理模块而言是数据,其包含上层协议的首部及校验,如IP首部及UDP首部。

用户数据传输过程如图4所示,数据发送时,在用户自定义协议层添加用户自定义头部及CRC-32/MPEG-2校验;“自上而下”依次添加UDP头部、IP头部及以太网头部以及添加前导码,整个过程称作封包。接收数据是“自下而上”的过程,MAC层解析以太网头部,并判断数据帧目的MAC地址是否为本地MAC地址,并依据包类型交由不同模块进行处理;由网络层模块、传输层模块、用户自定义协议模块依次对相应首部进行解析判断,将数据依次向上层进行提交,若所有判断条件均满足则将数据向应用层提交,若有条件不满足则将数据丢弃,整个过程称为解包。

依据以太网用户数据传输过程,设计的探测节点主干网的软件架构如图5所示。1G/2.5G Ethernet PCS/PMA or SGMII IP核与MAC层通过GMII接口实现数据交互,依据参考模型进行FPGA软件模块设计,“自下而上”依次为MAC层处理模块、LLC子层处理模块、IP层处理、UDP层处理模块及用户自定义层处理模块,另还开发了ARP数据处理模块以及ICMP处理模块。ARP(Address Resolution Protocol)地址解析协议能根据IP地址获取物理地址(即MAC地址)。ICMP包含在IP数据报中,可用来确认网络是否连通、主机是否可达,在系统开发调试中起不容忽视的作用。物理层单字节的编码解码通过1G/2.5G Ethernet PCS/PMA or SGMII IP核完成;MAC层处理模块完成MAC地址的封装及判断,实现点对点通信;IP层处理模块依据IP协议完成IP数据包的生成及解析,实现局域网间设备互联;UDP层处理模块区分不同的应用进程;另还根据需要自定义用户层协议,以实现时间触发通信机制,并在用户层增加循环冗余校验机制。下面将对数据包解析过程进行说明,数据包封装是数据包解析的逆过程。

图5 探测节点主干网软件架构

4 时间同步设计

激光雷达的同步可通过PPS脉冲同步的方法实现,也可基于用户配置写入协议采用IEEE1588时间同步方法实现。激光雷达可采用PPS脉冲同步方法对传感器进行授时,GPS模块连续向设备发送PPS同步脉冲信号以及GPRMC数据。

文献[11]及文献基于PPS脉冲实现多传感器数据同步,采用此方法可以获得较高的时间同步精度,但是因FPGA引脚电压及电流无法满足激光雷达的电平需求,需另外设计驱动芯片,增加了设计的复杂度。另外,需要额外的使用IO口来实现多激光雷达同步,会增加车辆布线复杂度。

IEEE1588中存在主时间、从时间以及中间节点三部分,各部分通过网络连接彼此形成一个主从同步系统。基于IEEE1588协议将FPGA作为时间同步主节点,FPGA中TIME_SYN模块产生时间戳的低字节段,发送控制模块将上位机产生的时间戳的高字节结合起来完成时间同步包的组装;另外上位机还可根据用户配置协议将配置数据写入探测节点缓存指令的RAM中,通过全双工以太网完成对激光雷达的配置。

5 测试

探测节点板卡通过以太网接口获取激光雷达数据,将数据缓存在RAM中,上位机通过对帧计数的监测判断数据是否更新,监测到数据更新后,上位机获取数据进行运算及处理,图6为上位机获取激光雷达数据后绘制的激光雷达点云图。

图6 上位机激光雷达点云图

基于IEEE1588协议以探测节点作为时间同步主节点对多个激光雷达进行授时。激光雷达的控制器不可修改,故通过主节点获取的激光雷达的时间戳测试时间同步精度。对上位机获取的时间戳数据进行观察,在同一时刻通过PCIe读取的多个通道时间差不会超过1s的前提下。在FPGA自定的以太网IP核中加入测试代码,通过以太网获取激光雷达时间戳后,当时间戳大于指定的毫秒、微妙计数器值则使触发器中的测试信号电平翻转,将各通道的测试信号连接到Integrated Logic Analyzer IP核,通过测试翻转信号的相位差可得到时间同步精度。图7为VIVADO的ILA时间同步精度测试截图,经多次测试时间同步精度稳定在微妙级,提高激光雷达数据上传频率可获得更精确的测量结果。

图7 时间同步精度测试图

6 结语

在“CPU+FPGA”硬件架构下,完成了自定义IP核的开发,FPGA能够将以太网口采集的传感器数据通过PCIe接口送至上位机,上位机通过DMA操作能将数据配置数据通过以太网口实现传感器配置。基于IEEE 1588协议并以FPGA板卡作为时间同步主节点,对多传感器进行同步取得较好的时间同步效果,为多传感器融合奠定了基础。

猜你喜欢

板卡激光雷达上位
法雷奥第二代SCALA?激光雷达
基于激光雷达夜间观测提取重力波方法的定量比较
HCM3000板卡固件智能化下载系统设计与实现
RTX系统下并行I/O卡驱动程序的开发
基于激光雷达的多旋翼无人机室内定位与避障研究
特斯拉 风云之老阿姨上位
Velodyne激光雷达宣布将GaN技术用于小型化低成本固态激光雷达传感器的新设计
基于组态王软件和泓格PIO-D64 板卡的流水灯控制
基于ZigBee和VC上位机的教室智能监测管理系统
基于VC的PLC数据采集管理系统