基于DSP+FPGA的影像白板控制器设计
2013-11-16李斌飞安亮军
李斌飞 安亮军
(1.西藏职业技术学院,西藏 拉萨 850000;2.北京明航技术研究所,北京 100023)
目前市场上的影像白板产品,存在的最严重的问题是触摸延迟,使用者操作白板有明显滞后现象。造成操作延迟的主要有三个因素:摄像头输出延迟、数据传输延迟、算法延迟。 另外一个问题就是定位精度大部分区域比较精确,部分区域定位误差偏大。造成这个问题的主要有原因有:定位精度与摄像头分辨率、摄像头有效焦距、程序算法密切相关。针对上述问题设计了一款新型的影像白板控制器。
1 控制器设计思路
鉴于以上调研结果,本设计着重考虑以下两方面因素:
(1)摄像头,通过调研基本证明白板的书写流畅度、定位精确度、书写平滑度都与摄像头有着密不可分的关系。所以本系统摄像头拟采用高性能摄像头,鉴于目前没有试验依据做支撑,暂时采用普通摄像头进行试验,根据试验结论随时更换高性能摄像头。
(2)数据预处理、传输,本设计充分考虑到目前市场大多影像白板都存在书写滞后现象,所以针对数据传输方面设计时重点考虑以下几个因素:
①数据量大:由于数据来源都是摄像头数据,特点是输出数据量大(640*480*2*60byte),如此大的数据量直接由CPU直接读取处理显然是不可取的。需要有一个协处理器对数据进行预处理。
②输出速度高:普通摄像头输出速度为60帧/秒,输出主时钟48MHz如此高数据输出,一般CPU根本无法与之对接,必须要有200MHz以上主频CPU与之对接才能保证其数据传输的正确性。
③实时显示:由于开发过程中要考虑角度校正以及数据传输正确与否,所以系统设计中还要有液晶显示实现视频数据的同步显示。
④可靠性:如果传输过程中由于器件性能原因导致数据丢失或错误,会给后续实现坐标算法带来严重问题。所以所有数据传输中应尽量减少传输路径、避免数据流在PCB中大量搬移。
⑤PCB面积限制:由于本控制器要镶嵌到影像白板内部,所以对整个系统尺寸有严格要求,系统不能过于庞大。
⑥系统成本考虑:任何产品的盈利都是以产品成本为基础的,所以本设计也要充分考虑日后的成本因素。在保证产品性能的基础上最大化的降低产品成本。
2 实现方案
考虑到前期调研几个因素,本系统既要保证高速数据传输(60帧/秒)的可靠性,又要保证数据传输的实时性,还需要有视频信号同步显示。如果采用一般单线程(不包含数据缓存设计)数据流方式势必会造成帧数据丢失现象(第一帧数据处理时,同时第二帧数据已经同步输出)。所以协处理器采用ALTERA公司的高速FPGA芯片+双SRAM + LCD的结构模式。FPGA通过内部锁相环将主频率倍频至300MHz。第一帧数据在DSP中DMA传输、运算处理的同时FPGA同步控制预处理、缓存第二帧数据,利用FPGA并发运行的特点在FPGA内部设计三个功能模块,实现同步高速数据采集、存储、传输、实时显示。各模块说明如下:
数据采集与预处理模块:本模块是FPGA与摄像头的接口,它通过接收摄像头帧同步、行同步、输出时钟、总线接口采集摄像头数据,舍掉前200行与后200行数据,并且去掉YUV中的色差分量,只保留640*200的一部分视频数据的灰度信息。并同时将数据存入SRAM。
液晶显示模块:液晶显示模块采用320*240 TFT彩色LCD实现视频同步显示。液晶驱动程序全部由FPGA内部逻辑实现,由控制单元统一控制其运行。
控制单元:是FPGA运行的核心控制部分,承担数据暂存、同步显示、数据传输的所有控制。
3 控制原理
系统启动后首先控制后续DSP进入启动运行状态,当DSP完成对摄像头的参数配置后随即启动数据采集预处理、液晶显示两个模块。首先控制数据采集模块进行采集处理第一帧数据,并将数据写入SRAMA,当一帧数据采集完成后,通过内部总线切换,将数据采集处理模块将第二帧数据写入SRAMB,同时将SRAMA数据总线切换到LCD显示模块进行同步显示,显示完成后,再次将数据总线切换至DSP,并通过中断信号通知DSP进行DMA数据传输,将数据传输至DSP内存进行处理(图中红色箭头数据流方向)。SRAMA显示、DMA数据传输、SRAMB写入完成后,控制器控制两个SRAM再次功能切换,SRAMA写入数据,SRAMB显示传输数据(图中蓝色箭头数据流方向),如此往复实现数据的乒乓操作。实现上述大数据量实时采集、预处理、高速缓存、高速传输、同步显示功能。程序算法流程如图1所示。
图1 程序算法流程图
4 系统实现
由于所有操作都在FPGA内部逻辑实现,所以也最大程度的保证了数据可靠性的同时,也进一步满足了PCB尺寸限制的要求。考虑到本系统开发需要几项新技术领域(CMOS摄像头、FPGA、DSP),所以前期设计采用开发板+手工DIY的方式实现,不但大大缩短PCB设计周期,也加快开发人员熟悉开发平台的速度。成本方面采用FPGA + 双SRAM + DSP方式,可以根据实验结果采用CPLD替代FPGA,小容量SRAM替代大容量SRAM,单片机(ARM)或者低性能DSP替代高性能DSP方式在不改变系统结构、低成本的前提下保证产品性能。
5 结论
目前已经完成前期数据预处理、乒乓存储、LCD实时显示、DMA数据传输等前期基本实验,正在进行数据算法验证进程中。基本实验数据如下:
(1)摄像头帧频:60帧/秒,输出时间:16.67ms。
(2)LCD显示耗时(320*200):11.4ms(成熟产品中此时间可以让步给DSP进行数据处理)。
(3)FPGA与DSP握手(中断):1.9us(60帧情况下握手只需要1.9 * 60 =0.114ms)。
(4)DMA数据搬运耗时(10行数据):1.05ms。
(5)DSP算法耗时:未知。
(6)坐标上传耗时:未知。
按照目前试验结果来考虑,预期的数据预处理、乒乓存储、LCD实时显示、DMA数据传输都已经实现,由于批量产品中是不包含LCD模块,由于DMA传输时间与CPU运行算法时间是同步进行,所以从第二帧数据开始预留给DSP的全部算法时间为:16.67 ms-1.9us-(105us *传输行数),初步试验10行数据已可以满足要求。所以本系统设计可以满足预期设计要求。
[1]李山.交互式电子白板的应用及前景[J].中国教育技术装备,2004(03).
[2]顾晓祥,刘献忠.交互式电子白板基于内容的分形视频压缩[J].计算机应用研究,2010.