数字电视是当前IT产业的热点,作为一项即将在全国范围内开播的信息服务,它融合了计算机、多媒体、通信网络等众多技术。随着数字电视近几年的发展,交互式电视越来越受重视。交互式电视可以为用户提供丰富的互动功能,包括电子节目指南、视频点播、股票信息、互动游戏等。目前,数字电视机顶盒是基于有线电视网络传输的模拟电视机接收数字电视节目和数字信息的主要接入平台。要实现交互式电视的功能,数字电视中间件技术是必不可少的条件,它已成为交互式电视的核心技术。我国已制定了数字电视中间件标准,利用该标准开发具有自主知识产权的中间件系统是非常必要的。 本文以目前较为成熟的数字电视机顶盒技术为参考背景,提出了一种将中间件JavaVM移植到数字电视机顶盒上的方案,详细介绍了整个方案的原理以及具体实现过程。 1 有线数字电视机顶盒技术 有线数字电视机顶盒结构如图1所示。 
图1有线数字电视机顶盒结构图 普通(民用)有线数字机顶盒是传统HFC网络与传统模拟电视之间的数字桥梁。在HFC网络的前端,数字复接器将各种已编码的数字电视节目信号与数据广播信号复接,经过组帧、QAM调制和载波调制成DVB-C信号流,通过HFC网络向用户广播。用户则通过数字机顶盒锁定电视节目频道,经过QAM解调、解复用、解压缩、解密和收费控制等过程完成节目接收。机顶盒的核心模块(如STi5512)是数字电视解码器,它是一个嵌入式系统,一般有以下硬件模块:MIPS CPU、解调器、解复用器、A/V解码器、模拟A/V编码器等。 本方案中选用ST公司的Sti5516芯片,该芯片的CPU为ST20-C2。 2 中间件技术 从硬件技术看,CPU速度越来越高,处理能力越来越强;从软件技术看,应用程序的规模不断扩大,特别是因特网的出现,使计算机的应用范围更为广阔,许多应用程序需在网络环境的异构平台上运行。这一切对新一代软件的开发提出了新的需求。在这种分布异构环境中,通常存在多种硬件系统平台(如PC、工作站、小型机等),在这些硬件平台上又存在各种各样的系统软件(如不同的操作系统、数据库、语言编译器等),以及多种风格各异的用户界面,这些硬件系统平台还可能采用不同的网络协议和网络体系结构连接。如何把这些系统集成并开发新的应用是一个非常现实而困难的问题。 为解决分布异构问题,提出了中间件(middleware)的概念。 中间件是在应用程序与操作系统、硬件平台之间嵌入的一个中间层,通常定义成一组较为完整的、标准的应用程序接口。它主要为应用软件的开发提供跨操作系统、跨硬件的平台及层次化、模块化和可扩展的接口,同时,根据嵌入式应用的编程特点提供必要的编程工具。 借助中间件,应用程序可以独立于操作系统和硬件平台,使产品的开放性和可移植性更强。有了中间件,应用程序不仅可以运行于不同硬件平台,也可以在不同的操作系统上运行,从而在提高开发效率、减少开发成本的同时能够跟上技术的发展,使应用的开发变得更加简捷,也为应用程序提供了一个相对稳定的高层应用环境。 对于数字电视机顶盒,数字电视中间件是指位于数字电视机顶盒内部实时操作系统与应用程序之间的软件部分,它将应用程序与底层的操作系统、硬件细节隔离,使应用不依赖具体的硬件平台。它在数字电视中的位置如图2所示。

图2 中间件在数字电视中的位置 3 Java与Java虚拟机 3.1 Java简介 对于大多数开发语言,需要编译或解释。但是Java语言与那些需要编译或解释的语言比起来较特殊。通过编译器, 首先程序被翻译为一种称为Java bytecode的中间语言,一种在Java平台上被解释器解释的平台独立代码。解释器解释计算机上所有的Java bytecode指令。一旦编译完成,在程序每次执行时,系统都会发生一次解释过程。图3演示了该过程。

图3 Java程序的执行过程 每个Java解释器,不管是一个开发工具或者是一个运行applet小程序的web浏览器,都是Java虚拟机的实现形式。Java bytecodes 使得“一次编写,随处运行”这种时髦观点成为可能。bytecodes 能够运行在任何一种Java虚拟机形式上,这就意味着只要计算机上安装有Java虚拟机, 那么同样的一个Java程序可以运行在 Windows 2000系统、 Solaris 工作站或者一个Mac系统上。 3.2 Java平台 一个平台是程序运行的硬件或者软件环境。刚才已经提到了一些比较流行的平台,如Windows 2000、 Linux、Solaris和Mac OS。大多数平台可以认为是硬件和操作系统的联合体。 Java与其他平台不同,因为它只是一个运行在其他硬件平台基础上的软件平台。Java平台有两个组件:JavaVM和JavaAPI。图4为Java平台结构图。

图4 Java平台结构图 3.3 J2ME平台 Java发展至今已推广到各种平台,针对不同应用平台SUN公司开发了四个版本的Java运行环境,其中如PDA、STB这样的硬件运算能力不高且存储有限的各式消费性电子产品专门提出了J2ME版本。 J2ME定义了一套Java的运行环境和开发环境,它包含安装在各类消费性电子设备中的Java虚拟机和特别为了各类消费性电子设备中的核心类库。而J2ME的主要应用则可以分为两大类:个人移动设备和共享固定设备。前者在Configuration层使用CLDC,其所应用的终端设备包括移动电话等,在人机接口上比较精简且内存需求较小。后者在Configuration层使用CDC,如车用导航、娱乐设备、数字电视机顶盒等。图 5为J2ME平台结构。

图5 J2ME平台结构 4 移植与实现过程 笔者所做的工作就是将JavaVM的CDC&Foundation移植到前述框图所描述的数字电视机顶盒上,见图6。

图6 移植方案 (责任编辑:admin)
|
谈谈您对该文章的看