MPEG-2碼流分析儀的整體設(shè)計與軟件實現(xiàn)
4 MPEG-2碼流分析儀的整體設(shè)計
本文所設(shè)計的碼流分析儀采用軟硬結(jié)合的結(jié)構(gòu),硬件部分主要包括碼流發(fā)送卡和碼流接收卡2塊板卡。硬件板卡通過PCI總線和工控機(jī)進(jìn)行通信,實現(xiàn)碼流的讀寫與發(fā)送功能。發(fā)送卡和接收卡之間可通過標(biāo)準(zhǔn)的ASI和SPI接口進(jìn)行碼流的發(fā)送和接收。硬件板卡與軟件層的通信通過驅(qū)動程序來完成,在分析過程中軟件部分和硬件板卡通過事件和消息進(jìn)行交互。動態(tài)鏈接庫完成數(shù)據(jù)傳遞和分析的主體功能,最上層的應(yīng)用程序調(diào)用動態(tài)鏈接庫的數(shù)據(jù)實現(xiàn)數(shù)據(jù)傳遞和最終的界面顯示。碼流分析儀整體的設(shè)計如圖1所示。
圖中硬件的主要部分用FPGA實現(xiàn),PCI接口使用專用PCI接口芯片PCI9054進(jìn)行控制,在碼流傳輸過程中,依靠大容量的RAM進(jìn)行輔助緩存。因為碼流讀寫的速率很高。如果使用PIO方式進(jìn)行控制硬盤讀寫則無法滿足碼流寫入的速度要求,所以在硬件設(shè)計中,使用板卡本身的芯片進(jìn)行DMA控制,滿足了讀寫速率的要求。驅(qū)動程序使用WINDDK和DriverStudio開發(fā)完成。上層軟件的設(shè)計思想和注意事項在后面將做詳細(xì)的說明。
5 MPEG-2碼流分析儀的軟件部分設(shè)計
圖2所示為MPEG-2碼流分析儀模塊圖,其中碼流發(fā)送與接收模塊,數(shù)據(jù)接口與信息提取、離線分析、在線分析3個動態(tài)鏈接庫(DLL)以及主程序與人機(jī)界面為系統(tǒng)的軟件部分。軟件部分采用Visual C++開發(fā),詳細(xì)模塊關(guān)系和數(shù)據(jù)流圖如圖3所示。
圖3中,最底層是發(fā)送卡和接收卡,板卡通過PCI插槽和PC機(jī)進(jìn)行通信;驅(qū)動程序通過消息和中斷以及Windows句柄來完成硬件和軟件的交互與控制;DLL通過調(diào)用驅(qū)動程序的接口間接控制硬件,并且根據(jù)獲得的碼流或參數(shù)完成復(fù)雜的運算,通過其提供給應(yīng)用程序的接口,DLL完成與應(yīng)用程序之間信息的交互和控制;應(yīng)用程序?qū)崿F(xiàn)人機(jī)界面及最終分析結(jié)果的靜態(tài)與動態(tài)顯示。分析軟件的分析工作流程在圖4中給出。
如圖4所示,首先由應(yīng)用程序選擇實時分析或者離線分析。若進(jìn)行實時分析則執(zhí)行如下流程:
通過驅(qū)動的接口查詢接收卡狀態(tài)是否正常,若接收卡正常則檢測當(dāng)前接收卡是否在接收碼流,若正在傳輸碼流則調(diào)用動態(tài)鏈接庫中的實時分析預(yù)處理模塊(由于碼流以高速發(fā)送,而軟件處理速度相對較慢,所以這個模塊主要完成硬件與軟件分析之間為匹配速率而進(jìn)行的一些格式轉(zhuǎn)換和預(yù)處理),經(jīng)過預(yù)處理后先搜索同步頭建立同步,之后按照圖中所示的順序進(jìn)行分析,分析過程由動態(tài)鏈接庫完成,最后在應(yīng)用程序界面上實時地顯示各種參數(shù)和錯誤的統(tǒng)計情況、出現(xiàn)位置;或者實時繪制PCR曲線。
離線分析的流程和在線分析類似,區(qū)別在于離線分析是從硬盤讀入碼流,而不是從接收卡獲得碼流,參數(shù)的顯示也是在完全分析完之后才顯示,所以中間分析的過程相對較長,其好處在于,可以對整段的碼流一次進(jìn)行分析,從而對碼流的狀況有更加全面和準(zhǔn)確的把握。
碼流收發(fā)控制流程相對簡單,主要問題在于驅(qū)動的開發(fā)和調(diào)用。軟件中涉及的其他功能,如圖3中最上層所表示的復(fù)用與碼流修改等,都是根據(jù)碼流本身的結(jié)構(gòu),直接修改文件形式的碼流而完成的,在此不再作詳細(xì)說明。
6 結(jié)語
本文主要討論了碼流分析儀所要分析的關(guān)鍵參數(shù)、整體結(jié)構(gòu)和軟件部分的設(shè)計。在整個軟件開發(fā)中,使用了多線程技術(shù)以提高軟件的運行效率,使用動態(tài)鏈接庫來提高程序的可擴(kuò)展性,并且在初步功能完成之后,對軟件的運行效率和整體性能進(jìn)行了評估,在評估的基礎(chǔ)上對軟件的整體結(jié)構(gòu)和代碼進(jìn)行了優(yōu)化,達(dá)到了性能要求。文中涉及的硬件板卡和軟件部分都已經(jīng)通過調(diào)試并且投入使用。
評論