馮 祎 吳 超 王景中
(北方工業大學信息工程學院,北京石景山 100144)
USB2.0接口以其高速的數據傳輸能力,在視頻數據傳輸系統中有著廣泛的應用。但以往都是在視頻采集芯片和USB控制芯片之間加上了FPGA或者CPLD等邏輯控制器件,這樣雖降低了開發難度,但也不可避免的增加了硬件資源,增加了生產成本。
因此,本文采用cmos視頻采集芯片直接與USB控制芯片相連,數據無需再經過中間邏輯器件打包發送給USB控制器,而是直接由USB控制器上傳到上位機。這里coms攝像頭選用MICRON圖像傳感器MT9V032,USB控制器采用Cypress的EZ-USB FX2LP系列芯片,通過Slave FIFO模式進行視頻數據傳輸。
Cypress公司的EZ-USB FX2是世界上第一款集成USB2.0的微處理器,它集成了USB2.0收發器、SIE(串行接口引擎)、增強的8051微控制器和可編程的外圍接口。FX2這種獨創性結構可使數據傳輸率達到56Mbytes/s,即USB2.0允許的最大帶寬。在FX2中,智能SIE可以硬件處理許多USB1.1和USB2.0協議,從而減少了開發時間和確保了USB的兼容性。GPIF(General Programmable Interface)和主/從端點FIFO(8位或16位數據總線)為ATA、UTOPIA、EPP、PCMCIA和DSP等提供了簡單和無縫連接接口。其內部結構如圖1所示。它有三種封裝形式:56SSOP,100TQFP和128TQFP。本文采用56引腳型號。

圖1 CY7C68013結構圖
當有一個與FX2芯片相連的外部邏輯只需要利用FX2做為一個USB 2.0接口而實現與主機的高速通訊,而它本身又能夠提供滿足Slave FIFO要求的傳輸時序,可以將外部邏輯作為Slave FIFO主控制器時,即可考慮用此傳輸方式。
Slave FIFO傳輸如圖2所示:

圖2 Slave FIFO傳輸
在這種方式下,FX2內嵌的8051固件的功能只是配置Slave FIFO相關的寄存器以及控制FX2何時工作在Slave FIFO模式下。一旦8051固件將相關的寄存器配置完畢,且使自身工作在Slave FIFO模式下后,外部邏輯即可按照Slave FIFO的傳輸時序,高速與主機進行通訊,而在通訊過程中不需要8051固件的參與。
MT9V032 是 Aptina生產的 1/3 寸 CMOS傳感器,分辨率為 752×480,像素大小達到 6.0×6.0μm。該傳感器具有Micron 的DigitalClarity CMOS 成像技術,它不僅具有 CMOS傳感器速度高、集成度高等優勢,其靈敏度達到 4.8 V/lux-sec,在高動態拍攝模式下動態范圍可達 110dB,提供了比一般 CCD傳感器更優的成像效果。本文使用的一幀圖片時序圖如圖3、圖4所示,MT9V032輸出像素數據為10位,本系統取8位有效數據。

圖3 MT9V032的行同步時序

圖4 MT9V032的場同步時序
P1:幀開始標志;
A:有效數據時間;
Q:無效數據時間;
P2:幀結束標志。
系統主要硬件結構如圖5所示。設計中采用I2C總線對MT9V032芯片進行配置,FX2中增強型8051單片機時鐘24M輸出作為傳感器主時鐘,PICLK像素時鐘作為IFCLK時鐘,為傳感器主時鐘翻轉。LINE_VALID行同步信號接Slave FIFO寫允許,根據圖片幀時序,SLWR設置為高電平有效。圖片幀同步信號FRAME_VALID會在一幀圖像傳輸到控制器后觸發INT0中斷。由于數據量太大,本設計沒有在INT0中斷服務子程序中進行全部的數據處理,而是設置了一個標志位,并通過標志位的狀態來在主程序中進行處理,由此來判斷幀頭。USB控制器的FIFO處于從模式。控制器的端點設置為EP6-512字節、四重緩存,塊傳輸、輸入模式。這樣的設置可以滿足系統要求。

圖5 系統主要硬件結構
主要是針對USB的固件設計。為了簡化固件編程,我們直接調用Cypress提供的固件編程框架,本文固件程序使用Keil C51 uVision2編寫,主要共包含 STARTUP.A51、FW.C、SLAVEFIFO.C、EZUSB.LIB、DSCR.A51及USBJMPTB.OBJ等六個文件。其中,STARTUP.A51為芯片上電初始化程序,在CPU復位后執行,主要進行初始化內存以及再入函數堆棧初始化、片外存儲空間初始化等功能;EZUSB.LIB為固件函數庫鏈接程序;FW.C為固件框架程序,主要進行硬件初始化、處理標準USB設備請求等功能。DSCR.A51為設備描述符程序,其中包含USB的各種描述符;USBJMPTB.OBJ為中斷向量跳轉表文件;SLAVEFIFO.C為外圍設備控制文件,主要進行USB功能設備的初始化以及用戶函數掛鉤的相關定義。
固件編程框架如圖6所示:

圖6 固件框架流程圖
Slave FIFO模式的初始化,在void TD_Init(void)函數中執行,該函數在上電后只執行一次,這里設置EP6為塊傳輸端點,512字節,為4倍緩沖深度,傳輸方向為IN。USB端點的配置必在DSCR.A51文件中進行定義,其相關代碼如下:

配置CY7C68013在Slave FIFO模式下直接和視頻傳感器相連,節省了中間的邏輯處理單元,有效地節省了成本,并且在實際應用中成功實現視頻數據的上傳,數據連續無丟失。
[1] 張弘.USB接口設計[M]. 西安:西安電子科技大學出版社,2002.
[2] 薛圓圓.USB應用開發技術大全[M].北京:人民郵電出版社,2006.
[3] 邊海龍.USB2.0設備的設計與開發[M].北京:人民郵電出版社,2004.
[4] 高超,姜威,李春明.基于USB2.0的高分辨率數字攝像頭設計[J]. 國外電子元器件:2005(2):18-20.
[5] 黃大勇,李鑒,張建正. 基于USB2.0接口的高速數據采集系統設計[J]. 現代電子技術:2007(24):69-72.
[6] 甄國涌,張森峰. 高速USB接口設計[J]. 電子設計工程:2009(17.3):80-82.
[7] http:/ / www. cypress. com. EZ2USBFX2 Technical Reference Manual.