一种基于fpga的激光雷达多脉冲时间间隔测量系统

文档序号:1649083 发布日期:2019-12-24 浏览:29次 >En<

阅读说明:本技术 一种基于fpga的激光雷达多脉冲时间间隔测量系统 (Laser radar multi-pulse time interval measuring system based on FPGA ) 是由 唐义 王军 于 2018-06-14 设计创作,主要内容包括:本发明公开一种基于FPGA的激光雷达多脉冲时间间隔测量系统,包含控制单元和计时单元两部分;控制单元与外部主机通信,并对计时单元进行控制;计时单元包括门控信号生成模块,时刻鉴别模块,和延时链抽头型TDC。门控信号生成模块将起始信号start和终止信号stop合并成能被TDC正确测量的多脉冲信号gate,将其输入到TDC延时链中,TDC的第一级锁存单元连接到时刻鉴别单元,用于寻找gate信号的第一个上升沿和所有下降沿,并将对应的TDC结果保存。本发明能够使用单一TDC完成激光雷达中多个脉冲时间间隔的测量,大大节约了FPGA的资源占用和外部电路的规模。(The invention discloses a laser radar multi-pulse time interval measuring system based on an FPGA (field programmable gate array), which comprises a control unit and a timing unit; the control unit is communicated with an external host and controls the timing unit; the timing unit comprises a gating signal generation module, a time identification module and a time delay chain tap type TDC. The gate control signal generation module combines the start signal start and the stop signal stop into a multi-pulse signal gate which can be correctly measured by the TDC and inputs the multi-pulse signal gate into the TDC delay chain, and a first-stage latch unit of the TDC is connected to the time discrimination unit and is used for searching a first rising edge and all falling edges of the gate signal and storing corresponding TDC results. The invention can use single TDC to complete the measurement of a plurality of pulse time intervals in the laser radar, thereby greatly saving the resource occupation of FPGA and the scale of external circuits.)

一种基于FPGA的激光雷达多脉冲时间间隔测量系统

技术领域

本发明涉及数字化测量技术领域,具体涉及一种用于脉冲激光雷达的多脉冲时间间隔的测量系统。

背景技术

时间测量技术用于测量多个事件的时间间隔或确定单一事件发生的具体时刻,其在通信,宇航,雷达等领域都有重要应用。高精度时间测量常用的器件为时间数字转换器(TDC),其载体包括ASIC和FPGA两种。

目前使用FPGA实现的TDC方案有很多种,但都只能测量从起始时刻到单一事件发生的时间间隔,要想测量两个及以上的事件时刻的时间间隔,只能使用多个TDC对这些事件分别进行测量,这将占用成倍的资源。

对于脉冲激光雷达,考虑以下两个场景:一是为了提高测量精度,连续发送多个激光脉冲,从而收到多个回波脉冲;二是由于穿透等原因,一束激光的回波脉冲可能有很多个。多个回波脉冲之间时间间隔的测量,起始事件是激光发射的时刻,结束事件是激光多个回波脉冲,因此多个结束事件在电路上使用的是同一个信号线,只是出现的时间有所间隔,这可以理解为同一事件连续出现了多次,传统的TDC方案只能测量第一个回波脉冲出现的时间,而无法测量之后各个脉冲相对起始事件的时间间隔。

发明内容

有鉴于此,本发明提供了一种基于FPGA的激光雷达多回波脉冲时间间隔的测量系统,能够使用单个TDC对激光雷达多个回波脉冲的时间间隔进行测量。

实现本发明的技术方案如下:

整套系统包含控制单元和计时单元两部分。

第一方面,控制单元与外部主机通信,并对计时单元进行控制。控制单元包括配置寄存器,状态寄存器,结果寄存器和测量控制状态机。配置寄存器接受外部主机写入的测量配置信息,包括预期测量的脉冲数,测量使能,测量模式。结果寄存器有两组,每完成一次测量后,就会切换到另一组结果寄存器,通过这种乒一乓的方式提升连续测量时测量结果的有效时间。状态寄存器存储本次测量实际得到的脉冲数,以及当前有效的结果寄存器是哪一组。测量控制状态机根据配置寄存器的要求控制整个测量流程,包括计时单元复位,测量完成生成通知主机的INT信号,结果寄存器的切换和状态寄存器的更新。

第二方面,计时单元包括门控信号生成模块,时刻鉴别模块,和延时链抽头型TDC。门控信号生成模块将起始信号start(激光发射脉冲,上升沿表示起始时刻)和多个回波脉冲的终止信号stop(一个脉冲代表一个回波时刻)合并成能被TDC正确编码的待测信号gate,再将其输入到TDC的延时链中进行时间测量。时刻鉴别模块用于提取起始时刻和每一个结束时刻,对应于gate信号中的第一个上升沿(起始时刻)和每一个下降沿(结束时刻),并将此时TDC的结果存入结果寄存器。延时链抽头型TDC对输入信号的脉宽进行测量,测量得到的脉宽为t=K*Tclk+Tstart-Tstop,K为粗粒度计数器的输出,Tclk为同步时钟的周期,Tstart和Tstop为开始时刻和结束时刻时对延时链编码所得的值。

