當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀] 嵌入式系統(tǒng)是以應(yīng)用為中心、以計(jì)算機(jī)技術(shù)為基礎(chǔ)、軟件硬件可裁剪、適應(yīng)應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗嚴(yán)格要求的專(zhuān)用計(jì)算機(jī)系統(tǒng)。近年來(lái),隨著微處理器技術(shù)、DSP技術(shù)、多媒體編解碼技術(shù)以

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


1 系統(tǒng)概述

本系統(tǒng)以UP-TECH S3C2410 DVK1.1 為開(kāi)發(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),并且初始化開(kā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)程序通過(guò)嵌入式Linux 操作系統(tǒng)進(jìn)行調(diào)用,然后完成應(yīng)用的功能,為上層的接口層和應(yīng)用層提供服務(wù)[5].

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

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

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

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

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

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

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

2.1 硬件開(kāi)發(fā)平臺(tái)介紹

硬件平臺(tái)采用博創(chuàng)UP-TECH S3C2410 DVK1.1 開(kāi)發(fā)板,處理器類(lèi)型:Samsung S3C2410.主頻:203MHz。

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

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

2.2 軟件開(kāi)發(fā)平臺(tái)介紹

在系統(tǒng)層,由于UP-TECH S3C2410 DVK1.1 開(kāi)發(fā)板提供原始的系統(tǒng)(vivi、linux-2.4、root.cramfs)版本低,因此,針對(duì)多媒體娛樂(lè)系統(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 和可讀可寫(xiě)的yaffs 文件系統(tǒng),易于系統(tǒng)的開(kāi)發(fā)。并配置了LCD 屏驅(qū)動(dòng)、網(wǎng)卡驅(qū)動(dòng)、SD 卡等驅(qū)動(dòng)。

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

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

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

應(yīng)用層軟件的設(shè)計(jì)主要包括兩個(gè)模塊:多媒體播放器以及游戲模塊。用戶(hù)主界面設(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開(kāi)發(fā)前端程序(綠色部分)。

圖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)在于其開(kāi)源性。

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

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

3.1.2 前端程序的設(shè)計(jì)與播放器的實(shí)現(xiàn)

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

播放列表用來(lái)播放用戶(hù)加載的多媒體文件。

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


本模塊是建立一個(gè)Qt GUI 程序。然后用一個(gè)label控件來(lái)播放視屏,用一個(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 所示:

圖4 播放器軟件流程圖。

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

QProcess *process = new QProcess();

process->setProcessChannelMode(QProcess::MergedChannels);

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

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

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

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

通過(guò)這段代碼可以設(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("volume XX 1 "); //音量設(shè)置成指定值

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

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

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

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

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

3.2 游戲模塊的設(shè)計(jì)

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

游戲開(kāi)始時(shí)使用隨機(jī)函數(shù)在指定區(qū)域內(nèi)顯示一個(gè)磚塊,點(diǎn)擊射擊按鈕時(shí)通過(guò)setAngle 和setForce 設(shè)置的角度和力度,使用shoot()進(jìn)行射擊,通過(guò)發(fā)出的擊中hit()或未擊中m

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶(hù)希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話(huà)語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