当前位置:文档之家› IPTV 机顶盒系统设计与实现

IPTV 机顶盒系统设计与实现

IPTV 机顶盒系统设计与实现

摘 要:本文介绍了一种基于STb7109 芯片的IPTV 机顶盒方案,并给出了一个较完整的IPTV 系统测试环境。该方案涉及底层硬件平台、嵌入式操作系统、中间件API 和上层的软件系统,支持MPEG-2 和H.264 视频编码标准和MPEG-1、AAC 等音频编码标准,支持直播电视、点播电视和相关的用户设置等操作。

关键词:IPTV;机顶盒;STB7109

1. 引言

IPTV系统又称为宽带网络电视系统,是以直播电视、时移电视和点播电视为基本业务,以机顶盒加电视为接收终端,并以宽带IP网络作为传输媒介直接向顾客提供高质量的电视节目和视频内容的电视系统。并且,节目运营商还可以通过提供多种新型增值服务,比如网页浏览、视频电话、网络游戏和远程教学等来扩展电视业务,极大的满足了人们看电视的需求。

根据ITU-T IPTV FG(IPTV Force Group)的定义,IPTV系统由服务提供商、运营商、网络支持和终端四部分组成[1]。作为IPTV系统终端的机顶盒,主要负责响应用户请求,与IPTV服务器通信获取用户请求的服务数据,并最终在电视机上展现服务的内容。本文介绍一种基于STb7109芯片的IPTV机顶盒设计方案,本方案能够通过网络实现交互电视业务,支持MPEG-2和H.264视频编码标准MPEG-1、AAC等音频编码标准。

2. 系统需求分析

IPTV机顶盒需要满足以下要求:

2.1 硬件接口

机顶盒硬件配置应该支持以下接口:DSL或以太网网络接口,复合视频输出端子和S-Video视频输出端子等视频输出端口,模拟音频输出接口和数字音频输出接口等音频输出端口,红外接口和USB2.0接口等。

2.2 媒体处理能力

支持MPEG-2、MPEG-4、MPEG-4 Part 10/H.264,和VC-1等多种视频标准,以及MPEG1

I/II,MP3,AAC,AC-3等多种音频标准,支持PAL制式720*576分辨率的视频图像编码以及1920*1080p,1920*1080i等高清视频图像编码。

2.3 通信协议

机顶盒必须支持与IPTV业务相关的通信协议,如TCP/IP、HTTP、FTP、RTSP、RTP、

RTCP和IGMP等协议。

2.4 基本业务

基本业务包括直播电视业务和点播电视业务。直播电视业务是指用户可以通过IPTV 机顶盒接入IP网络实时在线观看各种服务提供商提供的电视节目。点播电视业务是指用户可以通过IPTV机顶盒在IPTV业务平台提供的EPG和检索界面中选择需要的节目进行点播,在播放过程中可以执行快进、快退、暂停、停止等操作。

2.5 基本功能

机顶盒需要提供交互功能和管理功能。交互功能是指机顶盒具有与用户交互的能力,如业务平台信息的认证,控制节目播放和节目检索等。管理功能包括系统软件升级,日志维护,机顶盒远程配置和本地配置等。 2.6 扩展功能

机顶盒还需要考虑对各种增值业务的支持,如网页浏览,电子邮件,在线互动游戏等。

3. 系统结构设计

一个完整的机顶盒由硬件平台和软件系统组成[2],可以分为4 层,从底层向上分别为:硬件、操作系统、中间件和应用层,如图1 所示。图 1 IPTV 机顶盒总体结构

3.1 硬件平台

在硬件方面,经过对目前市场上各种机顶盒解决方案的综合比较,最终决定采用

STMicroelectronics 公司的STb7109 作为硬件基础,实施全部方案。STb7109 解码芯片封装了3 个32 位的RISC 处理器,1 个266MHz 的ST40CPU 为主CPU,采用SuperH 体系结构,负责整个系统的运转。2 个主频为400MHz 的ST231CPU 分别负责视频和音频的解复用、解扰和解码功能。其视频解码支持H.264HP@4.1 和MPEG-2MP@HL 的高清和标清编码格式,支持1080I,720P,480P/576P,480I/576I

