Embedded 版 (精华区)

发信人: Thinkpad (船 长), 信区: Embedded_system
标  题: 基于Linux的机顶盒软件系统设计
发信站: 哈工大紫丁香 (2001年11月09日11:29:36 星期五), 站内信件

                             基于Linux的机顶盒软件系统设计
         吴 波 朱志祥(西安邮电学院通信技术研究所,西安 710061)
1摘 要 介绍了WebTV机顶盒及发展状况,提出了其软硬件组成结构。并详细分析了如何
利用Linux来设计WebTV机顶盒的嵌入式操作系统。
关键词 WebTV;机顶盒;Linux;嵌入式操作系统
 
1.1 机顶盒的介绍
    WebTV机顶盒是一种能使普通电视机浏览Internet网上信息资源的电视机顶盒,外形
与诸如VCD机的普通家电类似,但体积稍小。机顶盒的使用很方便,加电后电视机屏上便显
示出主功能画面,只需通过遥控器、鼠标或遥控键盘的操作,便可实现上网,收发E-MAIL、
使用电子出版物等功能。
    WebTV机顶盒的售价一般仅为多媒体PC的四分之一左右,由于其价格便宜,操作简单,
可成为普通家庭上网的主要途径。俗称“老百姓的上网工具”。
    WebTV机顶盒有以下特点:
   ■安装方便、使用简单。WebTV一头接市内电话线、另一头接普通电视机,安装在十几
分钟即可完成。使用时只需按下遥控器类似“Web”键便可经由WebTV在线服务与Intern
et网连通。
   ■可方便浏览Internet网点。WebTV在线服务系统提供独特的WWW网点目录供用户挑选
。对于不熟悉Internet信息资源的用户,查找所需信息不再是一件头痛的事。
   ■可收发E-MAIL。每个WebTV用户可设立5个分立的个人电子邮件帐户,还可设立个人
的″地址薄″,而每个家庭成员可以分别与自己在世界各地的亲友通信。当你的信箱中有
新到邮件时,遥控器上的″信息灯″就会点亮,就像录音电话机上的提示灯一样。
   ■可存储“最喜爱的站点”。用户可随时存贮自己喜欢的WWW网点,以便以后再次浏览

1.2 机顶盒发展现状
    国外的机顶盒开发以WebTV网络公司最为出色,WebTV网络公司己开发出了两代的机顶
盒:WebTVClassic和WedTVPlusReceiver.
   第一代的WebTVClassic提供简单的电视上网功能,价格为一般用户便可接受($99)。
该机顶盒看电视和上网浏览的功能是各自独立的。
   第二代的WebTVPlusReceiver的性能和外观都有了很大的提高。通过Web和TV功能的集
成,用户可享受到一种独特的看电视的感受。它可以自动更新搜索到的电视节目表,并支
持多媒体E-MAIL、画中画、电视跨接、在线打印等功能。
   在国内,也有在Windows操作系统下开发的类似产品的出现,可以同时进行Web浏览、家
庭办公、视屏点播等交互性操作。
1.3 WebTV机顶盒设计的要求
    机顶盒虽然从本质上说自然一台PC机,它具有计算机的基本结构,如CPU、RAM、I/O系
统、鼠标、键盘等。但在外观和使用方法上,机顶盒又完全不同于PC机,它体积小、重量
轻、使用简单。特别是机顶盒使用与PC机完全不同的操作系统—嵌入式操作系统。所以
,可以说机顶盒更像一部家用电器。作为一种家电产品,为了适于电视浏览的要求,鼠标和
键盘应当是无线的。因此,我们配置了与电视遥控器类似的设备。机顶盒可配置内置的多
种网络接口,像CableModem、以太网卡、ATM网卡等,以便接入不同网络。
   机顶盒利用电视机作为显示终端,需要将VGA数据转换为模拟信号,但显示器的分辨率
比电视机高,会造成图像模糊,这就需要专门的硬件来处理。
    而机顶盒软件系统,则为机顶盒技术的核心,须设计嵌入式操作系统、特定的浏览软
