基于FPGA的激光雷达数据采集卡设计
2022-08-22曹也程亮亮杨昊方志远李路邓旭邢昆明王邦新谢晨波
曹也,程亮亮,杨昊,方志远,李路,邓旭,邢昆明,王邦新,谢晨波∗
(1中国科学院合肥物质科学研究院安徽光学精密机械研究所大气光学重点实验室,安徽 合肥 230031;2中国科学技术大学,安徽 合肥 230026;3先进激光技术安徽省实验室,安徽 合肥 230037)
0 引言
气溶胶、二氧化碳、臭氧等大气参数在时间和空间上的分布和变化会对气候环境造成重要的影响。激光雷达作为大气探测的有效手段之一,因其具有灵敏度高、时空分辨率高、抗干扰能力强等特点,被广泛应用于大气参数的测量[1,2]。激光雷达的信号采集单元主要包括光电转换单元和数据采集单元。目前,激光雷达的光电转换单元通常采用光电倍增管(PMT)外加可调高压电源的方式进行光电信号转换,存在操作不方便、调节精度低等问题[3−5]。而数据采集单元(DAQ)通常采用PCI/PCIe接口的高速数据采集卡方案,需要插入工控机的PCI/PCIe插槽中,并配以驱动软件进行数据采集,存在受空间约束大、驱动兼容性要求高的问题[6,7]。激光雷达逐渐向小型化、轻量化的趋势发展,因此需要对探测、采集系统进行集成优化设计。
鉴于上述问题,本文基于现场可编程门阵列(FPGA)设计了一种专用于激光雷达的数据采集卡DAQ,集成探测和采集功能于一体,其中光电转换单元选用低纹波隔离电源独立供电,配以高精度数模转换器(DAC)驱动;数据采集单元基于千兆以太网进行数据传输。硬件设计中考虑采用同一类型封装的模数转换器(ADC),包含20/40/65/80 MSPS等不同采样率,在硬件和FPGA逻辑设计只需进行极少修改的情况下,就可以满足激光雷达对不同采样速率的需求,增加了数据采集卡DAQ在激光雷达系统中应用的快速适配性。对比验证测试结果表明了所设计基于FPGA的激光雷达数据采集卡功能的正确性。
1 激光雷达系统结构
激光雷达系统包括激光发射单元、光学接收单元、探测采集单元以及上位机控制单元。图1(a)为激光雷达系统组成的结构图,图1(b)为米散射激光雷达实物图。
图1 (a)激光雷达系统组成的结构图;(b)米散射激光雷达实物图Fig.1 (a)Structure diagram of lidar system composition;(b)Picture of Mie scattering lidar
激光发射单元由Nd:YAG激光器、反射镜、3倍扩束镜、电动调整架(New Focus 8822-AC)等组成,其中,激光波长为532 nm,重复频率为20 Hz;光学接收单元由望远镜和后继光学单元等组成,其中望远镜为直径200 mm、接收视场1 mrad的Cassegrain式望远镜,后继光学单元由窄带滤光片、全反镜等组成;探测采集单元由PMT(H10720-20)和数据采集卡(PCI 9826)组成;上位机控制单元由驱动程序、上位机控制程序以及工控机组成。激光雷达从激光发射单元发射固定重复频率和能量的激光脉冲,在大气传输的过程中会受到衰减和散射等,反射回来的回波信号光会被望远镜接收,通过准直镜、窄带滤光片(FWHM:1 nm)以后被PMT接收,经光电转换后被数据采集系统采集并传输到上位机[8−10]。激光雷达主要系统参数如表1所示。
表1 激光雷达系统主要参数Table 1 Main parameters of lidar system
基于FPGA的激光雷达数据采集卡包括触发单元、回波信号采集单元、PMT供电和增益调节单元、上位机控制单元。图2为基于FPGA的激光雷达数据采集卡的整体结构图。开始采集之前,上位机会进行自检,包括激光器串口通讯、以太网通讯功能等。如果状态正常则表示DAQ可以进行探测和采集,此时上位机通过RS232串口使激光器启动。激光器发出激光脉冲信号,同时产生触发脉冲信号,该触发信号会经过电平转换电路传递给FPGA主控。FPGA协调上位机采集命令和触发信号,内部通过握手协议与有限状态机有序配合,从而控制整个采集链路有序工作。上位机一方面通过以太网控制采集卡的状态并获取数据,另一方面通过串口调节PMT的增益。
图2 数据采集卡结构图Fig.2 Structure diagram of data acquisition card
2 设计与实现
可编程逻辑器件(PLD)是电路控制的核心。FPGA内部集成丰富的逻辑资源、嵌入式RAM和DSP、灵活可编程的IO端口等,因其具有高度的灵活性和强大的并行处理能力,被广泛应用于数据采集、视频传输、通信、图像处理、深度学习等领域[11,12]。下面将以FPGA为主控、数据采集需求为设计目标,在Cadence软件中完成硬件电路及高速PCB的设计,在Xilinx Vivado软件中完成FPGA逻辑程序开发。
2.1 硬件电路设计
基于FPGA的激光雷达数据采集卡以FPGA作为主控芯片,DAC用于远程、高精度调节PMT增益,ADC用于高速、高精度采集回波信号。整个采集卡电路主要分为六个模块,即模拟前端及采样模块、触发模块、FPGA主控及DDR存储模块、以太网传输模块、PMT增益调节模块和电源供电模块。图3为激光雷达探测、采集系统一体化硬件方案示意图,下面以模拟前端及采样模块和PMT增益调节模块为例进行说明。
图3 数据采集卡硬件方案示意图Fig.3 Schematic diagram of hardwareschemeof dataacquisition card
2.1.1 模拟前端及采样模块
图4为模拟前端及采样模块原理图。模拟前端调理电路将PMT输出信号进行转换和滤波,主要包括IV转换和隔离(A)、直流偏置(B)、低通滤波(C)以及单端转差分(D)等操作,从而满足模数转换器ADC(E)的采样输入需求。
图4 模拟前端及采样电路原理图Fig.4 Schematic diagram of analog front end and sampling circuit
PMT输出为电流信号,需要先通过电阻R1和R2转换为电压信号,并进行分压以使输出电压在一定范围内,再通过电压跟随器对前后级信号进行隔离。电压跟随器的输出电压近似等于输入电压,具有高输入阻抗、低输出阻抗的特点,常用作中间级,起到隔离作用。
激光雷达的回波信号为负值,可以通过调节直流偏置电路的Vref将前级输入的电压转换到−1∼+1 V的范围内,以匹配ADC的输入范围并有效利用ADC的采样精度。
滤波电路主要对前端信号中的高频噪声进行滤波,其采用两级二阶SK低通滤波器组成的四阶巴特沃兹滤波器,并通过ADIPrecision Studio软件进行辅助设计,−3 dB带宽为10 MHz,阻带截止频率为40 MHz。
AD9649BCPZ-20是一款单通道、14位分辨率、20 MSPS采样率的模数转换器,采用1.8 V电源供电,芯片内部采用多级差分流水线架构,内置高性能采样保持电路、片内基准电压源以及输出纠错逻辑。AD9649BCPZ-20的数据输入端有单端输入和差分输入两种选择。若采用单端输入,由于输入共模电压摆幅过大,会降低无杂散动态范围等性能,因此本设计采用差分输入的方式,通过AD8138将滤波后的单端信号转换成差分信号,并且输入的共模电压为中间电源(VCM=AVDD/2),采用外部基准电压模式(影响ADC增益精度和热漂移特性),尽可能地提高ADC芯片采样性能。
2.1.2 PMT增益调节模块
H10720-20型PMT模块内部集成了金属封装型光电倍增管和高压电源,具有高增益、宽动态范围、高速率响应以及小巧易用等特点。该PMT的增益电压调节输入范围为+0.5∼+1.1 V。图5为基于AD9767的PMT增益调节模块电路图,包括数模转换器DAC(E)、电流转电压(F)以及电压放大(G)。AD9767是一款高速、双通道、14位的CMOSDAC,内部集成两个高品质TxDAC+内核、一个基准电压源和数字接口电路,支持最高125 MSPS的更新速率。DAC输出信号为差分电流IOUTA和IOUTB(补码形式),通过电流转电压电路,再通过电压放大电路放大信号,以满足PMT增益调节的电压输入要求。
图5 PMT增益调节模块电路图Fig.5 Circuit diagram of PMT gain adjustment module
在增益调节过程中通常采用上位机对DAC进行驱动,串口通信设备接收到上位机发送的数据指令,将数据传输到FPGA通信处理模块。FPGA接收协议数据,快速响应后发送给DAC芯片,通过输出有效范围内的指定电压幅值达到PMT增益调节的目的。
2.2 FPGA逻辑设计
激光雷达数据采集卡的FPGA逻辑设计包括ADC采样、FIFO读写控制、AXI配合MIG IP读写DDR、Ethernet通信、DAC驱动等部分。图6为激光雷达数据采集系统逻辑结构图,整个系统的逻辑设计分为两部分:一部分为PMT增益调节单元,采用UART通讯、DAC、线性调整电路来实现探测器增益的高精度、便捷调节;另一部分为数据采集传输单元。逻辑中各模块通过握手协议和有限状态机有序配合完成数据链路构建和数据传递。激光雷达的数据采集传输部分为主要内容,将从以下两点进行详细说明:1)数据链路的构建和带宽匹配;2)实时数据流控制及以太网传输。
图6 激光雷达数据采集系统逻辑结构图Fig.6 Logical structure diagram of lidar data acquisition system
2.2.1 数据链路构建和数据传递
激光雷达的数据链路依次包括:ADC、WRITE FIFO、AXIBURST WRITE、DDR、AXI BURST READ、READ FIFO、ENTERNET等部分,并按照ADC→WRITEFIFO→AXIBURSTWRITE→DDR→AXIBURST READ→READ FIFO→ENTERNET进行构建和传递。
图7为数据传递的带宽匹配图,下面对其进行说明:
图7 数据传递的带宽匹配图Fig.7 Bandwidth matching graph for data transmission
1)FIFO读写模块
FIFO读写模块具有数据缓冲、跨时域隔离和位宽转换等功能。具体地,ADC采集的数据经变换后位宽为16 bit,时钟为20 MHz;而AXIMaster的位宽为64 bit,时钟为100 MHz。FIFO的输入和输出带宽满足20×16<100×64,符合要求。同时,这部分逻辑支持多种采样率,比如采用40、65或80 MSPS,输入和输出带宽依旧满足80×16<100×64。
2)AXIMaster通过MIGIP读写DDR
采用两片美光的MT41J256M16-xx 512 MB DDR3组成位宽为32 bit、容量为1 GB的高速缓存空间。Xilinx的MIGIP核时钟为200 MHz,User Interface接口的时钟为100 MHz,位宽为64 bit,而Physical Interface接口的时钟为400 MHz,位宽为32 bit。考虑到DDR3为双边沿数据操作,因为输入和输出带宽满足100×64<400×2×32,符合要求。
3)千兆以太网传输
考虑到上述因素以及数据传输量较大,采用千兆以太网作为数据传输方式。输入和输出带宽出现100×64>125×16的情况也是可以满足数据的高速和稳定传输的,这是由于板载1 GB的DDR3高速缓冲空间用于缓存ADC突发写入的数据,AXIMaster判断READ FIFO数据深度是否满足一次突发长度要求(wrusedw+BURST−SIZE(64) 2.2.2 实时数据流控制及以太网传输 由于激光雷达对数据采集的实时性要求较高,如何实现整个数据采集系统高速、稳定的采集和传输数据,将直接影响上位机读取回波信号原始值的准确性。激光雷达数据采集功能是通过握手协议和有限状态机进行逻辑控制的,逻辑中的各个模块之间(ADC采样、FIFO读写控制、AXIMaster配合MIG IP读写DDR、Ethernet通信、DAC驱动等部分)采用全互锁方式的握手协议来进行请求和应答响应。逻辑中的各个模块内部采用有限状态机来控制时序状态转移和实时数据流。 如图8所示,全握手协议(控制、地址、数据)主要分为如下三个步骤:1)主设备Master发送请求REQ,等待从设备Slave发送应答ACK后,才撤销请求REQ;2)从设备Slave发送应答ACK,等待主设备Master撤销请求REQ后,才撤销应答ACK;3)主设备Master和从设备Slave相互握手,完成请求和应答响应,从而完成数据的传输。 图8 全握手协议时序图Fig.8 Sequence diagram of full handshake protocol 逻辑中的各个模块内部,包括ADC−SAMPLE、WRITEFIFO、AXIMaster、READFIFO、ENTERNET等部分,均采用有限状态机来控制时序状态的转移,图9为WRITEFIFO和READ FIFO的时序状态转移图。下面以WRITEFIFO为例进行详细说明。 图9 (a)WRITEFIFO和(b)READ FIFO时序状态转移图Fig.9 Sequential state transition diagram of(a)WRITEFIFOand(b)READ FIFO 1)S−IDLE:不断判断ADC写请求信号write−req−d2是否为高电平,若被拉高,进入S−ACK响应状态。 2)S−ACK:此时写请求应答信号write−req−ack被置高,与此同时清零FIFO、锁存数据长度。等待ADC写请求信号write−req−d2被置低,此时,写请求应答信号write−req−ack置低,ADC−SAMPLE的write−req−d2写请求信号和FIFO读写控制模块的写请求应答信号write−req−ack完成握手,反馈拉低。从而进入CHECK−FIFO状态。 3)S−CHECK−FIFO:判断WRITE FIFO此时已经存储数据的深度,是否满足一次突发的数据深度rdusedw>=BURST−SIZE(64),若是则把BURST−SIZE=64锁存到写突发长度wr−burst−len,同时拉高写突发请求wr−burst−req。请求AXIMaster对WRITEFIFO进行读操作,把数据经MIGIP写入DDR中。 4)S−W−BURST:判断上一次突发是否完成信号。若wr−burst−f inish被置高,表示此次突发已经完成,拉低突发写请求信号wr−burst−req。写突发地址和计数器分别为wr−burst−addr<=wr−burst−addr+64、write−cnt<=write−cnt+64。并且状态机跳转到下一个状态S−W−BURST−END。若此时ADC写请求信号write−req−d2被置高,跳转到S−ACK状态。 5)S−W−BURST−END:判断计数器write−cnt是否小于初始设定值write−len−latch。若write−cnt 6)S−END:write−f insih被置高,并且跳转到S−IDLE初始状态。 以太网传输逻辑部分:FPGA通过RGMII和GPHY芯片与上位机进行通信,完成数据采集链路控制以及所采集数据传输等功能。图10为以太网传输逻辑的结构图。以太网传输功能的逻辑包括MAC层的发送和接收、IP层的发送和接收、UDP层的发送和接收、ARP层的发送和接收、GMIITO RGMII以及以太网时序逻辑控制等模块,实现了ARP、UDP、PING等功能,并通过Wireshark抓包软件测速。首先将Wireshark软件设置为经1000字节以后停止捕获,查找5000个数据包对应的时间Time为0.043925 s。数据包从00→f f→···→e7,总共为1000个有效数据,可以得到以太网最大传输速度为1000×8×5000/0.043925=910.64314 Mbps。 图10 以太网传输逻辑结构图Fig.10 Structure diagram of Ethernet transmission logic 为了验证所设计激光雷达数据采集卡的性能,首先对其基本性能进行测试,包括−3 dB带宽、信噪比SNR、ADC有效位数ENOB等;其次将所设计的数据采集卡与PCI 9826连接到同一台米散射扫描激光雷达上进行测试,对DAQ与PCI 9826两者采集的回波信号进行反演,比较并分析了此回波信号对应消光系数的差异。 采用信号发生器对数据采集卡进行正弦信号幅频特性测试(需要调节偏置电压),其中输入幅值Vi={0.5 V,1.0 V,5.0 V},频率Fk={0.1MHz,0.2 MHz,···,1.0 MHz,2.0MHz,···,10.0MHz,20.0 MHz,30.0 MHz}。先设定信号发生器的频率,若Fk=0.1 MHz,分别将Vi选取为0.5、1.0、5.0 V,以此类推,并分别记录信号发生器输出信号的幅值和数据采集卡采集到信号的幅值,计算并绘制带宽测试图,如图11所示。测试表明所设计数据采集卡的−3 dB带宽可达9.5 MHz。 图11 带宽测试Fig.11 Bandwidth test 调节信号发生器使其输出正弦波,峰峰值电压(VPP)为2 V,频率依次为0.1、1、5、10 MHz,记录数据采集卡采集到的波形数据,经过FFT变换获得含有基频和谐波信息的频谱,根据 分别得到上述频率下的信噪比RSN,其中用于计算RSN的噪声值是分布于整个奈奎斯特带宽的噪声(即直流DC到Fs/2),表2为几种典型输入频率下对应的RSN。 表2 几种典型输入频率下对应的信噪比Table 2 Signal to noise ratio corresponding to several typical input frequencies ADC有效位数BENO与RSN满足 可以估算出数据采集卡的ADC实际采集有效位数约为11.2 bit。 图12为数据采集卡的原型验证实验平台。在合肥市郊区的同一地点和时间(时间间隔约5 min),用所设计的数据采集卡DAQ与PCI 9826对同一台米散射扫描激光雷达回波信号进行采集。激光雷达系统的详细参数见表1,激光器重复频率为20 Hz,采集4096个数据点,对应点重复5000次累加求平均,得到DAQ与PCI 9826两者所采集的回波信号,并利用Fernald方法反演大气气溶胶的消光系数。 图12 数据采集卡的原型验证实验平台Fig.12 Prototype verification experiment platform of DAQ 图13为两组不同时刻下DAQ与PCI 9826所对应回波信号反演的消光系数图。由图13(a)可见,边界层大约在高度1.7 km处,气溶胶消光系数最大,气溶胶在整层分布最多,在边界层附近气溶胶的消光系数会突然衰减。在1∼4 km的探测高度范围内两者相对误差不超过25%。由于4.5∼5.5 km高度范围内有云,气溶胶的消光系数陡增,两者趋势一致。在6 km以上相对误差较大,主要是由于所设计的DAQ与PCI 9826相比,采样精度和信噪比还存在一定的差距。由图13(b)可见,边界层大约在高度1.8 km处,气溶胶消光系数最大,气溶胶在整层分布最多,在边界层附近气溶胶的消光系数会突然衰减。在1∼4 km的探测高度范围内,局部相对误差不超过25%,最大相对误差不超过55%。这是由于随着高度的增加,气溶胶含量少,信噪比变差,使得两者反演精度相对误差变大。 图13 消光系数对比图。(a)对比测试1;(b)对比测试2Fig.13 Comparison of extinction coefficient.(a)Contrast test 1;(b)Contrast test 2 在气溶胶分布较少的高度区间,气溶胶消光系数受到DAQ采集精度和信噪比等因素影响较大,但整体上看,两者消光系数关联性较强、一致性良好,表明所设计激光雷达数据采集卡DAQ功能的正确性。 基于FPGA设计了一款专用于激光雷达的数据采集卡。采集卡采用千兆以太网传输,不需要插入工控机中,避免了通用型采集卡存在受空间约束大、驱动兼容性要求高、功能冗余等问题。整个设计将探测器增益调节和回波信号采集功能融为一体,提高了系统的集成度,同时PMT增益调节采用电控方式,调节精度高,操作便捷。对DAQ的基本性能参数进行测试,得到DAQ的信噪比约为69 dB,−3 dB带宽可达9.5 MHz。在激光雷达上,通过与PCI 9826进行对比测试,两者消光系数一致性良好,表明所设计激光雷达数据采集卡DAQ功能的正确性。由于所选用的ADC采样精度为14 bit,后期可以进一步升级到16 bit以提高DAQ的采样精度,并且可以增加光子计数,从而提高数据采集卡的动态测量范围。3 测试与分析
3.1 数据采集卡的基本性能测试
3.2 激光雷达回波信号采集对比测试
4 结论