基于USB接口的同步視頻輸出系統(tǒng)設計
摘要:介紹了一種實用的基于USB 2.0協(xié)議的同步視頻輸出系統(tǒng)的設計。系統(tǒng)采用CYPRESS公司的FX2 USB控制器,采用GPIF模式,硬件設計簡化,能依據(jù)PAL制電視標準與主機同步輸出視頻圖像。
關鍵詞:USB2.0協(xié)議 視頻圖像 PAL制 GPIF
在信息技術(shù)日新月異的今天,人們對視頻圖像傳輸?shù)男枨笤絹碓狡惹?,要求越來越高,而整個圖像傳輸系統(tǒng)的瓶頸在于視頻圖像的信息量很大,而且傳輸?shù)倪^程中容易出現(xiàn)延時、抖動、失真等現(xiàn)象,因此在選擇視頻圖像傳輸?shù)目偩€要求速度高,錯誤率低的特點。目前視頻圖像實時傳輸采用的總線主要有PCI、1394以及USB。三者比較而言,USB 2.0高速傳輸協(xié)議,兼有快速、通用、可靠、省電、熱插拔等優(yōu)點,比傳統(tǒng)基于PCI總線、1394總線的視頻輸出系統(tǒng),具有更強大的通用性和靈活性。特別是在需要利用筆記本電腦等便攜設備進行視頻輸出的場合
本文介紹的同步視頻輸出系統(tǒng),由作為外設的視頻輸出接口卡和主機上的應用軟件兩個部分組成,采用通用串行總線(USB)實現(xiàn)視頻圖像數(shù)據(jù)的傳輸,并依據(jù)PAL制電視標準與主機同步視頻顯示,畫面流暢清晰。
1.視頻輸出接口卡硬件結(jié)構(gòu)和工作原理
1.1 視頻輸出接口卡的硬件結(jié)構(gòu)
視頻輸出接口卡的結(jié)構(gòu)框圖如圖1所示,主要由內(nèi)置MCU的USB接口芯片、圖像存儲SRAM、以及D/A圖像輸出三個部分。各部分的主要功能為:USB接口芯片和主機通信,將主機的視頻圖像數(shù)據(jù)按照一定時序通過USB電纜寫入SRAM保存;SRAM芯片負責數(shù)字視頻信號的存儲;D/A圖像輸出部分將數(shù)字視頻信號轉(zhuǎn)換成模擬視頻信號,按照PAL制式進行輸出顯示。
1.2 視頻圖像傳輸和存儲顯示
本系統(tǒng)視頻圖像數(shù)據(jù)是通過USB電纜傳輸,USB電纜包含4根電線:Vbus,D+,D-和GND。數(shù)據(jù)以480M高速信號在D+和D-信號線上差分傳輸,而收發(fā)器在USB接口控制芯片上,不需要外部電路。
USB接口部分是本系統(tǒng)最為重要的通信部分。USB接口控制芯片采用的是CYPRESS公司的EZ USB FX2系列CY7C68013芯片。它內(nèi)部集成帶8KB片內(nèi)RAM的增強型51系列MCU、16位并行地址總線、8/16數(shù)據(jù)總線、IIC總線、4KB FIFO 存儲器以及通用可編程接口GPIF,串行接口引擎SIE和USB收發(fā)器,是USB 2.0的完整的解決方案。
串行接口引擎智能SIE通過包排序、信號產(chǎn)生/檢測、CRC產(chǎn)生/校驗、NRZI數(shù)據(jù)編碼、位填充和包標識產(chǎn)生/解碼來處理USB通信協(xié)議,并保證傳輸?shù)経SB電纜上的數(shù)據(jù)字節(jié)以LSB開頭。它使MCU從繁瑣的USB協(xié)議中脫身,集中注意力放在控制數(shù)據(jù)的輸入和輸出。
FX2內(nèi)部集成的高速MCU為增強型8051,功能較傳統(tǒng)的8051系列單片機強大,但在代碼的編寫上兼容,使用方便,且速度是標準8051的3~5倍,工作頻率可以軟件設置,最高可為48Mhz,還帶有兩個串口,三個計數(shù)/定時器,八級中斷,雙數(shù)據(jù)指針方便數(shù)據(jù)塊搬移。
外設接口有兩種接口方式:可編程接口GPIF和Slave FIFO??删幊踢壿嫿涌贕PIF是主控方式,可以由軟件設計讀寫控制波形,不通過MCU,就可以實現(xiàn)主動對任何8/16位接口的控制器、存儲器和總線進行數(shù)據(jù)的讀寫。而且讀寫的最高速度可以達到96MB/s,高于USB2.0的傳輸速度。Slave FIFO是從控方式,外部控制器(如DSP 和單片機等)可以像對普通的FIFO一樣對FX2的多重緩沖讀寫,工作方式也可選擇同步或異步,工作時鐘可以選擇輸入和輸出。
另外,它是基于RAM的“軟”系統(tǒng)解決方案,不需要ROM或者其他的固化存儲器,可以使用片內(nèi)的程序/數(shù)據(jù)RAM。固件可以直接通過USB電纜下載,方便固件的修改和升級。
靜態(tài)存儲器SRAM采用IDT公司雙口異步靜態(tài)RAM芯片IDT70v09,8位數(shù)據(jù)線,17根地址線,64M容量。
視頻信號輸出轉(zhuǎn)換的芯片是DAC0800, 將數(shù)字圖像信號轉(zhuǎn)換為模擬信號,依據(jù)PAL制輸出。PAL制視頻輸出標準為25幀/秒,一幀分奇偶兩場,20ms一場,其中場正程為17ms,逆程為3ms。系統(tǒng)中正是利用場同步信號作為同步標準,使USB設備的圖像傳輸和顯示一致。
1.3 工作原理
當USB設備第一次插入到USB接口時,F(xiàn)X2通過USB電纜自動枚舉,并下載固件程序和USB描述符表;接下來,F(xiàn)X2二次枚舉,根據(jù)下載的信息定義重新定義USB設備。這兩個步驟稱為再枚舉,設備插入時就立即執(zhí)行而沒有提示。二次枚舉以后主機可以通過控制管道和USB設備通訊,完成USB設備的端點配置等初始化工作,完畢,開始查詢USB設備是否準備好。USB設備端MCU檢測外部中斷INT0(場信號跳變沿),若外部中斷INT0發(fā)生,則轉(zhuǎn)入外部中斷服務子程序,應答主機,說明USB設備已經(jīng)準備好接受數(shù)據(jù),主機查詢到此應答后,應用程序發(fā)一場圖像數(shù)據(jù)到FX2,單片機檢測到數(shù)據(jù)到達后,啟動GPIF,然后GPIF獨立于MCU將圖像數(shù)據(jù)導入SRAM,一場圖像傳輸完畢,結(jié)束GPIF,退出中斷服務子程序,直到下一輪中斷開始。D/A部分電路在場正程部分讀取SRAM圖像數(shù)據(jù),并轉(zhuǎn)換為模擬信號輸出顯示,而在場逆程中禁止讀取SRAM。
2.固件(FIRMWARE)設計
固件是指固化在USB控制器中MCU的程序,它的主要功能是負責接收與處理主機發(fā)給設備的各種請求,并向主機返回設備的狀態(tài)信息。FX2 系列的固件代碼可以存儲到主機中,設備上電復位以后通過USB電纜手動下載到FX2,這種方法易于升級,在系統(tǒng)的開發(fā)過程中很方便;固件代碼可以固化到片外存儲器EEPROM或者是ROM,設備上電以后,自動下載固件到片內(nèi)RAM,這兩種方法可以將系統(tǒng)固件做成產(chǎn)品,無須每次手動下載。
本系統(tǒng)中固件分兩個部分,一個是數(shù)據(jù)通道的控制,一個是主機控制命令的應答。數(shù)據(jù)通道的控制主要是GPIF控制數(shù)據(jù)傳輸管道完成。而控制管道EP0則負責主機和USB設備端的去掉數(shù)據(jù)部分的通信:更改管道和端點配置信息,設置軟件中斷,更改GPIF視頻圖像傳輸?shù)拇笮?,獲取重要寄存器的狀態(tài)等等。
固件的程序框圖如上所示。其中設備請求部分即為控制管道信息,是由單片機負責,而數(shù)據(jù)通道主要是通過GPIF操作,隔離了單片機的參與,提高數(shù)據(jù)傳輸速度。
固件代碼編寫使用Keil uVision,GPIF編程應用CYPRESS公司的GPIF工具(GPIFTOOL)。GPIF可以控制FX2端點FIFO,也可以產(chǎn)生六個控制輸出端(CTL0~CTL5)和九根地址線輸出,并且可以接收六個外部輸入信號,并對這些信號進行邏輯編程控制,從而控制FX2與外部接口的讀寫時序。實際操作可以利用GPIFTOOL繪制波形描述符,轉(zhuǎn)為C文件,配置各個相關的寄存器,控制SRAM接口讀寫邏輯。
SRAM硬件接口的時序圖如下:
依據(jù)上面的波形圖,我們只需要在S1結(jié)束的時候跳轉(zhuǎn)S0 狀態(tài)即可。將繪制的波形圖應用GPIF TOOL轉(zhuǎn)換為gpif.c文件,加入Project中,連接編譯即可得到固件。
在固件編程中電源管理部分,由于FX2在首次枚舉電流大約是75mA,F(xiàn)X2設備的識別則至少需要100mA,小于500mA,因此在固件中要加進電源檢測,如果小于100mA,必須向主機申請更大的電流,直到主機正確識別FX2。
3.用戶應用程序和USB設備驅(qū)動程序設計
USB設備驅(qū)動程序是連接USB外設、操作系統(tǒng)以及用戶應用程序的橋梁,是USB設備連接到計算機系統(tǒng)的軟件接口。
FX2 系列CYPRESS公司提供了一個通用的USB驅(qū)動程序ezusb.sys,可以實現(xiàn)USB外設和應用程序之間的一般的通信和控制功能,開發(fā)者如果需要實現(xiàn)系統(tǒng)特有的通信和控制功能,必須在此基礎上加以修改,比如,通用USB驅(qū)動程序每一次塊傳輸數(shù)據(jù)大小必須小于64KB,而一般一幅圖像數(shù)據(jù)的大小大于或者等于64KB,如果要求每次傳輸一幅圖像到USB外設,則必須在通用USB驅(qū)動程序上加以改動。
此外還需要在驅(qū)動程序中添加下載固件部分,在USB外設上電以后,可以自動下載固件到FX2的RAM中,F(xiàn)X2二次枚舉,主機正確識別USB外設。
用戶的應用程序是操作系統(tǒng)和用戶的接口,它以不同的參數(shù)調(diào)用驅(qū)動程序的函
數(shù),控制USB外設,實現(xiàn)用戶定義系統(tǒng)的各種功能:讀寫視頻圖像,利用控制管道的用戶定義命令對FX2進行監(jiān)控以及重新下載固件等等。
應用程序的程序框圖如下:
4.結(jié)束語
針對視頻圖像同步輸出實際需要,本系統(tǒng)采用USB 2.0的高速協(xié)議,CYPRESS公司的FX2 USB 控制器,使USB設備接口硬件簡化,引入視頻顯示部分的場同步信號觸發(fā)數(shù)據(jù)流,視頻圖像的顯示結(jié)果標準平滑。本系統(tǒng)視頻圖像的傳輸速度嚴格依據(jù)PAL制為50場/秒,GPIF的接口速度為24MB/s。此外本系統(tǒng)可擴展性強,方便實用,稍加改動,可以將任何數(shù)據(jù)從主機高速導入外設,目前可以達到最大速度為23MB/s;如果加入視頻采集部分電路,就可成為一個實時采集視頻系統(tǒng)。
參考文獻
1. Cypress Semiconductor Corporation. EZ-USB FX2 Technical Reference Manual,2002;12
2. Compaq ,HP ,Philips etc. Universal Serial Bus Specification Revision 2.0 ,2000