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