基于嵌入式系统的多媒体应用软件的设计与开发
2016-09-08薛医贵
薛医贵
(陕西工业职业技术学院 陕西 咸阳 712000)
基于嵌入式系统的多媒体应用软件的设计与开发
薛医贵
(陕西工业职业技术学院 陕西 咸阳712000)
为了紧跟多媒体软件开发技术越来越强的脚步,本文提出了一种基于嵌入式系统的手机应用层多媒体软件的设计和系统开发。该系统的硬件部分的主要由一个单片机或微控制器(MCU)的处理器组成,软件部分则包括了所采用的嵌入式操作系统和上层所使用的应用程序,用以控制整个嵌入式系统的操作流程。实际应用和产生的效果表明,该多媒体应用软件技术的设计与开发为未来多媒体方向软件设计提供了一个全新的思路,对手机应用多媒体软件开发技术注入新的力量,达到了设计与开发的要求。
嵌入式系统;多媒体软件开发;实时多任务操作系统;软件架构
随着硬件技术的发展越来越完善,软件部分也就有着更大的发展空间,软件部分的发展也就成为嵌入式系统中特别重要的一部分。嵌入式系统的硬件部分的功能越来越强大紧接而来的就是手机的功能也随之增强,对应的就是图片,视频等多媒体功能的越来越强,这也就对相对应的应用软件的开发提出了新的要求[3]。
在如今的后PC时代,相对于传统的服务器和PC应用,嵌入式系统的应用更加广泛,已经深入到电子产品、电子交通、智能管理等各个领域。其中各个嵌入式产品应用中多媒体功能又是比较重要的一个方面,它为嵌入式市场打开了新的篇章,更对软件技术的提升提出了新的挑战。
1 嵌入式系统概述
嵌入式系统是一个专用的计算机系统,它以应用为中心,计算机技术为基础,软硬件都可裁剪,使应用系统可以达到其对功能、功耗、成本、体积等要求的计算机系统。嵌入式系统融合了现代科学各个学科的精华,该系统没有多余的软件,也没有多余的储存器,并以固化态出现,使它具有高稳定性、低成本性、小体积、低功耗等特点。嵌入式系统的软件和硬件组成,如图1所示。嵌入式系统的处理器由一个单片机或微控制器(MCU)组成,这些嵌入式处理器多是由8位、16位和32位的,与64位的处理器相比,它的经济型和现实性有很大的优势。它的硬件为显示卡、储存介质、通讯设备或IC卡的读取设备等。嵌入式系统与普通的计算机处理系统不同,它大多数时候使用闪存而不是像其它硬盘那样使用的是大容量的存储介质。嵌入式系统的软件包括操作系统、数据库系统、通讯协议、图形界面、标准化浏览器和应用软件等[1-2]。嵌入式系统的设计与基于PC机系统的不同是由它的应用领域决定的,传统计算机的设计总是把可以提供最大计算速度的指标放在首位,而嵌入式系统中,更为重要的是外部接口、控制和算法等,处理器仅作为实现这些功能的手段而已。
2 软件系统总体设计方案
随着软件系统趋向于规模性和复杂性的不断提高,软件系统的总体结构的设计与以往特定算法和数据结构设计与选择相比显得更为重要,好的结构对系统的顺利运行起到很重要的作用。手机多媒体应用软件有着功能复杂,交互性强等特点在嵌入式系统开发中更需要一个科学而且有效的结构和开发的流程。所以手机多媒体应用软件设计首先就是软件总体架构与主要模块的设计[3]。图2为手机多媒体应用软件的总体结构图,总体上手机多媒体应用软件被分为三大层,分别为ERGO层,UIS层和VRIS层,它的常规步骤为,首先选择合适的对应的操作系统,在某些情况下,为了达到方便快捷的目的,操作系统可以省略。然后就是安装开发环境,再开发应用程序,此程序最好在仿真器上进行调试,下面就是配置实时操作系统并且构造整个系统,最后就是进行调试,优化和测试等常规内容。定系统的功能和价值的是应用层的软件。多媒体应用功能是我们设计的重点,也是其最重要的使用功能,也是手机软件开发的最重要的模块。
图1 嵌入式系统结构图
该应用软件的开发中,可以应用多种格式的媒体文件,其中音频文件的格式包括mid,mp3,wma,wave,au等,图片文件的格式包括Jpeg,gif,bmp,等,视频文件的格式包括mpeg,mp4,avi。并且对多媒体应用功能进行了更加全面的设计,比如,Media Center(媒体中心),它可以将audio,video,picture等这些媒体文件的模块进行存放,并且可以编辑、显示播放相应的媒体文件。Embedded Camera(嵌入式相机)可以拍摄并保存picture,video等文件 。PTV(Push to View)利用iden的通讯协议,可以在PTT(Push to Talk)的通话模式下同时进行图片的传送。MMS(Media Message)多媒体短信,可以在发送的短信中添加 picture及audio文件。Caller ID(通话人 ID)在通讯录里面,可以分别给不同通讯录中的人分别分配不同的照片和来电音效,当通讯录中的人来电或者拨出电话时,会显示相应的通信人的照片和特定音效。系统中对不同功能模块进行分解,然后对各个模块作进行需求分析,使其可以充分反映使用者和市场的需求,并且细致的的列出与其他功能模块之间的交互[5]。
图2 应用软件总体结构图
手机多媒体应用软件设计为3个大层,ERGO层可以使手机软件实现管理各种通话功能、应用功能等的子模块,并为各个层提供接口。ERGO层主要利用处理器(handler)来处理各种事件的请求,其中处理器包括语言处理器,文字处理器,功能使用模块处理器等。状态机的两部分组成保证了它的输入,分别为事件和ERGO层,使任务接收到可靠的消息地址,事件也因为此被组件。状态机可以根据不同机器输入的不同命令来调用相应的处理过程。
ERGO的任务软件定义了很多类型的状态处理器(statemachine handlers),每个状态处理器处理不同功能的特定事件。状态处理器被按照有序的次序层叠的放在一起,通过逻辑顺序来控制它的激活和挪动,当遇到某个处理器不能及时处理事件的时候,它状态处理器可以自动将该事件交给其他处理器进行处理。ERGO就是起到保证处理器正常运转这一功能的,当ERGO层收到来自实时操作系统的消息时,它立刻将消息的格式转为事件的形式,立刻将该事件发到状态机中进行处理,其中事件的类型包括 RCS消息,SMS消息,VRIS消息,NAMS消息等。在ERGO层中有一个MRM模块,它被称为媒体资源管理器,它的作用是提供了一个通用的接口,可以连接媒体数据库,并还能管理手机中的多媒体文件。UIS(User Interaction Service),它作为整个体系结构的一部分,它的作用是为其他层的用户提供标准功能的接口和显示用户界面的信息,UIS层为程序提供了一个抽象,就是“逻辑显示”和“逻辑用户事件”,该抽象的作用是可以让不同的应用程序在不同的硬件平台上进行运行,该抽象与应用程序的对话框类似,不同模式和大小的内容都可通过UIS层来显示,例如图像模式与文字模式,尺寸的大与小,色彩的黑白,彩色或者单色,文字形式或者视图形式的说明等。UIS会依据自己的显示能力来对对话框和其中的内容信息进行格式化,为了达到正常的显示这些内容的目的。系统主要的显示模式是位图模式,UIS还能对不同的语言和文字进行处理,同时UIS层也对使用者控制的各个元素进行抽象化,并将使用者控制的内容作为逻辑事件上报给应用程序。VRIS(Virtual Radio Interface Standard),被称为虚拟手机界面标准层,它是手机软件中相对来说比较底层的部分,通过对接口的定义使系统达到与平台的无关性,因此,系统升级或者转移到其他平台时,无需改动高层的代码或者对于别的VRIS平台,只用做出少量改动即可。这个平台可以对整个VRIS平台或者其中需要的某一部分或者一个子集进行规范。采用VRIS层可以重复使用VRIS兼容的各种不一样的平台的上层软件,别的平台上代码可以经过微小的改动就可以应用到现平台,整个系统35%的代码就是从其它平台移制过来的。通常一个应用程序所需的功能,需要来自多个资源和管理的协调,而Vris却只面向底层的硬件,对使用的细节进行封装,但应用程序的调度过程却并不协调,这一协调工作就由MRM层来完成。假设媒体或者管理它们的使用方法系统的一部分,而用户交互模块是使用者来实现并且完成这一操作的过程(比如,当有来电的时候,为空白的界面设置一张背景等)。这就是资源管理,它为用户提供交互模块并且可以实现应用层的目的来访问资源的这个方式,资源管理层对用户交互模块的开放式要求使它可以很容易的被改换,但是,若VRIS进行了改变(比如移植到不同的处理器上),则对应的资源管理模块就需要进行更新,但更新后不会影响到上层的应用程序。如果对virs层进行改动,只需对RM部分进行对应的修改,上层应用则无需变动。与之前的多媒体管理器在应用程序中相比,单独的RM层具有更高的抽象性,可移植性,还有更高的使用效率。
3 软件系统测试
测试工作主要采用下面两种方法,分别为黑盒测试和白盒测试。其中黑盒测试就是根据需求和功能进行测试而不考虑内部设计和代码,白盒测试是根据代码内部的逻辑,对内部代码的语句、分支、条件等进行测试[5]。
测试工作的主要过程为,单元测试:这是最小范围的测试,主要针对的是定函数和特定的代码模块进行测试。需要对程序的设计和代码的细节进行了解。功能测试:对我们的应用软件的功能模块进行黑盒测试。其中测试又被分为普通功能测试和深入功能测试两个方面
系统测试,对系统中的所有部件对全部的要求说明进行黑盒测试。仿真测试:与系统测试相似,但测试的范围更加广泛,对实际应用环境进行模拟,对整个应用软件进行实际的操作。然后,先按照每个特定的功能模块,对系统中所有相关的模块进行系统测试和仿真测试。因为手机多媒体的应用功能非常复杂,所以特别需要注意各个功能模块之间的相互影响,以及不能影响常规功能使用和通讯功能得使用。软件系统手机中的多媒体中心、相机、资源管理器等多媒体应用软件单元,经过了初期的调试、代码的确认、功能测试和系统仿真等一系列测试后,并且结合实际需求和情况进行观察,基本功能都可以满足我们的要求。下面给出测试代码和修正用例:
分析:在相机功能停止时,为避免底层冲突,快门的播放也应同时关闭。
修正:在 cam_terminate函数中加上以下段落
if(cam_shutter_sound_handle!=NULL)
{
/*Close sound media*/
resmgr_media_playback_sto(cam_shutter_sound_handle);
resmgr_media_playback_clos(cam_shutter_sound_handle);
cam_shutter_sound_handle=NULL;
}
4 结 论
该多媒体软件的设计与开发结合了手机应用层媒体软件的设计,对从最重要的应用层软件的总体结构模块的设计开始,从软件层次自下而上的顺序,对软件的功能,设计,数据结构和相关技术等做了分析和说明,并且对该软件系统进行了科学有效的测试。实际应用和产生的效果表明,该多媒体应用软件技术的设计与开发为未来多媒体方向软件设计提供了一个全新的思路,对手机应用多媒体软件开发技术注入新的力量,达到了设计与开发的要求。
[1]晨风.嵌入式实时多任务软件开发基础[M].北京:清华大学出版社,2004.
[2]Jean J.Labrosse,嵌入式系统构件[M].1版.北京:机械工业出版社,2002.
[3]马忠梅.嵌入式应用设计模式[J].单片机与嵌入式系统应用,2001(1):16-18.
[4]Wayne Wolf,嵌入式计算系统设计原理[M].1版.北京:机械工业出版社,2002.
[5]胡景生.变压器经济运行[M].北京:中国电力出版社,1999.
[6]李江,常葆林.嵌入式操作系统设计中的若干问题[J].计算机工程,2000(6):88-89,94.
[7]阮友亮,沈元隆.GSM手机软件开发浅析[J].通信管理与技术,2003(4):49-50.
[8]张尧学,史美林.计算机操作系统教程[M].2版.北京:清华大学出版社,2000.
[9]臧怀泉,范亚伟.基于嵌入式操作系统的应用软件设计[J].燕山大学学报,2004,28(4):345-349.
Based on the embedded system design and development of multimedia application software
XUE Yi-gui
(Shaanxi Polytechnic Institute,Xianyang 712000,China)
In order to follow the footsteps of multimedia software development technology is more and more strong,this paper proposes a mobile application layerbased on embedded system design and system development of multimedia software.Hardware part of the system is mainly composed of a microcontroller or microcontroller(MCU)processor,software part involves the use of embedded operating system and used by the upper application,in order to control the whole operation process of the embedded system.The practical application and the effect of the show that the design and development of multimedia technology applications for the future direction of multimedia software design provides a new train of thought,infuse new power for mobile multimediasoftwaredevelopmenttechnology,hasreachedtherequirementofdesignanddevelopment.
embedded system;multimedia applications development;rtos;software architecture
TN99
A
1674-6236(2016)09-0191-03
2015-05-28稿件编号:201505250
薛医贵(1981—),女,陕西蒲城人,讲师。研究方向:计算机科学。