《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 嵌入式掌上娛樂系統設計方案
嵌入式掌上娛樂系統設計方案
摘要: 在UP-TECHS3C2410DVK1.1開發平臺下,提出了一個觸摸式的嵌入式掌上娛樂系統設計方案。本系統主要包括多媒體播放器和游戲的基本功能。計了嵌入式游戲,增加了系統的娛樂性。使用觸摸屏方便作為人機交互的平臺。采用跨平臺性能良好的Qt4 設計了應用程序和人機界面,界面友好,漢化顯示,美觀,操作簡便,運行流暢。
Abstract:
Key words :

在UP-TECH S3C2410 DVK1.1 開發平臺下,提出了一個觸摸式的嵌入式掌上娛樂系統設計方案。本系統主要包括多媒體播放器和游戲的基本功能。本系統可以播放現有的大多數的音頻視頻文件;設計了嵌入式游戲,增加了系統的娛樂性。使用觸摸屏方便作為人機交互的平臺。采用跨平臺性能良好的Qt4 設計了應用程序和人機界面,界面友好,漢化顯示,美觀,操作簡便,運行流暢。整個系統模塊化設計,充分考慮了軟件系統自身所占的存儲空間以及可擴展性,具有廣闊的市場前景。

嵌入式系統是以應用為中心、以計算機技術為基礎、軟件硬件可裁剪、適應應用系統對功能、可靠性、成本、體積、功耗嚴格要求的專用計算機系統。近年來,隨著微處理器技術、DSP 技術、多媒體編解碼技術以及嵌入式技術的發展,多媒體娛樂終端已經成為消費性電子產品的熱點。同時,逐漸成熟的市場隨著MP3 在市場上取得的巨大成功,以及MP4、數字電視、3G 通訊等相關技術的起步,在未來幾年內都將會得到快速發展。多媒體終端正是數字信息產業的一個重要組成部分, 所以在這個背景下,MultimediaTerminal 蘊含著極大地發展潛力。本文是基于Linux 嵌入式操作系統在UP-TECHS3C2410 DVK1.1 開發平臺下設計并實現了一個高性能、低功耗、低成本的嵌入式掌上娛樂系統。

1 系統概述

本系統以UP-TECH S3C2410 DVK1.1 為開發平臺,使用嵌入式linux 作為操作系統。

本系統的實現包括兩個方面,一是底層系統的搭建。本系統是在通用的嵌入式Linux 操作系統上進行適當的裁剪,使其符合系統的硬件平臺,并且初始化開發底層的驅動,實現了對系統的控制以及數據的存儲和傳輸。二是應用層的實現。

系統的底層包括文件系統的搭建以及各種接口部件的驅動程序,這些驅動程序通過嵌入式Linux 操作系統進行調用,然后完成應用的功能,為上層的接口層和應用層提供服務[5].

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

系統的最上層就是直接面向用戶的應用層。該層采用QT4 設計,向用戶提供了精美的用戶界面,用戶可以通過觸摸屏方便的調用相關功能。系統的軟件結構框圖如圖1 所示:

圖1 系統的軟件結構框圖

圖1 系統的軟件結構框圖

應用層的設計是本文主要的開發工作,主要包含以下幾種功能模塊:

① 多媒體功能模塊:調用MPlayer 播放器對系統內存或者USB 接口中的外存定位對應的體文件,并將其解碼;視頻、視頻文件可以全屏播放/最小播放。幾乎可以播放市面上現存的所有的音頻、視頻文件。

② 娛樂游戲功能:提供了幾個界面友好有趣的游戲,增加系統的娛樂性。

2 開發平臺

2.1 硬件開發平臺介紹

硬件平臺采用博創UP-TECH S3C2410 DVK1.1 開發板,處理器類型:Samsung S3C2410.主頻:203MHZ。

它適用于工業控制、移動通信設備、醫療儀器等多種場合,外擴64MB NAND FLASH 和64M SDRAM,提供USB2.0 接口與計算機進行高速通信;該平臺集成了大尺寸LCD 觸摸屏,型號:LQ080V3DG01,分辨率:640*480 像素,這也是選擇它作為開發平臺的重要原因。系統硬件結構框圖如圖2 所示。

圖2 系統硬件結構框圖

圖2 系統硬件結構框圖



2.2 軟件開發平臺介紹

在系統層,由于UP-TECH S3C2410 DVK1.1 開發板提供原始的系統(vivi、linux-2.4、root.cramfs)版本低,因此,針對多媒體娛樂系統,裁剪移植了適合本系統的Uboot-1.1.6、linux-2.6.24 內核和yaffs 文件系統。該系統使用較為通用的bootloader:UBoot,網絡資源較多的內核linux2.6 和可讀可寫的yaffs 文件系統,易于系統的開發。并配置了LCD 屏驅動、網卡驅動、SD 卡等驅動。

在應用層,采用QT SDK 設計所有的應用程序。

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

3 實現原理

應用層軟件的設計主要包括兩個模塊:多媒體播放器以及游戲模塊。用戶主界面設計了一個主框架,然后將其他功能模塊的圖標放在該框架內,完成了整體的規劃設計。下面詳細介紹這兩個功能模塊的設計與實現。

