摘 要:随着半导体技术的发展,COMS图像传感器的灵敏度、分辨率动态范围不断提高,采用高速COMS图像传感器替代传统的CCD图像传感器作为激光通信中APT系统的激光光斑探测单元是APT发展的一种趋势。提出了一种基于高速LUPA-300 COMS图像传感器、DSP和FPGA的通用型高帧频光斑采集系统。FPGA内部生成的异步FIFO作为图像传感器与DSP之间的数据缓冲器,简化了系统结构布局,提高了系统稳定性。经过硬件电路设计、调试、软件部分调试等工作,最终实现了每秒钟1 000帧128×128图像的数据采集,可用于高速激光光斑的采集。
关键词:COMS图像传感器;高帧频;DSP;异步FIFO
激光光通信系统中,通信链路成功建立主要是由激光通信设备中的APT系统完成的。APT系统利用光电图像传感器摄取视频信号,送入图像处理单元进行处理和分析,计算目标光斑在每一帧的坐标偏移,控制天线轴的姿态,进而实现通信终端双方自动瞄准、捕获和跟踪。但激光通信环境复杂,容易受到各种干扰造成跟踪失败[1]。目前消除干扰的传统做法是提高跟踪带宽,即利用高帧频图像处理设备提高采样频率。因此本文提出了一种以高性价比的定点DSP与FPGA芯片作为系统控制单元,以LUPA-300 COMS图像传感器作为光电探测单元设计并实现了一套高帧频激光光斑采集设备。该系统利用LUPA-300灵活的开窗功能,不但满足粗跟踪高像素的要求,而且还可以通过开窗降低图像传感器的有效像素,提高帧频率,达到精跟踪对速度的要求,在激光通信中具有很高的实用价值。
1 系统硬件设计
系统设计的难点在于高速图像的获取并在最短的时间内完成图像的处理。为此,系统选用了LUPA-300高速COMS图像传感器作为高速图像获取单元实现高速图像的采集。该款图像传感器最大速率为80 Mb/s,在面阵输出有效像素640×480时,帧频可达到250 f/s。支持开窗功能,通过3线SPI接口对图像传感器进行灵活配置,在窗口面积为128×128时帧频更可高达3 790 f/s[2]。同时选取高性价比的DSP处理芯片TMS320C6413实现图像处理工作。该处理器是TMS320C64X系列定点DSP控制器,集成了多个功能单元,可同时执行8条指令,其运算能力可达到3 200 MIPS,特别适合用于通信、医疗和图像处理设备中。
另外,为了方便控制图像传感器,图像传感器采集的图像信息还需要正确地传输到DSP中,以实现图像采集与图像处理并行运行。图像传感器的控制要求控制单元必须有大量的I/O口,如图像传感器启动信号、时钟信号、帧有效信号和行有效信号等。同时这些控制功能的实现要求系统具有高度的并行性,所以系统还搭载了一块FPGA。这里采用Xilinx公司Spartan-3AN系列的XC3S200AN,该芯片能提供了256路的I/O口,内部还嵌入大量的Block RAM,可以满足系统的需要。针对这一设计,给出系统的总体原理框图如图1所示。
2.1.2 TMS320C6413中EDMA模块参数配置
利用EMDA后台传输数据的能力,在不影响或基本不影响CPU处理速度的情况下,做并行数据传输[4]。系统中EDMA通道4用来搬移异步缓冲器中的图像数据到TMS320C6413芯片内存中。为了满足系统的需要,对EDMA模块其进行了如下配置:主控寄存器OPT配置为0x1a00060;ESIZE=00b传输元素的字长为32 bit,SUM=00b源地址固定不变,DUM=01b按照目的地址元素大小更新,FS=1b事件用作帧同步。其中寄存器控制域的含义可以查阅相关手册,源地址寄存器0xb0000000,目的地址寄存器0x20400,传输计数寄存器0x4000。
2.1.3 TMS320C6413读取数据过程分析
FPGA每采集完一帧图像数据,异步缓冲器FIFO根据满标志位通过DSP外部中断引脚4触发EDMA通道4搬移一帧图像数据。根据EDMA配置,EMDA通道4在每一个中断信号产生后搬移一幅128×128 B的图像数据,通道4完成一帧图像搬移后等待下一个中断信号的到来,继续搬移图像数据。EMDA正是通过这种方式使得系统在基本不降低CPU处理图像数据性能的情况下,实现了连续图像数据搬移的工作。
2.2 LUPA-300图像传感器控制部分
系统中对LUPA-300图像传感器的控制工作是由FPGA完成的。对图像传感器的控制需要完成图像传感器相应的定制和图像传感器的启动工作。
2.2.1 图像传感器的定制
系统上电后,为了使图像传感器满足系统不同的工作的需要,通常需要对图像传感器做相应的定制工作。图像传感器的定制方式是,由FPGA中的SPI模块通过图像传感器的3线SPI接口按照实际需要,对图像传感器里的16个16 bit的寄存器写入相应的值。为了实现FPGA中SPI模块的正确通信,完成图像传感器的正确配置还需模拟图像传感器SPI接口工作时序图[5]。图3中SDATA数据线在时钟信号SCLK的驱动下每传输完16 bit数据,SEN就输出一个高电平完指示一个寄存器的配置。重复此过程,直至16个寄存器配置完成,实现图像传感器的定制工作。
2.2.2 图像传感器的启动
图像传感器配置完成后,图像传感器要实现图像采集工作(光电转换)还需要一个启动时序对其进行启动。图像传感器启动工作相对简单,FPGA里面的启动模块只需要在图像传感器引脚RESET_N给一个至少持续500 ns的低电平后,将RESET_N拉高就实现了图像传感器的启动工作。
2.2.3 FPGA缓存图像数据
FPGA通过数据采集模块来完成对图像传感器的数据进行采集并缓存到异步FIFO中等待TMS320C6413的读出,数据采集模块主要通过判断图像传感器的帧有效信号(LUPA-300引脚FRAM_VALID)和行有效信号(LUPA-300 引脚LINE_VALID)确定何时对LPUA-300图像传感器的DATA<0..7> 8个引脚输出的数据进行采集(系统只利用了LUPA-300信号线的低8位)。FPGA中的数据采集模块对图像传感器的数据采集工作流图如图4所示。
其中,缓冲器的作用由两个功能完全相同、容量为128×128 B的异步FIFO完成。当图像传感器帧有效信号(LUPA-300引脚FRAM_VALID)和行有效信号(LUPA-300引脚LINE_VALID)同时为高电平时,代表LUPA-300图像传感器输出数据有效,FPGA通过数据采集模块将图像传感器转换的图像数据缓存到异步FIFO中。在图像数据缓存开始时,首先判断FLAG是否为偶数,如果是则将图像数据缓存到FIFO2中,否则缓存到FIFO1中。一帧图像数据缓存完成后FLAG加1,图像采集模块等待下一帧图像数据有效准备缓存数据。设计两个缓冲器的目的在于将图像数据的存(写缓冲器动作)与图像数据的取(读缓冲器的动作)分开,以提高系统的处理速度。当TMS320C6413读出FIFO1缓冲器的数据时, FPGA里的数据采集模块正向FIFO2写数据。当FIFO2写完成后,数据采集模块通过TMS320C6413外部中断引脚4发送中断信号通知EMDA读取图像数据到TMS320C6413内存中,缓冲器读写操作交替进行。
3 系统测试和分析
程序下载完毕后,利用ISE自带的Chipscope软件测试各模块工作时序是否满足要求。TMS320C6413 芯片主频为406.425 6 MHz,EMIF以6分频时钟(67.737 6 MHz)通过TMS320C6413 AECLOCKOUT2引脚提供给FPGA,经过FPGA时钟管理模块再次分频到19.353 6 MHz提供给LUPA-300图像传感器作为图像传感器的时钟源。在这里系统利用AECLOCKOUT2时钟引脚作为TMS320C6413访问FPGA中异步缓冲器的同步时钟信号。TMS320C6413芯片通过EMIF接口以读同步FIFO的方式读出图像数据,通过自带的Chipscope软件对EMIF模块的实际工作时序进行测试得到如图5所示时序图,其中采样时钟信号为TMS320C6413芯片AECLOCKOUT2引脚提供的时钟源。图5中,通过分析可得,TMS320C6413与FPGA通信的数据速率约为197 Mb/s,其计算过程如式(1)所示:
参考文献
[1] 卢宁,柯熙政,张华.自由激光通信中APT粗跟踪研究[J].红外与激光工程,2010,39(5):943-949.
[2] 杨会玲,杨会伟,王军.基于PCI Express总线的高帧频COMS相机图像采集系统设计[J].电子技术应用,2009,35(4):91-97.
[3] 马汉波,颜钢锋.基于DSP和FPGA的多轴运动控制系统设计[J].电子技术应用,2013,39(3):34-36.
[4] 代少升,袁祥辉.DMA在实时图像中的应用[J].重庆大学学报,2003,26(12):22-24.
[5] 康宁,王元庆.基于FPGA+DSP的人民币图像鉴别平台设计[J].电子技术应用,2012,38(12):20-22.