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