基于FPGA与TDC-GP22的连续脉冲测距系统研究

2016-08-09 09:53闫德立王伟明靳邵云何亚轩
国防交通工程与技术 2016年4期

闫德立, 王伟明, 靳邵云, 何亚轩

(石家庄铁道大学电气与电子工程学院,河北 石家庄 050043)



基于FPGA与TDC-GP22的连续脉冲测距系统研究

闫德立,王伟明,靳邵云,何亚轩

(石家庄铁道大学电气与电子工程学院,河北 石家庄 050043)

摘要:针对传统的硬件设计难以实现连续窄脉冲测距的难题,提出了一种FPGA与TDC-GP22相结合的连续脉冲测距的方案。详细介绍了FPGA完成TDC-GP22初始化、工作方式配置以及测量结果读取的具体实现方法,并根据TDC-GP22两种不同的测量范围设计了切换逻辑,实现了大动态范围的连续脉冲测距。实验结果表明,该方案脉冲间隔测量精度小于2 ns,满足了脉冲测距的要求。

关键词:TDC-GP22;FPGA;连续脉冲测距

精确鲁棒的连续脉冲测距系统在工程、军事等众多领域有着重要的应用价值。传统的脉冲测距系统大多采用MCU作为主控制器,存在扩展性差、实时性差等问题,且发射脉冲宽度较大,影响测量精度。文章设计并实现了一种基于GP22与FPGA相结合的方法来实现脉冲测距,较好的弥补了MCU系统方面存在的诸多不足。

TDC-GP22是德国ACM公司生产的一款高精度的时间数字转换芯片,在激光脉冲测距、超声波测距等领域有着广泛应用[1-4]。设计采用FPGA为控制计算单元,利用其内部延时线产生的可调窄脉冲实现窄脉冲的发射。此外,FPGA除了可实现GP22的初始化、配置和读取测量结果等功能外,还可很方便地在内部加入其他并行模块实现更复杂的功能,特别适合于激光雷达系统中的连续脉冲测距和并行测角等应用。文章以Xilinx Virtex-4系列FPGA为核心,设计并实现了基于GP22的连续脉冲测距系统。

1 系统硬件设计

TDC-GP22有两种工作方式:测量范围1和测量范围2,二者对应的最小测量时间分别是3.5 ns和500 ns,最大测量时间分别是2.4 μs和4 ms。测量范围1应用内部逻辑门的延时来测量时间间隔,精度很高,但是测量的时间比较短;测量范围2采用精确计数器与粗值计数器通过计时钟周期来测量时间,精度较低,但测量时间较长。显然,测量范围1适用于较近的测量距离,而测量范围2适合较远的部分。若测量量程覆盖两个测量范围,则在配置GP22时还需考虑二者的切换问题,设计的电路原理图如图1所示。

其中,GP22 I/O口电压为2.5~3.6 V,因此需将FPGA对应的BANK设置为3.3 V供电。将GP22的各个功能脚与FPGA连接,控制其使能、对其进行配置,以及接收中断信号并进行数据读取。GP22的配置与数据读取采用4线制SPI接口,其脉冲测量脚分别与发射脉冲输入和接收脉冲输入连接,测量二者的时间间隔;中断输出脚也连接至FPGA用于触发数据读取。此外,GP22为高端数字模拟混合器件,其电源应该具有高电容性和低电感性。

2 配置方法

系统配置主要包括窄脉冲的产生、下层模块读写配置、上层模块配置及基于状态机总体配置四部分。首先利用FPGA内部窄脉冲发生电路产生触发测距窄脉冲,然后建立FPGA与GP22的通信。FPGA连续产生测距脉冲和测量结果读写时序。GP22控制接口采用4线制SPI,需要按照严格时序,因此采用状态机的方式进行配置,其读写操作由上层模块与下层模块组成。下层模块分为并列的两个,分别为读时序与写时序,来满足SPI的时序要求。上层模块协调SPI的读写操作,从而实现GP22的初始化、工作方式的配置以及测量结果的读取。文章以初始化测量范围1,当测量范围不相符时进行测量范围的切换为例,进行配置说明。整体流程如图2所示。