件及其他应用软件,例如,MP3、阅读器、IP-电话等。以使其具有面向家庭使用的功能及
使用的方便性。
2 机顶盒的硬件配置方案
   首先,是机顶盒平台的选择。确立机顶盒的设计原则是开发机顶盒的第一步,我们对机
顶盒的设计有以下几点要求:
  .价格低,这是家电产品普遍的要求。.体积小,要适合于机顶盒这种功能高度集成的嵌
入式应用。
  .尽可能地利用现有的软件资源。
  .与主流技术兼容,便于技术更新。
  其次,是硬件部件的选择:
2.1 中央处理器CPU
   对于中央处理器CPU中,有以下几种可以选择:IDT的RISC处理器、Apple的PowerPC处理
器和Intel的系列处理器及它的兼容芯片。
   在选择CPU时,我们不仅考虑CPU的性能,同时还要考虑它的价格、及其与主流技术的兼
容性和软件开发平台的通用性。
   Intel的CPU是用得最广泛的、技术更新很快的CPU,它有大量的软件和硬件支持,价格
便宜,性能的提高也使其完全能够满足要求。
   基于上述的理由,我们考虑使用Intel的CPU或它的兼容芯片(如:AMD和Cyrix的兼容CP
U),由于后者相较于前者具有更高的性价比,因此,我们选择了CyrixMediaGXi,它是586级
的。我们决定使用其中两块板子,一块是“二合一”,包括了180MHzCPU和主板(价格才约
700元);一块是“四合一”,包括Cx5520CPU,主板,声卡,显示卡(价格仅仅1000多一点)。
它们的性能极佳,完全可以作MPEG解码。
   现在的具有MPEG解码功能的CPU的价格已经很便宜,所以,用这样的CPU做的机顶盒不应
仅仅是一个浏览Internet的终端,由于机顶盒是面向家庭的,所以我们增加了一些家电的
功能,如播放VCD、CD和玩游戏等等。
2.2 键盘、鼠标
   机顶盒具有收发电子邮件以及WWW交互的功能,这就需要有键盘,但是用户与电视之间
又有一定的距离,为了方便用户操作,我们选择了将鼠标和键盘集成在一起的无线键盘。
无线键盘约为一般键盘的2/3大小且自带鼠标,它的前面是一组快捷按钮,上网、听CD、看
VCD只是一个按钮,非常简单实用。
2.3 图像处理转换器
   把电视作为浏览Web页的终端,一个重要的步骤是将计算机VGA的数字信号转换成电视
机的模拟信号,但是PC的分辨率比电视的分辨率要高,会造成显示模糊的问题,比方说有1
00个像素信息的图像,经过转换后只能有比如20个像素信息的图像,那么就有80个图像的
信息丢失,这便造成失真。也就是说同一幅图像,一个用100个点来描绘,另一个只能用20
个点来描绘,则后一个会模糊的多。图像处理转换器的作用,第一是将计算机转换成电视
机能接受的复合视频信号或S-Video信号,第二是解决VGA转换为电视信号的分辨率降低的
难题。
2.4存储介质
   为了保存用户的有用信息,我们需要除内存之外的存储介质,但普通硬盘体积庞大,用
于实验尚可,用于家电则过于笨重,因而我们选择了一种称为DOC(DiskOnChip)的存储器,
它的使用方法和硬盘是一样的,但容量小得多,一般只有几十兆字节。至此,我们就构造了
具有如下配置的机顶盒硬件:
1)Cyrix“四合一”系统板(Cyrix5520CPU、声卡、显示卡)
2)32MBRAM;一个DOC
3)一个33.6Kbps的Modem
4)图像转换器
5)光驱
6)一个无线键盘(带鼠标)我们选择了光驱,是由于它的价格不贵,一般300~600元就可以
了。而它还可以方便我们听CD、看VCD,还有游戏、阅读电子读物(包括TXT、DOC、和PDF
文件及其他格式文件)。
3 嵌入式操作系统
   机顶盒软件系统是机顶盒的核心,我们首要是选择软件系统开发平台,该操作系统需具
