APP下载

脉冲式激光测距仪计时系统设计与实现

2012-07-26徐成涛吴冠豪郑睿童

自动化仪表 2012年5期
关键词:激光测距计时间隔

徐成涛 吴冠豪 郑睿童

(国防科学技术大学电子科学与工程学院1,湖南 长沙 410073;清华大学机械学院2,北京 100084)

0 引言

脉冲式激光测距仪具有速度快、方向性好、测程远、抗干扰能力强等优点,在工业、航空航天、大地测量、建筑测量、机器人和军事等领域均有广泛应用[1]。脉冲式激光测距机的工作原理是利用脉冲激光器向目标发射单次激光脉冲,计数器测量从激光脉冲射向目标到目标返回到接收机的往返时间,由此得出目标的距离[2]。脉冲式激光测距仪主要由半导体脉冲激光器、电源、硅雪崩探测器及其相关放大处理电路、光学系统以及信号处理电路等部分组成[3]。

脉冲式激光测距系统最重要的一个组成部分是测距计时系统,测距计时的精度与速度直接影响距离测量的精度与速度[4]。目前,时间间隔的测量方法可分为直接法和间接法两种。直接测量方法有脉冲计数法、延迟时间内插法等;间接测量方法有时间电压变换(TDC)、游标时间内插法和脉冲宽度压缩时间内插法等,本文采用的是间接测量方法。

1 测距计时系统的设计

1.1 系统功能实现原理

脉冲激光测距计时系统由计时模块和传输模块两部分组成。计时模块用于测量信号的时间间隔计算,实现对距离的测量;传输模块用于将测距数据传输到上位机,满足快速测距应用的需要。

目前,实现高分辨率时间间隔测量的内插法主要有模拟内插法和数字内插法两种。模拟方法对环境温度十分敏感,需要比较长的转换时间,且容易受到外界扰动影响,所以数字方法的使用更加广泛[5]。为提高测量精度,本文采用基于数字式内插测量方法的高精度时间间隔测量芯片TDC-GP2来实现计时功能。同时,采用一款DSP芯片TMS320F2812作为脉冲激光测距计时部分的主控芯片,负责与TDC-GP2芯片的通信、测量数据的相关处理以及数据的向上传递,实现计时功能,提高计时系统的数据处理速度[6]。

在数据的传输过程中,选择USB接口来实现与上位机的通信,并采用集成了USB 2.0接口的EZ-USB FX2LPTM系列芯片CY7C68013A来进行协议处理和数据交换,以支持USB实现高速的数据传输[7]。

计时系统功能的基本原理如图1所示。

图1 计时系统原理图Fig.1 Principle schematic of the timing system

1.2 计时系统的工作流程

计时系统的基本工作流程为:每次上电复位,TMS320F2812首先对芯片内部的相关功能寄存器进行初始化,接着对TDC-GP2进行必要的初始化;然后,TMS320F2812启动发射模块,向待测目标发射一个激光脉冲,同时向TDC-GP2发出一个脉冲电信号,TDC-GP2启动计时;激光脉冲从待测目标散射返回,接收模块在接收到回波信号的同时向TDC-GP2发出另一个脉冲电信号,则TDC-GP2停止计时,并将两次脉冲信号之间的时间间隔信号通过SPI接口传递给TMS320F2812。TMS320F2812对数据进行处理后,将计时结果通过芯片CY7C68013A传递给上位机,以供进一步的处理和应用。计时系统具体工作流程如图2所示。

图2 计时系统流程图Fig.2 Schematic diagram of timing system

2 基于DSP的计时模块设计

2.1 计时模块软件设计

计时模块以DSP芯片作为脉冲激光测距计时的主控芯片。针对测距计时工作的基本要求及TDC-GP2芯片的功能特性[5],本文设计的计时电路主要包括TMS320F2812初始化、TDC初始化和利用DSP实现测时等流程。计时电路软件程序的总流程图如图3所示。

图3 计时软件流程图Fig.3 Flowchart of the timing software

2.2 TMS320F2812 初始化

