刘秉刚,常建华,b,徐 帆,李红旭,朱玲嬿,豆晓雷
(南京信息工程大学,a.江苏省大气环境与装备技术协同创新中心;b.江苏省气象探测与信息处理重点实验室,南京 210044)
激光雷达是随着激光器和雷达技术的发展而产生的一种新型主动式光学遥感技术,具有测量范围广、时空分辨率高和抗干扰能力强等特点,广泛应用于航空气象领域,如大气颗粒物、云层的探测[1]。激光雷达首先探测激光与大气分子和气溶胶粒子等介质相互作用产生的后向散射光信号,进而通过求解激光雷达方程,反演得到大气成分参数。与传统的微波雷达相比,激光的波长更短,方向性更好,量子能量更大,更适合探测和分析大气中微小粒子的相关特性[2-4]。
在常见的激光雷达数据采集系统中,多利用国外通用的数据采集卡来实现[5-7]:一方面,由于核心技术的封锁,底层数据不对用户开放,无法依据采集需求的变化及时修改和升级软硬件设计;另一方面,此类数据采集卡价格十分昂贵,后期维护不方便。面对我国航空领域对于激光雷达的强烈应用需求,有必要推出具有自主知识产权的激光雷达系统。激光雷达数据采集方案可采用模拟方式或单光子计数方式。模拟方式采用高速模数转换器件获取回波信号,适合测量信号强度大、目标距离近的目标物。但是,激光雷达后向散射信号的强度随距离的平方迅速衰减,往往探测到的回波信号非常微弱[8-9]。因此,采集方案更适合选用高增益、响应快、宽频带的单光子计数方式[10-11]。为保证激光雷达数据采集的实时性和准确性,采用现场可编程逻辑门阵列(FPGA)作为主控芯片。相比于传统的单片机和DSP器件,由于单片机的时钟频率较低,DSP的数据处理部分采用软件来实现,无法满足激光雷达对高实时性的要求。FPGA的时钟频率非常高,内部延迟低,控制逻辑均由硬件实现,具有高度灵活可配置性,利用强大的硬件描述语言和仿真工具,方便对结果进行验证,可大幅改进系统的丈量精度和采集速度,芯片内剩余的逻辑资源根据采集需求的变化用于及时对系统升级改造。
本文针对激光雷达回波信号强度弱、数据量大、实时性高等特点,设计了基于FPGA的激光雷达数据采集系统。系统围绕光子计数器展开,通过两个计数器的乒乓操作实现无死区时间的信号脉冲计数,将计数累加的结果做实时缓存处理,经通用串行总线(USB)接口传送到上位机做进一步数据分析。本方案具有结构简单、时间分辨率高、全数字化等优点,此外,可依据数据采集需求的变化及时修改软硬件设计,满足激光雷达在不同应用场合的探测要求。
激光雷达作为大气探测的主流技术手段,主要由激光发射系统、光电接收系统、数据采集系统以及数据反演等部分组成,其系统结构如图1所示。
图1 激光雷达的结构Fig.1 Diagram of the lidar structure
脉冲激光器产生固定频率激光信号,利用耦合器将空间光耦合进多芯Y型光纤,采用望远镜实现对激光的发射以及回波信号光的接收,利用收发同轴结构解决了视场重叠因子的校正问题。回波信号经光纤传输后由窄带滤光片实现背景噪声滤除,进而由光电探测器进行光电转换,之后进行放大、滤波处理。最终,回波信号采集系统对信号进行高速计数累加,并将累加的结果缓存后传输到上位机进行输出反演处理。
激光雷达回波信号的动态范围大、强度随距离平方快速衰减,当探测距离较大时,回波信号极其微弱,在光强非常弱的情况下,把光当作模拟量来探测是极其困难的[12]。为进一步提高雷达的探测精度,本文采用单光子计数方式来实现激光雷达的数据采集。经实验观测发现,每次激光脉冲发射后,往往在接收端还收不到一个光子,故让激光器以固定的重复频率连续发出激光脉冲,并在接收端采用累加取平均的方式,以减小计数误差,提高探测精度。
数据采集系统需要完成的工作包括信号采集、数据缓存和数据传输三部分,是激光雷达自动化控制的中心,同时也是后续数据处理和物理反演的基础。本文采用高精度的单光子计数方式实现信号采集,需要大幅度增强原微弱信号的强度,而光电倍增管(PMT)作为一种真空光电激发器件很好地满足了此要求。PMT利用光电倍增系统使光电子二次激发,输出信号强度可达到原输入信号的上百倍。PMT的结构如图2所示,主要由光入射窗、光阴极、电子光学系统、倍增极和阳极等部分组成。入射光经入射窗射入光阴极,光阴极向真空中激发出光电子,这些光电子按聚焦极电场进入倍增系统,通过进一步的二次发射得到倍增放大,放大后的电子被阳极收集作为信号输出[13-14]。内部采用二次激发倍增系统,在可见光光谱范围内有很高的增益和较低的噪声,非常适合激光雷达的微弱信号探测。
图2 光电倍增管的结构框图Fig.2 Diagram of PMT
由于回波信号的动态范围大,单位时间内回波信号微弱,探测器的选择就显得尤为重要。本文选用日本Hamamatsu公司的H7360- 02光电探测器,响应波长范围在300~650 nm,典型探测光功率为2×10-14~2×10-15W,最大计数率为6×106次/s,供电电源为DC-5V。图3为探测器的结构框图,内部集成了PMT、脉冲放大器、鉴别器、脉冲整形器和供电系统等,能够满足从紫外到可见光波段的信号探测。探测器接收回波信号,实现光子信号的倍增、光电转换、信号放大和脉冲鉴别等功能,最终输出脉冲宽度为9 ns的TTL型脉冲,光子计数器对其输出的脉冲进行计数累加。
图3 光电探测器的结构框图Fig.3 Diagram of photoelectric detector
采集系统中,电子器件内部的载流子会在工作时产生随机热噪声,导致回波信号中包含大量热噪声,这些热噪声严重影响系统的测量精度。累加平均法是减少热噪声的高效方法,通过对各回波信号中相同采样点处的信号累加平均实现。利用噪声的随机性和信号的稳定性,在经过多次累加求平均后可消除信号中夹杂的高斯白噪声,从而提高信噪比
RS,N,N=10·lgN+RS,N
(1)
式中,RS,N,N为累加后的信噪比;RS,N为单个脉冲检测的功率信噪比,经过N次不同时刻采样的累加平均可以使信噪比增加10·lgN[15-16]。信号累加的次数越多,存储的数据量越大,信噪比改善效果越好。当存储器件为16位时,可存储的数据量最大为65 535,此时改善后的信噪比可达48 dB,且可充分利用硬件资源。
本文基于具有快速处理复杂数据能力的FPGA芯片,设计了激光雷达高速数据采集系统。系统结构如图4所示,系统采用自顶向下的设计方法,以激光器发出的触发信号作为时序参考,在时序电路的控制下,协调FPGA芯片、同步动态随机存储器(SDRAM)芯片、USB芯片的工作,对光电探测器输出的脉冲信号进行高速计数采集,将采集的结果实时缓存到SDRAM中,待采集结束后将缓存数据通过USB接口传输到上位机。
图4 数据采集系统结构框图Fig.4 Diagram of data acquisition system
计数采集围绕光子计数器展开,信号采集的输入为光电探测器输出的脉冲信号和外部触发信号。其中脉冲信号是TTL型电平脉冲,每个脉冲对应一个光子。激光器发出外部触发信号,同为TTL型电平信号,作为系统门控电路的时序参考。系统将采集的结果通过先入先出队列(FIFO)实时缓存到SDRAM中。
为尽可能减少计数的死区时间,利用每个激光脉冲的回波信号相互独立的特征,采用两个计数器通过乒乓操作依次交替工作实现高速计数。如图5所示,由触发器控制的时间开关,在循环计数时,一个计数器接收数据并计数,另一个计数器则将先前计数的结果缓存发送到SDRAM控制器,通过两个计数器的并行操作实现对光电探测器输出信号的无死区时间计数。
图5 计数器的工作时序图Fig.5 Time sequence diagram of counters
在激光雷达信号采集系统中,采集结果的数据量大且实时性要求高,需要速度快、容量大的存储器件对数据高速缓存。SDRAM具有容量大、体积小、控制便捷、读写速度快等优点,本文选用美国Micron公司的MT48LC32M16A2型号的SDRAM芯片,其存储容量为256 Mibit(4 Mi×4 Banks×16 bit),满足雷达信号对存储器件的要求。
本文设计的基于FPGA的SDRAM控制器,配置全页突发读写以及自动刷新操作模式,运用两个异步FIFO与用户逻辑进行交互,实现数据的高效传输。图6为SDRAM控制器系统框图,主要包括上电初始化、刷新操作、读写操作等,各个模块利用独立有限状态机的形式实现。在系统工作时,控制器配合两个异步FIFO对采集的数据进行操作:一方面存储计数的结果;另一方面待上位机发出读数据请求且一次测量完成时,将保存的数据通过USB接口传输到上位机。
图6 SDRAM控制器系统框图Fig.6 Diagram of SDRAM controller
为了将采集到的激光雷达信号高速传输到上位机,数据传输接口采用USB接口。本文选用美国Cypress公司的CY7C68013A芯片,芯片内部集成USB2.0收发器、增强型8051内核、串行接口引擎以及可编程外部接口等。芯片采用FX2体系结构,FX2将USB端点FIFO和外设FIFO合二为一,大幅度提高了读取外界数据的速度。
USB作为一种典型的主从设备,在读写过程中,首先由上位机的应用程序发起操作请求,通过驱动程序接口调用驱动程序实现相应操作,驱动程序控制USB控制器向CY7C68013A发送数据,CY7C68013A的串行接口引擎对数据进行解析,然后根据内部的固件程序不断向上位机传输数据。
针对激光雷达数据量大、实时要求高等特点,采用速度快、密度高、功耗低及可重构性强的FPGA作为主控制芯片,实现对整个系统的逻辑控制。选用美国Altera公司生产的Cyclone Ⅳ系列的EP4CE10F17C8芯片,该芯片采用60 nm工艺技术,在芯片精度和运行速度上都有较好的表现,最高工作频率可达275 MHz,拥有丰富的逻辑单元和内部嵌入式存储器和乘法器,提供10 320个逻辑单元、793个寄存器单元、2个通用锁相环(PLL)以及179个用户I/O接口等资源供用户使用。采用硬件描述语言进行设计实现,使得电路设计更加灵活、便捷,产品的开发周期和成本得到大幅度缩减。
利用Quartus Prime软件对数据采集的逻辑设计进行编译后,得到逻辑性能和资源利用情况如表1所示。
表1 逻辑性能和资源利用情况
系统总共消耗了1685个逻辑单元,占总逻辑单元的10%,其中,组合逻辑与时序逻辑的比例为4:3,使用了85个用户引脚,1个PLL。可以看出,系统还有大量的资源没有使用,剩余资源可以在系统进行改进和升级时得到充分使用。
为验证采集系统时序的正确性,在软件环境下,对计数器设计进行仿真操作,验证电路的行为和设计意图的一致性。仿真结果如图7所示。
图7 采集电路的时序图Fig.7 Time sequence diagram of acquisition circuit
从图中可以看出,在门控电路的控制下,两个光子计数器交替工作,并将计数结果不断地存入FIFO中。当门控电路Gate_Control为高时,计数器A开始工作,每次脉冲信号输入,计数器A便进行计数累加,当Write_To_Fifo为低时,从FIFO中读取数据。检测到Add_En为高时,将计数结果与读取的结果相累加,并将累加结果再次写入FIFO中。最后,当CounterA_Empty信号到来时,将计数器A清零并准备下一次计数,计数器B进行类似的操作,依次循环交替操作。仿真结果表明,数据采集系统能够正确地实现计数和缓存功能。
对所设计的激光雷达数据采集系统的采集效果进行实验测试,将采集系统接入米散射微脉冲激光雷达系统进行实验观测分析,激光雷达的系统参数如表2所示。为了验证采集系统的光子计数和数据缓存效果,通过多次测量对结果进行比较分析。
表2 米散射微脉冲激光雷达系统参数
观察发现,消光系数强度具有先快速增强,到达最高点后再平滑衰落的特点,符合大气后向散射信号功率随距离的变化快速衰减的特征。为验证采集系统的准确性和稳定性,选取具有代表性且较为平缓的2.5~6 km 高度处的消光系数进行对比,本采集系统相对于光子计数器的均方误差为8%,与商用光子计数器测量的结果相比具有良好的一致性,可以很好地实现高速数据采集、数据缓存和数据传输等各项功能。
针对激光雷达回波信号采集的特殊要求,提出了一种基于FPGA实现无缝光子计数的激光雷达数据采集系统设计方案。首先通过高增益的光电探测器将回波信号进行光电转换和放大处理,双计数模块构造的光子计数器代替传统信号采集卡。两个计数器的循环交替工作,有效地避免了光子脉冲丢失所引起的计数误差。采用累加平均的方法提高信噪比,将采集系统应用于激光雷达系统观测,并与商用光子计数器的结果进行对比。实验结果表明,该采集系统的均方误差为8%,具有良好的准确性和稳定性。此外,本文所设计的系统可依据不同的应用需求,在不修改雷达内部硬件的前提下重组资源,以适应激光雷达对于特殊应用领域的探测要求。