新聞中心

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

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

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

        系統驅動程序軟件結構

        圖2 系統驅動程序軟件結構

               主機與VW2005的通信

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

        表1 主機到VW2005的共享存儲區格式

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

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

        񕐒  VW2005到主機的共享存儲區格式

        表2  VW2005到主機的共享存儲區格式

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

               信號燈

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

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

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

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

               壓縮卡程序流程圖

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

        壓縮卡程序流程圖

        圖3 壓縮卡程序流程圖

               結語



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 蓝田县| 新邵县| 隆子县| 凤冈县| 北宁市| 隆化县| 阿合奇县| 巴东县| 鲁甸县| 泾阳县| 左贡县| 宝坻区| 寿阳县| 桐庐县| 扶沟县| 潼南县| 公安县| 建平县| 霍林郭勒市| 巴彦县| 沈阳市| 崇礼县| 横山县| 张家港市| 邯郸县| 武功县| 福鼎市| 广南县| 岳西县| 临洮县| 鄂伦春自治旗| 大庆市| 丽江市| 富阳市| 阿瓦提县| 平潭县| 雅江县| 红原县| 炉霍县| 息烽县| 四会市|