所述gate信号是一个包含多脉冲信号,复位后为低电平,start上升沿到来后变为高电平,stop的每一个脉冲会在gate信号中产生一个由‘1’到‘0’的反向脉冲。这种待测波形可以被TDC的延时链正确编码,从而使一个TDC能够完成对多个回波脉冲的测量。

所述时刻鉴别模块的原理是检测gate信号输入到TDC第一级延时单元后的D触发器D1的变化,因为D1由系统时钟触发,有效时间为一个同步时钟周期,因此对gate的边沿检测可以转化为对D1在两个时钟周期的值的检测。为了保证D1能正确的反应gate信号的变化,要求gate信号中的高、低电平脉宽应大于一个同步时钟周期。这里使用START_LOCK,CNTD,TDC_DONE来表示各个状态,其检测步骤如下:

步骤1:复位后,上述START_LOCK,CNTD,TDC_DONE清0,gate信号为低电平,各级延时链均为低电平,因此D1的值为‘0’;start脉冲到来后,gate信号为高电平,D1从‘0’变为‘1’,此时将START_LOCK置1,表明检测到了起始信号,并将当前TDC的结果记录到结果寄存器中。

步骤2:在stop脉冲到来之前,gate保持为‘1’,因此D1也为‘1’;当stop脉冲到来时,由于gate由‘1’变为‘0’,D1也变为‘0’;因此当START_LOCK为‘1’且D1由‘1’变为‘0’时,将CNTD寄存器的值加1,表示当前检测到的stop脉冲数,并将当前TDC的结果记录到结果寄存器中。

步骤3:stop脉冲结束后,gate再次变为‘1’,之后D1也因此变为‘1’,这样当新的stop脉冲到来时,会再次进入到步骤2。

步骤4:随测量的进行,计时单元在步骤2-3中重复,当CNTD的值等于配置寄存器中预期的脉冲数,或者TDC的粗粒度计数器发出超时信号时,计时单元将TDC_DONE置‘1’,通知控制单元本次测量完成。

所述延时链抽头型TDC由粗粒度计数器,延时链,锁存阵列,编码器构成。粗粒度计数器在时刻鉴别单元中START_LOCK为‘1’后开始计数;编码器方案为多级加法器阵列,统计锁存单元中‘1’的数目。若延时链和锁存单元总共有M级,编码器的输出为N,每一级延时单元的平均延时时间为1LSB,则Tstart=N*LSB,Tstop=(M-N)*LSB。为了保证全加器能正确编码,要求延时链上只能有一个变化沿,即gate信号中的高、低电平脉宽应大于延时链的延时长度。时刻鉴别模块对gate信号有类似要求,由于延时链的延时长度稍大于一个同步时钟周期,因此gate信号最终只需满足编码器的要求即可。

本发明的有益效果是:本发明使用单一TDC即可完成激光雷达中多个脉冲时间间隔的测量,大大节约了FPGA的资源占用和外部电路的规模,在激光雷达和相关时间测量领域有重要的应用价值。

附图说明

图1所示为本发明一个实施例的总体组成框图。

图2所示为本发明的计时控制逻辑状态转移图。

图3所示为门控信号生成模块生成的gate信号示意图。

具体实施方式

下面结合附图并举实施例,对本发明进行详细描述。

本实施例使用Xilinx Spartan6实现所述激光雷达多回波脉冲时间间隔测量系统,具体型号为XC6SLX9-2tqg144。图1是本发明提供的基于FPGA的激光雷达多回波脉冲时间间隔测量系统总体组成框图,如图1所示,其包含控制单元和计时单元两部分。

在本实施例中,所述控制单元的状态寄存器,配置寄存器采用distributedRAM实现,其实质是FPGA中的D触发器和寻址逻辑。配置寄存器中的测量使能位经过一个反相器,再‘或’上全局复位信号,最终连接到计时单元的复位端,这样,当测量使能位为0时,计时单元处于复位的状态,进而不再进行测量。

所述结果寄存器使用FPGA内嵌的BRAM实现,配置成简易双端口模式,主机端只读,FPGA端只写,FPGA端数据位宽配置为32位,深度为256。256深度的BRAM对应于8位地址线,记为A0-A7,因为结果寄存器分为两组,因此引出地址线A7,作为这两组寄存器的片选,A7为0时表示第一组结果寄存器,A7为1时表示第二组结果寄存器。并将A0-A6接到计时单元的CNTD寄存器上,从而每一次结果存入BRAM的相应位置,可知start到来时对应于地址0x00,第一个stop脉冲的结果存入0x01,以此类推。这样,每组结果寄存器都能保存128个数据,因此能识别的stop脉冲数为127个,扩大结果寄存器可增加系统能记录的最大stop脉冲数。

