黄 建,雒江涛,李 勇
(重庆邮电大学 通信网与测试技术重点试验室,重庆 400065)
责任编辑:孙 卓
交互式网络电视(IPTV)是一种利用宽带网,集互联网、多媒体、通信等技术于一体,向家庭用户提供包括数字电视在内的多种交互式服务的技术[1]。伴随着国家三网融合的推进,经过5年多的探索和发展,国内IPTV产业已经日渐成熟,拥有了初具规模的用户群,成为电信运营商不可忽视的经济增长点[2]。随着IPTV产业的爆发式增长,IPTV服务质量成为运营商面临的突出问题,为了提高用户对IPTV的认同率,运营商必须做到及时发现并快速准确解决问题,要做到这一点必须依赖于可靠而有效的监测系统和方法。
本文的研究目的在于设计一种基于嵌入式Linux的IPTV测试仪软件平台的实现方案。软件应能准确测量IPTV的所有性能指标,提供良好的图形用户界面,同时具有很强的兼容性和可扩展性,并兼备相应的网络维护和数据管理功能。该方案应用于IPTV网络最后1 km的维护,经实际测试表明软件具有很好的可靠性和实用性。
Linux是一种自由和开放源码的类Unix操作系统,作为一个现代网络型操作系统,其中所涉及的技术涵盖了操作系统技术的最新成果。Linux是一个领先的操作系统,世界上运算最快的超级计算机都是运行Linux操作系统[2]。
Qt是诺基亚开发的一个跨平台的C++图形用户界面应用程序框架,其宗旨是“一次编码到处编译”。Qt具有完全面向对象,拥有丰富的API,支持2D/3D图形渲染,支持OpenGL,容易扩展,并且允许真正地组件编程等优势[3]。Qt开发员仅需要学会一种API来写入应用程序,该程序可在任何地方运行。
本文采用Fedora 9嵌入式操作系统,以Qt4.6为主要编程工具,实现图形界面和应用程序的功能。
根据功能需求,IPTV测试仪应具有IPTV测试、在线视频播放、线缆测试、xDSL测试、数据管理、网络应用等功能。因此,从IPTV测试仪的功能角度出发,本文将测试仪的软件平台划分为应用层、控制层和功能层3层,如图1所示。
图1 从功能角度划分软件架构
1)应用层。用于封装与具体测试项无关的呈现和管理模块,如绘图控制模块负责将测试数据以曲线图形式直观呈现,数据管理模块用于测试结果的保存、删除和导出到外设等管理,网络应用包括Ping,Traceroute等IP数据测试和PPPoE拨号等IP连接特性测试。应用层的各个模块均由控制层进行调度和管理,各个模块之间相对独立。
2)控制层。管理各功能子界面之间的切换、隐藏、销毁等操作,同时组织、控制和管理其他功能模块,并与其他模块协商接口细节。以xDSL测试为例,xDSL测试包括ADSL,VDSL,ADSL 2,ADSL 2+等测试,在进行ADSL测试的同时不能进行VDSL测试,此时控制层就必须进行管理,防止系统崩溃。
3)功能层。封装了与特定功能实现相关的后台操作、库文件调用和驱动程序交互接口。从用户的角度出发,其作用体现为用户从选择某项功能测试、配置相关测试参数、执行测试到结束测试的整个过程。
如图1中软件总体架构所示,系统的软件部分主要分为主控模块和测试数据管理模块。其中主控模块包括软硬件交互和测试功能实现、异常处理、测试数据的实时显示以及曲线图绘制。测试数据管理模块用于对测试结果的处理,包括存储、查看、删除、导出到外设等。
主控模块是整个软件架构的核心。用于控制其他功能模块的运行和交互,实现软硬件的交互和测试结果的实时处理等。如图2所示,以IPTV测试为例,用户首先对测试参数进行配置(频道选择、测试模式选择等),在对配置项进行合法性检验后主控模块会创建一个新的测试线程,主要实现测试指标的实时处理和曲线图绘制。而主线程则管理各界面的切换控制、测试结果的实时显示以及测试线程的终止等操作。
Qt有很多自带的类,其中QThread类就用于实现线程的相关操作[4]。本例中启动测试线程代码为:
首先重载QThread类,然后创建线程类对象,之后调用类的成员函数即可启动线程。测试结束后主控模块负责终止线程,并根据用户的选择保存测试结果。
在一次IPTV测试过程中,一部分参数是不会发生变化的,如IP地址、端口号等,一部分参数是在有错误发生时才发生变化的,比如TR101290的测试指标,而MDI等指标却是实时变化的[1,4-5]。为了节约资源,同时提高程序的执行效率,设计了如图3所示的存储模式。
图2 IPTV测试控制流程
以频道为单位对测试结果进行存储,其中在测试过程中不发生变化的参数只存储一次,由于TR101290指标在有错误时发生变化,因此只在错误发生时刻记录该值,而MDI等指标则每秒钟记录一次。在测试过程中这些结果都保存在RAM内存中,测试过程结束后根据用户的选择将RAM内存中的数据写入Flash中永久保存。
对于保存在Flash中的文件,用户可以对其进行查看、删除以及导出到外设等操作,这符合测试仪表的规范。
IPTV测试仪表应用于IPTV网络最后1 km的维护,如图4所示,主要测试节点都在客户家庭,如Modem前后端、STB前后端、TV前端等,可在这些节点进行测试[6]。统计显示,IPTV的主要故障点均为上述节点。通过本测试方案可以方便地测试接入线路质量、网络状况以及故障定位。
图4 IPTV测试节点
1)测试环境包括1台IPTV测试仪;1个电信IPTV账号;1个Modem。
2)测试结果。图5为MDI:DF参数实测结果,本文的软件平台能同时以数字形式实时呈现测试指标值,以及以曲线图形式直观反应测试指标的变化趋势。图6为数据管理界面,通过本模块可以实现测试文件的查看、删除和导出到外设等操作。
图5 MDI:DF实测结果(截图)
图6 测试数据管理界面(截图)
本文针对IPTV测试仪的功能需求,研究并设计了一种基于嵌入式Linux系统的IPTV测试仪表软件平台的实现方案。通过实际IPTV业务环境下的测试结果表明,该软件平台不仅能准确提取IPTV的各项测试指标,而且具有良好的图像用户界面,同时具备一定的数据管理和网络应用功能。目前此方案已成功商用于某市的电信IP⁃TV服务提供商,市场反应良好。
[1]赵湘阳,张治中,席兵.IPTV测试仪系统设计与实现[J].电视技术,2009,33(9):115-117.
[2]方磊.IPTV视频传输质量监测系统的研究与实现[D].重庆:重庆邮电大学,2007.
[3]BLANCHETTE J,SUMMERFIELD M.C++GUIprogramming with Qt 4[M].2nd ed.北京:电子工业出版社,2008.
[4]ETSITR101290,Measurementguide-lines for DVB systems[S].2001.
[5]易欣,张治中.基于WinCE的IPTV测试仪前台软件设计[J].电视技术,2009,33(12):108-111.
[6]YD/T 1696-2007,机顶盒IPTV业务平台接口技术要求[S].2007.