一、USB規(guī)范簡介??
USB是一種支持在USB主機(jī)和USB設(shè)備之間進(jìn)行串行數(shù)據(jù)傳輸?shù)?a href="http://www.brongaenegriffin.com/v/tag/1301/" target="_blank">通信協(xié)議。主機(jī)作為總線的主叫方,采用兩種信令模式:全速模式12Mb/s和低速模式1.5Mb/s。USB使用四種數(shù)據(jù)傳輸方式:控制傳輸(control)、中斷傳輸(interrupt)、批量傳輸(bulk)及等時傳輸(isochronous)。其中控制模式主要用于控制指令傳輸及USB規(guī)范的實現(xiàn),等時傳輸主要用于音頻及視頻傳輸。USB通過兩次總線列舉(Enumeration and??
Renumertion)來實現(xiàn)設(shè)備識別以及驅(qū)動程序析加載。其具體過程為:USB設(shè)備連到主機(jī)后,主機(jī)依據(jù)USB規(guī)范在特定地址通過端口0(endpoint0)與外設(shè)通信,并將外設(shè)視為默認(rèn)設(shè)備。外設(shè)與主機(jī)通信將其6設(shè)備標(biāo)識(DID、PID、VID)發(fā)給主機(jī)進(jìn)行第二次總線列舉。主機(jī)根據(jù)設(shè)備標(biāo)識,加載相應(yīng)設(shè)備驅(qū)動程序,重新分配地址,并將控制權(quán)轉(zhuǎn)交給外設(shè)固件(firmware),通過固件與設(shè)備驅(qū)動程序及主機(jī)應(yīng)用程序的交互通信,來實現(xiàn)外設(shè)的功能。??
1.CYPRESS2131簡介??
CYPRESS2131芯片是一種高度集成的USB芯片,具有3個顯著特片:??
?。?)提供一種軟件(SOFT,RAM BASED)解決方案,可實現(xiàn)外設(shè)固件的不斷更新與升級;??
(2)完全符合USB規(guī)范,提供足夠的端點(diǎn)數(shù)目、緩沖區(qū)大小以及足夠的速度;??
?。?)其內(nèi)核可自動實現(xiàn)對USB規(guī)范的響應(yīng),最大限度地壓縮了代碼長度。??
另外,CYPRESS2131還支持存儲器擴(kuò)展,具有低功耗、低噪聲、有效的高級語言支持和增強(qiáng)的指令集等特性。CYPRESS2131芯片為80針PQFP封裝,其引腳如圖1所示。??
2.CYPRESS2131的組成??
CYPRESS2131功能框圖如圖2所示。??
?。?)收發(fā)器??
USB電纜只包含4根電線:Vbus、D+、D-和GND。數(shù)據(jù)以12Mb/s的全速信號或1.5Mb/s的低速信號在D+和D-信號線上差分傳輸。收發(fā)器建在芯片上,不需要外部電路(在D+或D-上用來選擇全速或低速的上拉電阻的情況除外)。??
?。?)串行接口引擎(SIE)??
SIE通過包排序、信號產(chǎn)生/檢測、CRC產(chǎn)生/校驗、NRZI數(shù)據(jù)編碼、位填充和包標(biāo)識產(chǎn)生/解碼來處理USB通信協(xié)議,并保證傳送到USB電纜上的數(shù)據(jù)字節(jié)以LSB開頭。??
?。?)微控制及片上RAM??
CYPRESS2131使用增強(qiáng)型8051,具有以下特點(diǎn):??
(1)使用3.3V電源;??
?。?)24MHz晶振,一個總線周期僅用4個時鐘周期;??
?。?)使用雙數(shù)據(jù)指針;??
?。?)增加了異步串口UART2和16位定時器T2;??
?。?)高速內(nèi)存接口及專用16位地址總線;??
?。?)增加了8個中斷(INT2~I(xiàn)NT5、PFI、T2及UART2);??
?。?)快速外部存儲存取模式(使用AutoPoint);??
?。?)支持?jǐn)帱c(diǎn)功能。??
CYPRESS2131上用的片內(nèi)內(nèi)存(RAM)為8KB,但是為了便于外設(shè)固件的升級與更新,該8KB RAM既可用于傳統(tǒng)意義上的ROM,又可用于RAM。其中的6KB用于程序存儲與數(shù)據(jù)存儲,其他2KB用于端點(diǎn)緩沖區(qū)?! YPRESS2131使用16個端:8個批量傳輸端點(diǎn)(IN、OUT各8個)、8個等時傳輸端點(diǎn)(IN、OUT各8個),每個端點(diǎn)的緩沖區(qū)為64Byte。每個端點(diǎn)均個有字節(jié)計數(shù)器及重新發(fā)送和接收當(dāng)數(shù)據(jù)組的能力。該8KB RAM需通過命令MOVX進(jìn)行訪問。??
另外,為了便于實現(xiàn)總線列舉和國外部功能芯片相通信,CYPRESS2131還支持I2C總線。??
三、CYPRESS2131在圖像采集中的應(yīng)用??
1.圖像采集系統(tǒng)的硬件實現(xiàn)??
在圖像采集系統(tǒng)中,使用OV6120作為圖像采集芯片。OV6120是OmniVision公司開發(fā)的COMS黑白圖像采集芯片。該芯片將COMS光感應(yīng)核與外圍支持電路集成在一起,輸出的視頻為黑白圖像,與CCIR標(biāo)準(zhǔn)兼容;也可輸出單幀圖像,為YUV格式,從其D7:0輸出Y信號。這里使用YUV方式。??
在整個圖像采集系統(tǒng)中,CYPRESS2131主要有三方面的作用:作為USB芯片與主機(jī)通信并傳輸數(shù)據(jù);利用其片上增強(qiáng)型8051作為控制器使OV6120正常工作;通過其I2C總線對OV6120的對比度、亮度、銳度等各項參數(shù)進(jìn)行設(shè)置。其具體工作過程為:SUB芯片上電復(fù)位后,CYPRESS2131按照USB規(guī)范應(yīng)答,提供設(shè)備標(biāo)識,USB進(jìn)行二次總線列舉,加載對應(yīng)驅(qū)動程序,并將控制權(quán)轉(zhuǎn)交給8051。8051通過I2C總線對OV6120各項參數(shù)進(jìn)行設(shè)置。8051發(fā)出幀采集指令(通過OV6120的FREX)后進(jìn)行圖像采集,并同數(shù)據(jù)轉(zhuǎn)移信號PCLK、行頻HSYNC及場頻VSYNC(后兩個信號,圖3中未標(biāo)出)一起傳給8051。8051將所得的數(shù)據(jù)信號轉(zhuǎn)儲到SRAM中,當(dāng)一幀數(shù)據(jù)采集完后,再將SRAM中數(shù)據(jù)通過USB總線傳至PC。CYPRESS2131在訪問外部RAM時,通過FWR與FRD使之成為快速讀寫模式。使用標(biāo)準(zhǔn)12MHz晶振的情況下,讀或?qū)懲獠縍AM一個字節(jié)只需使用333ns。圖像采集系統(tǒng)原理示意如圖3所示。??
2.圖像采集系統(tǒng)源程序??
由于驅(qū)動程序較為復(fù)雜,這里僅給出利用USB總線發(fā)送數(shù)據(jù)的8051子例程。??
START:MOV SP,#STACK-1 ;設(shè)置堆棧??
FILL:MOV R7,#64 ;設(shè)置傳輸字節(jié)數(shù)??
MOV DPTR,#IN2BUF;使用BULK端點(diǎn)??
MOV DPTR1,#0000H??
MOV A,@DPTR1 ;從外部RAM中讀取數(shù)據(jù)??
INC DPTR1??
MOVX @DPTR,A??
INC DPTR??
DJNZ R7,F(xiàn)ILL??
MOV DPTR,#IN2BC??
MOV A,#40H??
MOVX @DPTR,A ;啟動IN2緩沖區(qū)傳輸??
LOOP:MOV DPTR,#IN2CS??
MOVX A,@DPTR??
JNB ACC.1,F(xiàn)ILL ;若不忙,繼續(xù)循環(huán)??
END??
評論