双飞秒激光测距系统数据处理平台硬件实现的制作方法

文档序号:20835962发布日期:2020-05-22 16:52阅读:247来源:国知局
双飞秒激光测距系统数据处理平台硬件实现的制作方法

本发明涉及信号处理及激光测距领域,具体涉及双飞秒激光测距系统数据处理平台硬件实现。



背景技术:

双飞秒激光测距具有测量精度高、更新速度快、测距范围大等优点,是一种实现绝对距离测量的技术。其主要应用于依赖高精度、高实时性距离测量的研究领域,例如卫星编队飞行、天基合成孔径成像、激光雷达等。

双飞秒激光测距系统由三个主要部分组成,包括两个独立、自由运转的被动锁模飞秒激光器,光学互相关子系统,以及数据处理平台。

此外,在星载平台上使用的激光测距系统有成本、尺寸和能量限制。现场可编程门阵列(fpga)因其集成度高,体积小,并行度高,功耗低和可重配置等特点,成为数据处理平台硬件实现的较优选择。



技术实现要素:

本发明针对双飞秒激光测距系统数据处理平台,提出了数据处理的fpga硬件解决方案,功能是:实时处理采样信号,检测每个脉冲的峰值时刻,根据双飞秒激光测距原理计算距离,最后发送距离值。所有模块在fpga平台上全硬件实现,硬件设计的最高工作频率为250mhz。

本发明具体技术方案为:

第一步:生成稳定的时钟频率

锁相环(pll)模块调用xilinx公司的ip核,用于为其他模块生成稳定的时钟频率。

第二步:划分噪声区域和脉冲区域

动态阈值滤波(dtf)模块,以采样信号数据的平均值上浮1.75倍作为阈值,将采样信号数据划分为噪声区域和脉冲区域,每16384个数据点更新一次。噪声区域中的数据不用于峰值检测,脉冲区域中的数据存储在存储器中用于后续峰值检测。

第三步:离散采样点拟合,得到脉冲峰值时刻

基于bfgs的峰值检测(pd-bfgs)模块,读取存储器中的数据,输出每个脉冲的峰值时刻。本发明使用bfgs-qn求解器在超短时间间隔内完成脉冲重构,采用迭代方法计算拟合参数,得到对应于脉冲峰值的中心时刻t。

本发明提出的bfgs-qn求解器采用迭代方法计算拟合参数,k表示迭代次数,根据bfgs拟牛顿算法的计算步骤,可以将算法的硬件架构分为计算控制模块、目标函数评估模块、线性搜索模块、梯度计算模块、矩阵更新模块。具体各模块的互联关系和相关内部变量的传输关系如附图2所示。在bfgs拟牛顿算法的硬件架构中,计算控制模块通过设计有限状态机来控制所有其他模块的执行顺序,调用片上bram来缓存模块间内部变量的计算结果并且将数据传输给相应的模块。目标函数评估模块计算超短激光脉冲包络重构过程中高斯拟合的误差函数;线性搜索模块通过当前拟合参数向量、搜索方向和梯度确定在搜索方向上的步长;梯度计算模块计算当前目标函数的梯度,判断是否满足跳出条件并完成参数向量的更新;矩阵更新模块由bfgs校正公式更新海森矩阵的逆矩阵,结合目标函数梯度确定新的搜索方向。

工作流程:(1)采样数据点(xi,yi)和初始参数p0输入计算控制模块并分配给其他四个模块;(2)采样数据点(xi,yi)和拟合参数值pk输入目标函数评估模块计算当前误差函数值ef;(3)误差函数值ef和当前迭代轮次的拟合参数向量pk、下降方向dk和梯度gk输入线性搜索模块确定搜索方向上的步长λk;(4)步长λk、误差函数值ef和当前迭代轮次的拟合参数向量pk、下降方向dk共同输入梯度计算模块,得到下一迭代轮次的拟合参数向量pk+1、梯度gk+1并输出给计算控制模块缓存;(5)下一迭代轮次的梯度gk+1和向量sk=pk+1-pk输入矩阵更新模块,输出下一迭代轮次的下降方向dk+1;(6)计算控制模块判断是否满足跳出条件,若满足输出峰值时刻拟合结果,若不满足重复工作流程第(2)步。

整体数据通路中各模块电路采用ip复用技术设计,通过xilinxvivado软件中ipcatalog调用float-point、blockmemorygenerator和fifogenerator。

