周應(yīng)發(fā) ZHOU Ying-fa;黃澤鍔 HUANG Ze-e
(廣州颯特紅外股份有限公司,廣州 510006)
(Guangzhou SAT Infrared Co.,Ltd.,Guangzhou 510006,China)
基于FPGA的USB視頻傳輸系統(tǒng)設(shè)計
周應(yīng)發(fā) ZHOU Ying-fa;黃澤鍔 HUANG Ze-e
(廣州颯特紅外股份有限公司,廣州 510006)
(Guangzhou SAT Infrared Co.,Ltd.,Guangzhou 510006,China)
本設(shè)計以高清CCD模塊采集到的可見光視頻圖像通過USB實(shí)時傳輸?shù)絇C機(jī)為例,闡述USB視頻系統(tǒng)的設(shè)計。系統(tǒng)使用OmniVision的OV5640 CCD圖像傳感器作為光電成像器件,采用USB2.0控制器芯片CY7C68014A與FPGA直連,通過FPGA對高清CCD模塊的視頻數(shù)據(jù)進(jìn)行處理并傳輸?shù)経SB芯片上,最后在PC機(jī)上實(shí)時顯示。該設(shè)計結(jié)構(gòu)簡單,使用方便,便于大型系統(tǒng)的設(shè)計。通過該設(shè)計實(shí)現(xiàn)高清CCD的USB實(shí)時傳輸,已在相關(guān)手持設(shè)備產(chǎn)品中進(jìn)行應(yīng)用。
圖像傳感器;USB;圖像傳輸
隨著科技發(fā)展,CCD器件及其應(yīng)用技術(shù)的研究取得了驚人的進(jìn)展。與CMOS器件相比,成像方面相同像素下CCD的成像通透性、明銳度都很好,色彩還原、曝光可以保證基本準(zhǔn)確。而CMOS的產(chǎn)品往往通透性一般,對實(shí)物的色彩還原能力偏弱,曝光也都不太好。目前市面上絕大多數(shù)的消費(fèi)級別以及高端數(shù)碼相機(jī)都使用CCD作為感應(yīng)器;CMOS感應(yīng)器則作為低端產(chǎn)品應(yīng)用于一些攝像頭上。
USB(Universal Serial Bus)通用串行總線是一種PC機(jī)與外圍設(shè)備間的高速通信接口,它具備其他總線無法比擬的優(yōu)點(diǎn):連接簡便,即插即用;高傳輸速率;能夠自動檢測和配置外圍設(shè)備。USB2.0協(xié)議其理論最高傳輸速度可達(dá)480Mbps,為計算機(jī)與外設(shè)的高速數(shù)據(jù)交換提供了可能,也為高分辨率動態(tài)圖像采集系統(tǒng)提供了理想選擇[1-2]。
系統(tǒng)采用Spartan-6系列的FPGA,該系列的FPGA為成本敏感型應(yīng)用帶來了低風(fēng)險、低成本和低功耗的最佳平衡,與前幾代器件相比,不僅功耗降低42%,同時性能提高12%。該系列不僅擁有業(yè)界領(lǐng)先的系統(tǒng)集成能力,同時還能實(shí)現(xiàn)適用于大批量應(yīng)用的最低總成本[3-4]。由于該USB實(shí)時傳輸系統(tǒng)僅是手持設(shè)備系統(tǒng)中的一個組成部分,采用該FPGA有利于大系統(tǒng)的設(shè)計與管理。
本文中介紹如何結(jié)合FPGA技術(shù),利用 OmniVision公司的OV5640 CCD圖像傳感器和Cypress公司的CY7C68014A控制傳輸芯片(內(nèi)部集成了增強(qiáng)型51內(nèi)核)來實(shí)現(xiàn)高速圖像采集與傳輸。
系統(tǒng)由數(shù)據(jù)采集、傳輸、顯示,三部分構(gòu)成。并采用Spartan-6系列的FPGA,型號為XC6SLX45來進(jìn)行設(shè)計。
1.1 數(shù)據(jù)采集系統(tǒng)設(shè)計 系統(tǒng)視頻來源于高清CCD模塊,模塊中使用的OV5640是一款1/4英寸5百萬像素的高性能圖像傳感器。要從該模塊從獲取視頻圖像數(shù)據(jù)涉及到兩個方面,首先是給CCD模塊供電,該模塊必須提供三組電源2.8V,1.8V,1.5V。設(shè)計時可通過主電源(本系統(tǒng)主電源為3.7V)輸入到線性電源芯片,產(chǎn)生相應(yīng)的電壓。在FPGA中可使用任意兩根線與CCD模塊的IIC接口相連。該模塊供上電后,,用模擬IIC的方式對該模塊寄存器進(jìn)行配置[5-6]。此處將輸出格式配置為8-bit YCbCr,并以640X480預(yù)覽模式,30幀每秒為例。該CCD模塊輸出的視頻數(shù)據(jù)信號與FPGA的接口如圖1所示。
FPGA將從CCD模塊中采集的圖像數(shù)據(jù)經(jīng)過處理,存放在外部DDR存儲器中。
1.2 數(shù)據(jù)傳輸,顯示系統(tǒng)設(shè)計 Cypress公司的USB芯片CY7C68014A可使最高數(shù)據(jù)傳輸率達(dá)到480Mbps。即USB2.0允許的最高速度。
1.2.1 USB固件程序編寫 在USB設(shè)備與PC正常通信之前,主機(jī)必須檢測并配置設(shè)備,所以用戶必須編寫固件程序代碼,響應(yīng)主機(jī)的控制請求命令,并能夠提供描述符,使主機(jī)了解設(shè)備的功能,從而配置設(shè)備,開始與設(shè)備正常通信。Cypress為用戶提供了一個固件程序框架firmware,它幫助用戶完成了大部分與USB協(xié)議相關(guān)的工作[7]。用戶根據(jù)外設(shè)功能的具體要求,在相應(yīng)的函數(shù)中填寫函數(shù)體可以完成開發(fā)。系統(tǒng)需要對USB端口及FIFO的初始化配置。通過設(shè)置相關(guān)的寄存器來設(shè)置FX2的工作狀態(tài)。例如USB內(nèi)核工作在USB2.0方式,由固件程序應(yīng)答USB傳輸?shù)?。系統(tǒng)傳輸使用同步FIFO傳輸模式。
1.2.2 USB驅(qū)動程序編寫 FX2通用驅(qū)動程序CyUSB.sys,是Cypress公司提供的通用驅(qū)動程序,系統(tǒng)連接PC時如果找不到設(shè)備,可按照主機(jī)驅(qū)動幫助文件[8]第14頁介紹的方法.將設(shè)備的PID,VID加入到驅(qū)動中。
1.2.3 USB圖像傳輸系統(tǒng)設(shè)計 系統(tǒng)傳輸與顯示的框圖如圖2所示。
由于Cypress公司的EZ-USB FX2系列芯片支持一種簡便的更新方式:設(shè)備在每次接入主機(jī)時,主機(jī)自動將程序代碼加載到設(shè)備的程序存儲器中,然后重新枚舉設(shè)備。所以,系統(tǒng)設(shè)備使用了一片串行EEPROM,在設(shè)備接入主機(jī)時,從EEPROM中加載固件程序到設(shè)備。系統(tǒng)中PC與USB模塊之間有4個數(shù)據(jù)傳輸通道,分別是:計算機(jī)發(fā)送指令數(shù)據(jù)包到USB,使用0號通道。計算機(jī)從USB讀取指令執(zhí)行情況,使用1號通道。計算機(jī)發(fā)送數(shù)據(jù)到USB,使用2號通道。計算機(jī)從USB讀取數(shù)據(jù),使用3號通道。這4種傳輸過程分別使用不同的數(shù)據(jù)通道,其中第0、1號通道叫命令通道,數(shù)據(jù)包最小為1個字節(jié),最大是64字節(jié);第2、3號通道叫數(shù)據(jù)通道,最小是2K(2048)字節(jié),最大是3M字節(jié)。系統(tǒng)中FPGA與USB芯片通過直連的方式通信,數(shù)據(jù)傳輸方式使用同步FIFO接口。主要數(shù)據(jù)接口如圖3所示。
當(dāng)需要在PC機(jī)上實(shí)時顯示圖像時,用戶通過在PC的應(yīng)用界面上操作,從而由PC機(jī)通過命令通道發(fā)送命令給USB芯片,USB芯片又發(fā)送命令給FPGA,F(xiàn)PGA將從高清CCD模塊獲取到的圖像數(shù)據(jù)不斷的送往USB芯片內(nèi)部FIFO,同時FPGA通過與USB連接的查空信號FIFO_Empty和查滿信號FIFO_Full,決定是否可以繼續(xù)往USB內(nèi)部的FIFO送數(shù)據(jù)。USB芯片的作用是將FPGA傳輸過來的圖像數(shù)據(jù)通過數(shù)據(jù)通道送往PC機(jī)的應(yīng)用程序進(jìn)行顯示[9]。
通過對系統(tǒng)相關(guān)設(shè)計詳細(xì)了解后,使用上述方法進(jìn)行設(shè)計,并設(shè)置OV5640為640X480預(yù)覽模式,30幀每秒。PC上圖像顯示效果如圖4所示,該系統(tǒng)已成功應(yīng)用在公司的手持設(shè)備中。
[1]蘇建坡,馬海濤,唐玉國.基于USB2.0及GPIF的CMOS圖像傳感器視頻實(shí)時采集系統(tǒng)[J].儀表技術(shù)與傳感器,2006,12(09):35-37.
[2]李杰,劉金國,王英霞等.CMOS有源圖像傳感器的最新研究進(jìn)展[J].傳感器技術(shù),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總線技術(shù)實(shí)現(xiàn)SAA7111的初始化[J].雷達(dá)與對抗,2005(3):60-63.
[6]張冬冬.IIC總線通訊接口器件的CPLD實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2002(08).
[7]錢峰.EZ-USB FX2單片機(jī)原理、編程及應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2006.
[8]CYUSB3.SYSPROGRAMMER'SREFERENCE/DataSheet[M].Cypress,2012.
[9]基于USB2.0的CMOS圖像采集系統(tǒng)的實(shí)現(xiàn)[J].微計算機(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
周應(yīng)發(fā)(1978-),男,貴州織金人,學(xué)士,廣州颯特紅外股份有限公司,副總工程師;黃澤鍔(1983-),男,廣東揭陽人,碩士研究生,廣州颯特紅外股份有限公司,電子工程師。
TP302.1
A
1006-4311(2014)13-0192-02
2014年2月24日。