基于FPGA的激光测距技术.docx
《基于FPGA的激光测距技术.docx》由会员分享,可在线阅读,更多相关《基于FPGA的激光测距技术.docx(16页珍藏版)》请在冰豆网上搜索。
基于FPGA的激光测距技术
基于FPGA的激光测距技术
编写日期:
2013年11月
一、技术概述
整个激光测距系统由激光发射单元、激光接收单元、控制与距离计算单元以及显示单元等模块组成,其相互关系如图1-1。
总体设计思想是捕捉激光从发出到遇到目标被反射回来所经过的时间,根据光速计算出探测器到被测目标之间的距离。
图1-1激光测距系统原理图
其最基本的公式是:
(1-1)
因为激光来回经过的距离是探测器到被测目标之间距离的两倍,所以整个结果需要除2,其他参数含义为:
L:
探测器到探测目标之间的距离
t:
激光往返经过的时间
v:
光速
公式(1-1)只是理论公式,在实际测量中由于测量的延迟、误差等原因需要对计算公式进行多方面的修正。
1.1系统工作方式
系统的工作原理是:
上电配置FPGA,启动脉冲激光测距系统,晶振给FPGA提供全局时钟,PLL将晶振送过来的时钟CLK倍频到200MHz,CLK1作为内部计数器的计数频率,同时也是内部系统运行的频率。
由于全局时钟高达200MHz,FPGA内部的布线延迟也限定在一个时间周期以内,即5ns。
在使能信号的有效作用下,由CLKl产生一段激光发射芯片所需要的脉冲,驱动激光发射芯片发射激光,激光接收芯片做好接收的准备,准备接收回波信号,在芯片内部,在使能信号的有效作用下,产生激光发射驱动脉冲的同时,启动内部高速计数器,在激光脉冲接收电路采集到回波信号的同时,停止计数,计算目标距离,将距离显示在LED上。
为了提高测量精度,我们可以使用求平均值来提高测量精度。
1.2激光测距实现的方式
目前激光测距的方法主要有连续波体制和脉冲波体制两种实现方法。
其中连续
波体制利用回波幅度和相位进行测距,特点是测量精度很高(一般测量精度都在毫米级别以下),但是激光调制装置复杂功率有限。
相比之下脉冲激光体制有很大的瞬时功率,测量距离相对较远,而且测量速度要比连续波体制快的多,但是其测量精度不及连续波体制(一般测量精度在米级别以下)。
1.2.1连续波体制简介
激光发射端发射出频率为
的正弦波,碰到被测目标后被反射回来,根据所测的相位差计算出探测器到被测目标之间的距离。
假设正弦光波往返相位延迟角度为
,则激光经过的时间t为:
(1-2)
从而可计算出探测器到被测目标之间的距离L:
(1-3)
由于连续波体制激光测距系统不是本文主要研究内容,在此不做深入研究。
1.2.2脉冲波体制简介
激光发射端发射出激光脉冲,遇到目标反射到激光接收端,由接收电路对回波信号进行接收,送入计算单元。
对激光信号在发射端进行编码,在接收端进行解码,通过控制与计算单元内部的高频计数时钟进行记数,测得激光脉冲经过的时间,从而可以根据公式(2-1)计算出探测器到被测目标之间的距离。
1.3脉冲激光测距系统原理
本节主要介绍激光测距性能、脉冲激光测距系统的相互工作顺序、光学系统以及发射接收系统的要求。
1.3.1激光测距性能
最大探测距离是激光探测系统的一个重要的性能指标。
对于激光测距系统,当被测目标越远时,所接收到的回波信号就越弱,当回波信号小到与干扰相当时,系统就无法探测出该距离,这个距离就称为最大探测距离。
影响激光探测系统最大探测距离的因素主要有:
1.激光信号的功率;
2.被测物体的反射率;
3.被测物体的面积;
4.大气太阳光的影响;
5.接收系统光透过率。
激光测距系统的最大探测距离不仅取决于测距系统自身性能,同时与外部条件有密切的关系。
如果想获得最大探测距离,需要同时考虑内部和外部因素:
在激光测距系统中,可以提高发射单元的发射功率,增大接收单元的面积,增大发射光学系统和接收光学系统的透过率。
提高接收灵敏度(即减小接收机的最小可探测功率)来提高最大探测距离。
同时系统设计时还应考虑到外部相关条件:
大气透过率越高,被测目标的有效发射截面积和漫反射越大激光测距系统的最大测程也会随之增加。
1.3.2激光的高斯光束特性
在激光测距系统设计中,对激光源经准直后发射并通过大气信道传输的光束按高斯光束对待。
当然,实际的光束可能会由于许多原因(如大气信道的湍流效应、衰减效应等影响)产生变化,在信道条件极度恶劣的情况下,甚至接收到的不是高斯分布的光束,但是一般情况下,经大气信道传输的光束可按高斯光束对待。
1.3.3脉冲激光测距系统
整个激光测距系统的发射、接收以及计时系统的工作顺序如图1-2所示(显示以及数据接口等部分未标出):
图1-2激光发射接收工作顺序
同步脉冲上升沿控制激光发射模块工作的同时计时器开始计时,信号依次经过发射、反射、接收过程,当接收到反射信号时计时器纪录时间,计时器记录的时间为激光信号往返探测器和目标物之间的时间。
当进行距离测量时,需要不停的发射和接收激光信号,同时对激光信号进行编码和解码,分别对编码的信号记录时间。
另一方面,计数器很大程度上影响测量精度,计时器计数频率越高整个系统的探测精度就越高。
鉴于这两个方面,选用FPGA芯片作为处理核心,可以完成激光信号编码和译码的工作,而且其内部有PLL(锁相环)可以进行片内倍频,作为高频的计数脉冲。
1.3.4光学系统
在激光测距系统工作时,阳光以及其他的外界干扰对激光接收系统形成很大的干扰,选用的激光器发射的激光波长为936+l0nm,工作在红外光段,因此在激光接收端增放了红外窄带滤光片,用以提高光的透过率。
1.3.5发射接收系统要求
激光测距系统对精度的要求比较高,发射端的理想状态是激光器发出的激光信号经准直透镜后以平行光射出,而在接收端的理想状态是能准直透镜能将接收到的平行光束聚焦到接收光敏管上。
1.4半导体激光器的特性
首先研究半导体激光器的主要特性,它直接影响着发射的激光脉冲质量。
半导体激光器属于半导体二极管的范畴,除具有二极管的一般特性以外(如伏安特性),还具有特殊的光频特性。
1.阈值特性
对于半导体激光器,当外加正向达到某一值时,输出光功率将急剧增加,这时将产生激光振荡,这个电流称为阈值电流,常用
表示。
当半导体激光器的注入电流
时,激光器只存在自发辐射现象,发出微弱的荧光,此时具有很宽的光谱范围和很宽的横向光束宽度;而当注入电流
时,激光器则发射激光,光功率随驱动电流的增加而增大,光谱范围与光束宽度都会随着驱动电流的增加而减小,最小的谱宽度可达1nm。
2.调制特性
数字信息(以“0”或“1”编码)直接调制的半导体激光器,电流突然上升到高电平(相应于“1”码),则在电流脉冲前沿与被其激励的光之间会有一个时延
,同时所产生的光需经一个张弛过程才能达到稳态,即在高速调制下,
将产生调制畸变,这是由电子与光子相互作用的动力学过程所引起的,可通过求解它们的速率方程得出
:
(1-4)
为信号脉冲的延时;
为在阙值处的载流子寿命(一般为2~5ns);I是脉冲电流;
是阈值电流。
减少
最简单的方法是在激光器上再加上一个接近阈值电流
的偏置电流
。
这时式(1-4)变为:
(1-5)
由式(1-5)可知,当
时,有
=0;同时在上述过渡过程开始的突变幅度也减小。
但是,当直流偏置在阈值以上(即
)时,脉冲调制会出现张弛振荡现象,将会使消光比(“1”码与“0”码的光功率之比)减小,使接收机灵敏度降低。
因而,实际应用中要避免出现
现象。
在激光测距系统中,半导体激光器是工作在
状态下,此时张弛振荡现象仅可能出现在脉冲的上升沿,后沿侧单调衰减。
3.温度特性
激光器的阈值电流和光输出功率随温度变化的特性称为温度特性。
温度过高激光器将停止激射,温度每升高10"C,阙值就增大5%-25%。
由于各种温度影响因素非常复杂,不可能使用单一的方程将各种激光器在所有温度范围内的关系公式化。
但是,也由以下经验公式来粗略表示电流
是随温度的变化:
(1-6)
式(1-6)中,
为
时的阈值电流,
为特征温度,T为工作温度。
在同样条件下,阈值电流升高,输出功率就下降。
二、系统功能
由于激光测距系统在实际应用过程中会受到很多干扰,包括自然界的干扰和人为的干扰等,采用窄带滤光片手段虽然可以起到抗干扰的作用,但是并不能完全消除干扰因素的影响。
为此,采用了在激光的发射和接收端对激光脉冲信号进行编码和解码的方式来降低干扰因素的影响。
产生多种激光测距工作模式,根据不同的测距环境选择相应的测距模式,达到最理想的测距效果。
2.1编码理论
一个通信系统可以概括为图2-1所示的模型:
图2-1通信系统
来自信源的消息经过信源编码器变换成能够表达这些消息的符号。
再经过信道编码器对信源编码器的输出符号进行变换,使变换后的符号具有抗击信道中噪声干扰的能力。
最后,经过调制器将信道编码器的输出调制成在带宽、功率及波段等适合于信道传输要求的信号。
在接收端,经过解调器、信道译码器及信源译码器来恢复发端所发送的消息。
本设计中对激光脉冲信号进行的编码和译码与通信系统的原理相同,即将编码的二进制数串通过激光发射端以激光的形式发射出去,其中二进制“1”表示发射一个激光脉冲,“0”表示不发射激光脉冲。
当所发射的脉冲串遇到目标物并反射回来被激光接收模块接收到时,经过光电信号的转换以及信号的放大可以读出接收到的激光信号代表的二进制编码。
对接收到的二进制编码进行判断,辨别是否是发射端发射出的编码信号,如果是,则记录时间计算距离,如果不是则认为是干扰信号。
2.2编码激光工作原理
对激光进行编码即用激光信号表示出一组二进制数串,在激光测距系统中,与二进制编码“l”、“0”相应的激光信号为有激光脉冲和无激光脉冲。
例如二进制编码数串为1,l,0,0,1,0即在激光发射端当遇到“1”时就发射—个激光脉冲信号,当遇到“0”时,就不发射激光脉冲信号。
这样一组激光串就能代表一组二进制编码信号。
如图2-2所示:
图2-2脉冲编码信号序列示意图
在激光接收端以一定的频率进行探测,当检测到一个激光脉冲信号时,则为“1”,当检测不到激光脉冲信号时则为“0”把接收到的激光信号转换成二进制数串,与发射的二进制数串进行比较,相同则可以进行距离计算,不同则视为干扰信号。
这样可以很有效的避免自然或者人为的干扰,提高激光测距系统的性能。
2.3激光测距系统时序分析
由于光速是
米/秒,理论上说在激光测距系统中激光脉冲信号的发射频率越高越好,但由于实际硬件以及电源能量等方面的因素的制约,激光脉冲的发射频率不可能太高,一般定为10000赫兹,在相临两个激光脉冲的时问间隔内,激光经过的距离为30000米,因此在发射第二个激光信号之前,第一个激光信号已经被激光接收端接收到了,这样就减小了很多在激光编码中的麻烦。
即在激光接收端只判断接收到的激光信号编码是否为刚发射的激光编码即可。
在测量过程中,应当对于不同的环境使用不同的测量方法,在静态测量时,对测量的实时性要求不高,可以采用编码方式,这样可以提高测量系统的抗干扰性能,在误差处理方面可以采用多次测量求平均值的方法以提高测量系统的精度。
另一方面如果在对实时性要求比较高的情况下不进行编码,直接以单个脉冲的方式来进行测距,比如对高速飞行的导弹或者炮弹进行定距起爆,如果采用编码方式,在计算出离目标物的距离后可能弹体已经飞出很远的距离甚至已经碰到目标物,这样就失去了定距起爆的目的,因此只能以牺牲测距系统的性能来达到实时的效果。
所以,需要对激光测距系统定义多种工作模式,在不同的应用环境选择不同的工作模式。
2.4激光测距系统工作模式设定
根据激光测距系统的应用对象和工作环境的不同,本系统设计了2种工作模式,在测量过程中,可以视具体情况而选择。
1.工作模式0设计
该模式适用于对测距系统反应速度要求很高的情况,可以应用于高速飞行的物体测距等方面,在工作模式0状态下,在激光发射端不对激光进行任何编码,只用单个激光脉冲进行测量,因此它的反应速度是非常快的。
由于光速非常快,在发射第二个脉冲之前,第一个脉冲已经反射回来。
因此在该模式下,激光发射部分和计时电路通过同一驱动信号开始工作,当接收到反馈激光信号时,就可以认为是刚发射的激光脉冲,从而可以根据记录的时间计算出测距仪到目标物之间的距离。
工作模式0的优点在于系统的实时性强,能够以最快的速度反应出测距仪到目标物之间的距离。
缺点在于没有对激光信号进行编码,也没有多次测量求平均值,系统的精度和抗干扰能力相对比较低。
2.工作模式1设计
该模式适用于对测距系统反应速度不高的情况,在工作模式l状态下,对激光的发射端进行4位的编码,并且测量4次平均值作为测量结果。
即以连续的4个激光发射周期为一个测量周期。
编码为l相应的发射一个脉冲,编码为0相应的不发射激光脉冲,由于光速非常快,在接收端只需要将接收到的激光信号和发射的激光信号进行比较就可以,如果相同并且测量完4次,则计算距离,如果不满足条件,则本次测量周期作废。
因此提高了系统的抗干扰性和测量精度。
工作模式1虽然没有工作模式0的实时性强,但也能够快速的进行测量,而且对四位激光信号进行编码从很大程度上避免了人为和自然的干扰因素,同时其测量精度也提高了。
2.5激光测距系统软件设计
FPGA内部程序设计最常用的设计方法就是模块设计,结构层次化设计是模块化设计思想的一种体现。
目前大型设计一般采用结构层次化设计风格,以提高可读性,易于模块划分,易于分工协作,易于设计仿真。
图2-3系统模块设计
图2-3表示系统模块设计里面所包含的模块设计名称。
1.TOP是顶层文件,主要是定义各个子模块之间的接口。
2.TRANSMIT是激光脉冲信号发射模块。
3.RECEIVE是激光脉冲信号接收模块。
4.COUNTER是计数程序和计算距离模块。
5.LED是数据显示模块。
6.PLL是倍频模块。
7.FD是分频模块。
2.5.1TOP模块
TOP模块定义系统中各个模块之间的接口,以达到模块之间信号的传输。
顶层文件框图见附录-1
2.5.2TRANSMIT模块
本模块主要作用是产生激光脉冲发射器的发射脉冲,发射模块如图4-2。
其中,CLK_200Mhz为系统时钟。
BEGIN为开始信号,当BEGIN=1时,系统开始工作。
R_READY为接收模块的一个反馈信号,当R_READY=1时,表示测距工作已完成。
B为一个反馈信号,模式1时起作用,在模式1的状态下,每当完成一次计数,延时一段时间(约800ns)产生高电平,系统重新计算距离。
MODEL_N为模式选择。
TO_LED为激光脉冲发射器的发射脉冲。
图2-4发射模块
由图2-5可以看出,在此模式下,当按下开始按键时,系统开始工作,产生占空比为0.1%的脉冲信号,用来驱动激光脉冲发射器。
图2-5(a)发射模块在模式0下的仿真图
由图2-5(b)可以看出,在此模式下,当按下开始按键时,系统开始工作,产生编码为“1,0,1,0”,占空比为0.1%的脉冲信号,用来驱动激光脉冲发射器。
图2-5(b)发射模块在模式1下的仿真图
2.5.3RECEIVE模块
本模块主要作用是接收脉冲激光器的回波触发信号,根据回波信号触发FPGA内部计数器停止计数,接收模块如图2-6。
其中,REBEGIN为重新开始信号,在模式1下起作用,当完成一次计数后,REBEGIN清零,停止计数。
CLK_200Mhz为时钟信号。
RECEIVE为接收信号,接收从激光脉冲发射器发射出的激光信号。
MODEL为模式选择。
CLK_200Khz为解码模块提供时钟信号。
图2-6接收模块
由图2-7(a)可以看出,在此模式下,当RECEIVE接收到激光脉冲信号时,R_READY产生高电平,将此信号送给计数器,计数器停止计数。
图2-7(a)接收模块在模式0下的仿真图
由图2-7(b)可以看出,在此模式下,当RECEIVE接收到激光脉冲信号(编码“1010”)时,R_READY产生高电平,将此信号送给计数器,计数器停止计数。
图2-7(b)接收模块在模式1下的仿真图
2.5.4COUNTER模块
本模块主要作用是在发射激光脉冲的同时,启动计数器,在接收到激光回波信号的同时,停止计数,将计算结果送给LED显示,计数模块如图4-6。
其中,CLK_200Mhz为系统时钟信号。
REBEGIN为重新开始信号。
R_READY为计数停止信号。
OUT[31..0]为计算完的距离,送至LED显示。
B在模式1时每完成一次计数,延时约800ns产生高电平。
EN在模式1时,当完成累加,产生一个确认信号。
图2-8计数模块
由图2-9(a)可以看出,在此模式下,当接收到RECEIVE模块的R_READY信号时,计数停止,COUNTER模块计算当前距离,将计算结果送至LED模块。
图2-9(a)接收模块在模式0下的仿真图
由图2-9(b)可以看出,在此模式下,当接收到R_READY信号时,延时一段时间(约800ns)REBEGIN产生高电平,系统重新开始计数,当完成4次计数后,EN产生高电平,表示距离计算完毕,将此结果送给LED进行显示。
图2-9(b)接收模块在模式1下的仿真图
从上图可以看到,这次仿真的测量计数为92(十六进制5C)个时钟周期,则测量距离为69(十六进制1AF4)米。
2.5.5LED模块
本模块主要是将COUNTER模块计算出来的距离进行显示,LED模块如图2-10。
其中,CLK_200Khz为系统时钟。
IN[31..0]为计算完的距离。
OUT1[6..0]为LED的位选信号。
OUT2[6..0]为LED的段选信号。
图2-10显示模块
由图2-11可以看出,当数据送至显示模块后,延时约160us后,数据开始稳定显示。
该模块使用的是共阴数码管,其中OUT1信号是LED位选信号,选择不同的数码管,OUT2信号是LED段选信号,显示不同的数据。
同时由于FPGA的高速性,数据处理速度远超过数码管的显示速度,因此,要对时钟信号进行分频处理。
图2-11显示模块仿真图
2.5.6PLL模块
本模块的主要作用是将输入的40Mhz信号倍频至200Mhz,PLL模块如图2-12。
其中,CLK_IN为输入时钟。
CLK_OUT为输出时钟。
图2-12PLL模块
由图2-13可以看出,PLL模块将输入CLK_IN=40Mhz倍频CLK_OUT=200Mhz。
图2-13PLL模块仿真图
2.5.7FD模块
本模块的主要作用是将输入的200Mhz分频至200Khz,程序如下。
其中,CLK为输入时钟。
CLKOUT为输出时钟。
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164,ALL;
ENTITYFENPINIS
PORT
(
CLK:
INSTD_LOGIC;
CLKOUT:
OUTSTD_LOGIC
);
ENDFENPIN;
ARCHITECTUREAOFFENPINIS
SIGNALNUMBER:
INTEGERRANGE0TO498;
SIGNALDATA:
STD_LOGIC;
BEGIN
PROCESS(CLK)
BEGIN
IF(CLK‘EVENTANDCLK=’1’)THEN
IF(DATA='1')THEN
CLKOUT<='1';
ENDIF;
IF(DATA='0')THEN
CLKOUT<='0';
ENDIF;
NUMBER<=NUMBER+1;
IF(NUMBER>=1)THEN
IF(NUMBER=498)THEN
NUMBER<=0;
DATA<=NOTDATA;
ENDIF;
ENDIF;
ENDIF;
ENDPROCESS;
ENDA;
由图2-15可以看出,FD模块将输入CLK(图2-14)分频至CLKOUT。
图2-14CLK时钟信号(clk=200Mhz)
图2-15FD模块仿真图(clkout=200khz)
三、系统创新
3.1脉冲式激光测距系统误差分析
激光测距系统的测量精度受多方面的影响,主要有噪声、接收系统响应时间、脉冲宽度和幅度、电路延迟、计时频率等。
3.2嗓声来源
测距系统的噪声主要包括放大器的噪声、光电二极管的暗流噪声、背景光的闪烁噪声、信号自身的闪烁噪声以及来自电源或者其他外部电干扰等。
3.3接收系统响应时间
在理想情况下,接收系统门电路的开闭反应时间都是假定为瞬时的,也就是说,激光发射时,门电路同时打开,当激光回波回到测距系统接收模块的瞬间,门电路同时关闭,此时计数器本身存在一个固定误差,这个固定误差是由于基准振荡器产生的振荡脉冲与门电路的开闭时间相位不同引起的。
在理想情况下,门电路开启时间是基准振荡周期的4倍多。
但由于基准振荡器产生的基准振荡与门电路开启相位不同,所以门电路输出的基准振荡就有可能是5个,也有可能是4个。
而基准振荡器的相位是随机的,因此,计数器在计数时就可能会有±1个计数误差。
3.4激光脉冲宽度和幅度变化原因
理论上激光脉冲的宽度是由测距控制模块给出的发射脉冲的宽度决定的,脉冲幅度是由激光发射模块MOS管的控制电压决定的。
但是实际工作中,系统的温度、放大器的带宽和线性度以及来自电路板的干扰都会影响激光脉冲信号的宽度和幅度。
而脉冲宽度直接影响着测量精度,脉冲幅度影响着最大量程,特别是当信号幅度过大时,脉冲宽度就会失真。
脉冲激光测距系统上用的激光器,其脉冲半宽度约为6~8ns左右,配合雪崩光电二极管用的放大器增益较高,为了减少噪声干扰,放大器的带宽应有一定限制。
放大器后面形成的单稳态的阈值,一般是一定的,激光取样电脉冲的形状、幅值也是基本固定的。
但是由于大气衰减,目标反射特性的影响,激光回波光脉冲的相位、幅度就会随距离、气候条件、目标反射特性的改变而改变,所以激光测距系统的测距误差就会随激光回波脉冲的相位、幅度的变化而变化。
3.5电路延迟误差
电路延迟分为固定延迟和非固定延迟两部分。
其中固定延迟是信号在控制模块、发射模块、接收模块传输时消耗的必要时间,这段时间可以通过实验的方法计算出来,并且可以对激光测距方程进行修正,从而可以避免固定延迟部分产生的误差。
非固定延迟误差主要由温度的变化等造成,它是不可避免的,但是可以通过多次测量来减小非固定误差造成的影响。
3.6时间测量误差
由于计数器利用的是回波信号的前沿作为计数器停止计数的标志,而回波信号并不是理想的方波信号,其前沿具有一定的倾斜,而且针对不同的目标物回波信号的强弱也不一样,用一个固定的阈值与回波信号作比较来停止计数器计数势必会引起计时误差。
另一方面,从激光发射计数器开始计数到接收到激光信号,计数器停止计数所经过的时间不一定是计数时钟周期的整数倍,这会引入计数量化误差,很明显计数量化误差的大小与计数时钟的计时频率有关。
四、其他说明
激光具有单色性和相干性好、方向性强等特点,脉冲激光测距以其测程远、测距精度高、不需合作目标等优点获得了广泛的应用。
本文介绍了一种基于FPGA技术的脉冲式激光测距系统的设计,系统的控制部分由可编程逻辑器件(FPGA)组成,用户可以根据自己的需要进行软件改写,设计更多的工作模式,实现了硬件设计的软件化,增加了系统的灵活性,缩短了开发周期。
计时时钟频率的大小是脉冲式激光测距系统测量精度的主要影响因素,本系统采用FPGA内部PLL倍频后的时钟信号作为基本时钟提高了系统的测量精度。
技术主要完成了以下工作:
1.对国内外激光测距技术的现状和发展做了简单的介绍。
2.分析了激光测距系统的工作