国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

嵌入式遠(yuǎn)程音樂(lè)播放器的設(shè)計(jì)

2015-05-30 10:48李鵬鵬徐偉業(yè)
中國(guó)新通信 2015年15期
關(guān)鍵詞:遠(yuǎn)程控制

李鵬鵬 徐偉業(yè)

【摘要】 隨著嵌入式系統(tǒng)的不斷發(fā)展和網(wǎng)絡(luò)的廣泛普及,智能家居也逐步走入生活。論文從智能家居的理念出發(fā),以現(xiàn)代網(wǎng)絡(luò)為橋梁,以智能手機(jī)為控制平臺(tái),以家居音樂(lè)播放器為控制對(duì)象,對(duì)嵌入式音樂(lè)播放器的開(kāi)發(fā)以及遠(yuǎn)程控制作了詳細(xì)的分析與論述,并給出系統(tǒng)關(guān)鍵技術(shù)的設(shè)計(jì)思路和設(shè)計(jì)過(guò)程。

【關(guān)鍵詞】 安卓系統(tǒng) 嵌入式ARM 遠(yuǎn)程控制

引言

智能家居控制系統(tǒng)以家居電器及家電設(shè)備為主要控制對(duì)象,利用綜合布線技術(shù)、網(wǎng)絡(luò)通信技術(shù)、安全防范技術(shù)、自動(dòng)控制技術(shù)、音視頻技術(shù)將家居生活有關(guān)的設(shè)施進(jìn)行高效集成,構(gòu)建高效的住宅設(shè)施與家庭日程事務(wù)的控制管理系統(tǒng),提升家居智能、安全、便利、舒適,并實(shí)現(xiàn)環(huán)??刂葡到y(tǒng)平臺(tái)。其中家居電器控制采用弱電控制強(qiáng)電方式,既安全又智能,可以用遙控、定時(shí)等多種智能控制方式實(shí)現(xiàn)對(duì)在家里飲水機(jī)、插座、空調(diào)、地暖、投影機(jī)、音像設(shè)備以及新風(fēng)系統(tǒng)等進(jìn)行智能控制,用以避免飲水機(jī)在夜晚反復(fù)加熱影響水質(zhì),在外出時(shí)斷開(kāi)插排通電,避免電器發(fā)熱引發(fā)安全隱患等等。本系統(tǒng)設(shè)計(jì)正是在這樣的背景下產(chǎn)生,并以家居音頻設(shè)備為控制對(duì)象。整個(gè)系統(tǒng)的設(shè)計(jì)是通過(guò)隨身攜帶的智能手機(jī)利用無(wú)線網(wǎng)絡(luò)和家庭無(wú)線路由對(duì)嵌入式ARM為核心的音樂(lè)播放器進(jìn)行遠(yuǎn)程操控。下文是對(duì)整個(gè)系統(tǒng)的設(shè)計(jì)原理和設(shè)計(jì)過(guò)程的詳細(xì)論述。

一、總體方案設(shè)計(jì)

整個(gè)系統(tǒng)由智能手機(jī)、路由器、開(kāi)發(fā)板三個(gè)部分組成。智能手機(jī)通過(guò)連接無(wú)線信號(hào)實(shí)現(xiàn)與開(kāi)發(fā)板的通信,這里由于所使用的mini2440開(kāi)發(fā)板缺少無(wú)線網(wǎng)卡的支持,所以路由器充當(dāng)了無(wú)線網(wǎng)卡的作用,負(fù)責(zé)發(fā)射無(wú)線信號(hào):

1.1 硬件方案

硬件平臺(tái)選用友善之臂提供的mini2440開(kāi)發(fā)板,處理器采用基于ARM9內(nèi)核的Samsung S3C2440。由于S3C2440內(nèi)部配有64M SDRAM,256M NandFlash,所以完全可以勝任內(nèi)部的音頻解碼任務(wù)。另外,為了保證系統(tǒng)運(yùn)行時(shí)的穩(wěn)定性,采用了專業(yè)的CPU內(nèi)核電源芯片和復(fù)位芯片。相對(duì)來(lái)說(shuō),手機(jī)的選擇比較自由,只要是安卓系統(tǒng)的智能手機(jī)都可以,在APP測(cè)試時(shí),要求手機(jī)的安卓操作系統(tǒng)是Android2.3版本或以上。

1.2軟件方案

