新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于VW2005的MPEG-4音視頻壓縮卡設(shè)計(jì)2

基于VW2005的MPEG-4音視頻壓縮卡設(shè)計(jì)2

——
作者:EDN電子設(shè)計(jì)技術(shù) 時(shí)間:2006-05-17 來(lái)源: 收藏
設(shè)備驅(qū)動(dòng)程序軟件結(jié)構(gòu)如圖2所示。應(yīng)用程序由用戶根據(jù)不同的應(yīng)用場(chǎng)合來(lái)編寫,它只與Vweb USB驅(qū)動(dòng)程序通信,而不與硬件內(nèi)部的固件或微碼通信。在Windows下,應(yīng)用程序只需三個(gè)函數(shù)與驅(qū)動(dòng)程序通信:CreatFile()用來(lái)打開(kāi)一個(gè)基于VW2005的板卡;CloseHandle用來(lái)關(guān)閉一個(gè)基于VW2005的板卡;DeviceIoControl用來(lái)對(duì)VW2005板卡進(jìn)行各種控制和設(shè)置。為了支持VW2005芯片的運(yùn)行,Vweb公司提供了用于系統(tǒng)設(shè)計(jì)的USB驅(qū)動(dòng)API、USB驅(qū)動(dòng)、芯片級(jí)API、固件及微碼。上電/復(fù)位后,固件從ROM中導(dǎo)入SDRAM,VW2005的RISC處理器有片內(nèi)高速緩存(如dmem)用于執(zhí)行固件程序,微碼下載到特殊的內(nèi)部RISC引擎,每個(gè)RISC引擎都有片內(nèi)RAM和高速緩沖,用于存儲(chǔ)和執(zhí)行寫入內(nèi)部的微碼。

系統(tǒng)驅(qū)動(dòng)程序軟件結(jié)構(gòu)

圖2 系統(tǒng)驅(qū)動(dòng)程序軟件結(jié)構(gòu)

       主機(jī)與VW2005的通信

       VW2005內(nèi)部的編碼存儲(chǔ)器(encoder SDRAM)中有兩個(gè)雙端口、128字節(jié)的共享存儲(chǔ)區(qū),作為主機(jī)與VW2005的通信媒介。用于主機(jī)到VW2005通信的128字節(jié)的共享存儲(chǔ)區(qū)(以下簡(jiǎn)稱host_VW_SM)位于encoder SDRAM中地址0x3F1800處。Host_VW_SM格式如表1所示。

表1 主機(jī)到VW2005的共享存儲(chǔ)區(qū)格式

       VW2005在Firmware ReadyCode中寫入0x0A00,表示準(zhǔn)備接收命令;CMD為命令碼,分別是讀數(shù)據(jù)(CMD=1)、發(fā)IOCTL碼(CMD=2)、寫數(shù)據(jù)(CMD=3)、打開(kāi)命令(CMD=4)和關(guān)閉命令(CMD=5);Int Flag為中斷標(biāo)識(shí),Int Flag=1則VW2005執(zhí)行完命令后產(chǎn)生一個(gè)中斷,Int Flag=0則不產(chǎn)生中斷;Device Handle由打開(kāi)命令從固件中獲得;Paremeters為附加參數(shù)。

       用于VW2005到主機(jī)通信的128字節(jié)的共享存儲(chǔ)區(qū)(以下簡(jiǎn)稱VW_host_SM)位于encoder SDRAM中地址0x3F1880處。VW_host_SM格式如表2所示。

񕐒  VW2005到主機(jī)的共享存儲(chǔ)區(qū)格式

表2  VW2005到主機(jī)的共享存儲(chǔ)區(qū)格式

       ACK/NACK的含義是:如果Int Flag=1,命令CMD執(zhí)行成功后則為ACK,失敗則為NACK,并將錯(cuò)誤代碼保存在Return Code字段。Return Code的含義是:無(wú)錯(cuò)誤產(chǎn)生則為0,有錯(cuò)誤產(chǎn)生則為錯(cuò)誤代碼。其它參數(shù)與host_VW_SM類似,不再贅述。

       信號(hào)燈

       由于共享存儲(chǔ)區(qū)是臨界資源,所以必須提供一種機(jī)制,用以保證主機(jī)和VW2005使用它們時(shí)是互斥的。為此,VW2005分別給host_VW_SM和VW_host_SM提供了兩個(gè)硬件信號(hào)燈,分別由寄存器REG_INT1和REG_INT2的最低位實(shí)現(xiàn)。驅(qū)動(dòng)程序通過(guò)REG_INT1檢查固件是否為來(lái)自主機(jī)的下一個(gè)命令作好準(zhǔn)備,通過(guò)REG_INT2告知固件主機(jī)已處理完成前一個(gè)命令。

       VW2005為信號(hào)燈定義了兩種操作:

       寫操作:向REG_INT1或REG_INT2的最低位寫入1,釋放共享存儲(chǔ)區(qū)。

       讀操作:返回REG_INT1或REG_INT2的最低位的值,同時(shí)將該位清零。

       壓縮卡程序流程圖

       壓縮結(jié)果是傳輸流時(shí)的程序流程如圖3所示。主機(jī)只需在編碼開(kāi)始前對(duì)壓縮卡進(jìn)行初始化操作,之后的編碼壓縮完全由VW2005芯片獨(dú)立完成,這樣大大降低了壓縮卡對(duì)主機(jī)CPU的要求。

壓縮卡程序流程圖

圖3 壓縮卡程序流程圖

       結(jié)語(yǔ)



評(píng)論


相關(guān)推薦

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

關(guān)閉