《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于Linux嵌入式操作系統(tǒng)掌上娛樂系統(tǒng)設(shè)計(jì)方案
基于Linux嵌入式操作系統(tǒng)掌上娛樂系統(tǒng)設(shè)計(jì)方案
摘要: 本文是基于Linux嵌入式操作系統(tǒng)在UP-TECHS3C2410DVK1。1開發(fā)平臺(tái)下設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)高性能,、低功耗,、低成本的嵌入式掌上娛樂系統(tǒng),。
Abstract:
Key words :

近年來,,隨著微處理器技術(shù),、DSP技術(shù),、多媒體編解碼技術(shù)以及嵌入式技術(shù)的發(fā)展,,多媒體娛樂終端已經(jīng)成為消費(fèi)性電子產(chǎn)品的熱點(diǎn),。同時(shí),,逐漸成熟的市場(chǎng)隨著MP3在市場(chǎng)上取得的巨大成功,以及MP4,、數(shù)字電視,、3G通訊等相關(guān)技術(shù)的起步,,在未來幾年內(nèi)都將會(huì)得到快速發(fā)展。

嵌入式系統(tǒng)是以應(yīng)用為中心,、以計(jì)算機(jī)技術(shù)為基礎(chǔ),、軟件硬件可裁剪、適應(yīng)應(yīng)用系統(tǒng)對(duì)功能,、可靠性,、成本、體積,、功耗嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng),。

多媒體終端正是數(shù)字信息產(chǎn)業(yè)的一個(gè)重要組成部分,所以在這個(gè)背景下,,MultimediaTerminal蘊(yùn)含著極大地發(fā)展?jié)摿Α?/p>

本文是基于Linux嵌入式操作系統(tǒng)在UP-TECHS3C2410DVK1,。1開發(fā)平臺(tái)下設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)高性能、低功耗,、低成本的嵌入式掌上娛樂系統(tǒng),。

1系統(tǒng)概述

本系統(tǒng)以UP-TECHS3C2410DVK1。1為開發(fā)平臺(tái),,使用嵌入式linux作為操作系統(tǒng),。

本系統(tǒng)的實(shí)現(xiàn)包括兩個(gè)方面:

一是底層系統(tǒng)的搭建。本系統(tǒng)是在通用的嵌入式Linux操作系統(tǒng)上進(jìn)行適當(dāng)?shù)牟眉?,使其符合系統(tǒng)的硬件平臺(tái),,并且初始化開發(fā)底層的驅(qū)動(dòng),實(shí)現(xiàn)了對(duì)系統(tǒng)的控制以及數(shù)據(jù)的存儲(chǔ)和傳輸,。

二是應(yīng)用層的實(shí)現(xiàn),。

系統(tǒng)的底層包括文件系統(tǒng)的搭建以及各種接口部件的驅(qū)動(dòng)程序,這些驅(qū)動(dòng)程序通過嵌入式Linux操作系統(tǒng)進(jìn)行調(diào)用,,然后完成應(yīng)用的功能,,為上層的接口層和應(yīng)用層提供服務(wù)。

中間的嵌入式GUI為接口層,,采用QT4作為用戶GUI的界面庫(kù),。QT4是基于服務(wù)器-客戶端的一種用戶界面中間件,提供了豐富的功能控件和精美的界面設(shè)計(jì)功能,,可以便捷的設(shè)計(jì)出所需要的各種功能模塊,。

系統(tǒng)的最上層就是直接面向用戶的應(yīng)用層。該層采用QT4設(shè)計(jì),,向用戶提供了精美的用戶界面,,用戶可以通過觸摸屏方便的調(diào)用相關(guān)功能。系統(tǒng)的軟件結(jié)構(gòu)框圖如圖1所示:

9.jpg

圖1系統(tǒng)的軟件結(jié)構(gòu)框圖

應(yīng)用層的設(shè)計(jì)是本文主要的開發(fā)工作,,主要包含以下幾種功能模塊:

①多媒體功能模塊:調(diào)用MPlayer播放器對(duì)系統(tǒng)內(nèi)存或者USB接口中的外存定位對(duì)應(yīng)的體文件,,并將其解碼;視頻,、視頻文件可以全屏播放/最小播放。幾乎可以播放市面上現(xiàn)存的所有的音頻,、視頻文件,。

②娛樂游戲功能:提供了幾個(gè)界面友好有趣的游戲,增加系統(tǒng)的娛樂性,。

2開發(fā)平臺(tái)

2,。1硬件開發(fā)平臺(tái)介紹

硬件平臺(tái)采用博創(chuàng)UP-TECHS3C2410DVK1。1開發(fā)板,,處理器類型:SamsungS3C2410,。主頻:203MHZ。