等多种显示格式,支持DVI/HDMI 解码输出,RGB/YPbPr 高清输出YPbPr/YC/CVBS

标清输出;音频方面兼容所有的通用音频标准,如AAC,Dolby AC3,PCM,MP3 等;支持模拟音频输出接口 RCA,数字音频输出接口S/PDIF 和 HDMI 音频输出,支持PCM 音频输入、输出。在接口方面采用Omega2(STBus)总线技术,支持USB2.0

接口,SATA 硬盘接口,UART 串行接口,IR 红外接口,智能卡接口,内置的以太网MAC 接口等,此外通过外部存储器接口 EMI(支持ROM,FLASH 和SRAM 等外设)和本地存储器接口 LMI(支持最大为512Mbit 的SDRAM)实现与DDRSDRAM 内存,Flash 存储器和网卡芯片等设备的连接。

3.2 操作系统

由于软件系统基于ST7109 的硬件平台,所以操作系统我们采用STLinux。STLinux

是一种嵌入式Linux 的发行版,主要是为ST 公司的消费电子芯片提供服务。在实际应用中,使用ST7109 硬件平台,ST 公司将提供一套完整的开发环境LDDE(Linux DistributionDevelop Environment),其中不仅包含操作系统内核和相关应用程序,还有相关的开发环境,比如交叉编译器,本地编译器,调试器,下载工具,系统监视工具,文件系统和u-boot 等,极大的方便了程序的开发。

3.3 中间件

在 ST7109 硬件平台之上,我们使用STAPI 作为中间件。STAPI 是ST 公司专门为ST产品开发的一套完整的中间件,是一套ST 得到业界全面支持的并且具备详细文档的程序接口。通过使用STAPI,上层应用程序可以完全不需要考虑底层的硬件实现,只需要调用STAPI所提供的相关接口,就可以实现音/视频文件的解码和播放,并且可以方便的实现应用程序在不同ST 硬件平台之间的移植,极大的扩展了程序的应用范围。

3.4 应用层与系统软件

IPTV 机顶盒系统的整体软件结构如图2。

图 2 IPTV 机顶盒软件机构根据设计的系统基本结构可以看出,软件由系统显示,系统控制,通信层和业务插件构成。系统运行时,由系统控制部分通过通信层组织各个业务插件共同协作,完成用户的需求并通过系统显示部分在电视机上展现结果。所有的底层业务单元都是基于操作系统之上的,并且各个模块都可以对相关硬件进行直接操作。下面将重点说明各个部分的功能。 3.4.1 系统显示(GUI)

GUI 是用户图像显示接口,用来展现机顶盒所有业务和实现与用户交互的功能,即只有通过GUI 来显示的内容和操作才会在电视机界面上看到,是最直接的用户体验。该部分由OSD 层,Video 层和主窗口层三部分构成。OSD 层是一个抽象的概念,主要用来显示一些系统消息,如节目信息,声音设置或操作提示等。该层主要是提供一些接口函数,其内部封装了有关OSD 显示的STAPI 并维护其相关状态信息,由系统控制或业务插件调用来实现提示信息的显示。Video 层类似OSD 层,只是它主要用来显示视频节目内容,并提供封装了有关音视频操作的STAPI 的接口函数,由业务模块MTerm 来使用完成视频的解码和显示播放功能。主窗口层是最主要的用户界面显示层,显示除提示信息和视频外的所有内容。主要包括用户菜单界面,EPG 页面和普通网页的显示等。主窗口显示采用TinyX+Browser 结构来实现,机顶盒的菜单界面则采用HTML 文件形式描述。TinyX 是标准的X-window 系统嵌入式版本,其做为STLinux 操作系统的图像显示系统为上层的浏览器提供基本的图形显示功能。而浏览器主要负责HTML 文件的解析和描绘来实现菜单的显示,其本质上属于业务插件模块,还负责实现网页的浏览功能。

3.4.2 系统控制(System Controller)

System Controller 作为整个软件的系统控制层,负责维护软件系统的所有操作,并对具体业务的解释、执行以及结果显示进行管理,是系统内部处理实际的起点,同时也是整个系统运行的核心。在处理具体业务或与用户交互时,System

