周應發 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日。