薛醫(yī)貴
(陜西工業(yè)職業(yè)技術(shù)學(xué)院 陜西 咸陽 712000)
基于嵌入式系統(tǒng)的多媒體應(yīng)用軟件的設(shè)計與開發(fā)
薛醫(yī)貴
(陜西工業(yè)職業(yè)技術(shù)學(xué)院 陜西 咸陽712000)
為了緊跟多媒體軟件開發(fā)技術(shù)越來越強的腳步,本文提出了一種基于嵌入式系統(tǒng)的手機應(yīng)用層多媒體軟件的設(shè)計和系統(tǒng)開發(fā)。該系統(tǒng)的硬件部分的主要由一個單片機或微控制器(MCU)的處理器組成,軟件部分則包括了所采用的嵌入式操作系統(tǒng)和上層所使用的應(yīng)用程序,用以控制整個嵌入式系統(tǒng)的操作流程。實際應(yīng)用和產(chǎn)生的效果表明,該多媒體應(yīng)用軟件技術(shù)的設(shè)計與開發(fā)為未來多媒體方向軟件設(shè)計提供了一個全新的思路,對手機應(yīng)用多媒體軟件開發(fā)技術(shù)注入新的力量,達到了設(shè)計與開發(fā)的要求。
嵌入式系統(tǒng);多媒體軟件開發(fā);實時多任務(wù)操作系統(tǒng);軟件架構(gòu)
隨著硬件技術(shù)的發(fā)展越來越完善,軟件部分也就有著更大的發(fā)展空間,軟件部分的發(fā)展也就成為嵌入式系統(tǒng)中特別重要的一部分。嵌入式系統(tǒng)的硬件部分的功能越來越強大緊接而來的就是手機的功能也隨之增強,對應(yīng)的就是圖片,視頻等多媒體功能的越來越強,這也就對相對應(yīng)的應(yīng)用軟件的開發(fā)提出了新的要求[3]。
在如今的后PC時代,相對于傳統(tǒng)的服務(wù)器和PC應(yīng)用,嵌入式系統(tǒng)的應(yīng)用更加廣泛,已經(jīng)深入到電子產(chǎn)品、電子交通、智能管理等各個領(lǐng)域。其中各個嵌入式產(chǎn)品應(yīng)用中多媒體功能又是比較重要的一個方面,它為嵌入式市場打開了新的篇章,更對軟件技術(shù)的提升提出了新的挑戰(zhàn)。
嵌入式系統(tǒng)是一個專用的計算機系統(tǒng),它以應(yīng)用為中心,計算機技術(shù)為基礎(chǔ),軟硬件都可裁剪,使應(yīng)用系統(tǒng)可以達到其對功能、功耗、成本、體積等要求的計算機系統(tǒng)。嵌入式系統(tǒng)融合了現(xiàn)代科學(xué)各個學(xué)科的精華,該系統(tǒng)沒有多余的軟件,也沒有多余的儲存器,并以固化態(tài)出現(xiàn),使它具有高穩(wěn)定性、低成本性、小體積、低功耗等特點。嵌入式系統(tǒng)的軟件和硬件組成,如圖1所示。嵌入式系統(tǒng)的處理器由一個單片機或微控制器(MCU)組成,這些嵌入式處理器多是由8位、16位和32位的,與64位的處理器相比,它的經(jīng)濟型和現(xiàn)實性有很大的優(yōu)勢。它的硬件為顯示卡、儲存介質(zhì)、通訊設(shè)備或IC卡的讀取設(shè)備等。嵌入式系統(tǒng)與普通的計算機處理系統(tǒng)不同,它大多數(shù)時候使用閃存而不是像其它硬盤那樣使用的是大容量的存儲介質(zhì)。嵌入式系統(tǒng)的軟件包括操作系統(tǒng)、數(shù)據(jù)庫系統(tǒng)、通訊協(xié)議、圖形界面、標(biāo)準(zhǔn)化瀏覽器和應(yīng)用軟件等[1-2]。嵌入式系統(tǒng)的設(shè)計與基于PC機系統(tǒng)的不同是由它的應(yīng)用領(lǐng)域決定的,傳統(tǒng)計算機的設(shè)計總是把可以提供最大計算速度的指標(biāo)放在首位,而嵌入式系統(tǒng)中,更為重要的是外部接口、控制和算法等,處理器僅作為實現(xiàn)這些功能的手段而已。
隨著軟件系統(tǒng)趨向于規(guī)模性和復(fù)雜性的不斷提高,軟件系統(tǒng)的總體結(jié)構(gòu)的設(shè)計與以往特定算法和數(shù)據(jù)結(jié)構(gòu)設(shè)計與選擇相比顯得更為重要,好的結(jié)構(gòu)對系統(tǒng)的順利運行起到很重要的作用。手機多媒體應(yīng)用軟件有著功能復(fù)雜,交互性強等特點在嵌入式系統(tǒng)開發(fā)中更需要一個科學(xué)而且有效的結(jié)構(gòu)和開發(fā)的流程。所以手機多媒體應(yīng)用軟件設(shè)計首先就是軟件總體架構(gòu)與主要模塊的設(shè)計[3]。圖2為手機多媒體應(yīng)用軟件的總體結(jié)構(gòu)圖,總體上手機多媒體應(yīng)用軟件被分為三大層,分別為ERGO層,UIS層和VRIS層,它的常規(guī)步驟為,首先選擇合適的對應(yīng)的操作系統(tǒng),在某些情況下,為了達到方便快捷的目的,操作系統(tǒng)可以省略。然后就是安裝開發(fā)環(huán)境,再開發(fā)應(yīng)用程序,此程序最好在仿真器上進行調(diào)試,下面就是配置實時操作系統(tǒng)并且構(gòu)造整個系統(tǒng),最后就是進行調(diào)試,優(yōu)化和測試等常規(guī)內(nèi)容。定系統(tǒng)的功能和價值的是應(yīng)用層的軟件。多媒體應(yīng)用功能是我們設(shè)計的重點,也是其最重要的使用功能,也是手機軟件開發(fā)的最重要的模塊。
圖1 嵌入式系統(tǒng)結(jié)構(gòu)圖
該應(yīng)用軟件的開發(fā)中,可以應(yīng)用多種格式的媒體文件,其中音頻文件的格式包括mid,mp3,wma,wave,au等,圖片文件的格式包括Jpeg,gif,bmp,等,視頻文件的格式包括mpeg,mp4,avi。并且對多媒體應(yīng)用功能進行了更加全面的設(shè)計,比如,Media Center(媒體中心),它可以將audio,video,picture等這些媒體文件的模塊進行存放,并且可以編輯、顯示播放相應(yīng)的媒體文件。Embedded Camera(嵌入式相機)可以拍攝并保存picture,video等文件 。PTV(Push to View)利用iden的通訊協(xié)議,可以在PTT(Push to Talk)的通話模式下同時進行圖片的傳送。MMS(Media Message)多媒體短信,可以在發(fā)送的短信中添加 picture及audio文件。Caller ID(通話人 ID)在通訊錄里面,可以分別給不同通訊錄中的人分別分配不同的照片和來電音效,當(dāng)通訊錄中的人來電或者撥出電話時,會顯示相應(yīng)的通信人的照片和特定音效。系統(tǒng)中對不同功能模塊進行分解,然后對各個模塊作進行需求分析,使其可以充分反映使用者和市場的需求,并且細致的的列出與其他功能模塊之間的交互[5]。
圖2 應(yīng)用軟件總體結(jié)構(gòu)圖
手機多媒體應(yīng)用軟件設(shè)計為3個大層,ERGO層可以使手機軟件實現(xiàn)管理各種通話功能、應(yīng)用功能等的子模塊,并為各個層提供接口。ERGO層主要利用處理器(handler)來處理各種事件的請求,其中處理器包括語言處理器,文字處理器,功能使用模塊處理器等。狀態(tài)機的兩部分組成保證了它的輸入,分別為事件和ERGO層,使任務(wù)接收到可靠的消息地址,事件也因為此被組件。狀態(tài)機可以根據(jù)不同機器輸入的不同命令來調(diào)用相應(yīng)的處理過程。
ERGO的任務(wù)軟件定義了很多類型的狀態(tài)處理器(statemachine handlers),每個狀態(tài)處理器處理不同功能的特定事件。狀態(tài)處理器被按照有序的次序?qū)盈B的放在一起,通過邏輯順序來控制它的激活和挪動,當(dāng)遇到某個處理器不能及時處理事件的時候,它狀態(tài)處理器可以自動將該事件交給其他處理器進行處理。ERGO就是起到保證處理器正常運轉(zhuǎn)這一功能的,當(dāng)ERGO層收到來自實時操作系統(tǒng)的消息時,它立刻將消息的格式轉(zhuǎn)為事件的形式,立刻將該事件發(fā)到狀態(tài)機中進行處理,其中事件的類型包括 RCS消息,SMS消息,VRIS消息,NAMS消息等。在ERGO層中有一個MRM模塊,它被稱為媒體資源管理器,它的作用是提供了一個通用的接口,可以連接媒體數(shù)據(jù)庫,并還能管理手機中的多媒體文件。UIS(User Interaction Service),它作為整個體系結(jié)構(gòu)的一部分,它的作用是為其他層的用戶提供標(biāo)準(zhǔn)功能的接口和顯示用戶界面的信息,UIS層為程序提供了一個抽象,就是“邏輯顯示”和“邏輯用戶事件”,該抽象的作用是可以讓不同的應(yīng)用程序在不同的硬件平臺上進行運行,該抽象與應(yīng)用程序的對話框類似,不同模式和大小的內(nèi)容都可通過UIS層來顯示,例如圖像模式與文字模式,尺寸的大與小,色彩的黑白,彩色或者單色,文字形式或者視圖形式的說明等。UIS會依據(jù)自己的顯示能力來對對話框和其中的內(nèi)容信息進行格式化,為了達到正常的顯示這些內(nèi)容的目的。系統(tǒng)主要的顯示模式是位圖模式,UIS還能對不同的語言和文字進行處理,同時UIS層也對使用者控制的各個元素進行抽象化,并將使用者控制的內(nèi)容作為邏輯事件上報給應(yīng)用程序。VRIS(Virtual Radio Interface Standard),被稱為虛擬手機界面標(biāo)準(zhǔn)層,它是手機軟件中相對來說比較底層的部分,通過對接口的定義使系統(tǒng)達到與平臺的無關(guān)性,因此,系統(tǒng)升級或者轉(zhuǎn)移到其他平臺時,無需改動高層的代碼或者對于別的VRIS平臺,只用做出少量改動即可。這個平臺可以對整個VRIS平臺或者其中需要的某一部分或者一個子集進行規(guī)范。采用VRIS層可以重復(fù)使用VRIS兼容的各種不一樣的平臺的上層軟件,別的平臺上代碼可以經(jīng)過微小的改動就可以應(yīng)用到現(xiàn)平臺,整個系統(tǒng)35%的代碼就是從其它平臺移制過來的。通常一個應(yīng)用程序所需的功能,需要來自多個資源和管理的協(xié)調(diào),而Vris卻只面向底層的硬件,對使用的細節(jié)進行封裝,但應(yīng)用程序的調(diào)度過程卻并不協(xié)調(diào),這一協(xié)調(diào)工作就由MRM層來完成。假設(shè)媒體或者管理它們的使用方法系統(tǒng)的一部分,而用戶交互模塊是使用者來實現(xiàn)并且完成這一操作的過程(比如,當(dāng)有來電的時候,為空白的界面設(shè)置一張背景等)。這就是資源管理,它為用戶提供交互模塊并且可以實現(xiàn)應(yīng)用層的目的來訪問資源的這個方式,資源管理層對用戶交互模塊的開放式要求使它可以很容易的被改換,但是,若VRIS進行了改變(比如移植到不同的處理器上),則對應(yīng)的資源管理模塊就需要進行更新,但更新后不會影響到上層的應(yīng)用程序。如果對virs層進行改動,只需對RM部分進行對應(yīng)的修改,上層應(yīng)用則無需變動。與之前的多媒體管理器在應(yīng)用程序中相比,單獨的RM層具有更高的抽象性,可移植性,還有更高的使用效率。
測試工作主要采用下面兩種方法,分別為黑盒測試和白盒測試。其中黑盒測試就是根據(jù)需求和功能進行測試而不考慮內(nèi)部設(shè)計和代碼,白盒測試是根據(jù)代碼內(nèi)部的邏輯,對內(nèi)部代碼的語句、分支、條件等進行測試[5]。
測試工作的主要過程為,單元測試:這是最小范圍的測試,主要針對的是定函數(shù)和特定的代碼模塊進行測試。需要對程序的設(shè)計和代碼的細節(jié)進行了解。功能測試:對我們的應(yīng)用軟件的功能模塊進行黑盒測試。其中測試又被分為普通功能測試和深入功能測試兩個方面
系統(tǒng)測試,對系統(tǒng)中的所有部件對全部的要求說明進行黑盒測試。仿真測試:與系統(tǒng)測試相似,但測試的范圍更加廣泛,對實際應(yīng)用環(huán)境進行模擬,對整個應(yīng)用軟件進行實際的操作。然后,先按照每個特定的功能模塊,對系統(tǒng)中所有相關(guān)的模塊進行系統(tǒng)測試和仿真測試。因為手機多媒體的應(yīng)用功能非常復(fù)雜,所以特別需要注意各個功能模塊之間的相互影響,以及不能影響常規(guī)功能使用和通訊功能得使用。軟件系統(tǒng)手機中的多媒體中心、相機、資源管理器等多媒體應(yīng)用軟件單元,經(jīng)過了初期的調(diào)試、代碼的確認、功能測試和系統(tǒng)仿真等一系列測試后,并且結(jié)合實際需求和情況進行觀察,基本功能都可以滿足我們的要求。下面給出測試代碼和修正用例:
分析:在相機功能停止時,為避免底層沖突,快門的播放也應(yīng)同時關(guān)閉。
修正:在 cam_terminate函數(shù)中加上以下段落
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;
}
該多媒體軟件的設(shè)計與開發(fā)結(jié)合了手機應(yīng)用層媒體軟件的設(shè)計,對從最重要的應(yīng)用層軟件的總體結(jié)構(gòu)模塊的設(shè)計開始,從軟件層次自下而上的順序,對軟件的功能,設(shè)計,數(shù)據(jù)結(jié)構(gòu)和相關(guān)技術(shù)等做了分析和說明,并且對該軟件系統(tǒng)進行了科學(xué)有效的測試。實際應(yīng)用和產(chǎn)生的效果表明,該多媒體應(yīng)用軟件技術(shù)的設(shè)計與開發(fā)為未來多媒體方向軟件設(shè)計提供了一個全新的思路,對手機應(yīng)用多媒體軟件開發(fā)技術(shù)注入新的力量,達到了設(shè)計與開發(fā)的要求。
[1]晨風(fēng).嵌入式實時多任務(wù)軟件開發(fā)基礎(chǔ)[M].北京:清華大學(xué)出版社,2004.
[2]Jean J.Labrosse,嵌入式系統(tǒng)構(gòu)件[M].1版.北京:機械工業(yè)出版社,2002.
[3]馬忠梅.嵌入式應(yīng)用設(shè)計模式[J].單片機與嵌入式系統(tǒng)應(yīng)用,2001(1):16-18.
[4]Wayne Wolf,嵌入式計算系統(tǒng)設(shè)計原理[M].1版.北京:機械工業(yè)出版社,2002.
[5]胡景生.變壓器經(jīng)濟運行[M].北京:中國電力出版社,1999.
[6]李江,常葆林.嵌入式操作系統(tǒng)設(shè)計中的若干問題[J].計算機工程,2000(6):88-89,94.
[7]阮友亮,沈元隆.GSM手機軟件開發(fā)淺析[J].通信管理與技術(shù),2003(4):49-50.
[8]張堯?qū)W,史美林.計算機操作系統(tǒng)教程[M].2版.北京:清華大學(xué)出版社,2000.
[9]臧懷泉,范亞偉.基于嵌入式操作系統(tǒng)的應(yīng)用軟件設(shè)計[J].燕山大學(xué)學(xué)報,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
薛醫(yī)貴(1981—),女,陜西蒲城人,講師。研究方向:計算機科學(xué)。