摘要:對(duì)以CMOS視頻傳感器為核心的數(shù)字圖像設(shè)備(電腦眼)與USB接口進(jìn)行了研究,并利用Anchor公司的EZ-USB2131Q芯片設(shè)計(jì)了一種基于外接RAM的單片方案,實(shí)現(xiàn)了電腦眼的USB接口。
??? 關(guān)鍵詞:電腦眼 USB總線 視頻傳感器 幀 固件
USB作為一種新的擴(kuò)展接口,主要致力于計(jì)算機(jī)-電話一體化和應(yīng)用類消費(fèi)產(chǎn)品。它的數(shù)據(jù)傳輸速率比串/并口都要高。USB總線具有時(shí)分復(fù)用的特點(diǎn),多個(gè)不同速度的USB外設(shè)可以通過集線器同時(shí)連接到同一臺(tái)計(jì)算機(jī)的同一個(gè)USB中上,在USB總線帶寬允許的情況下,多個(gè)外設(shè)可以同時(shí)工作而不相互影響。USB傳輸速率適用于中、低速外設(shè)。高速模式下,USB支持實(shí)時(shí)的視頻、音頻和壓縮的視頻數(shù)據(jù)傳輸。本文對(duì)于CMOS視頻傳感器為核心的數(shù)字圖像設(shè)備(電腦眼)與USB接口進(jìn)行了研究,并利用Anchor公司的EZ-USB 2131Q芯片設(shè)計(jì)了一種基于外接RAM的單片方案,實(shí)現(xiàn)了電腦眼的USB接口。
1 USB概述與EZ-USB 2131Q芯片介紹
通用串行總線(Universal Serial Bus)適用于USB的外圍設(shè)備連接到主機(jī),通過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ī)。
1.1 USB的基本特征
USB是一種層狀的星形拓?fù)?其根部是主機(jī)控制器,USB器件直接與根部接口連接實(shí)現(xiàn)其功能。若多個(gè)器件同時(shí)行使其功能,就要通過集線器來擴(kuò)展,但擴(kuò)展層不能超過5層。USB器件支持熱插拔,而且可以即插即用。USB一般支持兩種傳輸速度,即低速1.5Mbit/s和高速12Mbit/s,在USB2.0版本中其速度提高到480Mbit/s。
USB通過四根電纜線連接,兩根用于電源線,兩根用于差動(dòng)數(shù)據(jù)線(D+和D-)。主機(jī)是USB通信的中心,它控制和分時(shí)連接器件。主機(jī)是唯一可利用系統(tǒng)資源的。主機(jī)控制器經(jīng)根集線器初始化交易,主機(jī)控制器每毫秒開始一幀(USB2.0中每1/8毫秒開始一幀稱微幀),在這一幀或1/8幀中,外設(shè)與主機(jī)進(jìn)行數(shù)據(jù)通信。主機(jī)對(duì)多個(gè)外設(shè)進(jìn)行交易,并對(duì)外設(shè)請(qǐng)求的帶寬進(jìn)行分時(shí)。
USB有四種傳輸方式用不同類型垢數(shù)據(jù)??刂苽鬏?主要用于設(shè)置、命令和狀態(tài)信息;中斷傳輸,與一般的中斷概念不同,主要用于鍵盤、鼠標(biāo)等少量數(shù)據(jù)的傳輸;批量傳輸,主要用于打印機(jī)、掃描儀等大量數(shù)據(jù)傳輸;同步傳輸,用于視頻、聲音等實(shí)時(shí)傳輸。
同步傳輸方式下,數(shù)據(jù)傳輸保持固定的帶寬和延時(shí),保證了數(shù)據(jù)傳輸速率的穩(wěn)定性。
USB有諸多優(yōu)點(diǎn),適合于與視頻電腦眼的接口。本文應(yīng)用一種內(nèi)置微控制器的USB芯片,設(shè)計(jì)了一種同步傳輸方式的單片方案。
一般來講,USB的控制芯片有兩種類型,一種是MCU(微控制器)集成在芯片里面的產(chǎn)品;另一種是單獨(dú)的一個(gè)芯片實(shí)現(xiàn)USB的Engine功能。
考慮到USB傳輸速率較高,如果利用只實(shí)現(xiàn)Engine功能的芯片,外加一個(gè)普通微控制器(如8051),其處理速度就會(huì)很慢而達(dá)不到USB傳輸要求。USB外設(shè)作為消費(fèi)類產(chǎn)品的目的之一在于降低產(chǎn)品成本,如果采用高速微處理器(如DSP),滿足了USB傳輸速率,但成本較高。在各方面比較下,選擇了內(nèi)置有微控制器的芯片EZ-USB 2131Q。
1.2 EZ-USB 2131Q芯片介紹。
EZ-USB 2131Q內(nèi)部框圖如圖1所示。它是Anchor公司的一種內(nèi)嵌有微控制器的80腳的USB芯片,包含有3個(gè)8位多功能端口,8位數(shù)據(jù)端口、16位地址端口、兩個(gè)USB數(shù)據(jù)端口和其它輸入輸出端口。
其采用了一種基于內(nèi)部RAM的解決方案,允許客戶隨時(shí)不斷地設(shè)置和升級(jí),不受端口數(shù)據(jù)、緩沖大小、傳輸速度及傳輸方式的限制。
片內(nèi)嵌有一個(gè)增強(qiáng)型的8051微控制器,4個(gè)時(shí)鐘的周期使它比標(biāo)準(zhǔn)8051的速度快3倍。
EZ-USB 2131Q有兩種同步傳輸方式:即普通讀寫方式和快速讀寫方式。在普通讀寫方式下,芯片從外部讀取或向外部寫入數(shù)據(jù)的速率不會(huì)超過1000字節(jié)/ms,而且數(shù)據(jù)傳輸指令只能一一列出,共要寫出1000行相同的指令。中間不能用循環(huán)來傳輸數(shù)據(jù),而且也沒有時(shí)間來加入其它指令。這種方式對(duì)于要求同步傳輸、每幀傳輸1023字節(jié)的設(shè)備是不可取的。在快速讀寫方式下,芯片可以在0.5ms內(nèi)從外部讀取或向外部寫入1023字節(jié)的數(shù)據(jù),并且還留有足夠的時(shí)間可以加入其它指令。
2 電腦眼與EZ-USB 2131Q的接口方案
2.1 電腦眼的USB單片方案
本文中電腦眼的傳輸速度為9幀/s,發(fā)送一場(chǎng)圖像數(shù)據(jù)約111ms;而USB采集一場(chǎng)圖像數(shù)據(jù)約108ms,電腦眼發(fā)送圖像數(shù)據(jù)和USB接收?qǐng)D像數(shù)據(jù)的時(shí)間基本相當(dāng)。
根據(jù)EZ-USB 2131Q和電腦眼的總線其傳輸速率,可以利用外接存儲(chǔ)器來實(shí)現(xiàn)各功能塊的接口,電腦眼與EZ-SUB接口框圖如圖2所示。電腦眼通過8位數(shù)據(jù)線傳輸數(shù)據(jù),如果保持電腦眼數(shù)據(jù)的連續(xù)傳輸,就用場(chǎng)同步和象素同步作為控制信號(hào)。EZ-USB2131Q具有8位輸入輸出數(shù)據(jù)線,多功能口可用來接收和發(fā)送控制信號(hào),其地址線在快速傳輸模式下不可用。
芯片每幀從外部存儲(chǔ)器取數(shù)1023字節(jié),在電腦眼與EZ-USB 2131Q接口時(shí),如果利用一個(gè)2KB的異步FIFO,電腦工作如下:在電路加電后,電腦眼的場(chǎng)同步控制信號(hào)時(shí)FIFO進(jìn)行初始化,然后電腦眼的象素同步信號(hào)選通FIFO的讀數(shù)據(jù)端口,將電腦眼采集的圖像數(shù)據(jù)寫入FIFO;當(dāng)FIFO中的數(shù)據(jù)量達(dá)到1KB時(shí)(即半滿時(shí)),FIFO自動(dòng)對(duì)半滿標(biāo)志端口置位,EZ-USB2131Q芯片內(nèi)的控制指令在USB的幀中斷時(shí)檢測(cè)到半滿標(biāo)志位后,發(fā)出快速讀數(shù)據(jù)控制信號(hào),從FIFO中取出1023個(gè)字節(jié)的圖像數(shù)據(jù)存入芯片內(nèi)部的緩沖中。因電腦眼一場(chǎng)圖像的分辨率是384×287象素,一場(chǎng)圖像數(shù)據(jù)為110208(1023×107+747)字節(jié),在取完1023×107字節(jié)數(shù)據(jù)后,芯片在USB的下一幀中斷時(shí)檢測(cè)不到FIFO半滿置位標(biāo)志。為了保證電腦眼不中斷地采集數(shù)據(jù)而只能舍棄剩余的747字節(jié)的數(shù)據(jù),并且新的場(chǎng)同步信號(hào)的到來又會(huì)對(duì)FIFO進(jìn)行初始化,開始存入新一場(chǎng)圖像數(shù)據(jù)。這一接口電路雖然簡(jiǎn)單,能實(shí)現(xiàn)圖像顯示,但通過USB口所顯示的圖像不完整。因此,設(shè)計(jì)了基于外接RAM的單片方案。
2.2 基于外接RAM的單片方案
介于上述接口方案存在的缺陷,即要保證電腦眼不間斷采集數(shù)據(jù)又要保證EZ-USB 2131Q芯片能獲取一場(chǎng)圖像的全部數(shù)據(jù),可以采取如圖3所示的另一種單片方案。上面提到過,電腦眼一場(chǎng)的圖像數(shù)據(jù)是110208字節(jié),要存入一場(chǎng)圖像數(shù)據(jù)就需要一個(gè)128KB的RAM。為了保證電腦眼不間斷地連續(xù)傳輸,在此單片方案中利用一個(gè)多路轉(zhuǎn)換器對(duì)兩個(gè)128KB的RAM進(jìn)行切換,分別存入電腦眼連續(xù)采集的兩場(chǎng)圖像數(shù)據(jù)。外接RAM的電路中,包含有3大功能塊:兩個(gè)128KB的RAM組成存儲(chǔ)功能塊、兩個(gè)地址發(fā)生器及一個(gè)多路轉(zhuǎn)換器,如圖3所示。存儲(chǔ)功能塊用于存儲(chǔ)電腦眼的一場(chǎng)完整圖像數(shù)據(jù),地址發(fā)生器用于存儲(chǔ)器的地址選擇,多路轉(zhuǎn)換器用于切換對(duì)存儲(chǔ)塊的工作路徑。
多路轉(zhuǎn)換器是利用電腦眼場(chǎng)同步信號(hào)來進(jìn)行切換的,其切換頻率與電腦眼的場(chǎng)同步信號(hào)的頻率相當(dāng)。在多路轉(zhuǎn)換器中,當(dāng)電腦眼的場(chǎng)同步信號(hào)到來時(shí),一路選通RAMA并同時(shí)對(duì)RAMA寫選通,另一路選通RAMB并同時(shí)對(duì)RAMB讀選通。A地址發(fā)生器由電腦眼的象素同步信號(hào)觸發(fā),由此產(chǎn)生的地址信號(hào)被接入RAMA的地址端,并將電腦眼采集的一場(chǎng)圖像數(shù)據(jù)寫入RAMA中,A地址發(fā)生器對(duì)RAMB是不選通狀態(tài)。在EZ-USB芯片端,芯片快速讀控制信號(hào)觸發(fā)B地址發(fā)生器,產(chǎn)生的地址信號(hào)接入RAMB地址端。此時(shí)B地址發(fā)生器對(duì)RAMA是不選通狀態(tài),這樣USB芯片就能從RAMB中讀取完整的一場(chǎng)圖像數(shù)據(jù)。在芯片讀取下一場(chǎng)圖像數(shù)據(jù)時(shí),上述過程正好相反,電腦眼向RAMB中寫入數(shù)據(jù),EZ-USB芯片從RAMA中取出數(shù)據(jù)。
2.3 基于RAM單片方案的軟件流程
如上所述,EZ-USB 2131Q芯片采用了一種基于RAM的方案,實(shí)現(xiàn)數(shù)據(jù)格式轉(zhuǎn)換的程序并未固化在芯片中,是一種軟硬結(jié)合的固件(FIRMWARE)。當(dāng)器件插入U(xiǎn)SB口時(shí),主機(jī)對(duì)器件進(jìn)行輪詢,獲取了器件的ID號(hào)后,系統(tǒng)程序?qū)IRMWARE下載到芯片內(nèi)部,執(zhí)行數(shù)據(jù)格式的邏輯轉(zhuǎn)換。FIRMWARE結(jié)構(gòu)如圖4所示。其中:TD_Init():用于初始化FIRMWARE的全局狀態(tài)變量;TD_Poll():反復(fù)調(diào)用,用于執(zhí)行用戶的外設(shè)功能;TD_Suspend():此函數(shù)可以使器件進(jìn)入低功耗狀態(tài);TD_Resume():此函數(shù)用于響應(yīng)外部恢復(fù)事件,使器件恢復(fù)正常工作狀態(tài)。
FIRMWARE工作時(shí),獲取圖像數(shù)據(jù)后轉(zhuǎn)換成USB數(shù)據(jù)格式,提交給計(jì)算機(jī)處理。
利用FIFO的方法,電路簡(jiǎn)單,可以得到穩(wěn)定的圖像。但代價(jià)是要丟掉一些有效數(shù)據(jù),在不損失有效數(shù)據(jù)的條件下又必須控制電腦眼,會(huì)使得圖像的傳輸速率降。是一種可用但不最佳的方法。
電腦眼基于外接RAM的單片方案,雖然在電路上比接FIFO稍顯復(fù)雜,但此方案解決了數(shù)據(jù)傳輸?shù)耐暾?而且能保持電腦眼連續(xù)采集數(shù)據(jù),保證了電腦眼的最大傳輸速率。
圖5是通過基于RAM的單片方案獲取電腦眼采集的圖像數(shù)據(jù)并經(jīng)USB口送入計(jì)算機(jī),經(jīng)過客戶軟件處理后得到的電腦眼的圖像。
綜上所述,基于外接RAM的單片方案是一種穩(wěn)定可以的解決方案,保證了數(shù)據(jù)的完整性和連續(xù)性。
評(píng)論
查看更多