微波EDA网,见证研发工程师的成长!
首页 > 测试测量 > 测试测量技术文库 > MPEG-2码流分析仪的整体设计与软件实现

MPEG-2码流分析仪的整体设计与软件实现

时间:01-12 来源:互联网 点击:

3.3理想解码器缓冲区

MPEG-2相关协议里提出了理想解码器的模型,在解码器模型中,定义了上溢、下溢和清空3种缓冲区错误。这些缓冲区错误主要是由于各缓冲区尺寸和输入输出速率不匹配造成的。在实际的硬件电路设计中,并非所有的缓冲区都按照理想解码器的模型来设计,但是根据理想解码器模型,可以对码流的速率匹配问题进行标准化的分析,防止实际接收机因为码流的时钟问题而产生错误。

4 MPEG-2码流分析仪的整体设计

本文所设计的码流分析仪采用软硬结合的结构,硬件部分主要包括码流发送卡和码流接收卡2块板卡。硬件板卡通过PCI总线和工控机进行通信,实现码流的读写与发送功能。发送卡和接收卡之间可通过标准的ASI和SPI接口进行码流的发送和接收。硬件板卡与软件层的通信通过驱动程序来完成,在分析过程中软件部分和硬件板卡通过事件和消息进行交互。动态链接库完成数据传递和分析的主体功能,最上层的应用程序调用动态链接库的数据实现数据传递和最终的界面显示。码流分析仪整体的设计如图1所示。

图中硬件的主要部分用FPGA实现,PCI接口使用专用PCI接口芯片PCI9054进行控制,在码流传输过程中,依靠大容量的RAM进行辅助缓存。因为码流读写的速率很高。如果使用PIO方式进行控制硬盘读写则无法满足码流写入的速度要求,所以在硬件设计中,使用板卡本身的芯片进行DMA控制,满足了读写速率的要求。驱动程序使用WINDDK和DriverStudio开发完成。上层软件的设计思想和注意事项在后面将做详细的说明。

5 MPEG-2码流分析仪的软件部分设计

图2所示为MPEG-2码流分析仪模块图,其中码流发送与接收模块,数据接口与信息提取、离线分析、在线分析3个动态链接库(DLL)以及主程序与人机界面为系统的软件部分。软件部分采用Visual C++开发,详细模块关系和数据流图如图3所示。


图3中,最底层是发送卡和接收卡,板卡通过PCI插槽和PC机进行通信;驱动程序通过消息和中断以及Windows句柄来完成硬件和软件的交互与控制;DLL通过调用驱动程序的接口间接控制硬件,并且根据获得的码流或参数完成复杂的运算,通过其提供给应用程序的接口,DLL完成与应用程序之间信息的交互和控制;应用程序实现人机界面及最终分析结果的静态与动态显示。分析软件的分析工作流程在图4中给出。

如图4所示,首先由应用程序选择实时分析或者离线分析。若进行实时分析则执行如下流程:

通过驱动的接口查询接收卡状态是否正常,若接收卡正常则检测当前接收卡是否在接收码流,若正在传输码流则调用动态链接库中的实时分析预处理模块(由于码流以高速发送,而软件处理速度相对较慢,所以这个模块主要完成硬件与软件分析之间为匹配速率而进行的一些格式转换和预处理),经过预处理后先搜索同步头建立同步,之后按照图中所示的顺序进行分析,分析过程由动态链接库完成,最后在应用程序界面上实时地显示各种参数和错误的统计情况、出现位置;或者实时绘制PCR曲线。

离线分析的流程和在线分析类似,区别在于离线分析是从硬盘读入码流,而不是从接收卡获得码流,参数的显示也是在完全分析完之后才显示,所以中间分析的过程相对较长,其好处在于,可以对整段的码流一次进行分析,从而对码流的状况有更加全面和准确的把握。

码流收发控制流程相对简单,主要问题在于驱动的开发和调用。软件中涉及的其他功能,如图3中最上层所表示的复用与码流修改等,都是根据码流本身的结构,直接修改文件形式的码流而完成的,在此不再作详细说明。

6 结语

本文主要讨论了码流分析仪所要分析的关键参数、整体结构和软件部分的设计。在整个软件开发中,使用了多线程技术以提高软件的运行效率,使用动态链接库来提高程序的可扩展性,并且在初步功能完成之后,对软件的运行效率和整体性能进行了评估,在评估的基础上对软件的整体结构和代码进行了优化,达到了性能要求。文中涉及的硬件板卡和软件部分都已经通过调试并且投入使用。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top