基于和欣嵌入式操作系统的数字电视0SD工具开发
扫描二维码
随时随地手机看文章
讨论了和欣嵌入式操作系统上数字电视0sD工具的开发,采用EZCOM技术构建0SD中间件,设计实现了基于SDA55XX芯片的OSD开发工具,并以此芯片为例,重点介绍了数字电视OSD开发工具的设计思想、体系结构以及基于此工具的OSD开发方法。
数字电视服务的最大特点是除了支持传统的音频、视频业务外,还提供了电视增值业务,如视频点播、数据广播、个性化交互电视、远程教育、Internet、三网合一、电视电子商务和日常信息综合服务等。而所有电视增值业务,都是建立在强大的软件开发能力上的。在诸多数字电视要素中,在屏显示系统0SD(0n Screen Display)是贯穿整个数字电视应用和增值业务的主线,所有的增值业务及数字电视控制都是通过0SD展现在用户面前。因此,0SD开发是数字电视软件开发中最关键的要素。 目前国内普遍采用外国厂商提供的与芯片捆绑销售的操作系统及在此系统上的OSD开发工具。受国外操作系统技术封闭的影响,国内厂商将很难做刭自主开发,必须高度依赖国外厂商的技术支持。为了更好地发展我国的数字电视产业,一方面要采用具有自主知识产权的操作系统,另一方面还必须加快对数字电视软件平台相关技术的研究和开发。和欣嵌入式操作系统是863课题“网络化嵌入式支撑技术”的研究成果.是具有自主知识产权的操作系统。本课题是863课题“基于构件、中间件技术的因特网操作系统及跨操作系统的构件、中间件运行平台”的一部分。因此,本文对基于和欣数字电视OSD软件开发的研究,不仅具有重要的理论意义.还具有广阔的应用前景。 1 和欣嵌入式操作系统及其构件技术
和欣嵌入式操作系统技术体系所包括的ezCOM构件技术、构件运行平台技术以及开发应用软件所需的集成开发环境,是一个完整的面向构件的应用软件开发平台。 和欣是32位嵌入式操作系统。操作系统基于微内核,具有多进程、多线程、抢占式、基于线程的多优先级任务调度等特性。它提供FAT兼容的文件系统,可以从软盘、硬盘、Flash ROM启动,也可以通过网络启动。系统体积小,速度快,适合网络时代的绝大部分嵌入式信息设备。 和欣操作系统完全面向构件技术,提供的功能模块全部基于ezCOM构件技术,因此是可拆卸的构件。应用系统可以按照需要剪裁组装,或在运行时动态加载必要的构件。 从传统的操作系统体系结构的角度看,和欣操作系统可以看成是由微内核、构件支持模块、系统服务器组成的。 2 SDA55xx芯片简介
SDA55xx微控制器是Micronas公司出品的一款主要用于电视机控制以及提供图形图像显示的电视芯片。SDA55xx不仅能够提供解码全球图文电视系统WSrl’(World System Teletext)功能,同时支持解码其他诸如视频演放系统VPS(Video Programming System)、节目传送控制PDC(Program Delivery Contro1)以及用于PAL-plus(欧洲新电视播出制式)播放的宽屏幕信令WSS(WideScteen Signalling)。SDA55xx的数据分割器以及显示部分支持非常广泛的电视制式,包括PAL、NTSC以及上面提到的VPS、WSS、PDC、TTX和隐蔽字幕数据(Closed Caption Data)。 3 DTV OSD工具的设计
3.1 设计思想
DTV OSD Developer是建立在DIV中间件平台上的可视化开发工具,它根据数字电视软件开发的特点,把界面设计中使用频繁的对象封装为控件,以方便用户调用。在开发过程中所看到的用户界面框架与程序运行时的界面基本相同,这就使软件设计可以在脱离真机的情况下完成,而不必把大量的时问用于重复下载程序到芯片以及频繁开机调试,从而提高软件开发效率。 3.2 体系结构
嵌入式操作系统和DTV软件开发平台中间件构成了基于嵌入式操作系统的数字电视系统的开发运行环境。嵌入式实时操作系统及设备的上层应用接口通过驱动程序控制相应设备,并对中间件提供系统服务。在数字电视软件系统中,DTV软件平台中间件基于操作系统为应用软件提供运行支持,同时对操作系统提供的设备控制接口进行适当封装,由此形成的新接口解除了不同应用提供商与不同的数字电视中特定的硬件和软件细节问的高度藕合关系,从而实现了内容只需创作一次即可在“任何”地方运行。 DTV软件开发平台采用立体层次结构,作为系统构件运行在操作系统中间件运行平台上,由于构件与外部应用程序及操作系统的交互完全通过接口进行,保证了构件的实现细节不会影响到使用构件的程序,使得它可以不断根据功能需求和所支持应用类型增加新的功能和要求。其层次结构如图1所示。
在基于SDA55xx的OSD开发中,由于开发资料只有Miemnas公司提供的关于SDA55xx的详细DATASHEET及开发环境,包括一套Windows下的集成开发环境(WINIDEA)软件和一套模拟器设备,所以所有的开发都从零开始。要开发基于SDA55xx的OSD系统,就必须熟悉DATASHEET,掌握其内部特殊寄存器的功能、内部XRAM的分配、DRCS的结构以及构造方法。根据这些情况,笔者将基于SDA55xx的OSD开发设计为以下流程: (1)OSD设计阶段。主要进行OSD界面设计,此时设计的OSD界面就是最终呈现给用户的界面,所以对于美观及实用要求很高; (2)模块设计阶段。根据OSD设计阶段设计的OSD界面,分析其中包括的主要元素,然后将每个元素的绘制封装成一个个模块。此阶段的主要任务是:明确风格OSD界面中的元素,定义每个模块的结构等; (3)具体实现阶段。这一阶段主要实现每个模块的绘制功能,其工作是分配XRAM、构造DRCS及配置特殊寄存器。模块绘制功能实现后,由主程序调用绘制模块完成OSD菜单系统。图2是基本系统结构。此结构中OSD界面及模块设计都很重要,但主要工作是最后的DRCS的构造、XRAM的分配及特殊寄存器的赋值。 3.4 系统构成
DTV Visual Developer主要由四个工作区组成:
(1)OSD TreeView:是编辑菜单状态的主要场所,菜单状态采用树状结构表示,父菜单与子菜单的关系通过父节点与子节点的关系模拟。
(2)Menu Designer:是用户界面设计的工作区,在这里设计的用户界面框架与程序运行时的图形界面基本相同,它提供了添加、删除以及调整控件形状和位置的功能。
(3)nems Window:其中每一项都对应于一个菜单的状态,它包含了这个菜单状态下的所有控件,无论该控件是可见或不可见的。
(4)Properties Window:可以编辑选中控件的各种属性和行为。此外,DTV Visual Developer还提供了诸如变量表、字符串表和颜色表等方便用户使用的功能。同时,这个集成开发环境也是可配置的,例如控件的种类、每种控件的属性以及程序中使用的字库等都可以根据用户的需要定制。这就保证了对开发工具的灵活性和适应性的要求。 3.5 DTV OSD Developer的设计要点
在DTV OSD Developer中,所有菜单状态均被抽象为OSD TreeView中的一个树节点,每个状态都对应一个惟一编号。编号中除最后两位外,其余每两位代表一个菜单层次,如“01FFFFFF0l”表示这个程序中的菜单深度最大为四层,而最后两位则表示此菜单状态所对应的通道,如01代表TV,02代表AV等。子菜单状态标号的前几位应与父菜单状态标号的相应位一致,如菜单状态“01FFFFFF01”的第一个子菜单编号应该是“0100FFFF01”,这样,当程序在各菜单状态中跳转时可以方便地通过它们的状态编号进行调度。 每个菜单状态都被封装成为一个枚举结构,如TV通道下的主菜单状态可由以下结构表示: 主程序在查找一个菜单状态时,可以通过状态编号定位到一个数组结构,根据此结构找到对应子状态的内存地址和子状态数目。如TV通道下的主菜单数组结构为:
4 基于DTV OSD Developer的数宇电视软件开发方法
在使用可视化开发工具DTV OSD Developer的数字电视软件开发过程中,所有的DTV应用程序都将抽象成为控件集合+资源集合的模式,如图3所示。这种开发模式的应用使得软件功能的实现不再以各个功能模块的实现为标志,而是按照“创建用户界面一设置控件对象的属性一编写事件响应代码”的流程进行。这不仅极大地提高了软件开发的效率,同时也使所开发的应用程序逻辑性更强也更易于维护。 本文结合863课题“基于构件、中间件技术的因特网操作系统及跨操作系统的构件、中间件运行平台”,在和欣嵌入式操作系统上,通过开发基于ezCOM的OSD中间件,最终形成OSD应用程序、OSD中间件、和欣构件运行平台、和欣操作系统、硬件平台这一五层系统架构下的OSD开发方式,并且实现了一个完全构件化的系统架构。采用OSD中问件系统进行开发,隔离了很多具体细节的实现,用简单的方法定制具有特色的OSD软件,从而在提高开发效率,减少开发成本的同时能够跟上技术的发展,将应用的开发变得更加便捷,使产品的开放性和可移植性更强。