有嵌入式特性并支持网络功能和图形界面。我们对常用的操作系统如Windows95、Win-d
owsCE、QNX和Linux进行了比较。
3.1 Windows95
    Windows95有很多优点。具有很多我们需要的特性,如图形界面、内置的拨号程序、
和对网络的支持。Windws95有各种各样的开发工具,VC++、VB、VJ++、BC++、Delphi,能
在它上面快速的开发我们的软件:有大量的软件支持,如游戏,文档编辑器等等,这样便可
以最大限度地利用现有的软件。但是,Window95虽然有如此好的特性,却并不是理想的机
顶盒操作系统,因为它过于“庞大”(对于机顶盒来说,只需要一个合“尺寸”的、能最大
地发挥其性能的操作系统即可),且不够稳健。正是这样,我们需要一个小巧的、内置支持
网络、性能优良、稳健的操作系统。这种操作系统应该是一种消费电子类的操作系统。
WindowsCE和QNX属于这一系列操作系统。
3.2 WindowsCE
    WindowsCE是微软用于消费电子类的操作系统,WindowsCE的体系结构采用独立于通常
的程序设计语言并且和Windows兼容的API的方式,这样就可以保障WindowsCE的组件化和
ROM化,充分适应有限的存储空间和各种不同芯片的要求。WindowsCE支持的处理器系列有
:MIPS3900/4xxx/52xx(MIPS32)、SH3、SH4、486、Pentium、PPC、ARM、StrongARM等。
WindowsCE对显示器的支持可以从没有显示器到大型显示器(1600×1200或更大)。和Win
dows95/NT的API相比,WindowsCE中的API不提供冗余的API,也没有WindowsNT中的安全函
数、ASCIIAPI版、DCOM/RPC以及OLE中的“LE”,此外WindowsCE中还去掉了一些没有太多
必要的API。在设计WindowsCE的API时,更多关注的是内存的大小、电源的管理、驱动程
序的模型以及如何使线程调度表更简单。此外,WindowsCEAPI的一个特点是不同产品类有
不同的API集。WindowsCE的体系结构里,内置了与PC、In-ternet及其他WindowsCE设备的
通信功能。有了这些功能,可以实现任何数据间的传输,包括:直接连接、LAN、拨号方式
、Internet以及与数码相机、打印机等的数据传输。目前,WindowsCE在通信方面己经支
持PC卡、内置Modem、以太网芯片以及软Mo-dem等。WindowsCE支持TCP/IP、PPP和IrDA协
议、(SMB)转换器。对PPP/SLIP的支持、以太网和IrDANDIS驱动的支持、红外线(IR)连接
等也是WindowsCE的特色。在开发基于WindowsCE的应用程序时,Win-dowsCE提供非常好的
编程语言和编程环境。
3.3 QNX
   QNX是加拿大QNXSoftwareSystemLtd.开发的微内核实时操作系统。它具有模块化结构
,可根据用户的需要购买其组件。QNX的内核仅有10K,其他操作系统功能如文件处理、设
备I/0、网络管理等,都有各自的服务管理器,是我们软件开发的理想模型。QNX支持网络
功能,提供TCP/IP服务。也提供图形用户接口:PhotonMicroGUI.PhotonMi-croGUI与Moti
f、X相似,但消耗最小的RAM。QNX提供的开发工具包括AnsiC/C++编辑器和全屏幕debugg
er.QNX只需要一张的软盘的容量,却包含了操作系统和浏览器。通过简单的配置便可以上
网浏览,只是界面不够友好。用户需要一定的计算机操作经验方可使用。
3.4 Linux
   Linux是个人计算机和工作站上的UNIX类操作系统。但它绝不是简化的UNIX。相反,L
inux是强有力和具有创新意义的UNIX类操作系统。它不仅继承了UNIX的特征,而且在许多
方面超过了UNIX。
   作为UNIX类操作系统,它具有下列基本特征:
   .是真正的多用户、多任务操作系统;
   .是符合POSIX(可移植操作系统接口)标准的系统;
   .提供具有内置安全措施的分层的文件系统;
   .提供shell命令解释程序和编程语言;
   .提供强大的管理功能,包括远程管理功能;
   .具有内核的编程接口;.具有图形用户接口;
   .具有大量有用的实用程序和通信、联网工具;
   .具有面向屏幕的编辑软件。大量的高级程序设计语言己移植到Linux系统上,因而它