3.1 播放器的實現

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

圖3 播放器結構圖

圖3 播放器結構圖

3.1.1 后端程序簡介

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

Mplayer 另一個重要特點在于其開源性。

Realplayer,Windows Media Player,Quick Time 等許多播放軟件都是性能優秀的播放軟件,但由于它們都不開放源代碼,給移植帶來了麻煩。同時MPlayer 還具有良好的移植性, 可以移植到許多非X86 平臺上,MPlayer 軟件包中含有針對ARM 架構的優化代碼,這些代碼利用ARM 的特性加快了對媒體的處理速度。

基于以上多個原因,本系統選擇了MPlayer 作為娛樂終端的播放軟件。本系統通過移植Mplayer 來實現對視頻的播放功能。Mplayer 編、解碼模塊,是系統的音、視頻處理中心,在mplayer 的編解碼庫中,包含的大量的音、視頻格式處理程序,經過編譯優化過的mplayer 可以完成對大多數音、視頻格式高效的編解碼工作。

3.1.2 前端程序的設計與播放器的實現

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

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

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

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

3.1.3 播放功能設計

播放器實現的軟件流程圖如圖4 所示:

圖4 播放器軟件流程圖

圖4 播放器軟件流程圖。

通過定義一個QProcess 對象調用已編譯好的Mplayer。

QProcess *process = new QProcess();

process->setProcessChannelMode(QProcess::MergedChannels);

Process->start("mplayer –ac –mad xxxxx");

在命令中添加 -slave 和 -quiet 就可以通過命令設置Mplayer 實現相應的功能。Process->start("mplayer–slave –quiet –ac –mad xxxxx")。

下面對播放器的暫停播放功能和音量調節進行介紹。

① 播放暫停功能設計

通過這段代碼可以設置Mplayer 暫停:process->write("pause ");執行這段代碼的時候在播放狀態下就會暫停,暫停狀態下就會繼續播放。

② 音量調節

下面代碼即可實現音量調節的功能:

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

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

Process->write("volume XX 1 "); //音量設置成指定值

該系統使用如下代碼實現音量調節:

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

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

系統最終實現的實驗效果圖如圖5 所示:

圖5 播放器模塊實驗結果圖

圖5 播放器模塊實驗結果圖

3.2 游戲模塊的設計

本系統設計了一個打磚塊游戲。通過建立一個打磚塊的游戲類CannonField,包含角度int angle、力度int force、是否正在射擊bool isShooting 等成員,具有設置角度setAngle(int angle)、設置力度setForce(intforce)、射擊shoot()、運動軌跡shotRect()、游戲控制newTarget()、 setGameOver()、restartGame()等槽函數,能發出擊中hit() 、未擊中missed() 、角度變化angleChanged(int newAngle) 力度變化force Changed(int newForce)等信號。

游戲開始時使用隨機函數在指定區域內顯示一個磚塊,點擊射擊按鈕時通過setAngle 和setForce 設置的角度和力度,使用shoot()進行射擊,通過發出的擊中hit()或未擊中missed()信號來作出相應的動作。仿真效果圖如圖6 所示:

圖6 游戲模塊實驗結果圖

圖6 游戲模塊實驗結果圖

4 總結

本系統采用開源的Linux 操作系統和QT4 界面設計工具,整個系統采用模塊化設計,具有良好的可擴展性。硬件平臺采用的是 UP-TECH S3C2410 DVK1.1嵌入式系統,該芯片采用ARM 架構,其獨特的架構設計具有功耗低、功能強的特點,因此非常適合用于手持式設備;采用LCD 觸摸屏與用戶進行交互,使用簡單,符合便攜式終端的發展趨勢。

 

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 日本资源在线 | 一级黄色片免费看 | 色老头在线视频 | 男女免费网站 | 久久成人黄色 | 91四虎国自产在线播放线 | tom影院亚洲国产一区二区 | 麻豆日韩国产精品欧美在线 | 大黄免费 | 国产综合成人久久大片91 | 中文字幕在线网 | 麻豆果冻传媒新剧国产短视频 | 最新日韩伦理片免费 | 国产一级毛片网站 | 性欧美videos粗暴| 日韩精品一区在线 | 精品视频免费 | 欧美日韩操 | 老湿影院免费体验 | 亚洲制服丝袜第一页 | 午夜视频一区二区三区 | 成人网视频在线观看免费 | 五月天婷婷激情网 | 午夜 福利 视频 | 男女午夜视频 | 天天干天天干天天干天天 | 日韩中文字幕精品 | 日日操夜夜骑 | 亚洲无线码一区在线观看 | ririricc在线观看麻豆 | 亚洲无限乱码一二三四区 | 中文字幕有码在线播放 | 在线看的网站 | 国产 第1页 | 日日夜夜天天人人 | 成人国内精品久久久久影 | 亚洲欧美日韩高清综合678 | 波多野结衣中出在线 | 波多结衣一区二区三区 | 欧美成人午夜在线全部免费 | 免费无毒片在线观看 |