float-point是浮点ip核,主要使用浮点加法器、浮点减法器、浮点乘法器、浮点除法器以及浮点平方根运算,完成各功能模块中的数学运算;blockmemorygenerator是片上存储器ip核,fifogenerator是先进先出存储器队列ip核。本发明选用双端口ram和fifo作为缓冲器,存储模块与模块间以及模块内部变量的运算结果。各模块电路内部采用有限状态机控制,通过状态的转换来控制每个步骤的数据的读入、读出和存储。以下将详细介绍在fpga平台上实现各功能模块的硬件架构。具体硬件实现方案如下:

1)误差函数评估(ef)模块。误差函数ef的硬件结构如附图3所示,分为两部分实现:第一部分根据拟合参数向量pk获得高斯函数值,第二部分计算拟合误差ef(pk)。

硬件架构上半部分是高斯函数值计算单元的硬件设计。其中,(xi-μ)2和-2σ2是并行计算的。为加速高斯函数拟合的计算过程,尽可能地并行计算单个脉冲包络的所有采样数据点的拟合值。该硬件架构使用单个脉冲上8个采样数据点进行高斯拟合,可以同时计算8组高斯函数值,计算结果存在ram中。

硬件架构下半部分是误差函数计算单元的硬件设计。高斯函数值计算单元完成计算后,误差函数计算单元开始计算。使用多路选择器依次选择拟合值和对应采样数据点的幅值流入减法器相减,得到二者的差值。

其中,深度流水结构的向量与向量乘法(vvm)单元被用于平方和运算,vvm单元硬件结构如图3所示。最后结果经过平方根运算,得到误差函数值。该模块由33个乘法器,9个加法器,9个减法器,8个指数运算(exp),8个除法器和一个平方根运算(sqrt)构成,互连关系如附图3所示。

2)步长λk计算模块。采用线性搜索计算(ls)方法,附图4为ls方法硬件实现,包括两部分:比较判断部分和步长更新部分。比较判断部分执行比较运算,并且判断步骤跳转。并行计算ef(pk+λkdk)和ef(pk)+ρλkgktdk,并通过比较器进行比较。若比较结果输出为1,则多路选择器选择(1-ρ)参与计算,计算ef(pk)+(1-ρ)λkgktdk,否则跳转至步长更新部分。ef(pk)+(1-ρ)λkgktdk与ef(pk)+ρλkgktdk复用同一组硬件资源进行计算,通过多路选择器根据sel0选择ρ和(1-ρ)参与运算。步长更新单元中的不同更新公式复用相同的加法器和乘法器,以充分利用硬件资源。所有数学运算都尽可能采用流水线结构设计,以提高电路整体的工作频率,实现更高的运算性能。

3)梯度gk计算(gc)模块。附图5是梯度计算的流水线硬件结构,采用并行结构

设计是运算速度和硬件资源之间的折衷。pk是输入参数向量,通过多路选择器控制向量pk的每个元素pkr分别加或减得到4组新的向量,并将计算结果存储在各自的ram中。调用两组目标函数评估模块并行计算,两组计算结果序列依次对应传输到减法器两端,最后流水输入到乘法器与相乘得到目标函数的梯度。并行结构的设计是运算速度和硬件资源之间的折衷。

4)bk矩阵更新(bu)模块。该模块通过迭代生成海森逆矩阵的近似矩阵。bk矩阵通过以下公式更新:

sk=pk+1-pk

zk=gk+1-gk

附图6是bu模块的硬件架构,向量与向量乘法单元在此模块中大量使用,例如zktsk。中间结果被缓存在片上ram单元中,数据用于在随后的计算步骤中重复使用。使用fifo作为缓冲,等待更新等式中的其他子项的结果。bu模块逐行更新bk+1矩阵。在最后的加法器两端,同时进行两个子项的数学计算,使用fifo来缓冲vkvkt子项的计算结果并等待更新公式中的其他子项的计算结果。各子项计算完成后,各元素依次进入加法器两端,逐行更新bk+1矩阵。此外,该模块附带完成搜索方向的更新,通过矩阵向量乘单元将更新后的矩阵与梯度向量相乘后取相反数,得到新的搜索方向dk+1=-bk+1gk+1并缓存在片上bram用于下一轮迭代。

第四步:选择pd-bfgs模块优化方案,实时处理相互交替的参考脉冲和目标脉冲。

