無線分布式背景音樂系統(tǒng)的設(shè)計
引 言
互聯(lián)網(wǎng)的繁榮帶動了物聯(lián)網(wǎng)的發(fā)展,智能家居作為物聯(lián)網(wǎng)的一部分也在快速的發(fā)展,智能家居的網(wǎng)絡(luò)化、智能化、信息化慢慢把用戶端的交互擴(kuò)大為物與物之間的信息交換和通信,同時也促進(jìn)了嵌入式設(shè)備、傳感器設(shè)備和家庭傳統(tǒng)設(shè)備在一定范圍的連接,形成了整個智能家居系統(tǒng)的的協(xié)調(diào)發(fā)展。在智能家居的眾多子系統(tǒng)中,背景音樂系統(tǒng)也正朝著智能化快速發(fā)展。
無線網(wǎng)絡(luò)與智能系統(tǒng)的不斷成熟徹底改變了人們的生活習(xí)慣,無線分布式音樂播放系統(tǒng)融合了無線技術(shù)、智能控制、全布局音樂系統(tǒng)。通過網(wǎng)絡(luò)獨特的創(chuàng)新性與交融性,將家庭影音技術(shù)與無線傳輸相結(jié)合 [1]。在控制方式方面完全不同于傳統(tǒng)的影音設(shè)備單調(diào)的操控,而是結(jié)合PC、Mac、iphone、iPad 與Android 手機(jī)等數(shù)字化智能操作設(shè)備進(jìn)行多元化的控制,更加體現(xiàn)出人性化的特點,用戶在家中的每個角落都可以輕易實現(xiàn)對整套音樂系統(tǒng)的播放控制[2]。
1 系統(tǒng)概述
本文設(shè)計一種分布式的無線背景音樂系統(tǒng),所謂分布式即音源是一個,播放是在不同的房間播放,音源不是集中在一個中心的,而是分散在各個播放盒里。如每個人的生活習(xí)慣和愛好不一樣,自己下載自己的音樂,多個不同的音樂源再共享資源,虛擬成一個整體來控制實現(xiàn)共享,此系統(tǒng)不需要龐大的主機(jī),各個小型控制器分散在不同的房間里但又不是獨立的個體,卻可以統(tǒng)一組網(wǎng)到一起。
圖 1 所示為無線背景音樂系統(tǒng)的整體效果圖。圖中整個系統(tǒng)中各個無線音樂盒與無線路由相連,處于同一個無線環(huán)境中,通過設(shè)計無線模式實現(xiàn)資源共享 ;各音樂盒將自身存儲音頻文件或者無線環(huán)境內(nèi)的其他音樂盒內(nèi)的共享音頻文件通過無線傳輸給無線音箱進(jìn)行播放 ;播放控制通過手機(jī)、pad 或PC 等移動終端設(shè)備實現(xiàn)。
2 系統(tǒng)相關(guān)原理和技術(shù)
2.1 分布式系統(tǒng)原理
分布式系統(tǒng)使得資源的共享更加方便。各種信息、文件、數(shù)據(jù)庫和各種昂貴的硬件資源被分布式地管理和維護(hù),并為用戶的訪問提供了方便。這樣就能節(jié)省大量的重復(fù)投資 [3]。分布式系統(tǒng)對外提供無狀態(tài)節(jié)點,內(nèi)部實現(xiàn)具體有狀態(tài)或者無狀態(tài)節(jié)點邏輯,節(jié)點既可以提供服務(wù),也可以存儲數(shù)據(jù)。
為了使種類各異的計算機(jī)和網(wǎng)絡(luò)都呈現(xiàn)為單一的系統(tǒng), 分布式系統(tǒng)常常通過一個軟件層組織起來,該“軟件層”在邏輯上位于由用戶和應(yīng)用程序組成的高層與由操作系統(tǒng)組成的低層之間,如圖 2 所示。這樣的分布式系統(tǒng)有時又稱為中間件(middleware)[3]。
分布式系統(tǒng)數(shù)據(jù)有 4 種分布方式,如下所述:
(1) 哈希方式,把不同的值進(jìn)行哈希運算,映射到不同的機(jī)器或者節(jié)點。實現(xiàn)擴(kuò)展時比較困難,數(shù)據(jù)分散在很多機(jī)器上,擴(kuò)展的時候要從多個機(jī)器上獲取數(shù)據(jù),容易出現(xiàn)分布不均的情況。
(2) 按數(shù)據(jù)范圍分布,比如ID在 1~20的在機(jī)器A上,ID在 21~40的在機(jī)器B上,ID在 40~60的在機(jī)器C上實現(xiàn), ID 在 60~100的分布在機(jī)器D上,數(shù)據(jù)分布比較均勻。如果某個節(jié)點處理能力有限,可以直接分裂該節(jié)點。維護(hù)數(shù)據(jù)分布的元信息,可能出現(xiàn)單點瓶頸。
(3) 按數(shù)據(jù)量分布,與哈希方式和按數(shù)據(jù)范圍方式不同, 數(shù)據(jù)量分布數(shù)據(jù)與具體的數(shù)據(jù)特征無關(guān),而是將其視為一個順序增長的文件,并將這個文件按照某一較為固定的大小劃分為若干數(shù)據(jù)塊(chunk),不同的數(shù)據(jù)塊分布到不同的服務(wù)器上。
(4) 一致性哈希,構(gòu)造哈希環(huán),有哈希域[0,10],則構(gòu)造 3個部分 [1,4)/[4,9)/[9,10),[0,1)/, 這 3部分是一個環(huán)狀,增加機(jī)器時,變動的是其附近的節(jié)點,分擔(dān)的是附近節(jié)點的壓力。
2.2 WiFi技術(shù)
WiFi 全稱為WirelessFidelity(無線保真技術(shù)),也叫做 IEEE 802.11 b 標(biāo)準(zhǔn),工作在 2.4 GHz 頻段上。傳輸速度快, 帶寬可達(dá) 11 Mb/s,并且?guī)捒梢宰詣诱{(diào)整,遇到干擾或者信號不太好的時候, 帶寬可變?yōu)?5.5 Mb/s、2 Mb/s 和 1 Mb/s, 很好的控制了網(wǎng)絡(luò)的可靠和穩(wěn)定。傳輸距離長,在空曠的地方可以達(dá)到 300 米左右,封閉環(huán)境下也能達(dá)到 100 米左右的傳輸距離。同時WiFi 無線組網(wǎng)成本低,而且更安全。
WiFi 的兩個基本模式如下所述:
(1) AP:AccessPoint,即無線網(wǎng)絡(luò)橋接器或接入點,創(chuàng)建了一個無線網(wǎng)絡(luò)環(huán)境,是無線網(wǎng)絡(luò)的中心節(jié)點。主要在媒體存取控制層 MAC 中扮演無線工作站與有線局域網(wǎng)絡(luò)的橋梁。
(2) STA:Station,即無線站點,類似于無線終端,STA 本身并不接受無線的接入,它可以連接到AP,一般無線網(wǎng)卡即工作在該模式[4]。
WiFi 的工作方式如下所述:
(1)被動型串口設(shè)備聯(lián)網(wǎng)
被動型串口設(shè)備聯(lián)網(wǎng)指系統(tǒng)中的設(shè)備處于被動的等待連接狀態(tài),與這些設(shè)備的連接主要由后臺服務(wù)器來主動發(fā)起。典型的應(yīng)用,如某些無線傳感器網(wǎng)絡(luò),每個傳感器終端實時的在采集數(shù)據(jù),暫時保存在設(shè)備中。而后臺服務(wù)器則周期性的每隔一段時間主動連接設(shè)備,并請求上傳或下載數(shù)據(jù)。
(2)主動型串口設(shè)備聯(lián)網(wǎng) 主動型串口設(shè)備聯(lián)網(wǎng)指的是由設(shè)備主動發(fā)起連接,并與后 臺服務(wù)器進(jìn)行數(shù)據(jù)交互(上傳或下載)的方式。典型的主動型 設(shè)備,如無線 POS 機(jī),在每次刷卡交易完成后即開始連接后 臺服務(wù)器,并上傳交易數(shù)據(jù) [5]。
3 系統(tǒng)硬件設(shè)計
本系統(tǒng)由多個無線音樂盒播放系統(tǒng)組合而成,各個小的 系統(tǒng)之間通過 WiFi 實現(xiàn)無線資源共享,下面介紹單個無線音 樂盒播放系統(tǒng)的設(shè)計。
3.1 無線音樂盒播放系統(tǒng)的設(shè)計
系統(tǒng)的硬件示意圖如圖 3 所示,下面對系統(tǒng)中的各個模 塊進(jìn)行說明。
3.2 主控模塊
主 控 模 塊 使用 S3C2440A,S3C2440A 微 處 理 器是 一 款由 Samsung 半導(dǎo)體公司推出的高性能、低功耗、高集成 度并具有工業(yè)級溫度范圍和性能的微處理器,S3C2440A 采 用了 16/32 位 RISC 體系結(jié)構(gòu)和 ARM920T 內(nèi)核強(qiáng)大的指令 集,具有指令高速存儲緩沖器(I-Cache)、數(shù)據(jù)高速存儲緩沖 器(D-Cache),寫緩沖器和物理地址 TAG RAM 減少主存帶 寬和響應(yīng)性帶來的影響。工作頻率最高可達(dá) 533 MHz ;2 片 4Banks×4 MB×16 b 的 SDRAM,共 64 MB 的內(nèi)存,可擴(kuò)展 至 128 MB ;256 M×8 b 的 Nandflash(K9F2G08);4 MB 的 Norflash,支持容量 128 M 或更高 。
3.3 無線音頻傳輸模塊
隨著藍(lán)牙、WiFi和 2.4GHz技術(shù)等無線技術(shù)的快速發(fā)展和成熟,音頻的傳輸也正在越來越多的使用無線技術(shù)。未來無線音頻技術(shù)的不斷成熟,無線技術(shù)將取代有線的音頻傳輸, 這樣將帶來更加便利的生活。在目前種類繁多的無線音頻技術(shù)中,2.4GHz技術(shù)有著廣泛的應(yīng)用,同時也是比較有可能被大范圍應(yīng)用在普通音頻設(shè)備中的。藍(lán)牙、WiFi和 2.4GHz技術(shù)在工作頻段上是相同的,都是 2.4~2.485GHzISM無線頻段。從目前市場上的無線音頻產(chǎn)品上來看,低功耗的優(yōu)點使得藍(lán)牙無線音響應(yīng)用最多,當(dāng)然技術(shù)也是最為成熟的了,但是藍(lán)牙有著天生的帶寬窄的缺點,對于高保真音頻信號的傳輸顯得力不從心,另一個缺點就是傳輸距離只有 10米左右,對于距離要求遠(yuǎn)的用戶達(dá)不到要求,同時抗干擾也是一個問題。與藍(lán)牙技術(shù)相比,WiFi 技術(shù)似乎不存在這些缺點,帶寬寬、傳輸距離遠(yuǎn)。但是在抗干擾方面還是存在問題。與藍(lán)牙、WiFi 相比,2.4 GHz 技術(shù)具有能傳輸高品質(zhì)音頻信號的寬帶寬 ;在抗干擾方面,2.4 G 技術(shù)使用了自動調(diào)頻技術(shù),在工作狀態(tài)下, 當(dāng)發(fā)現(xiàn)頻段被占用的時候,能自動地跳轉(zhuǎn)到一個無人使用的頻段 ;此外,2.4 GHz 技術(shù)也具有低功耗的特點,在發(fā)射、接收音頻信號時不需要連續(xù)的工作[6]。
所以本系統(tǒng)的無線音頻傳輸模塊使用 Nordic 公司的nRF24L01 無線模塊,采用 2.4 GHz 短距離無線傳輸技術(shù)。
3.4 nRF24L01模塊介紹
nRF24L01是Nordic公司研發(fā)的單片2.4G無線通信芯片, 工作于 2.4GHz~2.5GHz世界通用ISM頻段。nRF24L01內(nèi)部有若干寄存器,外部留有SPI接口,外部單片機(jī)通過SPI接口配置此芯片內(nèi)部的寄存器。因為有自己的協(xié)議,所以只能是用在 nRF24L01與 nRF24L01或者 Nordic公司此系列的芯片通信,一般情況下,用在兩個 nRF24L01之間的通信,任何一個模塊都可以設(shè)置為接收或者發(fā)送模式,而且可由主控單片機(jī)隨時根據(jù)需要設(shè)置為發(fā)送或者接收模式。
兩個 nRF24L01 的通信,需要滿足 3 個條件 :(1)頻道相同(設(shè)置頻道寄存器 RF_CH);(2)地址相同(設(shè)置 TX_ ADDR 和RX_ADDR_P0 相同);(3)每次發(fā)送接收的字節(jié)數(shù)相同(如果設(shè)置了通道的有效數(shù)據(jù)寬度為 n,那么每次發(fā)送的字節(jié)數(shù)也必須為 n,當(dāng)然,n<=32)。
nRF24L01 也可以實現(xiàn)一對多通信,使用nRF24L01 的通道 0,通過改變頻道和地址來實現(xiàn) 1 對多的互發(fā)。它雖然屬于2.4 G 芯片,但實際上,可在 2.4 G 到 2.5 G 之間的頻道上通信, 一共有 125 個頻道,它的地址是 5 字節(jié)的。所以用這種方式, 理論上可以實現(xiàn)一對無數(shù)的通信。
nRF24L01 芯片的接口電路如圖 4 所示。
3.5 發(fā)射與接收部分設(shè)計
圖 5 所示為發(fā)射與接收部分原理圖。
發(fā)射部分由主控模塊將音源數(shù)據(jù)通過 nRF24L01 模塊 的 2.4 GHz 頻段發(fā)射出去。接收部分由 MCU 控制器通過 SPI 接口從 2.4 GHz 無線模塊 nRF24L01 接收音頻數(shù)據(jù),再通過 I2S 接口將音頻數(shù)據(jù)傳送給音頻輸出模塊來播放音樂??刂破?MCU 需要支持 SPI 和 I2S。選用新唐 M451 系列開發(fā)板為控 制器 MCU,內(nèi)建 ARM CortexTM-M4 內(nèi)核,最高可運行 72 MHz 外部時鐘,具有 256 kB 內(nèi)建 Flash 存儲器和 32 kB 內(nèi)建 SRAM,還兼有 SPI、I2S、USB2.0 等常用外設(shè)??梢詽M足無 線音頻接收控制模塊的數(shù)據(jù)處理要求。
4 系統(tǒng)軟件設(shè)計
圖 6 為無線音樂盒初始化和工作狀態(tài)軟件設(shè)計流程圖。
初次使用需進(jìn)行初始化操作,首先通過指示燈檢查是否 能正常工作,正常工作情況下,通過長按配對按鍵與房間區(qū)域 內(nèi)的需要連接的一個或多個無線音箱設(shè)備配對形成一個音樂 播放子系統(tǒng),再通過 WiFi 連接無線路由器加入局域網(wǎng),此時 單個播放系統(tǒng)配置完成,系統(tǒng)會處于睡眠狀態(tài)等待播控信號 喚醒。當(dāng)音樂盒接收到播控信號時,首先檢查目標(biāo)播放的音源 文件是否在本地,若音源在本地則直接發(fā)送音源數(shù)據(jù)給予播 放子系統(tǒng)內(nèi)的無線音箱設(shè)備進(jìn)行播放 ;若音源不在本地,則 發(fā)出獲取目標(biāo)音源文件的請求信號,由無線路由器負(fù)責(zé)轉(zhuǎn)發(fā)請 求給其他局域網(wǎng)內(nèi)的無線音樂盒,再由路由器轉(zhuǎn)發(fā)獲取的音源 文件或者音源不存在的通知信息。
5 結(jié) 語
本文設(shè)計的無線分布式背景音樂系統(tǒng),通過手機(jī)端軟件 的設(shè)計實現(xiàn)背景音樂的控制,利用 WiFi 技術(shù)實現(xiàn)局域網(wǎng)內(nèi)的 音源無線共享,同時利用了無線音頻傳輸技術(shù),解決了家居環(huán)境布線帶來的煩惱。但是本設(shè)計還沒有應(yīng)用到實際的家庭環(huán)境中,研發(fā)技術(shù)還有待于進(jìn)一步的提高,將這些技術(shù)應(yīng)用到智能家居系統(tǒng)上來,希望在以后的研究中提高本系統(tǒng)的應(yīng)用性和可用性。