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