图1 电路原理图

图2 整体流程

2.1 窄脉冲的产生

脉冲测距系统需要窄脉冲实现对激光器的触发,同时GP22也以该窄脉冲作为时间测量的触发信号。如图3所示,在FPGA中,采用LUT(Look-Up-Table)模块,触发信号先通过内部的延时线,然后将得到的延时信号与原信号相异或,可以方便地产生满足要求的窄脉冲,窄脉冲的宽度为内部延时线的延时时间。

图3 窄脉冲产生原理框图

2.2 下层模块读写时序

FPGA系统时钟为25 MHz,SPI的SCK信号是系统时钟的2分频。由于只有在需要时才进行写操作,在读写模块中都加入了使能信号,该信号的上升沿触发一次各自的读或写操作。为满足读或写数据长度可变的要求,在模块的端口设置输入型变量,将写入的数据长度传递到模块内部,实现读或写不同数据长度的控制。读操作需要向GP22发出指令,写入操作码,因此,在读模块中包含了写入操作码的功能。无论是读时序还是写时序,均采用状态机的方式进行描述。读时序如图4所示,写时序如图5所示。

图4 GP22读时序

图5 GP22写时序

2.3 上层模块整体配置

对于GP22的配置先要对其初始化,再经过延时10 ms,然后配置其中寄存器的值,从而确定GP22的工作方式,最后等待中断信号,将测量的时间结果读出。为了实现连续测距的要求,在结束后还需再次进行初始化,如此循环进行。

2.4 基于状态机的总体配置流程

流程图的整个过程用状态机实现。由于读写操作共用SPI中的信号线,设置了一个rd_wr寄存器用于区分。rd_wr=1为读操作,rd_wr=0为写操作。

步骤1:初始化GP22,将rd_wr置0,确定为写操作,送8位的数据50H到写入寄存器data_write,写操作的数据长度寄存器num_write赋值为15,该值由下层写操作模块写入的数据位数决定,对应为8位数据。最后把写操作使能信号en_ssn_write拉高,使能一次写操作。以上操作并行执行之后,状态机转入下一个状态,等待适当时间,保障数据写入完成。跳出等待状态时,拉低en_ssn_write,为下一次触发写操作做准备。

步骤2:数据写入完成之后,状态机进入延时的状态,延时约100 ms,采用FPGA系统时钟计数的方法确定延时时间,延时结束后,转入GP22寄存器配置状态。

步骤3:GP22有7个32位的配置寄存器。高24位是用作配置,只可以写入。这些寄存器用于设置GP22的模式。H8X+24位数据将会在GP22兼容模式中写入配置寄存器X中,用该方法配置相应寄存器。由于配置寄存器6对时间测量可有可无,因此,忽略配置寄存器6。首先在配置寄存器0写入32位数据80000420H,写入方法同步骤1,只是num_write赋值为63,其对应32为数据。该寄存器的值确定GP22工作在测量范围1,自动校准,晶振上电后一直起振。寄存器0配置完之后,状态机进入下一个状态配置其他的寄存器。按照相同方法,配置寄存器1到5分别写入81014100H、82E00000H、83000000H、84200000H、85080000H。

通过上述第一次上电配置后,系统初始化为测量范围1。按照相同的方法,可以把6个寄存器分别配置为80008468H、81214200H、82E00000H、83000000H、84200000H和85080000H,使GP22工作在测量范围2,自动校准的方式。设置一个测量范围标志位,当出现测量范围切换请求时,只需将该标志位取反,即可实现二者的切换。

步骤4:初始化测量。为实现连续测量,例如每50 ms触发一次初始化测量,FPGA系统时钟将分频产生20 kHz的方波。程序模块监测该方波的上升沿,检测到后,一方面启动计时,一旦超过预定的时间,就将超时标置位置高;另一方面,转入下一个状态,写入8位初始化数据70H,完成初始化。