要將硬件設(shè)備連接并且工作,關(guān)鍵是軟件的開(kāi)發(fā),因此軟件開(kāi)發(fā)環(huán)境的選擇很重要。整個(gè)系統(tǒng)的軟件開(kāi)發(fā)主要包括操作系統(tǒng)的裁剪和移植、音頻播放程序的開(kāi)發(fā)、Android應(yīng)用的開(kāi)發(fā)三個(gè)部分。音頻解碼采用軟件解碼。主要是利用CPU進(jìn)行音頻數(shù)據(jù)的解碼,這需要在Linux操作系統(tǒng)下移植一個(gè)開(kāi)源音頻解碼庫(kù)--madplay。采用軟件解碼雖然增加了CPU的開(kāi)銷,但大大縮短了開(kāi)發(fā)時(shí)間,而且不需要考慮解碼芯片的選擇和驅(qū)動(dòng)問(wèn)題。

智能手機(jī)選用了安卓的操作系統(tǒng),主要考慮到安卓系統(tǒng)是一種基于Linux的自由及開(kāi)放源代碼的操作系統(tǒng),且市場(chǎng)占有量較高,2011年第一季度,Android在全球的市場(chǎng)份額首次超過(guò)塞班系統(tǒng),躍居全球第一。 2013年的第四季度,Android平臺(tái)手機(jī)的全球市場(chǎng)份額已經(jīng)達(dá)到78.1%,全世界采用這款系統(tǒng)的設(shè)備數(shù)量已經(jīng)達(dá)到10億臺(tái),2014年第一季度Android平臺(tái)已占所有移動(dòng)廣告流量來(lái)源的42.8%,首度超越iOS(運(yùn)營(yíng)收入不及iOS)。

二、軟件開(kāi)發(fā)

2.1 操作系統(tǒng)裁剪

操作系統(tǒng)的裁剪是系統(tǒng)設(shè)計(jì)的重點(diǎn),一個(gè)精簡(jiǎn)的操作系統(tǒng)不僅可以加快系統(tǒng)的開(kāi)機(jī)時(shí)間,還能減小CPU的開(kāi)銷,使系統(tǒng)運(yùn)行的更加流暢。操作系統(tǒng)由uboot、內(nèi)核、文件系統(tǒng)組成,需要裁剪的部分包括內(nèi)核(去掉不必要的配置)以及文件系統(tǒng)

2.2 音頻解碼數(shù)據(jù)庫(kù)的移植

madplay是linux下的開(kāi)源音樂(lè)播放器,利用開(kāi)源解碼庫(kù)libmad實(shí)現(xiàn)音頻的編解碼,目前該播放器除了不支持網(wǎng)絡(luò)歌曲的播放外,其余功能都支持,如快進(jìn)、暫停、繼續(xù)等。開(kāi)發(fā)人員需要自己開(kāi)發(fā)一個(gè)自己的可視化界面或者播放器的管理程序,這樣使用起來(lái)才方便、快捷。系統(tǒng)設(shè)計(jì)時(shí)需要在開(kāi)發(fā)板的ARM內(nèi)核上運(yùn)行madplay可執(zhí)行文件,所以移植madplay也是本次設(shè)計(jì)的重要環(huán)節(jié)。

2.3 音樂(lè)播放器設(shè)計(jì)

播放器的核心代碼就是音樂(lè)的播放程序,在整個(gè)行程序運(yùn)行時(shí)的內(nèi)部主控流程:

父進(jìn)程負(fù)責(zé)接收按鍵信息或者socket信息。監(jiān)聽(tīng)部分由select()函數(shù)完成,當(dāng)按鍵或者socket文件描述符發(fā)生變化的時(shí)候,父進(jìn)程首先判斷按鍵或者socket信息,根據(jù)不同的信息向子進(jìn)程或者孫進(jìn)程發(fā)送不同的信號(hào)。如,父進(jìn)程收到的按鍵信息是“暫停”,調(diào)用kill()函數(shù)向子進(jìn)程和孫進(jìn)程發(fā)送SIGSTOP信號(hào)就可以暫停音樂(lè)的播放。

2.4 Android應(yīng)用程序設(shè)計(jì)

Android操作系統(tǒng)下設(shè)計(jì)控制軟件可簡(jiǎn)可繁,這里的界面的設(shè)計(jì)由于缺少專業(yè)UI的支持,所以設(shè)計(jì)的比較簡(jiǎn)單。用到的控件主要有Button、TextView、ScrollView、ListView、TabHost,其中前面4個(gè)采用常規(guī)控制,調(diào)用簡(jiǎn)單,只需在activity_main.xml文件中調(diào)用并設(shè)置相應(yīng)的屬性(如長(zhǎng)、寬、在頁(yè)面中的位置等)即可。TabHost用起來(lái)有點(diǎn)麻煩,這里需要注意兩點(diǎn):