整个控制程序运行在DSP芯片上。系统上电后,程序首先对TMS320F2812芯片作相关的初始化设置,如关闭看门狗、设置时钟等。其中,系统参数初始化函数的主要功能是设置锁相环产生150 MHz的时钟信号,提供给DSP作为时间基准,产生高速外围时钟信号和低速外围时钟信号,并使能SCI串口和SPI接口的时钟功能。SPI初始化函数将SPI时钟信号设置为2.5 MHz,SCI初始化函数将 RS-232串口波特率设置为19 200 bit/s,GPIO初始化函数设置了I/O管脚的数据传递方向和初始值。

2.3 TDC 初始化

在TMS320F2812完成初始化设置后,就可以对TDC芯片进行控制。但在此之前,同样需要先作一些初始化工作。这些工作主要包括芯片的上电复位和初始化设置、主要芯片间的数据通信功能检查以及与上位机的串口通信功能检查[8]。其中,TDC-GP2复位函数通过DSP的I/O口将RSTN管脚置低,实现TDC芯片的复位。数据通信自检函数向TDC-GP2的写寄存器1写入测试字符串,然后从读寄存器5中读出相关数据,从而证明TDC-GP2和TMS320F2812均能进行正常的读写通信。最后,TDC-GP2初始化函数对TDC-GP2的5个写寄存器写入事先设计好的控制字,以实现计时功能的初始化设置。

2.4 基于DSP的测时

DSP控制TDC-GP2芯片按预定方式进行测时。整个计时过程由timemeasurement()函数完成,函数体内部嵌套多个子函数。TDC-GP2在接收到一条开始测时的指令后便等待Start信号到来。在GP2_START()函数中,DSP芯片利用I/O口模拟出3个脉冲信号,分别作为Start信号和相应的Stop1、Stop2信号。TDC会根据控制字的要求计算出时间间隔。当计算完成后,TDC-GP2会发出中断信号。一旦发生中断,就进入GP2_TMASTAT()函数读取TDC-GP2的状态寄存器信息,判断计时结果是否有效。如果数据有效,则DSP通过SPI接口按最高位到最低位的顺序读取寄存器REG0的内容,即时间间隔,并将结果通过串口传递给上位机。这样就结束了一次时间测量。若要实现多次测量,只需在timemeasurement()函数体外加入循环。

3 系统数据通信功能的实现

3.1 通信模块软件流程设计

对于扫描成像等应用,在获得激光测距的计时数据后,需要将数据快速送入上位机(应用程序)作处理。当采样频率较高时,单位时间的采样数据量很大,传输信道需要提供较高的传输速度,为此,通用串行传输协议使用USB来实现数据的高速传输。

由于通信过程是由主机控制决定的,因此,当DSP与上位机进行数据传输时,需由上位机先发送一个传输数据的命令,然后DSP再响应传递数据。数据通信程序的流程图如图4所示。

图4 数据通信流程图Fig.4 Flowchart of data communication

3.2 数据通信功能的实现

数据通信实现的主要功能有:打开USB设备、发送数据传输的指令、DSP发送数据、CY7C68013A芯片传送数据、主机接收数据、存储数据、测量USB通信的传输速度等[9]。程序中主要模块简单说明如下。

①USB设备操作:当需要访问USB设备时,调用Win32API函数,向设备驱动程序发出特定的IRPs请求,设备驱动程序收到请求后,向更底层的驱动程序传递请求,完成对USB设备的控制和访问[10]。

②DSP发送数据:利用外扩的RAM添加一个64 kB的缓冲区,从寄存器读取数据,将每次采集到的数据存入缓冲区;达到64 kB后通过指针将缓冲区数据放入CY68013A的端点,CY68013A利用固件程序把缓冲区内容打包向上传输。

③数据存储:利用MFC中的CFile类的成员函数,通过创建一个模态对话框对缓冲区的数据进行文件传输,将编辑框控件所显示的内容保存到用户指定的数据文件中。

④数据传输速度测试:在数据传输开始的同时,定时器开启进行计时。在传输结束时,传输数据的大小除以传输时间就可得到有效数据传输速度。本文自行设计了一个能精确到毫秒级的时间测定函数,用来测试传输速度。

4 试验测试结果