由于待测距离范围不同,参考脉冲和目标脉冲间特定时间间隔(tinterval)不固定。为保证bfgs-qn求解器在tinterval内,即在目标脉冲(参考脉冲)到达之前完成参考脉冲(目标脉冲)的峰值检测,本发明提出了pd-bfgs模块的两种优化方案,得到tref1,ttar和tref2,分别表示参考脉冲,目标脉冲和下一周期参考脉冲的时刻。两种方案的硬件结构图如附图7所示。

当tinterval小于流水线间隔时,应使用方案一;当tinterval大于流水线间隔时,应使用方案二。

方案一:使用两个bfgs-qn求解器并行处理参考信号脉冲和目标信号脉冲。第一个bfgs-qn求解器处理参考信号脉冲,第二个bfgs-qn求解器处理目标信号脉冲。该方案可以忽略两对脉冲之间的时间间隔的限制,理论上不会影响系统的测量范围。

方案二:使用一个bfgs-qn求解器流水处理参考信号脉冲和目标信号脉冲。ls块的执行时钟周期数大致等于gc和bu块的总和,因此bfgs-qn求解器可以在两级流水线中执行。使用少量的硬件资源实现数据缓存与流水线控制逻辑模块,用于存储中间数据并控制流水线。当tinterval大于流水线间隔(ls块的执行时间)时,第二级(gc+bu)处理参考脉冲(目标脉冲),第一级(ls)同时处理目标脉冲(参考)脉冲。

第五步:更新当前激光重复频率fr

重复频率测量(rfm)模块通过计数器计算每秒激光脉冲的个数,每秒即时更新当前激光重复频率fr,这是距离计算中的重要参数。

第六步:计算待测距离

距离计算(dc)模块,根据第四步和第五步得到的tref1,ttar、tref2和fr,由下列公式计算待测距离l:

其中c表示真空中的光速,ng表示空气的折射率,fr表示信号激光的重复频率。

第七步:将结果发送给上位机

结果通过通用异步接收器/发送器(uart)rs232通信接口模块发送到上位机。

有益效果

(1)误差评估

首先评估基于所提出的pd-bfgs模块的双飞秒激光测距系统的性能,使用caruana方法的峰值检测模块(pd-caruana)和使用直接法的峰值检测模块(pd-direct)被用于对比实验。在实验中使用300ms内的所有采样点。三个峰值检测模块的测距结果如附图8所示:pd-direct测距结果的平均值为63.293876m,误差为129.63um;pd-caruana测距结果的平均值为63.294031m,误差为24.98um;pd-bfgs测距结果的平均值为63.293997m,误差为9.08um。与pd-direct相比,pd-bfgs将测距结果的误差降低了92.99%,与pd-caruana相比降低了63.63%。

(2)执行时间

如表1所示,设计的pd-bfgs模块工作在250mhz,平均在173.40us内完成一次峰值检测。当tinterval大于5.84us时,采用方案2用于节省硬件资源;当tinterval小于5.84us时,采用方案1确保同时对参考脉冲和目标脉冲进行峰值检测。峰值检测实时完成,测距结果更新速率为2khz,实现了更小的精度损失的同时满足测距系统实时性要求。

(3)硬件资源利用

pd-bfgs硬件实现是根据所提出的测距系统优化方案定制的。表2列出了硬件资源利用率结果,包括查找表(lut),触发器(ff),数字信号处理硬核(dsp)和bram块,可见方案2比方案1节省了近一半的硬件资源。

附图说明

图1是双飞秒激光测距系统数据处理平台硬件结构图;

图2是bfgs-qn求解器硬件结构图;

图3是误差函数评估模块(ef)硬件结构图;

图4是步长λk计算模块(ls)的比较判断模块的硬件结构图;

图5是步长λk计算模块(ls)的步长更新部的硬件结构图;

图6是梯度gk计算模块(gc)硬件结构图;

图7是bk矩阵更新模块(bu)硬件结构图;

图8是一种pd-bfgs模块优化方案;

图9是另一种pd-bfgs模块优化方案;

图10是三个峰值检测模块的测距结果。

具体实施方式

本发明针对双飞秒激光测距系统数据处理平台,提出了数据处理的硬件解决方案,整个系统的硬件结构图,如附图1所示,具体技术方案为:

第一步:生成稳定的时钟频率

锁相环(pll)模块调用xilinx公司的ip核,用于为其他模块生成稳定的时钟频率。

第二步:划分噪声区域和脉冲区域

动态阈值滤波(dtf)模块,以采样信号数据的平均值上浮1.75倍作为阈值,将采样信号数据划分为噪声区域和脉冲区域,每16384个数据点更新一次。噪声区域中的数据不用于峰值检测,脉冲区域中的数据存储在存储器中用于后续峰值检测。

