基于FPGA的激光触控系统的研究
2019-11-12李丽李龙民王红蛟
李丽 李龙民 王红蛟
摘 要:基于FPGA的高速数据处理能力,文章提出了以FPGA为核心处理器的激光触控系统的设计,在本设计中使用FPGA完成数据图像的采集、图像存储、图像处理与识别以及图像激光触点坐标的计算和发送。文章利用FPGA的高速处理能力,控制激光器发送高频率的激光脉冲,并对屏幕进行一定评率的画面采集,通过画面对比锁定激光触点的准确坐标位置。
关键词:FPGA;激光触控;研究
中图分类号:TN249 文献标志码:A 文章编号:2095-2945(2019)29-0011-02
Abstract: Based on the high speed data processing capability of FPGA, this paper presents the design of laser touch control system with FPGA as the core processor. In this design, FPGA is used to complete the data image acquisition, image storage, image processing and recognition, as well as the calculation and transmission of image laser contact coordinates. In this paper, the high speed processing ability of FPGA is used to control the laser to send high frequency laser pulse, and the screen is collected with a certain evaluation rate, and the accurate coordinate position of the laser contact is locked through the contrast of the pictures.
Keywords: FPGA; laser touch; study
1 概述
隨着图像处理技术的不断发展,图像处理、图像识别等技术的应用也越来越广泛,图像的识别在人机交互方面也发挥着重要的作用。本文在图像识别的基础上提出了一种基于FPGA的激光触控系统,本设计利用FPGA高速处理特性完成了激光与图像采集的同步控制,完成对采集到的多幅图像进行识别计算,进而锁定激光触点的位置坐标,并将位置信息传送给上位机,实现激光触控。
使用FPGA实现系统的逻辑控制、数据处理、无线通信等功能具有以下优势:复杂的算法嵌入到硬件系统中,可以增加系统各模块的配合、数据的处理在激光发射端进行可以减少无线传输模块的数据传输负担,增加了系统的实时性。考虑到上述在设计中的优势,本文采用FPGA实现激光脉冲的触发、数据图像的采集、处理和计算以及无线模块的控制。完成各个模块的设计,进行系统联调,系统仿真、硬件实现均正常。
2 系统设计
该系统主要包括激光驱动模块、激光获取模块、图像处理模块、激光点位置计算模块、无线发送和接收模块。FPGA控制激光模块发送间断性的激光脉冲,同时控制摄像头OV7725对当前画面进行图像采集,采集图像时间的时间点与激光脉冲关系如图2所示[1]。
图2 图像采集与激光脉冲时序图
3 图像处理及坐标计算
3.1 OV7725摄像头模块
摄像头 OV7725内部集成了DSP处理器,具有标准的SCCB配置接口,SCCB 时序与 I2C 时序类似[2],SCCB总线仿真时序如图3所示。
图3 I2C总线仿真图
SCLK为高电平,SDA由高电平变低电平,总线开始传输;SCLK为高电平,SDA由低电平变高电平,总线传输结束。SCCB为串行传输,每次传送一个字节。通过SCCB设置OV7725的工作模式后,就能够捕获图像数据。
3.2 SDRAM存储模块
为了解决图像的采集和SDRAM的快速接收问题,调用FIFO模块来实现解决在这个模块中的跨时钟域问题[3]。为了实现图像的快速处理,系统采用乒乓操作,调用两个FIFO模块,一个用于读取,一个用于写入。先对FIFO写入,当FIFO写满之后,控制器将FIFO中的数据一次性取出,放在SDRAM的第一块当中,供后续进行数据的处理。这样系统进行数据的一边读和一边写,不仅加快了后面数据的处理,而且还充分利用了SDRAM的空间[4]。
3.3 边缘检查
Roberts边缘算子采用的是对角方向相邻的两个像素之差。从图像处理的实际效果来看,边缘定位准,对噪声敏感。Roberts边缘检查算子是一种利用局部差分算子寻找边缘的算子,它由下式给出[5]:
其中G[i,j]表示处理后(i,j)点的灰度值,f[i,j]表示处理前该点的灰度值。f(i,j)是具有整数像素坐标的输入图像,平方根运算使该处理类似于人类视觉系统中发生的过程。利用Roberts边缘算子对由激光斑点和无激光斑点的图像数据进行处理,如图4-图7。从处理后的图像可以看出,两幅图在激光斑点处存在明显的差异。
3.4 坐标计算
由图4-图7,图4和图6均为触控阶段采集到的图像,不过对应激光触发和非触发的两个阶段,系统正是通过控制在触控阶段的激光器分时段触发,并分别采集激光器触发和非触发状态的图像,由于时间间隔非常小,理论上采集的两张图像信息除了激光斑点的不同,其它画面完全相同。采集到的图像如图4和图6,处理后的图像如图5和图7。通过比对图5和图7中差异区域,判断该触点位置,并计算出该触点相对于屏幕的坐标位置(x,y)。用过无线模块,将坐标信息发送给电脑连接端。
4 结束语
通过FPGA的高速数据处理功能,完成激光模块的驱动、系统图像数据的采集、数据处理以及数据图像对比,进行坐标位置的计算。该方案通过FPGA完成大部分的处理功能,减少了无线传输的数据量,增加了触控的实时性,使系统在处理速度和效率方面都达到最佳效果。采用间隔触发激光和同步分阶段图像采集和处理,使系统锁定激光触点位置。各个模块协调工作完成坐标的计算。
参考文献:
[1]陈慧.基于FPGA的高复杂度激光脉冲编码器设计[D].长春理工大学,2018.
[2]陈业慧,黄凯.基于OV7725二值化图像的无线实时传输[J].长沙大学学报,2018,32(02):39-41.
[3]齐佳硕,王洪岩.基于FPGA的SDRAM接口设计及实现[J].电子测量技术,2018,41(19):141-144.
[4]牛博,赵宏亮.一种高可靠性高速可编程异步FIFO的设计[J].电子技术应用,2019,45(07):36-39+43.
[5]韩利利,田益民,齐千慧,等.基于MATLAB数字图像边缘检测算法的研究[J].北京印刷学院学报,2019,27(07):98-101.