新聞中心

EEPW首頁 > 模擬技術 > 設計應用 > 基于VW2005的MPEG-4音視頻壓縮卡設計2

基于VW2005的MPEG-4音視頻壓縮卡設計2

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

系統(tǒng)驅動程序軟件結構

圖2 系統(tǒng)驅動程序軟件結構

       主機與VW2005的通信

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

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

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

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

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

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

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

       信號燈

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

       VW2005為信號燈定義了兩種操作:

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

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

       壓縮卡程序流程圖

       壓縮結果是傳輸流時的程序流程如圖3所示。主機只需在編碼開始前對壓縮卡進行初始化操作,之后的編碼壓縮完全由VW2005芯片獨立完成,這樣大大降低了壓縮卡對主機CPU的要求。

壓縮卡程序流程圖

圖3 壓縮卡程序流程圖

       結語



評論


相關推薦

技術專區(qū)

關閉