胡志坤 江 浩* 宋菁燁 李曉聰 廖遠(yuǎn)勤 廖北平
1(中南大學(xué)物理與電子學(xué)院 湖南 長沙 410083)2(醴陵恒茂電子科技有限公司 湖南 醴陵 412200)
?
帶優(yōu)先級(jí)狀態(tài)機(jī)管理的輕量級(jí)無線音樂路由器
胡志坤1江浩1*宋菁燁1李曉聰1廖遠(yuǎn)勤2廖北平2
1(中南大學(xué)物理與電子學(xué)院湖南 長沙 410083)2(醴陵恒茂電子科技有限公司湖南 醴陵 412200)
摘要為了解決目前無線音樂路由器性能不穩(wěn)定問題,研究開發(fā)一個(gè)基于mips架構(gòu)的輕量級(jí)無線音樂路由器?;贒LNA標(biāo)準(zhǔn),采用Platinum架構(gòu)設(shè)計(jì)并實(shí)現(xiàn)了輕量級(jí)DLNA控制點(diǎn)與設(shè)備交互發(fā)現(xiàn)模塊。設(shè)計(jì)了一個(gè)有優(yōu)先級(jí)的狀態(tài)機(jī)管理機(jī)制來管理交互控制模塊的命令序列,來避免頻繁音樂控制導(dǎo)致控制信號(hào)混亂的問題。設(shè)計(jì)了一個(gè)高保真無損音頻播放器,實(shí)現(xiàn)設(shè)備自動(dòng)下載音頻文件序列表到本地,并采用基于ALSA的高級(jí)Linux聲音架構(gòu)來實(shí)現(xiàn)音樂的高保真解碼,確保高品質(zhì)的音樂輸出至音響設(shè)備。采用Chariot和Iperf軟件進(jìn)行對(duì)音樂路由器與手機(jī)端的真實(shí)測(cè)試,吞吐量和用戶數(shù)據(jù)報(bào)協(xié)議的測(cè)試結(jié)果表明控制信號(hào)的無線傳輸性能高效穩(wěn)定,音質(zhì)測(cè)試結(jié)果表明能夠得到高質(zhì)量的音頻信號(hào)。
關(guān)鍵詞無線音樂路由器DLNAPlatinum優(yōu)先級(jí)狀態(tài)機(jī)音頻播放器
0引言
隨著無線傳輸技術(shù)的發(fā)展和數(shù)字媒體的流行,家庭網(wǎng)絡(luò)成為數(shù)字化的一個(gè)重要組成部分[1]。家庭音樂共享方面,目前有無線音箱和無線音樂路由器。消費(fèi)者希望在家中的任何地方都能享受到豐富的多媒體內(nèi)容,而不考慮這些媒體數(shù)據(jù)存儲(chǔ)在什么地方。目前,常用的無線WiFi音箱具有體積大、成本高,且控制部分與音箱直接集成,音質(zhì)的好壞跟音響本身的關(guān)聯(lián)性很大,不利于音樂愛好者對(duì)音響的個(gè)性化需求。
數(shù)字生活網(wǎng)絡(luò)聯(lián)盟DLNA[2]是目前國際上主流的標(biāo)準(zhǔn),以TCP/IP協(xié)議和UPnP[3]技術(shù)為基礎(chǔ),可以實(shí)現(xiàn)家庭內(nèi)部各種信息終端的自動(dòng)發(fā)現(xiàn)、智能共享和協(xié)同服務(wù)[4]。文獻(xiàn)[5]詳細(xì)分析了DLNA標(biāo)準(zhǔn)協(xié)議的基本原理和框架,搭建簡單的實(shí)驗(yàn)平臺(tái),驗(yàn)證了DLNA協(xié)議在家庭媒體共享中的可行性;文獻(xiàn)[6]將DLNA協(xié)議用于某一通信設(shè)備上,提出了共享多媒體內(nèi)容的一個(gè)軟件實(shí)現(xiàn)方案;文獻(xiàn)[7]提出了一個(gè)擴(kuò)展的DLNA媒體共享架構(gòu),訪問和共享家庭網(wǎng)絡(luò)與外部網(wǎng)絡(luò)的各種媒體內(nèi)容;文獻(xiàn)[8]提出了一個(gè)安全的用戶代理訪問控制系統(tǒng),有效地保護(hù)DLNA設(shè)備免受非認(rèn)證控制點(diǎn)控制。目前,基于DLNA標(biāo)準(zhǔn)[9,10]的無線音樂路由器,主要是:(1) 由于DLNA標(biāo)準(zhǔn)的多媒體播放設(shè)備與多媒體控制服務(wù)器之間的傳輸狀態(tài)僅由一個(gè)全局的變量來識(shí)別,沒有嚴(yán)格的狀態(tài)機(jī)管理機(jī)制,當(dāng)出現(xiàn)偶爾局域網(wǎng)無線信號(hào)不好時(shí),用戶往往會(huì)頻繁操作控制點(diǎn),導(dǎo)致設(shè)備端出現(xiàn)執(zhí)行動(dòng)作和控制命令錯(cuò)亂的現(xiàn)象;(2) 播放器性能較差,無法播放如WAV、FLAC、APE等格式的高保真無損音頻文件。
本文研究并開發(fā)一種不集成音響、只提供一個(gè)音頻輸出接口、具有網(wǎng)絡(luò)中繼的輕量級(jí)音樂路由器。采用Platinum架構(gòu)構(gòu)建輕量級(jí)的DLNA多媒體播放設(shè)備,設(shè)計(jì)了一個(gè)帶優(yōu)先級(jí)的狀態(tài)機(jī)管理機(jī)制來確保音樂路由器的控制指令有效達(dá)到音響,并設(shè)計(jì)了一個(gè)高保真無損音樂播放器。方案最終在Realtek公司的rtl8196e路由器上實(shí)現(xiàn)并測(cè)試,測(cè)試結(jié)果驗(yàn)證了其正確性和可靠性。
1方案設(shè)計(jì)
本文設(shè)計(jì)研發(fā)了一種帶優(yōu)先級(jí)狀態(tài)機(jī)管理的輕量級(jí)無線音樂路由器,可實(shí)現(xiàn)在WiFi環(huán)境下音樂的無線推送功能,描述如下:將路由器音頻輸出接口與音箱輸入接口連接,打開手機(jī)終端音樂播放軟件DLNA功能,無線連接到路由器上的DLNA設(shè)備后即可推送手機(jī)上的音樂至音箱,實(shí)現(xiàn)音樂的共享并能夠無線控制音箱的播放、暫停、快進(jìn)、下一曲等功能。其應(yīng)用場景如圖1所示。
圖1 無線音樂路由器應(yīng)用場景
以Realtek公司提供的RTL8196E路由器為硬件基礎(chǔ),加上水晶公司的音頻解碼芯片CS4398,構(gòu)建硬件環(huán)境。其硬件架構(gòu)如圖2所示。
圖2 無線音樂路由器硬件架構(gòu)
RTL8196E主芯片為MIPS架構(gòu),500MHz的主頻,內(nèi)帶16KBCache;外帶128KB的SRAM,256MB的DDR;最大支持32MB的Flash存儲(chǔ)。RTL8196E的RGMII接口用于MAC層與PHY層的通信和管理,SPI接口連接FLASH存儲(chǔ)器,另有GPIO、I2C、UART接口未被占用。無線通信模塊采用高性能單芯片集成方案,在60×60(MM)空間內(nèi)集成了無線路由器的主要器件,支持無線路由模式(Router)、無線接入點(diǎn)(AP)、中繼模式(Repeater)三種工作模式。CS4398音頻解碼芯片提供了一個(gè)完善的立體聲24位/192千赫數(shù)字至模擬(D/A)轉(zhuǎn)換系統(tǒng),可實(shí)現(xiàn)120分貝動(dòng)態(tài)范圍和0.0005%總諧波失真加噪音(THD+N)。整個(gè)系統(tǒng)的硬件架構(gòu)簡潔、體積小、便于擴(kuò)展。
為了實(shí)現(xiàn)上述無線音樂路由器的設(shè)計(jì),目前不少采用rygel[11]架構(gòu),通過內(nèi)部的“playbin”部件,運(yùn)用GStreamer開源多媒體框架庫,來構(gòu)造DLNA多媒體播放設(shè)備,但其開發(fā)不靈活,依賴的庫達(dá)到30余個(gè),嚴(yán)重增加了系統(tǒng)功耗,拉低系統(tǒng)性能,且容易出現(xiàn)播放錯(cuò)亂現(xiàn)象。Platinum軟件開發(fā)包SDK(SoftwareDevelopmentKit)提供了開發(fā)DLNA設(shè)備的基本框架,設(shè)備的尋址、發(fā)現(xiàn)過程被封裝在一個(gè)交互發(fā)現(xiàn)模塊中,通過裁剪該模塊,可以實(shí)現(xiàn)設(shè)備和控制點(diǎn)之間的互發(fā)現(xiàn)。本方案采用Platinum架構(gòu),構(gòu)建出DLNA控制點(diǎn)和DLNA/UPnP設(shè)備。但要實(shí)現(xiàn)兩者之間的交互控制,還需要在此基礎(chǔ)上進(jìn)行代碼重構(gòu)和重寫,構(gòu)建交互控制模塊,并設(shè)計(jì)一個(gè)高保真無損音頻播放器。
系統(tǒng)整體設(shè)計(jì)方案如圖3所示。
圖3 系統(tǒng)整體設(shè)計(jì)方案
系統(tǒng)主要分為三層,底層為硬件層;中間層為Linux內(nèi)核和硬件驅(qū)動(dòng)程序;上層為應(yīng)用程序,即為圖3中大虛線框內(nèi)的部分,主要包括三個(gè)部分:DLNA設(shè)備搭建、高保真無損音頻播放器設(shè)計(jì)、DLNA設(shè)備和播放器之間的信息交互。
整個(gè)系統(tǒng)的運(yùn)行包括如下四個(gè)部分:
(1) 設(shè)備發(fā)現(xiàn)過程,即當(dāng)設(shè)備加入到網(wǎng)絡(luò)中,該設(shè)備向控制點(diǎn)廣播自己的存在及能夠提供的服務(wù),并建立連接。
(2) 設(shè)備控制過程,即當(dāng)設(shè)備連接到手機(jī)控制端后,可以向該設(shè)備發(fā)送控制消息,其中包括手機(jī)端音頻文件的URL地址等,通過獲取該控制消息,并以參數(shù)的形式傳遞給播放器。
(3) 下載播放過程,即播放器遠(yuǎn)程下載模塊從手機(jī)端下載音頻文件,解碼后經(jīng)Linux音頻驅(qū)動(dòng)模塊輸出播放。
(4) 信息交互過程,即服務(wù)在運(yùn)行時(shí),可能改變某些變量的值,如音頻播放時(shí)間,這時(shí)需要及時(shí)地更新給手機(jī)控制點(diǎn),保證手機(jī)端音樂播放器界面進(jìn)度條正確顯示當(dāng)前播放時(shí)間。
2DLNA設(shè)備
為了滿足不同用戶的開發(fā)需要,Platinum架構(gòu)提供了針對(duì)不同DLNA設(shè)備的通用開發(fā)框架,以及過于細(xì)節(jié)化的DLNA標(biāo)準(zhǔn)支持,導(dǎo)致開發(fā)某一特定設(shè)備時(shí)系統(tǒng)資源冗余,增大系統(tǒng)內(nèi)耗,因此本方案通過裁剪,保留音頻播放設(shè)備的基本特點(diǎn),構(gòu)建輕量級(jí)DLNA設(shè)備與控制點(diǎn)的交互發(fā)現(xiàn)模塊,并設(shè)計(jì)了一個(gè)帶有優(yōu)先級(jí)狀態(tài)機(jī)管理機(jī)制的交互控制模塊。
2.1UPnP AV框架工作過程
DLNA標(biāo)準(zhǔn)的協(xié)議結(jié)構(gòu)中最重要的一層是設(shè)備的發(fā)現(xiàn)、控制和媒體管理,采用UPnPAV(Audio/Video,AV)[12]應(yīng)用框架,該架構(gòu)能夠發(fā)現(xiàn)家庭網(wǎng)絡(luò)上存在的其他設(shè)備和服務(wù),并可以實(shí)現(xiàn)設(shè)備和應(yīng)用對(duì)家庭網(wǎng)絡(luò)中媒體內(nèi)容的識(shí)別、管理和分發(fā)。圖4是UPnPAV框架工作過程。
圖4 UPnP AV框架工作過程
從以上UPnP框架的工作過程可以看出,MediaServer端(手機(jī)音樂播放器后臺(tái))提供以下幾個(gè)服務(wù)。
1) 內(nèi)容目錄服務(wù)CDS(ContentDirectoryService),讓用戶瀏覽音樂播放器媒體文件的目錄,包括有Browserd等動(dòng)作。
2) 連接管理服務(wù)(ConnectionManagerService),負(fù)責(zé)建立和管理接收端設(shè)備的網(wǎng)絡(luò)連接。
3) 傳輸控制服務(wù)AVT(AVTransportService),實(shí)現(xiàn)暫停、快進(jìn)等功能。
MediaRenderer端(無線音樂路由器)可以提供以下幾個(gè)服務(wù)。
1) 播放控制服務(wù)RCS(RendereringControlService),讓用戶調(diào)整播放的效果,如音量等。
2) 連接管理服務(wù)(ConnectionManagerService),負(fù)責(zé)建立和管理接收端設(shè)備的網(wǎng)絡(luò)連接。
3) 傳輸控制服務(wù)AVT(AVTransportService),實(shí)現(xiàn)暫停、快進(jìn)等功能。
ControlPoint(手機(jī)音樂播放器操作界面)主要為用戶提供操作界面,它提供的服務(wù)大多是接收用戶的操作指令,然后通過調(diào)用MediaServer和MediaRender的服務(wù)來實(shí)現(xiàn)。
2.2Media Render端交互控制模塊
基于DLNA標(biāo)準(zhǔn),設(shè)計(jì)了一個(gè)輕量級(jí)的交互控制模塊,該模塊包括連接管理服務(wù)、播放控制服務(wù)與媒體傳輸控制服務(wù)三個(gè)部分。連接管理服務(wù)提供與匹配的MediaServer的連接信息管理;播放控制服務(wù)接收控制點(diǎn)發(fā)送過來的設(shè)備控制信息,如亮度調(diào)節(jié)、音量大小等;媒體傳輸控制服務(wù)接收控制點(diǎn)發(fā)送過來的設(shè)置媒體URL、播放、暫停、快進(jìn)等控制動(dòng)作。MediaRender功能模塊設(shè)計(jì)如圖5所示。
圖5 Medea Render功能模塊設(shè)計(jì)
MediaRender保存了一個(gè)狀態(tài)機(jī)用來記錄當(dāng)前正在執(zhí)行的動(dòng)作,狀態(tài)機(jī)中定義了播放、暫停、上/下一曲、快進(jìn)/退、音量大小設(shè)置等所有MediaRender可能處于的執(zhí)行狀態(tài)。MediaRender的另一個(gè)重要組件就是播放器,接收控制點(diǎn)的設(shè)置和播放控制。
為了實(shí)現(xiàn)播放控制服務(wù)和媒體傳輸控制服務(wù),需要獲取手機(jī)端的控制信息和參數(shù)信息,涉及的數(shù)據(jù)結(jié)構(gòu)如下:
typedefstructStateVariableValue{
NPT_Stringmetadata;
NPT_Stringuri;
NPT_Stringcurrenturi;
NPT_Stringtarget;
Char*action;
}StateVariableValue;
其中,metadata為音頻文件頭信息,用于MediaRender讀取當(dāng)前播放音頻文件的名稱、格式、大小、頻率和比特率等信息;uri和currenturi分別為音頻文件URL地址列表和當(dāng)前音頻文件URL地址,用于MediaRender下載音頻文件;target為進(jìn)度條拖拉目標(biāo)位置,用戶實(shí)現(xiàn)快進(jìn)/退功能;action為動(dòng)作指令名,用于MdediaRender執(zhí)行動(dòng)作并且更新狀態(tài)機(jī)狀態(tài)。
為了實(shí)現(xiàn)對(duì)設(shè)備的實(shí)際控制,還需要在MediaRender媒體播放模塊上定義一個(gè)PLT_MediaRenderer類,含播放、下一曲、快進(jìn)等動(dòng)作,建立了對(duì)設(shè)備的控制框架。
交互控制模塊的連接管理服務(wù)保證控制點(diǎn)與設(shè)備間的通信隧道正常,播放控制服務(wù)和媒體傳輸控制服務(wù)則實(shí)時(shí)監(jiān)控控制點(diǎn)發(fā)送過來的有效指令,如當(dāng)控制點(diǎn)發(fā)出暫停指令時(shí),媒體傳輸控制服務(wù)接收指令請(qǐng)求,提取出相應(yīng)參數(shù),并傳遞給PLT_MediaRenderer類中定義的暫停動(dòng)作函數(shù),該函數(shù)通過關(guān)閉音頻數(shù)據(jù)流輸出接口實(shí)現(xiàn)暫停功能。
本文根據(jù)以上過程,將對(duì)MediaRender設(shè)備的所有控制功能封裝在類PLT_MediaRenderer類定義到的動(dòng)作函數(shù)中,實(shí)現(xiàn)了控制點(diǎn)與設(shè)備間交互控制模塊的設(shè)計(jì)。
2.3帶優(yōu)先級(jí)的狀態(tài)機(jī)管理方案
目前幾乎所有的方案都沒有為設(shè)備設(shè)計(jì)一個(gè)全面的狀態(tài)機(jī)管理架構(gòu),導(dǎo)致當(dāng)服務(wù)和動(dòng)作量突發(fā)性增大時(shí),設(shè)備端容易出現(xiàn)執(zhí)行動(dòng)作與控制指令紊亂。因此,在交互控制模塊中,設(shè)計(jì)了一個(gè)帶有優(yōu)先級(jí)的狀態(tài)機(jī)管理方案,管理流程如圖6所示。
圖6 狀態(tài)機(jī)管理方案設(shè)計(jì)
設(shè)備加電啟動(dòng)后,初始化任務(wù)鏈表并將狀態(tài)機(jī)初始狀態(tài)設(shè)置為wait,等待控制點(diǎn)控制命令。當(dāng)控制點(diǎn)發(fā)起控制動(dòng)作時(shí),由上節(jié)中提到的交互控制模塊獲取相應(yīng)的控制參數(shù),并判斷動(dòng)作的優(yōu)先級(jí),如果優(yōu)先級(jí)為1,則加入到任務(wù)鏈表的表頭,反之,則加入表尾。另外,程序初始化時(shí),會(huì)循環(huán)監(jiān)聽狀態(tài)機(jī)當(dāng)前狀態(tài),如果狀態(tài)為wait且任務(wù)鏈表不為空,則從表頭取出一個(gè)任務(wù)節(jié)點(diǎn),由交互控制模塊中定義的動(dòng)作函數(shù)完成動(dòng)作執(zhí)行,此時(shí)改變狀態(tài)機(jī)的狀態(tài)為當(dāng)前動(dòng)作狀態(tài),執(zhí)行完畢后,恢復(fù)wait狀態(tài),繼續(xù)執(zhí)行下一個(gè)任務(wù)。圖7是狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)移圖。
圖7 狀態(tài)機(jī)狀態(tài)轉(zhuǎn)移圖
當(dāng)控制點(diǎn)頻繁操作,大量的動(dòng)作指令涌入到設(shè)備端,為了提高系統(tǒng)的用戶感受,給所有的動(dòng)作定義了優(yōu)先級(jí)別。如播放、暫停動(dòng)作優(yōu)先級(jí)高,下一曲、上一曲動(dòng)作優(yōu)先級(jí)低等。這樣避免了當(dāng)用戶在頻繁發(fā)出下一曲指令后再次發(fā)出播放/暫停指令時(shí)由于系統(tǒng)延遲而帶來的指令暫時(shí)無效現(xiàn)象。動(dòng)作指令的優(yōu)先級(jí)設(shè)計(jì)如表1所示。
表1 不同動(dòng)作指令權(quán)重值
3高保真無損音頻播放器及交互模塊
MediaRender的另一個(gè)重要組件就是播放器,可以接受交互控制模塊的設(shè)置和播放控制。同時(shí),播放器在接收到狀態(tài)機(jī)改變時(shí),也會(huì)對(duì)外發(fā)出自己的最新狀態(tài),以便其他控制點(diǎn)得到最新的狀態(tài)。
嵌入式系統(tǒng)播放MP3等有損壓縮格式的技術(shù)已經(jīng)比較成熟,但支持無損壓縮格式的很少。為了提高無線音樂路由器輸出音頻質(zhì)量,在ALSA聲音架構(gòu)[13]上添加了支持WAV、FLAC和APE三種無損壓縮格式音頻文件的解碼模塊,實(shí)現(xiàn)支持高保真無損音樂播放功能,并在播放器上開發(fā)了遠(yuǎn)程下載功能。
3.1播放器工作流程
編寫高保真無損音樂播放器程序的思路是:下載控制端音頻文件到本地,根據(jù)不同的編碼格式解碼,然后將所得音頻數(shù)據(jù)送入聲卡設(shè)備即可實(shí)現(xiàn)播放。具體流程如圖8所示。
圖8 播放器工作流程圖
圖8中虛線框內(nèi)為遠(yuǎn)程下載模塊,當(dāng)手機(jī)端音樂播放軟件控制MediaRender播放音樂時(shí),負(fù)責(zé)從手機(jī)端無線下載音頻文件到本地,并存儲(chǔ)到臨時(shí)文件中,播放器通過讀取臨時(shí)文件,獲取播放文件信息,經(jīng)移植的ALSA音頻模塊解碼后播放。
3.2遠(yuǎn)程下載模塊
播放器的遠(yuǎn)程下載模塊是在其主體函數(shù)中編寫了一個(gè)遠(yuǎn)程下載函數(shù),實(shí)現(xiàn)無線下載功能。函數(shù)基于libcurl庫編寫,它是一個(gè)簡單易用的基于URL傳輸?shù)目蛻舳碎_發(fā)庫。函數(shù)的流程如圖9所示。
圖9 遠(yuǎn)程下載函數(shù)流程圖
當(dāng)MediaRender接收到控制點(diǎn)播放指令時(shí),遠(yuǎn)程下載模塊會(huì)先開辟一段內(nèi)存單元,用于存儲(chǔ)下載的音頻文件,然后初始化一系列變量,包括音頻文件url地址、文件讀取指針、函數(shù)執(zhí)行最長時(shí)間、最大下載速度等,接著處理由交互控制模塊獲取的音頻文件地址并開始下載,下載的音頻數(shù)據(jù)流經(jīng)處理后回調(diào)給文件指針指向的文件。接下來的文件讀取和解碼再由播放器的其他模塊完成。
3.3MediaRender與播放器之間的信息交互模塊
為了保證手機(jī)端音樂播放軟件界面時(shí)間進(jìn)度條顯示的實(shí)時(shí)性,需要MediaSever、MediaRender和播放器三個(gè)進(jìn)程之間周期性地傳遞時(shí)間信息,該過程采用socket編程機(jī)制完成,通信流程如圖10所示。
圖10 進(jìn)程間時(shí)間信息通信
播放器計(jì)算音頻文件總時(shí)長和當(dāng)前播放時(shí)間,MediaRender獲得該時(shí)間信息,然后發(fā)送到手機(jī)端音樂播放軟件后臺(tái)服務(wù)器,以進(jìn)度條的形式顯示到手機(jī)界面。
4方案實(shí)現(xiàn)與測(cè)試
4.1DLNA設(shè)備端與控制點(diǎn)互聯(lián)測(cè)試
整個(gè)方案實(shí)現(xiàn)并移植到開發(fā)板后,用Xshell終端模擬軟件以串口形式登錄開發(fā)板,開機(jī)啟動(dòng),后臺(tái)運(yùn)行如圖11所示,可以看到DLNA設(shè)備正常運(yùn)行。
圖11 系統(tǒng)啟動(dòng)界面
圖12 手機(jī)端DLNA設(shè)備列表
手機(jī)端連接到音樂路由器WiFi,打開KuGou音樂播放器(任何支持DLNA功能的音樂播放器均可),開啟DLNA功能,點(diǎn)擊播放界面左上角DLNA按鈕,路由器端的DLNA軟件設(shè)備MusicRouter-8196E會(huì)出現(xiàn)在手機(jī)端列表中,如圖12所示。
點(diǎn)擊選擇MusicRouter-8196E,手機(jī)(DLNA控制點(diǎn))與音樂路由器(DLNA設(shè)備端)建立無線連接,此時(shí)通過手機(jī)端Kugou音樂播放器,可以控制路由器上的DLNA設(shè)備進(jìn)行相應(yīng)動(dòng)作。播放延遲半秒左右,音質(zhì)清晰。此時(shí)路由器上系統(tǒng)運(yùn)行情況如圖13所示。
圖13 播放狀態(tài)路由器系統(tǒng)后臺(tái)界面
圖14為方案實(shí)物圖。
圖14 方案實(shí)物圖
4.2音質(zhì)測(cè)試
用SoundTechnology公司出品的SpectraLAB4.32音頻測(cè)試軟件進(jìn)行音質(zhì)檢測(cè)。圖15為無線音樂路由器播放頻率1KHz的音頻文件得到的頻譜圖。從圖中可以看出在中高頻段以下(0~900Hz)比較平直,變化幅度小于2db;在1K諧波曲線上表現(xiàn)為:左右聲道音色表現(xiàn)比較平衡;由基波1K到2K頻段諧波衰減速度比較快。總體來說音質(zhì)很不錯(cuò)。
圖15 SpectraLAB 4.32音質(zhì)測(cè)試頻譜圖
4.3網(wǎng)絡(luò)性能測(cè)試
吞吐量測(cè)試表示在單位時(shí)間內(nèi)通過某個(gè)網(wǎng)絡(luò)(或信道、接口)的數(shù)據(jù)量,是評(píng)價(jià)網(wǎng)絡(luò)承載能力和傳輸性能的一個(gè)參數(shù)。開啟無線音樂路由器NAT功能且關(guān)閉防火墻,用兩臺(tái)安裝有Chariot軟件的電腦,一臺(tái)接路由器WAN口,另一臺(tái)接LAN口,通過統(tǒng)計(jì)一個(gè)預(yù)定長度和格式的腳本文件無差錯(cuò)的從一臺(tái)電腦傳輸?shù)搅硪慌_(tái)電腦的時(shí)間來計(jì)算路由器的吞吐量。圖16中,Chariot軟件測(cè)試吞吐量平均值為22.5Mb/s;圖17中Iperf軟件測(cè)試結(jié)果為平均22.4Mb/s。可知無線音樂路由器吞吐量穩(wěn)定在22.5Mb/s左右,與原始的8196E路由器的23Mb/s相差僅0.5Mb/s,證明了沒有因在系統(tǒng)中運(yùn)行了DLNA設(shè)備而影響到路由器網(wǎng)絡(luò)性能。
圖16 Charoit測(cè)試吞吐量
圖17 Iperf測(cè)試吞吐量
利用Iperf軟件統(tǒng)計(jì)了無線音樂路由器中用戶數(shù)據(jù)報(bào)協(xié)議UDP(UserDatagramProtocol)測(cè)試信息,如圖18所示。UDP包延遲平均時(shí)間(Jitter)是0.137ms,帶寬(BandWidth)是1.05M/s,丟包率0。
圖18 UDP測(cè)試的統(tǒng)計(jì)信息
以上測(cè)試表明了系統(tǒng)具有高效且穩(wěn)定的網(wǎng)絡(luò)性能。
5結(jié)語
本文在Realtek公司的8196E路由器上,添加音頻解碼芯片,移植ALSA高級(jí)Linux聲音架構(gòu),搭建控制點(diǎn)與設(shè)備端交互發(fā)現(xiàn)模塊,設(shè)計(jì)了帶有優(yōu)先級(jí)狀態(tài)機(jī)管理的交互控制模塊,以及設(shè)計(jì)了一個(gè)高保真無損嵌入式音頻播放器,完成了帶優(yōu)先級(jí)狀態(tài)機(jī)管理的輕量級(jí)無線音樂路由器的開發(fā)。采用Chariot和Iperf軟件進(jìn)行吞吐量和用戶數(shù)據(jù)協(xié)議(UDP)測(cè)試,結(jié)果表明網(wǎng)絡(luò)性能高效穩(wěn)定;采用SpectraLAB軟件進(jìn)行音質(zhì)測(cè)試,結(jié)果表明音頻質(zhì)量滿足用戶需要。
參考文獻(xiàn)
[1] 吳佳興,李愛國.基于云計(jì)算的智能家居系統(tǒng)[J].計(jì)算機(jī)應(yīng)用與軟件,2013,30(7):240-243,314.
[2]HiroakiGoto,HidekiShimada,KenyaSato.DesignofNetworkArchitectureUsingMobileGatewaysforDLNADevicesinWideAreaNetworks[J].CommunicationsandNetwork,2012,43(11):404-408.
[3] 吳兆立.UPnP基本原理以及在NAT中的應(yīng)用[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2014,11(2):73-74,76.
[4]WangLian.Digitallivingnetworkalliance-baseddesignforcross-networkmediaresourcesharing[J].JournalofComputerApplications,2014(S1):35-40.
[5]TeoChangSheng,LawSieYong,KimHanJong.AccessingofDigitalMediaContentswithDLNAProtocolinConjunctionwithDSIWSTPProtocol[J].IEEEInternationalConferenceonConsumerElectronics,2008,9(1):1-2.
[6]LoncarevicM,BogicevicB,HlavacJ.OnesoftwaresolutionforsharingmultimediacontentviaDLNAprotocolonAndroidoperatingsystem[J].TelecommunicationsForum(TELFOR),2012,20(9):1246-1253.
[7]OhYJ,LeeHK,KimJT,etal.Designofanextendedarchitectureforsharingdlnacomplianthomemediafromoutsidethehome[J].IEEETransactionsonConsumerElectronics,2007,53(2):542-547.
[8]IslamMZ,HossainMM,HaqueS,etal.User-agentbasedaccesscontrolforDLNAdevices[C]//KnowledgeandSmartTechnology(KST),2014 6thInternationalConferenceon.IEEE,2014,30(1):7-11.
[9]YumikoMatsuura,MitsuhiroKihara.Standardizationactivitiesinthedigitallivingnetworkalliance(DLNA)[J].NTTTechnicalReview,2007,22(2):231-235.
[10] 維華,黃曉琳.物聯(lián)網(wǎng)智能家居技術(shù)與標(biāo)準(zhǔn)化綜述[J].信息技術(shù)與標(biāo)準(zhǔn)化,2012,16(7):35-37.
[11]MurrayComming.RygelforaDLNAPlayer[EB/OL].(2011-12-19).[2012-6-15].http://www.murrayc.com/permalink/2012/06/22/rygel-for-a-dlna-player.
[12] 王保保,陶鵬.UPnPAV架構(gòu)的數(shù)字多媒體家庭網(wǎng)絡(luò)[J].微電子學(xué)與計(jì)算機(jī),2012,26(7):125-128,133.
[13] 丁勇,周余,都思丹.基于Linux2.6的嵌入式ASoC架構(gòu)音頻驅(qū)動(dòng)研究與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2010,27(4):267-270,273.
A LIGHTWEIGHT WIRELESS MUSIC ROUTER WITH PRIORITY STATEMACHINEMANAGEMENT
Hu Zhikun1Jiang Hao1*Song Jingye1Li Xiaocong1Liao Yuanqin2Liao Beiping2
1(School of Physics and Electronics,Central South University,Changsha 410083,Hunan,China)2(Liling Hengmao Electronic Technology Co., Ltd.,Liling 412200,Hunan,Chin)
AbstractIn order to solve the problem that the performance of wireless music router is unstable, we studied and designed a mips architecture-based lightweight wireless music router. Based on DLNA standard, we used the Platinum framework to design and implement the lightweight module for interactive discovery of DLNA control point and device, and designed a state machine management mechanism with priority to manage the order sequence of interactive control module so as to avoid the problem of unordered control signals caused by frequent music controls. We designed a high fidelity and lossless audio player, it realises the automatic download of audio files to local by DLNA devices. Moreover we used the ALSA-based advanced Linux sound architecture to achieve high fidelity music decoding and thus ensured the high quality music output to audio equipment. We used the software Chariot and Iperf in real tests of music router and mobile phone, test results of throughput and user datagram protocol showed that the wireless transmission performance of control signal was efficient and stable, test result of sound quality also showed that it was able to obtain high quality audio signal.
KeywordsWireless music routerDigital Living Network Alliance (DLNA)PlatinumPriorityState machineAudio player
收稿日期:2015-02-17。國家自然科學(xué)基金項(xiàng)目(61273159);湖南省自然科學(xué)基金株洲聯(lián)合基金項(xiàng)目(13JJ9038);湖南省科技計(jì)劃項(xiàng)目(2013GK3005)。胡志坤,教授,主研領(lǐng)域:復(fù)雜系統(tǒng)狀態(tài)監(jiān)測(cè)和故障診斷。江浩,碩士生。宋菁燁,碩士生。李曉聰,碩士生。廖遠(yuǎn)勤,本科生。廖北平,高工。
中圖分類號(hào)TP393.05
文獻(xiàn)標(biāo)識(shí)碼A
DOI:10.3969/j.issn.1000-386x.2016.06.025