基于USB2.0的高分辨率數(shù)字攝像頭設(shè)計
摘要:介紹了一種基于USB2.0協(xié)議的高分辨率數(shù)字攝像頭,并給出了利用CMOS圖像傳感器OB9620和USB控制器CY7C68013設(shè)計高分辨率數(shù)字攝像頭的基本硬件電路以及軟件設(shè)計方法。
關(guān)鍵詞:USB2.0;I2C;攝像頭;OV9620
1 概述
目前,能夠傳輸高品質(zhì)視頻信號的兩種總線接口(USB和IEEE 1394接口)都支持即插即用,且具有易擴展、使用方便等特點。但是IEEE 1394接口的價格相對較高,因此,當前采用更多的是USB接口。
USB的數(shù)據(jù)傳輸有4種模式:塊傳輸(Bulk Transfers)、中斷傳輸(Interrupt Transfers)、同步傳輸(Isochronous Transfers)、控制傳輸(Control Transfers)。當需要快速傳輸大批量的準確數(shù)據(jù)時,一般采用塊傳輸模式;而當傳輸實時性較強的數(shù)據(jù)時,則應(yīng)采用中斷傳輸模式?,F(xiàn)在的USB2.0規(guī)范在原有的低速模式(low speed) 1.5Mb/s、全速模式(full speed) 12Mb/s的基礎(chǔ)上又支持高達480Mb/s的高速模式(high speed),從而使USB總線真正成為能滿足高速應(yīng)用場合的標準連接總線。在USB2.0中,每毫秒可發(fā)送8~10微幀,這比USB1.1的傳輸速率有了極大的提高,同時對緩存的要求也大大降低了。USB2.0向下完全兼容,協(xié)議規(guī)定,在全速模式和低速模式下,主機控制器和hub之間也可以進行高速傳輸,但是hub和外設(shè)之間仍然保持原有傳輸模式,這樣可以使設(shè)備在分享帶寬時沖突最小。
2 硬件電路
本系統(tǒng)選用OmniVision Technologies Inc.公司的OV9620作為視頻信號的采集芯片,用EZ-USB FX2作為USB控制芯片并為OV9620提供工作時鐘,E2PROM使用24LC65,通過I2C總線連接所有芯片。硬件連接框圖見圖1所示。
2.1 OV9620的主要特性
OV9620是美國OmniVision公司為數(shù)字照相機和攝像機產(chǎn)品開發(fā)的高性能130萬像素彩色CMOS數(shù)字圖像傳感器芯片。與傳統(tǒng)的CCD傳感器相比,CMOS最明顯的優(yōu)勢是集成度高、功耗小、生產(chǎn)成本低,容易與其他芯片整合。該款芯片的圖像總區(qū)域為6.825.39mm2,成像區(qū)域為6.665.32mm2,非常有利于產(chǎn)品的小型化。
該芯片支持SXGA(12801024分辨率)和VGA(640480分辨率)兩種模式和SCCB(Serial Camera Control Bus)接口,使用24MHz晶振,內(nèi)置10位A/D轉(zhuǎn)換器,能提供10位數(shù)字視頻信號。另外該芯片還可輸出像素時鐘以及行、場同步信號,并可以直接與專用集成電路系統(tǒng)連接,其后端系統(tǒng)可以通過SCCB接口來控制。可利用USB2.0控制器,在P4 1.5G以上系統(tǒng)中提供15fps的SXGA或30fps的VGA動態(tài)影像。該芯片采用Bayer濾光陣列把輸入光信號分解成RGB三原色,像素陣列有13121036=1359232個,成像像素有12801024=1310720個。不成像像素可作為光學(xué)黑體像素用作黑值校準以補償由光線引起的溫度變化和暴光變化。
芯片中使用的SCCB接口是OmniVision公司制定的一種用于控制圖像傳感器的三線連續(xù)總線(SCS、SIO1、SIO0),其中SCS用于實現(xiàn)片選(低電平有效),當芯片被選中后,SIO1、SIO0在功能及使用上和I2C總線兼容。
另外,OV9620還提供了一個控制信號輸入端(PWDN),可用于實現(xiàn)掉電模式的開關(guān)。在本設(shè)計中,因為OV9620與其他芯片同時工作,因此,沒有采用片選而是由PWDN 來實現(xiàn)控制。
2.2 EZ-USB FX2的主要特點
EZ-USB FX2(即CY7C68013)是Cypress公司為高速傳輸外設(shè)設(shè)計的USB2.0控制芯片。該芯片內(nèi)含1個增強型8051處理器、1個串行接口引擎(SIE)、1個USB收發(fā)器、8.5kB片上RAM、4kB FIFO存儲器以及1個通用可編程接口(GPIF)。
FX2采用量子FIFO處理構(gòu)架,其USB接口和應(yīng)用環(huán)境可以直接共享FIFO,而微控制器則可不參與數(shù)據(jù)傳輸?shù)试S以FIFO或RAM方式訪問這些共享FIFO,這樣,就較好地解決了USB高速模式的帶寬問題。
FX2有一個I2C兼容端口,當FX2作為主控制器,SCL時鐘頻率為100/400kbps時,該端口兼容I2C總線。一般情況下,該端口由兩個內(nèi)部控制器驅(qū)動:一個在程序加載時自動讀?。郑桑模校桑模模桑暮团渲眯畔ⅲ涣硪粋€是芯片中的8051,一旦開始運行,8051利用芯片中的I2CTL和I2DAT寄存器控制掛接在I2C總線上的外圍設(shè)備。具體來說,系統(tǒng)上電時,FX2會通過內(nèi)部邏輯監(jiān)測I2C端口,如果發(fā)現(xiàn)有地址為0xC0 或者是0xC2的E2PROM,便在E2PROM內(nèi)部存儲空間0xC0使用VID/PID/DID值或者把E2PROM的內(nèi)容加載到內(nèi)部RAM中。
2.3 電路原理及設(shè)計
設(shè)計中可使用I2C總線實現(xiàn)USB控制器與圖像傳感器的連接,并選用E2PROM(24LC65)作為代碼存儲器,然后通過FX2的C2方式加載固件程序。系統(tǒng)上電復(fù)位后,處于主模式的USB控制器將通過PA1輸出啟動信號,并經(jīng)反向后傳到圖像傳感器的PWDN,以使處于從模式的圖象傳感器開始工作。PCLK提供像素時鐘,HREF提供水平同步信號,VSYNC提供垂直同步信號。這兩個同步信號與圖像數(shù)據(jù)的時序關(guān)系如圖2所示。
VSYNC會在一幀圖像傳輸?shù)娇刂破骱笥|發(fā)INT0中斷。因為數(shù)據(jù)量太大,本設(shè)計沒有在INT0中斷服務(wù)子程序中進行全部的數(shù)據(jù)處理,而是設(shè)置了一個標志位,并通過標志位的狀態(tài)來在主程序中進行處理,這樣就避免由于數(shù)據(jù)處理時間太長而使控制器無法響應(yīng)其它中斷。
USB控制器的FIFO處于從模式??刂破鞯亩它c設(shè)置為EP2―512 四重緩存;EP6-512四重緩存,塊傳輸模式。這樣的設(shè)置可以滿足系統(tǒng)要求。
3 接口程序設(shè)計
EZ-USB FX2提供了豐富的中斷資源,除內(nèi)置8051中斷資源外,FX2還為INT2和INT4提供了一個中斷向量表,表中有27個 INT2(USB)中斷向量和14個INT4中斷向量。因此,在設(shè)計中,大部分工作都可通過中斷服務(wù)子程序來完成。圖3、圖4分別是主程序流程和I2C INT中斷服務(wù)子程序的流程圖。
同EZ-USB系列的其它控制器一樣,Cypress公司也為FX2提供了比較完備的開發(fā)套件CY3681。這個套件包括帶128腳CY7C68013的硬件開發(fā)板和相應(yīng)的控制面板以及GPIF代碼自動生成軟件。因此可以非常方便地實現(xiàn)固件的開發(fā)。
USB設(shè)備驅(qū)動程序的設(shè)計是基于WDM(驅(qū)動程序模型)并采用分層模型來進行。應(yīng)用程序通過調(diào)用Windows API函數(shù)來進行的對WIN32子系統(tǒng)進行WIN32調(diào)用,并通過I/O管理器產(chǎn)生IRP(I/O請求包),然后傳遞給USB驅(qū)動程序,接著再由驅(qū)動程序執(zhí)行相應(yīng)的操作,并將結(jié)果返還給I/O管理器。用DriverEntry可設(shè)置整個系統(tǒng)的回調(diào)例程,當添加一個新設(shè)備和IRP需要發(fā)送到驅(qū)動程序時,通過內(nèi)核可調(diào)用這些例程。下面是DriverEntry例程的簡要內(nèi)容:
DriverObject->DriverExtension->AddDevice=VcameraAddDevice;
DriverObject->DriverUnload=VcameraUnload;
DriverObject->MajorFunction[IRP_MJ_CREATE]= VcameraCreat;
DriverObject->MajorFunction[IRP_MJ_CLOSE]= VcameraClose?
DriverObject->MajorFunction[IRP_MJ_READ]=VcameraRead?
DriverObject->MajorFunction[IRP_MJ_WRITE]=VcameraWrite?
……
實際上,USB客戶驅(qū)動程序中包含大量的例程,也對Windows DDK工具下開發(fā)USB客戶驅(qū)動程序的方法和過程作了詳細的介紹。
4 小結(jié)
目前,筆者已經(jīng)開發(fā)出樣品,并且在一些應(yīng)用程序上進行過測試,獲得了很好的效果,其分辨率高達12801024。
評論