随着红外探测技术的发展及其在军事、工业等领域的广泛使用,红外图像处理算法获得了广泛研究。在实际嵌入式红外图像处理系统中,为了方便硬件调试和观察图像处理的效果,需要在系统中加入图像显示模块。通常视频数据流需要处理的数据量大,实时性要求高,所以需要高速大容量的存储器作为图像数据的缓存。用于图像数据缓存的存储器有3种:①同步动态随机存取存储器SDRAM(Synchronous DynamIC RAM),其容量大、速度快、体积小、价格低,但SDRAM的控制逻辑比较复杂,对时序要求也十分严格,需要设计专门的SDRAM控制器以完成与SDRAM芯片的接口;②双口RAM,它可以同时对数据进行读写,时序简单,操作非常方便,但是容量相对较小,而且价格高;③静态随机存取存储器SRAM(Static RAM),它不仅容量大、速度快、体积小、价格低,而且时序控制简单,但是数据不能同时读写,工程中多采用2片SRAM做乒乓操作来简化读写控制。针对实际工程中的体积小、成本低、开发周期短等要求,本文提出一种基于单片SRAM和FPGA的图像处理及显示方案,并在实际工程中得到了应用。
本文的初始设计是面向帧频为50帧/s、16 bit灰度、图像为320×256像素的红外图像输出显示,但其设计方案可以应用于不同帧频、灰度级及图像大小的图像显示。
1 系统硬件结构和工作原理
系统硬件结构图如图1所示。本系统中,高速串行LVDS视频信号经Camera Link接收芯片DS90CR285接收转化为并行TTL电平后送给FPGA,同时,其他系统的高速串行LVDS格式数据也可以直接送至FPGA。这些视频数据经FPGA进行直方图统计,并存储在SRAM中。然后,FPGA在存储间隙读出SRAM内的有效像素数据,并采用直方图统计的参数对图像灰度拉伸,然后送至视频转换芯片ADV7123进行D/A转换显示。
2 各功能模块设计
2.1 Camera Link接口
本方案选用DS90CR285将Camera Link格式的4对串行LVDS图像信号转换成28 bit并行TTL/CMOS的数据。根据Camera Link基本协议,28 bit数据信号中包括3个数据端口:A口(8 bit)、B口(8 bit)、C口(8 bit),和4个视频控制信号FVAL(帧有效)、DVAL(数据有效)、LVAL(行有效)、SPARE(空,暂时未用)。经过Camera Link芯片转换后的时钟信号是整个相机的同步驱动信号,所有的数据和视频控制信号都和该时钟信号同步。数据转换后送入FPGA的时序如图2。
2.2 FPGA核心功能模块实现
本设计中视频数据的处理都在FPGA内实现,其内部功能框图见图3。