脉冲激光测距中基于多层嵌套状态机的控制系统
2014-09-14毛有明吴凯旋李业秋
毛有明,岱 钦,吴凯旋,耿 岳,李业秋
(沈阳理工大学 理学院,辽宁 沈阳 110159)
脉冲激光测距中基于多层嵌套状态机的控制系统
毛有明,岱 钦,吴凯旋,耿 岳,李业秋
(沈阳理工大学 理学院,辽宁 沈阳 110159)
设计了基于FPGA与TDC-GP21的高精度、高重频的激光飞行时间测量系统。采用多层嵌套状态机作为控制系统,构建SPI通信接口实现对TDC-GP21的配置、控制以及读取测量结果。使用TimeQuest时序分析工具对系统进行时序约束分析。实验结果表明,系统重复测量频率达40KHz,测量精度达±100ps,可以在高频条件下稳定工作。
激光测距;FPGA;TDC-GP21;有限同步状态机;Verilog HDL
脉冲激光测距技术广泛应用于现代军工、工业、航天等领域[1],随着集成电路的飞速发展,数字法插入法测量时间间隔已取得突破性进展,并广泛应用于激光测距系统中,可以使用专用测量芯片或精密延迟线完成高精度时间间隔测量[2]。论文设计实现了基于FPGA和TDC-GP21的高速激光飞行时间测量系统,通过多层嵌套状态机构成控制系统,提高了测量频率和精度。
1 激光测距原理
激光测距系统主要由以下几个部分组成:激光发射模块、接收模块、跨阻放大模块、时刻鉴别模块、时间间隔测量模块以及核心控制元件FPGA,各个模块之间的联系如图1所示。
激光二极管发射脉冲宽度为40ns的激光脉冲,通过分光将其中一小部分进行光电转换后作为开始信号,剩余激光经过光学准直系统后发射;当激光到达被测目标表面后部分能量被反射,经过APD接收、跨阻放大和时刻鉴别电路后,作为结束信号送到时间间隔测量单元;根据测量光脉冲从发射到返回接收机的时间t,可以计算出测距机与待测目标之间的距离。
图1 激光测距系统原理框图
激光测距精度主要取决于时间间隔测量精确度、接收电路的带宽、激光脉冲的上升沿和探测器的信噪比[3],其中时间间隔测量精度对激光测距精度的影响至关重要。
2 时间间隔测量原理
高精度时间间隔测量技术的种类可以分成模拟法和数字法。数字插入法是在数字法的基础上,通过插入法提高测量精度,包括延迟线插入法、时幅转换插入法和时间放大插入法。数字插入法继承了数字法的测量范围大和线性好的优点,又提高了时间间隔测量的精度,因此数字插入法成为目前主要的高精度时间间隔测量方法[4]。
时间间隔测量原理[5]如图2所示,时间间隔可以表示成Tc=Ts+nTd-Te,其中nTd为参考时钟CLK的周期数,Ts和Te分别为触发信号和参考信号CLK的上升沿之间的时间差。
设计使用TDC-GP21,采用延迟线插入法技术,以信号通过内部延迟单元来测量时间间隔,如图3所示。
TDC-GP21内部延迟单元的单通道测量精度为45ps,由Start信号触发,Stop信号截止,由环形振荡器的位置可得Ts和Te,由粗值计数器的计数值可得nTd,从而计算出Start信号和Stop信号之间时间间隔。
图2 TDC-GP21时间间隔测量单元
图3 TDC-GP21时间间隔测量单元
TDC-GP21通过内部校准测量来补偿由温度和电压变化而引起的误差,适用于高精度时间间隔测量。
图4 TDC-GP21校准测量原理图
如图4所示:由FPGA配置TDC-GP21进行校准测量,首先TDC-GP21通过内部延迟单元测量时间间隔;然后测量一个和两个外部基准时钟信号Cal1和Cal2;最后ALU单元通过Cal1和Cal2对测量结果进行校准,补偿由温度和电压变化而引起的误差,并将校准结果存到结果寄存器中。此时测量结果是外部时钟的倍数,即相对时间。校准结果和待测时间间隔可表示为如下公式:
(1)
Time=RES_X×Tref×2CLKHSDIV
(2)
3 TDC-GP21时序约束
TDC-GP21提供4线SPI串行接口,支持时钟相位(Clock Phase Bit)=1,时钟极性(Clock Polarity Bit)=0的传输模式,TDC-GP21的读写时序如图5和图6所示。
图5 TDC-GP21写时序
图6 TDC-GP21读时序
其中SSN为读写使能信号,低电平有效,SCK为串口通信时钟,MOSI端口接收主机的配置信息和操作指令,MISO端口发送从机的状态信息和测量结果。在通信过程中,由主机产生SSN使能信号和SCK时钟信号,MOSI和MISO在SCK时钟的下降沿发送指令或接收数据。由于TDC-GP21不能连续进行写操作,每个寄存器必须单独寻址,这也就意味着在每次读写操作时必须先由主机发送操作码,并且读写操作之间的最小时间间隔大于16ns。
由TDC-GP21的时序要求可知,系统可以通过SPI接口读取TDC的测量结果,但TDC-GP21规定了特定的读写时序和配置代码,FPGA内置的SPI接口不能灵活处理TDC的读写时序。通过以上分析,论文设计了基于多级嵌套状态机的SPI通信接口,可以快速处理TDC的读写时序要求。
4 系统硬件设计
实验使用Altera公司的cyclone II系列器件EP2C5T114C6和TDC-GP21构建测量系统,如图7所示。
图7 FPGA与TDC-GP21硬件电路图
系统工作时钟为50MHz,通过FPGA模拟SPI接口,对TDC-GP21进行配置和初始化;并发射触发脉冲,触发半导体激光二极管产生脉宽为40ns的激光脉冲,同时触发TDC-GP21工作;FPGA通过SPI的主收从发端口(MISO)读取测量结果进行后续数据处理和传输;TDC-GP21通过测量4MHz外部基准时钟进行数据校准。
5 系统工作流程
系统以FPGA作为核心控制器件,以TDC-GP21的测量流程为基础构建系统,系统的工作流程如图8所示。
图8 系统流程图
当系统上电后,首先由FPGA通过SPI模块对TDC-GP21进行配置及初始化,然后系统进入测量阶段,当TDC-GP21收到停止信号后对测量值进行校准测量和ALU校准,最后将测量结果存到结果寄存器中,并产生中断。
FPGA接收到TDC的中断标志后,系统读取TDC的状态寄存器并判断TDC的状态,当TDC溢出时,终端显示TDC溢出信息,程序返回初始化阶段;当满足系统测量范围时,FPGA通过SPI模块读取结果寄存器,然后返回初始化阶段,准备进入下一次测量,同时将数据送到高速乘法器进行计算并将结果通过RS485接口传送给上位机,在终端上显示测量结果;当接收到上位机的停止命令时,FPGA控制TDC完成当前测量后结束程序。
为了实现简洁有效的SPI通信时序,充分利用FPGA的内部资源,实验采用Verilog HDL硬件描述语言设计有限同步状态机(FSM)控制TDC-GP21进行时间间隔测量,并在系统中嵌套了3个从状态机,分别实现收发8、16和32位的数据指令,主从状态机转换图如图9和图10所示。
图9 主状态机的时序图
图10 多层嵌套状态机的逻辑图
如图10所示,En为系统使能信号,F为通信标志位,当F=1时主状态机控制从机进行通信,当通信结束后标志位置0,I为TDC-GP21的中断端口,低电平有效。主状态机输出控制字及控制信号启动从状态机进入工作状态,操作完成后从机发出相应状态信号至主机进行下一步操作。主从状态机之间通过收发结束标志位和收发数据位宽完成相互嵌套,同时为了避免SPI接口进行双全工通信时要同时捕捉时钟的上升沿和下降沿,可能由于时钟漂移导致状态机工作不可靠[6]。实验采用时钟上升沿的工作方式,增强了状态机的可靠性[7]。
6 结果分析
实验基于QuartusII软件平台进行开发调试,使用TimeQuest时序分析工具对系统的时序进行约束,时序约束是FPGA开发过程中不可忽视的一个步骤,可以指导综合和布局布线阶段的优化算法[8],获得最优的器件性能,使设计代码最大可能反映设计意图。实验通过TimeQuest时序分析工具,对全局时钟、寄存器建立和保持时间分别进行约束,确保系统的时序收敛。通过JTAG将程序下载到FPGA最小系统板中,使用示波器观察系统通信波形,如图10所示。
图11 激光测距系统的波形图
在图11中,CH1通道为SCK通信时钟信号,CH2通道为SSN使能信号,CH3通道为MISO端口信号。由图可知系统通信波形良好,状态机正常运转,模拟SPI接口时序清晰,无明显毛刺,系统在高频测量情况下能够保持稳定的工作状态,系统重复测量频率达40kHz。
实验采用FPGA脉冲信号模拟激光回波信号进行时间间隔测量。在10~100ns范围内进行重复测量,测量结果如表1所示。
表1 系统测量结果 ns
通过软件修正,分析测量结果,并进行线性误差补偿,减小电路延迟和光学接收系统的非线性因素对系统的影响,系统测量精度可达±100ps。
7 结论
设计了基于FPGA和TDC-GP21的激光测距系统。构建多层嵌套有限状态机,实现高速SPI通信接口,完成对TDC-GP21的配置和控制。使用TimeQuest时序分析工具对系统进行时序约束,提高了系统的高频稳定性。系统重复测量频率为40KHz,测量精度为±100ps,可以满足快速精密的测距要求。
[1]张黎明,张毅,赵欣.基于TDC的激光测距传感器飞行时间测量研究[J].传感器与微系统,2011,30(12):71-74.
[2]冯志辉,刘恩海,岳永坚.基于FPGA延迟线插入法的半导体激光测距[J].光电工程,2010,37(4):53-59.
[3]陈千颂,杨成伟,潘志文,等.激光飞行时间测距关键技术进展[J].激光与红外,2002,32(1):7-10.
[4]吴刚,李春来,刘银年.脉冲激光测距系统中高精度时间间隔测量模块的研究[J].红外与毫米波学报,2007,26(3):214-216.
[5]张延,黄佩诚.高精度时间间隔测量技术与方法[J].天文学进展,2006,24(1):3-4.
[6]黄新财,佃松宜,汪道辉.基于FPGA的高速连续数据采集系统的设计[J].微计算机信息,2005,21(2):58-59.
[7]伞景辉,常青.基于FPGA的乘法器实现结构分析与仿真[J].微处理机,2004,(3):6-7.
[8]周海斌.静态时序分析在高速FPGA设计中的应用[J].电子工程师,2005,31(11):4-5.
AControlSystemBasedonMultiple-levelFSMofLaserDistanceMeasurement
MAO Youming,DAI Qin,WU Kaixuan,GENG Yue,LI Yeqiu
(Shenyang Ligong University,Shenyang 110159,China)
A high speed and high precision laser time of flight (TOF) distance measurement system based on FPGA and TDC-GP21 was introduced.Multiple-level FSM was used as control system,and SPI interface was established to configure and control TDC-GP21 and receive result of measurement.Timing constraints was analyzed by TimeQuest.The experiment results showed that measurement repetition rate of is 40 KHz,the ranging precision of is ±100ps and high frequency stability can be achieved.
laser distance measurement;FPGA;TDC-GP21;FSM;Verilog HDL
2013-11-01
国家自然科学基金(61378075,61378042);辽宁省高校杰出青年学者成长计划(LJQ2013022);辽宁省教育厅科技项目(L2012070)
毛有明(1988—),男,硕士研究生;通信作者:岱钦(1977—),男,副教授,博士,研究方向:固体激光技术.
1003-1251(2014)05-0001-05
TN247
A
马金发)