它適用于工業(yè)控制,、移動(dòng)通信設(shè)備,、醫(yī)療儀器等多種場(chǎng)合,外擴(kuò)64MBNANDFLASH和64MSDRAM,,提供USB2,。0接口與計(jì)算機(jī)進(jìn)行高速通信;該平臺(tái)集成了大尺寸LCD觸摸屏,型號(hào):LQ080V3DG01,,分辨率:640*480像素,,這也是選擇它作為開發(fā)平臺(tái)的重要原因。系統(tǒng)硬件結(jié)構(gòu)框圖如圖2所示,。

10.jpg

圖2系統(tǒng)硬件結(jié)構(gòu)框圖

2,。2軟件開發(fā)平臺(tái)介紹

在系統(tǒng)層,由于UP-TECHS3C2410DVK1,。1開發(fā)板提供原始的系統(tǒng)(vivi,、linux-2。4,、root,。cramfs)版本低,因此,,針對(duì)多媒體娛樂系統(tǒng),,裁剪移植了適合本系統(tǒng)的Uboot-1。1,。6,、linux-2。6,。24內(nèi)核和yaffs文件系統(tǒng),。該系統(tǒng)使用較為通用的bootloader:UBoot,網(wǎng)絡(luò)資源較多的內(nèi)核linux2。6和可讀可寫的yaffs文件系統(tǒng),,易于系統(tǒng)的開發(fā)。并配置了LCD屏驅(qū)動(dòng),、網(wǎng)卡驅(qū)動(dòng),、SD卡等驅(qū)動(dòng)。

在應(yīng)用層,,采用QTSDK設(shè)計(jì)所有的應(yīng)用程序,。

Qt是一個(gè)跨平臺(tái)的C++圖形用戶界面(GUI)庫(kù),包括跨平臺(tái)類庫(kù),、集成開發(fā)工具和跨平臺(tái)IDE,。使用Qt"一次開發(fā),多次編譯",,無須重新編寫源代碼,,便可跨不同桌面和嵌入式操作系統(tǒng)部署這些應(yīng)用程序。

3實(shí)現(xiàn)原理

應(yīng)用層軟件的設(shè)計(jì)主要包括兩個(gè)模塊:多媒體播放器以及游戲模塊,。用戶主界面設(shè)計(jì)了一個(gè)主框架,,然后將其他功能模塊的圖標(biāo)放在該框架內(nèi),完成了整體的規(guī)劃設(shè)計(jì),。下面詳細(xì)介紹這兩個(gè)功能模塊的設(shè)計(jì)與實(shí)現(xiàn),。

3。1播放器的實(shí)現(xiàn)

對(duì)于音頻和視頻的播放,,本系統(tǒng)使用QT設(shè)計(jì)一個(gè)前端播放,、控制界面,并使用Mplayer作為后端程序,,能播放mp3,、ogg、ogm,、wma,、wav、asf,、au,、avi、mpeg,、mpg,、mv1、mov,、wmv,、pls、m3u、mp4,、m4a等音頻和視頻格式,。播放器模塊的結(jié)構(gòu)圖如圖3所示,播放器使用Mplayer作為后端程序(紅色部分),,使用QT4開發(fā)前端程序(綠色部分),。

播放器結(jié)構(gòu)圖

圖3播放器結(jié)構(gòu)圖

3。1,。1后端程序簡(jiǎn)介

本系統(tǒng)使用Mplayer作為其后端程序,。MPlayer被評(píng)為L(zhǎng)inux下的最佳媒體播放工具,不需要任何系統(tǒng)解碼器就可以播放包括視頻,、音頻,、流媒體、廣播,、電視等各種媒體,。

Mplayer另一個(gè)重要特點(diǎn)在于其開源性。

Realplayer,,WindowsMediaPlayer,,QuickTime等許多播放軟件都是性能優(yōu)秀的播放軟件,但由于它們都不開放源代碼,,給移植帶來了麻煩,。同時(shí)MPlayer還具有良好的移植性,可以移植到許多非X86平臺(tái)上,,MPlayer軟件包中含有針對(duì)ARM架構(gòu)的優(yōu)化代碼,,這些代碼利用ARM的特性加快了對(duì)媒體的處理速度。

基于以上多個(gè)原因,,本系統(tǒng)選擇了MPlayer作為娛樂終端的播放軟件,。本系統(tǒng)通過移植Mplayer來實(shí)現(xiàn)對(duì)視頻的播放功能。Mplayer編,、解碼模塊,,是系統(tǒng)的音、視頻處理中心,,在mplayer的編解碼庫(kù)中,,包含的大量的音、視頻格式處理程序,,經(jīng)過編譯優(yōu)化過的mplayer可以完成對(duì)大多數(shù)音,、視頻格式高效的編解碼工作。

3,。1,。2前端程序的設(shè)計(jì)與播放器的實(shí)現(xiàn)

主界面窗口有一個(gè)顯示屏和一些控制按鈕,,包括播放、暫停,、下一首,、上一首、音量調(diào)整以及播放進(jìn)度條,。文件操作窗口可以使用戶選擇要播放的文件,。

播放列表用來播放用戶加載的多媒體文件。

