电子工程师的网站
首 页 |  新闻资讯 | 最新产品 | 解决方案 | 技术参数
设计应用
电路图 | 技术资料 | 芯片资料 | 技术论坛
  现在位置: 首页 > 设计应用 > 通信与网络 > 详细信息
通信与网络:基于数字电视机顶盒的Java虚拟机的移植
来源:   时间: 2007-4-28 5:46:17    

摘要:为了增强数字电视机顶盒的网络交互能力,介绍了嵌入式中间件Java虚拟机以及它在数字电视机顶盒上的移植怀实现。简要叙述了普通DVB-C有线数字电视机顶盒技术,介绍了嵌入式中间件的概念、背景以及JavaVM的层次结构。重点介绍了JavaVM在数字电视机顶盒上的移植过程。运行结果表明JVM在机顶盒上移植成功。

关键词:数字电视 机顶盒 嵌入式中间件 Java虚拟机

数字电视是当前IT产业的热点,作为一项即将在全国范围内开播的信息服务,它融合了计算机、多媒体、通信网络等众多技术。随着数字电视近几年的发展,交互式电视越来越受重视。交互式电视可以为用户提供丰富的互动功能,包括电子节目指南、视频点播、股票信息、互动游戏等。目前,数字电视机顶盒是基于有线电视网络传输的模拟电视机接收数字电视节目和数字信息的主要接入平台。要实现交互式电视的功能,数字电视中间件技术是必不可少的条件,它已成为交互式电视的核心技术。我国已制定了数字电视中间件标准,利用该标准开发具有自主知识产权的中间件系统是非常重要的。

本文以目前较为成熟的数字电视机顶盒技术为参考背景,提出了一种将中间件JavaVM移植到数字电视机顶盒上的方宁,详细介绍了整个方案的原理以及具体实现过程。

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所示。

3 Java与Java虚拟机

3.1 Java简介

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

图3

每个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平台结构图。

3.3 J2ME平台

Java发展至今已推广到各种平台,针对不同应用平台SUN公司开发了四个版本的Java运行环境,其中如PDA、STB这样的硬件运算能力不高且存储有限的各式消费性电子产品专门提出了J2ME版本。

J2ME定义了一套Java的运行环境和开发环境,它包含安装在各种消费性电子设备中的Java虚拟机和特别为了各种消费性电子设备中的核心类库。而J2ME的主要应用则可以分为两大类:个人移动设备和共享固定设备,前者在Configuration层使用CLDC,其所应用的终端设备包括移动电话等,在人机接口上比较精简且内存需求较小。后者在Configuration层使用CDC,如车用异航、娱乐设备、数字电视机顶盒等。图5为J2ME平台结构。

4 移植与实现过程

笔者所做的工作就是将JavaVM的CDC&Foundation移植到前述框图所描述的数字电视机顶盒上,见图6。

4.1 方案

我国的数字电视中间件标准明确指出中间件系统要采用Java虚拟机,提供Java应用程序标准接口,使用Java语言编写交互式应用程序。根据该标准,结合有线电视机顶盒的硬件环境和操作系统等特征,提出了基于有线电视机顶盒的数字电视中间件的实现方案。

4.2 方案的实现

采用SUN公司在其主页公布的免费的Java虚拟机软件实现代码,经过各方面的修改移植到现有的数字电视机顶盒上。

4.2.1 环境搭建

(1) 通过修改源码中的build目录下的相关make文件,使得虚拟机源代码的运行环境得以正确搭建在机顶盒上,为下一步的代码调试奠定基础。主要表现在编译器名称以及路径、文件后缀名和JDK工具包路径。为了减少初期移植工作的难度,相应地简化修改了一些生成Java虚拟机可执行代码的选项。

(2) 根据现有数字电视机顶盒具体的硬件配置,主要根据flash的大小修改了相应的硬件配置文件。

4.2.2 代码调试

在正确搭建了编译调式环境后,做代码的调试。主要有以下几个方面的修改和代码重写:

(1) 与操作系统相关的修改。数字电视机顶盒采用ST公司提供的嵌入式实时操作系统OS20,而源代码中是基于Linux操作系统。修改关于task结构的定义和使用。另外在OS20操作系统内核代码中的关于支持可变参数的定义也与Linux中的不同,也要做相应修改。

(2) 与CPU有关的修改。主要是将源代码中用X86汇编指令写的汇编文件CVMjniInvokeNative.S用自行设计的C2汇编指令实现。由于ST20-C2提供的寄存器较少,在实现中采用了局部变量完成数据的存储和传递。

(3) 调试中的简化修改。屏蔽了多线程,给调试带来了莫大的方便。去掉动态加载功能,使需要使用的类都是预先编译并被本地化成romjava.c。

4.2.3 测试与运行结果

JavaVM实际上是系统的一个进程,系统会象对待普通进程一样,为它分配必要资源,包括进程优先级、系统需要的内存空间等。JavaVM作为系统的进程,将依照自己优先级,参与系统的进程调度。JavaVM系统与其它进程一起,共享包括处理器资源在内的系统资源。为此,笔者在main()函数中创建一个任务来启动Javavm这个任务。

将整个修改好的源代码在新的编码环境下编译连接成可执行代码,通过JPAG口下载到机机盒目标板中运行。

