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