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