本文根据上述需求设计了一个试验系统,其硬件包括:TDC-GP2芯片电路、TMS320F2812芯片电路和上位机(计算机)。TDC-GP2芯片与TMS320F2812芯片通过SPI接口通信,测试所用的时间信号由DSP芯片模拟产生并提供给TDC-GP2,控制信号也由DSP芯片发出;上位机与DSP芯片通过USB交换数据。

4.1 信号时间间隔测量

测试时,DSP芯片的I/O口产生Start、Stop1信号,作为TDC的输入信号。采用TDC-GP2和Tektronix TDS 1012B(100 MHz,1 GS/s)示波器同时测量两者之间的时间间隔,观察相应的计时结果。DSP信号时间间隔测量结果如表1所示。

表1 时间间隔测量结果Tab.1 Measuring results of signal time interval

TDC-GP2的测量结果与示波器测量的试验数据表明,随着触发信号的间隔时间按等差数列增加,所得到的时间测量结果也随之成等差数列增加。这就表明TDC-GP2的时间测量结果具有较好的线性关系,且每组值的标准差均在65 ps之内。

接着,DSP芯片的 I/O口又被用来发送 Start、Stop1和Stop2信号。将Start信号作为触发信号,触发TDC芯片测量Stop1和Stop2信号。Stop1信号是Start信号经过一对反门之后的信号,Stop2信号是Stop1信号再经过一对反门之后的信号,二者之间间隔为反门典型延时的两倍。结果表明TDC测量具有较好的稳定性。

4.2 DSP的通信时间

数据通过USB接口发送给上位机,传输速率大于3 Mbit/s。试验中一次采样数据用20 B进行存储,每次采样平均数据传输耗时7 μs,而程序用时约96 μs,一次采样过程共需要103 μs。由于DSP芯片的SPI速率仍可提高(本文采用的是2.5 MHz,最多可达9.375 MHz),且USB数据传输速率可超过3 Mbit/s,因此,采样时间完全可以小于100 μs,采样率可达10 kHz。测试结果表明,系统对时间间隔的测量精度可达65 ps,量程可达0~16 ms;系统运行稳定,也没有引入新的误差。

5 结束语

为满足激光测距的扫描成像、模式识别等应用需要,对脉冲式激光测距的高速计时技术进行了研究。通过采用基于数字式内插测量方法的高精度时间间隔测量芯片和数据处理芯片,设计实现了激光测距仪的计时模块与数据的传输模块,并构建了一个试验系统。试验表明,计时系统利用TDC-GP2芯片测量可实现高精度(65 ps)、性能稳定的测距计时,以满足脉冲式激光测距的应用需求。

[1]王秀芳.脉冲半导体激光测距的研究[D].成都:四川大学,2006.

[2]刘坤,陈芳.激光测距方法及激光器的发展[J].科技信息,2008(30):387-388.

[3]李黎明.半导体激光测距机中的信号处理方案[D].成都:电子科技大学,2008.

[4]黄震.脉冲激光测距接收电路与计时方法研究[D].杭州:浙江大学,2004.

[5]曾凡.用于脉冲式激光测距的计时电路研制[D].北京:清华大学,2009.

[6]孙丽明.TMS320F2812原理及其C语言程序开发[M].北京:淸华大学出版社,2008:20-22.

[7]程玉龙.采用USB2.0接口的图像采集系统设计[D].重庆:重庆大学,2007.

[8]宋建辉,袁峰,丁振良.脉冲激光测距中高精度时间间隔的测量[J].光学精密工程,2009,17(5):1047-1049.

[9]吴刚,李春来,刘银年,等.脉冲激光测距系统中高精度时间间隔测量模块的研究[J].红外与毫米波学报,2007,26(3):214-216.

[10]孟升卫.高速精密时间间隔测量及应用研究[D].哈尔滨:哈尔滨工业大学,2007.

猜你喜欢

激光测距计时间隔
畅游计时天地
间隔问题
腕表计时2.0
12时计时法与24时计时法的互化
间隔之谜
计时工具
基于高压架空线路激光测距的无人机锁定导线巡航研究
基于回波强度的激光测距误差补偿算法研究
激光测厚技术专利申请分析
低功耗窄脉冲编码激光器驱动设计探讨