<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 測試測量 > 設計應用 > MPEG-2碼流分析儀的整體設計與軟件實(shí)現

MPEG-2碼流分析儀的整體設計與軟件實(shí)現

作者: 時(shí)間:2017-01-12 來(lái)源:網(wǎng)絡(luò ) 收藏

4 儀的整體設計

本文所設計的碼流分析儀采用軟硬結合的結構,硬件部分主要包括碼流發(fā)送卡和碼流接收卡2塊板卡。硬件板卡通過(guò)PCI總線(xiàn)和工控機進(jìn)行通信,實(shí)現碼流的讀寫(xiě)與發(fā)送功能。發(fā)送卡和接收卡之間可通過(guò)標準的ASI和SPI接口進(jìn)行碼流的發(fā)送和接收。硬件板卡與軟件層的通信通過(guò)驅動(dòng)程序來(lái)完成,在分析過(guò)程中軟件部分和硬件板卡通過(guò)事件和消息進(jìn)行交互。動(dòng)態(tài)鏈接庫完成數據傳遞和分析的主體功能,最上層的應用程序調用動(dòng)態(tài)鏈接庫的數據實(shí)現數據傳遞和最終的界面顯示。碼流分析儀整體的設計如圖1所示。

圖中硬件的主要部分用FPGA實(shí)現,PCI接口使用專(zhuān)用PCI接口芯片PCI9054進(jìn)行控制,在碼流傳輸過(guò)程中,依靠大容量的RAM進(jìn)行輔助緩存。因為碼流讀寫(xiě)的速率很高。如果使用PIO方式進(jìn)行控制硬盤(pán)讀寫(xiě)則無(wú)法滿(mǎn)足碼流寫(xiě)入的速度要求,所以在硬件設計中,使用板卡本身的芯片進(jìn)行DMA控制,滿(mǎn)足了讀寫(xiě)速率的要求。驅動(dòng)程序使用WINDDK和DriverStudio開(kāi)發(fā)完成。上層軟件的設計思想和注意事項在后面將做詳細的說(shuō)明。

5 儀的軟件部分設計

圖2所示為儀模塊圖,其中碼流發(fā)送與接收模塊,數據接口與信息提取、離線(xiàn)分析、在線(xiàn)分析3個(gè)動(dòng)態(tài)鏈接庫(DLL)以及主程序與人機界面為系統的軟件部分。軟件部分采用Visual C++開(kāi)發(fā),詳細模塊關(guān)系和數據流圖如圖3所示。


圖3中,最底層是發(fā)送卡和接收卡,板卡通過(guò)PCI插槽和PC機進(jìn)行通信;驅動(dòng)程序通過(guò)消息和中斷以及Windows句柄來(lái)完成硬件和軟件的交互與控制;DLL通過(guò)調用驅動(dòng)程序的接口間接控制硬件,并且根據獲得的碼流或參數完成復雜的運算,通過(guò)其提供給應用程序的接口,DLL完成與應用程序之間信息的交互和控制;應用程序實(shí)現人機界面及最終分析結果的靜態(tài)與動(dòng)態(tài)顯示。分析軟件的分析工作流程在圖4中給出。

如圖4所示,首先由應用程序選擇實(shí)時(shí)分析或者離線(xiàn)分析。若進(jìn)行實(shí)時(shí)分析則執行如下流程:

通過(guò)驅動(dòng)的接口查詢(xún)接收卡狀態(tài)是否正常,若接收卡正常則檢測當前接收卡是否在接收碼流,若正在傳輸碼流則調用動(dòng)態(tài)鏈接庫中的實(shí)時(shí)分析預處理模塊(由于碼流以高速發(fā)送,而軟件處理速度相對較慢,所以這個(gè)模塊主要完成硬件與軟件分析之間為匹配速率而進(jìn)行的一些格式轉換和預處理),經(jīng)過(guò)預處理后先搜索同步頭建立同步,之后按照圖中所示的順序進(jìn)行分析,分析過(guò)程由動(dòng)態(tài)鏈接庫完成,最后在應用程序界面上實(shí)時(shí)地顯示各種參數和錯誤的統計情況、出現位置;或者實(shí)時(shí)繪制PCR曲線(xiàn)。

離線(xiàn)分析的流程和在線(xiàn)分析類(lèi)似,區別在于離線(xiàn)分析是從硬盤(pán)讀入碼流,而不是從接收卡獲得碼流,參數的顯示也是在完全分析完之后才顯示,所以中間分析的過(guò)程相對較長(cháng),其好處在于,可以對整段的碼流一次進(jìn)行分析,從而對碼流的狀況有更加全面和準確的把握。

碼流收發(fā)控制流程相對簡(jiǎn)單,主要問(wèn)題在于驅動(dòng)的開(kāi)發(fā)和調用。軟件中涉及的其他功能,如圖3中最上層所表示的復用與碼流修改等,都是根據碼流本身的結構,直接修改文件形式的碼流而完成的,在此不再作詳細說(shuō)明。

6 結語(yǔ)

本文主要討論了碼流分析儀所要分析的關(guān)鍵參數、整體結構和軟件部分的設計。在整個(gè)軟件開(kāi)發(fā)中,使用了多線(xiàn)程技術(shù)以提高軟件的運行效率,使用動(dòng)態(tài)鏈接庫來(lái)提高程序的可擴展性,并且在初步功能完成之后,對軟件的運行效率和整體性能進(jìn)行了評估,在評估的基礎上對軟件的整體結構和代碼進(jìn)行了優(yōu)化,達到了性能要求。文中涉及的硬件板卡和軟件部分都已經(jīng)通過(guò)調試并且投入使用。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: MPEG-2碼流分析

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>