周应发 ZHOU Ying-fa;黄泽锷 HUANG Ze-e
(广州飒特红外股份有限公司,广州 510006)
(Guangzhou SAT Infrared Co.,Ltd.,Guangzhou 510006,China)
基于FPGA的USB视频传输系统设计
周应发 ZHOU Ying-fa;黄泽锷 HUANG Ze-e
(广州飒特红外股份有限公司,广州 510006)
(Guangzhou SAT Infrared Co.,Ltd.,Guangzhou 510006,China)
本设计以高清CCD模块采集到的可见光视频图像通过USB实时传输到PC机为例,阐述USB视频系统的设计。系统使用OmniVision的OV5640 CCD图像传感器作为光电成像器件,采用USB2.0控制器芯片CY7C68014A与FPGA直连,通过FPGA对高清CCD模块的视频数据进行处理并传输到USB芯片上,最后在PC机上实时显示。该设计结构简单,使用方便,便于大型系统的设计。通过该设计实现高清CCD的USB实时传输,已在相关手持设备产品中进行应用。
图像传感器;USB;图像传输
随着科技发展,CCD器件及其应用技术的研究取得了惊人的进展。与CMOS器件相比,成像方面相同像素下CCD的成像通透性、明锐度都很好,色彩还原、曝光可以保证基本准确。而CMOS的产品往往通透性一般,对实物的色彩还原能力偏弱,曝光也都不太好。目前市面上绝大多数的消费级别以及高端数码相机都使用CCD作为感应器;CMOS感应器则作为低端产品应用于一些摄像头上。
USB(Universal Serial Bus)通用串行总线是一种PC机与外围设备间的高速通信接口,它具备其他总线无法比拟的优点:连接简便,即插即用;高传输速率;能够自动检测和配置外围设备。USB2.0协议其理论最高传输速度可达480Mbps,为计算机与外设的高速数据交换提供了可能,也为高分辨率动态图像采集系统提供了理想选择[1-2]。
系统采用Spartan-6系列的FPGA,该系列的FPGA为成本敏感型应用带来了低风险、低成本和低功耗的最佳平衡,与前几代器件相比,不仅功耗降低42%,同时性能提高12%。该系列不仅拥有业界领先的系统集成能力,同时还能实现适用于大批量应用的最低总成本[3-4]。由于该USB实时传输系统仅是手持设备系统中的一个组成部分,采用该FPGA有利于大系统的设计与管理。
本文中介绍如何结合FPGA技术,利用 OmniVision公司的OV5640 CCD图像传感器和Cypress公司的CY7C68014A控制传输芯片(内部集成了增强型51内核)来实现高速图像采集与传输。
系统由数据采集、传输、显示,三部分构成。并采用Spartan-6系列的FPGA,型号为XC6SLX45来进行设计。
1.1 数据采集系统设计 系统视频来源于高清CCD模块,模块中使用的OV5640是一款1/4英寸5百万像素的高性能图像传感器。要从该模块从获取视频图像数据涉及到两个方面,首先是给CCD模块供电,该模块必须提供三组电源2.8V,1.8V,1.5V。设计时可通过主电源(本系统主电源为3.7V)输入到线性电源芯片,产生相应的电压。在FPGA中可使用任意两根线与CCD模块的IIC接口相连。该模块供上电后,,用模拟IIC的方式对该模块寄存器进行配置[5-6]。此处将输出格式配置为8-bit YCbCr,并以640X480预览模式,30帧每秒为例。该CCD模块输出的视频数据信号与FPGA的接口如图1所示。
FPGA将从CCD模块中采集的图像数据经过处理,存放在外部DDR存储器中。
1.2 数据传输,显示系统设计 Cypress公司的USB芯片CY7C68014A可使最高数据传输率达到480Mbps。即USB2.0允许的最高速度。
1.2.1 USB固件程序编写 在USB设备与PC正常通信之前,主机必须检测并配置设备,所以用户必须编写固件程序代码,响应主机的控制请求命令,并能够提供描述符,使主机了解设备的功能,从而配置设备,开始与设备正常通信。Cypress为用户提供了一个固件程序框架firmware,它帮助用户完成了大部分与USB协议相关的工作[7]。用户根据外设功能的具体要求,在相应的函数中填写函数体可以完成开发。系统需要对USB端口及FIFO的初始化配置。通过设置相关的寄存器来设置FX2的工作状态。例如USB内核工作在USB2.0方式,由固件程序应答USB传输等。系统传输使用同步FIFO传输模式。
1.2.2 USB驱动程序编写 FX2通用驱动程序CyUSB.sys,是Cypress公司提供的通用驱动程序,系统连接PC时如果找不到设备,可按照主机驱动帮助文件[8]第14页介绍的方法.将设备的PID,VID加入到驱动中。
1.2.3 USB图像传输系统设计 系统传输与显示的框图如图2所示。
由于Cypress公司的EZ-USB FX2系列芯片支持一种简便的更新方式:设备在每次接入主机时,主机自动将程序代码加载到设备的程序存储器中,然后重新枚举设备。所以,系统设备使用了一片串行EEPROM,在设备接入主机时,从EEPROM中加载固件程序到设备。系统中PC与USB模块之间有4个数据传输通道,分别是:计算机发送指令数据包到USB,使用0号通道。计算机从USB读取指令执行情况,使用1号通道。计算机发送数据到USB,使用2号通道。计算机从USB读取数据,使用3号通道。这4种传输过程分别使用不同的数据通道,其中第0、1号通道叫命令通道,数据包最小为1个字节,最大是64字节;第2、3号通道叫数据通道,最小是2K(2048)字节,最大是3M字节。系统中FPGA与USB芯片通过直连的方式通信,数据传输方式使用同步FIFO接口。主要数据接口如图3所示。
当需要在PC机上实时显示图像时,用户通过在PC的应用界面上操作,从而由PC机通过命令通道发送命令给USB芯片,USB芯片又发送命令给FPGA,FPGA将从高清CCD模块获取到的图像数据不断的送往USB芯片内部FIFO,同时FPGA通过与USB连接的查空信号FIFO_Empty和查满信号FIFO_Full,决定是否可以继续往USB内部的FIFO送数据。USB芯片的作用是将FPGA传输过来的图像数据通过数据通道送往PC机的应用程序进行显示[9]。
通过对系统相关设计详细了解后,使用上述方法进行设计,并设置OV5640为640X480预览模式,30帧每秒。PC上图像显示效果如图4所示,该系统已成功应用在公司的手持设备中。
[1]苏建坡,马海涛,唐玉国.基于USB2.0及GPIF的CMOS图像传感器视频实时采集系统[J].仪表技术与传感器,2006,12(09):35-37.
[2]李杰,刘金国,王英霞等.CMOS有源图像传感器的最新研究进展[J].传感器技术,2005,24(1):7-8.
[3]Spartan-6 Family Overview/DataSheet[M].Xilinx,2010.
[4]Spartan-6 FPGA Packaging and Pinouts/DataSheet[M].Xilinx,2010.
[5]杨介生.虚拟 I2C总线技术实现SAA7111的初始化[J].雷达与对抗,2005(3):60-63.
[6]张冬冬.IIC总线通讯接口器件的CPLD实现[J].电子技术应用,2002(08).
[7]钱峰.EZ-USB FX2单片机原理、编程及应用[M].北京:北京航空航天大学出版社,2006.
[8]CYUSB3.SYSPROGRAMMER'SREFERENCE/DataSheet[M].Cypress,2012.
[9]基于USB2.0的CMOS图像采集系统的实现[J].微计算机信息,2009(10).
USB Video Transmission System Based on FPGA
The module is designed to capture high-definition CCD visible,and then transferred video images via USB to a PC in real-time.The system uses OmniVision's OV5640 CCD image sensor as a photoelectric device,and With USB2.0 controller chip CY7C68014A directly connected with the FPGA.Through the FPGA video data from the high-definition CCD module was processed and transferred to the USB chip,and finally displayed on the PC.The design is simple,easy to use,and fitted for large-scale systems.The design and implementation of real-time transmission of high-definition CCD via a USB have been conducted in the handheld products.
image sensor;USB;image transmission
周应发(1978-),男,贵州织金人,学士,广州飒特红外股份有限公司,副总工程师;黄泽锷(1983-),男,广东揭阳人,硕士研究生,广州飒特红外股份有限公司,电子工程师。
TP302.1
A
1006-4311(2014)13-0192-02
2014年2月24日。