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