關(guān) 閉

新聞中心

EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > 基于USB接口的同步視頻輸出系統(tǒng)設(shè)計

基于USB接口的同步視頻輸出系統(tǒng)設(shè)計

作者: 時間:2007-06-15 來源:網(wǎng)絡(luò) 收藏

摘要:介紹了一種實用的基于 2.0協(xié)議的同步系統(tǒng)的設(shè)計。系統(tǒng)采用CYPRESS公司的FX2 控制器,采用GPIF模式,硬件設(shè)計簡化,能依據(jù)PAL制電視標(biāo)準(zhǔn)與主機(jī)同步輸出視頻圖像。
關(guān)鍵詞2.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),具有更強大的通用性和靈活性。特別是在需要利用筆記本電腦等便攜設(shè)備進(jìn)行的場合

本文介紹的同步視頻輸出系統(tǒng),由作為外設(shè)的視頻輸出卡和主機(jī)上的應(yīng)用軟件兩個部分組成,采用通用串行總線(USB)實現(xiàn)視頻圖像數(shù)據(jù)的傳輸,并依據(jù)PAL制電視標(biāo)準(zhǔn)與主機(jī)同步視頻顯示,畫面流暢清晰。

1.視頻輸出卡硬件結(jié)構(gòu)和工作原理
1.1 視頻輸出卡的硬件結(jié)
構(gòu)
視頻輸出接口卡的結(jié)構(gòu)框圖如圖1所示,主要由內(nèi)置MCU的USB接口芯片、圖像存儲SRAM、以及D/A圖像輸出三個部分。各部分的主要功能為:USB接口芯片和主機(jī)通信,將主機(jī)的視頻圖像數(shù)據(jù)按照一定時序通過USB電纜寫入SRAM保存;SRAM芯片負(fù)責(zé)數(shù)字視頻信號的存儲;D/A圖像輸出部分將數(shù)字視頻信號轉(zhuǎn)換成模擬視頻信號,按照PAL制式進(jìn)行輸出顯示。

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ù)編碼、位填充和包標(biāo)識產(chǎn)生/解碼來處理USB通信協(xié)議,并保證傳輸?shù)経SB電纜上的數(shù)據(jù)字節(jié)以LSB開頭。它使MCU從繁瑣的USB協(xié)議中脫身,集中注意力放在控制數(shù)據(jù)的輸入和輸出。

FX2內(nèi)部集成的高速MCU為增強型8051,功能較傳統(tǒng)的8051系列單片機(jī)強大,但在代碼的編寫上兼容,使用方便,且速度是標(biāo)準(zhǔn)8051的3~5倍,工作頻率可以軟件設(shè)置,最高可為48Mhz,還帶有兩個串口,三個計數(shù)/定時器,八級中斷,雙數(shù)據(jù)指針方便數(shù)據(jù)塊搬移。

外設(shè)接口有兩種接口方式:可編程接口GPIF和Slave FIFO??删幊踢壿嫿涌贕PIF是主控方式,可以由軟件設(shè)計讀寫控制波形,不通過MCU,就可以實現(xiàn)主動對任何8/16位接口的控制器、存儲器和總線進(jìn)行數(shù)據(jù)的讀寫。而且讀寫的最高速度可以達(dá)到96MB/s,高于USB2.0的傳輸速度。Slave FIFO是從控方式,外部控制器(如DSP 和單片機(jī)等)可以像對普通的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制視頻輸出標(biāo)準(zhǔn)為25幀/秒,一幀分奇偶兩場,20ms一場,其中場正程為17ms,逆程為3ms。系統(tǒng)中正是利用場同步信號作為同步標(biāo)準(zhǔn),使USB設(shè)備的圖像傳輸和顯示一致。

1.3 工作原理

當(dāng)USB設(shè)備第一次插入到USB接口時,F(xiàn)X2通過USB電纜自動枚舉,并下載固件程序和USB描述符表;接下來,F(xiàn)X2二次枚舉,根據(jù)下載的信息定義重新定義USB設(shè)備。這兩個步驟稱為再枚舉,設(shè)備插入時就立即執(zhí)行而沒有提示。二次枚舉以后主機(jī)可以通過控制管道和USB設(shè)備通訊,完成USB設(shè)備的端點配置等初始化工作,完畢,開始查詢USB設(shè)備是否準(zhǔn)備好。USB設(shè)備端MCU檢測外部中斷INT0(場信號跳變沿),若外部中斷INT0發(fā)生,則轉(zhuǎn)入外部中斷服務(wù)子程序,應(yīng)答主機(jī),說明USB設(shè)備已經(jīng)準(zhǔn)備好接受數(shù)據(jù),主機(jī)查詢到此應(yīng)答后,應(yīng)用程序發(fā)一場圖像數(shù)據(jù)到FX2,單片機(jī)檢測到數(shù)據(jù)到達(dá)后,啟動GPIF,然后GPIF獨立于MCU將圖像數(shù)據(jù)導(dǎo)入SRAM,一場圖像傳輸完畢,結(jié)束GPIF,退出中斷服務(wù)子程序,直到下一輪中斷開始。D/A部分電路在場正程部分讀取SRAM圖像數(shù)據(jù),并轉(zhuǎn)換為模擬信號輸出顯示,而在場逆程中禁止讀取SRAM。