第三步:离散采样点拟合,得到脉冲峰值时刻

基于bfgs的峰值检测(pd-bfgs)模块,读取存储器中的数据,输出每个脉冲的峰值时刻。本发明使用bfgs-qn求解器在超短时间间隔内完成脉冲重构,采用迭代方法计算拟合参数,得到对应于脉冲峰值的中心时刻t。

本发明提出的bfgs-qn求解器采用迭代方法计算拟合参数,k表示迭代次数,根据bfgs拟牛顿算法的计算步骤,可以将算法的硬件架构分为计算控制模块、目标函数评估模块、线性搜索模块、梯度计算模块、矩阵更新模块。

具体各模块的互联关系和相关内部变量的传输关系如附图2所示。在bfgs拟牛顿算法的硬件架构中,计算控制模块通过设计有限状态机来控制所有其他模块的执行顺序,调用片上bram来缓存模块间内部变量的计算结果并且将数据传输给相应的模块。目标函数评估模块计算超短激光脉冲包络重构过程中高斯拟合的误差函数;线性搜索模块通过当前拟合参数向量、搜索方向和梯度确定在搜索方向上的步长;梯度计算模块计算当前目标函数的梯度,判断是否满足跳出条件并完成参数向量的更新;矩阵更新模块由bfgs校正公式更新海森矩阵的逆矩阵,结合目标函数梯度确定新的搜索方向。

工作流程如下:

(1)采样数据点(xi,yi)和初始参数p0输入计算控制模块并分配给其他四个模块;(2)采样数据点(xi,yi)和拟合参数值pk输入目标函数评估模块计算当前误差函数值ef;(3)误差函数值ef和当前迭代轮次的拟合参数向量pk、下降方向dk和梯度gk输入线性搜索模块确定搜索方向上的步长λk;(4)步长λk、误差函数值ef和当前迭代轮次的拟合参数向量pk、下降方向dk共同输入梯度计算模块,得到下一迭代轮次的拟合参数向量pk+1、梯度gk+1并输出给计算控制模块缓存;(5)下一迭代轮次的梯度gk+1和向量sk=pk+1-pk输入矩阵更新模块,输出下一迭代轮次的下降方向dk+1;(6)计算控制模块判断是否满足跳出条件,若满足输出峰值时刻拟合结果,若不满足重复工作流程第(2)步。

本发明中,整体数据通路中各模块电路采用ip复用技术设计,通过xilinxvivado软件中ipcatalog调用float-point、blockmemorygenerator和fifogenerator。float-point是浮点ip核,主要使用浮点加法器、浮点减法器、浮点乘法器、浮点除法器以及浮点平方根运算,完成各功能模块中的数学运算;blockmemorygenerator是片上存储器ip核,fifogenerator是先进先出存储器队列ip核,本发明选用双端口ram和fifo作为缓冲器,存储模块与模块间以及模块内部变量的运算结果。各模块电路内部采用有限状态机控制,通过状态的转换来控制每个步骤的数据的读入、读出和存储。

以下将详细介绍在fpga平台上实现各功能模块的硬件架构。

具体硬件实现方案如下:

1)误差函数评估(ef)模块。误差函数ef的硬件结构如附图3所示,分为两部分实现:第一部分根据拟合参数向量pk获得高斯函数值,第二部分计算拟合误差ef(pk)。硬件架构上半部分是高斯函数值计算单元的硬件设计。其中,(xi-μ)2和-2σ2是并行计算的。为加速高斯函数拟合的计算过程,尽可能地并行计算单个脉冲包络的所有采样数据点的拟合值。该硬件架构使用单个脉冲上8个采样数据点进行高斯拟合,可以同时计算8组高斯函数值,计算结果存在ram中。硬件架构下半部分是误差函数计算单元的硬件设计。高斯函数值计算单元完成计算后,误差函数计算单元开始计算。使用多路选择器依次选择拟合值和对应采样数据点的幅值流入减法器相减,得到二者的差值。深度流水结构的向量与向量乘法(vvm)单元被用于平方和运算,vvm单元硬件结构如图3所示。最后结果经过平方根运算,得到误差函数值。该模块由33个乘法器,9个加法器,9个减法器,8个指数运算(exp),8个除法器和一个平方根运算(sqrt)构成,互连关系如附图3所示。

