IPTV 机顶盒系统设计与实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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 协议,支持
缓冲,支持cookies 等;支持多种图片格式,有BMP、JPEG、GIF 和PNG 等;模块化,
具有完整的插件实施机制,可以方便的扩展浏览器的功能。
但是它最大的缺点就是不支
持CSS 和JavaScript,这样在显示大部分互联网上的网页时,就会造成部分动态元素无
法显示,颜色布局等效果不理想,显示效果比较差。
但是仅使用其作为嵌入式浏览器,
对以HTML 文件编写的菜单和部分IPTV 节目页面进行描绘和显示,效果还是比较理想
的。
4. 测试环境
为了测试机顶盒的功能,需要搭建一个模拟的IPTV 系统环境。
通过参考网通的IPTV
系统架构而实现的虚拟的IPTV 系统[3],其结构如图3:
图 3 IPTV 系统
- 6 -
系统的结构有服务提供者、网络支撑和系统终端3 部分组成:
(1)服务提供者:主要是模拟IPTV 服务提供商所具有的功能,包括业务支撑和服务
提供两个部分;
(2)网络支撑:主要是模拟具体的传输网络;
(3)终端:主要指机顶盒终端;
具体的网络拓扑图如图4:
图 4 IPTV 系统网络拓扑图
在具体实施中,IPTV 服务器端由业务服务器、流媒体服务器和FTP 服务器3 部分构成。
(1)IPTV 业务服务器主要提供EPG 服务,升级服务,用户管理服务,日志服务等业
务,机顶盒通过HTTP 协议和该服务器通信,模拟实现EPG 系统模块和业务管理模块的功
能。
(2)流媒体服务器主要提供节目媒体数据,客户端可以通过RTSP、RTP\RTCP 等协议
与服务器通信,获取所需节目的数据信息。
流媒体服务器可以采用Darwin Streaming Server
来实现。
(3)FTP 服务器主要提供具体的资源文件,如软件的最新版本程序等。
机顶盒可以通
过IPTV 业务服务器获得相关文件的地址信息,然后通过FTP 协议从本服务器上下载该项资
源,其辅助实现业务管理模块的功能。
本文在 STb7109 硬件平台的基础上,构建了IPTV 客户端机顶盒的软件环境,实现了
IPTV 机顶盒的电视直播和点播等业务要求,并经过测试,该系统基本达到了IPTV 机顶盒
的技术要求。
但是由于目前硬件平台资源的限制,只能采用微型浏览器,不支持Java script,
这样导致对于目前互联网上的大部分网页都无法正常解析,非常影响用户体验。
下一步计划
就是改进和优化浏览器功能,实现对网页的全部正常解析,进而实现游戏、电子邮件等功能。
- 7 -
参考文献
[1] ITU-T FG IPTV.“Overall definition and description of IPTV in the business role model” [R],1st FG IPTV
meeting: Geneva,10-14 July 2006
[2] 徐健.IPTV 机顶盒技术浅析.有线电视技术[J] .2007,14(4):54-57
[3] 中国网络通信集团公司.《中国网通IPTV 体系架构技术规范(Version1.0)》[S],北京:中国网通,
2006
Design and Implementation of IPTV Set-top Box
Zhao Junfeng
Beijing University of Posts and Telecommunications, Beijing, PRC (100876) Abstract
This paper presents an IPTV set-top box solution based on STb7109 and gives a complete IPTV system
testing environment. This solution involves the hardware platform, the embedded operating system,
middleware API and system-level software, support for the MPEG-2 and H.264 video coding standard
and MPEG-1, AAC audio coding standard, support live TV, on-demand television and user settings,
and other related operations.
Keywords: IPTV Set-top Box STB7109__。