在開(kāi)發(fā)自己的app過(guò)程中,主要難點(diǎn)在于新的線程接收服務(wù)器返回的信息,其主要的代碼如下:

Android部分的設(shè)計(jì)邏輯明了,算法簡(jiǎn)單。作為客戶端或者命令發(fā)送端,只需向服務(wù)器發(fā)送自己的指令即可。

三、性能測(cè)試

系統(tǒng)的運(yùn)行需要開(kāi)發(fā)板、路由器以及APP三者的配合,路由器和開(kāi)發(fā)板之間通過(guò)網(wǎng)線連接。需要設(shè)置路由器和開(kāi)發(fā)板在同一個(gè)網(wǎng)段。測(cè)試中,路由器IP為192.168.1.10,開(kāi)發(fā)板IP為192.168.1.22。經(jīng)測(cè)試,播放器可以通過(guò)按鍵或者APP實(shí)現(xiàn)歌曲切換、音量調(diào)節(jié)、歌曲信息顯示、播放模式的切換。并且經(jīng)過(guò)裁剪的操作系統(tǒng)啟動(dòng)速度快,從系統(tǒng)上電到程序運(yùn)行僅需要20秒。

本系統(tǒng)設(shè)計(jì)關(guān)鍵在于操作系統(tǒng)的裁剪移植以及加入了手機(jī)APP的控制。省去了QT以及內(nèi)核中不必要的模塊,使播放器的開(kāi)機(jī)速度更加快,同時(shí)也減小了CPU的資源消耗;加入手機(jī)APP的控制,符合目前智能家居的發(fā)展趨勢(shì),使得播放器使用起來(lái)更加的方便、人性化。

系統(tǒng)還存在一個(gè)問(wèn)題未能很好解決。歌曲播放完畢并且切換到下一首后,手機(jī)APP測(cè)并不能實(shí)現(xiàn)播放曲目的更新。

目前,APP上顯示的歌曲信息只有三種情況會(huì)更新:點(diǎn)擊上一首或者下一首、暫停后繼續(xù)、點(diǎn)擊開(kāi)始播放。試著修改代碼,子進(jìn)程在實(shí)現(xiàn)共享內(nèi)存更新后將歌曲信息發(fā)送給APP,但是問(wèn)題來(lái)了,APP和開(kāi)發(fā)板的通信是基于UDP協(xié)議,即無(wú)連接,通俗的說(shuō),每次通信過(guò)程,只有當(dāng)APP發(fā)送數(shù)據(jù)給開(kāi)發(fā)板,開(kāi)發(fā)板收到數(shù)據(jù)后同時(shí)記下了客戶端(APP)地址信息,通過(guò)地址信息將數(shù)據(jù)返回給APP。所以如果系統(tǒng)上電后APP并未接入網(wǎng)絡(luò),開(kāi)發(fā)板發(fā)送數(shù)據(jù)時(shí)將會(huì)報(bào)錯(cuò)。感興趣的讀者可以在APP發(fā)送數(shù)據(jù)給開(kāi)發(fā)板后設(shè)定一個(gè)標(biāo)志位,然后根據(jù)這個(gè)標(biāo)志位判斷播放下一首歌曲的時(shí)候是否要將歌曲信息發(fā)送給APP。

參 考 文 獻(xiàn)

[1] Matt Welsh & Lar Kaufman,linux權(quán)威指南[M] 中國(guó)電力出版社 2000 年3月

[2]科波特,LINUX設(shè)備驅(qū)動(dòng)程序[M]中國(guó)電力出版社

[3]Robert Love,linux內(nèi)核設(shè)計(jì)與實(shí)現(xiàn)[M] 機(jī)械工業(yè)出版社 2011年8月

[4]游雙,linux高性能服務(wù)器編程[M] 機(jī)械工業(yè)出版社 2013年6月

猜你喜歡
遠(yuǎn)程控制
基于SMS的汽車遠(yuǎn)程智能控制系統(tǒng)設(shè)計(jì)
智能可調(diào)節(jié)動(dòng)作識(shí)別型節(jié)能風(fēng)扇的設(shè)計(jì)
水冷發(fā)射機(jī)冷卻系統(tǒng)故障分析及解決方案
鹽城地區(qū)設(shè)計(jì)項(xiàng)目與課堂遠(yuǎn)程互動(dòng)的方式方法研究
基于GSM的遠(yuǎn)程控制系統(tǒng)
短波發(fā)射臺(tái)節(jié)目傳輸控制系統(tǒng)及技術(shù)改造
變電站遠(yuǎn)程監(jiān)控系統(tǒng)的設(shè)計(jì)
發(fā)射機(jī)自動(dòng)控制系統(tǒng)分析及自動(dòng)化改造