DIY你的電子玩具:網(wǎng)絡(luò)音樂(lè)電臺(tái),給你系統(tǒng)解決方案、軟硬件設(shè)計(jì)實(shí)現(xiàn)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
一、項(xiàng)目概述
1.1 引言
網(wǎng)絡(luò)音樂(lè)電臺(tái)是指通過(guò)編碼器,將存儲(chǔ)器里面的音頻數(shù)據(jù)轉(zhuǎn)換成為可以在Internet上直接傳送的格式,而用戶登錄到電臺(tái)的網(wǎng)站時(shí),可以播放經(jīng)過(guò)編碼的音頻信息,音頻信息轉(zhuǎn)換成聲音播放出來(lái)。網(wǎng)絡(luò)音樂(lè)電臺(tái)不需要占用衛(wèi)星頻段和頻率資源。
1.2 項(xiàng)目背景
I P T V(Internet Protocol Television),也叫網(wǎng)絡(luò)電視,是指基于IP協(xié)議的電視廣播服務(wù)。該業(yè)務(wù)將電視機(jī)或個(gè)人計(jì)算機(jī)作為顯示終端,通過(guò)寬帶網(wǎng)絡(luò)向用戶提供數(shù)字廣播電視、視頻服務(wù)、信息服務(wù)、互動(dòng)社區(qū)、互動(dòng)休閑娛樂(lè)、電子商務(wù)等寬帶業(yè)務(wù)。IPTV的主要特點(diǎn)是交互性和實(shí)時(shí)性。主要存儲(chǔ)及傳送的內(nèi)容是流媒體文件,基于IP網(wǎng)絡(luò)傳輸,用戶終端可以是IP機(jī)頂盒+電視機(jī),也可以是PC。
而網(wǎng)絡(luò)音樂(lè)電臺(tái)正是基于I P T V 的一種新型應(yīng)用,網(wǎng)絡(luò)上已有的音樂(lè)電臺(tái)如Last.fm, 豆瓣音樂(lè)電臺(tái)等都是大型服務(wù)器搭建的,不僅部署維護(hù)困難,而且造價(jià)昂貴。本項(xiàng)目的設(shè)計(jì)網(wǎng)絡(luò)音樂(lè)電臺(tái)正是為緩解這種狀況而產(chǎn)生的。
1.3 項(xiàng)目?jī)?yōu)勢(shì)
首先,本項(xiàng)目基于AVR32 AT32UC3A低成本微處理器,免去了造價(jià)昂貴的PC或服務(wù)器,適合于廣大的網(wǎng)絡(luò)音樂(lè)電臺(tái)愛(ài)好者。
其次,由于采用的是低成本微處理器的嵌入式技術(shù),因此功耗低,可24X7 小時(shí)不間斷工作,而且由于目標(biāo)功能單一,不需要復(fù)雜的部署及維護(hù),可以即插即用。
另外,本設(shè)計(jì)具有體積小,易于移動(dòng),能夠方便的隨身攜帶,因此可以滿足網(wǎng)絡(luò)音樂(lè)電臺(tái)愛(ài)好者隨時(shí)隨地進(jìn)行網(wǎng)絡(luò)廣播的需求,擴(kuò)大了交流寬度和廣度。
二、需求分析
2.1 功能要求
本項(xiàng)目的初步目標(biāo)是實(shí)現(xiàn)一個(gè)網(wǎng)絡(luò)音樂(lè)電臺(tái),能夠提供用戶通過(guò)Internet 訪問(wèn)并點(diǎn)播音樂(lè)功能,管理員(網(wǎng)絡(luò)音樂(lè)電臺(tái)所有者)可以通過(guò)網(wǎng)絡(luò)登陸并管理網(wǎng)絡(luò)音樂(lè)電臺(tái),網(wǎng)絡(luò)音樂(lè)電臺(tái)所有者能夠進(jìn)行實(shí)時(shí)廣播?;疽笕缦滤荆?/p>
1. 當(dāng)上電或用戶復(fù)位后所有AVR32位單片機(jī)配置能夠自動(dòng)設(shè)置好,并正常工作;
2. 網(wǎng)絡(luò)連接通過(guò)板卡上的Etnernet 接口實(shí)現(xiàn),并且相關(guān)的IP地址,子網(wǎng)掩碼(Submask),網(wǎng)關(guān)(Gateway)等網(wǎng)絡(luò)配置能夠通過(guò)DHCP(Dynamic Host Configuration Protocol)自動(dòng)實(shí)現(xiàn)。
3. HTML源文件及網(wǎng)絡(luò)音樂(lè)電臺(tái)所能播放的音頻應(yīng)該存放在外部存儲(chǔ)器上,以方便用戶修改,而且須通過(guò)USB接口來(lái)實(shí)現(xiàn)讀寫。
4. 網(wǎng)絡(luò)音樂(lè)電臺(tái)所有者能夠通過(guò)網(wǎng)絡(luò)認(rèn)證后遠(yuǎn)程進(jìn)行網(wǎng)絡(luò)音樂(lè)電臺(tái)管理,包括添加管理員,更新存儲(chǔ)器上的音頻文件和HTML源文件。
5. 網(wǎng)絡(luò)音樂(lè)電臺(tái)所有者能夠通過(guò)Microphone 進(jìn)行實(shí)時(shí)的在線廣播及錄制,并且能夠播放以進(jìn)行檢查。
6. 為了方便使用,相關(guān)的網(wǎng)絡(luò)信息(如IP地址,網(wǎng)關(guān)(Gateway)等)及播放音頻等信息應(yīng)該顯示在TFT上。
2.2 性能要求
本項(xiàng)目設(shè)計(jì)的產(chǎn)品-------網(wǎng)絡(luò)音樂(lè)電臺(tái),應(yīng)該能夠在24X7小時(shí)不間斷工作條件下,保持穩(wěn)定運(yùn)行。而且能夠滿足使用者隨時(shí)移動(dòng)的要求。
三、方案設(shè)計(jì)
3.1 系統(tǒng)功能實(shí)現(xiàn)原理
系統(tǒng)硬件結(jié)構(gòu)框圖如下所示:
從上圖可以看到,整個(gè)系統(tǒng)由四大部分組成,分別是網(wǎng)絡(luò)服務(wù)器,USB及存儲(chǔ)控制部分,TFT控制部分,音頻處理部分。
3.2 硬件平臺(tái)選用及資源配置
(1)網(wǎng)絡(luò)服務(wù)器
網(wǎng)絡(luò)服務(wù)器是最重要的部分之一。實(shí)現(xiàn)了AVR32與Internet的通信協(xié)議,接受用戶的請(qǐng)求并根據(jù)Http_Request()的返回值使用Http_Response()來(lái)與用戶進(jìn)行交互,例如顯示音樂(lè)曲目列表,或者傳送網(wǎng)絡(luò)音樂(lè)電臺(tái)所有者實(shí)時(shí)錄制的音頻。
下圖是簡(jiǎn)化了的Web服務(wù)器原理圖,服務(wù)器的事物邏輯部分是嵌入式服務(wù)器的核心部分,它根據(jù)不同的Http Socket來(lái)讀取存儲(chǔ)器上的HTML源文件或音頻文件,來(lái)響應(yīng)用戶的請(qǐng)求,這是網(wǎng)絡(luò)音樂(lè)電臺(tái)的基礎(chǔ)。
(2)USB及存儲(chǔ)控制
USB及存儲(chǔ)控制部分是整個(gè)系統(tǒng)中僅次于嵌入式Web服務(wù)器的重要模塊,它主要用來(lái)存放網(wǎng)絡(luò)音樂(lè)電臺(tái)管理員編寫的HTML源文件,提供給Web服務(wù)器來(lái)響應(yīng)用戶的請(qǐng)求,以及能夠提供給用戶點(diǎn)播的音樂(lè)文件。存儲(chǔ)器的讀寫可以利用AVR32位單片機(jī)上的USB Host來(lái)方便的實(shí)現(xiàn)。
其示意性原理框圖如下所示:
(3)TFT控制部分
同時(shí)與AVR32 位單片機(jī)相連的TFT用來(lái)顯示嵌入式Web服務(wù)器的網(wǎng)絡(luò)連接信息以及網(wǎng)絡(luò)音樂(lè)電臺(tái)當(dāng)前播放的音頻。嵌入式Web服務(wù)器的網(wǎng)絡(luò)連接信息不僅包括當(dāng)前IP地址,網(wǎng)關(guān)等基本網(wǎng)絡(luò)信息,還包含了當(dāng)前用戶連接數(shù),用戶的Web請(qǐng)求等。管理者可以根據(jù)這些基本的信息來(lái)判斷當(dāng)前Web服務(wù)器的工作狀態(tài),以及系統(tǒng)錯(cuò)誤的檢查。同時(shí)能夠能夠根據(jù)網(wǎng)絡(luò)音樂(lè)電臺(tái)管理員操作顯示不同信息。
LCD顯示內(nèi)容的總體布局如下圖所示:
(4)音頻處理部分
音頻處理部分也是網(wǎng)絡(luò)音樂(lè)電臺(tái)系統(tǒng)中重要的一部分。音頻處理部分完成的主要任務(wù)包括:根據(jù)網(wǎng)絡(luò)音樂(lè)電臺(tái)管理員操作播放實(shí)時(shí)錄制音頻或存儲(chǔ)器器中的音頻;存儲(chǔ)通過(guò)Microphone輸入的音頻。
其示意性原理框圖如下所示:
3.3系統(tǒng)軟件架構(gòu)
網(wǎng)絡(luò)音樂(lè)電臺(tái)系統(tǒng)軟件主要有四部分組成,分別對(duì)應(yīng)前文中硬件四部分。其中WebServer ,USB Controller,主要使用FSM實(shí)現(xiàn)。
3.4 系統(tǒng)軟件流程
程序流程圖如下所示:
系統(tǒng)整體工作流程: 首先系統(tǒng)上電后進(jìn)行一系列的初始化, 包括網(wǎng)絡(luò)控制器的配置, USB控制器的配置及存儲(chǔ)器的枚舉, TFT清屏, 音頻芯片的初始化等; 然后系統(tǒng)等待用戶的網(wǎng)絡(luò)請(qǐng)求, 有則轉(zhuǎn)到網(wǎng)絡(luò)服務(wù)器狀態(tài)機(jī)中執(zhí)行相關(guān)的操作, 完成后繼續(xù)等待; 如果沒(méi)有請(qǐng)求則檢查是否有Microphone的輸入請(qǐng)求, 如有則進(jìn)行相關(guān)的音頻錄制及播放等操作, 沒(méi)有則返回并繼續(xù)等待并輪詢Microphone的輸入請(qǐng)求。