2)步长λk计算模块。采用线性搜索计算(ls)方法,附图4-5为ls方法硬件实现,包括两部分:比较判断部分和步长更新部分。比较判断部分执行比较运算,并且判断步骤跳转。并行计算ef(pk+λkdk)和ef(pk)+ρλkgktdk,并通过比较器进行比较。若比较结果输出为1,则多路选择器选择(1-ρ)参与计算,计算ef(pk)+(1-ρ)λkgktdk,否则跳转至步长更新部分。ef(pk)+(1-ρ)λkgktdk与ef(pk)+ρλkgktdk复用同一组硬件资源进行计算,通过多路选择器根据sel0选择ρ和(1-ρ)参与运算。步长更新单元中的不同更新公式复用相同的加法器和乘法器,以充分利用硬件资源。所有数学运算都尽可能采用流水线结构设计,以提高电路整体的工作频率,实现更高的运算性能。

3)梯度gk计算(gc)模块。附图6是梯度计算的流水线硬件结构,采用并行结构设计是运算速度和硬件资源之间的折衷。pk是输入参数向量,通过多路选择器控制向量pk的每个元素pkr分别加或减得到4组新的向量,并将计算结果存储在各自的ram中。调用两组目标函数评估模块并行计算,两组计算结果序列依次对应传输到

减法器两端,最后流水输入到乘法器与相乘得到目标函数的梯度。并行结构的设计是运算速度和硬件资源之间的折衷。

4)bk矩阵更新(bu)模块。该模块通过迭代生成海森逆矩阵的近似矩阵。bk矩阵通过以下公式更新:

sk=pk+1-pk

zk=gk+1-gk

附图7是bu模块的硬件架构,向量与向量乘法单元在此模块中大量使用,例如zktsk。中间结果被缓存在片上ram单元中,数据用于在随后的计算步骤中重复使用。使用fifo作为缓冲,等待更新等式中的其他子项的结果。bu模块逐行更新bk+1矩阵。在最后的加法器两端,同时进行两个子项的数学计算,使用fifo来缓冲vkvkt子项的计算结果并等待更新公式中的其他子项的计算结果。各子项计算完成后,各元素依次进入加法器两端,逐行更新bk+1矩阵。此外,该模块附带完成搜索方向的更新,通过矩阵向量乘单元将更新后的矩阵与梯度向量相乘后取相反数,得到新的搜索方向dk+1=-bk+1gk+1并缓存在片上bram用于下一轮迭代。

第四步:选择pd-bfgs模块优化方案,实时处理相互交替的参考脉冲和目标脉冲。

由于待测距离范围不同,参考脉冲和目标脉冲间特定时间间隔(tinterval)不固定。为保证bfgs-qn求解器在tinterval内,即在目标脉冲(参考脉冲)到达之前完成参考脉冲(目标脉冲)的峰值检测,本发明提出了pd-bfgs模块的两种优化方案,得到tref1,ttar和tref2,分别表示参考脉冲,目标脉冲和下一周期参考脉冲的时刻。

两种方案的硬件结构图如附图8-9所示。

当tinterval小于流水线间隔时,应使用方案一;当tinterval大于流水线间隔时,应使用方案二。

方案一:使用两个bfgs-qn求解器并行处理参考信号脉冲和目标信号脉冲。第一个bfgs-qn求解器处理参考信号脉冲,第二个bfgs-qn求解器处理目标信号脉冲。该方案可以忽略两对脉冲之间的时间间隔的限制,理论上不会影响系统的测量范围。

方案二:使用一个bfgs-qn求解器流水处理参考信号脉冲和目标信号脉冲。ls块的执行时钟周期数大致等于gc和bu块的总和,因此bfgs-qn求解器可以在两级流水线中执行。使用少量的硬件资源实现数据缓存与流水线控制逻辑模块,用于存储中间数据并控制流水线。当tinterval大于流水线间隔(ls块的执行时间)时,第二级(gc+bu)处理参考脉冲(目标脉冲),第一级(ls)同时处理目标脉冲(参考)脉冲。

第五步:更新当前激光重复频率fr

重复频率测量(rfm)模块通过计数器计算每秒激光脉冲的个数,每秒即时更新当前激光重复频率fr,这是距离计算中的重要参数。

第六步:计算待测距离

距离计算(dc)模块,根据第三步和第四步得到的tref1,ttar、tref2和fr,由下列公式计算待测距离l:

其中c表示真空中的光速,ng表示空气的折射率,fr表示信号激光的重复频率。

第七步:将结果发送给上位机

结果通过通用异步接收器/发送器(uart)rs232通信接口模块发送到上位机。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1