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