DIY你自己的多功能掌上娛樂終端,附詳細(xì)軟硬件方案設(shè)計(jì)
一、項(xiàng)目概述
1.1 引言
1.1.1項(xiàng)目背景
21世紀(jì)信息化時(shí)代的到來,大量的消費(fèi)類電子產(chǎn)品正在改變著人們的生活。可以隨時(shí)隨地的欣賞音樂、收看電視、閱讀電子書籍、通過藍(lán)牙共享文件等等。目前來看,消費(fèi)電子已經(jīng)成為全球半導(dǎo)體發(fā)展的主要推動力。近年來隨著微處理器技術(shù)、DSP技術(shù)、多媒體解碼技術(shù)以及單片機(jī)技術(shù)的飛速發(fā)展,掌上娛樂終端已經(jīng)成為消費(fèi)類電子的熱點(diǎn)。
1.1.2發(fā)展前景
隨著掌上娛樂終端的不斷發(fā)展,它的產(chǎn)品也越來越豐富,功能也越來越完善,囊括了媒體播放、游戲、電子閱讀、資源共享等,并逐步趨于網(wǎng)絡(luò)化、智能化方向發(fā)展,集多功能于一身的掌上娛樂終端以其便于攜帶、支持多媒體播放、文件共享、GUI美觀方便的全方位的優(yōu)點(diǎn)越來越受到人們的喜愛,擁有廣闊的發(fā)展前景。
1.2 選題動機(jī)/研究意義
現(xiàn)今階段,電子信息產(chǎn)業(yè)在我國有了快速的發(fā)展,然而相比于西方發(fā)達(dá)國家仍有不小的差距。從目前的市場現(xiàn)狀中,MP3、MP4、PDA等形式的娛樂終端的高端地位一直被國外的企業(yè)所壟斷,例如谷歌、蘋果、三星、索尼等,國內(nèi)企業(yè)和這些龍頭企業(yè)相比差距比較大,所生產(chǎn)的產(chǎn)品難以博得廣大消費(fèi)者的支持,然而國外的電子產(chǎn)品相比于國內(nèi)產(chǎn)品價(jià)格昂貴很多,消費(fèi)者的消費(fèi)需求與產(chǎn)品價(jià)格的矛盾日益明顯。
另一方面,盡管MP3、MP4等設(shè)備已經(jīng)日益發(fā)展成熟,但大多數(shù)只能實(shí)現(xiàn)單一或者少量的功能。例如MP3多數(shù)只能實(shí)現(xiàn)音樂播放功能。隨著現(xiàn)代信息化方向的發(fā)展,人們的娛樂需求將會越來越廣泛,單一的娛樂功能將難于滿足人們的娛樂生活。多功能的掌上娛樂終端是一種便攜式的數(shù)碼設(shè)備,集結(jié)了廣大功能于一體,能隨時(shí)隨地、全方位的滿足人們的生活娛樂需要,同時(shí)又有簡易便攜,GUI人機(jī)界面友好等優(yōu)點(diǎn)。選擇多功能掌上娛樂終端為課題,對于改變我國電子信息娛樂產(chǎn)業(yè)發(fā)展落后現(xiàn)狀,完善消費(fèi)類數(shù)字化產(chǎn)品,滿足人們的娛樂需求具有重大研究意義。
二、需求分析
2.1 功能要求
2.1.1 概述
本系統(tǒng)基于EVK1105平臺開發(fā),實(shí)現(xiàn)多功能的掌上娛樂嵌入式系統(tǒng)。所謂嵌入式系統(tǒng),就是利用有限的硬件資源,構(gòu)建一個(gè)功能完善的系統(tǒng)。所以,本系統(tǒng)擯棄嵌入式Linux系統(tǒng),而是基于uC/OS-II實(shí)時(shí)內(nèi)核,構(gòu)建一個(gè)GUI框架,并在uC/OS-II、驅(qū)動層、FAT32文件系統(tǒng)、GUI框架之上構(gòu)建應(yīng)用層程序。在本系統(tǒng)中,GUI框架并不采用uCGUI,MiniGUI等成熟的GUI框架,而是采用自定制的微型GUI框架。因?yàn)閡CGUI、MiniGUI消耗比較多的內(nèi)存,而且窗口是類PC風(fēng)格,不符合本系統(tǒng)的需求。
應(yīng)用層程序可以分為以下10大應(yīng)用:1.音樂播放2.圖片播放3.電子書閱讀4.FM收音機(jī)5.語音錄音
6.游戲7. U盤自動播放8. PC無線觸摸板 9. 電量顯示 10.智能背光調(diào)節(jié)
2.1.2音樂播放
概述:播放MP3等音頻文件。
功能:
播放、暫??刂?/p>
上一曲、下一曲切換
音量控制
播放模式選擇:正常順序播放、全部循環(huán)、單曲循環(huán)、隨機(jī)播放、
播放進(jìn)度、音量顯示
歌詞同步顯示
顯示歌曲的基本信息:標(biāo)題、專輯、演唱者等信息
2.1.3 圖片播放
概述:支持BMP、JPEG等主流圖片格式。
功能:
圖片目錄瀏覽
圖片瀏覽器
圖片縮放功能
幻燈片播放
設(shè)置幻燈片切換時(shí)間間隔
支持圖片分辨率自適應(yīng)屏幕
2.1.4 電子書閱讀
概述:支持TXT格式文本閱讀
功能:
目錄瀏覽
上一頁、下一頁切換
設(shè)置書簽
設(shè)置字體顏色和背景色
自動翻頁
設(shè)置自動翻頁時(shí)間間隔
2.1.5 FM收音機(jī)
概述:支持FM收聽
功能:
自動搜臺
記憶電臺
2.1.6 語音錄音
功能:
語音錄音、錄音時(shí)長取決于存儲介質(zhì)的大小
錄音時(shí)間顯示
2.1.7 游戲
功能:俄羅斯方塊、貪吃蛇等小游戲
2.1.8 U盤自動播放
功能:(1):插入SD卡或者U盤后,可以根據(jù)用戶的選擇來自動播放音樂或者圖片
(2):音樂、圖片播放默認(rèn)為順序播放
2.1.9 PC無線觸摸板
功能:通過拓展觸摸板,對觸摸板的觸摸來實(shí)現(xiàn)無線控制PC的鼠標(biāo), 達(dá)到控制整個(gè)PC的功能。
2.1.10 電量顯示
功能:(1):精確顯示電池電量,仿真電池顯示,顯示剩余電池電量可以支持的音樂時(shí)間、電子閱讀時(shí)間、待機(jī)時(shí)間。
(2):當(dāng)電量不足時(shí)會有窗口提示,提示三次未及時(shí)充電或更換電池會自動進(jìn)入關(guān)機(jī)狀態(tài)。
2.1.11智能背光調(diào)節(jié)
功能:(1):利用傳感器檢測外部光照條件,若是明亮度高則自動降低LCD背光,減少功耗;若是明亮度過低,則自動升高LCD背光,增強(qiáng)視覺效果。
(2):若超過10秒未操作LCD則屏幕變暗,進(jìn)入省電模式,減少功耗。
2.2 系統(tǒng)框圖
圖1 系統(tǒng)架構(gòu)
三、方案設(shè)計(jì)
3.1系統(tǒng)功能實(shí)現(xiàn)原理
3.1.1前提條件:移植uC/OS-II內(nèi)核、建立FAT32文件系統(tǒng)、建立GUI框架、建立系統(tǒng)字庫和文件瀏覽器
因?yàn)槲覀兊膽?yīng)用都是基于實(shí)時(shí)系統(tǒng)實(shí)現(xiàn)的,所以在建立應(yīng)用之前就應(yīng)該搭建好一個(gè)運(yùn)行的操作系統(tǒng)環(huán)境,并配備好應(yīng)用程序運(yùn)行所要支持的文件系統(tǒng)、GUI框架、字庫、文件瀏覽器等基本功能模塊。
uC/OS-II內(nèi)核是一個(gè)基于優(yōu)先級搶占式的,實(shí)時(shí)多任務(wù)操作系統(tǒng)內(nèi)核、具有效率高、消耗內(nèi)存資源小、反應(yīng)速度快、可靠性高等優(yōu)良特點(diǎn),而且大部分代碼用c實(shí)現(xiàn),便于移植,是一個(gè)適合于小型嵌入式系統(tǒng)的實(shí)時(shí)內(nèi)核。對于本系統(tǒng)的移植,只要修改幾處關(guān)鍵代碼就行了。
FAT32文件系統(tǒng)是目前最為流行的文件系統(tǒng)之一,幾乎所的便捷存儲設(shè)備,如U盤,SD卡、microSD卡、miniSD卡都是基于FAT32文件系統(tǒng);而且在嵌入式產(chǎn)品中,如數(shù)碼相機(jī)、MP3、MP4、數(shù)碼相框等產(chǎn)品中,也是基于FAT32文件系統(tǒng)的。所以為了最大的兼容性和普遍性,我們也采用了FAT32文件系統(tǒng)來作為我們的文件系統(tǒng)。對于FAT32文件系統(tǒng)的構(gòu)建,本系統(tǒng)采用了開源的FatFs的FAT32文件系統(tǒng)驅(qū)動庫。文件系統(tǒng)建立成功之后,就可以方便地對SD卡、U盤里面的文件進(jìn)行操作。
GUI框架為自主開發(fā),是基于消息循環(huán)事件驅(qū)動型的GUI框架。下面有圖表詳細(xì)說明。
系統(tǒng)字庫是一個(gè)嵌入式系統(tǒng)的核心之一,所有的文字信息都要經(jīng)過它的處理才能顯示出來。這里我們采用了內(nèi)建字庫的技術(shù),即把字庫文件(包括中文字庫和英文字庫)燒寫在Flash里面。其中對文字的顯示首先要進(jìn)行內(nèi)碼轉(zhuǎn)換,取得在字庫里面的偏移,然后把字模提取出來并顯示在LCD上。
文件瀏覽器是一個(gè)基于GUI框架、文件系統(tǒng)和字庫的應(yīng)用程序,它通過讀取存儲介質(zhì)的文件,并把文件信息形成列表在LCD顯示出來,用戶可以通過選擇鍵來選擇要查看的文件。以下所引用到的目錄文件瀏覽就是基于文件瀏覽器的。
3.1.2系統(tǒng)硬件結(jié)構(gòu)框圖
系統(tǒng)硬件模塊
PC遙控接收端硬件模塊
3.1.3 音樂播放
1. 首先搜索SD卡、或者U盤里面所有音頻文件,然后創(chuàng)建一個(gè)音樂播放列表
2. 讀取播放列表中的音頻文件,并通過GUI的API調(diào)用顯示在LCD上,用戶可以選擇喜歡的歌曲
3. 選定歌曲后,按PLAY鍵開始播放音樂,播放由一個(gè)獨(dú)立的線程來處理,讀取音頻文件的數(shù)據(jù),通過軟件解碼將解碼后的數(shù)據(jù)流送到DAC,并通過音頻功放輸出音頻。播放中的控制信息、信息反饋、播放進(jìn)度和狀態(tài)顯示都通過消息來觸發(fā)。
4. 當(dāng)一首歌播放完后,根據(jù)當(dāng)前的播放模式,用獲取下一首歌曲,然后進(jìn)行下一曲的解碼流程。
3.1.4 圖片播放
1. 目錄文件瀏覽:通過讀取SD卡、或者U盤的圖片文件,把相應(yīng)的文件名字及其它基本信息形成一個(gè)列表在LCD上顯示出來。通過選擇圖片并通過相應(yīng)格式的文件解碼并在LCD顯示出來。
2. 可以選擇上一張、下一張來顯示圖片,并可以進(jìn)行縮放。其中縮放的功能,我們采用frame buffer的技術(shù)。我們在內(nèi)存中創(chuàng)建一個(gè)比屏幕分辨率大的顯存緩沖區(qū)域,并通過對顯存緩沖區(qū)域的局部顯示就可以實(shí)現(xiàn)圖片的放大功能;對于圖片縮小的功能,我們可以采用對顯存緩沖區(qū)的減取樣算法顯示就可以實(shí)現(xiàn)圖片的縮小。
3. 幻燈片播放:通過讀取SD卡、或者U盤的圖片文件,形成一個(gè)文件列表,然后按照播放模式來自動播放圖片,相當(dāng)于數(shù)碼相框。
4. 圖片播放流程:
3.1.5 電子書閱讀
1. 目錄文件瀏覽:通過讀取SD卡或者U盤里面的TXT文本文件,把文件及其基本信息形成一個(gè)列表在LCD顯示出來。
2. 電子書閱讀流程:
3.1.6 FM收音機(jī)
1. FM收音機(jī)模塊采用Philips的FM收音芯片TEA5767HN。它是一款低功耗立體聲的FM收音芯片,具有高靈敏度、支持兩個(gè)頻段87.5MHz-108MHz和76MHz-91MHz,RF AGC自動增益控制, 內(nèi)部集成FM解調(diào)器,I2C總線3線總線模塊可選擇等優(yōu)良特點(diǎn)。
2. 首先初始化TEA5767HN芯片,然后通過可以通過自動搜臺找到頻道收聽節(jié)目。
3. LCD顯示界面有當(dāng)前頻道的頻率、音量等信息
4.可以收藏頻道,方便下次收聽。
5. M收音機(jī)工作流程:
語音錄音
系統(tǒng)采用的是PCM編碼和解碼系統(tǒng)實(shí)現(xiàn)功能。Pcm是對模擬信號先抽樣,再對樣值幅度量化。編碼的過程a.對錄音輸入的模擬信號先抽樣。抽樣,就是對模擬信號進(jìn)行周期性掃描,把時(shí)間上連續(xù)的信號變成時(shí)間上離散的信號。該模擬信號經(jīng)過抽樣后包含原信號中所有信息,能無失真的恢復(fù)原模擬信號。抽樣速率采用8Kbit/s。b.量化,就是把經(jīng)過抽樣得到的瞬時(shí)值將其幅度離散,即用一組規(guī)定的電平,把瞬時(shí)抽樣值用最接近的電平值來表示。 c. 編碼,用一組二進(jìn)制碼組來表示每一個(gè)有固定電平的量化值
通過按鍵1,開始錄音,按鍵2,結(jié)束錄音并播放所錄的語音。播放結(jié)束后,可以繼續(xù)錄入下一段語音。流程圖如下:
游戲
1、菜單提示選擇貪吃蛇或者俄羅斯方塊游戲。
2、貪吃蛇:上下左右方向鍵控制貪吃蛇游動,不要撞到墻、不要碰到自己身體,身體長到25段過關(guān)。每過一關(guān)貪吃蛇的移動速度加快,難度增加。貪吃蛇撞到墻或者自己時(shí),出現(xiàn)死亡,顯示成績并提示是否繼續(xù)游戲。
3、俄羅斯方塊:預(yù)先設(shè)置的隨機(jī)發(fā)生器不斷地輸出單個(gè)方塊到場地頂部,以一定的規(guī)則進(jìn)行移動、旋轉(zhuǎn)、下落和擺放,鎖定并填充到場地中
鍵盤 [ 左、右 ] 用來控制落下磚塊的左右移動
鍵盤 [ 下 ] 用來控制磚塊加速下落
鍵盤 [ 上 ] 用來控制磚塊變形
鍵盤 [中] 用來控制磚塊直接落到底
每次擺放如果將場地的一行或多行完全填滿,則組成這些行的所有小正方形將被消除,并且以此來換取一定的積分或者其他形式的獎勵(lì)。而未被消除的方塊會一直累積,并對后來的方塊擺放造成各種影響。如果未被消除的方塊堆放的高度超過場地所規(guī)定的最大高度則出現(xiàn)死亡,顯示成績并提示是否繼續(xù)游戲。。
4、游戲流程圖如下:
3.1.9 U盤自動播放
利用USB控制器的OTG的功能,結(jié)合FAT32文件系統(tǒng)來實(shí)現(xiàn)對U盤的操作。
1. 當(dāng)插入U(xiǎn)盤后,根據(jù)用戶的選擇來自動播放圖片或者音樂。
2. U盤自動播放流程圖:
3.1.10 PC無線觸摸板
1. 系統(tǒng)外部拓展一塊電阻式觸摸板和2.4G發(fā)送模塊,PC端通過USB接口連上2.4G接收模塊,可以通過觸摸板來控制PC上的鼠標(biāo),實(shí)現(xiàn)無線觸摸板的功能。方便控制電腦。
2. 工作流程:
3.1.11 電量顯示
原理:通過測量流入流出電池的凈電荷來估算電池剩余的容量。對流入流出的電池的總量電流進(jìn)行積分,得到的凈電荷即為剩余容量。電池容量可以預(yù)置,也可惜在后續(xù)的完整充電周期中進(jìn)行學(xué)習(xí)。在補(bǔ)償電池自放電、不同溫度下的容量變化等因素后,也可以獲得比較高的精度。
電路如下:
其中Rsns為mΩ級檢流電阻,RL為負(fù)載電阻,電池通過開關(guān)、Rsns對RL放電時(shí)的電流Io在Rsns兩端產(chǎn)生的壓降為Vs(t)=Io(t)*Rsns。電量計(jì)持續(xù)檢測Rsns兩端的壓差Vs,并將其通過ADC 轉(zhuǎn)化為N位的數(shù)字量Current,之后以時(shí)基確定的速率進(jìn)行累加,M位累加結(jié)果Accumulated_Current的單位為Vh。
3.1.12 智能背光調(diào)節(jié)
原理:通過光敏傳感器來感知外部光線的強(qiáng)度,然后通過PWM來調(diào)節(jié)LCD顯示的背光。如果環(huán)境的光線比較強(qiáng),則減少PWM的占空比來減小LCD的背光,以達(dá)到不必要的電池電量浪費(fèi)。如果環(huán)境的光線比較暗,則通過增加PWM的占空比來增大LCD的背。
3.2 硬件平臺選用及資源配置
硬件平臺選用:
本系統(tǒng)采用EVK1105開發(fā)平臺,結(jié)合本平臺的特點(diǎn),我們充分利用了平臺的LCD顯示器、高保真音頻DAC、麥克風(fēng)、SD卡接口、USB控制器等器件,主要開發(fā)多媒體方面的應(yīng)用。
資源配置:
SD卡:SPI接口
U盤:USB接口
麥克風(fēng):ADC TLV320AIC23B
音頻輸出:DAC TPA6130A2RT
LCD:LCD控制和數(shù)據(jù)總線
FM模塊:I2C接口
按鍵:觸摸傳感器QT1081
數(shù)據(jù)存儲器:SDRAM MT48LC16M16A2
外部存儲器:Flash AT45DB642D-CNU
3.3系統(tǒng)軟件架構(gòu)
所有的應(yīng)用程序都基于GUI框架開發(fā),只要框架建立完成,就可以快速創(chuàng)建頂層應(yīng)用程序。
基于消息循環(huán)的事件驅(qū)動型GUI框架模型:
3.4 系統(tǒng)軟件流程
GUI框架消息循環(huán)流程:
消息循環(huán)流程圖
系統(tǒng)流程圖:
程序運(yùn)行流程圖
評論