是理想的应用软件开发平台。
   Linux还有许多独到之处:
   .它的许多组成部分的源代码是开放的,任何人都能通过Internet或其它媒体得到它,
并可以修改和重新发布它。
  .它可以运行在许多硬件平台上。不仅仅可以运行在Intel系列个人计算机上,还可以运
行在Apple系列、DECAlpha系列、MIPS和Motorola68k系列上。.它支持大量的外部设备。

  .它支持的文件系统多达32种。
  .它不仅可以运行许多自由发布的应用软件,还可以运行许多商品化的应用软件。
  通过各种仿真软件,Linux系统还能运行许多其它操作系统的应用软件。如DOS、Windo
ws、Win-dowsNT。因为Linux都有相应的仿真软件来运行它们各自的应用软件。
   在众多的操作系统中,WindowsCE和QNX显然是较好的选择,相比之下,WindowsCE有更多
的优点,有大量的应用程序支持和良好的软件开发环境。然而,这都不是我们的选择。我
们的目的不是使用,更重要的是拥有,对前景无限广阔的机顶盒市场,谁拥有的嵌入式操作
系统可开发、修改和升级,谁就拥有了机顶盒市场的主动权。
   中国的IT市场是一个有巨大潜力的市场,国外的公司都看到了这一点,现在,我们可以
在Win-dows95上开发自己的应用。但只要WindowsCE霸占了家电市场,对这个嵌入在ROM中
的微型操作系统,我们就无能为力了。因而我们要尽快开发出自己的嵌入式操作系统。完
全自己开发操作系统是一件需要大量开发人员并且费时、费力的工作。更好的选择是在
一个基础上来研制和开发,这个基础便是Linux。因为Linux的使用和修改没有商业许可证
的问题,并且运行稳定、效率高、又有强大的联网功能和图形用户界面,使得我们可以开
发有自主版权的机顶盒嵌入式系弘,因此也就利于我们对其进行技术更新。
4 机顶盒软件系统设计
  4.1 设计目标
  作为机顶盒的内部支持软件,它应具有一般家电所具有的特点。因此,其人机界面要符
合家庭的使用习惯,通过其界面,要让用户对其功能一目了然。应抛弃WIN95中层层菜单、
层层窗口这一方式,操作必须简单明了。机顶盒集成软件的主画面包括电视、WWW浏览器
、E-MAIL、电子读物、音乐、影碟和退出按钮。工作流程为:当机顶盒加电后,屏幕上将
出现机顶盒集成软件的界面,可以用遥控器的鼠标点击屏幕上的按钮即可进入相应的应用
程序(遥控器上的快捷按钮或机顶盒面板上的快捷按钮所得到的结果是和点击界面中按钮
的结果相同;同时,在任意状态均可使用快捷按钮来完成功能之间的切换)。应用程序结束
后,便回到主窗口,可重新选其他应用。最后可“退出”而关闭机顶盒。
  4.2 设计思想
  Linux的版本号分为两部分:内核(kernel)与发行版本(distribution)。内核版本指的
是在Linux领导下的开发小组开发出的系统内核的版本号,而一些组织或厂家将Linux系统
内核与应用软件和文档包装起来,并提供一些安装界面和系统设定与管理工具,这样就构
成了一个发行版本。
  Linux的每个发行版本的核心均相同,并且用户可根据不同的硬件要求自行定制合适的
核心。Linux下的窗口系统为XFree86。XFree86源于XWindowSystem,是由麻省理工学院(
MIT)所开发的一个用位图显示的窗口系统。XWindowSys-tem(简称为X)可在许多系统上执
行,因为它独立于任何硬件和操作系统,并具有网络操作通明性。X-WindowSystem源程序
公开,可自由使用。XFree86主要就是开发在i386上的XServer(与硬件相关的)。XFree86
Server基本上是分XF86_Mono(单色)、XF86_VGA16(16色VGA)、XF86_SVGA(256色或更多)
、XF86_Accel(加速卡)等几类。
   XFree86Server的特点就是一个很大的ELF文件(2M左右),需带有一个Server的配置文