2.固件(FIRMWARE)設(shè)計
固件是指固化在USB控制器中MCU的程序,它的主要功能是負(fù)責(zé)接收與處理主機(jī)發(fā)給設(shè)備的各種請求,并向主機(jī)返回設(shè)備的狀態(tài)信息。FX2 系列的固件代碼可以存儲到主機(jī)中,設(shè)備上電復(fù)位以后通過USB電纜手動下載到FX2,這種方法易于升級,在系統(tǒng)的開發(fā)過程中很方便;固件代碼可以固化到片外存儲器EEPROM或者是ROM,設(shè)備上電以后,自動下載固件到片內(nèi)RAM,這兩種方法可以將系統(tǒng)固件做成產(chǎn)品,無須每次手動下載。

本系統(tǒng)中固件分兩個部分,一個是數(shù)據(jù)通道的控制,一個是主機(jī)控制命令的應(yīng)答。數(shù)據(jù)通道的控制主要是GPIF控制數(shù)據(jù)傳輸管道完成。而控制管道EP0則負(fù)責(zé)主機(jī)和USB設(shè)備端的去掉數(shù)據(jù)部分的通信:更改管道和端點配置信息,設(shè)置軟件中斷,更改GPIF視頻圖像傳輸?shù)拇笮?,獲取重要寄存器的狀態(tài)等等。

固件的程序框圖如上所示。其中設(shè)備請求部分即為控制管道信息,是由單片機(jī)負(fù)責(zé),而數(shù)據(jù)通道主要是通過GPIF操作,隔離了單片機(jī)的參與,提高數(shù)據(jù)傳輸速度。

固件代碼編寫使用Keil uVision,GPIF編程應(yīng)用CYPRESS公司的GPIF工具(GPIFTOOL)。GPIF可以控制FX2端點FIFO,也可以產(chǎn)生六個控制輸出端(CTL0~CTL5)和九根地址線輸出,并且可以接收六個外部輸入信號,并對這些信號進(jìn)行邏輯編程控制,從而控制FX2與外部接口的讀寫時序。實際操作可以利用GPIFTOOL繪制波形描述符,轉(zhuǎn)為C文件,配置各個相關(guān)的寄存器,控制SRAM接口讀寫邏輯。
SRAM硬件接口的時序圖如下:

依據(jù)上面的波形圖,我們只需要在S1結(jié)束的時候跳轉(zhuǎn)S0 狀態(tài)即可。將繪制的波形圖應(yīng)用GPIF TOOL轉(zhuǎn)換為gpif.c文件,加入Project中,連接編譯即可得到固件。

在固件編程中電源管理部分,由于FX2在首次枚舉電流大約是75mA,F(xiàn)X2設(shè)備的識別則至少需要100mA,小于500mA,因此在固件中要加進(jìn)電源檢測,如果小于100mA,必須向主機(jī)申請更大的電流,直到主機(jī)正確識別FX2。

3.用戶應(yīng)用程序和USB設(shè)備驅(qū)動程序設(shè)計
USB設(shè)備驅(qū)動程序是連接USB外設(shè)、操作系統(tǒng)以及用戶應(yīng)用程序的橋梁,是USB設(shè)備連接到計算機(jī)系統(tǒng)的軟件接口。

FX2 系列CYPRESS公司提供了一個通用的USB驅(qū)動程序ezusb.sys,可以實現(xiàn)USB外設(shè)和應(yīng)用程序之間的一般的通信和控制功能,開發(fā)者如果需要實現(xiàn)系統(tǒng)特有的通信和控制功能,必須在此基礎(chǔ)上加以修改,比如,通用USB驅(qū)動程序每一次塊傳輸數(shù)據(jù)大小必須小于64KB,而一般一幅圖像數(shù)據(jù)的大小大于或者等于64KB,如果要求每次傳輸一幅圖像到USB外設(shè),則必須在通用USB驅(qū)動程序上加以改動。

此外還需要在驅(qū)動程序中添加下載固件部分,在USB外設(shè)上電以后,可以自動下載固件到FX2的RAM中,F(xiàn)X2二次枚舉,主機(jī)正確識別USB外設(shè)。

用戶的應(yīng)用程序是操作系統(tǒng)和用戶的接口,它以不同的參數(shù)調(diào)用驅(qū)動程序的函
數(shù),控制USB外設(shè),實現(xiàn)用戶定義系統(tǒng)的各種功能:讀寫視頻圖像,利用控制管道的用戶定義命令對FX2進(jìn)行監(jiān)控以及重新下載固件等等。

應(yīng)用程序的程序框圖如下:

4.結(jié)束語
針對視頻圖像同步輸出實際需要,本系統(tǒng)采用USB 2.0的高速協(xié)議,CYPRESS公司的FX2 USB 控制器,使USB設(shè)備接口硬件簡化,引入視頻顯示部分的場同步信號觸發(fā)數(shù)據(jù)流,視頻圖像的顯示結(jié)果標(biāo)準(zhǔn)平滑。本系統(tǒng)視頻圖像的傳輸速度嚴(yán)格依據(jù)PAL制為50場/秒,GPIF的接口速度為24MB/s。此外本系統(tǒng)可擴(kuò)展性強,方便實用,稍加改動,可以將任何數(shù)據(jù)從主機(jī)高速導(dǎo)入外設(shè),目前可以達(dá)到最大速度為23MB/s;如果加入視頻采集部分電路,就可成為一個實時采集視頻系統(tǒng)。

參考文獻(xiàn)
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



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