文献标识码:A
文章编号: 0258-7998(2014)09-0027-03
中文引用格式:段志坚,金湘亮.基于FPGA的新型TOF图像传感器驱动设计[J].电子技术应用,2014,40(09):27-29+33.
TOF(Time-of-Flight)方法即飞行时间法,其基本原理为光源向目标场景不断发射调制过的红外测量光线并开始计时,光束到达被测物体后发生反射,有一部分光线按原路径返回并被探测器接收,此时停止计时。根据光的飞行时间,结合飞行速度即可计算出光源与被测物体之间的距离[1]。
由于传统的成像系统提供的都是二维的信息,当使用计算机处理和分析这些图像、标记和追踪感兴趣目标时,无法获得物体间的前后关系,使得计算机无法理解其相互关系[2],而基于3D-TOF传感器的摄像系统则轻易解决了这个机器视觉领域的传统难题,TOF摄像机可直接提供详细的空间位置关系。与传统的成像设备相比较,TOF摄像系统能够很方便地区分出场景中的前景与后景,从而可以完成复杂目标物体的三维形态重建,通过扫描设备,能够以视频帧速率获取数量等于传感器像素的距离数据,进而判断目标实时姿态[3]。采用CMOS工艺和普通LED光源,可以使设备以较低成本生成,有广泛普及的潜力,三维TOF传感器主要应用在机器人、安全监控、多媒体交互、人机接口、测量等领域[4]。
13D-TOF图像传感器结构和工作时序分析
1.1 新型3D-TOF芯片简介
PMD PhotoICs 19K-S3是德国PMD公司的一款3D TOF传感器芯片,也是第一个商业化的Time-of-Flight 芯片,能够同时获取实时的深度和灰度信息,其精度高,功耗低,读出时钟能够达到15 MPixel/s;最大帧率为80 f/s;集成背景光抑制(SBI)功能;所有的复位时序、曝光时序和读出时序的控制端口都由外部电路提供,增加了设计自由度;提供ROI功能;片上调制驱动;由SPI总线配置,能准确计算出距离信息;在160×120的分辨率下,检测距离为2 m[5],典型的分辨率能够达到毫米级别。其结构如图1所示。
该传感器主要由像素阵列、模拟输出以及控制单元三部分组成。其中像素阵列大小为160×120,TOF图传感器阵列小的原因是这个传感器的单个像素面积要比传统的二维图像传感器大;模拟输出部分能够同时输出3个列信号,支持SPI总线配置寄存器,寄存器的配置方式决定了读出方式是移位寄存器读出方式还是ROI(Region of Interest)读出方式。
1.2 工作时序分析
传感器的总体工作时序如图2所示,可以看出,得到一帧的深度信息所需要的步骤分为复位、曝光和读出3步。复位过程主要通过Reset信号与Hold信号来实现,Hold信号为全局保持信号,此信号为低时收集电子,高电平时把每个读出节点(readout node)的积分电容断开,从而达到保持积分时间段里收集的电量值的功能。
TOF传感器的不同之处在于多了一个相位解调的过程,如图3所示。Modsel信号为FPGA发给传感器的调制信号,其频率最高可以达到80 MHz。在控制器发出调制信号Modsel的同时,FPGA还需要给中心波长为850 nm的近红外LED光源同样频率的调制信号,只是这两个信号之间有一定的相位差,解调相位需要4次曝光的过程,如图3所示,4次曝光的两个调试信号的相位差分别为0°、90°、180°以及270°,每次曝光后都会得到一个电量值。经过A/D转换后,利用式(1)得出最终的距离值d[6]:
其中c为光速, fmod为调制频率,典型的调制频率为20 MHz时,理论上的量程为15 m。
图3 相位测量示意图
移位寄存器读出方式如图4所示。读出时序由行控制信号与列控制信号组成,end_r与end_c信号为同步信号,用于数据后续的存储操作。从图中可以看出,选中一行后,能同时读出3列信号,每读完一行,end_r出现一个脉冲,表明一行读完,读完最后一个像素,end_c出现的脉冲就意味着一帧数据已经读完。
图4 移位寄存器读出方式时序
2 FPGA时序设计与仿真
传感器是整个采集系统的核心,而传感器的正常工作与否取决于外部信号是否是严格按照它的驱动时序提供的,这就需要一个控制器来完成这部分的工作。本文采用FPGA与Verilog语言设计TOF图像传感器的驱动时序,最终目的是得到正确的数据以供后面用于距离的计算。
PMD PhotoICs 19K-S3图像传感器在进行正常的深度图像采集时总共需要13个控制信号,这13个控制信号全部都由位于控制板上的FPGA芯片产生。按照自顶向下的设计方法,这些时序设计按照功能可以分为两个模块,即参数配置模块、像素阵列曝光读出控制模块。
由于得到一个场景的深度数据需要根据调制信号依次曝光4次,而曝光一次又需要依次分复位、积分、移位读出3个过程,为了便于控制,把其中的每个过程都分配为有限状态机(FSM)中的一个状态,即:reset,integration以及readout 3个状态,其状态转换图如图5所示,复位曝光以及读出方式的流程图如图6、图7所示。通过对基本时钟进行计数,确定状态转换的条件。
图6 复位曝光流程图
图7 寄存器读出方式流程图
状态图中的状态转换都由各自状态中的计数器得到,计数器的计数参考时钟是外部100 MHz的晶振时钟输入,20 MHz的调制信号通过PLL分频得到。
3 仿真与数据处理结果
将设计好的所有模块结合在一起,构成了传感器完整的驱动程序,用ModelSim 6.5SE进行仿真,其结果如图8所示。由图9所示的PC上计算得到的距离信息可以看出传感器能正确地把光信号转变成距离信息,所设计的时序符合TOF传感器控制的要求。
图8 ModelSim仿真结果
图9 上位机上显示采集到的深度数据
本文的设计验证用到的FPGA芯片是Xilinx公司的Sartan 3系列,设计的时序通过仿真验证后加载到FPGA中,经过一定的处理后,能够得到如图9所示的深度数据。为了验证数据的正确与否,把这些数据在MATLAB显示,其结果如图10所示,能够验证时序设计的正确性。程序设计中利用同步时钟控制全局电路的思想[7],避免竞争与冒险,提高了程序的可靠性;采用模块化的设计思想,提高程序的可重用性和可移植性,状态机的设计方法提高了程序运行的稳定性。
图10 深度数据三维重建结果
参考文献
[1] SPICKERMANN A,DURINI D,ULFIG W.CMOS 3-D image sensor based on pulse modulated time-of-flight principleand intrinsic lateral drift-field photodiode pixels[C].IEEE Eur.Solid-State Circuits Conference,2011:111-114.
[2] 丁津津,张旭东,高隽.基于TOF技术的3D相机应用研究综述[J].仪器仪表学报,2010,31(8):1-2.
[3] 潘华东,王其聪,谢斌,等.飞行时间法三维成像摄像机数据处理方法研究[J].浙江大学学报,2010,30(6):9-12.
[4] 王焕欣.新型光电测距与三维成像技术研究[D].合肥:中国科技大学,2009.
[5] PMDTechnologies GmbH.Novel Pixel Architecture with Inherent Background Suppression for 3D Time-of-Flight Imaging[R].SPIE,2005:130-147.
[6] FRANK M,PIAUE M,RAPP H,et al.Theoretical and experimental error analysis of continuous-wave time-of-flight
range cameras[J].Optical Engineering,2009,48(7):32-45.
[7] 吴征,苏淑靖.基于FPGA+PWM的多路信号发生器设计[J].电子技术应用,2014,40(3):38-40.