Java虚拟机的“输入”是“hello.java”,经过Java编译后生成类文件“hello.class”。如果代码调试成功就应该在显示终端打出“hello world”字样,这是Java虚拟机解释字节码的结果。说明基于CDC&Foundation配置的Java虚拟机移植成功。

本论文提出的在有线数字电视机顶盒环境中实现数字电视中间件的方案采用Java技术作为核心,充分体现了Java技术的优点,使交互式电视的应用开发更加简捷方便。该方案实现了Java平台(CDC)的基本功能,为进一步研究和实现Java应用程序标准接口提供了软件平台。

当然目前的这个CDC实现还存在部分问题,需要进一步改进以提高其稳定性,在此基础上,可以增加个人简表和Java TV API为Java应用程序的开发提供完整的环境。

以上介绍了嵌入式中间件JavaVM的基本概念及其抽象模型,给出了它在数字电视机顶盒的移植与实现。通过嵌入式中间件JavaVM,使不同平台之间的应用程序代码快速移植成为可能。嵌入式中间件可以适用于不同软硬件平台;能够独立于平台和处理器,能移植于不同操作系统与不同微处理器体系结构,从而使上层的应用程序移植性更强。我们相信,嵌入式中间件的广泛使用将使嵌入式应用也能象Java语言一样,可在各式各样机器、操作平台的环境中开发应用软件——“一次编译,到处运行”。



相关信息
发表评论
打印本页 关闭本页
采用分而治之的方法设计嵌入式系统
    其中有一个很明显的发展趋势:将复杂的问题分为若干个较小、较简单且更加明确的问题,并针对具体的任务运用合适的工具。即使是最为普通的嵌入式系统也适用于这一原则,它可以缩短设计周期,提高系统的灵活性和可维护性。关键在于采用一种通用的通信策略。   主控制器和从控制器   最基本的原理就是:用主控制器进行集中决策,再交由从控制器分别执行。在最为复杂的系统中,这...
>>详细内容
ADC0809 A/D转换器基本应用技术
  1. 基本知识 ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。它是逐次逼近式A/D转换器,可以和单片机直接接口。 (1). ADC0809的内部逻辑结构 由上图可知,ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。三态输出锁器...
>>详细内容
基于μClinux的嵌入式应用程序的开发
    嵌入式系统范同非常广泛,从简单的单片机系统到主频高达几百兆的使用操作系统的非计算机系统,都可以称为嵌入式系统。随着各行业电子系统应用要求的提高,嵌入式系统也越来越复杂,硬件要求速度快、集成度高、外部接口多,软件则要求功能丰富、模块化、易于扩展。ARM能够很好满足复杂嵌入式系统的要求,因此ARM芯片成为当前嵌入式应用最重要的硬件平台。嵌入式硬件平台性能的提高,使...
>>详细内容
保护电路板上电子元件的半导体器件
    除了用传统的气体放电管、金属氧化物变阻器(MOV)以及保险丝来保护电路板上的电子元件免受外界的侵袭以外,有效的半导体器件正日渐产生。研究发现,利用这些半导体器件,可使产品具有抗雷电、静电放电(ESD)、电瞬变(EFT),电感负载切换以及交流电源波动的能力。使得产品更加耐用可靠,从而降低了产品的修理费用。现在,已由过去的非限制性标准成了强制性标准,制造商必须使他们...
>>详细内容
PHILIPS 80C51系列单片机
  6 Clock 8位 80C51+内核单片机  Philips 8位8051单片机系列提供完整的产品类型,包括Flash、OTP(一次性编程)、ROM和无ROM器件。由于为实时应用而设计,这些80C51器件可以广泛应用于从消费类产品、计算机外设到自动化系统的各种领域。请点击下面的产品编号了解更详细的产品信息。 型号 存贮器 ISP/IAP 定时/计数器 I/O数 串行接口 中断 A/D 最大频率 ...
>>详细内容
嵌人式智能家居系统连入Internet的研究和实现
  1 引 言   随着微处理器芯片技术的发展,越来越多的产品和系统中嵌入了微处理器芯片,嵌入式软件已经成为软件与其他系统融合渗透的载体,成为这些系统的关键技术或主要增值因素。将以太网技术使用到嵌入式系统中实现嵌入式系统连入Internet必将大大扩大嵌入式系统的使用范围。目前家电网络化研究重点转移到应用日益广泛的嵌入式系统和电力线上网上,本文通过对现有嵌入式系统连入Inte...
>>详细内容
已有(
)位对此新闻感兴趣的网发发表了看法 >>更多评论
内 容:
     
 
热点新闻
一周排行
关于我们 | 服务项目 | 付款方式 | 广告服务 | 联系我们 | 友情链接 | 投诉 建议 合作 | 网站地图 | 加入收藏
Copyright © 2007-2008 WEEQOO.COM Corp.All Rights Reserved. 版权所有 经营许可证编号:浙B2-20050339 法律声明
维库电子旗下网站:维库电子市场网 | ChinaICMart | 维库电子开发网 | 维库电子人才网
总部:杭州市下城区朝晖路182号国都发展大厦1号楼80A
电话:0571-85889139-8007 QQ:303939539 | MSN:zh1226@hotmail.com |  邮箱:laz8258@163.com dzsc51@163.com