摘 要:提出了一种以FS1020为主控芯片、AS3654为电源管理芯片、FS1110为三波段双模射频接收器芯片,基于UPnP网络收音机的设计方案,给出了该收音机的总体结构。详细介绍了该收音机的硬件和软件系统,并对该网络收音机做了简单的测试和分析。
关键词:UPnP;网络收音机;FS1020;嵌入式系统
网络收音机的主要功能是播放因特网上的直播或者点播的音频流,可以支持WMA、Real Audio、MP3等多种音频格式[1-3]。可以支持的流媒体协议有:实时流媒体协议RTSP、流媒体传输协议RTP、Real Works数据传输协议RDT、超文本传输协议HTTP等。可以支持根据国家、数据速率和年龄来选择直播或者点播的节目。通用即插即用UPnP(Universal Plug and Play)主要用于实现设备的智能互联互通,使用UPnP协议不需要设备驱动程序,因此使用UPnP建立的网络是介质无关的,它可以运行在几乎所有的操作系统平台之上,可以使用C、C++、JAVA和VB等开发语言,使得在办公室、家庭和其他公共场所方便地构建设备相互联通的网络环境[4-6]。UPnP媒体播放器及网络收音机是一个内置UPnP协议的嵌入式音频流媒体播放器。它可以连接任何内置UPnP服务器的设备,比如PC或者MHG等。通过局域网连接UPnP服务器时,设备的功能是作为UPnP媒体播放器;当通过因特网连接网络电台的多媒体服务器时,此时该设备作为网络收音机工作。图1所示为UPnP媒体播放器及网络收音机的两种工作模式。
主控芯片FS1020主要针对数字音频播放器设计,内置一颗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)获得最小数量的系统组件;通过高配置SPI或者并行DVB-SP接口,无缝连接媒体处理器,从而获得DMB-T的全解码;通过串行口可以把服务数据传送到主控端(SCP、SPI、UART)。前面板按键采用电容式按键CapSense技术。这种技术在便携式播放器中大量使用(如iPod),使用灵活、寿命长且外观美观。WiFi模块muRata SP-8HGC-D支持802.11b/g,封装小,性能稳定。电源控制采用高度集成电源供应和监控,电池管理和充电的解决方案AS3654整合了系统电源管理所需的一切资源,如时钟、中断、电压和温度监控等。
2 软件设计
网络收音机软件设计中含有UPnP控制点模块、UPnP播放器模块和一个网络电台门户网站接口模块(Portal Interface)。这样,网络收音机实际上就是一个以网络电台门户网站(Portal)为服务器的UPnP播放器。图3为网络收音机的系统结构图。
网络电台门户网站接口模块提供UPnP控制点和系统控制模块对网络电台门户网站的接口,主要提供设备注册、登录、认证、目录服务器的浏览和搜索以及报告门户网站各种状态的功能。流媒体传输控制模块可以支持全球10 000多个网络电台所使用的绝大部分的流媒体传输协议。工作流程如下:(1)UPnP控制点通过网络电台门户网站接口登录门户网站,认证通过后,门户网站会把预先定义好的设备描述文档回传给UPnP控制点,设备发现工作完成;(2)网络收音机通过预先定义好的接口在目录服务器中浏览和搜索网络电台。目录服务器是一个包含全球10 000多个电台详细信息的数据库,包括URL、编码类型、带宽、流媒体服务器类型等;(3)如果选定播放某一个电台,网络电台门户网站会把电台URL等相关信息回传给UPnP控制点;(4)UPnP控制点根据回传的信息,启动带外传输,UPnP媒体播放器开始解码播放网络电台传来的音频流媒体数据。下面重点介绍几个模块的软件实现。
2.1 浏览
浏览(Browse)是网络收音机最重要的功能之一。其功能是从网络电台门户网站上按照UPnP标准格式下载特定的节目列表。浏览功能的执行顺序图如图4所示。
2.2 搜索
搜索的动作与浏览的动作类似,都需要以一个ContainerID开始。搜索请求通过HTTP GET来实现,其使用格式如下:
GET http://Portal.pure.com/ContentDirectory/Control?action=Search&ContainerID={value}&SearchCriteria={value}&Filter={value}&StartingIndex={value}&RequestedCount={value}&SortCriteria={value}
这个命名需要以下参数:
ContainerID:开始搜索的包容器的ID,如果是0就从根目录开始搜索。
SearchCriteria:一个描述要搜索什么的字符串。特定的搜索标准是所能支持的搜索标准的一个子集。服务器所支持的搜索集合可以通过GetSearchCriteria请求获得。
滤波器:一个逗号分割的属性列表,描述决定什么数据会在反馈中被返回。强制域是总被返回的(如标题)。
StartingIndex:一个以零开始的偏移,描述结构中第一个返回值在搜索结构中的偏移量。
RequestedCount:返回结果的数目。0表示全部。
SortCriteria:一个逗号分割的属性列表,描述如何排列结果。
尽管UPnP AV提供了广泛的标准字符串,但Portal只支持其中有限的一部分。
2.3 喜好节目管理
喜好节目管理主要有增加、删除和清除喜好节目列表功能,具体功能实现如下:
(1)增加喜好节目(Add Favorite)
这个命令可以在服务器上喜欢节目列表中增加喜欢的节目。
X_AddFav要求用HTTP POST命令,形式如下:
POST http://Portal.pure.com/ContentDirectory/Control
参数如下:
action=X_AddFav&pure:Bookmark={value}&ParentID={value}
(2)删除喜好节目(Remove Favorite)
这个命令可以在服务器上喜欢节目列表中删除喜欢的节目。
X_RemoveFav要求用HTTP POST命令,一般的命令格式如下:
POST http://Portal.pure.com/ContentDirectory/Control
参数如下:
action=X_RemoveFav&pure:Bookmark={value}&ParentID={value}
(3)清除喜好节目列表(Clear Favorite List)
这个命令可以在服务器上清除喜欢节目列表。
X_ClearFav要求用HTTP POST命令,形式如下:
POST http://Portal.pure.com/ContentDirectory/Control
参数如下:
action=X_ClearFav
3 测试结果
测试环境如下:本地无线路由器:Belklin Wireless G Router;因特网连接类型:ADSL(带宽2 Mb/s)。
测试结果:可以链接播放全球绝大部分的网络收音机电台。但是个别电台声音不连续(如英国的Purple Radio),大概每10 s就有一个断音。初步分析是因为这个电台码率较高(比特率是128 kb/s),而电台所在位置较远,时延太大(大约500 ms),因此导致接收端缓存器下溢。需要进一步加以改进。
图5所示为英国BBC广播电台的网络收音机测试示例。
参考文献
[1] 黄兴嘉.基于ARM嵌入式系统的电子移动视听板的开发与研究[D].长春:吉林大学,2004.
[2] 卓碧华,陈良银,胡大裟,等.基于ARM内核的网络收音机的设计与实现[J].西南民族大学学报(自然科学版),2007,33(4):188-191.
[3] 袁海林.基于ARM的嵌入式网络收音机的设计[J].微计算机信息,2007,23(20):129-131.
[4] 谢国.基于UPnP协议的AV体系架构的研究与实现[D].上海:华东师范大学,2007.
[5] 张群哲.基于UPnP的数字家庭研究[D].长沙:国防科学技术大学,2004.
[6] 范新运.基于UPnP的家庭智能系统研究与实践[D].西安:西北工业大学,2005.