激光测距实验报告
- 格式:doc
- 大小:149.50 KB
- 文档页数:6
激光脉冲测距实验1.实验目的通过学习激光脉冲测距的工作原理;了解激光脉冲测距系统的组成;搭建室内模拟激光脉冲测距系统进行正确测距,为今后的工程设计奠定理论基础和工程实践基础。
2.实验原理激光脉冲测距与雷达测距在原理上是完全相同的,如图2.1所示。
在测距点激光发射机发射激光脉冲,光脉冲经过光纤到达接收端,并被测距机上的探测系统接收。
测出从激光发射时刻到被接收时刻之间的时间间隔t,根据已知光速,即可求出光纤的长度R为R=/2(2-1)式中c为光速。
真空中的光速是一个精确的物理常数C1=299792458 m/s光纤中的平均折射率n为n=1.000275266故光纤中的光速为C=299710000可见,激光测距的任务就是准确地测定时间间隔t。
当不考虑光纤中光速的微小变化时,测距精度⊿R主要是由测时精度⊿t确定的⊿R=C⊿t/2 (2-2)实际脉冲激光测距机中是利用时钟晶体振荡器和脉冲计数器来测定时间间隔t的。
时钟晶体振荡器用于产生固定的频率的电脉冲振荡,脉冲计数器的作用是对晶体产生的电脉冲个数进行计数。
设晶体振荡器产生的电脉冲频率为f,则脉冲间隔T=1/f。
若从激光脉冲发出时刻脉冲计数器开始计数,到光脉冲被接收时刻停止计数。
设这段时间内脉冲计数器共计得脉冲个数为m,则可计算出被测光纤的长度为R=1/2cmT=cm/f=1.6m(2-3)相应的测距精度为⊿R =1/2Ct=c/(2f) (2-4)可见,脉冲激光测距机的测距精度由晶振的频率决定。
常用军用激光测距仪的晶振频率有15MHz、30MHz、75MHz和150MHz等,与其相对应的测距精度分别为正负10m、正负5m、正负2m和正负1m。
晶振的频率愈高,测距精度就愈高,但随之而来的,不仅是计数器的技术难度增加,而且要求激光脉冲的宽度愈窄,激光器的难度也增加。
对脉冲测距系统,计数器的“开门”信号是由取出一小部分发射激光脉冲经光探测器转换成电信号形成的。
这两个信号既可由同一探测器提供,也可以用两个探测器提供。
激光脉冲测距机由激光器、发射光学系统、接收及瞄准光学系统、取样及回波探测放大系统、技数及显示器和电源几部分组成,如图2.2所示系统操作人员一旦下达发射激光命令,激光器发射一束窄激光脉冲,经发射光学系统扩束后射向接收系统,其中一小部分经取样后启动计数器开始计数。
激光回波经测距机的接收和瞄准光学系统,聚焦到前面有窄带滤光片的光探测器上。
由探测器将其转换成电信号,再经取样及回波探测放大系统处理后产生“关门”信号用于关闭计数器。
由计数器计得的脉冲个数计算出光纤得电源计数及显示器激光器长度,再通过显示器显示出来。
3.实验装置实验装置包括“激光脉冲发射/接收电路板”、电脑和“单片机开放板”。
1.激光脉冲发射/接收电路板组成及工作原理激光脉冲发射/接收电路板原理框图如图2.3所示。
图中EMP3032为CPLD;MAX3656为激光驱动器;MAX3747为限幅放大器;T22为单端信号到分差信号转换芯片;T23为差分信号单短信号转换芯片;LD为半导体激光器;PD为光探测器。
板子上端的EMP3032被编程为脉冲发生器,输出重复频率为1KHz,脉冲宽度为48ns的电脉冲信号。
此信号经MAX3656放大后驱动LD发光。
板子下端的EMP3032被编程为计数器,对125MHz晶振计数器。
其计数的开门信号来自上端的TX信号,关门信号来自PD的输出。
计数器的计数结果采用12位二进制数据输出,对应时间范围为0~32.76us.图2.3发射/接收模块原理框图发射/接收模块布局如图2.4所示,TX、RX1、RX2为三个Q9插座。
其中,LD的驱动信号由TX口输出;PD接收到的信号由RX输出。
2.接口管脚说明插座J9为计数结果输出管脚,包括12位数据管脚和1位计数指示管脚:•数据管脚的高八位(从第12到5位)分别对应J9的1、3、5、7、9、11、13、15;数据管脚的低四位(从第4到11位)分别对应J9的16、14、12、10。
高电平为1,低电平为0;•计数指示管脚为J9的第六位。
计数指示为1表示正在计数,0表示计数结束。
4.实验内容与要求图2.4实验系统组成框图实验系统主要由激光脉冲发射/接收电路板(其上包括脉冲半导体驱动器、脉冲半导体激光器、光电探测接收系统、计数器)和单片机开发板(其上包括单片机及显示模块)组成。
其中脉冲半导体激光驱动器产生重复频率为1KHz,脉冲宽度为24ns的电脉冲信号驱动半导体激光器工作,同时此脉冲信号作为计数器的开门信号启动计数器开始对高速晶振输出的脉冲个数计数。
半导体激光器输出光脉冲耦合到光纤中,经过一定长度的光纤传输后再被光电探测器接收转换成电信号,经过放大后作为计数器的关门信号,使计数器停止计数。
此时计数器计到的脉冲个数再乘以晶振的周期即为光脉冲在光纤中的传输时间,此时间乘以光在光纤中的传播速度即为光线的长度。
单片机将计数器的计数值读入,计算出距离值并显示出来。
单片机程序:/****************************************///-------------脉冲测距程序-------------////------///****************************************/#include<reg52.h>//头文件#define uchar unsigned char//两个宏定义,只是为了方便#define uint unsigned intuchar code SEG7[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x80};//数码管的编码uchar SAV[6]={10,10,10,10,10,10};//初始化数码管,使其初始时均无显示uchar code ACT[6]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf};//位选的编码void delay(uchar);//延时函数声明void display();//显示函数声明void count(uint)//计算各个数码管显示数字大小函数的声明uint Get_Data();//读取数据函数声明void main()//主函数{uint Dis_Data;Dis_Data=Get_Data()*16;//将读取的数据进行计算,得到距离count(Dis_Data)//计算各个数码管显示数字大小while(1)//主循环{display()//显示函数};}void delay(uchar time)//延时函数{while(time>0)time--}void count(uint Con_Data)//计算各个数码管显示数字大小函数{SAV[0]=Con_Data%10;//计算个位数据SAV[1]=Con_Data/10%10;//计算十位数据SAV[2]=Con_Data/100%10;//计算百位数据SAV[3]=Con_Data/100/10%10;//计算千位数据}void display()//显示函数{uchar i=0;for(i=0;i<4i++)//for循环用于进行循环显示{P0=SEG7[SAV[i]]//显示函数的主体,P0作为字线输出P2=ACT[i];delay(200);P0=0xffP0=SEG7[11];P2=ACT[1];//P2作为实验板的位线delay(200)//延时函数P0=0xff//防止出现余辉现象}}uint Get_Data()//读取数据函数{uint Last_Data;uchar Data;/**/P3=0xff;//while(P3^3!=0);//检验数据传输是否完成Data=P3//读取P3口数据Last_Data=Data&0xf0;//获取P3口数据的高四位Last_Data=Last_Data<<4;//数据左移4位,因为读入的是高位P1=0xff;//P1口置高,这是读取数据的需要Data=P1;//读取P1口数据Last_Data=Last_Data+Data;//高四位+第四位=周期数/*以下为未接激光测距芯片时用来测试单片机算法的Last_Data=0xff&0xf0;Last_Data=Last_Data<<4;Data=0x00;Last_Data=Last_Data+Data;*/return Last_Data}总结:这个实验很有用,特别是对于我们电子类专业的学生,现在激光技术在工业、医疗、商业、科研、信息和军事等研究中应用的非常广泛。
这是一次我们接触这方面的实验,在实验中我们将大一学习过的编程学以致用,同时此次实验也为我们提供了一个练习编程的机会。
我认为作为一名工科生,单片机是我们大学生活中的一个玩伴,通过这门课程的学习,我们已熟悉地掌握单片机的基本操作,同时对激光测距有了基本的认识,,更重要的是我们通过相互帮助,相互学习完成了这个实验,实验同时提高了我们的实践动手能力。
见到不少实验仪器,对实验的过程有了更全面的体会,注意到每一个实验都有各自的严谨性和特殊的方法。
建议:1:该门实验选修课是一门综合性较高的科目,我们能够学到基础课程之外的很多东西,知识量较大,若能多安排几个课时与学分,就更好了。
2:每组若分为一大组,两小组的话这样可以加强同学间的协作,同时能够学到更多东西。