摘 要: 提出了一種以FS1020為主控芯片、AS3654為電源管理芯片、FS1110為三波段雙模射頻接收器芯片,基于UPnP網(wǎng)絡(luò)收音機(jī)的設(shè)計(jì)方案,給出了該收音機(jī)的總體結(jié)構(gòu)。詳細(xì)介紹了該收音機(jī)的硬件和軟件系統(tǒng),并對(duì)該網(wǎng)絡(luò)收音機(jī)做了簡(jiǎn)單的測(cè)試和分析。
關(guān)鍵詞: UPnP;網(wǎng)絡(luò)收音機(jī);FS1020;嵌入式系統(tǒng)
網(wǎng)絡(luò)收音機(jī)的主要功能是播放因特網(wǎng)上的直播或者點(diǎn)播的音頻流,可以支持WMA、Real Audio、MP3等多種音頻格式[1-3]。可以支持的流媒體協(xié)議有:實(shí)時(shí)流媒體協(xié)議RTSP、流媒體傳輸協(xié)議RTP、Real Works數(shù)據(jù)傳輸協(xié)議RDT、超文本傳輸協(xié)議HTTP等??梢灾С指鶕?jù)國(guó)家、數(shù)據(jù)速率和年齡來(lái)選擇直播或者點(diǎn)播的節(jié)目。通用即插即用UPnP(Universal Plug and Play)主要用于實(shí)現(xiàn)設(shè)備的智能互聯(lián)互通,使用UPnP協(xié)議不需要設(shè)備驅(qū)動(dòng)程序,因此使用UPnP建立的網(wǎng)絡(luò)是介質(zhì)無(wú)關(guān)的,它可以運(yùn)行在幾乎所有的操作系統(tǒng)平臺(tái)之上,可以使用C、C++、JAVA和VB等開發(fā)語(yǔ)言,使得在辦公室、家庭和其他公共場(chǎng)所方便地構(gòu)建設(shè)備相互聯(lián)通的網(wǎng)絡(luò)環(huán)境[4-6]。UPnP媒體播放器及網(wǎng)絡(luò)收音機(jī)是一個(gè)內(nèi)置UPnP協(xié)議的嵌入式音頻流媒體播放器。它可以連接任何內(nèi)置UPnP服務(wù)器的設(shè)備,比如PC或者M(jìn)HG等。通過(guò)局域網(wǎng)連接UPnP服務(wù)器時(shí),設(shè)備的功能是作為UPnP媒體播放器;當(dāng)通過(guò)因特網(wǎng)連接網(wǎng)絡(luò)電臺(tái)的多媒體服務(wù)器時(shí),此時(shí)該設(shè)備作為網(wǎng)絡(luò)收音機(jī)工作。圖1所示為UPnP媒體播放器及網(wǎng)絡(luò)收音機(jī)的兩種工作模式。
主控芯片F(xiàn)S1020主要針對(duì)數(shù)字音頻播放器設(shè)計(jì),內(nèi)置一顆64 bit的DSP和一顆16 bit的RISC,可以支持4個(gè)獨(dú)立硬件線程。FS1020有以下一些主要功能:On-chip CXO只需要非常低的外部晶振;DAB信道解碼(1.8 Mb/s)無(wú)需外置SDRAM;可選的針對(duì)內(nèi)核的片上電源供應(yīng)切換模式SMPS(Switched-Mode Power Supply);通過(guò)整合混合信號(hào)組件(ADC、PLL、Power-on reset、DCXO、SMPS和stereo DAC)獲得最小數(shù)量的系統(tǒng)組件;通過(guò)高配置SPI或者并行DVB-SP接口,無(wú)縫連接媒體處理器,從而獲得DMB-T的全解碼;通過(guò)串行口可以把服務(wù)數(shù)據(jù)傳送到主控端(SCP、SPI、UART)。前面板按鍵采用電容式按鍵CapSense技術(shù)。這種技術(shù)在便攜式播放器中大量使用(如iPod),使用靈活、壽命長(zhǎng)且外觀美觀。WiFi模塊muRata SP-8HGC-D支持802.11b/g,封裝小,性能穩(wěn)定。電源控制采用高度集成電源供應(yīng)和監(jiān)控,電池管理和充電的解決方案AS3654整合了系統(tǒng)電源管理所需的一切資源,如時(shí)鐘、中斷、電壓和溫度監(jiān)控等。
2 軟件設(shè)計(jì)
網(wǎng)絡(luò)收音機(jī)軟件設(shè)計(jì)中含有UPnP控制點(diǎn)模塊、UPnP播放器模塊和一個(gè)網(wǎng)絡(luò)電臺(tái)門戶網(wǎng)站接口模塊(Portal Interface)。這樣,網(wǎng)絡(luò)收音機(jī)實(shí)際上就是一個(gè)以網(wǎng)絡(luò)電臺(tái)門戶網(wǎng)站(Portal)為服務(wù)器的UPnP播放器。圖3為網(wǎng)絡(luò)收音機(jī)的系統(tǒng)結(jié)構(gòu)圖。
網(wǎng)絡(luò)電臺(tái)門戶網(wǎng)站接口模塊提供UPnP控制點(diǎn)和系統(tǒng)控制模塊對(duì)網(wǎng)絡(luò)電臺(tái)門戶網(wǎng)站的接口,主要提供設(shè)備注冊(cè)、登錄、認(rèn)證、目錄服務(wù)器的瀏覽和搜索以及報(bào)告門戶網(wǎng)站各種狀態(tài)的功能。流媒體傳輸控制模塊可以支持全球10 000多個(gè)網(wǎng)絡(luò)電臺(tái)所使用的絕大部分的流媒體傳輸協(xié)議。工作流程如下:(1)UPnP控制點(diǎn)通過(guò)網(wǎng)絡(luò)電臺(tái)門戶網(wǎng)站接口登錄門戶網(wǎng)站,認(rèn)證通過(guò)后,門戶網(wǎng)站會(huì)把預(yù)先定義好的設(shè)備描述文檔回傳給UPnP控制點(diǎn),設(shè)備發(fā)現(xiàn)工作完成;(2)網(wǎng)絡(luò)收音機(jī)通過(guò)預(yù)先定義好的接口在目錄服務(wù)器中瀏覽和搜索網(wǎng)絡(luò)電臺(tái)。目錄服務(wù)器是一個(gè)包含全球10 000多個(gè)電臺(tái)詳細(xì)信息的數(shù)據(jù)庫(kù),包括URL、編碼類型、帶寬、流媒體服務(wù)器類型等;(3)如果選定播放某一個(gè)電臺(tái),網(wǎng)絡(luò)電臺(tái)門戶網(wǎng)站會(huì)把電臺(tái)URL等相關(guān)信息回傳給UPnP控制點(diǎn);(4)UPnP控制點(diǎn)根據(jù)回傳的信息,啟動(dòng)帶外傳輸,UPnP媒體播放器開始解碼播放網(wǎng)絡(luò)電臺(tái)傳來(lái)的音頻流媒體數(shù)據(jù)。下面重點(diǎn)介紹幾個(gè)模塊的軟件實(shí)現(xiàn)。
2.1 瀏覽
瀏覽(Browse)是網(wǎng)絡(luò)收音機(jī)最重要的功能之一。其功能是從網(wǎng)絡(luò)電臺(tái)門戶網(wǎng)站上按照UPnP標(biāo)準(zhǔn)格式下載特定的節(jié)目列表。瀏覽功能的執(zhí)行順序圖如圖4所示。
2.2 搜索
搜索的動(dòng)作與瀏覽的動(dòng)作類似,都需要以一個(gè)ContainerID開始。搜索請(qǐng)求通過(guò)HTTP GET來(lái)實(shí)現(xiàn),其使用格式如下:
GET http://Portal.pure.com/ContentDirectory/Control?action=Search&ContainerID={value}&SearchCriteria={value}&Filter={value}&StartingIndex={value}&RequestedCount={value}&SortCriteria={value}
這個(gè)命名需要以下參數(shù):
ContainerID:開始搜索的包容器的ID,如果是0就從根目錄開始搜索。
SearchCriteria:一個(gè)描述要搜索什么的字符串。特定的搜索標(biāo)準(zhǔn)是所能支持的搜索標(biāo)準(zhǔn)的一個(gè)子集。服務(wù)器所支持的搜索集合可以通過(guò)GetSearchCriteria請(qǐng)求獲得。
濾波器:一個(gè)逗號(hào)分割的屬性列表,描述決定什么數(shù)據(jù)會(huì)在反饋中被返回。強(qiáng)制域是總被返回的(如標(biāo)題)。
StartingIndex:一個(gè)以零開始的偏移,描述結(jié)構(gòu)中第一個(gè)返回值在搜索結(jié)構(gòu)中的偏移量。
RequestedCount:返回結(jié)果的數(shù)目。0表示全部。
SortCriteria:一個(gè)逗號(hào)分割的屬性列表,描述如何排列結(jié)果。
盡管UPnP AV提供了廣泛的標(biāo)準(zhǔn)字符串,但Portal只支持其中有限的一部分。
2.3 喜好節(jié)目管理
喜好節(jié)目管理主要有增加、刪除和清除喜好節(jié)目列表功能,具體功能實(shí)現(xiàn)如下:
(1)增加喜好節(jié)目(Add Favorite)
這個(gè)命令可以在服務(wù)器上喜歡節(jié)目列表中增加喜歡的節(jié)目。
X_AddFav要求用HTTP POST命令,形式如下:
POST http://Portal.pure.com/ContentDirectory/Control
參數(shù)如下:
action=X_AddFav&pure:Bookmark={value}&ParentID={value}
(2)刪除喜好節(jié)目(Remove Favorite)
這個(gè)命令可以在服務(wù)器上喜歡節(jié)目列表中刪除喜歡的節(jié)目。
X_RemoveFav要求用HTTP POST命令,一般的命令格式如下:
POST http://Portal.pure.com/ContentDirectory/Control
參數(shù)如下:
action=X_RemoveFav&pure:Bookmark={value}&ParentID={value}
(3)清除喜好節(jié)目列表(Clear Favorite List)
這個(gè)命令可以在服務(wù)器上清除喜歡節(jié)目列表。
X_ClearFav要求用HTTP POST命令,形式如下:
POST http://Portal.pure.com/ContentDirectory/Control
參數(shù)如下:
action=X_ClearFav
3 測(cè)試結(jié)果
測(cè)試環(huán)境如下:本地?zé)o線路由器:Belklin Wireless G Router;因特網(wǎng)連接類型:ADSL(帶寬2 Mb/s)。
測(cè)試結(jié)果:可以鏈接播放全球絕大部分的網(wǎng)絡(luò)收音機(jī)電臺(tái)。但是個(gè)別電臺(tái)聲音不連續(xù)(如英國(guó)的Purple Radio),大概每10 s就有一個(gè)斷音。初步分析是因?yàn)檫@個(gè)電臺(tái)碼率較高(比特率是128 kb/s),而電臺(tái)所在位置較遠(yuǎn),時(shí)延太大(大約500 ms),因此導(dǎo)致接收端緩存器下溢。需要進(jìn)一步加以改進(jìn)。
圖5所示為英國(guó)BBC廣播電臺(tái)的網(wǎng)絡(luò)收音機(jī)測(cè)試示例。
參考文獻(xiàn)
[1] 黃興嘉.基于ARM嵌入式系統(tǒng)的電子移動(dòng)視聽板的開發(fā)與研究[D].長(zhǎng)春:吉林大學(xué),2004.
[2] 卓碧華,陳良銀,胡大裟,等.基于ARM內(nèi)核的網(wǎng)絡(luò)收音機(jī)的設(shè)計(jì)與實(shí)現(xiàn)[J].西南民族大學(xué)學(xué)報(bào)(自然科學(xué)版),2007,33(4):188-191.
[3] 袁海林.基于ARM的嵌入式網(wǎng)絡(luò)收音機(jī)的設(shè)計(jì)[J].微計(jì)算機(jī)信息,2007,23(20):129-131.
[4] 謝國(guó).基于UPnP協(xié)議的AV體系架構(gòu)的研究與實(shí)現(xiàn)[D].上海:華東師范大學(xué),2007.
[5] 張群哲.基于UPnP的數(shù)字家庭研究[D].長(zhǎng)沙:國(guó)防科學(xué)技術(shù)大學(xué),2004.
[6] 范新運(yùn).基于UPnP的家庭智能系統(tǒng)研究與實(shí)踐[D].西安:西北工業(yè)大學(xué),2005.