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