基于嵌入式的MP3音頻點(diǎn)播系統設計
引言
本文引用地址:http://dyxdggzs.com/article/149964.htm隨著(zhù)電子技術(shù)的發(fā)展,嵌入式系統已廣泛用于信息家電、移動(dòng)通信、工業(yè)控制、軍事電子等領(lǐng)域。這里介紹一種基于S3C2410處理器和嵌入式Linux系統的C/S結構音頻點(diǎn)播系統,將MP3音頻文件集中存儲在網(wǎng)絡(luò )FTP服務(wù)器上或本地U盤(pán)內,利用自主開(kāi)發(fā)的MP3播放終端進(jìn)行點(diǎn)播。該音頻點(diǎn)播系統可廣泛用于卡拉OK廳、語(yǔ)音教室和公共廣播等場(chǎng)所。
2 系統功能及實(shí)現方案
嵌入式系統由底層硬件、設備驅動(dòng)、操作系統、應用中間軟件及應用系統5部分組成。基于嵌入式系統的MP3音頻點(diǎn)播系統可廣泛用于卡拉OK廳、語(yǔ)音教室和公共廣播等許多場(chǎng)所,它由一個(gè)網(wǎng)絡(luò )服務(wù)器和多個(gè)客戶(hù)端播放器組成,是基于局域網(wǎng)的C/S結構的點(diǎn)播系統。首先在服務(wù)器中存儲豐富的歌曲,用戶(hù)可通過(guò)播放器自帶的網(wǎng)絡(luò )功能登陸服務(wù)器,以獲取歌曲進(jìn)行播放。同時(shí)該點(diǎn)播系統也可通過(guò)USB存儲設備播放本地歌曲,也可將服務(wù)器上的音樂(lè )下載到本地USB存儲設備上。
3 系統硬件設計
S3C2410內部集成有ARM920T內核和常用外圍組件。由于它是一款專(zhuān)為手持設備設計的低功耗處理器。因此可以降低手持設備成本,具有較高的性?xún)r(jià)比。該系統采用模塊化設計思想,依據功能可劃分為網(wǎng)絡(luò )、存儲、解碼、觸摸屏、按鍵、電源、USB接口、UART接口等模塊。其硬件結構如圖1所示。
3.1 處理器模塊S3C2410
它的功能和特性如下:①具有較高的處理速度,通過(guò)內部鎖相環(huán),最高可在203 MHz的系統時(shí)鐘下運行;②具有極低的功耗。其核心供電電壓為1.8 V,外圍I/O口使用3.3 V電壓;③具有3種低功耗控制方式,甚至可關(guān)閉CPU中除喚醒邏輯外的所有功能,極大地降低了功耗;④與其他ARM器件相比,S3C2410片上集成了更多的外設接口,如外部存儲控制器、LCD,DMA,USBl.1,SD,M。
3.2 存儲模塊
存儲模塊由一片64 MB的SDRAM和兩片16 MB的Flash組成,可為系統提供足夠的存儲空間。Flash存儲器是一種可在系統電擦寫(xiě),掉電后信息不丟失的存儲器。與Flash存儲器相比,SDRAM不具有掉電保持數據的特性,但存取速度大大高于Flash存儲器,且具有讀/寫(xiě)特性。
3.3 解碼模塊
決定MP3音質(zhì)的關(guān)鍵是主控解碼器件中的數模轉換器(DAC)單元和耳機功率放大器單元。DAC負責把解碼的數字音頻流轉換成可驅動(dòng)耳機發(fā)音的模擬音頻信號;耳機放大器則可把模擬音頻信號放大到可驅動(dòng)耳機的功率。該系統選用的解碼器是UDAl380。S3C2410則通過(guò)I2S總線(xiàn)與解碼器UDAl380通信。
3.4 網(wǎng)絡(luò )模塊
S3C2410自身并沒(méi)有網(wǎng)絡(luò )控制器,接入以太網(wǎng)時(shí)需增加獨立的以太網(wǎng)控制器,在此選用DM9000作為以太網(wǎng)控制器。該器件具有通用的處理器接口、10M/IOOM自適應、4 K雙字節靜態(tài)存取存儲器、低功耗、高處理性能,可支持3.3~5V的容差。
4 系統軟件設計
該音頻點(diǎn)播系統選用Linux操作系統,其軟件結構如圖2所示。從軟件角度看,嵌入式Linux操作系統分為引導加載程序、內核、文件系統及用戶(hù)應用程序4部分。
4.1 文件系統
文件系統就是用戶(hù)程序與文件的集合,在Linux PC機上存放到一個(gè)統一的目錄下,然后通過(guò)工具打包成一個(gè)映象(image)文件,這通常為壓縮過(guò)程,燒寫(xiě)到板子上后,待Linux內核完成啟動(dòng)后,逐個(gè)掛接這些文件系統映象文件并做解包工作。當然第一個(gè)掛接的就是根文件系統(rootf),待rootf提供Shell后,即可通過(guò)Shell命令mount來(lái)掛載其他文件系統(FS)了。該系統設計選用RAMDISK文件系統。
RAMDISK中的重要目錄:
(1)/bin:保存大多數init,busybox,shell文件管理實(shí)用程序等二進(jìn)制文件。
(2)/dev:包含用在設備中的所有設備節點(diǎn)。
(3)/etc:包含系統的所有配置文件。
(4)/lib:包含所有必須的庫,如libc,libdl等。
4.2 用戶(hù)應用程序
應用程序負責與服務(wù)器網(wǎng)絡(luò )通信,向服務(wù)器發(fā)送請求、下載歌曲、播放歌曲,并對整個(gè)播放過(guò)程進(jìn)行控制管理。通過(guò)240x320TFT觸摸式彩屏LCD把信息呈現給用戶(hù),用戶(hù)可通過(guò)觸摸屏和按鍵向系統發(fā)送請求。系統播放終端程序簡(jiǎn)要流程見(jiàn)圖3。
應用程序主要分為主程序mainplay.c和Mp3play,Ftplib,Song_select,Song_list,Config_data這5個(gè)模塊。mainplay.c主要用于生成主界面和下級界面、各菜單的管理、接收和傳遞用戶(hù)的請求,并調用各模塊完成相應的任務(wù)。設計中采用MilaiGUI實(shí)現界面編程。MiniGUI是一個(gè)圖形用戶(hù)界面支持系統,鍵盤(pán)和鼠標動(dòng)作,產(chǎn)生由應用程序不斷輪詢(xún)的事件,這些事件發(fā)送到具有焦點(diǎn)的窗口,而且應用程序把這些事件交由與該窗口聯(lián)系的例程來(lái)處理。minigui/minigui.h>,minigui/commh>和minigui/window.h>是所有的MiniGUI應用程序都必須包括的頭文件。MiniGUI程序的入口點(diǎn)為MiniGUIMain,即:
int MiniGUIMain (int argc, const char* argv[])
這5個(gè)模塊中的核心為Mp3play模塊。它包含了MP3的解碼代碼,通過(guò)該模塊調用解碼驅動(dòng)程序,實(shí)現歌曲的解碼播放、前進(jìn)、后退、音量控制等,以完成MP3音樂(lè )文件的最終播放。
5 結語(yǔ)
嵌入式網(wǎng)絡(luò )MP3播放終端集成了網(wǎng)絡(luò )化和數字化的優(yōu)點(diǎn),是嵌入式系統在音頻領(lǐng)域中的一個(gè)典型應用。該系統操作簡(jiǎn)單,適合于各種層次的用戶(hù)。若改用無(wú)線(xiàn)方式進(jìn)行設計,可通過(guò)無(wú)線(xiàn)網(wǎng)絡(luò )隨時(shí)隨地下載、收聽(tīng)信息,這種播放器必將更受用戶(hù)的歡迎。
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)
評論