件XF86Config,其关键是要支持显卡硬件。X窗口的系统的基础结构是客户服务器模式。

   在整个工作状态下,窗口系统可分为:
  .显示服务器:完全控制输入输出设备,能在屏幕上产生文字及图形并处理窗口,同时监
控键盘及鼠标器。
  .窗口管理器:用于移动、隐藏窗口、改变窗口尺寸和对窗口压栈。窗口管理器可以看
作一个特殊的应用程序。它提供了一个特定的人机接口策略、允许用户组织和安排它的
应用窗口。
  .客户程序:在X窗口系统下执行特定工作的应用程序。Client主要是通过使用一个非同
步字节流通讯协议,也就是X通讯协议(Xprotocol)与XServer联系。一个Server可以同时
接受多个Client程序一起执行。
  在上述基础上定制机顶盒嵌入式操作系统的过程中,我们进行了如下分析:
  机顶盒的嵌入式操作系统要求精简、紧凑、稳健、使用方便并且简单。在这样的要求
下,只能保留Linux的内核、这样才可使得该软件系统更加精简,而不附加任何冗余成分。

   Linux的各个发行版本都是经过用户登陆、身份验证、运行级别等一系列为了系统安
全而采用的机制,方进入命令行方式,也即Shell。但对机顶盒而言,无需系统认证及命令
行方式,只需直接进入窗口环境。Shell与XWindow同属于用户程序,均运行于Linux核心之
上,因而可以完全修改启动过程使其进入XWindow系统、启动机顶盒主画面程序,而全部去
掉Shell。
  另外,兼于机顶盒嵌入式操作系统的容量要求,我们对XWindow也定制为最小模式。即仅
保留XServer,而在XWindow提供的基本库基础上开发统一界面软件,包括浏览器、收发邮
件软件、关机等。
  通过分析,机顶盒嵌入式操作系统由以下四部分组成:
  .内核
  操作系统有微内核结构和单块结构之分,Linux是单块结构的操作系统,微内核结构可方
便的在内核中添加和删除组件,而单块结构却不容易做到这一点。不过,机顶盒嵌入式操
作系统需保留原来内核所有功能,只要能去掉不相关的硬件驱动即可。
 .XServer服务器充当介于应用程序与显示设备及输入设备间的可移植层。当输入数据或
移动鼠标时,服务器会将这些信息传给相关的Client程序,而Client程序也会要求Server
处理它发出的信息,例如在屏幕上移动一个窗口或一条线等。
 .Webbrowser等系列应用程序
 .TCP/IPLinux内核内嵌了对网络的支持,实现了BSD套接字和完整的TCP/IP协议。
  机顶盒软件实现流程见图1图1 
  软件实现流程图5 
结束语
   嵌入式操作系统是机顶盒的核心。之所以这样说,一方面是因为机顶盒性能的好坏、
使用是否方便等都取决于嵌入式操作系统的设计:另一方面是因为机顶盒是高科技电子产
品,科技含量的多少主要是由嵌入式作系统决定的。机顶盒的硬件是公开的,但软件会涉
及到知识产权。因而版权就成为机顶盒的一个重要组成部分,谁掌握了嵌入式操作系统,
谁就掌握了主动,就掌握了机顶盒技术的至高点。这便是我们开发机顶盒嵌入式操作系统
的目的。
  参 考 文 献
1 王小鸽,周桂林等,微机上的UNIX操作系统—Linux使用指南.北京:清华大学出版社,1
997
2 AndrewS.Tanenbaum,AlbertS.Woodhull著.OperatingSystemsDesignandImplementat
ion.北京:电子工业出版社,1998
3 李俊英,叶新恩.XWindow培训教程.北京:海洋出版社,1994
4 刘顺吉,曾守民.XWindow实用手册.北京:学苑出版32第3期            

--
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.239.147]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:205.726毫秒