所述计时控制状态机有3种状态:STATE_RST、STATE_START、STATE_WRITE_DONE,其状态转移图如图2。STATE_RST为空闲状态,这个状态下,将通知主机的INT信号拉低,当检测到计时单元START_LOCK信号为‘1’后,进入STATE_START状态;在STATE_START状态下,当检测到计时单元TDC_DONE为‘1’后,进入STATE_WRITE_DONE状态;在STATE_WRITE_DONE状态下,立刻跳转到STATE_RST状态,同时执行以下操作:将INT信号拉高;向状态寄存器写入CNTD和A7的值;将A7取反,从而使当前结果寄存器切换到另一组;若没有使能连续测量,将配置寄存器的测量使能位置0。INT信号‘或’上全局复位信号,接入到计时单元,从而实现在一次测量完成后对计时单元的复位。至此,计时单元的复位部分也已经完成,由全局复位信号、INT信号、测量使能位取反后的信号,这三个信号经过‘或’逻辑后构成。

所述门控信号生成模块生成的gate信号示意图如图3所示,为了达到图示的效果,本实施例使用如下实现方案。使用一个D触发器,clk端连接start信号,data端接‘1’,clr端接计时单元的复位信号,这样当start信号上升沿出现后,D触发器的Q端保持为‘1’。stop信号经过一个‘非’门后与D触发器的Q端一起经过一个‘与’门,即可得到所需的gate信号。

所述时刻鉴别模块检测gate信号输入到TDC第一级延时单元后的D触发器D1的变化,因为D1由系统时钟触发,有效时间为一个同步时钟周期,因此对gate的边沿检测可以转化为对D1在两个时钟周期的值的检测,本例中使用1个寄存器(D触发器)保存D1上一个周期的值,称之为D0,通过D0,D1的组合即可对gate进行边沿检测,其真值表为:“01”,上升沿;“10”下降沿;“00”低电平;“01”高电平。为了保证D1能正确的反应gate信号的变化,要求gate信号中的高、低电平脉宽应大于一个同步时钟周期。这里使用START_LOCK,CNTD,TDC_DONE来表示各个状态;测量步骤如下:

步骤1:复位后,上述START_LOCK,CNTD,TDC_DONE,WE清0,gate信号为‘0’,各级延时链均为低电平,D0D1的值为“00”;start脉冲到来后,gate信号为高电平,D0D1变为“01”;因此当D0D1为“01”,且START_LOCK为0时,将START_LOCK置1,表明检测到了起始信号,将当前TDC的结果保存到结果寄存器中,此时CNTD为0,因此start的结果被保存到结果寄存器的0x00地址。

步骤2:在stop脉冲到来之前,gate保持为‘1’,D0D1的值为“11”;当stop脉冲到来时,由于gate出现下降沿,D0D1的值为“10”;因此当START_LOCK为‘1’且D0D1的值为“10”时,将CNTD寄存器的值加1,表示当前检测到的stop脉冲数,将当前TDC的结果保存到结果寄存器的相应地址中。

步骤3:stop脉冲结束后,gate再次变为‘1’,D0D1的值为“11”,这样当新的stop脉冲到来时,会再次进入到步骤2。

步骤4:随测量的进行,时刻鉴别模块在步骤2-3中重复,当CNTD的值等于配置寄存器中预期的脉冲数,或者TDC的粗粒度计数器发出超时信号时,计时单元将TDC_DONE置‘1’,通知控制单元本次测量完成。

所述延时链抽头型TDC的基本实现方式相关领域的人士都有所了解,由粗粒度计数器,延时链,锁存阵列,编码器这几个基本单元构成。本实施例实现的TDC同步时钟为250MHz,延时链为58级,测量得到的延时链所能覆盖的延时时间约为4292ps,相应的锁存阵列因此为58个。粗粒度计数器在时刻鉴别单元中START_LOCK为‘1’后开始计数,达到预设的20μs时间后产生超时信号;为满足时序要求,本例中编码器方案为三级加法器阵列:第一级有8个加法器,除第8个外,每个加法器对7个锁存单元求和,输出3bit数据,第8组对剩余的10个锁存单元求和,得到4bit数据;第二级有两个加法器,每个加法器分别对第一级的4个加法器的输出进行求和,输出5bit数据;第三级有一个加法器,对第二级的两个加法器的结果进行求和,输出6bit的最终结果。编码器统计了锁存单元中‘1’的数目,若延时链和锁存单元总共有M级,编码器的输出为N,每一级延时单元的平均延时时间为1LSB,则Tstart=N*LSB,Tstop=(M-N)*LSB。这种编码方案实现简单,但是要求延时链上只能有一个变化沿,即gate信号中的高、低电平脉宽应大于延时链的延时长度。本例中要求gate信号的高低电平保持时间至少为4292ps,即stop脉冲的脉宽应大于4292ps,两个stop脉冲的间隔应大于8584ps,start和stop的间隔为4292ps。

综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

9页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种嵌入式通讯系统的授时方法和系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!