MPlayer默認(rèn)全屏播放,,但在GUI中一般都是指定區(qū)域或者控制來播放。這樣顯得美觀,,MPlayer支持在指定的X窗口播放的功能,。用-wid參數(shù)告訴窗口ID即可。例如:mplayertest,。mpg-wid0x00029#0x0029是XID,,而QT的控件都是從QWidget繼承下來,因此它本身也有wid,,這樣只要用QWidget::winID()取出WID,,即可實(shí)現(xiàn)在指定窗口播放視頻的功能。

本模塊是建立一個(gè)QtGUI程序,。然后用一個(gè)label控件來播放視屏,,用一個(gè)進(jìn)度條顯示播放的進(jìn)度,用按鍵顯播放,,暫停,,上一首,下一首,,停止和添加資源文件,。然后用一個(gè)Qprocess在后臺(tái)執(zhí)行MPlayer,并把label的WID傳給它,。然后把MPlayer的輸入輸出重定向,,把原本從標(biāo)準(zhǔn)輸入接收命令變成從GUI的接收命令。

3,。1,。3播放功能設(shè)計(jì)

播放器實(shí)現(xiàn)的軟件流程圖如圖4所示:

11.jpg

圖4播放器軟件流程圖。

通過定義一個(gè)QProcess對(duì)象調(diào)用已編譯好的Mplayer,。

QProcess*process=newQProcess();

process->setProcessChannelMode(QProcess::MergedChannels);

Process->start("mplayer–ac–madxxxxx");

在命令中添加-slave和-quiet就可以通過命令設(shè)置Mplayer實(shí)現(xiàn)相應(yīng)的功能,。Process->start("mplayer–slave–quiet–ac–madxxxxx")。

下面對(duì)播放器的暫停播放功能和音量調(diào)節(jié)進(jìn)行介紹,。

①播放暫停功能設(shè)計(jì)

通過這段代碼可以設(shè)置Mplayer暫停:process->write("pause");執(zhí)行這段代碼的時(shí)候在播放狀態(tài)下就會(huì)暫停,,暫停狀態(tài)下就會(huì)繼續(xù)播放,。

②音量調(diào)節(jié)

下面代碼即可實(shí)現(xiàn)音量調(diào)節(jié)的功能:

Process->write("volume-1");//音量減小;

Process->write("volume+1");//音量增加;

Process->write("volumeXX1");//音量設(shè)置成指定值

該系統(tǒng)使用如下代碼實(shí)現(xiàn)音量調(diào)節(jié):

QStringcmd="volume"+QString::number(value)+"1";

process->write(cmd。toLocal8Bit(),。data());

系統(tǒng)最終實(shí)現(xiàn)的實(shí)驗(yàn)效果圖如圖5所示:

系統(tǒng)最終實(shí)現(xiàn)的實(shí)驗(yàn)效果圖

圖5播放器模塊實(shí)驗(yàn)結(jié)果圖

3,。2游戲模塊的設(shè)計(jì)

本系統(tǒng)設(shè)計(jì)了一個(gè)打磚塊游戲。通過建立一個(gè)打磚塊的游戲類CannonField,,包含角度intangle,、力度intforce、是否正在射擊boolisShooting等成員,,具有設(shè)置角度setAngle(intangle),、設(shè)置力度setForce(intforce)、射擊shoot(),、運(yùn)動(dòng)軌跡shotRect(),、游戲控制newTarget()、setGameOver(),、restartGame()等槽函數(shù),,能發(fā)出擊中hit()、未擊中missed(),、角度變化angleChanged(intnewAngle)力度變化forceChanged(intnewForce)等信號(hào),。

游戲開始時(shí)使用隨機(jī)函數(shù)在指定區(qū)域內(nèi)顯示一個(gè)磚塊,點(diǎn)擊射擊按鈕時(shí)通過setAngle和setForce設(shè)置的角度和力度,,使用shoot()進(jìn)行射擊,,通過發(fā)出的擊中hit()或未擊中missed()信號(hào)來作出相應(yīng)的動(dòng)作。仿真效果圖如圖6所示:

12.jpg

圖6游戲模塊實(shí)驗(yàn)結(jié)果圖

4總結(jié)

本系統(tǒng)采用開源的Linux操作系統(tǒng)和QT4界面設(shè)計(jì)工具,,整個(gè)系統(tǒng)采用模塊化設(shè)計(jì),,具有良好的可擴(kuò)展性。硬件平臺(tái)采用的是UP-TECHS3C2410DVK1,。1嵌入式系統(tǒng),,該芯片采用ARM架構(gòu),其獨(dú)特的架構(gòu)設(shè)計(jì)具有功耗低,、功能強(qiáng)的特點(diǎn),,因此非常適合用于手持式設(shè)備;采用LCD觸摸屏與用戶進(jìn)行交互,使用簡(jiǎn)單,,符合便攜式終端的發(fā)展趨勢(shì),。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。