Controller 根据需求,调用底层业务模块或者对多个模块进行组合来执行业务,然后将各模块的执行结果通过调用GUI 来显示结果。其他的模块或层次都是作为被调用者,由System Controller 来控制它们完成不同的功能。其内部主要由负责管理和记录系统运行日志的日志管理模块,负责接收和处理遥控器事件的遥控器管理模块,维护菜单结构信息以及部分与用户的交互的菜单管理模块,负责控

制和管理各个显示层的GUI 管理模块,负责管理各模块间消息的发送、接受和处理的消息管理模块,负责各个业务模块状态维护的模块管理部分和负责系统状态的维护、调度以及响应系统事件的状态管理模块组成。

3.4.3 通信层

通信层位于系统控制和业务插件之间,负责连接系统控制和各个业务插件模块,并为它们之间的数据传输提供可靠的保障以及管理机制。由于业务插件具有模块化和扩展性的特点,这就要求通信层能够提供一种合适的机制,实现多个进程间的通信以及数据的可靠传输。在本系统中,我们采用UDS(Unix Domain Socket)的方式实现进程间通信。

3.4.4 业务插件

业务插件是根据系统的业务需求而独立运行的程序模块,由系统控制部分通过通信层启动并完成指定的功能,然后将结果根据需要向系统控制返回或在GUI 上显示。对于业务插件,它们本质上基本都是UDS 的客户端,随时等待接收来自系统控制模块的命令,然后运行完成指定的功能。下面将分别介绍各个业务插件的功能。

(1)MDisplay 模块

MDisplay 模块主要负责完成EPG 文件的处理和菜单文件的生成,并结合GUI 实现机顶盒界面显示和与用户交互的功能。当用户需要浏览电子节目菜单时,系统控制部分发出命令,由MDisplay 连接业务提供商的EPG 服务器,下载EPG 菜单文件并解析提取其中的节目信息,然后结合本机的菜单模板形成完成的HTML 格式的菜单页面文件,最后交给GUI 部分的浏览器进行描绘显示。

(2)MClient 模块

MClient 模块主要复制维护系统的运行以及提供关系系统设置的功能。主要负责完

成系统信息管理、用户认证、软件升级和远程配置等功能。系统信息管理主要是指读取、

修改和保存系统各个模块的配置信息,包括用户的相关信息,如用户名、密码和常用网

- 5 -

址等信息。用户认证是指在开机时,MClient 将与用户认证服务器联系,进行用户认证

的工作,以取得服务供应商的内容,和相关操作的权限等。软件升级是指MClient

能够

主动或定期的向升级服务器查询软件升级信息,并下载最新程序文件进行系统更新。远

程配置是指MClient 提供Web Server 功能,系统管理者可以远程登录到机顶盒上对其

进行系统参数的设置和调整。

(3)MTerm 模块

MTerm 模块主要是负责完成音、视频码流的接收,解码和播放显示的。MTerm 由

4 个子模块构成:媒体控制和描述子模块,在与流媒体服务器建立连接之后,媒体数据

传输之前,该子模块通过RTSP 和SDP 协议与流媒体服务器进行的协商,同时该模块

还负责对媒体数据的播出控制,包括暂停、随机播放和停止等;媒体接收子模块:该子

模块主要负责接收直播或点播的媒体数据。建立RTP/RTCP 接收线程,接收来自流媒

体服务器的媒体数据和控制数据等;媒体解码子模块:该子模块主要功能是调用STAPI

中的解码API 函数,利用专用解码芯片对接受到的媒体数据进行解码;媒体展现子模

块:该模块主要功能是调用STAPI 中的显示API 函数,将解码后的媒体数据展现在终

端设备上。

(4)Browser 模块

浏览器模块主要是用来完成菜单界面的显示,以及相关的网页浏览功能。在这里,

我们采用的浏览器是Dillo-0.85-i18n。Dillo 是运行在Linux 平台上基于GTK

的开源网

页浏览器,遵循GPL 协议,采用C 语言编写。它具有很多优点,比如规模小,源代码

约600 KB,二进制程序约450KB;完善的网络功能,支持HTTPS、FTP 协议,支持

相关主题