USB接口的數(shù)字?jǐn)z像系統(tǒng)設(shè)計(jì)
摘要:討論了基于USB(Universal Serial Bus)接口的數(shù)字?jǐn)z像系統(tǒng)的實(shí)現(xiàn)。該系統(tǒng)使用CYPRESS公司的EZ_USB系列芯片,并利用其開(kāi)發(fā)板來(lái)實(shí)現(xiàn)數(shù)字?jǐn)z像系統(tǒng)。該系統(tǒng)完全符合USB1.1協(xié)議,是一個(gè)新型的多媒體設(shè)備。
本文引用地址:http://m.butianyuan.cn/article/225730.htm關(guān)鍵詞:USB 攝像系統(tǒng) I2C總線 固件
USB作為一種新的擴(kuò)展接口,主要致力于計(jì)算機(jī)-電話一體化和應(yīng)用類(lèi)消費(fèi)產(chǎn)品。它的數(shù)據(jù)傳輸率比標(biāo)沖串/并口高。USB總線具有時(shí)分復(fù)用的特點(diǎn),多個(gè)不同速度的USB外設(shè)可以通過(guò)集線器同時(shí)連接到同一臺(tái)計(jì)算機(jī)的同一個(gè)USB口上,在USB總線帶寬允許的情況下,多個(gè)外設(shè)可以同時(shí)工作而不相互影響。USB傳輸速率適用于中、低速外設(shè)。高速模式下,USB支持實(shí)時(shí)的視頻、音頻和壓縮的視頻數(shù)據(jù)傳輸。
在視頻會(huì)議和可視電話等多媒體應(yīng)用中,具有數(shù)字接口攝像系統(tǒng)(CAMERA)是其關(guān)鍵的部件。它完成視頻圖像的采集、處理,并通過(guò)數(shù)字接口把信號(hào)送進(jìn)計(jì)算機(jī)顯示,作進(jìn)一步處理。
1 USB數(shù)字?jǐn)z像系統(tǒng)原理
1.1 USB簡(jiǎn)介
通用串行總線(Universal Serial Bus)適用于USB外圍設(shè)備連接到主機(jī)上,通過(guò)PCI總線與PC內(nèi)部的系統(tǒng)總線連接,實(shí)現(xiàn)數(shù)據(jù)的傳送。同時(shí)USB又是一種通信協(xié)議,支持主系統(tǒng)與其外設(shè)之間的數(shù)據(jù)傳送。在USB的網(wǎng)絡(luò)協(xié)議中,每個(gè)USB的系統(tǒng)只能有一個(gè)主機(jī)。
USB是一種層狀的星形拓?fù)?,其根部是主機(jī)控制器,USB器件與根據(jù)接口連接實(shí)現(xiàn)其功能。若多個(gè)器件同時(shí)行使其功能,就要通過(guò)集線器來(lái)擴(kuò)展,但擴(kuò)展層不能超過(guò)5層。USB器件支持熱拔插,而且可以即插即用。USB一般支持兩種傳輸速度,即低速1.5Mbit/s和全速12Mbits/s,在USB2.0版本中其速度提高到480Mbits/s。
USB有幾種用于不同類(lèi)型的數(shù)據(jù)傳輸方式。控制傳輸,主要用于設(shè)置、命令和狀態(tài)信息;中斷傳輸,與一般的中斷概念不同,主要用于打印機(jī)、掃描儀等大量數(shù)據(jù)傳輸;同步傳輸,用于視頻、聲音等實(shí)時(shí)傳輸。
考慮到USB傳輸速率較高,如果利用只實(shí)現(xiàn)ENGINE功能的芯片,外加一個(gè)普通微控制器(如8051),其處理速度就會(huì)很慢而達(dá)不到USB傳輸要求。USB外設(shè)作為消費(fèi)類(lèi)產(chǎn)品的目之一在于降低產(chǎn)品成本,如果采用高速微處理器(如DSP),滿(mǎn)足了USB的傳輸速率,但成本較高。經(jīng)多方面比較選擇了CYPRESS公司的內(nèi)置微控制器芯片EZ-USB 2131Q,開(kāi)發(fā)了具有USB接口的數(shù)字?jǐn)z像系統(tǒng)。
1.2 系統(tǒng)的原理圖
系統(tǒng)的原理圖如圖1所示。
整個(gè)系統(tǒng)以EZ-USB為核心,通過(guò)I2C總線控制電路對(duì)數(shù)字CAMERA芯片的工作狀態(tài)進(jìn)行控制,數(shù)字圖像數(shù)據(jù)通過(guò)數(shù)據(jù)轉(zhuǎn)換電路送入數(shù)據(jù)緩沖區(qū),USB總線控制器從數(shù)據(jù)緩沖區(qū)中讀取數(shù)據(jù)。與計(jì)算機(jī)的通訊則通過(guò)USB接口實(shí)現(xiàn)。
2 USB數(shù)字?jǐn)z像系統(tǒng)硬件
2.1 EZ_USB 2131Q芯片介紹
EZ_USB 2131Q內(nèi)部框圖如圖2所示。它是Cypress公司的內(nèi)嵌微控制器的80pin的USB接口控制芯片,包含3個(gè)8位多功能端口、8位數(shù)據(jù)端口、16位地址端口、2個(gè)USB數(shù)據(jù)端口和其它輸入輸出端口。
EZ_USB 2131Q芯片采用了一種基于內(nèi)部RAM的解決方案,允許客戶(hù)隨時(shí)不斷地設(shè)置和升級(jí),不受端口數(shù)、緩沖大小、傳輸速度及傳輸方式的限制。
片內(nèi)嵌有一個(gè)增強(qiáng)型的8051微控制器,與標(biāo)準(zhǔn)的8051相比,其速度快3倍。它通過(guò)內(nèi)部RAM編程和數(shù)據(jù)存儲(chǔ),這樣使得芯片具有軟特性。USB主機(jī)通過(guò)USB總線下載8051程序代碼和設(shè)備特征到RAM中,然后EZ_USB芯片作為一個(gè)由代碼定義的外圍設(shè)備重新連接到主機(jī)上。
EZ_USB 2131Q有兩種同步傳輸方式:即普通讀寫(xiě)方式和快速讀寫(xiě)方式。在普通讀寫(xiě)方式下,芯片從外部讀取或向外部寫(xiě)入數(shù)據(jù)的速率不會(huì)超過(guò)1000字節(jié)/毫秒,而且數(shù)據(jù)傳輸指令只能一一列出,共要寫(xiě)出1000行相同的指令。中間不能用循環(huán)來(lái)傳輸數(shù)據(jù),而且也沒(méi)有時(shí)間來(lái)加入其它指令。這種方式對(duì)于要求同步傳輸、每幀傳輸1023字節(jié)的設(shè)備是不可取的。在快速讀寫(xiě)方式下,芯片可以在0.5毫秒內(nèi)從外部讀取或向外部寫(xiě)入1023字節(jié)的數(shù)據(jù),并且還留有足夠的時(shí)間可以加入其它指令。
如圖2所示,USB收發(fā)器連接到USB總線的D+和D-管腳;串行接口引擎(SIE)編碼和解碼串行數(shù)據(jù)并且進(jìn)行錯(cuò)誤校驗(yàn)、位填充和執(zhí)行USB所需的其他信號(hào),最后完成數(shù)據(jù)從USB接口的傳輸。
EZ_USB-2131Q使用了一個(gè)增強(qiáng)型SIE/USB接口(USB核),它本身完成了許多的USB協(xié)議,這樣就簡(jiǎn)化了8051代碼。
2.2 EZ_USB系列USB總線仿真板
CYPRESS公司的EZ_USB開(kāi)發(fā)板為USB設(shè)備的開(kāi)發(fā)提供了一個(gè)良好的工具。開(kāi)發(fā)板使用的是80管腳的AN2131Q芯片,而且包含5個(gè)用于擴(kuò)展接口的引出端。板上所有的電路均為3.3V,開(kāi)發(fā)板可以由USB連接器供電,也可以由外部供電。
EZ_USB開(kāi)發(fā)板包括以下幾個(gè)部分:
·2131 EZ_USB集成電路,它包括一個(gè)高性能的8051核;
·64擴(kuò)展RAM(由兩個(gè)32K RAM組成);
·兩個(gè)8051 UART口;
·DIP開(kāi)關(guān)控制來(lái)選擇RAM內(nèi)存映射地址和EEPROM地址;
·兩個(gè)I2C總線的8位I/O擴(kuò)展芯片,一個(gè)用于驅(qū)動(dòng)七段LED,另一個(gè)用于讀8位開(kāi)關(guān)狀態(tài);
·一個(gè)3.3V調(diào)節(jié)器,它可以把5V轉(zhuǎn)換成3.3V;
·電源和中斷/監(jiān)控指示燈;
該仿真板基于EZ_USB系列USB總線控制器,它包含標(biāo)準(zhǔn)的MCS51外設(shè)模塊和USB模塊。USB模塊集成了USB的收發(fā)器、串行總線接口機(jī)制、功能接口單元和收/發(fā)緩沖區(qū)。通過(guò)內(nèi)存配置開(kāi)關(guān)可靈活地改變RAM的地址空間,并方便地進(jìn)行內(nèi)存擴(kuò)充。
監(jiān)控程序駐留在板上的EPROM內(nèi),可與PC機(jī)進(jìn)行通訊,控制程序通過(guò)外部UART送入仿真板,可以進(jìn)行實(shí)時(shí)仿真。這個(gè)仿真板和控制器都完全滿(mǎn)足《USB協(xié)議》。采用該仿真來(lái)完成產(chǎn)品的開(kāi)發(fā),并在此基礎(chǔ)上完成產(chǎn)品??商岣弋a(chǎn)品的開(kāi)發(fā)周期。
2.3 數(shù)字CAMERA芯片
采集卡的CODEC是OmniVision Inc.的OV6620,該芯片將CMOS光感應(yīng)核與外圍支持電路集成在一起,具有可編程控制與視頻模/數(shù)混合輸出等功能,其輸出的視頻為彩色圖像,與CCIR標(biāo)準(zhǔn)兼容。OV6620內(nèi)部嵌入了兩個(gè)8位的A/D,因而可以同步地輸出8位或16位的數(shù)字視頻流。在輸出數(shù)字視頻流的同時(shí),還提供象素時(shí)鐘PCLK、水平參考信號(hào)HREF、垂直同步信號(hào)VSYNC,便于外部電路讀取圖像。
2.4 I2C總線控制電路
I2C總線是一種雙向串行總線,它只有兩根信號(hào)線,可用于不同的IC或硬件模塊間的通訊。兩條線分別是串行數(shù)據(jù)線(SDA)和串行時(shí)鐘線(SCL),當(dāng)與設(shè)備相連時(shí),每條線都必須通過(guò)上拉電阻接到電源上。I2C總線上可連接多個(gè)主從設(shè)備。I2C總線具有控制簡(jiǎn)單、穩(wěn)定可靠的特點(diǎn)。I2C總線的數(shù)據(jù)量是可編程的,其最大的數(shù)據(jù)量是100K.圖3給出了一個(gè)完整的I2C總線上的數(shù)據(jù)傳輸。
2.5 數(shù)據(jù)轉(zhuǎn)換及數(shù)據(jù)緩沖電路
CAMERA芯片的數(shù)據(jù)輸出率較高,并且輸出的圖像數(shù)據(jù)格式不能直接用于通過(guò)USB總線傳送,因而需要進(jìn)行數(shù)據(jù)格式轉(zhuǎn)換。CAMERA芯片的數(shù)據(jù)輸出格式由工作模式?jīng)Q定,通過(guò)I2C總線控制。為了簡(jiǎn)化電路,并保持系統(tǒng)一定的靈活性,采用了ALTERA公司的CPLD可編程邏輯陣列芯片來(lái)實(shí)現(xiàn)數(shù)據(jù)轉(zhuǎn)換。數(shù)據(jù)緩沖采用NEC公司的256K×8位靜態(tài)RAM芯片。電路圖如圖4所示。
CMAERA芯片主要輸出信號(hào)有:CLKOUT(時(shí)鐘輸出,作為CPLD芯片的全局工作時(shí)鐘)、Y和UV(視頻數(shù)據(jù)輸出線均為8位,作為CPLD芯片的數(shù)據(jù)線)、VSYNC(垂直同步信號(hào),用作幀同步信號(hào))、CHSYNC(水平同步信號(hào),用作行同步信號(hào))。
數(shù)據(jù)轉(zhuǎn)換電路通過(guò)可編程邏輯完成下列功能:根據(jù)同步信號(hào),針對(duì)QCIF格式,過(guò)濾一行中的冗余數(shù)據(jù)和一幀中的同步行數(shù)據(jù),產(chǎn)生數(shù)據(jù)緩沖芯片的寫(xiě)時(shí)鐘信號(hào)、寫(xiě)復(fù)位信號(hào)和寫(xiě)使能信號(hào)。數(shù)據(jù)的過(guò)濾是通過(guò)控制寫(xiě)使能信號(hào)實(shí)現(xiàn)的,該芯片在使能信號(hào)為低時(shí),可以寫(xiě)入緩沖區(qū),而在信號(hào)為高時(shí),則不能夠?qū)?shù)據(jù)寫(xiě)入緩沖區(qū)。
數(shù)據(jù)緩沖芯片的數(shù)據(jù)輸入與數(shù)據(jù)輸出分別由不同的信號(hào)控制,兩者互不干擾。寫(xiě)數(shù)據(jù)控制信號(hào)有:WRCLK(寫(xiě)時(shí)鐘信號(hào))、WRST(寫(xiě)復(fù)位信號(hào))和WREN(寫(xiě)使能信號(hào))。寫(xiě)操作過(guò)程是:首先,控制產(chǎn)生一個(gè)內(nèi)部復(fù)位信號(hào)WRST,使寫(xiě)緩沖區(qū)的寫(xiě)地址指針指向零,在復(fù)位周期后,進(jìn)行寫(xiě)操作;在寫(xiě)時(shí)鐘信號(hào)的上升沿,如果寫(xiě)使能信號(hào)為低,一個(gè)時(shí)鐘周期后,數(shù)據(jù)就寫(xiě)入SRAM中,同時(shí)SRAM的寫(xiě)地址指針自動(dòng)增加。
讀操作信號(hào)有:RDCLK(讀時(shí)鐘信號(hào))、RE(讀允許信號(hào))、OE(輸入允許信號(hào))和RDST(讀復(fù)位信號(hào))。讀操作的過(guò)程為:控制產(chǎn)生一個(gè)讀復(fù)位信號(hào)RDST,使讀緩沖區(qū)的地址指針指向零,在下一時(shí)鐘周期進(jìn)行讀操作;在讀時(shí)鐘的上升沿,如果RE和OE信號(hào)同時(shí)為低,SRAM中的數(shù)據(jù)就會(huì)出現(xiàn)在輸出數(shù)據(jù)總線上,同時(shí)SRAM的讀地址指針自動(dòng)增加。
讀寫(xiě)操作過(guò)程互不干擾,各自有自己的地址指針。把CAMERA芯片輸出的圖像數(shù)據(jù)依約定的要求按幀存放在緩沖區(qū),并加上相應(yīng)的幀間隔標(biāo)志,USB控制器則從緩沖區(qū)中讀取數(shù)據(jù),并通過(guò)接口送往主機(jī),完成數(shù)據(jù)圖像的傳輸。
3 USB數(shù)字?jǐn)z像系統(tǒng)軟件
開(kāi)發(fā)一個(gè)USB設(shè)備,軟件設(shè)計(jì)是必不可少的。USB應(yīng)用系統(tǒng)軟件設(shè)計(jì)分為三部分:USB外設(shè)端的固件(Firmware)、主機(jī)操作系統(tǒng)上的客戶(hù)驅(qū)動(dòng)程序以及操作界面程序。界面程序通過(guò)客戶(hù)驅(qū)動(dòng)程序與系統(tǒng)USBI(USB Device Interface)進(jìn)行通信,由系統(tǒng)產(chǎn)生USB數(shù)據(jù)的傳送動(dòng)作,固件則響應(yīng)各種來(lái)自系統(tǒng)的USB標(biāo)準(zhǔn)請(qǐng)求,完成各種數(shù)據(jù)的交換工作和事件處理。
由于圖像數(shù)據(jù)自身的格式和USB同步傳輸適合傳輸時(shí)間敏感的大量數(shù)據(jù),采用了同步傳輸模式。但是同步傳輸設(shè)備和進(jìn)程的同步設(shè)計(jì)有較大的難度,且它不提供錯(cuò)誤檢查機(jī)制。固件利用中斷來(lái)響應(yīng)主機(jī)I/O請(qǐng)求。因此8051核的IRQE是關(guān)鍵。需要注意的還有USB設(shè)備的初始化和配置。初始化時(shí),要按嚴(yán)格的順序?qū)N2131的各寄存器進(jìn)行操作。主機(jī)操作界面程序是用VC++6.0編寫(xiě)的,主要實(shí)現(xiàn)圖像顯示以及圖像處理等多種功能。
該系統(tǒng)是為了開(kāi)發(fā)USB接口的數(shù)字化攝像設(shè)備而設(shè)計(jì)的,系統(tǒng)的一個(gè)性能是幀傳輸率,CAREMA芯片的數(shù)據(jù)傳輸率最高可達(dá)到30幀/秒。目前筆者所實(shí)現(xiàn)的USB接口,在等時(shí)傳輸方式下,可達(dá)到8幀/秒。由于目前采用仿真模式,系統(tǒng)的性能在最后的定型中,可得到進(jìn)一步的提高。
下一步將繼續(xù)進(jìn)行系統(tǒng)的集成和優(yōu)化,并最終實(shí)現(xiàn)產(chǎn)品化。由于目前的系統(tǒng)是基于系統(tǒng)仿真板的,所以必須進(jìn)行集成,以最小系統(tǒng)實(shí)現(xiàn)。此外,還要進(jìn)一步開(kāi)發(fā)設(shè)備的驅(qū)動(dòng)程序。由于EZ_USB包括很多的功能,而這里只用到它的等時(shí)傳輸,浪費(fèi)了很多的資源,加大了成本。所以在后繼研究中,還會(huì)開(kāi)發(fā)USB控制器,這樣才能真正地降低成本,提高性能。
評(píng)論