步骤5:状态机在初始化测量之后进入等待中断的状态,即监测中断信号的下降沿。除此之外,还监测超时标置位。若发现超时标置位置位,说明测量的范围选择与实际的测量距离不相符,则状态机跳转至步骤3的位置,配置另一种测量范围,开始下一次测量;若在超时标置位未置位的前提下,检测到中断信号的下降沿,状态机进入步骤6。

步骤6:状态机读取数据,先将rd_wr置1,把写操作改为读操作。操作码赋值为B0H,发读取信息指令,读操作使能信号en_ssn_read拉高,使能一次读操作。然后在下一个状态延时适当的时间,使数据读出,延时结束后将en_ssn_read信号拉低,便于下次使能读时序,最后将测量结果读出,状态机切换到步骤4,进行下一次测量。

程序流程图如图6所示。

图6 程序流程图

3 实验结果及分析

实验采用FPGA内部的延时线路来模拟被测量的时间间隔,并用示波器进行了捕捉,为时间测量的结果提供依据。示波器图像如图7所示。FPGA将采集到的时间测量值通过串口发送到PC机,测量数据取平均值后为7 251.8 ps,由公式1得出。

图7 示波器图像

(1)

式中:t为测量时间;m为测量数据。计算可得时间为27 663.9 ps。经过与示波器上波形的时间差进行对比,二者基本相同。采集的数据如表1所示。

4结论

通过FPGA与TDC-GP22构建了连续脉冲测距硬件系统。通过上述配置方法,FPGA可将配置数据写入TDC-GP22,并且还能将测量结果读出,实现了脉冲测距中最核心的时间测量功能,并且易于扩展其他并行功能。通过超时检测实现两种测量范围的切换,扩大了时间测量的动态范围,减少了盲区,增强了连续测距的功能。实验结果表明,该系统可满足精确鲁棒的脉冲测距要求。

表 1 采集数据

参考文献

[1]张黎明,张 毅,赵 欣.基于TDC的激光测距传感器飞行时间测量研究[J].传感器与微系统,2011(12):71-74

[2]章坚武,张数明.TDC-GP2在激光测距传感器中的应用[J]. 仪表技术与传感器, 2009(8):74-76

[3]殷秀梅,张仁杰,吴 宁.基于时差法的高精度脉冲式激光测距系统[J].信息技术,2013(11):161-163,166

[4]宋 盛,郭 颖,洪光烈.TDC-GP2芯片在脉冲激光测距系统中的应用[J].红外, 2014(11):10-14

收稿日期:2016-04-13

基金项目:河北省自然科学基金青年基金(E2016210104)

作者简介:闫德立(1981—),男,博士,讲师,主要从事电子信息工程的科研与教学工作yandl@stdu.edu.cn

DOI:10.13219/j.gjgyat.2016.04.004

中图分类号:TN247

文献标识码:A

文章编号:1672-3953(2016)04-0014-04

A Study of an FPGA-and TGC-GP22-Based Continuous Pulse Ranging System

Yan Deli,Wang Weiming,Jin Shaoyun,He Yaxuan

(College of Electrical and Electronic Engineering, Shijiazhuang Tiedao University,Shijiazhuang 050043,China)

Abstract:Aiming at solving the problem of the traditional hardware being unable to realize the aim of the continuous shallow pulse ranging,a new scheme of a continuous pulse ranging combining the FPGA with the TDC-GP22 is proposed in the paper.Methods of using the FPGA to complete the initialization of the TDC-GP22,the configuration of working modes and the specific methods to acquire the measured results are dealt with in detail in the paper, and the switching logic is also designed according to the two different surveying ranges of the TDC-GP22,with the continuous pulse ranging in the larger dynamic scope realized.The experimental results show that the measuring accuracy of the proposed scheme is less than 2 ns,which meets the requirements for pulse ranging.

Key words:TDC-GP22;FPGA;continuous pulse ranging