基于USB接口的同步視頻輸出系統設計方案
在信息技術(shù)日新月異的今天,人們對視頻圖像傳輸的需求越來(lái)越迫切,要求越來(lái)越高,而整個(gè)圖像傳輸系統的瓶頸在于視頻圖像的信息量很大,而且傳輸的過(guò)程中容易出現延時(shí)、抖動(dòng)、失真等現象,因此在選擇視頻圖像傳輸的總線(xiàn)要求速度高,錯誤率低的特點(diǎn)。目前視頻圖像實(shí)時(shí)傳輸采用的總線(xiàn)主要有PCI、1394以及USB.三者比較而言,USB 2.0高速傳輸協(xié)議,兼有快速、通用、可靠、省電、熱插拔等優(yōu)點(diǎn),比傳統基于PCI總線(xiàn)、1394總線(xiàn)的視頻輸出系統,特別是在需要利用筆記本電腦等便攜設備進(jìn)行視頻輸出的場(chǎng)合,具有更強大的通用性和靈活性。
本文所介紹的同步視頻輸出系統設計方案,由作為外設的視頻輸出接口卡和主機上的應用軟件兩個(gè)部分組成,采用通用串行總線(xiàn)(USB)實(shí)現視頻圖像數據的傳輸,并依據PAL制電視標準與主機同步視頻顯示,畫(huà)面流暢清晰。
1.視頻輸出接口卡硬件結構和工作原理
1.1 視頻輸出接口卡的硬件結構
視頻輸出接口卡的結構框圖如圖1所示,主要由內置MCU的USB接口芯片、圖像存儲SRAM、以及D/A圖像輸出三個(gè)部分。各部分的主要功能為:USB接口芯片和主機通信,將主機的視頻圖像數據按照一定時(shí)序通過(guò)USB電纜寫(xiě)入SRAM保存;SRAM芯片負責數字視頻信號的存儲;D/A圖像輸出部分將數字視頻信號轉換成模擬視頻信號,按照PAL制式進(jìn)行輸出顯示。
1.2 視頻圖像傳輸和存儲顯示
本系統視頻圖像數據是通過(guò)USB電纜傳輸,USB電纜包含4根電線(xiàn):Vbus,D+,D-和GND.數據以480M高速信號在D+和D-信號線(xiàn)上差分傳輸,而收發(fā)器在USB接口控制芯片上,不需要外部電路。
USB接口部分是本系統最為重要的通信部分。USB接口控制芯片采用的是CYPRESS公司的EZ USB FX2系列CY7C68013芯片。它內部集成帶8KB片內RAM的增強型51系列MCU、16位并行地址總線(xiàn)、8/16數據總線(xiàn)、IIC總線(xiàn)、4KB FIFO 存儲器以及通用可編程接口GPIF,串行接口引擎SIE和USB收發(fā)器,是USB 2.0的完整的解決方案。
串行接口引擎智能SIE通過(guò)包排序、信號產(chǎn)生/檢測、CRC產(chǎn)生/校驗、NRZI數據編碼、位填充和包標識產(chǎn)生/解碼來(lái)處理USB通信協(xié)議,并保證傳輸到USB電纜上的數據字節以L(fǎng)SB開(kāi)頭。它使MCU從繁瑣的USB協(xié)議中脫身,集中注意力放在控制數據的輸入和輸出。
FX2內部集成的高速MCU為增強型8051,功能較傳統的8051系列單片機強大,但在代碼的編寫(xiě)上兼容,使用方便,且速度是標準8051的3~5倍,工作頻率可以軟件設置,最高可為48Mhz,還帶有兩個(gè)串口,三個(gè)計數/定時(shí)器,八級中斷,雙數據指針?lè )奖銛祿K搬移。
外設接口有兩種接口方式:可編程接口GPIF和Slave FIFO.可編程邏輯接口GPIF是主控方式,可以由軟件設計讀寫(xiě)控制波形,不通過(guò)MCU,就可以實(shí)現主動(dòng)對任何8/16位接口的控制器、存儲器和總線(xiàn)進(jìn)行數據的讀寫(xiě)。而且讀寫(xiě)的最高速度可以達到96MB/s,高于USB2.0的傳輸速度。Slave FIFO是從控方式,外部控制器(如DSP 和單片機等)可以像對普通的FIFO一樣對FX2的多重緩沖讀寫(xiě),工作方式也可選擇同步或異步,工作時(shí)鐘可以選擇輸入和輸出。
另外,它是基于RAM的“軟”系統解決方案,不需要ROM或者其他的固化存儲器,可以使用片內的程序/數據RAM.固件可以直接通過(guò)USB電纜下載,方便固件的修改和升級。
靜態(tài)存儲器SRAM采用IDT公司雙口異步靜態(tài)RAM芯片IDT70v09,8位數據線(xiàn),17根地址線(xiàn),64M容量。
視頻信號輸出轉換的芯片是DAC0800, 將數字圖像信號轉換為模擬信號,依據PAL制輸出。PAL制視頻輸出標準為25幀/秒,一幀分奇偶兩場(chǎng),20ms一場(chǎng),其中場(chǎng)正程為17ms,逆程為3ms.系統中正是利用場(chǎng)同步信號作為同步標準,使USB設備的圖像傳輸和顯示一致。
1.3 工作原理
當USB設備第一次插入到USB接口時(shí),FX2通過(guò)USB電纜自動(dòng)枚舉,并下載固件程序和USB描述符表;接下來(lái),FX2二次枚舉,根據下載的信息定義重新定義USB設備。這兩個(gè)步驟稱(chēng)為再枚舉,設備插入時(shí)就立即執行而沒(méi)有提示。二次枚舉以后主機可以通過(guò)控制管道和USB設備通訊,完成USB設備的端點(diǎn)配置等初始化工作,完畢,開(kāi)始查詢(xún)USB設備是否準備好。USB設備端MCU檢測外部中斷INT0(場(chǎng)信號跳變沿),若外部中斷INT0發(fā)生,則轉入外部中斷服務(wù)子程序,應答主機,說(shuō)明USB設備已經(jīng)準備好接受數據,主機查詢(xún)到此應答后,應用程序發(fā)一場(chǎng)圖像數據到FX2,單片機檢測到數據到達后,啟動(dòng)GPIF,然后GPIF獨立于MCU將圖像數據導入SRAM,一場(chǎng)圖像傳輸完畢,結束GPIF,退出中斷服務(wù)子程序,直到下一輪中斷開(kāi)始。D/A部分電路在場(chǎng)正程部分讀取SRAM圖像數據,并轉換為模擬信號輸出顯示,而在場(chǎng)逆程中禁止讀取SRAM.
2.固件(FIRMWARE)設計
固件是指固化在USB控制器中MCU的程序,它的主要功能是負責接收與處理主機發(fā)給設備的各種請求,并向主機返回設備的狀態(tài)信息。FX2 系列的固件代碼可以存儲到主機中,設備上電復位以后通過(guò)USB電纜手動(dòng)下載到FX2,這種方法易于升級,在系統的開(kāi)發(fā)過(guò)程中很方便;固件代碼可以固化到片外存儲器EEPROM或者是ROM,設備上電以后,自動(dòng)下載固件到片內RAM,這兩種方法可以將系統固件做成產(chǎn)品,無(wú)須每次手動(dòng)下載。
本系統中固件分兩個(gè)部分,一個(gè)是數據通道的控制,一個(gè)是主機控制命令的應答。數據通道的控制主要是GPIF控制數據傳輸管道完成。而控制管道EP0則負責主機和USB設備端的去掉數據部分的通信:更改管道和端點(diǎn)配置信息,設置軟件中斷,更改GPIF視頻圖像傳輸的大小,獲取重要寄存器的狀態(tài)等等。
評論