馮 祎 吳 超 王景中
(北方工業(yè)大學(xué)信息工程學(xué)院,北京石景山 100144)
USB2.0接口以其高速的數(shù)據(jù)傳輸能力,在視頻數(shù)據(jù)傳輸系統(tǒng)中有著廣泛的應(yīng)用。但以往都是在視頻采集芯片和USB控制芯片之間加上了FPGA或者CPLD等邏輯控制器件,這樣雖降低了開發(fā)難度,但也不可避免的增加了硬件資源,增加了生產(chǎn)成本。
因此,本文采用cmos視頻采集芯片直接與USB控制芯片相連,數(shù)據(jù)無需再經(jīng)過中間邏輯器件打包發(fā)送給USB控制器,而是直接由USB控制器上傳到上位機(jī)。這里coms攝像頭選用MICRON圖像傳感器MT9V032,USB控制器采用Cypress的EZ-USB FX2LP系列芯片,通過Slave FIFO模式進(jìn)行視頻數(shù)據(jù)傳輸。
Cypress公司的EZ-USB FX2是世界上第一款集成USB2.0的微處理器,它集成了USB2.0收發(fā)器、SIE(串行接口引擎)、增強(qiáng)的8051微控制器和可編程的外圍接口。FX2這種獨(dú)創(chuàng)性結(jié)構(gòu)可使數(shù)據(jù)傳輸率達(dá)到56Mbytes/s,即USB2.0允許的最大帶寬。在FX2中,智能SIE可以硬件處理許多USB1.1和USB2.0協(xié)議,從而減少了開發(fā)時間和確保了USB的兼容性。GPIF(General Programmable Interface)和主/從端點(diǎn)FIFO(8位或16位數(shù)據(jù)總線)為ATA、UTOPIA、EPP、PCMCIA和DSP等提供了簡單和無縫連接接口。其內(nèi)部結(jié)構(gòu)如圖1所示。它有三種封裝形式:56SSOP,100TQFP和128TQFP。本文采用56引腳型號。
圖1 CY7C68013結(jié)構(gòu)圖
當(dāng)有一個與FX2芯片相連的外部邏輯只需要利用FX2做為一個USB 2.0接口而實(shí)現(xiàn)與主機(jī)的高速通訊,而它本身又能夠提供滿足Slave FIFO要求的傳輸時序,可以將外部邏輯作為Slave FIFO主控制器時,即可考慮用此傳輸方式。
Slave FIFO傳輸如圖2所示:
圖2 Slave FIFO傳輸
在這種方式下,F(xiàn)X2內(nèi)嵌的8051固件的功能只是配置Slave FIFO相關(guān)的寄存器以及控制FX2何時工作在Slave FIFO模式下。一旦8051固件將相關(guān)的寄存器配置完畢,且使自身工作在Slave FIFO模式下后,外部邏輯即可按照Slave FIFO的傳輸時序,高速與主機(jī)進(jìn)行通訊,而在通訊過程中不需要8051固件的參與。
MT9V032 是 Aptina生產(chǎn)的 1/3 寸 CMOS傳感器,分辨率為 752×480,像素大小達(dá)到 6.0×6.0μm。該傳感器具有Micron 的DigitalClarity CMOS 成像技術(shù),它不僅具有 CMOS傳感器速度高、集成度高等優(yōu)勢,其靈敏度達(dá)到 4.8 V/lux-sec,在高動態(tài)拍攝模式下動態(tài)范圍可達(dá) 110dB,提供了比一般 CCD傳感器更優(yōu)的成像效果。本文使用的一幀圖片時序圖如圖3、圖4所示,MT9V032輸出像素數(shù)據(jù)為10位,本系統(tǒng)取8位有效數(shù)據(jù)。
圖3 MT9V032的行同步時序
圖4 MT9V032的場同步時序
P1:幀開始標(biāo)志;
A:有效數(shù)據(jù)時間;
Q:無效數(shù)據(jù)時間;
P2:幀結(jié)束標(biāo)志。
系統(tǒng)主要硬件結(jié)構(gòu)如圖5所示。設(shè)計中采用I2C總線對MT9V032芯片進(jìn)行配置,F(xiàn)X2中增強(qiáng)型8051單片機(jī)時鐘24M輸出作為傳感器主時鐘,PICLK像素時鐘作為IFCLK時鐘,為傳感器主時鐘翻轉(zhuǎn)。LINE_VALID行同步信號接Slave FIFO寫允許,根據(jù)圖片幀時序,SLWR設(shè)置為高電平有效。圖片幀同步信號FRAME_VALID會在一幀圖像傳輸?shù)娇刂破骱笥|發(fā)INT0中斷。由于數(shù)據(jù)量太大,本設(shè)計沒有在INT0中斷服務(wù)子程序中進(jìn)行全部的數(shù)據(jù)處理,而是設(shè)置了一個標(biāo)志位,并通過標(biāo)志位的狀態(tài)來在主程序中進(jìn)行處理,由此來判斷幀頭。USB控制器的FIFO處于從模式。控制器的端點(diǎn)設(shè)置為EP6-512字節(jié)、四重緩存,塊傳輸、輸入模式。這樣的設(shè)置可以滿足系統(tǒng)要求。
圖5 系統(tǒng)主要硬件結(jié)構(gòu)
主要是針對USB的固件設(shè)計。為了簡化固件編程,我們直接調(diào)用Cypress提供的固件編程框架,本文固件程序使用Keil C51 uVision2編寫,主要共包含 STARTUP.A51、FW.C、SLAVEFIFO.C、EZUSB.LIB、DSCR.A51及USBJMPTB.OBJ等六個文件。其中,STARTUP.A51為芯片上電初始化程序,在CPU復(fù)位后執(zhí)行,主要進(jìn)行初始化內(nèi)存以及再入函數(shù)堆棧初始化、片外存儲空間初始化等功能;EZUSB.LIB為固件函數(shù)庫鏈接程序;FW.C為固件框架程序,主要進(jìn)行硬件初始化、處理標(biāo)準(zhǔn)USB設(shè)備請求等功能。DSCR.A51為設(shè)備描述符程序,其中包含USB的各種描述符;USBJMPTB.OBJ為中斷向量跳轉(zhuǎn)表文件;SLAVEFIFO.C為外圍設(shè)備控制文件,主要進(jìn)行USB功能設(shè)備的初始化以及用戶函數(shù)掛鉤的相關(guān)定義。
固件編程框架如圖6所示:
圖6 固件框架流程圖
Slave FIFO模式的初始化,在void TD_Init(void)函數(shù)中執(zhí)行,該函數(shù)在上電后只執(zhí)行一次,這里設(shè)置EP6為塊傳輸端點(diǎn),512字節(jié),為4倍緩沖深度,傳輸方向為IN。USB端點(diǎn)的配置必在DSCR.A51文件中進(jìn)行定義,其相關(guān)代碼如下:
配置CY7C68013在Slave FIFO模式下直接和視頻傳感器相連,節(jié)省了中間的邏輯處理單元,有效地節(jié)省了成本,并且在實(shí)際應(yīng)用中成功實(shí)現(xiàn)視頻數(shù)據(jù)的上傳,數(shù)據(jù)連續(xù)無丟失。
[1] 張弘.USB接口設(shè)計[M]. 西安:西安電子科技大學(xué)出版社,2002.
[2] 薛圓圓.USB應(yīng)用開發(fā)技術(shù)大全[M].北京:人民郵電出版社,2006.
[3] 邊海龍.USB2.0設(shè)備的設(shè)計與開發(fā)[M].北京:人民郵電出版社,2004.
[4] 高超,姜威,李春明.基于USB2.0的高分辨率數(shù)字?jǐn)z像頭設(shè)計[J]. 國外電子元器件:2005(2):18-20.
[5] 黃大勇,李鑒,張建正. 基于USB2.0接口的高速數(shù)據(jù)采集系統(tǒng)設(shè)計[J]. 現(xiàn)代電子技術(shù):2007(24):69-72.
[6] 甄國涌,張森峰. 高速USB接口設(shè)計[J]. 電子設(shè)計工程:2009(17.3):80-82.
[7] http:/ / www. cypress. com. EZ2USBFX2 Technical Reference Manual.