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